BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslstl_variant_cpp03.h
Go to the documentation of this file.
1/// @file bslstl_variant_cpp03.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bslstl_variant_cpp03.h -*-C++-*-
8
9// Automatically generated file. **DO NOT EDIT**
10
11#ifndef INCLUDED_BSLSTL_VARIANT_CPP03
12#define INCLUDED_BSLSTL_VARIANT_CPP03
13
14/// @defgroup bslstl_variant_cpp03 bslstl_variant_cpp03
15/// @brief Provide C++03 implementation for bslstl_variant.h
16/// @addtogroup bsl
17/// @{
18/// @addtogroup bslstl
19/// @{
20/// @addtogroup bslstl_variant_cpp03
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bslstl_variant_cpp03-purpose"> Purpose</a>
25/// * <a href="#bslstl_variant_cpp03-classes"> Classes </a>
26/// * <a href="#bslstl_variant_cpp03-description"> Description </a>
27///
28/// # Purpose {#bslstl_variant_cpp03-purpose}
29/// Provide C++03 implementation for bslstl_variant.h
30///
31/// # Classes {#bslstl_variant_cpp03-classes}
32/// See bslstl_variant.h for list of classes
33///
34/// @see bslstl_variant
35///
36/// # Description {#bslstl_variant_cpp03-description}
37/// This component is the C++03 translation of a C++11 component,
38/// generated by the 'sim_cpp11_features.pl' program. If the original header
39/// contains any specially delimited regions of C++11 code, then this generated
40/// file contains the C++03 equivalent, i.e., with variadic templates expanded
41/// and rvalue-references replaced by 'bslmf::MovableRef' objects. The header
42/// code in this file is designed to be '#include'd into the original header
43/// when compiling with a C++03 compiler. If there are no specially delimited
44/// regions of C++11 code, then this header contains no code and is not
45/// '#include'd in the original header.
46///
47/// Generated on Sun Sep 1 05:39:12 2024
48/// Command line: sim_cpp11_features.pl bslstl_variant.h
49/// @}
50/** @} */
51/** @} */
52
53/** @addtogroup bsl
54 * @{
55 */
56/** @addtogroup bslstl
57 * @{
58 */
59/** @addtogroup bslstl_variant_cpp03
60 * @{
61 */
62
63#ifdef COMPILING_BSLSTL_VARIANT_H
64
65// When generating the expansion of a variadic template, the
66// sim_cpp11_features.pl script currently expands the primary template by the
67// required number of template arguments. If there is a partial specialization
68// that adds a non variadic template parameter, the generated primary template
69// will no longer match the expansion of such specialization. In the case of
70// 'variant' metafunction helpers, such additional template argument is always
71// a type parameter. To work around this issue, a dummy template type
72// parameter is added to the primary template and defaulted to
73// 'BSLSTL_VARIANT_NOT_A_TYPE'.
74typedef void BSLSTL_VARIANT_NOT_A_TYPE;
75
76namespace bsl {
77
78#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
79// {{{ BEGIN GENERATED CODE
80// Command line: sim_cpp11_features.pl bslstl_variant.h
81#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
82#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
83#endif
84#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_A
85#define BSLSTL_VARIANT_VARIADIC_LIMIT_A BSLSTL_VARIANT_VARIADIC_LIMIT
86#endif
87template <class t_HEAD
88#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 0
89 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
90#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 0
91
92#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 1
93 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
94#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 1
95
96#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 2
97 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
98#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 2
99
100#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 3
101 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
102#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 3
103
104#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 4
105 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
106#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 4
107
108#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 5
109 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
110#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 5
111
112#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 6
113 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
114#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 6
115
116#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 7
117 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
118#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 7
119
120#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 8
121 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
122#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 8
123
124#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 9
125 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
126#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 9
127
128#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 10
129 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
130#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 10
131
132#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 11
133 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
134#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 11
135
136#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 12
137 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
138#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 12
139
140#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 13
141 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 13
143
144#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 14
145 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 14
147
148#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 15
149 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
150#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 15
151
152#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 16
153 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
154#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 16
155
156#if BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 17
157 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_A >= 17
159 , class = BSLS_COMPILERFEATURES_NILT>
160class variant;
161
162#else
163// The generated code below is a workaround for the absence of perfect
164// forwarding in some compilers.
165template <class t_HEAD, class... t_TAIL>
166class variant;
167// }}} END GENERATED CODE
168#endif
169
170// TRAITS
171
172 // ===================
173 // struct variant_size
174 // ===================
175
176/// This metafunction calculates the number of alternatives in the (possibly
177/// cv-qualified) `bsl::variant` type of (template parameter)
178/// `t_BSL_VARIANT`. The primary template is not defined.
179template <class t_BSL_VARIANT>
180struct variant_size;
181
182template <class t_BSL_VARIANT>
183struct variant_size<const t_BSL_VARIANT> : variant_size<t_BSL_VARIANT> {
184};
185
186template <class t_BSL_VARIANT>
187struct variant_size<volatile t_BSL_VARIANT> : variant_size<t_BSL_VARIANT> {
188};
189
190template <class t_BSL_VARIANT>
191struct variant_size<const volatile t_BSL_VARIANT>
192: variant_size<t_BSL_VARIANT> {
193};
194
195#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
196// {{{ BEGIN GENERATED CODE
197// Command line: sim_cpp11_features.pl bslstl_variant.h
198#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
199#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
200#endif
201#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_B
202#define BSLSTL_VARIANT_VARIADIC_LIMIT_B BSLSTL_VARIANT_VARIADIC_LIMIT
203#endif
204#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 0
205template <class t_HEAD>
206struct variant_size<variant<t_HEAD> >
207: bsl::integral_constant<size_t, 1 + 0u> {
208};
209#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 0
210
211#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 1
212template <class t_HEAD, class t_TAIL_01>
213struct variant_size<variant<t_HEAD, t_TAIL_01> >
214: bsl::integral_constant<size_t, 1 + 1u> {
215};
216#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 1
217
218#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 2
219template <class t_HEAD, class t_TAIL_01,
220 class t_TAIL_02>
221struct variant_size<variant<t_HEAD, t_TAIL_01,
222 t_TAIL_02> >
223: bsl::integral_constant<size_t, 1 + 2u> {
224};
225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 2
226
227#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 3
228template <class t_HEAD, class t_TAIL_01,
229 class t_TAIL_02,
230 class t_TAIL_03>
231struct variant_size<variant<t_HEAD, t_TAIL_01,
232 t_TAIL_02,
233 t_TAIL_03> >
234: bsl::integral_constant<size_t, 1 + 3u> {
235};
236#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 3
237
238#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 4
239template <class t_HEAD, class t_TAIL_01,
240 class t_TAIL_02,
241 class t_TAIL_03,
242 class t_TAIL_04>
243struct variant_size<variant<t_HEAD, t_TAIL_01,
244 t_TAIL_02,
245 t_TAIL_03,
246 t_TAIL_04> >
247: bsl::integral_constant<size_t, 1 + 4u> {
248};
249#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 4
250
251#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 5
252template <class t_HEAD, class t_TAIL_01,
253 class t_TAIL_02,
254 class t_TAIL_03,
255 class t_TAIL_04,
256 class t_TAIL_05>
257struct variant_size<variant<t_HEAD, t_TAIL_01,
258 t_TAIL_02,
259 t_TAIL_03,
260 t_TAIL_04,
261 t_TAIL_05> >
262: bsl::integral_constant<size_t, 1 + 5u> {
263};
264#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 5
265
266#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 6
267template <class t_HEAD, class t_TAIL_01,
268 class t_TAIL_02,
269 class t_TAIL_03,
270 class t_TAIL_04,
271 class t_TAIL_05,
272 class t_TAIL_06>
273struct variant_size<variant<t_HEAD, t_TAIL_01,
274 t_TAIL_02,
275 t_TAIL_03,
276 t_TAIL_04,
277 t_TAIL_05,
278 t_TAIL_06> >
279: bsl::integral_constant<size_t, 1 + 6u> {
280};
281#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 6
282
283#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 7
284template <class t_HEAD, class t_TAIL_01,
285 class t_TAIL_02,
286 class t_TAIL_03,
287 class t_TAIL_04,
288 class t_TAIL_05,
289 class t_TAIL_06,
290 class t_TAIL_07>
291struct variant_size<variant<t_HEAD, t_TAIL_01,
292 t_TAIL_02,
293 t_TAIL_03,
294 t_TAIL_04,
295 t_TAIL_05,
296 t_TAIL_06,
297 t_TAIL_07> >
298: bsl::integral_constant<size_t, 1 + 7u> {
299};
300#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 7
301
302#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 8
303template <class t_HEAD, class t_TAIL_01,
304 class t_TAIL_02,
305 class t_TAIL_03,
306 class t_TAIL_04,
307 class t_TAIL_05,
308 class t_TAIL_06,
309 class t_TAIL_07,
310 class t_TAIL_08>
311struct variant_size<variant<t_HEAD, t_TAIL_01,
312 t_TAIL_02,
313 t_TAIL_03,
314 t_TAIL_04,
315 t_TAIL_05,
316 t_TAIL_06,
317 t_TAIL_07,
318 t_TAIL_08> >
319: bsl::integral_constant<size_t, 1 + 8u> {
320};
321#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 8
322
323#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 9
324template <class t_HEAD, class t_TAIL_01,
325 class t_TAIL_02,
326 class t_TAIL_03,
327 class t_TAIL_04,
328 class t_TAIL_05,
329 class t_TAIL_06,
330 class t_TAIL_07,
331 class t_TAIL_08,
332 class t_TAIL_09>
333struct variant_size<variant<t_HEAD, t_TAIL_01,
334 t_TAIL_02,
335 t_TAIL_03,
336 t_TAIL_04,
337 t_TAIL_05,
338 t_TAIL_06,
339 t_TAIL_07,
340 t_TAIL_08,
341 t_TAIL_09> >
342: bsl::integral_constant<size_t, 1 + 9u> {
343};
344#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 9
345
346#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 10
347template <class t_HEAD, class t_TAIL_01,
348 class t_TAIL_02,
349 class t_TAIL_03,
350 class t_TAIL_04,
351 class t_TAIL_05,
352 class t_TAIL_06,
353 class t_TAIL_07,
354 class t_TAIL_08,
355 class t_TAIL_09,
356 class t_TAIL_10>
357struct variant_size<variant<t_HEAD, t_TAIL_01,
358 t_TAIL_02,
359 t_TAIL_03,
360 t_TAIL_04,
361 t_TAIL_05,
362 t_TAIL_06,
363 t_TAIL_07,
364 t_TAIL_08,
365 t_TAIL_09,
366 t_TAIL_10> >
367: bsl::integral_constant<size_t, 1 + 10u> {
368};
369#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 10
370
371#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 11
372template <class t_HEAD, class t_TAIL_01,
373 class t_TAIL_02,
374 class t_TAIL_03,
375 class t_TAIL_04,
376 class t_TAIL_05,
377 class t_TAIL_06,
378 class t_TAIL_07,
379 class t_TAIL_08,
380 class t_TAIL_09,
381 class t_TAIL_10,
382 class t_TAIL_11>
383struct variant_size<variant<t_HEAD, t_TAIL_01,
384 t_TAIL_02,
385 t_TAIL_03,
386 t_TAIL_04,
387 t_TAIL_05,
388 t_TAIL_06,
389 t_TAIL_07,
390 t_TAIL_08,
391 t_TAIL_09,
392 t_TAIL_10,
393 t_TAIL_11> >
394: bsl::integral_constant<size_t, 1 + 11u> {
395};
396#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 11
397
398#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 12
399template <class t_HEAD, class t_TAIL_01,
400 class t_TAIL_02,
401 class t_TAIL_03,
402 class t_TAIL_04,
403 class t_TAIL_05,
404 class t_TAIL_06,
405 class t_TAIL_07,
406 class t_TAIL_08,
407 class t_TAIL_09,
408 class t_TAIL_10,
409 class t_TAIL_11,
410 class t_TAIL_12>
411struct variant_size<variant<t_HEAD, t_TAIL_01,
412 t_TAIL_02,
413 t_TAIL_03,
414 t_TAIL_04,
415 t_TAIL_05,
416 t_TAIL_06,
417 t_TAIL_07,
418 t_TAIL_08,
419 t_TAIL_09,
420 t_TAIL_10,
421 t_TAIL_11,
422 t_TAIL_12> >
423: bsl::integral_constant<size_t, 1 + 12u> {
424};
425#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 12
426
427#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 13
428template <class t_HEAD, class t_TAIL_01,
429 class t_TAIL_02,
430 class t_TAIL_03,
431 class t_TAIL_04,
432 class t_TAIL_05,
433 class t_TAIL_06,
434 class t_TAIL_07,
435 class t_TAIL_08,
436 class t_TAIL_09,
437 class t_TAIL_10,
438 class t_TAIL_11,
439 class t_TAIL_12,
440 class t_TAIL_13>
441struct variant_size<variant<t_HEAD, t_TAIL_01,
442 t_TAIL_02,
443 t_TAIL_03,
444 t_TAIL_04,
445 t_TAIL_05,
446 t_TAIL_06,
447 t_TAIL_07,
448 t_TAIL_08,
449 t_TAIL_09,
450 t_TAIL_10,
451 t_TAIL_11,
452 t_TAIL_12,
453 t_TAIL_13> >
454: bsl::integral_constant<size_t, 1 + 13u> {
455};
456#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 13
457
458#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 14
459template <class t_HEAD, class t_TAIL_01,
460 class t_TAIL_02,
461 class t_TAIL_03,
462 class t_TAIL_04,
463 class t_TAIL_05,
464 class t_TAIL_06,
465 class t_TAIL_07,
466 class t_TAIL_08,
467 class t_TAIL_09,
468 class t_TAIL_10,
469 class t_TAIL_11,
470 class t_TAIL_12,
471 class t_TAIL_13,
472 class t_TAIL_14>
473struct variant_size<variant<t_HEAD, t_TAIL_01,
474 t_TAIL_02,
475 t_TAIL_03,
476 t_TAIL_04,
477 t_TAIL_05,
478 t_TAIL_06,
479 t_TAIL_07,
480 t_TAIL_08,
481 t_TAIL_09,
482 t_TAIL_10,
483 t_TAIL_11,
484 t_TAIL_12,
485 t_TAIL_13,
486 t_TAIL_14> >
487: bsl::integral_constant<size_t, 1 + 14u> {
488};
489#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 14
490
491#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 15
492template <class t_HEAD, class t_TAIL_01,
493 class t_TAIL_02,
494 class t_TAIL_03,
495 class t_TAIL_04,
496 class t_TAIL_05,
497 class t_TAIL_06,
498 class t_TAIL_07,
499 class t_TAIL_08,
500 class t_TAIL_09,
501 class t_TAIL_10,
502 class t_TAIL_11,
503 class t_TAIL_12,
504 class t_TAIL_13,
505 class t_TAIL_14,
506 class t_TAIL_15>
507struct variant_size<variant<t_HEAD, t_TAIL_01,
508 t_TAIL_02,
509 t_TAIL_03,
510 t_TAIL_04,
511 t_TAIL_05,
512 t_TAIL_06,
513 t_TAIL_07,
514 t_TAIL_08,
515 t_TAIL_09,
516 t_TAIL_10,
517 t_TAIL_11,
518 t_TAIL_12,
519 t_TAIL_13,
520 t_TAIL_14,
521 t_TAIL_15> >
522: bsl::integral_constant<size_t, 1 + 15u> {
523};
524#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 15
525
526#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 16
527template <class t_HEAD, class t_TAIL_01,
528 class t_TAIL_02,
529 class t_TAIL_03,
530 class t_TAIL_04,
531 class t_TAIL_05,
532 class t_TAIL_06,
533 class t_TAIL_07,
534 class t_TAIL_08,
535 class t_TAIL_09,
536 class t_TAIL_10,
537 class t_TAIL_11,
538 class t_TAIL_12,
539 class t_TAIL_13,
540 class t_TAIL_14,
541 class t_TAIL_15,
542 class t_TAIL_16>
543struct variant_size<variant<t_HEAD, t_TAIL_01,
544 t_TAIL_02,
545 t_TAIL_03,
546 t_TAIL_04,
547 t_TAIL_05,
548 t_TAIL_06,
549 t_TAIL_07,
550 t_TAIL_08,
551 t_TAIL_09,
552 t_TAIL_10,
553 t_TAIL_11,
554 t_TAIL_12,
555 t_TAIL_13,
556 t_TAIL_14,
557 t_TAIL_15,
558 t_TAIL_16> >
559: bsl::integral_constant<size_t, 1 + 16u> {
560};
561#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 16
562
563#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 17
564template <class t_HEAD, class t_TAIL_01,
565 class t_TAIL_02,
566 class t_TAIL_03,
567 class t_TAIL_04,
568 class t_TAIL_05,
569 class t_TAIL_06,
570 class t_TAIL_07,
571 class t_TAIL_08,
572 class t_TAIL_09,
573 class t_TAIL_10,
574 class t_TAIL_11,
575 class t_TAIL_12,
576 class t_TAIL_13,
577 class t_TAIL_14,
578 class t_TAIL_15,
579 class t_TAIL_16,
580 class t_TAIL_17>
581struct variant_size<variant<t_HEAD, t_TAIL_01,
582 t_TAIL_02,
583 t_TAIL_03,
584 t_TAIL_04,
585 t_TAIL_05,
586 t_TAIL_06,
587 t_TAIL_07,
588 t_TAIL_08,
589 t_TAIL_09,
590 t_TAIL_10,
591 t_TAIL_11,
592 t_TAIL_12,
593 t_TAIL_13,
594 t_TAIL_14,
595 t_TAIL_15,
596 t_TAIL_16,
597 t_TAIL_17> >
598: bsl::integral_constant<size_t, 1 + 17u> {
599};
600#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 17
601
602#if BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 18
603template <class t_HEAD, class t_TAIL_01,
604 class t_TAIL_02,
605 class t_TAIL_03,
606 class t_TAIL_04,
607 class t_TAIL_05,
608 class t_TAIL_06,
609 class t_TAIL_07,
610 class t_TAIL_08,
611 class t_TAIL_09,
612 class t_TAIL_10,
613 class t_TAIL_11,
614 class t_TAIL_12,
615 class t_TAIL_13,
616 class t_TAIL_14,
617 class t_TAIL_15,
618 class t_TAIL_16,
619 class t_TAIL_17,
620 class t_TAIL_18>
621struct variant_size<variant<t_HEAD, t_TAIL_01,
622 t_TAIL_02,
623 t_TAIL_03,
624 t_TAIL_04,
625 t_TAIL_05,
626 t_TAIL_06,
627 t_TAIL_07,
628 t_TAIL_08,
629 t_TAIL_09,
630 t_TAIL_10,
631 t_TAIL_11,
632 t_TAIL_12,
633 t_TAIL_13,
634 t_TAIL_14,
635 t_TAIL_15,
636 t_TAIL_16,
637 t_TAIL_17,
638 t_TAIL_18> >
639: bsl::integral_constant<size_t, 1 + 18u> {
640};
641#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_B >= 18
642
643#else
644// The generated code below is a workaround for the absence of perfect
645// forwarding in some compilers.
646template <class t_HEAD, class... t_TAIL>
647struct variant_size<variant<t_HEAD, t_TAIL...> >
648: bsl::integral_constant<size_t, 1 + sizeof...(t_TAIL)> {
649};
650// }}} END GENERATED CODE
651#endif
652
653#ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
654/// This variable template represents the result value of the
655/// `bsl::variant_size` metafunction.
656template <class t_BSL_VARIANT>
657BSLS_KEYWORD_INLINE_VARIABLE constexpr size_t variant_size_v =
658 variant_size<t_BSL_VARIANT>::value;
659#endif // BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
660
661/// This value is returned by `bsl::variant::index()` if
662/// `valueless_by_exception()` is `true`.
664
665 // ==========================
666 // struct variant_alternative
667 // ==========================
668
669/// This metafunction calculates the type of the alternative whose index is
670/// (template parameter) `t_INDEX` in the possibly cv-qualified
671/// `bsl::variant` type of (template parameter) `t_TYPE`. If `t_TYPE` is
672/// cv-qualified, its cv-qualifiers are applied to the alternative.
673template <size_t t_INDEX, class t_TYPE>
674struct variant_alternative;
675
676template <size_t t_INDEX, class t_TYPE>
677struct variant_alternative<t_INDEX, const t_TYPE> {
678 typedef typename variant_alternative<t_INDEX, t_TYPE>::type const type;
679};
680
681template <size_t t_INDEX, class t_TYPE>
682struct variant_alternative<t_INDEX, volatile t_TYPE> {
683 typedef typename variant_alternative<t_INDEX, t_TYPE>::type volatile type;
684};
685
686template <size_t t_INDEX, class t_TYPE>
687struct variant_alternative<t_INDEX, const volatile t_TYPE> {
688 typedef
689 typename variant_alternative<t_INDEX, t_TYPE>::type const volatile type;
690};
691
692#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
693// {{{ BEGIN GENERATED CODE
694// Command line: sim_cpp11_features.pl bslstl_variant.h
695#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
696#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
697#endif
698#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_C
699#define BSLSTL_VARIANT_VARIADIC_LIMIT_C BSLSTL_VARIANT_VARIADIC_LIMIT
700#endif
701
702template <size_t t_INDEX,
703 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE
704#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
705 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
706#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
707
708#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
709 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
710#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
711
712#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
713 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
714#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
715
716#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
717 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
719
720#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
721 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
722#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
723
724#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
725 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
726#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
727
728#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
729 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
730#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
731
732#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
733 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
734#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
735
736#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
737 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
738#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
739
740#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
741 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
742#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
743
744#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
745 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
747
748#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
749 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
750#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
751
752#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
753 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
754#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
755
756#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
757 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
758#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
759
760#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
761 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
762#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
763
764#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
765 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
766#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
767
768#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
769 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
770#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
771
772#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
773 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
774#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
775 , class = BSLS_COMPILERFEATURES_NILT>
776struct Variant_VariantAlternativeImpl;
777
778#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
779template <size_t t_INDEX, class t_HEAD>
780struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD>
781: Variant_VariantAlternativeImpl<t_INDEX - 1> {
782};
783#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
784
785#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
786template <size_t t_INDEX, class t_HEAD, class t_TAIL_01>
787struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01>
788: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01> {
789};
790#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
791
792#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
793template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
794 class t_TAIL_02>
795struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
796 t_TAIL_02>
797: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
798 t_TAIL_02> {
799};
800#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
801
802#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
803template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
804 class t_TAIL_02,
805 class t_TAIL_03>
806struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
807 t_TAIL_02,
808 t_TAIL_03>
809: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
810 t_TAIL_02,
811 t_TAIL_03> {
812};
813#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
814
815#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
816template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
817 class t_TAIL_02,
818 class t_TAIL_03,
819 class t_TAIL_04>
820struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
821 t_TAIL_02,
822 t_TAIL_03,
823 t_TAIL_04>
824: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
825 t_TAIL_02,
826 t_TAIL_03,
827 t_TAIL_04> {
828};
829#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
830
831#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
832template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
833 class t_TAIL_02,
834 class t_TAIL_03,
835 class t_TAIL_04,
836 class t_TAIL_05>
837struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
838 t_TAIL_02,
839 t_TAIL_03,
840 t_TAIL_04,
841 t_TAIL_05>
842: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
843 t_TAIL_02,
844 t_TAIL_03,
845 t_TAIL_04,
846 t_TAIL_05> {
847};
848#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
849
850#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
851template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
852 class t_TAIL_02,
853 class t_TAIL_03,
854 class t_TAIL_04,
855 class t_TAIL_05,
856 class t_TAIL_06>
857struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
858 t_TAIL_02,
859 t_TAIL_03,
860 t_TAIL_04,
861 t_TAIL_05,
862 t_TAIL_06>
863: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
864 t_TAIL_02,
865 t_TAIL_03,
866 t_TAIL_04,
867 t_TAIL_05,
868 t_TAIL_06> {
869};
870#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
871
872#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
873template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
874 class t_TAIL_02,
875 class t_TAIL_03,
876 class t_TAIL_04,
877 class t_TAIL_05,
878 class t_TAIL_06,
879 class t_TAIL_07>
880struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
881 t_TAIL_02,
882 t_TAIL_03,
883 t_TAIL_04,
884 t_TAIL_05,
885 t_TAIL_06,
886 t_TAIL_07>
887: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
888 t_TAIL_02,
889 t_TAIL_03,
890 t_TAIL_04,
891 t_TAIL_05,
892 t_TAIL_06,
893 t_TAIL_07> {
894};
895#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
896
897#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
898template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
899 class t_TAIL_02,
900 class t_TAIL_03,
901 class t_TAIL_04,
902 class t_TAIL_05,
903 class t_TAIL_06,
904 class t_TAIL_07,
905 class t_TAIL_08>
906struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
907 t_TAIL_02,
908 t_TAIL_03,
909 t_TAIL_04,
910 t_TAIL_05,
911 t_TAIL_06,
912 t_TAIL_07,
913 t_TAIL_08>
914: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
915 t_TAIL_02,
916 t_TAIL_03,
917 t_TAIL_04,
918 t_TAIL_05,
919 t_TAIL_06,
920 t_TAIL_07,
921 t_TAIL_08> {
922};
923#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
924
925#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
926template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
927 class t_TAIL_02,
928 class t_TAIL_03,
929 class t_TAIL_04,
930 class t_TAIL_05,
931 class t_TAIL_06,
932 class t_TAIL_07,
933 class t_TAIL_08,
934 class t_TAIL_09>
935struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
936 t_TAIL_02,
937 t_TAIL_03,
938 t_TAIL_04,
939 t_TAIL_05,
940 t_TAIL_06,
941 t_TAIL_07,
942 t_TAIL_08,
943 t_TAIL_09>
944: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
945 t_TAIL_02,
946 t_TAIL_03,
947 t_TAIL_04,
948 t_TAIL_05,
949 t_TAIL_06,
950 t_TAIL_07,
951 t_TAIL_08,
952 t_TAIL_09> {
953};
954#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
955
956#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
957template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
958 class t_TAIL_02,
959 class t_TAIL_03,
960 class t_TAIL_04,
961 class t_TAIL_05,
962 class t_TAIL_06,
963 class t_TAIL_07,
964 class t_TAIL_08,
965 class t_TAIL_09,
966 class t_TAIL_10>
967struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
968 t_TAIL_02,
969 t_TAIL_03,
970 t_TAIL_04,
971 t_TAIL_05,
972 t_TAIL_06,
973 t_TAIL_07,
974 t_TAIL_08,
975 t_TAIL_09,
976 t_TAIL_10>
977: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
978 t_TAIL_02,
979 t_TAIL_03,
980 t_TAIL_04,
981 t_TAIL_05,
982 t_TAIL_06,
983 t_TAIL_07,
984 t_TAIL_08,
985 t_TAIL_09,
986 t_TAIL_10> {
987};
988#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
989
990#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
991template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
992 class t_TAIL_02,
993 class t_TAIL_03,
994 class t_TAIL_04,
995 class t_TAIL_05,
996 class t_TAIL_06,
997 class t_TAIL_07,
998 class t_TAIL_08,
999 class t_TAIL_09,
1000 class t_TAIL_10,
1001 class t_TAIL_11>
1002struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1003 t_TAIL_02,
1004 t_TAIL_03,
1005 t_TAIL_04,
1006 t_TAIL_05,
1007 t_TAIL_06,
1008 t_TAIL_07,
1009 t_TAIL_08,
1010 t_TAIL_09,
1011 t_TAIL_10,
1012 t_TAIL_11>
1013: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1014 t_TAIL_02,
1015 t_TAIL_03,
1016 t_TAIL_04,
1017 t_TAIL_05,
1018 t_TAIL_06,
1019 t_TAIL_07,
1020 t_TAIL_08,
1021 t_TAIL_09,
1022 t_TAIL_10,
1023 t_TAIL_11> {
1024};
1025#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
1026
1027#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
1028template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1029 class t_TAIL_02,
1030 class t_TAIL_03,
1031 class t_TAIL_04,
1032 class t_TAIL_05,
1033 class t_TAIL_06,
1034 class t_TAIL_07,
1035 class t_TAIL_08,
1036 class t_TAIL_09,
1037 class t_TAIL_10,
1038 class t_TAIL_11,
1039 class t_TAIL_12>
1040struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1041 t_TAIL_02,
1042 t_TAIL_03,
1043 t_TAIL_04,
1044 t_TAIL_05,
1045 t_TAIL_06,
1046 t_TAIL_07,
1047 t_TAIL_08,
1048 t_TAIL_09,
1049 t_TAIL_10,
1050 t_TAIL_11,
1051 t_TAIL_12>
1052: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1053 t_TAIL_02,
1054 t_TAIL_03,
1055 t_TAIL_04,
1056 t_TAIL_05,
1057 t_TAIL_06,
1058 t_TAIL_07,
1059 t_TAIL_08,
1060 t_TAIL_09,
1061 t_TAIL_10,
1062 t_TAIL_11,
1063 t_TAIL_12> {
1064};
1065#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
1066
1067#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
1068template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1069 class t_TAIL_02,
1070 class t_TAIL_03,
1071 class t_TAIL_04,
1072 class t_TAIL_05,
1073 class t_TAIL_06,
1074 class t_TAIL_07,
1075 class t_TAIL_08,
1076 class t_TAIL_09,
1077 class t_TAIL_10,
1078 class t_TAIL_11,
1079 class t_TAIL_12,
1080 class t_TAIL_13>
1081struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1082 t_TAIL_02,
1083 t_TAIL_03,
1084 t_TAIL_04,
1085 t_TAIL_05,
1086 t_TAIL_06,
1087 t_TAIL_07,
1088 t_TAIL_08,
1089 t_TAIL_09,
1090 t_TAIL_10,
1091 t_TAIL_11,
1092 t_TAIL_12,
1093 t_TAIL_13>
1094: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1095 t_TAIL_02,
1096 t_TAIL_03,
1097 t_TAIL_04,
1098 t_TAIL_05,
1099 t_TAIL_06,
1100 t_TAIL_07,
1101 t_TAIL_08,
1102 t_TAIL_09,
1103 t_TAIL_10,
1104 t_TAIL_11,
1105 t_TAIL_12,
1106 t_TAIL_13> {
1107};
1108#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
1109
1110#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
1111template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1112 class t_TAIL_02,
1113 class t_TAIL_03,
1114 class t_TAIL_04,
1115 class t_TAIL_05,
1116 class t_TAIL_06,
1117 class t_TAIL_07,
1118 class t_TAIL_08,
1119 class t_TAIL_09,
1120 class t_TAIL_10,
1121 class t_TAIL_11,
1122 class t_TAIL_12,
1123 class t_TAIL_13,
1124 class t_TAIL_14>
1125struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1126 t_TAIL_02,
1127 t_TAIL_03,
1128 t_TAIL_04,
1129 t_TAIL_05,
1130 t_TAIL_06,
1131 t_TAIL_07,
1132 t_TAIL_08,
1133 t_TAIL_09,
1134 t_TAIL_10,
1135 t_TAIL_11,
1136 t_TAIL_12,
1137 t_TAIL_13,
1138 t_TAIL_14>
1139: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1140 t_TAIL_02,
1141 t_TAIL_03,
1142 t_TAIL_04,
1143 t_TAIL_05,
1144 t_TAIL_06,
1145 t_TAIL_07,
1146 t_TAIL_08,
1147 t_TAIL_09,
1148 t_TAIL_10,
1149 t_TAIL_11,
1150 t_TAIL_12,
1151 t_TAIL_13,
1152 t_TAIL_14> {
1153};
1154#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
1155
1156#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
1157template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1158 class t_TAIL_02,
1159 class t_TAIL_03,
1160 class t_TAIL_04,
1161 class t_TAIL_05,
1162 class t_TAIL_06,
1163 class t_TAIL_07,
1164 class t_TAIL_08,
1165 class t_TAIL_09,
1166 class t_TAIL_10,
1167 class t_TAIL_11,
1168 class t_TAIL_12,
1169 class t_TAIL_13,
1170 class t_TAIL_14,
1171 class t_TAIL_15>
1172struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1173 t_TAIL_02,
1174 t_TAIL_03,
1175 t_TAIL_04,
1176 t_TAIL_05,
1177 t_TAIL_06,
1178 t_TAIL_07,
1179 t_TAIL_08,
1180 t_TAIL_09,
1181 t_TAIL_10,
1182 t_TAIL_11,
1183 t_TAIL_12,
1184 t_TAIL_13,
1185 t_TAIL_14,
1186 t_TAIL_15>
1187: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1188 t_TAIL_02,
1189 t_TAIL_03,
1190 t_TAIL_04,
1191 t_TAIL_05,
1192 t_TAIL_06,
1193 t_TAIL_07,
1194 t_TAIL_08,
1195 t_TAIL_09,
1196 t_TAIL_10,
1197 t_TAIL_11,
1198 t_TAIL_12,
1199 t_TAIL_13,
1200 t_TAIL_14,
1201 t_TAIL_15> {
1202};
1203#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
1204
1205#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
1206template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1207 class t_TAIL_02,
1208 class t_TAIL_03,
1209 class t_TAIL_04,
1210 class t_TAIL_05,
1211 class t_TAIL_06,
1212 class t_TAIL_07,
1213 class t_TAIL_08,
1214 class t_TAIL_09,
1215 class t_TAIL_10,
1216 class t_TAIL_11,
1217 class t_TAIL_12,
1218 class t_TAIL_13,
1219 class t_TAIL_14,
1220 class t_TAIL_15,
1221 class t_TAIL_16>
1222struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1223 t_TAIL_02,
1224 t_TAIL_03,
1225 t_TAIL_04,
1226 t_TAIL_05,
1227 t_TAIL_06,
1228 t_TAIL_07,
1229 t_TAIL_08,
1230 t_TAIL_09,
1231 t_TAIL_10,
1232 t_TAIL_11,
1233 t_TAIL_12,
1234 t_TAIL_13,
1235 t_TAIL_14,
1236 t_TAIL_15,
1237 t_TAIL_16>
1238: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1239 t_TAIL_02,
1240 t_TAIL_03,
1241 t_TAIL_04,
1242 t_TAIL_05,
1243 t_TAIL_06,
1244 t_TAIL_07,
1245 t_TAIL_08,
1246 t_TAIL_09,
1247 t_TAIL_10,
1248 t_TAIL_11,
1249 t_TAIL_12,
1250 t_TAIL_13,
1251 t_TAIL_14,
1252 t_TAIL_15,
1253 t_TAIL_16> {
1254};
1255#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
1256
1257#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
1258template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1259 class t_TAIL_02,
1260 class t_TAIL_03,
1261 class t_TAIL_04,
1262 class t_TAIL_05,
1263 class t_TAIL_06,
1264 class t_TAIL_07,
1265 class t_TAIL_08,
1266 class t_TAIL_09,
1267 class t_TAIL_10,
1268 class t_TAIL_11,
1269 class t_TAIL_12,
1270 class t_TAIL_13,
1271 class t_TAIL_14,
1272 class t_TAIL_15,
1273 class t_TAIL_16,
1274 class t_TAIL_17>
1275struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1276 t_TAIL_02,
1277 t_TAIL_03,
1278 t_TAIL_04,
1279 t_TAIL_05,
1280 t_TAIL_06,
1281 t_TAIL_07,
1282 t_TAIL_08,
1283 t_TAIL_09,
1284 t_TAIL_10,
1285 t_TAIL_11,
1286 t_TAIL_12,
1287 t_TAIL_13,
1288 t_TAIL_14,
1289 t_TAIL_15,
1290 t_TAIL_16,
1291 t_TAIL_17>
1292: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1293 t_TAIL_02,
1294 t_TAIL_03,
1295 t_TAIL_04,
1296 t_TAIL_05,
1297 t_TAIL_06,
1298 t_TAIL_07,
1299 t_TAIL_08,
1300 t_TAIL_09,
1301 t_TAIL_10,
1302 t_TAIL_11,
1303 t_TAIL_12,
1304 t_TAIL_13,
1305 t_TAIL_14,
1306 t_TAIL_15,
1307 t_TAIL_16,
1308 t_TAIL_17> {
1309};
1310#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
1311
1312#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
1313template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1314 class t_TAIL_02,
1315 class t_TAIL_03,
1316 class t_TAIL_04,
1317 class t_TAIL_05,
1318 class t_TAIL_06,
1319 class t_TAIL_07,
1320 class t_TAIL_08,
1321 class t_TAIL_09,
1322 class t_TAIL_10,
1323 class t_TAIL_11,
1324 class t_TAIL_12,
1325 class t_TAIL_13,
1326 class t_TAIL_14,
1327 class t_TAIL_15,
1328 class t_TAIL_16,
1329 class t_TAIL_17,
1330 class t_TAIL_18>
1331struct Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1332 t_TAIL_02,
1333 t_TAIL_03,
1334 t_TAIL_04,
1335 t_TAIL_05,
1336 t_TAIL_06,
1337 t_TAIL_07,
1338 t_TAIL_08,
1339 t_TAIL_09,
1340 t_TAIL_10,
1341 t_TAIL_11,
1342 t_TAIL_12,
1343 t_TAIL_13,
1344 t_TAIL_14,
1345 t_TAIL_15,
1346 t_TAIL_16,
1347 t_TAIL_17,
1348 t_TAIL_18>
1349: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL_01,
1350 t_TAIL_02,
1351 t_TAIL_03,
1352 t_TAIL_04,
1353 t_TAIL_05,
1354 t_TAIL_06,
1355 t_TAIL_07,
1356 t_TAIL_08,
1357 t_TAIL_09,
1358 t_TAIL_10,
1359 t_TAIL_11,
1360 t_TAIL_12,
1361 t_TAIL_13,
1362 t_TAIL_14,
1363 t_TAIL_15,
1364 t_TAIL_16,
1365 t_TAIL_17,
1366 t_TAIL_18> {
1367};
1368#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
1369
1370
1371template <size_t t_INDEX>
1372struct Variant_VariantAlternativeImpl<t_INDEX, BSLSTL_VARIANT_NOT_A_TYPE> {
1373};
1374
1375template <>
1376struct Variant_VariantAlternativeImpl<0, BSLSTL_VARIANT_NOT_A_TYPE> {
1377};
1378
1379#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
1380template <class t_HEAD>
1381struct Variant_VariantAlternativeImpl<0, t_HEAD> {
1382 typedef t_HEAD type;
1383};
1384#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
1385
1386#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
1387template <class t_HEAD, class t_TAIL_01>
1388struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01> {
1389 typedef t_HEAD type;
1390};
1391#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
1392
1393#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
1394template <class t_HEAD, class t_TAIL_01,
1395 class t_TAIL_02>
1396struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1397 t_TAIL_02> {
1398 typedef t_HEAD type;
1399};
1400#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
1401
1402#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
1403template <class t_HEAD, class t_TAIL_01,
1404 class t_TAIL_02,
1405 class t_TAIL_03>
1406struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1407 t_TAIL_02,
1408 t_TAIL_03> {
1409 typedef t_HEAD type;
1410};
1411#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
1412
1413#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
1414template <class t_HEAD, class t_TAIL_01,
1415 class t_TAIL_02,
1416 class t_TAIL_03,
1417 class t_TAIL_04>
1418struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1419 t_TAIL_02,
1420 t_TAIL_03,
1421 t_TAIL_04> {
1422 typedef t_HEAD type;
1423};
1424#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
1425
1426#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
1427template <class t_HEAD, class t_TAIL_01,
1428 class t_TAIL_02,
1429 class t_TAIL_03,
1430 class t_TAIL_04,
1431 class t_TAIL_05>
1432struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1433 t_TAIL_02,
1434 t_TAIL_03,
1435 t_TAIL_04,
1436 t_TAIL_05> {
1437 typedef t_HEAD type;
1438};
1439#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
1440
1441#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
1442template <class t_HEAD, class t_TAIL_01,
1443 class t_TAIL_02,
1444 class t_TAIL_03,
1445 class t_TAIL_04,
1446 class t_TAIL_05,
1447 class t_TAIL_06>
1448struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1449 t_TAIL_02,
1450 t_TAIL_03,
1451 t_TAIL_04,
1452 t_TAIL_05,
1453 t_TAIL_06> {
1454 typedef t_HEAD type;
1455};
1456#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
1457
1458#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
1459template <class t_HEAD, class t_TAIL_01,
1460 class t_TAIL_02,
1461 class t_TAIL_03,
1462 class t_TAIL_04,
1463 class t_TAIL_05,
1464 class t_TAIL_06,
1465 class t_TAIL_07>
1466struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1467 t_TAIL_02,
1468 t_TAIL_03,
1469 t_TAIL_04,
1470 t_TAIL_05,
1471 t_TAIL_06,
1472 t_TAIL_07> {
1473 typedef t_HEAD type;
1474};
1475#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
1476
1477#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
1478template <class t_HEAD, class t_TAIL_01,
1479 class t_TAIL_02,
1480 class t_TAIL_03,
1481 class t_TAIL_04,
1482 class t_TAIL_05,
1483 class t_TAIL_06,
1484 class t_TAIL_07,
1485 class t_TAIL_08>
1486struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1487 t_TAIL_02,
1488 t_TAIL_03,
1489 t_TAIL_04,
1490 t_TAIL_05,
1491 t_TAIL_06,
1492 t_TAIL_07,
1493 t_TAIL_08> {
1494 typedef t_HEAD type;
1495};
1496#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
1497
1498#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
1499template <class t_HEAD, class t_TAIL_01,
1500 class t_TAIL_02,
1501 class t_TAIL_03,
1502 class t_TAIL_04,
1503 class t_TAIL_05,
1504 class t_TAIL_06,
1505 class t_TAIL_07,
1506 class t_TAIL_08,
1507 class t_TAIL_09>
1508struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1509 t_TAIL_02,
1510 t_TAIL_03,
1511 t_TAIL_04,
1512 t_TAIL_05,
1513 t_TAIL_06,
1514 t_TAIL_07,
1515 t_TAIL_08,
1516 t_TAIL_09> {
1517 typedef t_HEAD type;
1518};
1519#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
1520
1521#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
1522template <class t_HEAD, class t_TAIL_01,
1523 class t_TAIL_02,
1524 class t_TAIL_03,
1525 class t_TAIL_04,
1526 class t_TAIL_05,
1527 class t_TAIL_06,
1528 class t_TAIL_07,
1529 class t_TAIL_08,
1530 class t_TAIL_09,
1531 class t_TAIL_10>
1532struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1533 t_TAIL_02,
1534 t_TAIL_03,
1535 t_TAIL_04,
1536 t_TAIL_05,
1537 t_TAIL_06,
1538 t_TAIL_07,
1539 t_TAIL_08,
1540 t_TAIL_09,
1541 t_TAIL_10> {
1542 typedef t_HEAD type;
1543};
1544#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
1545
1546#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
1547template <class t_HEAD, class t_TAIL_01,
1548 class t_TAIL_02,
1549 class t_TAIL_03,
1550 class t_TAIL_04,
1551 class t_TAIL_05,
1552 class t_TAIL_06,
1553 class t_TAIL_07,
1554 class t_TAIL_08,
1555 class t_TAIL_09,
1556 class t_TAIL_10,
1557 class t_TAIL_11>
1558struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1559 t_TAIL_02,
1560 t_TAIL_03,
1561 t_TAIL_04,
1562 t_TAIL_05,
1563 t_TAIL_06,
1564 t_TAIL_07,
1565 t_TAIL_08,
1566 t_TAIL_09,
1567 t_TAIL_10,
1568 t_TAIL_11> {
1569 typedef t_HEAD type;
1570};
1571#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
1572
1573#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
1574template <class t_HEAD, class t_TAIL_01,
1575 class t_TAIL_02,
1576 class t_TAIL_03,
1577 class t_TAIL_04,
1578 class t_TAIL_05,
1579 class t_TAIL_06,
1580 class t_TAIL_07,
1581 class t_TAIL_08,
1582 class t_TAIL_09,
1583 class t_TAIL_10,
1584 class t_TAIL_11,
1585 class t_TAIL_12>
1586struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1587 t_TAIL_02,
1588 t_TAIL_03,
1589 t_TAIL_04,
1590 t_TAIL_05,
1591 t_TAIL_06,
1592 t_TAIL_07,
1593 t_TAIL_08,
1594 t_TAIL_09,
1595 t_TAIL_10,
1596 t_TAIL_11,
1597 t_TAIL_12> {
1598 typedef t_HEAD type;
1599};
1600#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
1601
1602#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
1603template <class t_HEAD, class t_TAIL_01,
1604 class t_TAIL_02,
1605 class t_TAIL_03,
1606 class t_TAIL_04,
1607 class t_TAIL_05,
1608 class t_TAIL_06,
1609 class t_TAIL_07,
1610 class t_TAIL_08,
1611 class t_TAIL_09,
1612 class t_TAIL_10,
1613 class t_TAIL_11,
1614 class t_TAIL_12,
1615 class t_TAIL_13>
1616struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1617 t_TAIL_02,
1618 t_TAIL_03,
1619 t_TAIL_04,
1620 t_TAIL_05,
1621 t_TAIL_06,
1622 t_TAIL_07,
1623 t_TAIL_08,
1624 t_TAIL_09,
1625 t_TAIL_10,
1626 t_TAIL_11,
1627 t_TAIL_12,
1628 t_TAIL_13> {
1629 typedef t_HEAD type;
1630};
1631#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
1632
1633#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
1634template <class t_HEAD, class t_TAIL_01,
1635 class t_TAIL_02,
1636 class t_TAIL_03,
1637 class t_TAIL_04,
1638 class t_TAIL_05,
1639 class t_TAIL_06,
1640 class t_TAIL_07,
1641 class t_TAIL_08,
1642 class t_TAIL_09,
1643 class t_TAIL_10,
1644 class t_TAIL_11,
1645 class t_TAIL_12,
1646 class t_TAIL_13,
1647 class t_TAIL_14>
1648struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1649 t_TAIL_02,
1650 t_TAIL_03,
1651 t_TAIL_04,
1652 t_TAIL_05,
1653 t_TAIL_06,
1654 t_TAIL_07,
1655 t_TAIL_08,
1656 t_TAIL_09,
1657 t_TAIL_10,
1658 t_TAIL_11,
1659 t_TAIL_12,
1660 t_TAIL_13,
1661 t_TAIL_14> {
1662 typedef t_HEAD type;
1663};
1664#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
1665
1666#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
1667template <class t_HEAD, class t_TAIL_01,
1668 class t_TAIL_02,
1669 class t_TAIL_03,
1670 class t_TAIL_04,
1671 class t_TAIL_05,
1672 class t_TAIL_06,
1673 class t_TAIL_07,
1674 class t_TAIL_08,
1675 class t_TAIL_09,
1676 class t_TAIL_10,
1677 class t_TAIL_11,
1678 class t_TAIL_12,
1679 class t_TAIL_13,
1680 class t_TAIL_14,
1681 class t_TAIL_15>
1682struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1683 t_TAIL_02,
1684 t_TAIL_03,
1685 t_TAIL_04,
1686 t_TAIL_05,
1687 t_TAIL_06,
1688 t_TAIL_07,
1689 t_TAIL_08,
1690 t_TAIL_09,
1691 t_TAIL_10,
1692 t_TAIL_11,
1693 t_TAIL_12,
1694 t_TAIL_13,
1695 t_TAIL_14,
1696 t_TAIL_15> {
1697 typedef t_HEAD type;
1698};
1699#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
1700
1701#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
1702template <class t_HEAD, class t_TAIL_01,
1703 class t_TAIL_02,
1704 class t_TAIL_03,
1705 class t_TAIL_04,
1706 class t_TAIL_05,
1707 class t_TAIL_06,
1708 class t_TAIL_07,
1709 class t_TAIL_08,
1710 class t_TAIL_09,
1711 class t_TAIL_10,
1712 class t_TAIL_11,
1713 class t_TAIL_12,
1714 class t_TAIL_13,
1715 class t_TAIL_14,
1716 class t_TAIL_15,
1717 class t_TAIL_16>
1718struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1719 t_TAIL_02,
1720 t_TAIL_03,
1721 t_TAIL_04,
1722 t_TAIL_05,
1723 t_TAIL_06,
1724 t_TAIL_07,
1725 t_TAIL_08,
1726 t_TAIL_09,
1727 t_TAIL_10,
1728 t_TAIL_11,
1729 t_TAIL_12,
1730 t_TAIL_13,
1731 t_TAIL_14,
1732 t_TAIL_15,
1733 t_TAIL_16> {
1734 typedef t_HEAD type;
1735};
1736#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
1737
1738#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
1739template <class t_HEAD, class t_TAIL_01,
1740 class t_TAIL_02,
1741 class t_TAIL_03,
1742 class t_TAIL_04,
1743 class t_TAIL_05,
1744 class t_TAIL_06,
1745 class t_TAIL_07,
1746 class t_TAIL_08,
1747 class t_TAIL_09,
1748 class t_TAIL_10,
1749 class t_TAIL_11,
1750 class t_TAIL_12,
1751 class t_TAIL_13,
1752 class t_TAIL_14,
1753 class t_TAIL_15,
1754 class t_TAIL_16,
1755 class t_TAIL_17>
1756struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1757 t_TAIL_02,
1758 t_TAIL_03,
1759 t_TAIL_04,
1760 t_TAIL_05,
1761 t_TAIL_06,
1762 t_TAIL_07,
1763 t_TAIL_08,
1764 t_TAIL_09,
1765 t_TAIL_10,
1766 t_TAIL_11,
1767 t_TAIL_12,
1768 t_TAIL_13,
1769 t_TAIL_14,
1770 t_TAIL_15,
1771 t_TAIL_16,
1772 t_TAIL_17> {
1773 typedef t_HEAD type;
1774};
1775#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
1776
1777#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
1778template <class t_HEAD, class t_TAIL_01,
1779 class t_TAIL_02,
1780 class t_TAIL_03,
1781 class t_TAIL_04,
1782 class t_TAIL_05,
1783 class t_TAIL_06,
1784 class t_TAIL_07,
1785 class t_TAIL_08,
1786 class t_TAIL_09,
1787 class t_TAIL_10,
1788 class t_TAIL_11,
1789 class t_TAIL_12,
1790 class t_TAIL_13,
1791 class t_TAIL_14,
1792 class t_TAIL_15,
1793 class t_TAIL_16,
1794 class t_TAIL_17,
1795 class t_TAIL_18>
1796struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL_01,
1797 t_TAIL_02,
1798 t_TAIL_03,
1799 t_TAIL_04,
1800 t_TAIL_05,
1801 t_TAIL_06,
1802 t_TAIL_07,
1803 t_TAIL_08,
1804 t_TAIL_09,
1805 t_TAIL_10,
1806 t_TAIL_11,
1807 t_TAIL_12,
1808 t_TAIL_13,
1809 t_TAIL_14,
1810 t_TAIL_15,
1811 t_TAIL_16,
1812 t_TAIL_17,
1813 t_TAIL_18> {
1814 typedef t_HEAD type;
1815};
1816#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
1817
1818
1819#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
1820template <size_t t_INDEX, class t_HEAD>
1821struct variant_alternative<t_INDEX, variant<t_HEAD> >
1822: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD> {
1823 BSLMF_ASSERT((t_INDEX <
1824 bsl::variant_size<variant<t_HEAD> >::value));
1825};
1826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
1827
1828#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
1829template <size_t t_INDEX, class t_HEAD, class t_TAIL_01>
1830struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >
1831: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01> {
1832 BSLMF_ASSERT((t_INDEX <
1833 bsl::variant_size<variant<t_HEAD, t_TAIL_01> >::value));
1834};
1835#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
1836
1837#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
1838template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1839 class t_TAIL_02>
1840struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
1841 t_TAIL_02> >
1842: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1843 t_TAIL_02> {
1844 BSLMF_ASSERT((t_INDEX <
1845 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
1846 t_TAIL_02> >::value));
1847};
1848#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
1849
1850#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
1851template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1852 class t_TAIL_02,
1853 class t_TAIL_03>
1854struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
1855 t_TAIL_02,
1856 t_TAIL_03> >
1857: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1858 t_TAIL_02,
1859 t_TAIL_03> {
1860 BSLMF_ASSERT((t_INDEX <
1861 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
1862 t_TAIL_02,
1863 t_TAIL_03> >::value));
1864};
1865#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
1866
1867#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
1868template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1869 class t_TAIL_02,
1870 class t_TAIL_03,
1871 class t_TAIL_04>
1872struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
1873 t_TAIL_02,
1874 t_TAIL_03,
1875 t_TAIL_04> >
1876: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1877 t_TAIL_02,
1878 t_TAIL_03,
1879 t_TAIL_04> {
1880 BSLMF_ASSERT((t_INDEX <
1881 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
1882 t_TAIL_02,
1883 t_TAIL_03,
1884 t_TAIL_04> >::value));
1885};
1886#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
1887
1888#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
1889template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1890 class t_TAIL_02,
1891 class t_TAIL_03,
1892 class t_TAIL_04,
1893 class t_TAIL_05>
1894struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
1895 t_TAIL_02,
1896 t_TAIL_03,
1897 t_TAIL_04,
1898 t_TAIL_05> >
1899: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1900 t_TAIL_02,
1901 t_TAIL_03,
1902 t_TAIL_04,
1903 t_TAIL_05> {
1904 BSLMF_ASSERT((t_INDEX <
1905 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
1906 t_TAIL_02,
1907 t_TAIL_03,
1908 t_TAIL_04,
1909 t_TAIL_05> >::value));
1910};
1911#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
1912
1913#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
1914template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1915 class t_TAIL_02,
1916 class t_TAIL_03,
1917 class t_TAIL_04,
1918 class t_TAIL_05,
1919 class t_TAIL_06>
1920struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
1921 t_TAIL_02,
1922 t_TAIL_03,
1923 t_TAIL_04,
1924 t_TAIL_05,
1925 t_TAIL_06> >
1926: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1927 t_TAIL_02,
1928 t_TAIL_03,
1929 t_TAIL_04,
1930 t_TAIL_05,
1931 t_TAIL_06> {
1932 BSLMF_ASSERT((t_INDEX <
1933 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
1934 t_TAIL_02,
1935 t_TAIL_03,
1936 t_TAIL_04,
1937 t_TAIL_05,
1938 t_TAIL_06> >::value));
1939};
1940#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
1941
1942#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
1943template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1944 class t_TAIL_02,
1945 class t_TAIL_03,
1946 class t_TAIL_04,
1947 class t_TAIL_05,
1948 class t_TAIL_06,
1949 class t_TAIL_07>
1950struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
1951 t_TAIL_02,
1952 t_TAIL_03,
1953 t_TAIL_04,
1954 t_TAIL_05,
1955 t_TAIL_06,
1956 t_TAIL_07> >
1957: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1958 t_TAIL_02,
1959 t_TAIL_03,
1960 t_TAIL_04,
1961 t_TAIL_05,
1962 t_TAIL_06,
1963 t_TAIL_07> {
1964 BSLMF_ASSERT((t_INDEX <
1965 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
1966 t_TAIL_02,
1967 t_TAIL_03,
1968 t_TAIL_04,
1969 t_TAIL_05,
1970 t_TAIL_06,
1971 t_TAIL_07> >::value));
1972};
1973#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
1974
1975#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
1976template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
1977 class t_TAIL_02,
1978 class t_TAIL_03,
1979 class t_TAIL_04,
1980 class t_TAIL_05,
1981 class t_TAIL_06,
1982 class t_TAIL_07,
1983 class t_TAIL_08>
1984struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
1985 t_TAIL_02,
1986 t_TAIL_03,
1987 t_TAIL_04,
1988 t_TAIL_05,
1989 t_TAIL_06,
1990 t_TAIL_07,
1991 t_TAIL_08> >
1992: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
1993 t_TAIL_02,
1994 t_TAIL_03,
1995 t_TAIL_04,
1996 t_TAIL_05,
1997 t_TAIL_06,
1998 t_TAIL_07,
1999 t_TAIL_08> {
2000 BSLMF_ASSERT((t_INDEX <
2001 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2002 t_TAIL_02,
2003 t_TAIL_03,
2004 t_TAIL_04,
2005 t_TAIL_05,
2006 t_TAIL_06,
2007 t_TAIL_07,
2008 t_TAIL_08> >::value));
2009};
2010#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
2011
2012#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
2013template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2014 class t_TAIL_02,
2015 class t_TAIL_03,
2016 class t_TAIL_04,
2017 class t_TAIL_05,
2018 class t_TAIL_06,
2019 class t_TAIL_07,
2020 class t_TAIL_08,
2021 class t_TAIL_09>
2022struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2023 t_TAIL_02,
2024 t_TAIL_03,
2025 t_TAIL_04,
2026 t_TAIL_05,
2027 t_TAIL_06,
2028 t_TAIL_07,
2029 t_TAIL_08,
2030 t_TAIL_09> >
2031: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2032 t_TAIL_02,
2033 t_TAIL_03,
2034 t_TAIL_04,
2035 t_TAIL_05,
2036 t_TAIL_06,
2037 t_TAIL_07,
2038 t_TAIL_08,
2039 t_TAIL_09> {
2040 BSLMF_ASSERT((t_INDEX <
2041 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2042 t_TAIL_02,
2043 t_TAIL_03,
2044 t_TAIL_04,
2045 t_TAIL_05,
2046 t_TAIL_06,
2047 t_TAIL_07,
2048 t_TAIL_08,
2049 t_TAIL_09> >::value));
2050};
2051#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
2052
2053#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
2054template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2055 class t_TAIL_02,
2056 class t_TAIL_03,
2057 class t_TAIL_04,
2058 class t_TAIL_05,
2059 class t_TAIL_06,
2060 class t_TAIL_07,
2061 class t_TAIL_08,
2062 class t_TAIL_09,
2063 class t_TAIL_10>
2064struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2065 t_TAIL_02,
2066 t_TAIL_03,
2067 t_TAIL_04,
2068 t_TAIL_05,
2069 t_TAIL_06,
2070 t_TAIL_07,
2071 t_TAIL_08,
2072 t_TAIL_09,
2073 t_TAIL_10> >
2074: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2075 t_TAIL_02,
2076 t_TAIL_03,
2077 t_TAIL_04,
2078 t_TAIL_05,
2079 t_TAIL_06,
2080 t_TAIL_07,
2081 t_TAIL_08,
2082 t_TAIL_09,
2083 t_TAIL_10> {
2084 BSLMF_ASSERT((t_INDEX <
2085 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2086 t_TAIL_02,
2087 t_TAIL_03,
2088 t_TAIL_04,
2089 t_TAIL_05,
2090 t_TAIL_06,
2091 t_TAIL_07,
2092 t_TAIL_08,
2093 t_TAIL_09,
2094 t_TAIL_10> >::value));
2095};
2096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
2097
2098#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
2099template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2100 class t_TAIL_02,
2101 class t_TAIL_03,
2102 class t_TAIL_04,
2103 class t_TAIL_05,
2104 class t_TAIL_06,
2105 class t_TAIL_07,
2106 class t_TAIL_08,
2107 class t_TAIL_09,
2108 class t_TAIL_10,
2109 class t_TAIL_11>
2110struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2111 t_TAIL_02,
2112 t_TAIL_03,
2113 t_TAIL_04,
2114 t_TAIL_05,
2115 t_TAIL_06,
2116 t_TAIL_07,
2117 t_TAIL_08,
2118 t_TAIL_09,
2119 t_TAIL_10,
2120 t_TAIL_11> >
2121: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2122 t_TAIL_02,
2123 t_TAIL_03,
2124 t_TAIL_04,
2125 t_TAIL_05,
2126 t_TAIL_06,
2127 t_TAIL_07,
2128 t_TAIL_08,
2129 t_TAIL_09,
2130 t_TAIL_10,
2131 t_TAIL_11> {
2132 BSLMF_ASSERT((t_INDEX <
2133 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2134 t_TAIL_02,
2135 t_TAIL_03,
2136 t_TAIL_04,
2137 t_TAIL_05,
2138 t_TAIL_06,
2139 t_TAIL_07,
2140 t_TAIL_08,
2141 t_TAIL_09,
2142 t_TAIL_10,
2143 t_TAIL_11> >::value));
2144};
2145#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
2146
2147#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
2148template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2149 class t_TAIL_02,
2150 class t_TAIL_03,
2151 class t_TAIL_04,
2152 class t_TAIL_05,
2153 class t_TAIL_06,
2154 class t_TAIL_07,
2155 class t_TAIL_08,
2156 class t_TAIL_09,
2157 class t_TAIL_10,
2158 class t_TAIL_11,
2159 class t_TAIL_12>
2160struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2161 t_TAIL_02,
2162 t_TAIL_03,
2163 t_TAIL_04,
2164 t_TAIL_05,
2165 t_TAIL_06,
2166 t_TAIL_07,
2167 t_TAIL_08,
2168 t_TAIL_09,
2169 t_TAIL_10,
2170 t_TAIL_11,
2171 t_TAIL_12> >
2172: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2173 t_TAIL_02,
2174 t_TAIL_03,
2175 t_TAIL_04,
2176 t_TAIL_05,
2177 t_TAIL_06,
2178 t_TAIL_07,
2179 t_TAIL_08,
2180 t_TAIL_09,
2181 t_TAIL_10,
2182 t_TAIL_11,
2183 t_TAIL_12> {
2184 BSLMF_ASSERT((t_INDEX <
2185 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2186 t_TAIL_02,
2187 t_TAIL_03,
2188 t_TAIL_04,
2189 t_TAIL_05,
2190 t_TAIL_06,
2191 t_TAIL_07,
2192 t_TAIL_08,
2193 t_TAIL_09,
2194 t_TAIL_10,
2195 t_TAIL_11,
2196 t_TAIL_12> >::value));
2197};
2198#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
2199
2200#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
2201template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2202 class t_TAIL_02,
2203 class t_TAIL_03,
2204 class t_TAIL_04,
2205 class t_TAIL_05,
2206 class t_TAIL_06,
2207 class t_TAIL_07,
2208 class t_TAIL_08,
2209 class t_TAIL_09,
2210 class t_TAIL_10,
2211 class t_TAIL_11,
2212 class t_TAIL_12,
2213 class t_TAIL_13>
2214struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2215 t_TAIL_02,
2216 t_TAIL_03,
2217 t_TAIL_04,
2218 t_TAIL_05,
2219 t_TAIL_06,
2220 t_TAIL_07,
2221 t_TAIL_08,
2222 t_TAIL_09,
2223 t_TAIL_10,
2224 t_TAIL_11,
2225 t_TAIL_12,
2226 t_TAIL_13> >
2227: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2228 t_TAIL_02,
2229 t_TAIL_03,
2230 t_TAIL_04,
2231 t_TAIL_05,
2232 t_TAIL_06,
2233 t_TAIL_07,
2234 t_TAIL_08,
2235 t_TAIL_09,
2236 t_TAIL_10,
2237 t_TAIL_11,
2238 t_TAIL_12,
2239 t_TAIL_13> {
2240 BSLMF_ASSERT((t_INDEX <
2241 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2242 t_TAIL_02,
2243 t_TAIL_03,
2244 t_TAIL_04,
2245 t_TAIL_05,
2246 t_TAIL_06,
2247 t_TAIL_07,
2248 t_TAIL_08,
2249 t_TAIL_09,
2250 t_TAIL_10,
2251 t_TAIL_11,
2252 t_TAIL_12,
2253 t_TAIL_13> >::value));
2254};
2255#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
2256
2257#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
2258template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2259 class t_TAIL_02,
2260 class t_TAIL_03,
2261 class t_TAIL_04,
2262 class t_TAIL_05,
2263 class t_TAIL_06,
2264 class t_TAIL_07,
2265 class t_TAIL_08,
2266 class t_TAIL_09,
2267 class t_TAIL_10,
2268 class t_TAIL_11,
2269 class t_TAIL_12,
2270 class t_TAIL_13,
2271 class t_TAIL_14>
2272struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2273 t_TAIL_02,
2274 t_TAIL_03,
2275 t_TAIL_04,
2276 t_TAIL_05,
2277 t_TAIL_06,
2278 t_TAIL_07,
2279 t_TAIL_08,
2280 t_TAIL_09,
2281 t_TAIL_10,
2282 t_TAIL_11,
2283 t_TAIL_12,
2284 t_TAIL_13,
2285 t_TAIL_14> >
2286: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2287 t_TAIL_02,
2288 t_TAIL_03,
2289 t_TAIL_04,
2290 t_TAIL_05,
2291 t_TAIL_06,
2292 t_TAIL_07,
2293 t_TAIL_08,
2294 t_TAIL_09,
2295 t_TAIL_10,
2296 t_TAIL_11,
2297 t_TAIL_12,
2298 t_TAIL_13,
2299 t_TAIL_14> {
2300 BSLMF_ASSERT((t_INDEX <
2301 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2302 t_TAIL_02,
2303 t_TAIL_03,
2304 t_TAIL_04,
2305 t_TAIL_05,
2306 t_TAIL_06,
2307 t_TAIL_07,
2308 t_TAIL_08,
2309 t_TAIL_09,
2310 t_TAIL_10,
2311 t_TAIL_11,
2312 t_TAIL_12,
2313 t_TAIL_13,
2314 t_TAIL_14> >::value));
2315};
2316#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
2317
2318#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
2319template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2320 class t_TAIL_02,
2321 class t_TAIL_03,
2322 class t_TAIL_04,
2323 class t_TAIL_05,
2324 class t_TAIL_06,
2325 class t_TAIL_07,
2326 class t_TAIL_08,
2327 class t_TAIL_09,
2328 class t_TAIL_10,
2329 class t_TAIL_11,
2330 class t_TAIL_12,
2331 class t_TAIL_13,
2332 class t_TAIL_14,
2333 class t_TAIL_15>
2334struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2335 t_TAIL_02,
2336 t_TAIL_03,
2337 t_TAIL_04,
2338 t_TAIL_05,
2339 t_TAIL_06,
2340 t_TAIL_07,
2341 t_TAIL_08,
2342 t_TAIL_09,
2343 t_TAIL_10,
2344 t_TAIL_11,
2345 t_TAIL_12,
2346 t_TAIL_13,
2347 t_TAIL_14,
2348 t_TAIL_15> >
2349: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2350 t_TAIL_02,
2351 t_TAIL_03,
2352 t_TAIL_04,
2353 t_TAIL_05,
2354 t_TAIL_06,
2355 t_TAIL_07,
2356 t_TAIL_08,
2357 t_TAIL_09,
2358 t_TAIL_10,
2359 t_TAIL_11,
2360 t_TAIL_12,
2361 t_TAIL_13,
2362 t_TAIL_14,
2363 t_TAIL_15> {
2364 BSLMF_ASSERT((t_INDEX <
2365 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2366 t_TAIL_02,
2367 t_TAIL_03,
2368 t_TAIL_04,
2369 t_TAIL_05,
2370 t_TAIL_06,
2371 t_TAIL_07,
2372 t_TAIL_08,
2373 t_TAIL_09,
2374 t_TAIL_10,
2375 t_TAIL_11,
2376 t_TAIL_12,
2377 t_TAIL_13,
2378 t_TAIL_14,
2379 t_TAIL_15> >::value));
2380};
2381#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
2382
2383#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
2384template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2385 class t_TAIL_02,
2386 class t_TAIL_03,
2387 class t_TAIL_04,
2388 class t_TAIL_05,
2389 class t_TAIL_06,
2390 class t_TAIL_07,
2391 class t_TAIL_08,
2392 class t_TAIL_09,
2393 class t_TAIL_10,
2394 class t_TAIL_11,
2395 class t_TAIL_12,
2396 class t_TAIL_13,
2397 class t_TAIL_14,
2398 class t_TAIL_15,
2399 class t_TAIL_16>
2400struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2401 t_TAIL_02,
2402 t_TAIL_03,
2403 t_TAIL_04,
2404 t_TAIL_05,
2405 t_TAIL_06,
2406 t_TAIL_07,
2407 t_TAIL_08,
2408 t_TAIL_09,
2409 t_TAIL_10,
2410 t_TAIL_11,
2411 t_TAIL_12,
2412 t_TAIL_13,
2413 t_TAIL_14,
2414 t_TAIL_15,
2415 t_TAIL_16> >
2416: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2417 t_TAIL_02,
2418 t_TAIL_03,
2419 t_TAIL_04,
2420 t_TAIL_05,
2421 t_TAIL_06,
2422 t_TAIL_07,
2423 t_TAIL_08,
2424 t_TAIL_09,
2425 t_TAIL_10,
2426 t_TAIL_11,
2427 t_TAIL_12,
2428 t_TAIL_13,
2429 t_TAIL_14,
2430 t_TAIL_15,
2431 t_TAIL_16> {
2432 BSLMF_ASSERT((t_INDEX <
2433 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2434 t_TAIL_02,
2435 t_TAIL_03,
2436 t_TAIL_04,
2437 t_TAIL_05,
2438 t_TAIL_06,
2439 t_TAIL_07,
2440 t_TAIL_08,
2441 t_TAIL_09,
2442 t_TAIL_10,
2443 t_TAIL_11,
2444 t_TAIL_12,
2445 t_TAIL_13,
2446 t_TAIL_14,
2447 t_TAIL_15,
2448 t_TAIL_16> >::value));
2449};
2450#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
2451
2452#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
2453template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2454 class t_TAIL_02,
2455 class t_TAIL_03,
2456 class t_TAIL_04,
2457 class t_TAIL_05,
2458 class t_TAIL_06,
2459 class t_TAIL_07,
2460 class t_TAIL_08,
2461 class t_TAIL_09,
2462 class t_TAIL_10,
2463 class t_TAIL_11,
2464 class t_TAIL_12,
2465 class t_TAIL_13,
2466 class t_TAIL_14,
2467 class t_TAIL_15,
2468 class t_TAIL_16,
2469 class t_TAIL_17>
2470struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2471 t_TAIL_02,
2472 t_TAIL_03,
2473 t_TAIL_04,
2474 t_TAIL_05,
2475 t_TAIL_06,
2476 t_TAIL_07,
2477 t_TAIL_08,
2478 t_TAIL_09,
2479 t_TAIL_10,
2480 t_TAIL_11,
2481 t_TAIL_12,
2482 t_TAIL_13,
2483 t_TAIL_14,
2484 t_TAIL_15,
2485 t_TAIL_16,
2486 t_TAIL_17> >
2487: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2488 t_TAIL_02,
2489 t_TAIL_03,
2490 t_TAIL_04,
2491 t_TAIL_05,
2492 t_TAIL_06,
2493 t_TAIL_07,
2494 t_TAIL_08,
2495 t_TAIL_09,
2496 t_TAIL_10,
2497 t_TAIL_11,
2498 t_TAIL_12,
2499 t_TAIL_13,
2500 t_TAIL_14,
2501 t_TAIL_15,
2502 t_TAIL_16,
2503 t_TAIL_17> {
2504 BSLMF_ASSERT((t_INDEX <
2505 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2506 t_TAIL_02,
2507 t_TAIL_03,
2508 t_TAIL_04,
2509 t_TAIL_05,
2510 t_TAIL_06,
2511 t_TAIL_07,
2512 t_TAIL_08,
2513 t_TAIL_09,
2514 t_TAIL_10,
2515 t_TAIL_11,
2516 t_TAIL_12,
2517 t_TAIL_13,
2518 t_TAIL_14,
2519 t_TAIL_15,
2520 t_TAIL_16,
2521 t_TAIL_17> >::value));
2522};
2523#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
2524
2525#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
2526template <size_t t_INDEX, class t_HEAD, class t_TAIL_01,
2527 class t_TAIL_02,
2528 class t_TAIL_03,
2529 class t_TAIL_04,
2530 class t_TAIL_05,
2531 class t_TAIL_06,
2532 class t_TAIL_07,
2533 class t_TAIL_08,
2534 class t_TAIL_09,
2535 class t_TAIL_10,
2536 class t_TAIL_11,
2537 class t_TAIL_12,
2538 class t_TAIL_13,
2539 class t_TAIL_14,
2540 class t_TAIL_15,
2541 class t_TAIL_16,
2542 class t_TAIL_17,
2543 class t_TAIL_18>
2544struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
2545 t_TAIL_02,
2546 t_TAIL_03,
2547 t_TAIL_04,
2548 t_TAIL_05,
2549 t_TAIL_06,
2550 t_TAIL_07,
2551 t_TAIL_08,
2552 t_TAIL_09,
2553 t_TAIL_10,
2554 t_TAIL_11,
2555 t_TAIL_12,
2556 t_TAIL_13,
2557 t_TAIL_14,
2558 t_TAIL_15,
2559 t_TAIL_16,
2560 t_TAIL_17,
2561 t_TAIL_18> >
2562: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL_01,
2563 t_TAIL_02,
2564 t_TAIL_03,
2565 t_TAIL_04,
2566 t_TAIL_05,
2567 t_TAIL_06,
2568 t_TAIL_07,
2569 t_TAIL_08,
2570 t_TAIL_09,
2571 t_TAIL_10,
2572 t_TAIL_11,
2573 t_TAIL_12,
2574 t_TAIL_13,
2575 t_TAIL_14,
2576 t_TAIL_15,
2577 t_TAIL_16,
2578 t_TAIL_17,
2579 t_TAIL_18> {
2580 BSLMF_ASSERT((t_INDEX <
2581 bsl::variant_size<variant<t_HEAD, t_TAIL_01,
2582 t_TAIL_02,
2583 t_TAIL_03,
2584 t_TAIL_04,
2585 t_TAIL_05,
2586 t_TAIL_06,
2587 t_TAIL_07,
2588 t_TAIL_08,
2589 t_TAIL_09,
2590 t_TAIL_10,
2591 t_TAIL_11,
2592 t_TAIL_12,
2593 t_TAIL_13,
2594 t_TAIL_14,
2595 t_TAIL_15,
2596 t_TAIL_16,
2597 t_TAIL_17,
2598 t_TAIL_18> >::value));
2599};
2600#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
2601
2602
2603#ifdef BSLS_COMPILERFEATURES_SUPPORT_ALIAS_TEMPLATES
2604template <size_t t_INDEX, class t_TYPE>
2605using variant_alternative_t =
2606 typename variant_alternative<t_INDEX, t_TYPE>::type;
2607#endif
2608
2609
2610#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
2611template <class t_HEAD>
2612void swap(bsl::variant<t_HEAD>& lhs,
2614#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
2615
2616#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
2617template <class t_HEAD, class t_TAIL_01>
2620#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
2621
2622#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
2623template <class t_HEAD, class t_TAIL_01,
2624 class t_TAIL_02>
2625void swap(bsl::variant<t_HEAD, t_TAIL_01,
2626 t_TAIL_02>& lhs,
2627 bsl::variant<t_HEAD, t_TAIL_01,
2628 t_TAIL_02>& rhs);
2629#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
2630
2631#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
2632template <class t_HEAD, class t_TAIL_01,
2633 class t_TAIL_02,
2634 class t_TAIL_03>
2635void swap(bsl::variant<t_HEAD, t_TAIL_01,
2636 t_TAIL_02,
2637 t_TAIL_03>& lhs,
2638 bsl::variant<t_HEAD, t_TAIL_01,
2639 t_TAIL_02,
2640 t_TAIL_03>& rhs);
2641#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
2642
2643#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
2644template <class t_HEAD, class t_TAIL_01,
2645 class t_TAIL_02,
2646 class t_TAIL_03,
2647 class t_TAIL_04>
2648void swap(bsl::variant<t_HEAD, t_TAIL_01,
2649 t_TAIL_02,
2650 t_TAIL_03,
2651 t_TAIL_04>& lhs,
2652 bsl::variant<t_HEAD, t_TAIL_01,
2653 t_TAIL_02,
2654 t_TAIL_03,
2655 t_TAIL_04>& rhs);
2656#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
2657
2658#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
2659template <class t_HEAD, class t_TAIL_01,
2660 class t_TAIL_02,
2661 class t_TAIL_03,
2662 class t_TAIL_04,
2663 class t_TAIL_05>
2664void swap(bsl::variant<t_HEAD, t_TAIL_01,
2665 t_TAIL_02,
2666 t_TAIL_03,
2667 t_TAIL_04,
2668 t_TAIL_05>& lhs,
2669 bsl::variant<t_HEAD, t_TAIL_01,
2670 t_TAIL_02,
2671 t_TAIL_03,
2672 t_TAIL_04,
2673 t_TAIL_05>& rhs);
2674#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
2675
2676#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
2677template <class t_HEAD, class t_TAIL_01,
2678 class t_TAIL_02,
2679 class t_TAIL_03,
2680 class t_TAIL_04,
2681 class t_TAIL_05,
2682 class t_TAIL_06>
2683void swap(bsl::variant<t_HEAD, t_TAIL_01,
2684 t_TAIL_02,
2685 t_TAIL_03,
2686 t_TAIL_04,
2687 t_TAIL_05,
2688 t_TAIL_06>& lhs,
2689 bsl::variant<t_HEAD, t_TAIL_01,
2690 t_TAIL_02,
2691 t_TAIL_03,
2692 t_TAIL_04,
2693 t_TAIL_05,
2694 t_TAIL_06>& rhs);
2695#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
2696
2697#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
2698template <class t_HEAD, class t_TAIL_01,
2699 class t_TAIL_02,
2700 class t_TAIL_03,
2701 class t_TAIL_04,
2702 class t_TAIL_05,
2703 class t_TAIL_06,
2704 class t_TAIL_07>
2705void swap(bsl::variant<t_HEAD, t_TAIL_01,
2706 t_TAIL_02,
2707 t_TAIL_03,
2708 t_TAIL_04,
2709 t_TAIL_05,
2710 t_TAIL_06,
2711 t_TAIL_07>& lhs,
2712 bsl::variant<t_HEAD, t_TAIL_01,
2713 t_TAIL_02,
2714 t_TAIL_03,
2715 t_TAIL_04,
2716 t_TAIL_05,
2717 t_TAIL_06,
2718 t_TAIL_07>& rhs);
2719#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
2720
2721#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
2722template <class t_HEAD, class t_TAIL_01,
2723 class t_TAIL_02,
2724 class t_TAIL_03,
2725 class t_TAIL_04,
2726 class t_TAIL_05,
2727 class t_TAIL_06,
2728 class t_TAIL_07,
2729 class t_TAIL_08>
2730void swap(bsl::variant<t_HEAD, t_TAIL_01,
2731 t_TAIL_02,
2732 t_TAIL_03,
2733 t_TAIL_04,
2734 t_TAIL_05,
2735 t_TAIL_06,
2736 t_TAIL_07,
2737 t_TAIL_08>& lhs,
2738 bsl::variant<t_HEAD, t_TAIL_01,
2739 t_TAIL_02,
2740 t_TAIL_03,
2741 t_TAIL_04,
2742 t_TAIL_05,
2743 t_TAIL_06,
2744 t_TAIL_07,
2745 t_TAIL_08>& rhs);
2746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
2747
2748#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
2749template <class t_HEAD, class t_TAIL_01,
2750 class t_TAIL_02,
2751 class t_TAIL_03,
2752 class t_TAIL_04,
2753 class t_TAIL_05,
2754 class t_TAIL_06,
2755 class t_TAIL_07,
2756 class t_TAIL_08,
2757 class t_TAIL_09>
2758void swap(bsl::variant<t_HEAD, t_TAIL_01,
2759 t_TAIL_02,
2760 t_TAIL_03,
2761 t_TAIL_04,
2762 t_TAIL_05,
2763 t_TAIL_06,
2764 t_TAIL_07,
2765 t_TAIL_08,
2766 t_TAIL_09>& lhs,
2767 bsl::variant<t_HEAD, t_TAIL_01,
2768 t_TAIL_02,
2769 t_TAIL_03,
2770 t_TAIL_04,
2771 t_TAIL_05,
2772 t_TAIL_06,
2773 t_TAIL_07,
2774 t_TAIL_08,
2775 t_TAIL_09>& rhs);
2776#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
2777
2778#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
2779template <class t_HEAD, class t_TAIL_01,
2780 class t_TAIL_02,
2781 class t_TAIL_03,
2782 class t_TAIL_04,
2783 class t_TAIL_05,
2784 class t_TAIL_06,
2785 class t_TAIL_07,
2786 class t_TAIL_08,
2787 class t_TAIL_09,
2788 class t_TAIL_10>
2789void swap(bsl::variant<t_HEAD, t_TAIL_01,
2790 t_TAIL_02,
2791 t_TAIL_03,
2792 t_TAIL_04,
2793 t_TAIL_05,
2794 t_TAIL_06,
2795 t_TAIL_07,
2796 t_TAIL_08,
2797 t_TAIL_09,
2798 t_TAIL_10>& lhs,
2799 bsl::variant<t_HEAD, t_TAIL_01,
2800 t_TAIL_02,
2801 t_TAIL_03,
2802 t_TAIL_04,
2803 t_TAIL_05,
2804 t_TAIL_06,
2805 t_TAIL_07,
2806 t_TAIL_08,
2807 t_TAIL_09,
2808 t_TAIL_10>& rhs);
2809#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
2810
2811#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
2812template <class t_HEAD, class t_TAIL_01,
2813 class t_TAIL_02,
2814 class t_TAIL_03,
2815 class t_TAIL_04,
2816 class t_TAIL_05,
2817 class t_TAIL_06,
2818 class t_TAIL_07,
2819 class t_TAIL_08,
2820 class t_TAIL_09,
2821 class t_TAIL_10,
2822 class t_TAIL_11>
2823void swap(bsl::variant<t_HEAD, t_TAIL_01,
2824 t_TAIL_02,
2825 t_TAIL_03,
2826 t_TAIL_04,
2827 t_TAIL_05,
2828 t_TAIL_06,
2829 t_TAIL_07,
2830 t_TAIL_08,
2831 t_TAIL_09,
2832 t_TAIL_10,
2833 t_TAIL_11>& lhs,
2834 bsl::variant<t_HEAD, t_TAIL_01,
2835 t_TAIL_02,
2836 t_TAIL_03,
2837 t_TAIL_04,
2838 t_TAIL_05,
2839 t_TAIL_06,
2840 t_TAIL_07,
2841 t_TAIL_08,
2842 t_TAIL_09,
2843 t_TAIL_10,
2844 t_TAIL_11>& rhs);
2845#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
2846
2847#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
2848template <class t_HEAD, class t_TAIL_01,
2849 class t_TAIL_02,
2850 class t_TAIL_03,
2851 class t_TAIL_04,
2852 class t_TAIL_05,
2853 class t_TAIL_06,
2854 class t_TAIL_07,
2855 class t_TAIL_08,
2856 class t_TAIL_09,
2857 class t_TAIL_10,
2858 class t_TAIL_11,
2859 class t_TAIL_12>
2860void swap(bsl::variant<t_HEAD, t_TAIL_01,
2861 t_TAIL_02,
2862 t_TAIL_03,
2863 t_TAIL_04,
2864 t_TAIL_05,
2865 t_TAIL_06,
2866 t_TAIL_07,
2867 t_TAIL_08,
2868 t_TAIL_09,
2869 t_TAIL_10,
2870 t_TAIL_11,
2871 t_TAIL_12>& lhs,
2872 bsl::variant<t_HEAD, t_TAIL_01,
2873 t_TAIL_02,
2874 t_TAIL_03,
2875 t_TAIL_04,
2876 t_TAIL_05,
2877 t_TAIL_06,
2878 t_TAIL_07,
2879 t_TAIL_08,
2880 t_TAIL_09,
2881 t_TAIL_10,
2882 t_TAIL_11,
2883 t_TAIL_12>& rhs);
2884#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
2885
2886#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
2887template <class t_HEAD, class t_TAIL_01,
2888 class t_TAIL_02,
2889 class t_TAIL_03,
2890 class t_TAIL_04,
2891 class t_TAIL_05,
2892 class t_TAIL_06,
2893 class t_TAIL_07,
2894 class t_TAIL_08,
2895 class t_TAIL_09,
2896 class t_TAIL_10,
2897 class t_TAIL_11,
2898 class t_TAIL_12,
2899 class t_TAIL_13>
2900void swap(bsl::variant<t_HEAD, t_TAIL_01,
2901 t_TAIL_02,
2902 t_TAIL_03,
2903 t_TAIL_04,
2904 t_TAIL_05,
2905 t_TAIL_06,
2906 t_TAIL_07,
2907 t_TAIL_08,
2908 t_TAIL_09,
2909 t_TAIL_10,
2910 t_TAIL_11,
2911 t_TAIL_12,
2912 t_TAIL_13>& lhs,
2913 bsl::variant<t_HEAD, t_TAIL_01,
2914 t_TAIL_02,
2915 t_TAIL_03,
2916 t_TAIL_04,
2917 t_TAIL_05,
2918 t_TAIL_06,
2919 t_TAIL_07,
2920 t_TAIL_08,
2921 t_TAIL_09,
2922 t_TAIL_10,
2923 t_TAIL_11,
2924 t_TAIL_12,
2925 t_TAIL_13>& rhs);
2926#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
2927
2928#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
2929template <class t_HEAD, class t_TAIL_01,
2930 class t_TAIL_02,
2931 class t_TAIL_03,
2932 class t_TAIL_04,
2933 class t_TAIL_05,
2934 class t_TAIL_06,
2935 class t_TAIL_07,
2936 class t_TAIL_08,
2937 class t_TAIL_09,
2938 class t_TAIL_10,
2939 class t_TAIL_11,
2940 class t_TAIL_12,
2941 class t_TAIL_13,
2942 class t_TAIL_14>
2943void swap(bsl::variant<t_HEAD, t_TAIL_01,
2944 t_TAIL_02,
2945 t_TAIL_03,
2946 t_TAIL_04,
2947 t_TAIL_05,
2948 t_TAIL_06,
2949 t_TAIL_07,
2950 t_TAIL_08,
2951 t_TAIL_09,
2952 t_TAIL_10,
2953 t_TAIL_11,
2954 t_TAIL_12,
2955 t_TAIL_13,
2956 t_TAIL_14>& lhs,
2957 bsl::variant<t_HEAD, t_TAIL_01,
2958 t_TAIL_02,
2959 t_TAIL_03,
2960 t_TAIL_04,
2961 t_TAIL_05,
2962 t_TAIL_06,
2963 t_TAIL_07,
2964 t_TAIL_08,
2965 t_TAIL_09,
2966 t_TAIL_10,
2967 t_TAIL_11,
2968 t_TAIL_12,
2969 t_TAIL_13,
2970 t_TAIL_14>& rhs);
2971#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
2972
2973#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
2974template <class t_HEAD, class t_TAIL_01,
2975 class t_TAIL_02,
2976 class t_TAIL_03,
2977 class t_TAIL_04,
2978 class t_TAIL_05,
2979 class t_TAIL_06,
2980 class t_TAIL_07,
2981 class t_TAIL_08,
2982 class t_TAIL_09,
2983 class t_TAIL_10,
2984 class t_TAIL_11,
2985 class t_TAIL_12,
2986 class t_TAIL_13,
2987 class t_TAIL_14,
2988 class t_TAIL_15>
2989void swap(bsl::variant<t_HEAD, t_TAIL_01,
2990 t_TAIL_02,
2991 t_TAIL_03,
2992 t_TAIL_04,
2993 t_TAIL_05,
2994 t_TAIL_06,
2995 t_TAIL_07,
2996 t_TAIL_08,
2997 t_TAIL_09,
2998 t_TAIL_10,
2999 t_TAIL_11,
3000 t_TAIL_12,
3001 t_TAIL_13,
3002 t_TAIL_14,
3003 t_TAIL_15>& lhs,
3004 bsl::variant<t_HEAD, t_TAIL_01,
3005 t_TAIL_02,
3006 t_TAIL_03,
3007 t_TAIL_04,
3008 t_TAIL_05,
3009 t_TAIL_06,
3010 t_TAIL_07,
3011 t_TAIL_08,
3012 t_TAIL_09,
3013 t_TAIL_10,
3014 t_TAIL_11,
3015 t_TAIL_12,
3016 t_TAIL_13,
3017 t_TAIL_14,
3018 t_TAIL_15>& rhs);
3019#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
3020
3021#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
3022template <class t_HEAD, class t_TAIL_01,
3023 class t_TAIL_02,
3024 class t_TAIL_03,
3025 class t_TAIL_04,
3026 class t_TAIL_05,
3027 class t_TAIL_06,
3028 class t_TAIL_07,
3029 class t_TAIL_08,
3030 class t_TAIL_09,
3031 class t_TAIL_10,
3032 class t_TAIL_11,
3033 class t_TAIL_12,
3034 class t_TAIL_13,
3035 class t_TAIL_14,
3036 class t_TAIL_15,
3037 class t_TAIL_16>
3038void swap(bsl::variant<t_HEAD, t_TAIL_01,
3039 t_TAIL_02,
3040 t_TAIL_03,
3041 t_TAIL_04,
3042 t_TAIL_05,
3043 t_TAIL_06,
3044 t_TAIL_07,
3045 t_TAIL_08,
3046 t_TAIL_09,
3047 t_TAIL_10,
3048 t_TAIL_11,
3049 t_TAIL_12,
3050 t_TAIL_13,
3051 t_TAIL_14,
3052 t_TAIL_15,
3053 t_TAIL_16>& lhs,
3054 bsl::variant<t_HEAD, t_TAIL_01,
3055 t_TAIL_02,
3056 t_TAIL_03,
3057 t_TAIL_04,
3058 t_TAIL_05,
3059 t_TAIL_06,
3060 t_TAIL_07,
3061 t_TAIL_08,
3062 t_TAIL_09,
3063 t_TAIL_10,
3064 t_TAIL_11,
3065 t_TAIL_12,
3066 t_TAIL_13,
3067 t_TAIL_14,
3068 t_TAIL_15,
3069 t_TAIL_16>& rhs);
3070#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
3071
3072#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
3073template <class t_HEAD, class t_TAIL_01,
3074 class t_TAIL_02,
3075 class t_TAIL_03,
3076 class t_TAIL_04,
3077 class t_TAIL_05,
3078 class t_TAIL_06,
3079 class t_TAIL_07,
3080 class t_TAIL_08,
3081 class t_TAIL_09,
3082 class t_TAIL_10,
3083 class t_TAIL_11,
3084 class t_TAIL_12,
3085 class t_TAIL_13,
3086 class t_TAIL_14,
3087 class t_TAIL_15,
3088 class t_TAIL_16,
3089 class t_TAIL_17>
3090void swap(bsl::variant<t_HEAD, t_TAIL_01,
3091 t_TAIL_02,
3092 t_TAIL_03,
3093 t_TAIL_04,
3094 t_TAIL_05,
3095 t_TAIL_06,
3096 t_TAIL_07,
3097 t_TAIL_08,
3098 t_TAIL_09,
3099 t_TAIL_10,
3100 t_TAIL_11,
3101 t_TAIL_12,
3102 t_TAIL_13,
3103 t_TAIL_14,
3104 t_TAIL_15,
3105 t_TAIL_16,
3106 t_TAIL_17>& lhs,
3107 bsl::variant<t_HEAD, t_TAIL_01,
3108 t_TAIL_02,
3109 t_TAIL_03,
3110 t_TAIL_04,
3111 t_TAIL_05,
3112 t_TAIL_06,
3113 t_TAIL_07,
3114 t_TAIL_08,
3115 t_TAIL_09,
3116 t_TAIL_10,
3117 t_TAIL_11,
3118 t_TAIL_12,
3119 t_TAIL_13,
3120 t_TAIL_14,
3121 t_TAIL_15,
3122 t_TAIL_16,
3123 t_TAIL_17>& rhs);
3124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
3125
3126#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
3127template <class t_HEAD, class t_TAIL_01,
3128 class t_TAIL_02,
3129 class t_TAIL_03,
3130 class t_TAIL_04,
3131 class t_TAIL_05,
3132 class t_TAIL_06,
3133 class t_TAIL_07,
3134 class t_TAIL_08,
3135 class t_TAIL_09,
3136 class t_TAIL_10,
3137 class t_TAIL_11,
3138 class t_TAIL_12,
3139 class t_TAIL_13,
3140 class t_TAIL_14,
3141 class t_TAIL_15,
3142 class t_TAIL_16,
3143 class t_TAIL_17,
3144 class t_TAIL_18>
3145void swap(bsl::variant<t_HEAD, t_TAIL_01,
3146 t_TAIL_02,
3147 t_TAIL_03,
3148 t_TAIL_04,
3149 t_TAIL_05,
3150 t_TAIL_06,
3151 t_TAIL_07,
3152 t_TAIL_08,
3153 t_TAIL_09,
3154 t_TAIL_10,
3155 t_TAIL_11,
3156 t_TAIL_12,
3157 t_TAIL_13,
3158 t_TAIL_14,
3159 t_TAIL_15,
3160 t_TAIL_16,
3161 t_TAIL_17,
3162 t_TAIL_18>& lhs,
3163 bsl::variant<t_HEAD, t_TAIL_01,
3164 t_TAIL_02,
3165 t_TAIL_03,
3166 t_TAIL_04,
3167 t_TAIL_05,
3168 t_TAIL_06,
3169 t_TAIL_07,
3170 t_TAIL_08,
3171 t_TAIL_09,
3172 t_TAIL_10,
3173 t_TAIL_11,
3174 t_TAIL_12,
3175 t_TAIL_13,
3176 t_TAIL_14,
3177 t_TAIL_15,
3178 t_TAIL_16,
3179 t_TAIL_17,
3180 t_TAIL_18>& rhs);
3181#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
3182
3183
3184
3185#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
3186template <class t_HASHALG, class t_HEAD>
3187void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD>& input);
3188#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
3189
3190#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
3191template <class t_HASHALG, class t_HEAD, class t_TAIL_01>
3192void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01>& input);
3193#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
3194
3195#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
3196template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3197 class t_TAIL_02>
3198void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3199 t_TAIL_02>& input);
3200#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
3201
3202#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
3203template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3204 class t_TAIL_02,
3205 class t_TAIL_03>
3206void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3207 t_TAIL_02,
3208 t_TAIL_03>& input);
3209#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
3210
3211#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
3212template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3213 class t_TAIL_02,
3214 class t_TAIL_03,
3215 class t_TAIL_04>
3216void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3217 t_TAIL_02,
3218 t_TAIL_03,
3219 t_TAIL_04>& input);
3220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
3221
3222#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
3223template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3224 class t_TAIL_02,
3225 class t_TAIL_03,
3226 class t_TAIL_04,
3227 class t_TAIL_05>
3228void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3229 t_TAIL_02,
3230 t_TAIL_03,
3231 t_TAIL_04,
3232 t_TAIL_05>& input);
3233#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
3234
3235#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
3236template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3237 class t_TAIL_02,
3238 class t_TAIL_03,
3239 class t_TAIL_04,
3240 class t_TAIL_05,
3241 class t_TAIL_06>
3242void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3243 t_TAIL_02,
3244 t_TAIL_03,
3245 t_TAIL_04,
3246 t_TAIL_05,
3247 t_TAIL_06>& input);
3248#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
3249
3250#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
3251template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3252 class t_TAIL_02,
3253 class t_TAIL_03,
3254 class t_TAIL_04,
3255 class t_TAIL_05,
3256 class t_TAIL_06,
3257 class t_TAIL_07>
3258void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3259 t_TAIL_02,
3260 t_TAIL_03,
3261 t_TAIL_04,
3262 t_TAIL_05,
3263 t_TAIL_06,
3264 t_TAIL_07>& input);
3265#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
3266
3267#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
3268template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3269 class t_TAIL_02,
3270 class t_TAIL_03,
3271 class t_TAIL_04,
3272 class t_TAIL_05,
3273 class t_TAIL_06,
3274 class t_TAIL_07,
3275 class t_TAIL_08>
3276void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3277 t_TAIL_02,
3278 t_TAIL_03,
3279 t_TAIL_04,
3280 t_TAIL_05,
3281 t_TAIL_06,
3282 t_TAIL_07,
3283 t_TAIL_08>& input);
3284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
3285
3286#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
3287template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3288 class t_TAIL_02,
3289 class t_TAIL_03,
3290 class t_TAIL_04,
3291 class t_TAIL_05,
3292 class t_TAIL_06,
3293 class t_TAIL_07,
3294 class t_TAIL_08,
3295 class t_TAIL_09>
3296void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3297 t_TAIL_02,
3298 t_TAIL_03,
3299 t_TAIL_04,
3300 t_TAIL_05,
3301 t_TAIL_06,
3302 t_TAIL_07,
3303 t_TAIL_08,
3304 t_TAIL_09>& input);
3305#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
3306
3307#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
3308template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3309 class t_TAIL_02,
3310 class t_TAIL_03,
3311 class t_TAIL_04,
3312 class t_TAIL_05,
3313 class t_TAIL_06,
3314 class t_TAIL_07,
3315 class t_TAIL_08,
3316 class t_TAIL_09,
3317 class t_TAIL_10>
3318void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3319 t_TAIL_02,
3320 t_TAIL_03,
3321 t_TAIL_04,
3322 t_TAIL_05,
3323 t_TAIL_06,
3324 t_TAIL_07,
3325 t_TAIL_08,
3326 t_TAIL_09,
3327 t_TAIL_10>& input);
3328#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
3329
3330#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
3331template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3332 class t_TAIL_02,
3333 class t_TAIL_03,
3334 class t_TAIL_04,
3335 class t_TAIL_05,
3336 class t_TAIL_06,
3337 class t_TAIL_07,
3338 class t_TAIL_08,
3339 class t_TAIL_09,
3340 class t_TAIL_10,
3341 class t_TAIL_11>
3342void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3343 t_TAIL_02,
3344 t_TAIL_03,
3345 t_TAIL_04,
3346 t_TAIL_05,
3347 t_TAIL_06,
3348 t_TAIL_07,
3349 t_TAIL_08,
3350 t_TAIL_09,
3351 t_TAIL_10,
3352 t_TAIL_11>& input);
3353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
3354
3355#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
3356template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3357 class t_TAIL_02,
3358 class t_TAIL_03,
3359 class t_TAIL_04,
3360 class t_TAIL_05,
3361 class t_TAIL_06,
3362 class t_TAIL_07,
3363 class t_TAIL_08,
3364 class t_TAIL_09,
3365 class t_TAIL_10,
3366 class t_TAIL_11,
3367 class t_TAIL_12>
3368void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3369 t_TAIL_02,
3370 t_TAIL_03,
3371 t_TAIL_04,
3372 t_TAIL_05,
3373 t_TAIL_06,
3374 t_TAIL_07,
3375 t_TAIL_08,
3376 t_TAIL_09,
3377 t_TAIL_10,
3378 t_TAIL_11,
3379 t_TAIL_12>& input);
3380#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
3381
3382#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
3383template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3384 class t_TAIL_02,
3385 class t_TAIL_03,
3386 class t_TAIL_04,
3387 class t_TAIL_05,
3388 class t_TAIL_06,
3389 class t_TAIL_07,
3390 class t_TAIL_08,
3391 class t_TAIL_09,
3392 class t_TAIL_10,
3393 class t_TAIL_11,
3394 class t_TAIL_12,
3395 class t_TAIL_13>
3396void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3397 t_TAIL_02,
3398 t_TAIL_03,
3399 t_TAIL_04,
3400 t_TAIL_05,
3401 t_TAIL_06,
3402 t_TAIL_07,
3403 t_TAIL_08,
3404 t_TAIL_09,
3405 t_TAIL_10,
3406 t_TAIL_11,
3407 t_TAIL_12,
3408 t_TAIL_13>& input);
3409#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
3410
3411#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
3412template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3413 class t_TAIL_02,
3414 class t_TAIL_03,
3415 class t_TAIL_04,
3416 class t_TAIL_05,
3417 class t_TAIL_06,
3418 class t_TAIL_07,
3419 class t_TAIL_08,
3420 class t_TAIL_09,
3421 class t_TAIL_10,
3422 class t_TAIL_11,
3423 class t_TAIL_12,
3424 class t_TAIL_13,
3425 class t_TAIL_14>
3426void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3427 t_TAIL_02,
3428 t_TAIL_03,
3429 t_TAIL_04,
3430 t_TAIL_05,
3431 t_TAIL_06,
3432 t_TAIL_07,
3433 t_TAIL_08,
3434 t_TAIL_09,
3435 t_TAIL_10,
3436 t_TAIL_11,
3437 t_TAIL_12,
3438 t_TAIL_13,
3439 t_TAIL_14>& input);
3440#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
3441
3442#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
3443template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3444 class t_TAIL_02,
3445 class t_TAIL_03,
3446 class t_TAIL_04,
3447 class t_TAIL_05,
3448 class t_TAIL_06,
3449 class t_TAIL_07,
3450 class t_TAIL_08,
3451 class t_TAIL_09,
3452 class t_TAIL_10,
3453 class t_TAIL_11,
3454 class t_TAIL_12,
3455 class t_TAIL_13,
3456 class t_TAIL_14,
3457 class t_TAIL_15>
3458void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3459 t_TAIL_02,
3460 t_TAIL_03,
3461 t_TAIL_04,
3462 t_TAIL_05,
3463 t_TAIL_06,
3464 t_TAIL_07,
3465 t_TAIL_08,
3466 t_TAIL_09,
3467 t_TAIL_10,
3468 t_TAIL_11,
3469 t_TAIL_12,
3470 t_TAIL_13,
3471 t_TAIL_14,
3472 t_TAIL_15>& input);
3473#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
3474
3475#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
3476template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3477 class t_TAIL_02,
3478 class t_TAIL_03,
3479 class t_TAIL_04,
3480 class t_TAIL_05,
3481 class t_TAIL_06,
3482 class t_TAIL_07,
3483 class t_TAIL_08,
3484 class t_TAIL_09,
3485 class t_TAIL_10,
3486 class t_TAIL_11,
3487 class t_TAIL_12,
3488 class t_TAIL_13,
3489 class t_TAIL_14,
3490 class t_TAIL_15,
3491 class t_TAIL_16>
3492void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3493 t_TAIL_02,
3494 t_TAIL_03,
3495 t_TAIL_04,
3496 t_TAIL_05,
3497 t_TAIL_06,
3498 t_TAIL_07,
3499 t_TAIL_08,
3500 t_TAIL_09,
3501 t_TAIL_10,
3502 t_TAIL_11,
3503 t_TAIL_12,
3504 t_TAIL_13,
3505 t_TAIL_14,
3506 t_TAIL_15,
3507 t_TAIL_16>& input);
3508#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
3509
3510#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
3511template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3512 class t_TAIL_02,
3513 class t_TAIL_03,
3514 class t_TAIL_04,
3515 class t_TAIL_05,
3516 class t_TAIL_06,
3517 class t_TAIL_07,
3518 class t_TAIL_08,
3519 class t_TAIL_09,
3520 class t_TAIL_10,
3521 class t_TAIL_11,
3522 class t_TAIL_12,
3523 class t_TAIL_13,
3524 class t_TAIL_14,
3525 class t_TAIL_15,
3526 class t_TAIL_16,
3527 class t_TAIL_17>
3528void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3529 t_TAIL_02,
3530 t_TAIL_03,
3531 t_TAIL_04,
3532 t_TAIL_05,
3533 t_TAIL_06,
3534 t_TAIL_07,
3535 t_TAIL_08,
3536 t_TAIL_09,
3537 t_TAIL_10,
3538 t_TAIL_11,
3539 t_TAIL_12,
3540 t_TAIL_13,
3541 t_TAIL_14,
3542 t_TAIL_15,
3543 t_TAIL_16,
3544 t_TAIL_17>& input);
3545#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
3546
3547#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
3548template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
3549 class t_TAIL_02,
3550 class t_TAIL_03,
3551 class t_TAIL_04,
3552 class t_TAIL_05,
3553 class t_TAIL_06,
3554 class t_TAIL_07,
3555 class t_TAIL_08,
3556 class t_TAIL_09,
3557 class t_TAIL_10,
3558 class t_TAIL_11,
3559 class t_TAIL_12,
3560 class t_TAIL_13,
3561 class t_TAIL_14,
3562 class t_TAIL_15,
3563 class t_TAIL_16,
3564 class t_TAIL_17,
3565 class t_TAIL_18>
3566void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
3567 t_TAIL_02,
3568 t_TAIL_03,
3569 t_TAIL_04,
3570 t_TAIL_05,
3571 t_TAIL_06,
3572 t_TAIL_07,
3573 t_TAIL_08,
3574 t_TAIL_09,
3575 t_TAIL_10,
3576 t_TAIL_11,
3577 t_TAIL_12,
3578 t_TAIL_13,
3579 t_TAIL_14,
3580 t_TAIL_15,
3581 t_TAIL_16,
3582 t_TAIL_17,
3583 t_TAIL_18>& input);
3584#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
3585
3586
3587
3588#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
3589template <class t_TYPE, class t_HEAD>
3591 const variant<t_HEAD>& obj) BSLS_KEYWORD_NOEXCEPT;
3592#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 0
3593
3594#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
3595template <class t_TYPE, class t_HEAD, class t_TAIL_01>
3597 const variant<t_HEAD, t_TAIL_01>& obj) BSLS_KEYWORD_NOEXCEPT;
3598#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 1
3599
3600#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
3601template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3602 class t_TAIL_02>
3604 const variant<t_HEAD, t_TAIL_01,
3605 t_TAIL_02>& obj) BSLS_KEYWORD_NOEXCEPT;
3606#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 2
3607
3608#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
3609template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3610 class t_TAIL_02,
3611 class t_TAIL_03>
3613 const variant<t_HEAD, t_TAIL_01,
3614 t_TAIL_02,
3615 t_TAIL_03>& obj) BSLS_KEYWORD_NOEXCEPT;
3616#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 3
3617
3618#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
3619template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3620 class t_TAIL_02,
3621 class t_TAIL_03,
3622 class t_TAIL_04>
3624 const variant<t_HEAD, t_TAIL_01,
3625 t_TAIL_02,
3626 t_TAIL_03,
3627 t_TAIL_04>& obj) BSLS_KEYWORD_NOEXCEPT;
3628#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 4
3629
3630#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
3631template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3632 class t_TAIL_02,
3633 class t_TAIL_03,
3634 class t_TAIL_04,
3635 class t_TAIL_05>
3637 const variant<t_HEAD, t_TAIL_01,
3638 t_TAIL_02,
3639 t_TAIL_03,
3640 t_TAIL_04,
3641 t_TAIL_05>& obj) BSLS_KEYWORD_NOEXCEPT;
3642#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 5
3643
3644#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
3645template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3646 class t_TAIL_02,
3647 class t_TAIL_03,
3648 class t_TAIL_04,
3649 class t_TAIL_05,
3650 class t_TAIL_06>
3652 const variant<t_HEAD, t_TAIL_01,
3653 t_TAIL_02,
3654 t_TAIL_03,
3655 t_TAIL_04,
3656 t_TAIL_05,
3657 t_TAIL_06>& obj) BSLS_KEYWORD_NOEXCEPT;
3658#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 6
3659
3660#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
3661template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3662 class t_TAIL_02,
3663 class t_TAIL_03,
3664 class t_TAIL_04,
3665 class t_TAIL_05,
3666 class t_TAIL_06,
3667 class t_TAIL_07>
3669 const variant<t_HEAD, t_TAIL_01,
3670 t_TAIL_02,
3671 t_TAIL_03,
3672 t_TAIL_04,
3673 t_TAIL_05,
3674 t_TAIL_06,
3675 t_TAIL_07>& obj) BSLS_KEYWORD_NOEXCEPT;
3676#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 7
3677
3678#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
3679template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3680 class t_TAIL_02,
3681 class t_TAIL_03,
3682 class t_TAIL_04,
3683 class t_TAIL_05,
3684 class t_TAIL_06,
3685 class t_TAIL_07,
3686 class t_TAIL_08>
3688 const variant<t_HEAD, t_TAIL_01,
3689 t_TAIL_02,
3690 t_TAIL_03,
3691 t_TAIL_04,
3692 t_TAIL_05,
3693 t_TAIL_06,
3694 t_TAIL_07,
3695 t_TAIL_08>& obj) BSLS_KEYWORD_NOEXCEPT;
3696#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 8
3697
3698#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
3699template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3700 class t_TAIL_02,
3701 class t_TAIL_03,
3702 class t_TAIL_04,
3703 class t_TAIL_05,
3704 class t_TAIL_06,
3705 class t_TAIL_07,
3706 class t_TAIL_08,
3707 class t_TAIL_09>
3709 const variant<t_HEAD, t_TAIL_01,
3710 t_TAIL_02,
3711 t_TAIL_03,
3712 t_TAIL_04,
3713 t_TAIL_05,
3714 t_TAIL_06,
3715 t_TAIL_07,
3716 t_TAIL_08,
3717 t_TAIL_09>& obj) BSLS_KEYWORD_NOEXCEPT;
3718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 9
3719
3720#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
3721template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3722 class t_TAIL_02,
3723 class t_TAIL_03,
3724 class t_TAIL_04,
3725 class t_TAIL_05,
3726 class t_TAIL_06,
3727 class t_TAIL_07,
3728 class t_TAIL_08,
3729 class t_TAIL_09,
3730 class t_TAIL_10>
3732 const variant<t_HEAD, t_TAIL_01,
3733 t_TAIL_02,
3734 t_TAIL_03,
3735 t_TAIL_04,
3736 t_TAIL_05,
3737 t_TAIL_06,
3738 t_TAIL_07,
3739 t_TAIL_08,
3740 t_TAIL_09,
3741 t_TAIL_10>& obj) BSLS_KEYWORD_NOEXCEPT;
3742#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 10
3743
3744#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
3745template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3746 class t_TAIL_02,
3747 class t_TAIL_03,
3748 class t_TAIL_04,
3749 class t_TAIL_05,
3750 class t_TAIL_06,
3751 class t_TAIL_07,
3752 class t_TAIL_08,
3753 class t_TAIL_09,
3754 class t_TAIL_10,
3755 class t_TAIL_11>
3757 const variant<t_HEAD, t_TAIL_01,
3758 t_TAIL_02,
3759 t_TAIL_03,
3760 t_TAIL_04,
3761 t_TAIL_05,
3762 t_TAIL_06,
3763 t_TAIL_07,
3764 t_TAIL_08,
3765 t_TAIL_09,
3766 t_TAIL_10,
3767 t_TAIL_11>& obj) BSLS_KEYWORD_NOEXCEPT;
3768#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 11
3769
3770#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
3771template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3772 class t_TAIL_02,
3773 class t_TAIL_03,
3774 class t_TAIL_04,
3775 class t_TAIL_05,
3776 class t_TAIL_06,
3777 class t_TAIL_07,
3778 class t_TAIL_08,
3779 class t_TAIL_09,
3780 class t_TAIL_10,
3781 class t_TAIL_11,
3782 class t_TAIL_12>
3784 const variant<t_HEAD, t_TAIL_01,
3785 t_TAIL_02,
3786 t_TAIL_03,
3787 t_TAIL_04,
3788 t_TAIL_05,
3789 t_TAIL_06,
3790 t_TAIL_07,
3791 t_TAIL_08,
3792 t_TAIL_09,
3793 t_TAIL_10,
3794 t_TAIL_11,
3795 t_TAIL_12>& obj) BSLS_KEYWORD_NOEXCEPT;
3796#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 12
3797
3798#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
3799template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3800 class t_TAIL_02,
3801 class t_TAIL_03,
3802 class t_TAIL_04,
3803 class t_TAIL_05,
3804 class t_TAIL_06,
3805 class t_TAIL_07,
3806 class t_TAIL_08,
3807 class t_TAIL_09,
3808 class t_TAIL_10,
3809 class t_TAIL_11,
3810 class t_TAIL_12,
3811 class t_TAIL_13>
3813 const variant<t_HEAD, t_TAIL_01,
3814 t_TAIL_02,
3815 t_TAIL_03,
3816 t_TAIL_04,
3817 t_TAIL_05,
3818 t_TAIL_06,
3819 t_TAIL_07,
3820 t_TAIL_08,
3821 t_TAIL_09,
3822 t_TAIL_10,
3823 t_TAIL_11,
3824 t_TAIL_12,
3825 t_TAIL_13>& obj) BSLS_KEYWORD_NOEXCEPT;
3826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 13
3827
3828#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
3829template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3830 class t_TAIL_02,
3831 class t_TAIL_03,
3832 class t_TAIL_04,
3833 class t_TAIL_05,
3834 class t_TAIL_06,
3835 class t_TAIL_07,
3836 class t_TAIL_08,
3837 class t_TAIL_09,
3838 class t_TAIL_10,
3839 class t_TAIL_11,
3840 class t_TAIL_12,
3841 class t_TAIL_13,
3842 class t_TAIL_14>
3844 const variant<t_HEAD, t_TAIL_01,
3845 t_TAIL_02,
3846 t_TAIL_03,
3847 t_TAIL_04,
3848 t_TAIL_05,
3849 t_TAIL_06,
3850 t_TAIL_07,
3851 t_TAIL_08,
3852 t_TAIL_09,
3853 t_TAIL_10,
3854 t_TAIL_11,
3855 t_TAIL_12,
3856 t_TAIL_13,
3857 t_TAIL_14>& obj) BSLS_KEYWORD_NOEXCEPT;
3858#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 14
3859
3860#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
3861template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3862 class t_TAIL_02,
3863 class t_TAIL_03,
3864 class t_TAIL_04,
3865 class t_TAIL_05,
3866 class t_TAIL_06,
3867 class t_TAIL_07,
3868 class t_TAIL_08,
3869 class t_TAIL_09,
3870 class t_TAIL_10,
3871 class t_TAIL_11,
3872 class t_TAIL_12,
3873 class t_TAIL_13,
3874 class t_TAIL_14,
3875 class t_TAIL_15>
3877 const variant<t_HEAD, t_TAIL_01,
3878 t_TAIL_02,
3879 t_TAIL_03,
3880 t_TAIL_04,
3881 t_TAIL_05,
3882 t_TAIL_06,
3883 t_TAIL_07,
3884 t_TAIL_08,
3885 t_TAIL_09,
3886 t_TAIL_10,
3887 t_TAIL_11,
3888 t_TAIL_12,
3889 t_TAIL_13,
3890 t_TAIL_14,
3891 t_TAIL_15>& obj) BSLS_KEYWORD_NOEXCEPT;
3892#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 15
3893
3894#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
3895template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3896 class t_TAIL_02,
3897 class t_TAIL_03,
3898 class t_TAIL_04,
3899 class t_TAIL_05,
3900 class t_TAIL_06,
3901 class t_TAIL_07,
3902 class t_TAIL_08,
3903 class t_TAIL_09,
3904 class t_TAIL_10,
3905 class t_TAIL_11,
3906 class t_TAIL_12,
3907 class t_TAIL_13,
3908 class t_TAIL_14,
3909 class t_TAIL_15,
3910 class t_TAIL_16>
3912 const variant<t_HEAD, t_TAIL_01,
3913 t_TAIL_02,
3914 t_TAIL_03,
3915 t_TAIL_04,
3916 t_TAIL_05,
3917 t_TAIL_06,
3918 t_TAIL_07,
3919 t_TAIL_08,
3920 t_TAIL_09,
3921 t_TAIL_10,
3922 t_TAIL_11,
3923 t_TAIL_12,
3924 t_TAIL_13,
3925 t_TAIL_14,
3926 t_TAIL_15,
3927 t_TAIL_16>& obj) BSLS_KEYWORD_NOEXCEPT;
3928#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 16
3929
3930#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
3931template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3932 class t_TAIL_02,
3933 class t_TAIL_03,
3934 class t_TAIL_04,
3935 class t_TAIL_05,
3936 class t_TAIL_06,
3937 class t_TAIL_07,
3938 class t_TAIL_08,
3939 class t_TAIL_09,
3940 class t_TAIL_10,
3941 class t_TAIL_11,
3942 class t_TAIL_12,
3943 class t_TAIL_13,
3944 class t_TAIL_14,
3945 class t_TAIL_15,
3946 class t_TAIL_16,
3947 class t_TAIL_17>
3949 const variant<t_HEAD, t_TAIL_01,
3950 t_TAIL_02,
3951 t_TAIL_03,
3952 t_TAIL_04,
3953 t_TAIL_05,
3954 t_TAIL_06,
3955 t_TAIL_07,
3956 t_TAIL_08,
3957 t_TAIL_09,
3958 t_TAIL_10,
3959 t_TAIL_11,
3960 t_TAIL_12,
3961 t_TAIL_13,
3962 t_TAIL_14,
3963 t_TAIL_15,
3964 t_TAIL_16,
3965 t_TAIL_17>& obj) BSLS_KEYWORD_NOEXCEPT;
3966#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 17
3967
3968#if BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
3969template <class t_TYPE, class t_HEAD, class t_TAIL_01,
3970 class t_TAIL_02,
3971 class t_TAIL_03,
3972 class t_TAIL_04,
3973 class t_TAIL_05,
3974 class t_TAIL_06,
3975 class t_TAIL_07,
3976 class t_TAIL_08,
3977 class t_TAIL_09,
3978 class t_TAIL_10,
3979 class t_TAIL_11,
3980 class t_TAIL_12,
3981 class t_TAIL_13,
3982 class t_TAIL_14,
3983 class t_TAIL_15,
3984 class t_TAIL_16,
3985 class t_TAIL_17,
3986 class t_TAIL_18>
3988 const variant<t_HEAD, t_TAIL_01,
3989 t_TAIL_02,
3990 t_TAIL_03,
3991 t_TAIL_04,
3992 t_TAIL_05,
3993 t_TAIL_06,
3994 t_TAIL_07,
3995 t_TAIL_08,
3996 t_TAIL_09,
3997 t_TAIL_10,
3998 t_TAIL_11,
3999 t_TAIL_12,
4000 t_TAIL_13,
4001 t_TAIL_14,
4002 t_TAIL_15,
4003 t_TAIL_16,
4004 t_TAIL_17,
4005 t_TAIL_18>& obj) BSLS_KEYWORD_NOEXCEPT;
4006#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_C >= 18
4007
4008#else
4009// The generated code below is a workaround for the absence of perfect
4010// forwarding in some compilers.
4011
4012template <size_t t_INDEX,
4013 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE,
4014 class... t_TAIL>
4015struct Variant_VariantAlternativeImpl
4016: Variant_VariantAlternativeImpl<t_INDEX - 1, t_TAIL...> {
4017};
4018
4019template <size_t t_INDEX>
4020struct Variant_VariantAlternativeImpl<t_INDEX, BSLSTL_VARIANT_NOT_A_TYPE> {
4021};
4022
4023template <>
4024struct Variant_VariantAlternativeImpl<0, BSLSTL_VARIANT_NOT_A_TYPE> {
4025};
4026
4027template <class t_HEAD, class... t_TAIL>
4028struct Variant_VariantAlternativeImpl<0, t_HEAD, t_TAIL...> {
4029 typedef t_HEAD type;
4030};
4031
4032template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
4033struct variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >
4034: Variant_VariantAlternativeImpl<t_INDEX, t_HEAD, t_TAIL...> {
4035 BSLMF_ASSERT((t_INDEX <
4036 bsl::variant_size<variant<t_HEAD, t_TAIL...> >::value));
4037};
4038
4039#ifdef BSLS_COMPILERFEATURES_SUPPORT_ALIAS_TEMPLATES
4040template <size_t t_INDEX, class t_TYPE>
4041using variant_alternative_t =
4042 typename variant_alternative<t_INDEX, t_TYPE>::type;
4043#endif
4044
4045
4046template <class t_HEAD, class... t_TAIL>
4049
4050
4051template <class t_HASHALG, class t_HEAD, class... t_TAIL>
4052void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL...>& input);
4053
4054
4055template <class t_TYPE, class t_HEAD, class... t_TAIL>
4057 const variant<t_HEAD, t_TAIL...>& obj) BSLS_KEYWORD_NOEXCEPT;
4058// }}} END GENERATED CODE
4059#endif
4060#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
4061/// Return a reference to the alternative object at index (template
4062/// parameter) `t_INDEX` in the specified `obj`. If `t_INDEX` is not the
4063/// index of the currently active alternative, throw an exception of type
4064/// `bad_variant_access`. `t_INDEX` shall be a valid index for the variant
4065/// type of `obj`.
4066template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
4067typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type& get(
4068 variant<t_HEAD, t_TAIL...>& obj);
4069template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
4070const typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
4071get(const variant<t_HEAD, t_TAIL...>& obj);
4072template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
4073typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&& get(
4074 variant<t_HEAD, t_TAIL...>&& obj);
4075template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
4076const typename variant_alternative<t_INDEX,
4077 variant<t_HEAD, t_TAIL...> >::type&&
4078get(const variant<t_HEAD, t_TAIL...>&& obj);
4079
4080/// Return a reference to the alternative object with type (template
4081/// parameter) `t_TYPE` in the specified `obj`. If `t_TYPE` is not the type
4082/// of the currently active alternative, throw an exception of type
4083/// `bad_variant_access`. `t_TYPE` shall appear exactly once in the
4084/// variant's list of alternatives.
4085template <class t_TYPE, class t_HEAD, class... t_TAIL>
4086t_TYPE& get(variant<t_HEAD, t_TAIL...>& obj);
4087template <class t_TYPE, class t_HEAD, class... t_TAIL>
4088const t_TYPE& get(const variant<t_HEAD, t_TAIL...>& obj);
4089template <class t_TYPE, class t_HEAD, class... t_TAIL>
4090t_TYPE&& get(variant<t_HEAD, t_TAIL...>&& obj);
4091template <class t_TYPE, class t_HEAD, class... t_TAIL>
4092const t_TYPE&& get(const variant<t_HEAD, t_TAIL...>&& obj);
4093
4094template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
4095typename add_pointer<
4096 typename variant_alternative<t_INDEX,
4097 variant<t_HEAD, t_TAIL...> >::type>::type
4098get_if(variant<t_HEAD, t_TAIL...> *obj) BSLS_KEYWORD_NOEXCEPT;
4099
4100/// Return a pointer to the alternative object with index (template
4101/// parameter) `t_INDEX` in the specified `obj`, or a null pointer if `obj`
4102/// itself is a null pointer or if `t_INDEX` is not the index of the
4103/// currently active alternative. `t_INDEX` shall be a valid alternative
4104/// index.
4105template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
4106typename add_pointer<const typename variant_alternative<
4107 t_INDEX,
4108 variant<t_HEAD, t_TAIL...> >::type>::type
4109get_if(const variant<t_HEAD, t_TAIL...> *obj) BSLS_KEYWORD_NOEXCEPT;
4110
4111template <class t_TYPE, class t_HEAD, class... t_TAIL>
4113 variant<t_HEAD, t_TAIL...> *obj) BSLS_KEYWORD_NOEXCEPT;
4114
4115/// Return a pointer to the alternative object with type (template
4116/// parameter) `t_TYPE` in the specified `obj`, or a null pointer if `obj`
4117/// itself is a null pointer or if `t_TYPE` is not the type of the currently
4118/// active alternative. `t_TYPE` shall appear exactly once in the variant's
4119/// list of alternatives.
4120template <class t_TYPE, class t_HEAD, class... t_TAIL>
4122 const variant<t_HEAD, t_TAIL...> *obj) BSLS_KEYWORD_NOEXCEPT;
4123#else // BSL_VARIANT_FULL_IMPLEMENTATION
4124
4125// See 'bslstl_variant.cpp' for implementation notes regarding 'bsl::get'.
4126template <bool t_VALID, size_t t_INDEX, class t_ARG, class t_VARIANT>
4127struct Variant_GetIndexReturnTypeImpl {
4128 // This component-private metafunction computes the return types for
4129 // 'bsl::get<t_INDEX>' and 'bsl::get_if<t_INDEX>' with an argument of type
4130 // 't_ARG' or 't_ARG*', respectively, where 't_VARIANT' is 't_ARG' with
4131 // cvref-qualifiers stripped, and shall be a specialization of
4132 // 'bsl::variant'. 't_VALID' shall be 'true' if and only if 't_INDEX' is a
4133 // valid index for 't_VARIANT'. If 't_VALID' is 'false', no member
4134 // typedefs are provided.
4135};
4136
4137template <size_t t_INDEX, class t_VARIANT>
4138struct Variant_GetIndexReturnTypeImpl<true, t_INDEX, t_VARIANT, t_VARIANT> {
4140
4141 typedef
4143};
4144
4145template <size_t t_INDEX, class t_VARIANT>
4146struct Variant_GetIndexReturnTypeImpl<true,
4147 t_INDEX,
4148 const t_VARIANT,
4149 t_VARIANT> {
4151 type;
4152
4154 *pointer;
4155};
4156
4157template <size_t t_INDEX, class t_VARIANT>
4158struct Variant_GetIndexReturnTypeImpl<
4159 true,
4160 t_INDEX,
4161 BloombergLP::bslmf::MovableRef<t_VARIANT>,
4162 t_VARIANT> {
4163 typedef BloombergLP::bslmf::MovableRef<
4165 type;
4166};
4167
4168template <size_t t_INDEX,
4169 class t_ARG,
4170 class t_VARIANT = typename BloombergLP::bslmf::MovableRefUtil::
4171 Decay<t_ARG>::type>
4172struct Variant_GetIndexReturnType;
4173 // This component-private metafunction computes the return types for
4174 // 'bsl::get<t_INDEX>' and 'bsl::get_if<t_INDEX>' with an argument of type
4175 // 't_ARG' or 't_ARG*' respectively. If 't_ARG' is not a (possibly
4176 // cvref-qualified) 'bsl::variant', no definition is provided. If
4177 // 't_INDEX' is not a valid index for 't_ARG', the member typedefs 'type'
4178 // and 'pointer' are not provided.
4179
4180#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
4181// {{{ BEGIN GENERATED CODE
4182// Command line: sim_cpp11_features.pl bslstl_variant.h
4183#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
4184#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
4185#endif
4186#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_D
4187#define BSLSTL_VARIANT_VARIADIC_LIMIT_D BSLSTL_VARIANT_VARIADIC_LIMIT
4188#endif
4189#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 0
4190template <size_t t_INDEX, class t_ARG, class t_HEAD>
4191struct Variant_GetIndexReturnType<t_INDEX,
4192 t_ARG,
4193 bsl::variant<t_HEAD> >
4194: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 0u),
4195 t_INDEX,
4196 t_ARG,
4197 bsl::variant<t_HEAD> > {
4198};
4199#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 0
4200
4201#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 1
4202template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01>
4203struct Variant_GetIndexReturnType<t_INDEX,
4204 t_ARG,
4205 bsl::variant<t_HEAD, t_TAIL_01> >
4206: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 1u),
4207 t_INDEX,
4208 t_ARG,
4209 bsl::variant<t_HEAD, t_TAIL_01> > {
4210};
4211#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 1
4212
4213#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 2
4214template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4215 class t_TAIL_02>
4216struct Variant_GetIndexReturnType<t_INDEX,
4217 t_ARG,
4218 bsl::variant<t_HEAD, t_TAIL_01,
4219 t_TAIL_02> >
4220: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 2u),
4221 t_INDEX,
4222 t_ARG,
4223 bsl::variant<t_HEAD, t_TAIL_01,
4224 t_TAIL_02> > {
4225};
4226#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 2
4227
4228#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 3
4229template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4230 class t_TAIL_02,
4231 class t_TAIL_03>
4232struct Variant_GetIndexReturnType<t_INDEX,
4233 t_ARG,
4234 bsl::variant<t_HEAD, t_TAIL_01,
4235 t_TAIL_02,
4236 t_TAIL_03> >
4237: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 3u),
4238 t_INDEX,
4239 t_ARG,
4240 bsl::variant<t_HEAD, t_TAIL_01,
4241 t_TAIL_02,
4242 t_TAIL_03> > {
4243};
4244#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 3
4245
4246#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 4
4247template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4248 class t_TAIL_02,
4249 class t_TAIL_03,
4250 class t_TAIL_04>
4251struct Variant_GetIndexReturnType<t_INDEX,
4252 t_ARG,
4253 bsl::variant<t_HEAD, t_TAIL_01,
4254 t_TAIL_02,
4255 t_TAIL_03,
4256 t_TAIL_04> >
4257: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 4u),
4258 t_INDEX,
4259 t_ARG,
4260 bsl::variant<t_HEAD, t_TAIL_01,
4261 t_TAIL_02,
4262 t_TAIL_03,
4263 t_TAIL_04> > {
4264};
4265#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 4
4266
4267#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 5
4268template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4269 class t_TAIL_02,
4270 class t_TAIL_03,
4271 class t_TAIL_04,
4272 class t_TAIL_05>
4273struct Variant_GetIndexReturnType<t_INDEX,
4274 t_ARG,
4275 bsl::variant<t_HEAD, t_TAIL_01,
4276 t_TAIL_02,
4277 t_TAIL_03,
4278 t_TAIL_04,
4279 t_TAIL_05> >
4280: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 5u),
4281 t_INDEX,
4282 t_ARG,
4283 bsl::variant<t_HEAD, t_TAIL_01,
4284 t_TAIL_02,
4285 t_TAIL_03,
4286 t_TAIL_04,
4287 t_TAIL_05> > {
4288};
4289#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 5
4290
4291#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 6
4292template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4293 class t_TAIL_02,
4294 class t_TAIL_03,
4295 class t_TAIL_04,
4296 class t_TAIL_05,
4297 class t_TAIL_06>
4298struct Variant_GetIndexReturnType<t_INDEX,
4299 t_ARG,
4300 bsl::variant<t_HEAD, t_TAIL_01,
4301 t_TAIL_02,
4302 t_TAIL_03,
4303 t_TAIL_04,
4304 t_TAIL_05,
4305 t_TAIL_06> >
4306: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 6u),
4307 t_INDEX,
4308 t_ARG,
4309 bsl::variant<t_HEAD, t_TAIL_01,
4310 t_TAIL_02,
4311 t_TAIL_03,
4312 t_TAIL_04,
4313 t_TAIL_05,
4314 t_TAIL_06> > {
4315};
4316#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 6
4317
4318#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 7
4319template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4320 class t_TAIL_02,
4321 class t_TAIL_03,
4322 class t_TAIL_04,
4323 class t_TAIL_05,
4324 class t_TAIL_06,
4325 class t_TAIL_07>
4326struct Variant_GetIndexReturnType<t_INDEX,
4327 t_ARG,
4328 bsl::variant<t_HEAD, t_TAIL_01,
4329 t_TAIL_02,
4330 t_TAIL_03,
4331 t_TAIL_04,
4332 t_TAIL_05,
4333 t_TAIL_06,
4334 t_TAIL_07> >
4335: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 7u),
4336 t_INDEX,
4337 t_ARG,
4338 bsl::variant<t_HEAD, t_TAIL_01,
4339 t_TAIL_02,
4340 t_TAIL_03,
4341 t_TAIL_04,
4342 t_TAIL_05,
4343 t_TAIL_06,
4344 t_TAIL_07> > {
4345};
4346#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 7
4347
4348#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 8
4349template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4350 class t_TAIL_02,
4351 class t_TAIL_03,
4352 class t_TAIL_04,
4353 class t_TAIL_05,
4354 class t_TAIL_06,
4355 class t_TAIL_07,
4356 class t_TAIL_08>
4357struct Variant_GetIndexReturnType<t_INDEX,
4358 t_ARG,
4359 bsl::variant<t_HEAD, t_TAIL_01,
4360 t_TAIL_02,
4361 t_TAIL_03,
4362 t_TAIL_04,
4363 t_TAIL_05,
4364 t_TAIL_06,
4365 t_TAIL_07,
4366 t_TAIL_08> >
4367: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 8u),
4368 t_INDEX,
4369 t_ARG,
4370 bsl::variant<t_HEAD, t_TAIL_01,
4371 t_TAIL_02,
4372 t_TAIL_03,
4373 t_TAIL_04,
4374 t_TAIL_05,
4375 t_TAIL_06,
4376 t_TAIL_07,
4377 t_TAIL_08> > {
4378};
4379#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 8
4380
4381#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 9
4382template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4383 class t_TAIL_02,
4384 class t_TAIL_03,
4385 class t_TAIL_04,
4386 class t_TAIL_05,
4387 class t_TAIL_06,
4388 class t_TAIL_07,
4389 class t_TAIL_08,
4390 class t_TAIL_09>
4391struct Variant_GetIndexReturnType<t_INDEX,
4392 t_ARG,
4393 bsl::variant<t_HEAD, t_TAIL_01,
4394 t_TAIL_02,
4395 t_TAIL_03,
4396 t_TAIL_04,
4397 t_TAIL_05,
4398 t_TAIL_06,
4399 t_TAIL_07,
4400 t_TAIL_08,
4401 t_TAIL_09> >
4402: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 9u),
4403 t_INDEX,
4404 t_ARG,
4405 bsl::variant<t_HEAD, t_TAIL_01,
4406 t_TAIL_02,
4407 t_TAIL_03,
4408 t_TAIL_04,
4409 t_TAIL_05,
4410 t_TAIL_06,
4411 t_TAIL_07,
4412 t_TAIL_08,
4413 t_TAIL_09> > {
4414};
4415#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 9
4416
4417#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 10
4418template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4419 class t_TAIL_02,
4420 class t_TAIL_03,
4421 class t_TAIL_04,
4422 class t_TAIL_05,
4423 class t_TAIL_06,
4424 class t_TAIL_07,
4425 class t_TAIL_08,
4426 class t_TAIL_09,
4427 class t_TAIL_10>
4428struct Variant_GetIndexReturnType<t_INDEX,
4429 t_ARG,
4430 bsl::variant<t_HEAD, t_TAIL_01,
4431 t_TAIL_02,
4432 t_TAIL_03,
4433 t_TAIL_04,
4434 t_TAIL_05,
4435 t_TAIL_06,
4436 t_TAIL_07,
4437 t_TAIL_08,
4438 t_TAIL_09,
4439 t_TAIL_10> >
4440: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 10u),
4441 t_INDEX,
4442 t_ARG,
4443 bsl::variant<t_HEAD, t_TAIL_01,
4444 t_TAIL_02,
4445 t_TAIL_03,
4446 t_TAIL_04,
4447 t_TAIL_05,
4448 t_TAIL_06,
4449 t_TAIL_07,
4450 t_TAIL_08,
4451 t_TAIL_09,
4452 t_TAIL_10> > {
4453};
4454#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 10
4455
4456#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 11
4457template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4458 class t_TAIL_02,
4459 class t_TAIL_03,
4460 class t_TAIL_04,
4461 class t_TAIL_05,
4462 class t_TAIL_06,
4463 class t_TAIL_07,
4464 class t_TAIL_08,
4465 class t_TAIL_09,
4466 class t_TAIL_10,
4467 class t_TAIL_11>
4468struct Variant_GetIndexReturnType<t_INDEX,
4469 t_ARG,
4470 bsl::variant<t_HEAD, t_TAIL_01,
4471 t_TAIL_02,
4472 t_TAIL_03,
4473 t_TAIL_04,
4474 t_TAIL_05,
4475 t_TAIL_06,
4476 t_TAIL_07,
4477 t_TAIL_08,
4478 t_TAIL_09,
4479 t_TAIL_10,
4480 t_TAIL_11> >
4481: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 11u),
4482 t_INDEX,
4483 t_ARG,
4484 bsl::variant<t_HEAD, t_TAIL_01,
4485 t_TAIL_02,
4486 t_TAIL_03,
4487 t_TAIL_04,
4488 t_TAIL_05,
4489 t_TAIL_06,
4490 t_TAIL_07,
4491 t_TAIL_08,
4492 t_TAIL_09,
4493 t_TAIL_10,
4494 t_TAIL_11> > {
4495};
4496#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 11
4497
4498#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 12
4499template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4500 class t_TAIL_02,
4501 class t_TAIL_03,
4502 class t_TAIL_04,
4503 class t_TAIL_05,
4504 class t_TAIL_06,
4505 class t_TAIL_07,
4506 class t_TAIL_08,
4507 class t_TAIL_09,
4508 class t_TAIL_10,
4509 class t_TAIL_11,
4510 class t_TAIL_12>
4511struct Variant_GetIndexReturnType<t_INDEX,
4512 t_ARG,
4513 bsl::variant<t_HEAD, t_TAIL_01,
4514 t_TAIL_02,
4515 t_TAIL_03,
4516 t_TAIL_04,
4517 t_TAIL_05,
4518 t_TAIL_06,
4519 t_TAIL_07,
4520 t_TAIL_08,
4521 t_TAIL_09,
4522 t_TAIL_10,
4523 t_TAIL_11,
4524 t_TAIL_12> >
4525: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 12u),
4526 t_INDEX,
4527 t_ARG,
4528 bsl::variant<t_HEAD, t_TAIL_01,
4529 t_TAIL_02,
4530 t_TAIL_03,
4531 t_TAIL_04,
4532 t_TAIL_05,
4533 t_TAIL_06,
4534 t_TAIL_07,
4535 t_TAIL_08,
4536 t_TAIL_09,
4537 t_TAIL_10,
4538 t_TAIL_11,
4539 t_TAIL_12> > {
4540};
4541#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 12
4542
4543#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 13
4544template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4545 class t_TAIL_02,
4546 class t_TAIL_03,
4547 class t_TAIL_04,
4548 class t_TAIL_05,
4549 class t_TAIL_06,
4550 class t_TAIL_07,
4551 class t_TAIL_08,
4552 class t_TAIL_09,
4553 class t_TAIL_10,
4554 class t_TAIL_11,
4555 class t_TAIL_12,
4556 class t_TAIL_13>
4557struct Variant_GetIndexReturnType<t_INDEX,
4558 t_ARG,
4559 bsl::variant<t_HEAD, t_TAIL_01,
4560 t_TAIL_02,
4561 t_TAIL_03,
4562 t_TAIL_04,
4563 t_TAIL_05,
4564 t_TAIL_06,
4565 t_TAIL_07,
4566 t_TAIL_08,
4567 t_TAIL_09,
4568 t_TAIL_10,
4569 t_TAIL_11,
4570 t_TAIL_12,
4571 t_TAIL_13> >
4572: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 13u),
4573 t_INDEX,
4574 t_ARG,
4575 bsl::variant<t_HEAD, t_TAIL_01,
4576 t_TAIL_02,
4577 t_TAIL_03,
4578 t_TAIL_04,
4579 t_TAIL_05,
4580 t_TAIL_06,
4581 t_TAIL_07,
4582 t_TAIL_08,
4583 t_TAIL_09,
4584 t_TAIL_10,
4585 t_TAIL_11,
4586 t_TAIL_12,
4587 t_TAIL_13> > {
4588};
4589#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 13
4590
4591#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 14
4592template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4593 class t_TAIL_02,
4594 class t_TAIL_03,
4595 class t_TAIL_04,
4596 class t_TAIL_05,
4597 class t_TAIL_06,
4598 class t_TAIL_07,
4599 class t_TAIL_08,
4600 class t_TAIL_09,
4601 class t_TAIL_10,
4602 class t_TAIL_11,
4603 class t_TAIL_12,
4604 class t_TAIL_13,
4605 class t_TAIL_14>
4606struct Variant_GetIndexReturnType<t_INDEX,
4607 t_ARG,
4608 bsl::variant<t_HEAD, t_TAIL_01,
4609 t_TAIL_02,
4610 t_TAIL_03,
4611 t_TAIL_04,
4612 t_TAIL_05,
4613 t_TAIL_06,
4614 t_TAIL_07,
4615 t_TAIL_08,
4616 t_TAIL_09,
4617 t_TAIL_10,
4618 t_TAIL_11,
4619 t_TAIL_12,
4620 t_TAIL_13,
4621 t_TAIL_14> >
4622: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 14u),
4623 t_INDEX,
4624 t_ARG,
4625 bsl::variant<t_HEAD, t_TAIL_01,
4626 t_TAIL_02,
4627 t_TAIL_03,
4628 t_TAIL_04,
4629 t_TAIL_05,
4630 t_TAIL_06,
4631 t_TAIL_07,
4632 t_TAIL_08,
4633 t_TAIL_09,
4634 t_TAIL_10,
4635 t_TAIL_11,
4636 t_TAIL_12,
4637 t_TAIL_13,
4638 t_TAIL_14> > {
4639};
4640#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 14
4641
4642#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 15
4643template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4644 class t_TAIL_02,
4645 class t_TAIL_03,
4646 class t_TAIL_04,
4647 class t_TAIL_05,
4648 class t_TAIL_06,
4649 class t_TAIL_07,
4650 class t_TAIL_08,
4651 class t_TAIL_09,
4652 class t_TAIL_10,
4653 class t_TAIL_11,
4654 class t_TAIL_12,
4655 class t_TAIL_13,
4656 class t_TAIL_14,
4657 class t_TAIL_15>
4658struct Variant_GetIndexReturnType<t_INDEX,
4659 t_ARG,
4660 bsl::variant<t_HEAD, t_TAIL_01,
4661 t_TAIL_02,
4662 t_TAIL_03,
4663 t_TAIL_04,
4664 t_TAIL_05,
4665 t_TAIL_06,
4666 t_TAIL_07,
4667 t_TAIL_08,
4668 t_TAIL_09,
4669 t_TAIL_10,
4670 t_TAIL_11,
4671 t_TAIL_12,
4672 t_TAIL_13,
4673 t_TAIL_14,
4674 t_TAIL_15> >
4675: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 15u),
4676 t_INDEX,
4677 t_ARG,
4678 bsl::variant<t_HEAD, t_TAIL_01,
4679 t_TAIL_02,
4680 t_TAIL_03,
4681 t_TAIL_04,
4682 t_TAIL_05,
4683 t_TAIL_06,
4684 t_TAIL_07,
4685 t_TAIL_08,
4686 t_TAIL_09,
4687 t_TAIL_10,
4688 t_TAIL_11,
4689 t_TAIL_12,
4690 t_TAIL_13,
4691 t_TAIL_14,
4692 t_TAIL_15> > {
4693};
4694#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 15
4695
4696#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 16
4697template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4698 class t_TAIL_02,
4699 class t_TAIL_03,
4700 class t_TAIL_04,
4701 class t_TAIL_05,
4702 class t_TAIL_06,
4703 class t_TAIL_07,
4704 class t_TAIL_08,
4705 class t_TAIL_09,
4706 class t_TAIL_10,
4707 class t_TAIL_11,
4708 class t_TAIL_12,
4709 class t_TAIL_13,
4710 class t_TAIL_14,
4711 class t_TAIL_15,
4712 class t_TAIL_16>
4713struct Variant_GetIndexReturnType<t_INDEX,
4714 t_ARG,
4715 bsl::variant<t_HEAD, t_TAIL_01,
4716 t_TAIL_02,
4717 t_TAIL_03,
4718 t_TAIL_04,
4719 t_TAIL_05,
4720 t_TAIL_06,
4721 t_TAIL_07,
4722 t_TAIL_08,
4723 t_TAIL_09,
4724 t_TAIL_10,
4725 t_TAIL_11,
4726 t_TAIL_12,
4727 t_TAIL_13,
4728 t_TAIL_14,
4729 t_TAIL_15,
4730 t_TAIL_16> >
4731: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 16u),
4732 t_INDEX,
4733 t_ARG,
4734 bsl::variant<t_HEAD, t_TAIL_01,
4735 t_TAIL_02,
4736 t_TAIL_03,
4737 t_TAIL_04,
4738 t_TAIL_05,
4739 t_TAIL_06,
4740 t_TAIL_07,
4741 t_TAIL_08,
4742 t_TAIL_09,
4743 t_TAIL_10,
4744 t_TAIL_11,
4745 t_TAIL_12,
4746 t_TAIL_13,
4747 t_TAIL_14,
4748 t_TAIL_15,
4749 t_TAIL_16> > {
4750};
4751#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 16
4752
4753#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 17
4754template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4755 class t_TAIL_02,
4756 class t_TAIL_03,
4757 class t_TAIL_04,
4758 class t_TAIL_05,
4759 class t_TAIL_06,
4760 class t_TAIL_07,
4761 class t_TAIL_08,
4762 class t_TAIL_09,
4763 class t_TAIL_10,
4764 class t_TAIL_11,
4765 class t_TAIL_12,
4766 class t_TAIL_13,
4767 class t_TAIL_14,
4768 class t_TAIL_15,
4769 class t_TAIL_16,
4770 class t_TAIL_17>
4771struct Variant_GetIndexReturnType<t_INDEX,
4772 t_ARG,
4773 bsl::variant<t_HEAD, t_TAIL_01,
4774 t_TAIL_02,
4775 t_TAIL_03,
4776 t_TAIL_04,
4777 t_TAIL_05,
4778 t_TAIL_06,
4779 t_TAIL_07,
4780 t_TAIL_08,
4781 t_TAIL_09,
4782 t_TAIL_10,
4783 t_TAIL_11,
4784 t_TAIL_12,
4785 t_TAIL_13,
4786 t_TAIL_14,
4787 t_TAIL_15,
4788 t_TAIL_16,
4789 t_TAIL_17> >
4790: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 17u),
4791 t_INDEX,
4792 t_ARG,
4793 bsl::variant<t_HEAD, t_TAIL_01,
4794 t_TAIL_02,
4795 t_TAIL_03,
4796 t_TAIL_04,
4797 t_TAIL_05,
4798 t_TAIL_06,
4799 t_TAIL_07,
4800 t_TAIL_08,
4801 t_TAIL_09,
4802 t_TAIL_10,
4803 t_TAIL_11,
4804 t_TAIL_12,
4805 t_TAIL_13,
4806 t_TAIL_14,
4807 t_TAIL_15,
4808 t_TAIL_16,
4809 t_TAIL_17> > {
4810};
4811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 17
4812
4813#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 18
4814template <size_t t_INDEX, class t_ARG, class t_HEAD, class t_TAIL_01,
4815 class t_TAIL_02,
4816 class t_TAIL_03,
4817 class t_TAIL_04,
4818 class t_TAIL_05,
4819 class t_TAIL_06,
4820 class t_TAIL_07,
4821 class t_TAIL_08,
4822 class t_TAIL_09,
4823 class t_TAIL_10,
4824 class t_TAIL_11,
4825 class t_TAIL_12,
4826 class t_TAIL_13,
4827 class t_TAIL_14,
4828 class t_TAIL_15,
4829 class t_TAIL_16,
4830 class t_TAIL_17,
4831 class t_TAIL_18>
4832struct Variant_GetIndexReturnType<t_INDEX,
4833 t_ARG,
4834 bsl::variant<t_HEAD, t_TAIL_01,
4835 t_TAIL_02,
4836 t_TAIL_03,
4837 t_TAIL_04,
4838 t_TAIL_05,
4839 t_TAIL_06,
4840 t_TAIL_07,
4841 t_TAIL_08,
4842 t_TAIL_09,
4843 t_TAIL_10,
4844 t_TAIL_11,
4845 t_TAIL_12,
4846 t_TAIL_13,
4847 t_TAIL_14,
4848 t_TAIL_15,
4849 t_TAIL_16,
4850 t_TAIL_17,
4851 t_TAIL_18> >
4852: Variant_GetIndexReturnTypeImpl<(t_INDEX <= 18u),
4853 t_INDEX,
4854 t_ARG,
4855 bsl::variant<t_HEAD, t_TAIL_01,
4856 t_TAIL_02,
4857 t_TAIL_03,
4858 t_TAIL_04,
4859 t_TAIL_05,
4860 t_TAIL_06,
4861 t_TAIL_07,
4862 t_TAIL_08,
4863 t_TAIL_09,
4864 t_TAIL_10,
4865 t_TAIL_11,
4866 t_TAIL_12,
4867 t_TAIL_13,
4868 t_TAIL_14,
4869 t_TAIL_15,
4870 t_TAIL_16,
4871 t_TAIL_17,
4872 t_TAIL_18> > {
4873};
4874#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 18
4875
4876
4877template <class t_TYPE,
4878 class t_HEAD
4879#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 0
4880 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
4881#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 0
4882
4883#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 1
4884 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
4885#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 1
4886
4887#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 2
4888 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
4889#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 2
4890
4891#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 3
4892 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
4893#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 3
4894
4895#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 4
4896 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
4897#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 4
4898
4899#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 5
4900 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
4901#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 5
4902
4903#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 6
4904 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
4905#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 6
4906
4907#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 7
4908 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
4909#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 7
4910
4911#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 8
4912 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
4913#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 8
4914
4915#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 9
4916 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
4917#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 9
4918
4919#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 10
4920 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
4921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 10
4922
4923#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 11
4924 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
4925#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 11
4926
4927#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 12
4928 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
4929#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 12
4930
4931#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 13
4932 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
4933#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 13
4934
4935#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 14
4936 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
4937#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 14
4938
4939#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 15
4940 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
4941#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 15
4942
4943#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 16
4944 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
4945#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 16
4946
4947#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 17
4948 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
4949#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 17
4950 , class = BSLS_COMPILERFEATURES_NILT>
4951struct Variant_GetTypeReturnType;
4952
4953
4954#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 0
4955template <class t_TYPE, class t_HEAD>
4956struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD> > {
4957 typedef t_TYPE type;
4958 typedef typename add_pointer<t_TYPE>::type pointer;
4959};
4960#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 0
4961
4962#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 1
4963template <class t_TYPE, class t_HEAD, class t_TAIL_01>
4964struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01> > {
4965 typedef t_TYPE type;
4966 typedef typename add_pointer<t_TYPE>::type pointer;
4967};
4968#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 1
4969
4970#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 2
4971template <class t_TYPE, class t_HEAD, class t_TAIL_01,
4972 class t_TAIL_02>
4973struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
4974 t_TAIL_02> > {
4975 typedef t_TYPE type;
4976 typedef typename add_pointer<t_TYPE>::type pointer;
4977};
4978#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 2
4979
4980#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 3
4981template <class t_TYPE, class t_HEAD, class t_TAIL_01,
4982 class t_TAIL_02,
4983 class t_TAIL_03>
4984struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
4985 t_TAIL_02,
4986 t_TAIL_03> > {
4987 typedef t_TYPE type;
4988 typedef typename add_pointer<t_TYPE>::type pointer;
4989};
4990#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 3
4991
4992#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 4
4993template <class t_TYPE, class t_HEAD, class t_TAIL_01,
4994 class t_TAIL_02,
4995 class t_TAIL_03,
4996 class t_TAIL_04>
4997struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
4998 t_TAIL_02,
4999 t_TAIL_03,
5000 t_TAIL_04> > {
5001 typedef t_TYPE type;
5002 typedef typename add_pointer<t_TYPE>::type pointer;
5003};
5004#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 4
5005
5006#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 5
5007template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5008 class t_TAIL_02,
5009 class t_TAIL_03,
5010 class t_TAIL_04,
5011 class t_TAIL_05>
5012struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5013 t_TAIL_02,
5014 t_TAIL_03,
5015 t_TAIL_04,
5016 t_TAIL_05> > {
5017 typedef t_TYPE type;
5018 typedef typename add_pointer<t_TYPE>::type pointer;
5019};
5020#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 5
5021
5022#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 6
5023template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5024 class t_TAIL_02,
5025 class t_TAIL_03,
5026 class t_TAIL_04,
5027 class t_TAIL_05,
5028 class t_TAIL_06>
5029struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5030 t_TAIL_02,
5031 t_TAIL_03,
5032 t_TAIL_04,
5033 t_TAIL_05,
5034 t_TAIL_06> > {
5035 typedef t_TYPE type;
5036 typedef typename add_pointer<t_TYPE>::type pointer;
5037};
5038#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 6
5039
5040#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 7
5041template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5042 class t_TAIL_02,
5043 class t_TAIL_03,
5044 class t_TAIL_04,
5045 class t_TAIL_05,
5046 class t_TAIL_06,
5047 class t_TAIL_07>
5048struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5049 t_TAIL_02,
5050 t_TAIL_03,
5051 t_TAIL_04,
5052 t_TAIL_05,
5053 t_TAIL_06,
5054 t_TAIL_07> > {
5055 typedef t_TYPE type;
5056 typedef typename add_pointer<t_TYPE>::type pointer;
5057};
5058#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 7
5059
5060#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 8
5061template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5062 class t_TAIL_02,
5063 class t_TAIL_03,
5064 class t_TAIL_04,
5065 class t_TAIL_05,
5066 class t_TAIL_06,
5067 class t_TAIL_07,
5068 class t_TAIL_08>
5069struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5070 t_TAIL_02,
5071 t_TAIL_03,
5072 t_TAIL_04,
5073 t_TAIL_05,
5074 t_TAIL_06,
5075 t_TAIL_07,
5076 t_TAIL_08> > {
5077 typedef t_TYPE type;
5078 typedef typename add_pointer<t_TYPE>::type pointer;
5079};
5080#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 8
5081
5082#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 9
5083template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5084 class t_TAIL_02,
5085 class t_TAIL_03,
5086 class t_TAIL_04,
5087 class t_TAIL_05,
5088 class t_TAIL_06,
5089 class t_TAIL_07,
5090 class t_TAIL_08,
5091 class t_TAIL_09>
5092struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5093 t_TAIL_02,
5094 t_TAIL_03,
5095 t_TAIL_04,
5096 t_TAIL_05,
5097 t_TAIL_06,
5098 t_TAIL_07,
5099 t_TAIL_08,
5100 t_TAIL_09> > {
5101 typedef t_TYPE type;
5102 typedef typename add_pointer<t_TYPE>::type pointer;
5103};
5104#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 9
5105
5106#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 10
5107template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5108 class t_TAIL_02,
5109 class t_TAIL_03,
5110 class t_TAIL_04,
5111 class t_TAIL_05,
5112 class t_TAIL_06,
5113 class t_TAIL_07,
5114 class t_TAIL_08,
5115 class t_TAIL_09,
5116 class t_TAIL_10>
5117struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5118 t_TAIL_02,
5119 t_TAIL_03,
5120 t_TAIL_04,
5121 t_TAIL_05,
5122 t_TAIL_06,
5123 t_TAIL_07,
5124 t_TAIL_08,
5125 t_TAIL_09,
5126 t_TAIL_10> > {
5127 typedef t_TYPE type;
5128 typedef typename add_pointer<t_TYPE>::type pointer;
5129};
5130#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 10
5131
5132#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 11
5133template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5134 class t_TAIL_02,
5135 class t_TAIL_03,
5136 class t_TAIL_04,
5137 class t_TAIL_05,
5138 class t_TAIL_06,
5139 class t_TAIL_07,
5140 class t_TAIL_08,
5141 class t_TAIL_09,
5142 class t_TAIL_10,
5143 class t_TAIL_11>
5144struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5145 t_TAIL_02,
5146 t_TAIL_03,
5147 t_TAIL_04,
5148 t_TAIL_05,
5149 t_TAIL_06,
5150 t_TAIL_07,
5151 t_TAIL_08,
5152 t_TAIL_09,
5153 t_TAIL_10,
5154 t_TAIL_11> > {
5155 typedef t_TYPE type;
5156 typedef typename add_pointer<t_TYPE>::type pointer;
5157};
5158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 11
5159
5160#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 12
5161template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5162 class t_TAIL_02,
5163 class t_TAIL_03,
5164 class t_TAIL_04,
5165 class t_TAIL_05,
5166 class t_TAIL_06,
5167 class t_TAIL_07,
5168 class t_TAIL_08,
5169 class t_TAIL_09,
5170 class t_TAIL_10,
5171 class t_TAIL_11,
5172 class t_TAIL_12>
5173struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5174 t_TAIL_02,
5175 t_TAIL_03,
5176 t_TAIL_04,
5177 t_TAIL_05,
5178 t_TAIL_06,
5179 t_TAIL_07,
5180 t_TAIL_08,
5181 t_TAIL_09,
5182 t_TAIL_10,
5183 t_TAIL_11,
5184 t_TAIL_12> > {
5185 typedef t_TYPE type;
5186 typedef typename add_pointer<t_TYPE>::type pointer;
5187};
5188#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 12
5189
5190#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 13
5191template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5192 class t_TAIL_02,
5193 class t_TAIL_03,
5194 class t_TAIL_04,
5195 class t_TAIL_05,
5196 class t_TAIL_06,
5197 class t_TAIL_07,
5198 class t_TAIL_08,
5199 class t_TAIL_09,
5200 class t_TAIL_10,
5201 class t_TAIL_11,
5202 class t_TAIL_12,
5203 class t_TAIL_13>
5204struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5205 t_TAIL_02,
5206 t_TAIL_03,
5207 t_TAIL_04,
5208 t_TAIL_05,
5209 t_TAIL_06,
5210 t_TAIL_07,
5211 t_TAIL_08,
5212 t_TAIL_09,
5213 t_TAIL_10,
5214 t_TAIL_11,
5215 t_TAIL_12,
5216 t_TAIL_13> > {
5217 typedef t_TYPE type;
5218 typedef typename add_pointer<t_TYPE>::type pointer;
5219};
5220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 13
5221
5222#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 14
5223template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5224 class t_TAIL_02,
5225 class t_TAIL_03,
5226 class t_TAIL_04,
5227 class t_TAIL_05,
5228 class t_TAIL_06,
5229 class t_TAIL_07,
5230 class t_TAIL_08,
5231 class t_TAIL_09,
5232 class t_TAIL_10,
5233 class t_TAIL_11,
5234 class t_TAIL_12,
5235 class t_TAIL_13,
5236 class t_TAIL_14>
5237struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5238 t_TAIL_02,
5239 t_TAIL_03,
5240 t_TAIL_04,
5241 t_TAIL_05,
5242 t_TAIL_06,
5243 t_TAIL_07,
5244 t_TAIL_08,
5245 t_TAIL_09,
5246 t_TAIL_10,
5247 t_TAIL_11,
5248 t_TAIL_12,
5249 t_TAIL_13,
5250 t_TAIL_14> > {
5251 typedef t_TYPE type;
5252 typedef typename add_pointer<t_TYPE>::type pointer;
5253};
5254#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 14
5255
5256#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 15
5257template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5258 class t_TAIL_02,
5259 class t_TAIL_03,
5260 class t_TAIL_04,
5261 class t_TAIL_05,
5262 class t_TAIL_06,
5263 class t_TAIL_07,
5264 class t_TAIL_08,
5265 class t_TAIL_09,
5266 class t_TAIL_10,
5267 class t_TAIL_11,
5268 class t_TAIL_12,
5269 class t_TAIL_13,
5270 class t_TAIL_14,
5271 class t_TAIL_15>
5272struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5273 t_TAIL_02,
5274 t_TAIL_03,
5275 t_TAIL_04,
5276 t_TAIL_05,
5277 t_TAIL_06,
5278 t_TAIL_07,
5279 t_TAIL_08,
5280 t_TAIL_09,
5281 t_TAIL_10,
5282 t_TAIL_11,
5283 t_TAIL_12,
5284 t_TAIL_13,
5285 t_TAIL_14,
5286 t_TAIL_15> > {
5287 typedef t_TYPE type;
5288 typedef typename add_pointer<t_TYPE>::type pointer;
5289};
5290#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 15
5291
5292#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 16
5293template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5294 class t_TAIL_02,
5295 class t_TAIL_03,
5296 class t_TAIL_04,
5297 class t_TAIL_05,
5298 class t_TAIL_06,
5299 class t_TAIL_07,
5300 class t_TAIL_08,
5301 class t_TAIL_09,
5302 class t_TAIL_10,
5303 class t_TAIL_11,
5304 class t_TAIL_12,
5305 class t_TAIL_13,
5306 class t_TAIL_14,
5307 class t_TAIL_15,
5308 class t_TAIL_16>
5309struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5310 t_TAIL_02,
5311 t_TAIL_03,
5312 t_TAIL_04,
5313 t_TAIL_05,
5314 t_TAIL_06,
5315 t_TAIL_07,
5316 t_TAIL_08,
5317 t_TAIL_09,
5318 t_TAIL_10,
5319 t_TAIL_11,
5320 t_TAIL_12,
5321 t_TAIL_13,
5322 t_TAIL_14,
5323 t_TAIL_15,
5324 t_TAIL_16> > {
5325 typedef t_TYPE type;
5326 typedef typename add_pointer<t_TYPE>::type pointer;
5327};
5328#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 16
5329
5330#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 17
5331template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5332 class t_TAIL_02,
5333 class t_TAIL_03,
5334 class t_TAIL_04,
5335 class t_TAIL_05,
5336 class t_TAIL_06,
5337 class t_TAIL_07,
5338 class t_TAIL_08,
5339 class t_TAIL_09,
5340 class t_TAIL_10,
5341 class t_TAIL_11,
5342 class t_TAIL_12,
5343 class t_TAIL_13,
5344 class t_TAIL_14,
5345 class t_TAIL_15,
5346 class t_TAIL_16,
5347 class t_TAIL_17>
5348struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5349 t_TAIL_02,
5350 t_TAIL_03,
5351 t_TAIL_04,
5352 t_TAIL_05,
5353 t_TAIL_06,
5354 t_TAIL_07,
5355 t_TAIL_08,
5356 t_TAIL_09,
5357 t_TAIL_10,
5358 t_TAIL_11,
5359 t_TAIL_12,
5360 t_TAIL_13,
5361 t_TAIL_14,
5362 t_TAIL_15,
5363 t_TAIL_16,
5364 t_TAIL_17> > {
5365 typedef t_TYPE type;
5366 typedef typename add_pointer<t_TYPE>::type pointer;
5367};
5368#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 17
5369
5370#if BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 18
5371template <class t_TYPE, class t_HEAD, class t_TAIL_01,
5372 class t_TAIL_02,
5373 class t_TAIL_03,
5374 class t_TAIL_04,
5375 class t_TAIL_05,
5376 class t_TAIL_06,
5377 class t_TAIL_07,
5378 class t_TAIL_08,
5379 class t_TAIL_09,
5380 class t_TAIL_10,
5381 class t_TAIL_11,
5382 class t_TAIL_12,
5383 class t_TAIL_13,
5384 class t_TAIL_14,
5385 class t_TAIL_15,
5386 class t_TAIL_16,
5387 class t_TAIL_17,
5388 class t_TAIL_18>
5389struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
5390 t_TAIL_02,
5391 t_TAIL_03,
5392 t_TAIL_04,
5393 t_TAIL_05,
5394 t_TAIL_06,
5395 t_TAIL_07,
5396 t_TAIL_08,
5397 t_TAIL_09,
5398 t_TAIL_10,
5399 t_TAIL_11,
5400 t_TAIL_12,
5401 t_TAIL_13,
5402 t_TAIL_14,
5403 t_TAIL_15,
5404 t_TAIL_16,
5405 t_TAIL_17,
5406 t_TAIL_18> > {
5407 typedef t_TYPE type;
5408 typedef typename add_pointer<t_TYPE>::type pointer;
5409};
5410#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_D >= 18
5411
5412#else
5413// The generated code below is a workaround for the absence of perfect
5414// forwarding in some compilers.
5415template <size_t t_INDEX, class t_ARG, class t_HEAD, class... t_TAIL>
5416struct Variant_GetIndexReturnType<t_INDEX,
5417 t_ARG,
5418 bsl::variant<t_HEAD, t_TAIL...> >
5419: Variant_GetIndexReturnTypeImpl<(t_INDEX <= sizeof...(t_TAIL)),
5420 t_INDEX,
5421 t_ARG,
5422 bsl::variant<t_HEAD, t_TAIL...> > {
5423};
5424
5425template <class t_TYPE, class t_HEAD, class... t_TAIL>
5426struct Variant_GetTypeReturnType;
5427
5428template <class t_TYPE, class t_HEAD, class... t_TAIL>
5429struct Variant_GetTypeReturnType<t_TYPE, bsl::variant<t_HEAD, t_TAIL...> > {
5430 typedef t_TYPE type;
5431 typedef typename add_pointer<t_TYPE>::type pointer;
5432};
5433// }}} END GENERATED CODE
5434#endif
5435
5436template <size_t t_INDEX, class t_VARIANT>
5437typename Variant_GetIndexReturnType<t_INDEX, t_VARIANT>::type
5438get(t_VARIANT& obj);
5439template <size_t t_INDEX, class t_VARIANT>
5440typename Variant_GetIndexReturnType<
5441 t_INDEX,
5442 BloombergLP::bslmf::MovableRef<t_VARIANT> >::type
5443get(BloombergLP::bslmf::MovableRef<t_VARIANT> obj);
5444 // Return a reference to the alternative object at index (template
5445 // parameter) 't_INDEX' in the specified 'obj'. If 't_INDEX' is not the
5446 // index of the currently active alternative, throw an exception of type
5447 // 'bad_variant_access'. 't_INDEX' shall be a valid index for the variant
5448 // type of 'obj'. Note that 't_VARIANT' may be const-qualified.
5449
5450template <class t_TYPE, class t_VARIANT>
5451typename Variant_GetTypeReturnType<t_TYPE&, t_VARIANT>::type get(
5452 t_VARIANT& obj);
5453template <class t_TYPE, class t_VARIANT>
5454typename Variant_GetTypeReturnType<const t_TYPE&, t_VARIANT>::type get(
5455 const t_VARIANT& obj);
5456template <class t_TYPE, class t_VARIANT>
5457typename Variant_GetTypeReturnType<BloombergLP::bslmf::MovableRef<t_TYPE>,
5458 t_VARIANT>::type get(
5459 BloombergLP::bslmf::MovableRef<t_VARIANT> obj);
5460 // Return a reference to the alternative object with type (template
5461 // parameter) 't_TYPE' in the specified 'obj'. If 't_TYPE' is not the type
5462 // of the currently active alternative, throw an exception of type
5463 // 'bad_variant_access'. 't_TYPE' shall appear exactly once in the
5464 // variant's list of alternatives.
5465
5466template <size_t t_INDEX, class t_VARIANT>
5467typename Variant_GetIndexReturnType<t_INDEX, t_VARIANT>::pointer
5468get_if(t_VARIANT *obj) BSLS_KEYWORD_NOEXCEPT;
5469 // Return a pointer to the alternative object with index (template
5470 // parameter) 't_INDEX' in the specified 'obj', or a null pointer if 'obj'
5471 // itself is a null pointer or if 't_INDEX' is not the index of the
5472 // currently active alternative. 't_INDEX' shall be a valid alternative
5473 // index. Note that 't_VARIANT' may be const-qualified.
5474
5475template <class t_TYPE, class t_VARIANT>
5476typename Variant_GetTypeReturnType<t_TYPE, t_VARIANT>::pointer get_if(
5477 t_VARIANT *obj) BSLS_KEYWORD_NOEXCEPT;
5478template <class t_TYPE, class t_VARIANT>
5479typename Variant_GetTypeReturnType<const t_TYPE, t_VARIANT>::pointer get_if(
5480 const t_VARIANT *obj) BSLS_KEYWORD_NOEXCEPT;
5481 // Return a pointer to the alternative object with type (template
5482 // parameter) 't_TYPE' in the specified 'obj', or a null pointer if 'obj'
5483 // itself is a null pointer or if 't_TYPE' is not the type of the currently
5484 // active alternative. 't_TYPE' shall appear exactly once in the variant's
5485 // list of alternatives.
5486#endif // BSL_VARIANT_FULL_IMPLEMENTATION
5487// FREE OPERATORS
5488
5489// 20.7.6, relational operators
5490#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
5491// {{{ BEGIN GENERATED CODE
5492// Command line: sim_cpp11_features.pl bslstl_variant.h
5493#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
5494#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
5495#endif
5496#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_E
5497#define BSLSTL_VARIANT_VARIADIC_LIMIT_E BSLSTL_VARIANT_VARIADIC_LIMIT
5498#endif
5499#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
5500template <class t_HEAD>
5501bool operator==(const variant<t_HEAD>& lhs,
5502 const variant<t_HEAD>& rhs);
5503#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
5504
5505#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
5506template <class t_HEAD, class t_TAIL_01>
5507bool operator==(const variant<t_HEAD, t_TAIL_01>& lhs,
5508 const variant<t_HEAD, t_TAIL_01>& rhs);
5509#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
5510
5511#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
5512template <class t_HEAD, class t_TAIL_01,
5513 class t_TAIL_02>
5514bool operator==(const variant<t_HEAD, t_TAIL_01,
5515 t_TAIL_02>& lhs,
5516 const variant<t_HEAD, t_TAIL_01,
5517 t_TAIL_02>& rhs);
5518#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
5519
5520#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
5521template <class t_HEAD, class t_TAIL_01,
5522 class t_TAIL_02,
5523 class t_TAIL_03>
5524bool operator==(const variant<t_HEAD, t_TAIL_01,
5525 t_TAIL_02,
5526 t_TAIL_03>& lhs,
5527 const variant<t_HEAD, t_TAIL_01,
5528 t_TAIL_02,
5529 t_TAIL_03>& rhs);
5530#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
5531
5532#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
5533template <class t_HEAD, class t_TAIL_01,
5534 class t_TAIL_02,
5535 class t_TAIL_03,
5536 class t_TAIL_04>
5537bool operator==(const variant<t_HEAD, t_TAIL_01,
5538 t_TAIL_02,
5539 t_TAIL_03,
5540 t_TAIL_04>& lhs,
5541 const variant<t_HEAD, t_TAIL_01,
5542 t_TAIL_02,
5543 t_TAIL_03,
5544 t_TAIL_04>& rhs);
5545#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
5546
5547#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
5548template <class t_HEAD, class t_TAIL_01,
5549 class t_TAIL_02,
5550 class t_TAIL_03,
5551 class t_TAIL_04,
5552 class t_TAIL_05>
5553bool operator==(const variant<t_HEAD, t_TAIL_01,
5554 t_TAIL_02,
5555 t_TAIL_03,
5556 t_TAIL_04,
5557 t_TAIL_05>& lhs,
5558 const variant<t_HEAD, t_TAIL_01,
5559 t_TAIL_02,
5560 t_TAIL_03,
5561 t_TAIL_04,
5562 t_TAIL_05>& rhs);
5563#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
5564
5565#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
5566template <class t_HEAD, class t_TAIL_01,
5567 class t_TAIL_02,
5568 class t_TAIL_03,
5569 class t_TAIL_04,
5570 class t_TAIL_05,
5571 class t_TAIL_06>
5572bool operator==(const variant<t_HEAD, t_TAIL_01,
5573 t_TAIL_02,
5574 t_TAIL_03,
5575 t_TAIL_04,
5576 t_TAIL_05,
5577 t_TAIL_06>& lhs,
5578 const variant<t_HEAD, t_TAIL_01,
5579 t_TAIL_02,
5580 t_TAIL_03,
5581 t_TAIL_04,
5582 t_TAIL_05,
5583 t_TAIL_06>& rhs);
5584#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
5585
5586#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
5587template <class t_HEAD, class t_TAIL_01,
5588 class t_TAIL_02,
5589 class t_TAIL_03,
5590 class t_TAIL_04,
5591 class t_TAIL_05,
5592 class t_TAIL_06,
5593 class t_TAIL_07>
5594bool operator==(const variant<t_HEAD, t_TAIL_01,
5595 t_TAIL_02,
5596 t_TAIL_03,
5597 t_TAIL_04,
5598 t_TAIL_05,
5599 t_TAIL_06,
5600 t_TAIL_07>& lhs,
5601 const variant<t_HEAD, t_TAIL_01,
5602 t_TAIL_02,
5603 t_TAIL_03,
5604 t_TAIL_04,
5605 t_TAIL_05,
5606 t_TAIL_06,
5607 t_TAIL_07>& rhs);
5608#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
5609
5610#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
5611template <class t_HEAD, class t_TAIL_01,
5612 class t_TAIL_02,
5613 class t_TAIL_03,
5614 class t_TAIL_04,
5615 class t_TAIL_05,
5616 class t_TAIL_06,
5617 class t_TAIL_07,
5618 class t_TAIL_08>
5619bool operator==(const variant<t_HEAD, t_TAIL_01,
5620 t_TAIL_02,
5621 t_TAIL_03,
5622 t_TAIL_04,
5623 t_TAIL_05,
5624 t_TAIL_06,
5625 t_TAIL_07,
5626 t_TAIL_08>& lhs,
5627 const variant<t_HEAD, t_TAIL_01,
5628 t_TAIL_02,
5629 t_TAIL_03,
5630 t_TAIL_04,
5631 t_TAIL_05,
5632 t_TAIL_06,
5633 t_TAIL_07,
5634 t_TAIL_08>& rhs);
5635#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
5636
5637#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
5638template <class t_HEAD, class t_TAIL_01,
5639 class t_TAIL_02,
5640 class t_TAIL_03,
5641 class t_TAIL_04,
5642 class t_TAIL_05,
5643 class t_TAIL_06,
5644 class t_TAIL_07,
5645 class t_TAIL_08,
5646 class t_TAIL_09>
5647bool operator==(const variant<t_HEAD, t_TAIL_01,
5648 t_TAIL_02,
5649 t_TAIL_03,
5650 t_TAIL_04,
5651 t_TAIL_05,
5652 t_TAIL_06,
5653 t_TAIL_07,
5654 t_TAIL_08,
5655 t_TAIL_09>& lhs,
5656 const variant<t_HEAD, t_TAIL_01,
5657 t_TAIL_02,
5658 t_TAIL_03,
5659 t_TAIL_04,
5660 t_TAIL_05,
5661 t_TAIL_06,
5662 t_TAIL_07,
5663 t_TAIL_08,
5664 t_TAIL_09>& rhs);
5665#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
5666
5667#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
5668template <class t_HEAD, class t_TAIL_01,
5669 class t_TAIL_02,
5670 class t_TAIL_03,
5671 class t_TAIL_04,
5672 class t_TAIL_05,
5673 class t_TAIL_06,
5674 class t_TAIL_07,
5675 class t_TAIL_08,
5676 class t_TAIL_09,
5677 class t_TAIL_10>
5678bool operator==(const variant<t_HEAD, t_TAIL_01,
5679 t_TAIL_02,
5680 t_TAIL_03,
5681 t_TAIL_04,
5682 t_TAIL_05,
5683 t_TAIL_06,
5684 t_TAIL_07,
5685 t_TAIL_08,
5686 t_TAIL_09,
5687 t_TAIL_10>& lhs,
5688 const variant<t_HEAD, t_TAIL_01,
5689 t_TAIL_02,
5690 t_TAIL_03,
5691 t_TAIL_04,
5692 t_TAIL_05,
5693 t_TAIL_06,
5694 t_TAIL_07,
5695 t_TAIL_08,
5696 t_TAIL_09,
5697 t_TAIL_10>& rhs);
5698#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
5699
5700#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
5701template <class t_HEAD, class t_TAIL_01,
5702 class t_TAIL_02,
5703 class t_TAIL_03,
5704 class t_TAIL_04,
5705 class t_TAIL_05,
5706 class t_TAIL_06,
5707 class t_TAIL_07,
5708 class t_TAIL_08,
5709 class t_TAIL_09,
5710 class t_TAIL_10,
5711 class t_TAIL_11>
5712bool operator==(const variant<t_HEAD, t_TAIL_01,
5713 t_TAIL_02,
5714 t_TAIL_03,
5715 t_TAIL_04,
5716 t_TAIL_05,
5717 t_TAIL_06,
5718 t_TAIL_07,
5719 t_TAIL_08,
5720 t_TAIL_09,
5721 t_TAIL_10,
5722 t_TAIL_11>& lhs,
5723 const variant<t_HEAD, t_TAIL_01,
5724 t_TAIL_02,
5725 t_TAIL_03,
5726 t_TAIL_04,
5727 t_TAIL_05,
5728 t_TAIL_06,
5729 t_TAIL_07,
5730 t_TAIL_08,
5731 t_TAIL_09,
5732 t_TAIL_10,
5733 t_TAIL_11>& rhs);
5734#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
5735
5736#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
5737template <class t_HEAD, class t_TAIL_01,
5738 class t_TAIL_02,
5739 class t_TAIL_03,
5740 class t_TAIL_04,
5741 class t_TAIL_05,
5742 class t_TAIL_06,
5743 class t_TAIL_07,
5744 class t_TAIL_08,
5745 class t_TAIL_09,
5746 class t_TAIL_10,
5747 class t_TAIL_11,
5748 class t_TAIL_12>
5749bool operator==(const variant<t_HEAD, t_TAIL_01,
5750 t_TAIL_02,
5751 t_TAIL_03,
5752 t_TAIL_04,
5753 t_TAIL_05,
5754 t_TAIL_06,
5755 t_TAIL_07,
5756 t_TAIL_08,
5757 t_TAIL_09,
5758 t_TAIL_10,
5759 t_TAIL_11,
5760 t_TAIL_12>& lhs,
5761 const variant<t_HEAD, t_TAIL_01,
5762 t_TAIL_02,
5763 t_TAIL_03,
5764 t_TAIL_04,
5765 t_TAIL_05,
5766 t_TAIL_06,
5767 t_TAIL_07,
5768 t_TAIL_08,
5769 t_TAIL_09,
5770 t_TAIL_10,
5771 t_TAIL_11,
5772 t_TAIL_12>& rhs);
5773#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
5774
5775#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
5776template <class t_HEAD, class t_TAIL_01,
5777 class t_TAIL_02,
5778 class t_TAIL_03,
5779 class t_TAIL_04,
5780 class t_TAIL_05,
5781 class t_TAIL_06,
5782 class t_TAIL_07,
5783 class t_TAIL_08,
5784 class t_TAIL_09,
5785 class t_TAIL_10,
5786 class t_TAIL_11,
5787 class t_TAIL_12,
5788 class t_TAIL_13>
5789bool operator==(const variant<t_HEAD, t_TAIL_01,
5790 t_TAIL_02,
5791 t_TAIL_03,
5792 t_TAIL_04,
5793 t_TAIL_05,
5794 t_TAIL_06,
5795 t_TAIL_07,
5796 t_TAIL_08,
5797 t_TAIL_09,
5798 t_TAIL_10,
5799 t_TAIL_11,
5800 t_TAIL_12,
5801 t_TAIL_13>& lhs,
5802 const variant<t_HEAD, t_TAIL_01,
5803 t_TAIL_02,
5804 t_TAIL_03,
5805 t_TAIL_04,
5806 t_TAIL_05,
5807 t_TAIL_06,
5808 t_TAIL_07,
5809 t_TAIL_08,
5810 t_TAIL_09,
5811 t_TAIL_10,
5812 t_TAIL_11,
5813 t_TAIL_12,
5814 t_TAIL_13>& rhs);
5815#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
5816
5817#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
5818template <class t_HEAD, class t_TAIL_01,
5819 class t_TAIL_02,
5820 class t_TAIL_03,
5821 class t_TAIL_04,
5822 class t_TAIL_05,
5823 class t_TAIL_06,
5824 class t_TAIL_07,
5825 class t_TAIL_08,
5826 class t_TAIL_09,
5827 class t_TAIL_10,
5828 class t_TAIL_11,
5829 class t_TAIL_12,
5830 class t_TAIL_13,
5831 class t_TAIL_14>
5832bool operator==(const variant<t_HEAD, t_TAIL_01,
5833 t_TAIL_02,
5834 t_TAIL_03,
5835 t_TAIL_04,
5836 t_TAIL_05,
5837 t_TAIL_06,
5838 t_TAIL_07,
5839 t_TAIL_08,
5840 t_TAIL_09,
5841 t_TAIL_10,
5842 t_TAIL_11,
5843 t_TAIL_12,
5844 t_TAIL_13,
5845 t_TAIL_14>& lhs,
5846 const variant<t_HEAD, t_TAIL_01,
5847 t_TAIL_02,
5848 t_TAIL_03,
5849 t_TAIL_04,
5850 t_TAIL_05,
5851 t_TAIL_06,
5852 t_TAIL_07,
5853 t_TAIL_08,
5854 t_TAIL_09,
5855 t_TAIL_10,
5856 t_TAIL_11,
5857 t_TAIL_12,
5858 t_TAIL_13,
5859 t_TAIL_14>& rhs);
5860#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
5861
5862#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
5863template <class t_HEAD, class t_TAIL_01,
5864 class t_TAIL_02,
5865 class t_TAIL_03,
5866 class t_TAIL_04,
5867 class t_TAIL_05,
5868 class t_TAIL_06,
5869 class t_TAIL_07,
5870 class t_TAIL_08,
5871 class t_TAIL_09,
5872 class t_TAIL_10,
5873 class t_TAIL_11,
5874 class t_TAIL_12,
5875 class t_TAIL_13,
5876 class t_TAIL_14,
5877 class t_TAIL_15>
5878bool operator==(const variant<t_HEAD, t_TAIL_01,
5879 t_TAIL_02,
5880 t_TAIL_03,
5881 t_TAIL_04,
5882 t_TAIL_05,
5883 t_TAIL_06,
5884 t_TAIL_07,
5885 t_TAIL_08,
5886 t_TAIL_09,
5887 t_TAIL_10,
5888 t_TAIL_11,
5889 t_TAIL_12,
5890 t_TAIL_13,
5891 t_TAIL_14,
5892 t_TAIL_15>& lhs,
5893 const variant<t_HEAD, t_TAIL_01,
5894 t_TAIL_02,
5895 t_TAIL_03,
5896 t_TAIL_04,
5897 t_TAIL_05,
5898 t_TAIL_06,
5899 t_TAIL_07,
5900 t_TAIL_08,
5901 t_TAIL_09,
5902 t_TAIL_10,
5903 t_TAIL_11,
5904 t_TAIL_12,
5905 t_TAIL_13,
5906 t_TAIL_14,
5907 t_TAIL_15>& rhs);
5908#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
5909
5910#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
5911template <class t_HEAD, class t_TAIL_01,
5912 class t_TAIL_02,
5913 class t_TAIL_03,
5914 class t_TAIL_04,
5915 class t_TAIL_05,
5916 class t_TAIL_06,
5917 class t_TAIL_07,
5918 class t_TAIL_08,
5919 class t_TAIL_09,
5920 class t_TAIL_10,
5921 class t_TAIL_11,
5922 class t_TAIL_12,
5923 class t_TAIL_13,
5924 class t_TAIL_14,
5925 class t_TAIL_15,
5926 class t_TAIL_16>
5927bool operator==(const variant<t_HEAD, t_TAIL_01,
5928 t_TAIL_02,
5929 t_TAIL_03,
5930 t_TAIL_04,
5931 t_TAIL_05,
5932 t_TAIL_06,
5933 t_TAIL_07,
5934 t_TAIL_08,
5935 t_TAIL_09,
5936 t_TAIL_10,
5937 t_TAIL_11,
5938 t_TAIL_12,
5939 t_TAIL_13,
5940 t_TAIL_14,
5941 t_TAIL_15,
5942 t_TAIL_16>& lhs,
5943 const variant<t_HEAD, t_TAIL_01,
5944 t_TAIL_02,
5945 t_TAIL_03,
5946 t_TAIL_04,
5947 t_TAIL_05,
5948 t_TAIL_06,
5949 t_TAIL_07,
5950 t_TAIL_08,
5951 t_TAIL_09,
5952 t_TAIL_10,
5953 t_TAIL_11,
5954 t_TAIL_12,
5955 t_TAIL_13,
5956 t_TAIL_14,
5957 t_TAIL_15,
5958 t_TAIL_16>& rhs);
5959#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
5960
5961#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
5962template <class t_HEAD, class t_TAIL_01,
5963 class t_TAIL_02,
5964 class t_TAIL_03,
5965 class t_TAIL_04,
5966 class t_TAIL_05,
5967 class t_TAIL_06,
5968 class t_TAIL_07,
5969 class t_TAIL_08,
5970 class t_TAIL_09,
5971 class t_TAIL_10,
5972 class t_TAIL_11,
5973 class t_TAIL_12,
5974 class t_TAIL_13,
5975 class t_TAIL_14,
5976 class t_TAIL_15,
5977 class t_TAIL_16,
5978 class t_TAIL_17>
5979bool operator==(const variant<t_HEAD, t_TAIL_01,
5980 t_TAIL_02,
5981 t_TAIL_03,
5982 t_TAIL_04,
5983 t_TAIL_05,
5984 t_TAIL_06,
5985 t_TAIL_07,
5986 t_TAIL_08,
5987 t_TAIL_09,
5988 t_TAIL_10,
5989 t_TAIL_11,
5990 t_TAIL_12,
5991 t_TAIL_13,
5992 t_TAIL_14,
5993 t_TAIL_15,
5994 t_TAIL_16,
5995 t_TAIL_17>& lhs,
5996 const variant<t_HEAD, t_TAIL_01,
5997 t_TAIL_02,
5998 t_TAIL_03,
5999 t_TAIL_04,
6000 t_TAIL_05,
6001 t_TAIL_06,
6002 t_TAIL_07,
6003 t_TAIL_08,
6004 t_TAIL_09,
6005 t_TAIL_10,
6006 t_TAIL_11,
6007 t_TAIL_12,
6008 t_TAIL_13,
6009 t_TAIL_14,
6010 t_TAIL_15,
6011 t_TAIL_16,
6012 t_TAIL_17>& rhs);
6013#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
6014
6015#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
6016template <class t_HEAD, class t_TAIL_01,
6017 class t_TAIL_02,
6018 class t_TAIL_03,
6019 class t_TAIL_04,
6020 class t_TAIL_05,
6021 class t_TAIL_06,
6022 class t_TAIL_07,
6023 class t_TAIL_08,
6024 class t_TAIL_09,
6025 class t_TAIL_10,
6026 class t_TAIL_11,
6027 class t_TAIL_12,
6028 class t_TAIL_13,
6029 class t_TAIL_14,
6030 class t_TAIL_15,
6031 class t_TAIL_16,
6032 class t_TAIL_17,
6033 class t_TAIL_18>
6034bool operator==(const variant<t_HEAD, t_TAIL_01,
6035 t_TAIL_02,
6036 t_TAIL_03,
6037 t_TAIL_04,
6038 t_TAIL_05,
6039 t_TAIL_06,
6040 t_TAIL_07,
6041 t_TAIL_08,
6042 t_TAIL_09,
6043 t_TAIL_10,
6044 t_TAIL_11,
6045 t_TAIL_12,
6046 t_TAIL_13,
6047 t_TAIL_14,
6048 t_TAIL_15,
6049 t_TAIL_16,
6050 t_TAIL_17,
6051 t_TAIL_18>& lhs,
6052 const variant<t_HEAD, t_TAIL_01,
6053 t_TAIL_02,
6054 t_TAIL_03,
6055 t_TAIL_04,
6056 t_TAIL_05,
6057 t_TAIL_06,
6058 t_TAIL_07,
6059 t_TAIL_08,
6060 t_TAIL_09,
6061 t_TAIL_10,
6062 t_TAIL_11,
6063 t_TAIL_12,
6064 t_TAIL_13,
6065 t_TAIL_14,
6066 t_TAIL_15,
6067 t_TAIL_16,
6068 t_TAIL_17,
6069 t_TAIL_18>& rhs);
6070#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
6071
6072
6073#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
6074template <class t_HEAD>
6075bool operator!=(const variant<t_HEAD>& lhs,
6076 const variant<t_HEAD>& rhs);
6077#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
6078
6079#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
6080template <class t_HEAD, class t_TAIL_01>
6081bool operator!=(const variant<t_HEAD, t_TAIL_01>& lhs,
6082 const variant<t_HEAD, t_TAIL_01>& rhs);
6083#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
6084
6085#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
6086template <class t_HEAD, class t_TAIL_01,
6087 class t_TAIL_02>
6088bool operator!=(const variant<t_HEAD, t_TAIL_01,
6089 t_TAIL_02>& lhs,
6090 const variant<t_HEAD, t_TAIL_01,
6091 t_TAIL_02>& rhs);
6092#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
6093
6094#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
6095template <class t_HEAD, class t_TAIL_01,
6096 class t_TAIL_02,
6097 class t_TAIL_03>
6098bool operator!=(const variant<t_HEAD, t_TAIL_01,
6099 t_TAIL_02,
6100 t_TAIL_03>& lhs,
6101 const variant<t_HEAD, t_TAIL_01,
6102 t_TAIL_02,
6103 t_TAIL_03>& rhs);
6104#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
6105
6106#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
6107template <class t_HEAD, class t_TAIL_01,
6108 class t_TAIL_02,
6109 class t_TAIL_03,
6110 class t_TAIL_04>
6111bool operator!=(const variant<t_HEAD, t_TAIL_01,
6112 t_TAIL_02,
6113 t_TAIL_03,
6114 t_TAIL_04>& lhs,
6115 const variant<t_HEAD, t_TAIL_01,
6116 t_TAIL_02,
6117 t_TAIL_03,
6118 t_TAIL_04>& rhs);
6119#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
6120
6121#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
6122template <class t_HEAD, class t_TAIL_01,
6123 class t_TAIL_02,
6124 class t_TAIL_03,
6125 class t_TAIL_04,
6126 class t_TAIL_05>
6127bool operator!=(const variant<t_HEAD, t_TAIL_01,
6128 t_TAIL_02,
6129 t_TAIL_03,
6130 t_TAIL_04,
6131 t_TAIL_05>& lhs,
6132 const variant<t_HEAD, t_TAIL_01,
6133 t_TAIL_02,
6134 t_TAIL_03,
6135 t_TAIL_04,
6136 t_TAIL_05>& rhs);
6137#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
6138
6139#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
6140template <class t_HEAD, class t_TAIL_01,
6141 class t_TAIL_02,
6142 class t_TAIL_03,
6143 class t_TAIL_04,
6144 class t_TAIL_05,
6145 class t_TAIL_06>
6146bool operator!=(const variant<t_HEAD, t_TAIL_01,
6147 t_TAIL_02,
6148 t_TAIL_03,
6149 t_TAIL_04,
6150 t_TAIL_05,
6151 t_TAIL_06>& lhs,
6152 const variant<t_HEAD, t_TAIL_01,
6153 t_TAIL_02,
6154 t_TAIL_03,
6155 t_TAIL_04,
6156 t_TAIL_05,
6157 t_TAIL_06>& rhs);
6158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
6159
6160#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
6161template <class t_HEAD, class t_TAIL_01,
6162 class t_TAIL_02,
6163 class t_TAIL_03,
6164 class t_TAIL_04,
6165 class t_TAIL_05,
6166 class t_TAIL_06,
6167 class t_TAIL_07>
6168bool operator!=(const variant<t_HEAD, t_TAIL_01,
6169 t_TAIL_02,
6170 t_TAIL_03,
6171 t_TAIL_04,
6172 t_TAIL_05,
6173 t_TAIL_06,
6174 t_TAIL_07>& lhs,
6175 const variant<t_HEAD, t_TAIL_01,
6176 t_TAIL_02,
6177 t_TAIL_03,
6178 t_TAIL_04,
6179 t_TAIL_05,
6180 t_TAIL_06,
6181 t_TAIL_07>& rhs);
6182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
6183
6184#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
6185template <class t_HEAD, class t_TAIL_01,
6186 class t_TAIL_02,
6187 class t_TAIL_03,
6188 class t_TAIL_04,
6189 class t_TAIL_05,
6190 class t_TAIL_06,
6191 class t_TAIL_07,
6192 class t_TAIL_08>
6193bool operator!=(const variant<t_HEAD, t_TAIL_01,
6194 t_TAIL_02,
6195 t_TAIL_03,
6196 t_TAIL_04,
6197 t_TAIL_05,
6198 t_TAIL_06,
6199 t_TAIL_07,
6200 t_TAIL_08>& lhs,
6201 const variant<t_HEAD, t_TAIL_01,
6202 t_TAIL_02,
6203 t_TAIL_03,
6204 t_TAIL_04,
6205 t_TAIL_05,
6206 t_TAIL_06,
6207 t_TAIL_07,
6208 t_TAIL_08>& rhs);
6209#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
6210
6211#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
6212template <class t_HEAD, class t_TAIL_01,
6213 class t_TAIL_02,
6214 class t_TAIL_03,
6215 class t_TAIL_04,
6216 class t_TAIL_05,
6217 class t_TAIL_06,
6218 class t_TAIL_07,
6219 class t_TAIL_08,
6220 class t_TAIL_09>
6221bool operator!=(const variant<t_HEAD, t_TAIL_01,
6222 t_TAIL_02,
6223 t_TAIL_03,
6224 t_TAIL_04,
6225 t_TAIL_05,
6226 t_TAIL_06,
6227 t_TAIL_07,
6228 t_TAIL_08,
6229 t_TAIL_09>& lhs,
6230 const variant<t_HEAD, t_TAIL_01,
6231 t_TAIL_02,
6232 t_TAIL_03,
6233 t_TAIL_04,
6234 t_TAIL_05,
6235 t_TAIL_06,
6236 t_TAIL_07,
6237 t_TAIL_08,
6238 t_TAIL_09>& rhs);
6239#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
6240
6241#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
6242template <class t_HEAD, class t_TAIL_01,
6243 class t_TAIL_02,
6244 class t_TAIL_03,
6245 class t_TAIL_04,
6246 class t_TAIL_05,
6247 class t_TAIL_06,
6248 class t_TAIL_07,
6249 class t_TAIL_08,
6250 class t_TAIL_09,
6251 class t_TAIL_10>
6252bool operator!=(const variant<t_HEAD, t_TAIL_01,
6253 t_TAIL_02,
6254 t_TAIL_03,
6255 t_TAIL_04,
6256 t_TAIL_05,
6257 t_TAIL_06,
6258 t_TAIL_07,
6259 t_TAIL_08,
6260 t_TAIL_09,
6261 t_TAIL_10>& lhs,
6262 const variant<t_HEAD, t_TAIL_01,
6263 t_TAIL_02,
6264 t_TAIL_03,
6265 t_TAIL_04,
6266 t_TAIL_05,
6267 t_TAIL_06,
6268 t_TAIL_07,
6269 t_TAIL_08,
6270 t_TAIL_09,
6271 t_TAIL_10>& rhs);
6272#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
6273
6274#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
6275template <class t_HEAD, class t_TAIL_01,
6276 class t_TAIL_02,
6277 class t_TAIL_03,
6278 class t_TAIL_04,
6279 class t_TAIL_05,
6280 class t_TAIL_06,
6281 class t_TAIL_07,
6282 class t_TAIL_08,
6283 class t_TAIL_09,
6284 class t_TAIL_10,
6285 class t_TAIL_11>
6286bool operator!=(const variant<t_HEAD, t_TAIL_01,
6287 t_TAIL_02,
6288 t_TAIL_03,
6289 t_TAIL_04,
6290 t_TAIL_05,
6291 t_TAIL_06,
6292 t_TAIL_07,
6293 t_TAIL_08,
6294 t_TAIL_09,
6295 t_TAIL_10,
6296 t_TAIL_11>& lhs,
6297 const variant<t_HEAD, t_TAIL_01,
6298 t_TAIL_02,
6299 t_TAIL_03,
6300 t_TAIL_04,
6301 t_TAIL_05,
6302 t_TAIL_06,
6303 t_TAIL_07,
6304 t_TAIL_08,
6305 t_TAIL_09,
6306 t_TAIL_10,
6307 t_TAIL_11>& rhs);
6308#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
6309
6310#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
6311template <class t_HEAD, class t_TAIL_01,
6312 class t_TAIL_02,
6313 class t_TAIL_03,
6314 class t_TAIL_04,
6315 class t_TAIL_05,
6316 class t_TAIL_06,
6317 class t_TAIL_07,
6318 class t_TAIL_08,
6319 class t_TAIL_09,
6320 class t_TAIL_10,
6321 class t_TAIL_11,
6322 class t_TAIL_12>
6323bool operator!=(const variant<t_HEAD, t_TAIL_01,
6324 t_TAIL_02,
6325 t_TAIL_03,
6326 t_TAIL_04,
6327 t_TAIL_05,
6328 t_TAIL_06,
6329 t_TAIL_07,
6330 t_TAIL_08,
6331 t_TAIL_09,
6332 t_TAIL_10,
6333 t_TAIL_11,
6334 t_TAIL_12>& lhs,
6335 const variant<t_HEAD, t_TAIL_01,
6336 t_TAIL_02,
6337 t_TAIL_03,
6338 t_TAIL_04,
6339 t_TAIL_05,
6340 t_TAIL_06,
6341 t_TAIL_07,
6342 t_TAIL_08,
6343 t_TAIL_09,
6344 t_TAIL_10,
6345 t_TAIL_11,
6346 t_TAIL_12>& rhs);
6347#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
6348
6349#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
6350template <class t_HEAD, class t_TAIL_01,
6351 class t_TAIL_02,
6352 class t_TAIL_03,
6353 class t_TAIL_04,
6354 class t_TAIL_05,
6355 class t_TAIL_06,
6356 class t_TAIL_07,
6357 class t_TAIL_08,
6358 class t_TAIL_09,
6359 class t_TAIL_10,
6360 class t_TAIL_11,
6361 class t_TAIL_12,
6362 class t_TAIL_13>
6363bool operator!=(const variant<t_HEAD, t_TAIL_01,
6364 t_TAIL_02,
6365 t_TAIL_03,
6366 t_TAIL_04,
6367 t_TAIL_05,
6368 t_TAIL_06,
6369 t_TAIL_07,
6370 t_TAIL_08,
6371 t_TAIL_09,
6372 t_TAIL_10,
6373 t_TAIL_11,
6374 t_TAIL_12,
6375 t_TAIL_13>& lhs,
6376 const variant<t_HEAD, t_TAIL_01,
6377 t_TAIL_02,
6378 t_TAIL_03,
6379 t_TAIL_04,
6380 t_TAIL_05,
6381 t_TAIL_06,
6382 t_TAIL_07,
6383 t_TAIL_08,
6384 t_TAIL_09,
6385 t_TAIL_10,
6386 t_TAIL_11,
6387 t_TAIL_12,
6388 t_TAIL_13>& rhs);
6389#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
6390
6391#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
6392template <class t_HEAD, class t_TAIL_01,
6393 class t_TAIL_02,
6394 class t_TAIL_03,
6395 class t_TAIL_04,
6396 class t_TAIL_05,
6397 class t_TAIL_06,
6398 class t_TAIL_07,
6399 class t_TAIL_08,
6400 class t_TAIL_09,
6401 class t_TAIL_10,
6402 class t_TAIL_11,
6403 class t_TAIL_12,
6404 class t_TAIL_13,
6405 class t_TAIL_14>
6406bool operator!=(const variant<t_HEAD, t_TAIL_01,
6407 t_TAIL_02,
6408 t_TAIL_03,
6409 t_TAIL_04,
6410 t_TAIL_05,
6411 t_TAIL_06,
6412 t_TAIL_07,
6413 t_TAIL_08,
6414 t_TAIL_09,
6415 t_TAIL_10,
6416 t_TAIL_11,
6417 t_TAIL_12,
6418 t_TAIL_13,
6419 t_TAIL_14>& lhs,
6420 const variant<t_HEAD, t_TAIL_01,
6421 t_TAIL_02,
6422 t_TAIL_03,
6423 t_TAIL_04,
6424 t_TAIL_05,
6425 t_TAIL_06,
6426 t_TAIL_07,
6427 t_TAIL_08,
6428 t_TAIL_09,
6429 t_TAIL_10,
6430 t_TAIL_11,
6431 t_TAIL_12,
6432 t_TAIL_13,
6433 t_TAIL_14>& rhs);
6434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
6435
6436#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
6437template <class t_HEAD, class t_TAIL_01,
6438 class t_TAIL_02,
6439 class t_TAIL_03,
6440 class t_TAIL_04,
6441 class t_TAIL_05,
6442 class t_TAIL_06,
6443 class t_TAIL_07,
6444 class t_TAIL_08,
6445 class t_TAIL_09,
6446 class t_TAIL_10,
6447 class t_TAIL_11,
6448 class t_TAIL_12,
6449 class t_TAIL_13,
6450 class t_TAIL_14,
6451 class t_TAIL_15>
6452bool operator!=(const variant<t_HEAD, t_TAIL_01,
6453 t_TAIL_02,
6454 t_TAIL_03,
6455 t_TAIL_04,
6456 t_TAIL_05,
6457 t_TAIL_06,
6458 t_TAIL_07,
6459 t_TAIL_08,
6460 t_TAIL_09,
6461 t_TAIL_10,
6462 t_TAIL_11,
6463 t_TAIL_12,
6464 t_TAIL_13,
6465 t_TAIL_14,
6466 t_TAIL_15>& lhs,
6467 const variant<t_HEAD, t_TAIL_01,
6468 t_TAIL_02,
6469 t_TAIL_03,
6470 t_TAIL_04,
6471 t_TAIL_05,
6472 t_TAIL_06,
6473 t_TAIL_07,
6474 t_TAIL_08,
6475 t_TAIL_09,
6476 t_TAIL_10,
6477 t_TAIL_11,
6478 t_TAIL_12,
6479 t_TAIL_13,
6480 t_TAIL_14,
6481 t_TAIL_15>& rhs);
6482#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
6483
6484#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
6485template <class t_HEAD, class t_TAIL_01,
6486 class t_TAIL_02,
6487 class t_TAIL_03,
6488 class t_TAIL_04,
6489 class t_TAIL_05,
6490 class t_TAIL_06,
6491 class t_TAIL_07,
6492 class t_TAIL_08,
6493 class t_TAIL_09,
6494 class t_TAIL_10,
6495 class t_TAIL_11,
6496 class t_TAIL_12,
6497 class t_TAIL_13,
6498 class t_TAIL_14,
6499 class t_TAIL_15,
6500 class t_TAIL_16>
6501bool operator!=(const variant<t_HEAD, t_TAIL_01,
6502 t_TAIL_02,
6503 t_TAIL_03,
6504 t_TAIL_04,
6505 t_TAIL_05,
6506 t_TAIL_06,
6507 t_TAIL_07,
6508 t_TAIL_08,
6509 t_TAIL_09,
6510 t_TAIL_10,
6511 t_TAIL_11,
6512 t_TAIL_12,
6513 t_TAIL_13,
6514 t_TAIL_14,
6515 t_TAIL_15,
6516 t_TAIL_16>& lhs,
6517 const variant<t_HEAD, t_TAIL_01,
6518 t_TAIL_02,
6519 t_TAIL_03,
6520 t_TAIL_04,
6521 t_TAIL_05,
6522 t_TAIL_06,
6523 t_TAIL_07,
6524 t_TAIL_08,
6525 t_TAIL_09,
6526 t_TAIL_10,
6527 t_TAIL_11,
6528 t_TAIL_12,
6529 t_TAIL_13,
6530 t_TAIL_14,
6531 t_TAIL_15,
6532 t_TAIL_16>& rhs);
6533#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
6534
6535#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
6536template <class t_HEAD, class t_TAIL_01,
6537 class t_TAIL_02,
6538 class t_TAIL_03,
6539 class t_TAIL_04,
6540 class t_TAIL_05,
6541 class t_TAIL_06,
6542 class t_TAIL_07,
6543 class t_TAIL_08,
6544 class t_TAIL_09,
6545 class t_TAIL_10,
6546 class t_TAIL_11,
6547 class t_TAIL_12,
6548 class t_TAIL_13,
6549 class t_TAIL_14,
6550 class t_TAIL_15,
6551 class t_TAIL_16,
6552 class t_TAIL_17>
6553bool operator!=(const variant<t_HEAD, t_TAIL_01,
6554 t_TAIL_02,
6555 t_TAIL_03,
6556 t_TAIL_04,
6557 t_TAIL_05,
6558 t_TAIL_06,
6559 t_TAIL_07,
6560 t_TAIL_08,
6561 t_TAIL_09,
6562 t_TAIL_10,
6563 t_TAIL_11,
6564 t_TAIL_12,
6565 t_TAIL_13,
6566 t_TAIL_14,
6567 t_TAIL_15,
6568 t_TAIL_16,
6569 t_TAIL_17>& lhs,
6570 const variant<t_HEAD, t_TAIL_01,
6571 t_TAIL_02,
6572 t_TAIL_03,
6573 t_TAIL_04,
6574 t_TAIL_05,
6575 t_TAIL_06,
6576 t_TAIL_07,
6577 t_TAIL_08,
6578 t_TAIL_09,
6579 t_TAIL_10,
6580 t_TAIL_11,
6581 t_TAIL_12,
6582 t_TAIL_13,
6583 t_TAIL_14,
6584 t_TAIL_15,
6585 t_TAIL_16,
6586 t_TAIL_17>& rhs);
6587#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
6588
6589#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
6590template <class t_HEAD, class t_TAIL_01,
6591 class t_TAIL_02,
6592 class t_TAIL_03,
6593 class t_TAIL_04,
6594 class t_TAIL_05,
6595 class t_TAIL_06,
6596 class t_TAIL_07,
6597 class t_TAIL_08,
6598 class t_TAIL_09,
6599 class t_TAIL_10,
6600 class t_TAIL_11,
6601 class t_TAIL_12,
6602 class t_TAIL_13,
6603 class t_TAIL_14,
6604 class t_TAIL_15,
6605 class t_TAIL_16,
6606 class t_TAIL_17,
6607 class t_TAIL_18>
6608bool operator!=(const variant<t_HEAD, t_TAIL_01,
6609 t_TAIL_02,
6610 t_TAIL_03,
6611 t_TAIL_04,
6612 t_TAIL_05,
6613 t_TAIL_06,
6614 t_TAIL_07,
6615 t_TAIL_08,
6616 t_TAIL_09,
6617 t_TAIL_10,
6618 t_TAIL_11,
6619 t_TAIL_12,
6620 t_TAIL_13,
6621 t_TAIL_14,
6622 t_TAIL_15,
6623 t_TAIL_16,
6624 t_TAIL_17,
6625 t_TAIL_18>& lhs,
6626 const variant<t_HEAD, t_TAIL_01,
6627 t_TAIL_02,
6628 t_TAIL_03,
6629 t_TAIL_04,
6630 t_TAIL_05,
6631 t_TAIL_06,
6632 t_TAIL_07,
6633 t_TAIL_08,
6634 t_TAIL_09,
6635 t_TAIL_10,
6636 t_TAIL_11,
6637 t_TAIL_12,
6638 t_TAIL_13,
6639 t_TAIL_14,
6640 t_TAIL_15,
6641 t_TAIL_16,
6642 t_TAIL_17,
6643 t_TAIL_18>& rhs);
6644#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
6645
6646
6647#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
6648template <class t_HEAD>
6649bool operator<(const variant<t_HEAD>& lhs,
6650 const variant<t_HEAD>& rhs);
6651#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
6652
6653#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
6654template <class t_HEAD, class t_TAIL_01>
6655bool operator<(const variant<t_HEAD, t_TAIL_01>& lhs,
6656 const variant<t_HEAD, t_TAIL_01>& rhs);
6657#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
6658
6659#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
6660template <class t_HEAD, class t_TAIL_01,
6661 class t_TAIL_02>
6662bool operator<(const variant<t_HEAD, t_TAIL_01,
6663 t_TAIL_02>& lhs,
6664 const variant<t_HEAD, t_TAIL_01,
6665 t_TAIL_02>& rhs);
6666#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
6667
6668#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
6669template <class t_HEAD, class t_TAIL_01,
6670 class t_TAIL_02,
6671 class t_TAIL_03>
6672bool operator<(const variant<t_HEAD, t_TAIL_01,
6673 t_TAIL_02,
6674 t_TAIL_03>& lhs,
6675 const variant<t_HEAD, t_TAIL_01,
6676 t_TAIL_02,
6677 t_TAIL_03>& rhs);
6678#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
6679
6680#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
6681template <class t_HEAD, class t_TAIL_01,
6682 class t_TAIL_02,
6683 class t_TAIL_03,
6684 class t_TAIL_04>
6685bool operator<(const variant<t_HEAD, t_TAIL_01,
6686 t_TAIL_02,
6687 t_TAIL_03,
6688 t_TAIL_04>& lhs,
6689 const variant<t_HEAD, t_TAIL_01,
6690 t_TAIL_02,
6691 t_TAIL_03,
6692 t_TAIL_04>& rhs);
6693#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
6694
6695#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
6696template <class t_HEAD, class t_TAIL_01,
6697 class t_TAIL_02,
6698 class t_TAIL_03,
6699 class t_TAIL_04,
6700 class t_TAIL_05>
6701bool operator<(const variant<t_HEAD, t_TAIL_01,
6702 t_TAIL_02,
6703 t_TAIL_03,
6704 t_TAIL_04,
6705 t_TAIL_05>& lhs,
6706 const variant<t_HEAD, t_TAIL_01,
6707 t_TAIL_02,
6708 t_TAIL_03,
6709 t_TAIL_04,
6710 t_TAIL_05>& rhs);
6711#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
6712
6713#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
6714template <class t_HEAD, class t_TAIL_01,
6715 class t_TAIL_02,
6716 class t_TAIL_03,
6717 class t_TAIL_04,
6718 class t_TAIL_05,
6719 class t_TAIL_06>
6720bool operator<(const variant<t_HEAD, t_TAIL_01,
6721 t_TAIL_02,
6722 t_TAIL_03,
6723 t_TAIL_04,
6724 t_TAIL_05,
6725 t_TAIL_06>& lhs,
6726 const variant<t_HEAD, t_TAIL_01,
6727 t_TAIL_02,
6728 t_TAIL_03,
6729 t_TAIL_04,
6730 t_TAIL_05,
6731 t_TAIL_06>& rhs);
6732#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
6733
6734#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
6735template <class t_HEAD, class t_TAIL_01,
6736 class t_TAIL_02,
6737 class t_TAIL_03,
6738 class t_TAIL_04,
6739 class t_TAIL_05,
6740 class t_TAIL_06,
6741 class t_TAIL_07>
6742bool operator<(const variant<t_HEAD, t_TAIL_01,
6743 t_TAIL_02,
6744 t_TAIL_03,
6745 t_TAIL_04,
6746 t_TAIL_05,
6747 t_TAIL_06,
6748 t_TAIL_07>& lhs,
6749 const variant<t_HEAD, t_TAIL_01,
6750 t_TAIL_02,
6751 t_TAIL_03,
6752 t_TAIL_04,
6753 t_TAIL_05,
6754 t_TAIL_06,
6755 t_TAIL_07>& rhs);
6756#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
6757
6758#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
6759template <class t_HEAD, class t_TAIL_01,
6760 class t_TAIL_02,
6761 class t_TAIL_03,
6762 class t_TAIL_04,
6763 class t_TAIL_05,
6764 class t_TAIL_06,
6765 class t_TAIL_07,
6766 class t_TAIL_08>
6767bool operator<(const variant<t_HEAD, t_TAIL_01,
6768 t_TAIL_02,
6769 t_TAIL_03,
6770 t_TAIL_04,
6771 t_TAIL_05,
6772 t_TAIL_06,
6773 t_TAIL_07,
6774 t_TAIL_08>& lhs,
6775 const variant<t_HEAD, t_TAIL_01,
6776 t_TAIL_02,
6777 t_TAIL_03,
6778 t_TAIL_04,
6779 t_TAIL_05,
6780 t_TAIL_06,
6781 t_TAIL_07,
6782 t_TAIL_08>& rhs);
6783#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
6784
6785#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
6786template <class t_HEAD, class t_TAIL_01,
6787 class t_TAIL_02,
6788 class t_TAIL_03,
6789 class t_TAIL_04,
6790 class t_TAIL_05,
6791 class t_TAIL_06,
6792 class t_TAIL_07,
6793 class t_TAIL_08,
6794 class t_TAIL_09>
6795bool operator<(const variant<t_HEAD, t_TAIL_01,
6796 t_TAIL_02,
6797 t_TAIL_03,
6798 t_TAIL_04,
6799 t_TAIL_05,
6800 t_TAIL_06,
6801 t_TAIL_07,
6802 t_TAIL_08,
6803 t_TAIL_09>& lhs,
6804 const variant<t_HEAD, t_TAIL_01,
6805 t_TAIL_02,
6806 t_TAIL_03,
6807 t_TAIL_04,
6808 t_TAIL_05,
6809 t_TAIL_06,
6810 t_TAIL_07,
6811 t_TAIL_08,
6812 t_TAIL_09>& rhs);
6813#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
6814
6815#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
6816template <class t_HEAD, class t_TAIL_01,
6817 class t_TAIL_02,
6818 class t_TAIL_03,
6819 class t_TAIL_04,
6820 class t_TAIL_05,
6821 class t_TAIL_06,
6822 class t_TAIL_07,
6823 class t_TAIL_08,
6824 class t_TAIL_09,
6825 class t_TAIL_10>
6826bool operator<(const variant<t_HEAD, t_TAIL_01,
6827 t_TAIL_02,
6828 t_TAIL_03,
6829 t_TAIL_04,
6830 t_TAIL_05,
6831 t_TAIL_06,
6832 t_TAIL_07,
6833 t_TAIL_08,
6834 t_TAIL_09,
6835 t_TAIL_10>& lhs,
6836 const variant<t_HEAD, t_TAIL_01,
6837 t_TAIL_02,
6838 t_TAIL_03,
6839 t_TAIL_04,
6840 t_TAIL_05,
6841 t_TAIL_06,
6842 t_TAIL_07,
6843 t_TAIL_08,
6844 t_TAIL_09,
6845 t_TAIL_10>& rhs);
6846#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
6847
6848#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
6849template <class t_HEAD, class t_TAIL_01,
6850 class t_TAIL_02,
6851 class t_TAIL_03,
6852 class t_TAIL_04,
6853 class t_TAIL_05,
6854 class t_TAIL_06,
6855 class t_TAIL_07,
6856 class t_TAIL_08,
6857 class t_TAIL_09,
6858 class t_TAIL_10,
6859 class t_TAIL_11>
6860bool operator<(const variant<t_HEAD, t_TAIL_01,
6861 t_TAIL_02,
6862 t_TAIL_03,
6863 t_TAIL_04,
6864 t_TAIL_05,
6865 t_TAIL_06,
6866 t_TAIL_07,
6867 t_TAIL_08,
6868 t_TAIL_09,
6869 t_TAIL_10,
6870 t_TAIL_11>& lhs,
6871 const variant<t_HEAD, t_TAIL_01,
6872 t_TAIL_02,
6873 t_TAIL_03,
6874 t_TAIL_04,
6875 t_TAIL_05,
6876 t_TAIL_06,
6877 t_TAIL_07,
6878 t_TAIL_08,
6879 t_TAIL_09,
6880 t_TAIL_10,
6881 t_TAIL_11>& rhs);
6882#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
6883
6884#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
6885template <class t_HEAD, class t_TAIL_01,
6886 class t_TAIL_02,
6887 class t_TAIL_03,
6888 class t_TAIL_04,
6889 class t_TAIL_05,
6890 class t_TAIL_06,
6891 class t_TAIL_07,
6892 class t_TAIL_08,
6893 class t_TAIL_09,
6894 class t_TAIL_10,
6895 class t_TAIL_11,
6896 class t_TAIL_12>
6897bool operator<(const variant<t_HEAD, t_TAIL_01,
6898 t_TAIL_02,
6899 t_TAIL_03,
6900 t_TAIL_04,
6901 t_TAIL_05,
6902 t_TAIL_06,
6903 t_TAIL_07,
6904 t_TAIL_08,
6905 t_TAIL_09,
6906 t_TAIL_10,
6907 t_TAIL_11,
6908 t_TAIL_12>& lhs,
6909 const variant<t_HEAD, t_TAIL_01,
6910 t_TAIL_02,
6911 t_TAIL_03,
6912 t_TAIL_04,
6913 t_TAIL_05,
6914 t_TAIL_06,
6915 t_TAIL_07,
6916 t_TAIL_08,
6917 t_TAIL_09,
6918 t_TAIL_10,
6919 t_TAIL_11,
6920 t_TAIL_12>& rhs);
6921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
6922
6923#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
6924template <class t_HEAD, class t_TAIL_01,
6925 class t_TAIL_02,
6926 class t_TAIL_03,
6927 class t_TAIL_04,
6928 class t_TAIL_05,
6929 class t_TAIL_06,
6930 class t_TAIL_07,
6931 class t_TAIL_08,
6932 class t_TAIL_09,
6933 class t_TAIL_10,
6934 class t_TAIL_11,
6935 class t_TAIL_12,
6936 class t_TAIL_13>
6937bool operator<(const variant<t_HEAD, t_TAIL_01,
6938 t_TAIL_02,
6939 t_TAIL_03,
6940 t_TAIL_04,
6941 t_TAIL_05,
6942 t_TAIL_06,
6943 t_TAIL_07,
6944 t_TAIL_08,
6945 t_TAIL_09,
6946 t_TAIL_10,
6947 t_TAIL_11,
6948 t_TAIL_12,
6949 t_TAIL_13>& lhs,
6950 const variant<t_HEAD, t_TAIL_01,
6951 t_TAIL_02,
6952 t_TAIL_03,
6953 t_TAIL_04,
6954 t_TAIL_05,
6955 t_TAIL_06,
6956 t_TAIL_07,
6957 t_TAIL_08,
6958 t_TAIL_09,
6959 t_TAIL_10,
6960 t_TAIL_11,
6961 t_TAIL_12,
6962 t_TAIL_13>& rhs);
6963#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
6964
6965#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
6966template <class t_HEAD, class t_TAIL_01,
6967 class t_TAIL_02,
6968 class t_TAIL_03,
6969 class t_TAIL_04,
6970 class t_TAIL_05,
6971 class t_TAIL_06,
6972 class t_TAIL_07,
6973 class t_TAIL_08,
6974 class t_TAIL_09,
6975 class t_TAIL_10,
6976 class t_TAIL_11,
6977 class t_TAIL_12,
6978 class t_TAIL_13,
6979 class t_TAIL_14>
6980bool operator<(const variant<t_HEAD, t_TAIL_01,
6981 t_TAIL_02,
6982 t_TAIL_03,
6983 t_TAIL_04,
6984 t_TAIL_05,
6985 t_TAIL_06,
6986 t_TAIL_07,
6987 t_TAIL_08,
6988 t_TAIL_09,
6989 t_TAIL_10,
6990 t_TAIL_11,
6991 t_TAIL_12,
6992 t_TAIL_13,
6993 t_TAIL_14>& lhs,
6994 const variant<t_HEAD, t_TAIL_01,
6995 t_TAIL_02,
6996 t_TAIL_03,
6997 t_TAIL_04,
6998 t_TAIL_05,
6999 t_TAIL_06,
7000 t_TAIL_07,
7001 t_TAIL_08,
7002 t_TAIL_09,
7003 t_TAIL_10,
7004 t_TAIL_11,
7005 t_TAIL_12,
7006 t_TAIL_13,
7007 t_TAIL_14>& rhs);
7008#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
7009
7010#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
7011template <class t_HEAD, class t_TAIL_01,
7012 class t_TAIL_02,
7013 class t_TAIL_03,
7014 class t_TAIL_04,
7015 class t_TAIL_05,
7016 class t_TAIL_06,
7017 class t_TAIL_07,
7018 class t_TAIL_08,
7019 class t_TAIL_09,
7020 class t_TAIL_10,
7021 class t_TAIL_11,
7022 class t_TAIL_12,
7023 class t_TAIL_13,
7024 class t_TAIL_14,
7025 class t_TAIL_15>
7026bool operator<(const variant<t_HEAD, t_TAIL_01,
7027 t_TAIL_02,
7028 t_TAIL_03,
7029 t_TAIL_04,
7030 t_TAIL_05,
7031 t_TAIL_06,
7032 t_TAIL_07,
7033 t_TAIL_08,
7034 t_TAIL_09,
7035 t_TAIL_10,
7036 t_TAIL_11,
7037 t_TAIL_12,
7038 t_TAIL_13,
7039 t_TAIL_14,
7040 t_TAIL_15>& lhs,
7041 const variant<t_HEAD, t_TAIL_01,
7042 t_TAIL_02,
7043 t_TAIL_03,
7044 t_TAIL_04,
7045 t_TAIL_05,
7046 t_TAIL_06,
7047 t_TAIL_07,
7048 t_TAIL_08,
7049 t_TAIL_09,
7050 t_TAIL_10,
7051 t_TAIL_11,
7052 t_TAIL_12,
7053 t_TAIL_13,
7054 t_TAIL_14,
7055 t_TAIL_15>& rhs);
7056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
7057
7058#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
7059template <class t_HEAD, class t_TAIL_01,
7060 class t_TAIL_02,
7061 class t_TAIL_03,
7062 class t_TAIL_04,
7063 class t_TAIL_05,
7064 class t_TAIL_06,
7065 class t_TAIL_07,
7066 class t_TAIL_08,
7067 class t_TAIL_09,
7068 class t_TAIL_10,
7069 class t_TAIL_11,
7070 class t_TAIL_12,
7071 class t_TAIL_13,
7072 class t_TAIL_14,
7073 class t_TAIL_15,
7074 class t_TAIL_16>
7075bool operator<(const variant<t_HEAD, t_TAIL_01,
7076 t_TAIL_02,
7077 t_TAIL_03,
7078 t_TAIL_04,
7079 t_TAIL_05,
7080 t_TAIL_06,
7081 t_TAIL_07,
7082 t_TAIL_08,
7083 t_TAIL_09,
7084 t_TAIL_10,
7085 t_TAIL_11,
7086 t_TAIL_12,
7087 t_TAIL_13,
7088 t_TAIL_14,
7089 t_TAIL_15,
7090 t_TAIL_16>& lhs,
7091 const variant<t_HEAD, t_TAIL_01,
7092 t_TAIL_02,
7093 t_TAIL_03,
7094 t_TAIL_04,
7095 t_TAIL_05,
7096 t_TAIL_06,
7097 t_TAIL_07,
7098 t_TAIL_08,
7099 t_TAIL_09,
7100 t_TAIL_10,
7101 t_TAIL_11,
7102 t_TAIL_12,
7103 t_TAIL_13,
7104 t_TAIL_14,
7105 t_TAIL_15,
7106 t_TAIL_16>& rhs);
7107#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
7108
7109#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
7110template <class t_HEAD, class t_TAIL_01,
7111 class t_TAIL_02,
7112 class t_TAIL_03,
7113 class t_TAIL_04,
7114 class t_TAIL_05,
7115 class t_TAIL_06,
7116 class t_TAIL_07,
7117 class t_TAIL_08,
7118 class t_TAIL_09,
7119 class t_TAIL_10,
7120 class t_TAIL_11,
7121 class t_TAIL_12,
7122 class t_TAIL_13,
7123 class t_TAIL_14,
7124 class t_TAIL_15,
7125 class t_TAIL_16,
7126 class t_TAIL_17>
7127bool operator<(const variant<t_HEAD, t_TAIL_01,
7128 t_TAIL_02,
7129 t_TAIL_03,
7130 t_TAIL_04,
7131 t_TAIL_05,
7132 t_TAIL_06,
7133 t_TAIL_07,
7134 t_TAIL_08,
7135 t_TAIL_09,
7136 t_TAIL_10,
7137 t_TAIL_11,
7138 t_TAIL_12,
7139 t_TAIL_13,
7140 t_TAIL_14,
7141 t_TAIL_15,
7142 t_TAIL_16,
7143 t_TAIL_17>& lhs,
7144 const variant<t_HEAD, t_TAIL_01,
7145 t_TAIL_02,
7146 t_TAIL_03,
7147 t_TAIL_04,
7148 t_TAIL_05,
7149 t_TAIL_06,
7150 t_TAIL_07,
7151 t_TAIL_08,
7152 t_TAIL_09,
7153 t_TAIL_10,
7154 t_TAIL_11,
7155 t_TAIL_12,
7156 t_TAIL_13,
7157 t_TAIL_14,
7158 t_TAIL_15,
7159 t_TAIL_16,
7160 t_TAIL_17>& rhs);
7161#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
7162
7163#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
7164template <class t_HEAD, class t_TAIL_01,
7165 class t_TAIL_02,
7166 class t_TAIL_03,
7167 class t_TAIL_04,
7168 class t_TAIL_05,
7169 class t_TAIL_06,
7170 class t_TAIL_07,
7171 class t_TAIL_08,
7172 class t_TAIL_09,
7173 class t_TAIL_10,
7174 class t_TAIL_11,
7175 class t_TAIL_12,
7176 class t_TAIL_13,
7177 class t_TAIL_14,
7178 class t_TAIL_15,
7179 class t_TAIL_16,
7180 class t_TAIL_17,
7181 class t_TAIL_18>
7182bool operator<(const variant<t_HEAD, t_TAIL_01,
7183 t_TAIL_02,
7184 t_TAIL_03,
7185 t_TAIL_04,
7186 t_TAIL_05,
7187 t_TAIL_06,
7188 t_TAIL_07,
7189 t_TAIL_08,
7190 t_TAIL_09,
7191 t_TAIL_10,
7192 t_TAIL_11,
7193 t_TAIL_12,
7194 t_TAIL_13,
7195 t_TAIL_14,
7196 t_TAIL_15,
7197 t_TAIL_16,
7198 t_TAIL_17,
7199 t_TAIL_18>& lhs,
7200 const variant<t_HEAD, t_TAIL_01,
7201 t_TAIL_02,
7202 t_TAIL_03,
7203 t_TAIL_04,
7204 t_TAIL_05,
7205 t_TAIL_06,
7206 t_TAIL_07,
7207 t_TAIL_08,
7208 t_TAIL_09,
7209 t_TAIL_10,
7210 t_TAIL_11,
7211 t_TAIL_12,
7212 t_TAIL_13,
7213 t_TAIL_14,
7214 t_TAIL_15,
7215 t_TAIL_16,
7216 t_TAIL_17,
7217 t_TAIL_18>& rhs);
7218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
7219
7220
7221#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
7222template <class t_HEAD>
7223bool operator>(const variant<t_HEAD>& lhs,
7224 const variant<t_HEAD>& rhs);
7225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
7226
7227#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
7228template <class t_HEAD, class t_TAIL_01>
7229bool operator>(const variant<t_HEAD, t_TAIL_01>& lhs,
7230 const variant<t_HEAD, t_TAIL_01>& rhs);
7231#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
7232
7233#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
7234template <class t_HEAD, class t_TAIL_01,
7235 class t_TAIL_02>
7236bool operator>(const variant<t_HEAD, t_TAIL_01,
7237 t_TAIL_02>& lhs,
7238 const variant<t_HEAD, t_TAIL_01,
7239 t_TAIL_02>& rhs);
7240#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
7241
7242#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
7243template <class t_HEAD, class t_TAIL_01,
7244 class t_TAIL_02,
7245 class t_TAIL_03>
7246bool operator>(const variant<t_HEAD, t_TAIL_01,
7247 t_TAIL_02,
7248 t_TAIL_03>& lhs,
7249 const variant<t_HEAD, t_TAIL_01,
7250 t_TAIL_02,
7251 t_TAIL_03>& rhs);
7252#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
7253
7254#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
7255template <class t_HEAD, class t_TAIL_01,
7256 class t_TAIL_02,
7257 class t_TAIL_03,
7258 class t_TAIL_04>
7259bool operator>(const variant<t_HEAD, t_TAIL_01,
7260 t_TAIL_02,
7261 t_TAIL_03,
7262 t_TAIL_04>& lhs,
7263 const variant<t_HEAD, t_TAIL_01,
7264 t_TAIL_02,
7265 t_TAIL_03,
7266 t_TAIL_04>& rhs);
7267#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
7268
7269#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
7270template <class t_HEAD, class t_TAIL_01,
7271 class t_TAIL_02,
7272 class t_TAIL_03,
7273 class t_TAIL_04,
7274 class t_TAIL_05>
7275bool operator>(const variant<t_HEAD, t_TAIL_01,
7276 t_TAIL_02,
7277 t_TAIL_03,
7278 t_TAIL_04,
7279 t_TAIL_05>& lhs,
7280 const variant<t_HEAD, t_TAIL_01,
7281 t_TAIL_02,
7282 t_TAIL_03,
7283 t_TAIL_04,
7284 t_TAIL_05>& rhs);
7285#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
7286
7287#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
7288template <class t_HEAD, class t_TAIL_01,
7289 class t_TAIL_02,
7290 class t_TAIL_03,
7291 class t_TAIL_04,
7292 class t_TAIL_05,
7293 class t_TAIL_06>
7294bool operator>(const variant<t_HEAD, t_TAIL_01,
7295 t_TAIL_02,
7296 t_TAIL_03,
7297 t_TAIL_04,
7298 t_TAIL_05,
7299 t_TAIL_06>& lhs,
7300 const variant<t_HEAD, t_TAIL_01,
7301 t_TAIL_02,
7302 t_TAIL_03,
7303 t_TAIL_04,
7304 t_TAIL_05,
7305 t_TAIL_06>& rhs);
7306#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
7307
7308#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
7309template <class t_HEAD, class t_TAIL_01,
7310 class t_TAIL_02,
7311 class t_TAIL_03,
7312 class t_TAIL_04,
7313 class t_TAIL_05,
7314 class t_TAIL_06,
7315 class t_TAIL_07>
7316bool operator>(const variant<t_HEAD, t_TAIL_01,
7317 t_TAIL_02,
7318 t_TAIL_03,
7319 t_TAIL_04,
7320 t_TAIL_05,
7321 t_TAIL_06,
7322 t_TAIL_07>& lhs,
7323 const variant<t_HEAD, t_TAIL_01,
7324 t_TAIL_02,
7325 t_TAIL_03,
7326 t_TAIL_04,
7327 t_TAIL_05,
7328 t_TAIL_06,
7329 t_TAIL_07>& rhs);
7330#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
7331
7332#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
7333template <class t_HEAD, class t_TAIL_01,
7334 class t_TAIL_02,
7335 class t_TAIL_03,
7336 class t_TAIL_04,
7337 class t_TAIL_05,
7338 class t_TAIL_06,
7339 class t_TAIL_07,
7340 class t_TAIL_08>
7341bool operator>(const variant<t_HEAD, t_TAIL_01,
7342 t_TAIL_02,
7343 t_TAIL_03,
7344 t_TAIL_04,
7345 t_TAIL_05,
7346 t_TAIL_06,
7347 t_TAIL_07,
7348 t_TAIL_08>& lhs,
7349 const variant<t_HEAD, t_TAIL_01,
7350 t_TAIL_02,
7351 t_TAIL_03,
7352 t_TAIL_04,
7353 t_TAIL_05,
7354 t_TAIL_06,
7355 t_TAIL_07,
7356 t_TAIL_08>& rhs);
7357#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
7358
7359#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
7360template <class t_HEAD, class t_TAIL_01,
7361 class t_TAIL_02,
7362 class t_TAIL_03,
7363 class t_TAIL_04,
7364 class t_TAIL_05,
7365 class t_TAIL_06,
7366 class t_TAIL_07,
7367 class t_TAIL_08,
7368 class t_TAIL_09>
7369bool operator>(const variant<t_HEAD, t_TAIL_01,
7370 t_TAIL_02,
7371 t_TAIL_03,
7372 t_TAIL_04,
7373 t_TAIL_05,
7374 t_TAIL_06,
7375 t_TAIL_07,
7376 t_TAIL_08,
7377 t_TAIL_09>& lhs,
7378 const variant<t_HEAD, t_TAIL_01,
7379 t_TAIL_02,
7380 t_TAIL_03,
7381 t_TAIL_04,
7382 t_TAIL_05,
7383 t_TAIL_06,
7384 t_TAIL_07,
7385 t_TAIL_08,
7386 t_TAIL_09>& rhs);
7387#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
7388
7389#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
7390template <class t_HEAD, class t_TAIL_01,
7391 class t_TAIL_02,
7392 class t_TAIL_03,
7393 class t_TAIL_04,
7394 class t_TAIL_05,
7395 class t_TAIL_06,
7396 class t_TAIL_07,
7397 class t_TAIL_08,
7398 class t_TAIL_09,
7399 class t_TAIL_10>
7400bool operator>(const variant<t_HEAD, t_TAIL_01,
7401 t_TAIL_02,
7402 t_TAIL_03,
7403 t_TAIL_04,
7404 t_TAIL_05,
7405 t_TAIL_06,
7406 t_TAIL_07,
7407 t_TAIL_08,
7408 t_TAIL_09,
7409 t_TAIL_10>& lhs,
7410 const variant<t_HEAD, t_TAIL_01,
7411 t_TAIL_02,
7412 t_TAIL_03,
7413 t_TAIL_04,
7414 t_TAIL_05,
7415 t_TAIL_06,
7416 t_TAIL_07,
7417 t_TAIL_08,
7418 t_TAIL_09,
7419 t_TAIL_10>& rhs);
7420#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
7421
7422#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
7423template <class t_HEAD, class t_TAIL_01,
7424 class t_TAIL_02,
7425 class t_TAIL_03,
7426 class t_TAIL_04,
7427 class t_TAIL_05,
7428 class t_TAIL_06,
7429 class t_TAIL_07,
7430 class t_TAIL_08,
7431 class t_TAIL_09,
7432 class t_TAIL_10,
7433 class t_TAIL_11>
7434bool operator>(const variant<t_HEAD, t_TAIL_01,
7435 t_TAIL_02,
7436 t_TAIL_03,
7437 t_TAIL_04,
7438 t_TAIL_05,
7439 t_TAIL_06,
7440 t_TAIL_07,
7441 t_TAIL_08,
7442 t_TAIL_09,
7443 t_TAIL_10,
7444 t_TAIL_11>& lhs,
7445 const variant<t_HEAD, t_TAIL_01,
7446 t_TAIL_02,
7447 t_TAIL_03,
7448 t_TAIL_04,
7449 t_TAIL_05,
7450 t_TAIL_06,
7451 t_TAIL_07,
7452 t_TAIL_08,
7453 t_TAIL_09,
7454 t_TAIL_10,
7455 t_TAIL_11>& rhs);
7456#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
7457
7458#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
7459template <class t_HEAD, class t_TAIL_01,
7460 class t_TAIL_02,
7461 class t_TAIL_03,
7462 class t_TAIL_04,
7463 class t_TAIL_05,
7464 class t_TAIL_06,
7465 class t_TAIL_07,
7466 class t_TAIL_08,
7467 class t_TAIL_09,
7468 class t_TAIL_10,
7469 class t_TAIL_11,
7470 class t_TAIL_12>
7471bool operator>(const variant<t_HEAD, t_TAIL_01,
7472 t_TAIL_02,
7473 t_TAIL_03,
7474 t_TAIL_04,
7475 t_TAIL_05,
7476 t_TAIL_06,
7477 t_TAIL_07,
7478 t_TAIL_08,
7479 t_TAIL_09,
7480 t_TAIL_10,
7481 t_TAIL_11,
7482 t_TAIL_12>& lhs,
7483 const variant<t_HEAD, t_TAIL_01,
7484 t_TAIL_02,
7485 t_TAIL_03,
7486 t_TAIL_04,
7487 t_TAIL_05,
7488 t_TAIL_06,
7489 t_TAIL_07,
7490 t_TAIL_08,
7491 t_TAIL_09,
7492 t_TAIL_10,
7493 t_TAIL_11,
7494 t_TAIL_12>& rhs);
7495#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
7496
7497#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
7498template <class t_HEAD, class t_TAIL_01,
7499 class t_TAIL_02,
7500 class t_TAIL_03,
7501 class t_TAIL_04,
7502 class t_TAIL_05,
7503 class t_TAIL_06,
7504 class t_TAIL_07,
7505 class t_TAIL_08,
7506 class t_TAIL_09,
7507 class t_TAIL_10,
7508 class t_TAIL_11,
7509 class t_TAIL_12,
7510 class t_TAIL_13>
7511bool operator>(const variant<t_HEAD, t_TAIL_01,
7512 t_TAIL_02,
7513 t_TAIL_03,
7514 t_TAIL_04,
7515 t_TAIL_05,
7516 t_TAIL_06,
7517 t_TAIL_07,
7518 t_TAIL_08,
7519 t_TAIL_09,
7520 t_TAIL_10,
7521 t_TAIL_11,
7522 t_TAIL_12,
7523 t_TAIL_13>& lhs,
7524 const variant<t_HEAD, t_TAIL_01,
7525 t_TAIL_02,
7526 t_TAIL_03,
7527 t_TAIL_04,
7528 t_TAIL_05,
7529 t_TAIL_06,
7530 t_TAIL_07,
7531 t_TAIL_08,
7532 t_TAIL_09,
7533 t_TAIL_10,
7534 t_TAIL_11,
7535 t_TAIL_12,
7536 t_TAIL_13>& rhs);
7537#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
7538
7539#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
7540template <class t_HEAD, class t_TAIL_01,
7541 class t_TAIL_02,
7542 class t_TAIL_03,
7543 class t_TAIL_04,
7544 class t_TAIL_05,
7545 class t_TAIL_06,
7546 class t_TAIL_07,
7547 class t_TAIL_08,
7548 class t_TAIL_09,
7549 class t_TAIL_10,
7550 class t_TAIL_11,
7551 class t_TAIL_12,
7552 class t_TAIL_13,
7553 class t_TAIL_14>
7554bool operator>(const variant<t_HEAD, t_TAIL_01,
7555 t_TAIL_02,
7556 t_TAIL_03,
7557 t_TAIL_04,
7558 t_TAIL_05,
7559 t_TAIL_06,
7560 t_TAIL_07,
7561 t_TAIL_08,
7562 t_TAIL_09,
7563 t_TAIL_10,
7564 t_TAIL_11,
7565 t_TAIL_12,
7566 t_TAIL_13,
7567 t_TAIL_14>& lhs,
7568 const variant<t_HEAD, t_TAIL_01,
7569 t_TAIL_02,
7570 t_TAIL_03,
7571 t_TAIL_04,
7572 t_TAIL_05,
7573 t_TAIL_06,
7574 t_TAIL_07,
7575 t_TAIL_08,
7576 t_TAIL_09,
7577 t_TAIL_10,
7578 t_TAIL_11,
7579 t_TAIL_12,
7580 t_TAIL_13,
7581 t_TAIL_14>& rhs);
7582#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
7583
7584#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
7585template <class t_HEAD, class t_TAIL_01,
7586 class t_TAIL_02,
7587 class t_TAIL_03,
7588 class t_TAIL_04,
7589 class t_TAIL_05,
7590 class t_TAIL_06,
7591 class t_TAIL_07,
7592 class t_TAIL_08,
7593 class t_TAIL_09,
7594 class t_TAIL_10,
7595 class t_TAIL_11,
7596 class t_TAIL_12,
7597 class t_TAIL_13,
7598 class t_TAIL_14,
7599 class t_TAIL_15>
7600bool operator>(const variant<t_HEAD, t_TAIL_01,
7601 t_TAIL_02,
7602 t_TAIL_03,
7603 t_TAIL_04,
7604 t_TAIL_05,
7605 t_TAIL_06,
7606 t_TAIL_07,
7607 t_TAIL_08,
7608 t_TAIL_09,
7609 t_TAIL_10,
7610 t_TAIL_11,
7611 t_TAIL_12,
7612 t_TAIL_13,
7613 t_TAIL_14,
7614 t_TAIL_15>& lhs,
7615 const variant<t_HEAD, t_TAIL_01,
7616 t_TAIL_02,
7617 t_TAIL_03,
7618 t_TAIL_04,
7619 t_TAIL_05,
7620 t_TAIL_06,
7621 t_TAIL_07,
7622 t_TAIL_08,
7623 t_TAIL_09,
7624 t_TAIL_10,
7625 t_TAIL_11,
7626 t_TAIL_12,
7627 t_TAIL_13,
7628 t_TAIL_14,
7629 t_TAIL_15>& rhs);
7630#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
7631
7632#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
7633template <class t_HEAD, class t_TAIL_01,
7634 class t_TAIL_02,
7635 class t_TAIL_03,
7636 class t_TAIL_04,
7637 class t_TAIL_05,
7638 class t_TAIL_06,
7639 class t_TAIL_07,
7640 class t_TAIL_08,
7641 class t_TAIL_09,
7642 class t_TAIL_10,
7643 class t_TAIL_11,
7644 class t_TAIL_12,
7645 class t_TAIL_13,
7646 class t_TAIL_14,
7647 class t_TAIL_15,
7648 class t_TAIL_16>
7649bool operator>(const variant<t_HEAD, t_TAIL_01,
7650 t_TAIL_02,
7651 t_TAIL_03,
7652 t_TAIL_04,
7653 t_TAIL_05,
7654 t_TAIL_06,
7655 t_TAIL_07,
7656 t_TAIL_08,
7657 t_TAIL_09,
7658 t_TAIL_10,
7659 t_TAIL_11,
7660 t_TAIL_12,
7661 t_TAIL_13,
7662 t_TAIL_14,
7663 t_TAIL_15,
7664 t_TAIL_16>& lhs,
7665 const variant<t_HEAD, t_TAIL_01,
7666 t_TAIL_02,
7667 t_TAIL_03,
7668 t_TAIL_04,
7669 t_TAIL_05,
7670 t_TAIL_06,
7671 t_TAIL_07,
7672 t_TAIL_08,
7673 t_TAIL_09,
7674 t_TAIL_10,
7675 t_TAIL_11,
7676 t_TAIL_12,
7677 t_TAIL_13,
7678 t_TAIL_14,
7679 t_TAIL_15,
7680 t_TAIL_16>& rhs);
7681#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
7682
7683#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
7684template <class t_HEAD, class t_TAIL_01,
7685 class t_TAIL_02,
7686 class t_TAIL_03,
7687 class t_TAIL_04,
7688 class t_TAIL_05,
7689 class t_TAIL_06,
7690 class t_TAIL_07,
7691 class t_TAIL_08,
7692 class t_TAIL_09,
7693 class t_TAIL_10,
7694 class t_TAIL_11,
7695 class t_TAIL_12,
7696 class t_TAIL_13,
7697 class t_TAIL_14,
7698 class t_TAIL_15,
7699 class t_TAIL_16,
7700 class t_TAIL_17>
7701bool operator>(const variant<t_HEAD, t_TAIL_01,
7702 t_TAIL_02,
7703 t_TAIL_03,
7704 t_TAIL_04,
7705 t_TAIL_05,
7706 t_TAIL_06,
7707 t_TAIL_07,
7708 t_TAIL_08,
7709 t_TAIL_09,
7710 t_TAIL_10,
7711 t_TAIL_11,
7712 t_TAIL_12,
7713 t_TAIL_13,
7714 t_TAIL_14,
7715 t_TAIL_15,
7716 t_TAIL_16,
7717 t_TAIL_17>& lhs,
7718 const variant<t_HEAD, t_TAIL_01,
7719 t_TAIL_02,
7720 t_TAIL_03,
7721 t_TAIL_04,
7722 t_TAIL_05,
7723 t_TAIL_06,
7724 t_TAIL_07,
7725 t_TAIL_08,
7726 t_TAIL_09,
7727 t_TAIL_10,
7728 t_TAIL_11,
7729 t_TAIL_12,
7730 t_TAIL_13,
7731 t_TAIL_14,
7732 t_TAIL_15,
7733 t_TAIL_16,
7734 t_TAIL_17>& rhs);
7735#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
7736
7737#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
7738template <class t_HEAD, class t_TAIL_01,
7739 class t_TAIL_02,
7740 class t_TAIL_03,
7741 class t_TAIL_04,
7742 class t_TAIL_05,
7743 class t_TAIL_06,
7744 class t_TAIL_07,
7745 class t_TAIL_08,
7746 class t_TAIL_09,
7747 class t_TAIL_10,
7748 class t_TAIL_11,
7749 class t_TAIL_12,
7750 class t_TAIL_13,
7751 class t_TAIL_14,
7752 class t_TAIL_15,
7753 class t_TAIL_16,
7754 class t_TAIL_17,
7755 class t_TAIL_18>
7756bool operator>(const variant<t_HEAD, t_TAIL_01,
7757 t_TAIL_02,
7758 t_TAIL_03,
7759 t_TAIL_04,
7760 t_TAIL_05,
7761 t_TAIL_06,
7762 t_TAIL_07,
7763 t_TAIL_08,
7764 t_TAIL_09,
7765 t_TAIL_10,
7766 t_TAIL_11,
7767 t_TAIL_12,
7768 t_TAIL_13,
7769 t_TAIL_14,
7770 t_TAIL_15,
7771 t_TAIL_16,
7772 t_TAIL_17,
7773 t_TAIL_18>& lhs,
7774 const variant<t_HEAD, t_TAIL_01,
7775 t_TAIL_02,
7776 t_TAIL_03,
7777 t_TAIL_04,
7778 t_TAIL_05,
7779 t_TAIL_06,
7780 t_TAIL_07,
7781 t_TAIL_08,
7782 t_TAIL_09,
7783 t_TAIL_10,
7784 t_TAIL_11,
7785 t_TAIL_12,
7786 t_TAIL_13,
7787 t_TAIL_14,
7788 t_TAIL_15,
7789 t_TAIL_16,
7790 t_TAIL_17,
7791 t_TAIL_18>& rhs);
7792#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
7793
7794
7795#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
7796template <class t_HEAD>
7797bool operator<=(const variant<t_HEAD>& lhs,
7798 const variant<t_HEAD>& rhs);
7799#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
7800
7801#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
7802template <class t_HEAD, class t_TAIL_01>
7803bool operator<=(const variant<t_HEAD, t_TAIL_01>& lhs,
7804 const variant<t_HEAD, t_TAIL_01>& rhs);
7805#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
7806
7807#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
7808template <class t_HEAD, class t_TAIL_01,
7809 class t_TAIL_02>
7810bool operator<=(const variant<t_HEAD, t_TAIL_01,
7811 t_TAIL_02>& lhs,
7812 const variant<t_HEAD, t_TAIL_01,
7813 t_TAIL_02>& rhs);
7814#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
7815
7816#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
7817template <class t_HEAD, class t_TAIL_01,
7818 class t_TAIL_02,
7819 class t_TAIL_03>
7820bool operator<=(const variant<t_HEAD, t_TAIL_01,
7821 t_TAIL_02,
7822 t_TAIL_03>& lhs,
7823 const variant<t_HEAD, t_TAIL_01,
7824 t_TAIL_02,
7825 t_TAIL_03>& rhs);
7826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
7827
7828#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
7829template <class t_HEAD, class t_TAIL_01,
7830 class t_TAIL_02,
7831 class t_TAIL_03,
7832 class t_TAIL_04>
7833bool operator<=(const variant<t_HEAD, t_TAIL_01,
7834 t_TAIL_02,
7835 t_TAIL_03,
7836 t_TAIL_04>& lhs,
7837 const variant<t_HEAD, t_TAIL_01,
7838 t_TAIL_02,
7839 t_TAIL_03,
7840 t_TAIL_04>& rhs);
7841#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
7842
7843#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
7844template <class t_HEAD, class t_TAIL_01,
7845 class t_TAIL_02,
7846 class t_TAIL_03,
7847 class t_TAIL_04,
7848 class t_TAIL_05>
7849bool operator<=(const variant<t_HEAD, t_TAIL_01,
7850 t_TAIL_02,
7851 t_TAIL_03,
7852 t_TAIL_04,
7853 t_TAIL_05>& lhs,
7854 const variant<t_HEAD, t_TAIL_01,
7855 t_TAIL_02,
7856 t_TAIL_03,
7857 t_TAIL_04,
7858 t_TAIL_05>& rhs);
7859#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
7860
7861#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
7862template <class t_HEAD, class t_TAIL_01,
7863 class t_TAIL_02,
7864 class t_TAIL_03,
7865 class t_TAIL_04,
7866 class t_TAIL_05,
7867 class t_TAIL_06>
7868bool operator<=(const variant<t_HEAD, t_TAIL_01,
7869 t_TAIL_02,
7870 t_TAIL_03,
7871 t_TAIL_04,
7872 t_TAIL_05,
7873 t_TAIL_06>& lhs,
7874 const variant<t_HEAD, t_TAIL_01,
7875 t_TAIL_02,
7876 t_TAIL_03,
7877 t_TAIL_04,
7878 t_TAIL_05,
7879 t_TAIL_06>& rhs);
7880#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
7881
7882#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
7883template <class t_HEAD, class t_TAIL_01,
7884 class t_TAIL_02,
7885 class t_TAIL_03,
7886 class t_TAIL_04,
7887 class t_TAIL_05,
7888 class t_TAIL_06,
7889 class t_TAIL_07>
7890bool operator<=(const variant<t_HEAD, t_TAIL_01,
7891 t_TAIL_02,
7892 t_TAIL_03,
7893 t_TAIL_04,
7894 t_TAIL_05,
7895 t_TAIL_06,
7896 t_TAIL_07>& lhs,
7897 const variant<t_HEAD, t_TAIL_01,
7898 t_TAIL_02,
7899 t_TAIL_03,
7900 t_TAIL_04,
7901 t_TAIL_05,
7902 t_TAIL_06,
7903 t_TAIL_07>& rhs);
7904#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
7905
7906#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
7907template <class t_HEAD, class t_TAIL_01,
7908 class t_TAIL_02,
7909 class t_TAIL_03,
7910 class t_TAIL_04,
7911 class t_TAIL_05,
7912 class t_TAIL_06,
7913 class t_TAIL_07,
7914 class t_TAIL_08>
7915bool operator<=(const variant<t_HEAD, t_TAIL_01,
7916 t_TAIL_02,
7917 t_TAIL_03,
7918 t_TAIL_04,
7919 t_TAIL_05,
7920 t_TAIL_06,
7921 t_TAIL_07,
7922 t_TAIL_08>& lhs,
7923 const variant<t_HEAD, t_TAIL_01,
7924 t_TAIL_02,
7925 t_TAIL_03,
7926 t_TAIL_04,
7927 t_TAIL_05,
7928 t_TAIL_06,
7929 t_TAIL_07,
7930 t_TAIL_08>& rhs);
7931#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
7932
7933#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
7934template <class t_HEAD, class t_TAIL_01,
7935 class t_TAIL_02,
7936 class t_TAIL_03,
7937 class t_TAIL_04,
7938 class t_TAIL_05,
7939 class t_TAIL_06,
7940 class t_TAIL_07,
7941 class t_TAIL_08,
7942 class t_TAIL_09>
7943bool operator<=(const variant<t_HEAD, t_TAIL_01,
7944 t_TAIL_02,
7945 t_TAIL_03,
7946 t_TAIL_04,
7947 t_TAIL_05,
7948 t_TAIL_06,
7949 t_TAIL_07,
7950 t_TAIL_08,
7951 t_TAIL_09>& lhs,
7952 const variant<t_HEAD, t_TAIL_01,
7953 t_TAIL_02,
7954 t_TAIL_03,
7955 t_TAIL_04,
7956 t_TAIL_05,
7957 t_TAIL_06,
7958 t_TAIL_07,
7959 t_TAIL_08,
7960 t_TAIL_09>& rhs);
7961#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
7962
7963#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
7964template <class t_HEAD, class t_TAIL_01,
7965 class t_TAIL_02,
7966 class t_TAIL_03,
7967 class t_TAIL_04,
7968 class t_TAIL_05,
7969 class t_TAIL_06,
7970 class t_TAIL_07,
7971 class t_TAIL_08,
7972 class t_TAIL_09,
7973 class t_TAIL_10>
7974bool operator<=(const variant<t_HEAD, t_TAIL_01,
7975 t_TAIL_02,
7976 t_TAIL_03,
7977 t_TAIL_04,
7978 t_TAIL_05,
7979 t_TAIL_06,
7980 t_TAIL_07,
7981 t_TAIL_08,
7982 t_TAIL_09,
7983 t_TAIL_10>& lhs,
7984 const variant<t_HEAD, t_TAIL_01,
7985 t_TAIL_02,
7986 t_TAIL_03,
7987 t_TAIL_04,
7988 t_TAIL_05,
7989 t_TAIL_06,
7990 t_TAIL_07,
7991 t_TAIL_08,
7992 t_TAIL_09,
7993 t_TAIL_10>& rhs);
7994#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
7995
7996#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
7997template <class t_HEAD, class t_TAIL_01,
7998 class t_TAIL_02,
7999 class t_TAIL_03,
8000 class t_TAIL_04,
8001 class t_TAIL_05,
8002 class t_TAIL_06,
8003 class t_TAIL_07,
8004 class t_TAIL_08,
8005 class t_TAIL_09,
8006 class t_TAIL_10,
8007 class t_TAIL_11>
8008bool operator<=(const variant<t_HEAD, t_TAIL_01,
8009 t_TAIL_02,
8010 t_TAIL_03,
8011 t_TAIL_04,
8012 t_TAIL_05,
8013 t_TAIL_06,
8014 t_TAIL_07,
8015 t_TAIL_08,
8016 t_TAIL_09,
8017 t_TAIL_10,
8018 t_TAIL_11>& lhs,
8019 const variant<t_HEAD, t_TAIL_01,
8020 t_TAIL_02,
8021 t_TAIL_03,
8022 t_TAIL_04,
8023 t_TAIL_05,
8024 t_TAIL_06,
8025 t_TAIL_07,
8026 t_TAIL_08,
8027 t_TAIL_09,
8028 t_TAIL_10,
8029 t_TAIL_11>& rhs);
8030#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
8031
8032#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
8033template <class t_HEAD, class t_TAIL_01,
8034 class t_TAIL_02,
8035 class t_TAIL_03,
8036 class t_TAIL_04,
8037 class t_TAIL_05,
8038 class t_TAIL_06,
8039 class t_TAIL_07,
8040 class t_TAIL_08,
8041 class t_TAIL_09,
8042 class t_TAIL_10,
8043 class t_TAIL_11,
8044 class t_TAIL_12>
8045bool operator<=(const variant<t_HEAD, t_TAIL_01,
8046 t_TAIL_02,
8047 t_TAIL_03,
8048 t_TAIL_04,
8049 t_TAIL_05,
8050 t_TAIL_06,
8051 t_TAIL_07,
8052 t_TAIL_08,
8053 t_TAIL_09,
8054 t_TAIL_10,
8055 t_TAIL_11,
8056 t_TAIL_12>& lhs,
8057 const variant<t_HEAD, t_TAIL_01,
8058 t_TAIL_02,
8059 t_TAIL_03,
8060 t_TAIL_04,
8061 t_TAIL_05,
8062 t_TAIL_06,
8063 t_TAIL_07,
8064 t_TAIL_08,
8065 t_TAIL_09,
8066 t_TAIL_10,
8067 t_TAIL_11,
8068 t_TAIL_12>& rhs);
8069#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
8070
8071#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
8072template <class t_HEAD, class t_TAIL_01,
8073 class t_TAIL_02,
8074 class t_TAIL_03,
8075 class t_TAIL_04,
8076 class t_TAIL_05,
8077 class t_TAIL_06,
8078 class t_TAIL_07,
8079 class t_TAIL_08,
8080 class t_TAIL_09,
8081 class t_TAIL_10,
8082 class t_TAIL_11,
8083 class t_TAIL_12,
8084 class t_TAIL_13>
8085bool operator<=(const variant<t_HEAD, t_TAIL_01,
8086 t_TAIL_02,
8087 t_TAIL_03,
8088 t_TAIL_04,
8089 t_TAIL_05,
8090 t_TAIL_06,
8091 t_TAIL_07,
8092 t_TAIL_08,
8093 t_TAIL_09,
8094 t_TAIL_10,
8095 t_TAIL_11,
8096 t_TAIL_12,
8097 t_TAIL_13>& lhs,
8098 const variant<t_HEAD, t_TAIL_01,
8099 t_TAIL_02,
8100 t_TAIL_03,
8101 t_TAIL_04,
8102 t_TAIL_05,
8103 t_TAIL_06,
8104 t_TAIL_07,
8105 t_TAIL_08,
8106 t_TAIL_09,
8107 t_TAIL_10,
8108 t_TAIL_11,
8109 t_TAIL_12,
8110 t_TAIL_13>& rhs);
8111#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
8112
8113#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
8114template <class t_HEAD, class t_TAIL_01,
8115 class t_TAIL_02,
8116 class t_TAIL_03,
8117 class t_TAIL_04,
8118 class t_TAIL_05,
8119 class t_TAIL_06,
8120 class t_TAIL_07,
8121 class t_TAIL_08,
8122 class t_TAIL_09,
8123 class t_TAIL_10,
8124 class t_TAIL_11,
8125 class t_TAIL_12,
8126 class t_TAIL_13,
8127 class t_TAIL_14>
8128bool operator<=(const variant<t_HEAD, t_TAIL_01,
8129 t_TAIL_02,
8130 t_TAIL_03,
8131 t_TAIL_04,
8132 t_TAIL_05,
8133 t_TAIL_06,
8134 t_TAIL_07,
8135 t_TAIL_08,
8136 t_TAIL_09,
8137 t_TAIL_10,
8138 t_TAIL_11,
8139 t_TAIL_12,
8140 t_TAIL_13,
8141 t_TAIL_14>& lhs,
8142 const variant<t_HEAD, t_TAIL_01,
8143 t_TAIL_02,
8144 t_TAIL_03,
8145 t_TAIL_04,
8146 t_TAIL_05,
8147 t_TAIL_06,
8148 t_TAIL_07,
8149 t_TAIL_08,
8150 t_TAIL_09,
8151 t_TAIL_10,
8152 t_TAIL_11,
8153 t_TAIL_12,
8154 t_TAIL_13,
8155 t_TAIL_14>& rhs);
8156#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
8157
8158#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
8159template <class t_HEAD, class t_TAIL_01,
8160 class t_TAIL_02,
8161 class t_TAIL_03,
8162 class t_TAIL_04,
8163 class t_TAIL_05,
8164 class t_TAIL_06,
8165 class t_TAIL_07,
8166 class t_TAIL_08,
8167 class t_TAIL_09,
8168 class t_TAIL_10,
8169 class t_TAIL_11,
8170 class t_TAIL_12,
8171 class t_TAIL_13,
8172 class t_TAIL_14,
8173 class t_TAIL_15>
8174bool operator<=(const variant<t_HEAD, t_TAIL_01,
8175 t_TAIL_02,
8176 t_TAIL_03,
8177 t_TAIL_04,
8178 t_TAIL_05,
8179 t_TAIL_06,
8180 t_TAIL_07,
8181 t_TAIL_08,
8182 t_TAIL_09,
8183 t_TAIL_10,
8184 t_TAIL_11,
8185 t_TAIL_12,
8186 t_TAIL_13,
8187 t_TAIL_14,
8188 t_TAIL_15>& lhs,
8189 const variant<t_HEAD, t_TAIL_01,
8190 t_TAIL_02,
8191 t_TAIL_03,
8192 t_TAIL_04,
8193 t_TAIL_05,
8194 t_TAIL_06,
8195 t_TAIL_07,
8196 t_TAIL_08,
8197 t_TAIL_09,
8198 t_TAIL_10,
8199 t_TAIL_11,
8200 t_TAIL_12,
8201 t_TAIL_13,
8202 t_TAIL_14,
8203 t_TAIL_15>& rhs);
8204#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
8205
8206#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
8207template <class t_HEAD, class t_TAIL_01,
8208 class t_TAIL_02,
8209 class t_TAIL_03,
8210 class t_TAIL_04,
8211 class t_TAIL_05,
8212 class t_TAIL_06,
8213 class t_TAIL_07,
8214 class t_TAIL_08,
8215 class t_TAIL_09,
8216 class t_TAIL_10,
8217 class t_TAIL_11,
8218 class t_TAIL_12,
8219 class t_TAIL_13,
8220 class t_TAIL_14,
8221 class t_TAIL_15,
8222 class t_TAIL_16>
8223bool operator<=(const variant<t_HEAD, t_TAIL_01,
8224 t_TAIL_02,
8225 t_TAIL_03,
8226 t_TAIL_04,
8227 t_TAIL_05,
8228 t_TAIL_06,
8229 t_TAIL_07,
8230 t_TAIL_08,
8231 t_TAIL_09,
8232 t_TAIL_10,
8233 t_TAIL_11,
8234 t_TAIL_12,
8235 t_TAIL_13,
8236 t_TAIL_14,
8237 t_TAIL_15,
8238 t_TAIL_16>& lhs,
8239 const variant<t_HEAD, t_TAIL_01,
8240 t_TAIL_02,
8241 t_TAIL_03,
8242 t_TAIL_04,
8243 t_TAIL_05,
8244 t_TAIL_06,
8245 t_TAIL_07,
8246 t_TAIL_08,
8247 t_TAIL_09,
8248 t_TAIL_10,
8249 t_TAIL_11,
8250 t_TAIL_12,
8251 t_TAIL_13,
8252 t_TAIL_14,
8253 t_TAIL_15,
8254 t_TAIL_16>& rhs);
8255#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
8256
8257#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
8258template <class t_HEAD, class t_TAIL_01,
8259 class t_TAIL_02,
8260 class t_TAIL_03,
8261 class t_TAIL_04,
8262 class t_TAIL_05,
8263 class t_TAIL_06,
8264 class t_TAIL_07,
8265 class t_TAIL_08,
8266 class t_TAIL_09,
8267 class t_TAIL_10,
8268 class t_TAIL_11,
8269 class t_TAIL_12,
8270 class t_TAIL_13,
8271 class t_TAIL_14,
8272 class t_TAIL_15,
8273 class t_TAIL_16,
8274 class t_TAIL_17>
8275bool operator<=(const variant<t_HEAD, t_TAIL_01,
8276 t_TAIL_02,
8277 t_TAIL_03,
8278 t_TAIL_04,
8279 t_TAIL_05,
8280 t_TAIL_06,
8281 t_TAIL_07,
8282 t_TAIL_08,
8283 t_TAIL_09,
8284 t_TAIL_10,
8285 t_TAIL_11,
8286 t_TAIL_12,
8287 t_TAIL_13,
8288 t_TAIL_14,
8289 t_TAIL_15,
8290 t_TAIL_16,
8291 t_TAIL_17>& lhs,
8292 const variant<t_HEAD, t_TAIL_01,
8293 t_TAIL_02,
8294 t_TAIL_03,
8295 t_TAIL_04,
8296 t_TAIL_05,
8297 t_TAIL_06,
8298 t_TAIL_07,
8299 t_TAIL_08,
8300 t_TAIL_09,
8301 t_TAIL_10,
8302 t_TAIL_11,
8303 t_TAIL_12,
8304 t_TAIL_13,
8305 t_TAIL_14,
8306 t_TAIL_15,
8307 t_TAIL_16,
8308 t_TAIL_17>& rhs);
8309#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
8310
8311#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
8312template <class t_HEAD, class t_TAIL_01,
8313 class t_TAIL_02,
8314 class t_TAIL_03,
8315 class t_TAIL_04,
8316 class t_TAIL_05,
8317 class t_TAIL_06,
8318 class t_TAIL_07,
8319 class t_TAIL_08,
8320 class t_TAIL_09,
8321 class t_TAIL_10,
8322 class t_TAIL_11,
8323 class t_TAIL_12,
8324 class t_TAIL_13,
8325 class t_TAIL_14,
8326 class t_TAIL_15,
8327 class t_TAIL_16,
8328 class t_TAIL_17,
8329 class t_TAIL_18>
8330bool operator<=(const variant<t_HEAD, t_TAIL_01,
8331 t_TAIL_02,
8332 t_TAIL_03,
8333 t_TAIL_04,
8334 t_TAIL_05,
8335 t_TAIL_06,
8336 t_TAIL_07,
8337 t_TAIL_08,
8338 t_TAIL_09,
8339 t_TAIL_10,
8340 t_TAIL_11,
8341 t_TAIL_12,
8342 t_TAIL_13,
8343 t_TAIL_14,
8344 t_TAIL_15,
8345 t_TAIL_16,
8346 t_TAIL_17,
8347 t_TAIL_18>& lhs,
8348 const variant<t_HEAD, t_TAIL_01,
8349 t_TAIL_02,
8350 t_TAIL_03,
8351 t_TAIL_04,
8352 t_TAIL_05,
8353 t_TAIL_06,
8354 t_TAIL_07,
8355 t_TAIL_08,
8356 t_TAIL_09,
8357 t_TAIL_10,
8358 t_TAIL_11,
8359 t_TAIL_12,
8360 t_TAIL_13,
8361 t_TAIL_14,
8362 t_TAIL_15,
8363 t_TAIL_16,
8364 t_TAIL_17,
8365 t_TAIL_18>& rhs);
8366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
8367
8368
8369#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
8370template <class t_HEAD>
8371bool operator>=(const variant<t_HEAD>& lhs,
8372 const variant<t_HEAD>& rhs);
8373#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
8374
8375#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
8376template <class t_HEAD, class t_TAIL_01>
8377bool operator>=(const variant<t_HEAD, t_TAIL_01>& lhs,
8378 const variant<t_HEAD, t_TAIL_01>& rhs);
8379#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
8380
8381#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
8382template <class t_HEAD, class t_TAIL_01,
8383 class t_TAIL_02>
8384bool operator>=(const variant<t_HEAD, t_TAIL_01,
8385 t_TAIL_02>& lhs,
8386 const variant<t_HEAD, t_TAIL_01,
8387 t_TAIL_02>& rhs);
8388#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
8389
8390#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
8391template <class t_HEAD, class t_TAIL_01,
8392 class t_TAIL_02,
8393 class t_TAIL_03>
8394bool operator>=(const variant<t_HEAD, t_TAIL_01,
8395 t_TAIL_02,
8396 t_TAIL_03>& lhs,
8397 const variant<t_HEAD, t_TAIL_01,
8398 t_TAIL_02,
8399 t_TAIL_03>& rhs);
8400#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
8401
8402#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
8403template <class t_HEAD, class t_TAIL_01,
8404 class t_TAIL_02,
8405 class t_TAIL_03,
8406 class t_TAIL_04>
8407bool operator>=(const variant<t_HEAD, t_TAIL_01,
8408 t_TAIL_02,
8409 t_TAIL_03,
8410 t_TAIL_04>& lhs,
8411 const variant<t_HEAD, t_TAIL_01,
8412 t_TAIL_02,
8413 t_TAIL_03,
8414 t_TAIL_04>& rhs);
8415#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
8416
8417#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
8418template <class t_HEAD, class t_TAIL_01,
8419 class t_TAIL_02,
8420 class t_TAIL_03,
8421 class t_TAIL_04,
8422 class t_TAIL_05>
8423bool operator>=(const variant<t_HEAD, t_TAIL_01,
8424 t_TAIL_02,
8425 t_TAIL_03,
8426 t_TAIL_04,
8427 t_TAIL_05>& lhs,
8428 const variant<t_HEAD, t_TAIL_01,
8429 t_TAIL_02,
8430 t_TAIL_03,
8431 t_TAIL_04,
8432 t_TAIL_05>& rhs);
8433#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
8434
8435#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
8436template <class t_HEAD, class t_TAIL_01,
8437 class t_TAIL_02,
8438 class t_TAIL_03,
8439 class t_TAIL_04,
8440 class t_TAIL_05,
8441 class t_TAIL_06>
8442bool operator>=(const variant<t_HEAD, t_TAIL_01,
8443 t_TAIL_02,
8444 t_TAIL_03,
8445 t_TAIL_04,
8446 t_TAIL_05,
8447 t_TAIL_06>& lhs,
8448 const variant<t_HEAD, t_TAIL_01,
8449 t_TAIL_02,
8450 t_TAIL_03,
8451 t_TAIL_04,
8452 t_TAIL_05,
8453 t_TAIL_06>& rhs);
8454#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
8455
8456#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
8457template <class t_HEAD, class t_TAIL_01,
8458 class t_TAIL_02,
8459 class t_TAIL_03,
8460 class t_TAIL_04,
8461 class t_TAIL_05,
8462 class t_TAIL_06,
8463 class t_TAIL_07>
8464bool operator>=(const variant<t_HEAD, t_TAIL_01,
8465 t_TAIL_02,
8466 t_TAIL_03,
8467 t_TAIL_04,
8468 t_TAIL_05,
8469 t_TAIL_06,
8470 t_TAIL_07>& lhs,
8471 const variant<t_HEAD, t_TAIL_01,
8472 t_TAIL_02,
8473 t_TAIL_03,
8474 t_TAIL_04,
8475 t_TAIL_05,
8476 t_TAIL_06,
8477 t_TAIL_07>& rhs);
8478#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
8479
8480#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
8481template <class t_HEAD, class t_TAIL_01,
8482 class t_TAIL_02,
8483 class t_TAIL_03,
8484 class t_TAIL_04,
8485 class t_TAIL_05,
8486 class t_TAIL_06,
8487 class t_TAIL_07,
8488 class t_TAIL_08>
8489bool operator>=(const variant<t_HEAD, t_TAIL_01,
8490 t_TAIL_02,
8491 t_TAIL_03,
8492 t_TAIL_04,
8493 t_TAIL_05,
8494 t_TAIL_06,
8495 t_TAIL_07,
8496 t_TAIL_08>& lhs,
8497 const variant<t_HEAD, t_TAIL_01,
8498 t_TAIL_02,
8499 t_TAIL_03,
8500 t_TAIL_04,
8501 t_TAIL_05,
8502 t_TAIL_06,
8503 t_TAIL_07,
8504 t_TAIL_08>& rhs);
8505#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
8506
8507#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
8508template <class t_HEAD, class t_TAIL_01,
8509 class t_TAIL_02,
8510 class t_TAIL_03,
8511 class t_TAIL_04,
8512 class t_TAIL_05,
8513 class t_TAIL_06,
8514 class t_TAIL_07,
8515 class t_TAIL_08,
8516 class t_TAIL_09>
8517bool operator>=(const variant<t_HEAD, t_TAIL_01,
8518 t_TAIL_02,
8519 t_TAIL_03,
8520 t_TAIL_04,
8521 t_TAIL_05,
8522 t_TAIL_06,
8523 t_TAIL_07,
8524 t_TAIL_08,
8525 t_TAIL_09>& lhs,
8526 const variant<t_HEAD, t_TAIL_01,
8527 t_TAIL_02,
8528 t_TAIL_03,
8529 t_TAIL_04,
8530 t_TAIL_05,
8531 t_TAIL_06,
8532 t_TAIL_07,
8533 t_TAIL_08,
8534 t_TAIL_09>& rhs);
8535#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
8536
8537#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
8538template <class t_HEAD, class t_TAIL_01,
8539 class t_TAIL_02,
8540 class t_TAIL_03,
8541 class t_TAIL_04,
8542 class t_TAIL_05,
8543 class t_TAIL_06,
8544 class t_TAIL_07,
8545 class t_TAIL_08,
8546 class t_TAIL_09,
8547 class t_TAIL_10>
8548bool operator>=(const variant<t_HEAD, t_TAIL_01,
8549 t_TAIL_02,
8550 t_TAIL_03,
8551 t_TAIL_04,
8552 t_TAIL_05,
8553 t_TAIL_06,
8554 t_TAIL_07,
8555 t_TAIL_08,
8556 t_TAIL_09,
8557 t_TAIL_10>& lhs,
8558 const variant<t_HEAD, t_TAIL_01,
8559 t_TAIL_02,
8560 t_TAIL_03,
8561 t_TAIL_04,
8562 t_TAIL_05,
8563 t_TAIL_06,
8564 t_TAIL_07,
8565 t_TAIL_08,
8566 t_TAIL_09,
8567 t_TAIL_10>& rhs);
8568#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
8569
8570#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
8571template <class t_HEAD, class t_TAIL_01,
8572 class t_TAIL_02,
8573 class t_TAIL_03,
8574 class t_TAIL_04,
8575 class t_TAIL_05,
8576 class t_TAIL_06,
8577 class t_TAIL_07,
8578 class t_TAIL_08,
8579 class t_TAIL_09,
8580 class t_TAIL_10,
8581 class t_TAIL_11>
8582bool operator>=(const variant<t_HEAD, t_TAIL_01,
8583 t_TAIL_02,
8584 t_TAIL_03,
8585 t_TAIL_04,
8586 t_TAIL_05,
8587 t_TAIL_06,
8588 t_TAIL_07,
8589 t_TAIL_08,
8590 t_TAIL_09,
8591 t_TAIL_10,
8592 t_TAIL_11>& lhs,
8593 const variant<t_HEAD, t_TAIL_01,
8594 t_TAIL_02,
8595 t_TAIL_03,
8596 t_TAIL_04,
8597 t_TAIL_05,
8598 t_TAIL_06,
8599 t_TAIL_07,
8600 t_TAIL_08,
8601 t_TAIL_09,
8602 t_TAIL_10,
8603 t_TAIL_11>& rhs);
8604#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
8605
8606#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
8607template <class t_HEAD, class t_TAIL_01,
8608 class t_TAIL_02,
8609 class t_TAIL_03,
8610 class t_TAIL_04,
8611 class t_TAIL_05,
8612 class t_TAIL_06,
8613 class t_TAIL_07,
8614 class t_TAIL_08,
8615 class t_TAIL_09,
8616 class t_TAIL_10,
8617 class t_TAIL_11,
8618 class t_TAIL_12>
8619bool operator>=(const variant<t_HEAD, t_TAIL_01,
8620 t_TAIL_02,
8621 t_TAIL_03,
8622 t_TAIL_04,
8623 t_TAIL_05,
8624 t_TAIL_06,
8625 t_TAIL_07,
8626 t_TAIL_08,
8627 t_TAIL_09,
8628 t_TAIL_10,
8629 t_TAIL_11,
8630 t_TAIL_12>& lhs,
8631 const variant<t_HEAD, t_TAIL_01,
8632 t_TAIL_02,
8633 t_TAIL_03,
8634 t_TAIL_04,
8635 t_TAIL_05,
8636 t_TAIL_06,
8637 t_TAIL_07,
8638 t_TAIL_08,
8639 t_TAIL_09,
8640 t_TAIL_10,
8641 t_TAIL_11,
8642 t_TAIL_12>& rhs);
8643#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
8644
8645#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
8646template <class t_HEAD, class t_TAIL_01,
8647 class t_TAIL_02,
8648 class t_TAIL_03,
8649 class t_TAIL_04,
8650 class t_TAIL_05,
8651 class t_TAIL_06,
8652 class t_TAIL_07,
8653 class t_TAIL_08,
8654 class t_TAIL_09,
8655 class t_TAIL_10,
8656 class t_TAIL_11,
8657 class t_TAIL_12,
8658 class t_TAIL_13>
8659bool operator>=(const variant<t_HEAD, t_TAIL_01,
8660 t_TAIL_02,
8661 t_TAIL_03,
8662 t_TAIL_04,
8663 t_TAIL_05,
8664 t_TAIL_06,
8665 t_TAIL_07,
8666 t_TAIL_08,
8667 t_TAIL_09,
8668 t_TAIL_10,
8669 t_TAIL_11,
8670 t_TAIL_12,
8671 t_TAIL_13>& lhs,
8672 const variant<t_HEAD, t_TAIL_01,
8673 t_TAIL_02,
8674 t_TAIL_03,
8675 t_TAIL_04,
8676 t_TAIL_05,
8677 t_TAIL_06,
8678 t_TAIL_07,
8679 t_TAIL_08,
8680 t_TAIL_09,
8681 t_TAIL_10,
8682 t_TAIL_11,
8683 t_TAIL_12,
8684 t_TAIL_13>& rhs);
8685#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
8686
8687#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
8688template <class t_HEAD, class t_TAIL_01,
8689 class t_TAIL_02,
8690 class t_TAIL_03,
8691 class t_TAIL_04,
8692 class t_TAIL_05,
8693 class t_TAIL_06,
8694 class t_TAIL_07,
8695 class t_TAIL_08,
8696 class t_TAIL_09,
8697 class t_TAIL_10,
8698 class t_TAIL_11,
8699 class t_TAIL_12,
8700 class t_TAIL_13,
8701 class t_TAIL_14>
8702bool operator>=(const variant<t_HEAD, t_TAIL_01,
8703 t_TAIL_02,
8704 t_TAIL_03,
8705 t_TAIL_04,
8706 t_TAIL_05,
8707 t_TAIL_06,
8708 t_TAIL_07,
8709 t_TAIL_08,
8710 t_TAIL_09,
8711 t_TAIL_10,
8712 t_TAIL_11,
8713 t_TAIL_12,
8714 t_TAIL_13,
8715 t_TAIL_14>& lhs,
8716 const variant<t_HEAD, t_TAIL_01,
8717 t_TAIL_02,
8718 t_TAIL_03,
8719 t_TAIL_04,
8720 t_TAIL_05,
8721 t_TAIL_06,
8722 t_TAIL_07,
8723 t_TAIL_08,
8724 t_TAIL_09,
8725 t_TAIL_10,
8726 t_TAIL_11,
8727 t_TAIL_12,
8728 t_TAIL_13,
8729 t_TAIL_14>& rhs);
8730#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
8731
8732#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
8733template <class t_HEAD, class t_TAIL_01,
8734 class t_TAIL_02,
8735 class t_TAIL_03,
8736 class t_TAIL_04,
8737 class t_TAIL_05,
8738 class t_TAIL_06,
8739 class t_TAIL_07,
8740 class t_TAIL_08,
8741 class t_TAIL_09,
8742 class t_TAIL_10,
8743 class t_TAIL_11,
8744 class t_TAIL_12,
8745 class t_TAIL_13,
8746 class t_TAIL_14,
8747 class t_TAIL_15>
8748bool operator>=(const variant<t_HEAD, t_TAIL_01,
8749 t_TAIL_02,
8750 t_TAIL_03,
8751 t_TAIL_04,
8752 t_TAIL_05,
8753 t_TAIL_06,
8754 t_TAIL_07,
8755 t_TAIL_08,
8756 t_TAIL_09,
8757 t_TAIL_10,
8758 t_TAIL_11,
8759 t_TAIL_12,
8760 t_TAIL_13,
8761 t_TAIL_14,
8762 t_TAIL_15>& lhs,
8763 const variant<t_HEAD, t_TAIL_01,
8764 t_TAIL_02,
8765 t_TAIL_03,
8766 t_TAIL_04,
8767 t_TAIL_05,
8768 t_TAIL_06,
8769 t_TAIL_07,
8770 t_TAIL_08,
8771 t_TAIL_09,
8772 t_TAIL_10,
8773 t_TAIL_11,
8774 t_TAIL_12,
8775 t_TAIL_13,
8776 t_TAIL_14,
8777 t_TAIL_15>& rhs);
8778#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
8779
8780#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
8781template <class t_HEAD, class t_TAIL_01,
8782 class t_TAIL_02,
8783 class t_TAIL_03,
8784 class t_TAIL_04,
8785 class t_TAIL_05,
8786 class t_TAIL_06,
8787 class t_TAIL_07,
8788 class t_TAIL_08,
8789 class t_TAIL_09,
8790 class t_TAIL_10,
8791 class t_TAIL_11,
8792 class t_TAIL_12,
8793 class t_TAIL_13,
8794 class t_TAIL_14,
8795 class t_TAIL_15,
8796 class t_TAIL_16>
8797bool operator>=(const variant<t_HEAD, t_TAIL_01,
8798 t_TAIL_02,
8799 t_TAIL_03,
8800 t_TAIL_04,
8801 t_TAIL_05,
8802 t_TAIL_06,
8803 t_TAIL_07,
8804 t_TAIL_08,
8805 t_TAIL_09,
8806 t_TAIL_10,
8807 t_TAIL_11,
8808 t_TAIL_12,
8809 t_TAIL_13,
8810 t_TAIL_14,
8811 t_TAIL_15,
8812 t_TAIL_16>& lhs,
8813 const variant<t_HEAD, t_TAIL_01,
8814 t_TAIL_02,
8815 t_TAIL_03,
8816 t_TAIL_04,
8817 t_TAIL_05,
8818 t_TAIL_06,
8819 t_TAIL_07,
8820 t_TAIL_08,
8821 t_TAIL_09,
8822 t_TAIL_10,
8823 t_TAIL_11,
8824 t_TAIL_12,
8825 t_TAIL_13,
8826 t_TAIL_14,
8827 t_TAIL_15,
8828 t_TAIL_16>& rhs);
8829#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
8830
8831#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
8832template <class t_HEAD, class t_TAIL_01,
8833 class t_TAIL_02,
8834 class t_TAIL_03,
8835 class t_TAIL_04,
8836 class t_TAIL_05,
8837 class t_TAIL_06,
8838 class t_TAIL_07,
8839 class t_TAIL_08,
8840 class t_TAIL_09,
8841 class t_TAIL_10,
8842 class t_TAIL_11,
8843 class t_TAIL_12,
8844 class t_TAIL_13,
8845 class t_TAIL_14,
8846 class t_TAIL_15,
8847 class t_TAIL_16,
8848 class t_TAIL_17>
8849bool operator>=(const variant<t_HEAD, t_TAIL_01,
8850 t_TAIL_02,
8851 t_TAIL_03,
8852 t_TAIL_04,
8853 t_TAIL_05,
8854 t_TAIL_06,
8855 t_TAIL_07,
8856 t_TAIL_08,
8857 t_TAIL_09,
8858 t_TAIL_10,
8859 t_TAIL_11,
8860 t_TAIL_12,
8861 t_TAIL_13,
8862 t_TAIL_14,
8863 t_TAIL_15,
8864 t_TAIL_16,
8865 t_TAIL_17>& lhs,
8866 const variant<t_HEAD, t_TAIL_01,
8867 t_TAIL_02,
8868 t_TAIL_03,
8869 t_TAIL_04,
8870 t_TAIL_05,
8871 t_TAIL_06,
8872 t_TAIL_07,
8873 t_TAIL_08,
8874 t_TAIL_09,
8875 t_TAIL_10,
8876 t_TAIL_11,
8877 t_TAIL_12,
8878 t_TAIL_13,
8879 t_TAIL_14,
8880 t_TAIL_15,
8881 t_TAIL_16,
8882 t_TAIL_17>& rhs);
8883#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
8884
8885#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
8886template <class t_HEAD, class t_TAIL_01,
8887 class t_TAIL_02,
8888 class t_TAIL_03,
8889 class t_TAIL_04,
8890 class t_TAIL_05,
8891 class t_TAIL_06,
8892 class t_TAIL_07,
8893 class t_TAIL_08,
8894 class t_TAIL_09,
8895 class t_TAIL_10,
8896 class t_TAIL_11,
8897 class t_TAIL_12,
8898 class t_TAIL_13,
8899 class t_TAIL_14,
8900 class t_TAIL_15,
8901 class t_TAIL_16,
8902 class t_TAIL_17,
8903 class t_TAIL_18>
8904bool operator>=(const variant<t_HEAD, t_TAIL_01,
8905 t_TAIL_02,
8906 t_TAIL_03,
8907 t_TAIL_04,
8908 t_TAIL_05,
8909 t_TAIL_06,
8910 t_TAIL_07,
8911 t_TAIL_08,
8912 t_TAIL_09,
8913 t_TAIL_10,
8914 t_TAIL_11,
8915 t_TAIL_12,
8916 t_TAIL_13,
8917 t_TAIL_14,
8918 t_TAIL_15,
8919 t_TAIL_16,
8920 t_TAIL_17,
8921 t_TAIL_18>& lhs,
8922 const variant<t_HEAD, t_TAIL_01,
8923 t_TAIL_02,
8924 t_TAIL_03,
8925 t_TAIL_04,
8926 t_TAIL_05,
8927 t_TAIL_06,
8928 t_TAIL_07,
8929 t_TAIL_08,
8930 t_TAIL_09,
8931 t_TAIL_10,
8932 t_TAIL_11,
8933 t_TAIL_12,
8934 t_TAIL_13,
8935 t_TAIL_14,
8936 t_TAIL_15,
8937 t_TAIL_16,
8938 t_TAIL_17,
8939 t_TAIL_18>& rhs);
8940#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
8941
8942
8943#if defined BSLS_COMPILERFEATURES_SUPPORT_THREE_WAY_COMPARISON && \
8944 defined BSLS_LIBRARYFEATURES_HAS_CPP20_CONCEPTS
8945
8946#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
8947requires()
8948constexpr std::common_comparison_category_t<
8949 >
8950operator<=>(const variant<>& lhs, const variant<>& rhs);
8951#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 0
8952
8953#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
8954template <class t_ALTS_01>
8955 requires(std::three_way_comparable<t_ALTS_01> && )
8956constexpr std::common_comparison_category_t<
8957 std::compare_three_way_result_t<t_ALTS_01>>
8958operator<=>(const variant<t_ALTS_01>& lhs, const variant<t_ALTS_01>& rhs);
8959#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 1
8960
8961#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
8962template <class t_ALTS_01,
8963 class t_ALTS_02>
8964 requires(std::three_way_comparable<t_ALTS_01> && ,
8965 std::three_way_comparable<t_ALTS_02> && )
8966constexpr std::common_comparison_category_t<
8967 std::compare_three_way_result_t<t_ALTS_01>,
8968 std::compare_three_way_result_t<t_ALTS_02>>
8969operator<=>(const variant<t_ALTS_01,
8970 t_ALTS_02>& lhs, const variant<t_ALTS_01,
8971 t_ALTS_02>& rhs);
8972#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 2
8973
8974#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
8975template <class t_ALTS_01,
8976 class t_ALTS_02,
8977 class t_ALTS_03>
8978 requires(std::three_way_comparable<t_ALTS_01> && ,
8979 std::three_way_comparable<t_ALTS_02> && ,
8980 std::three_way_comparable<t_ALTS_03> && )
8981constexpr std::common_comparison_category_t<
8982 std::compare_three_way_result_t<t_ALTS_01>,
8983 std::compare_three_way_result_t<t_ALTS_02>,
8984 std::compare_three_way_result_t<t_ALTS_03>>
8985operator<=>(const variant<t_ALTS_01,
8986 t_ALTS_02,
8987 t_ALTS_03>& lhs, const variant<t_ALTS_01,
8988 t_ALTS_02,
8989 t_ALTS_03>& rhs);
8990#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 3
8991
8992#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
8993template <class t_ALTS_01,
8994 class t_ALTS_02,
8995 class t_ALTS_03,
8996 class t_ALTS_04>
8997 requires(std::three_way_comparable<t_ALTS_01> && ,
8998 std::three_way_comparable<t_ALTS_02> && ,
8999 std::three_way_comparable<t_ALTS_03> && ,
9000 std::three_way_comparable<t_ALTS_04> && )
9001constexpr std::common_comparison_category_t<
9002 std::compare_three_way_result_t<t_ALTS_01>,
9003 std::compare_three_way_result_t<t_ALTS_02>,
9004 std::compare_three_way_result_t<t_ALTS_03>,
9005 std::compare_three_way_result_t<t_ALTS_04>>
9006operator<=>(const variant<t_ALTS_01,
9007 t_ALTS_02,
9008 t_ALTS_03,
9009 t_ALTS_04>& lhs, const variant<t_ALTS_01,
9010 t_ALTS_02,
9011 t_ALTS_03,
9012 t_ALTS_04>& rhs);
9013#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 4
9014
9015#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
9016template <class t_ALTS_01,
9017 class t_ALTS_02,
9018 class t_ALTS_03,
9019 class t_ALTS_04,
9020 class t_ALTS_05>
9021 requires(std::three_way_comparable<t_ALTS_01> && ,
9022 std::three_way_comparable<t_ALTS_02> && ,
9023 std::three_way_comparable<t_ALTS_03> && ,
9024 std::three_way_comparable<t_ALTS_04> && ,
9025 std::three_way_comparable<t_ALTS_05> && )
9026constexpr std::common_comparison_category_t<
9027 std::compare_three_way_result_t<t_ALTS_01>,
9028 std::compare_three_way_result_t<t_ALTS_02>,
9029 std::compare_three_way_result_t<t_ALTS_03>,
9030 std::compare_three_way_result_t<t_ALTS_04>,
9031 std::compare_three_way_result_t<t_ALTS_05>>
9032operator<=>(const variant<t_ALTS_01,
9033 t_ALTS_02,
9034 t_ALTS_03,
9035 t_ALTS_04,
9036 t_ALTS_05>& lhs, const variant<t_ALTS_01,
9037 t_ALTS_02,
9038 t_ALTS_03,
9039 t_ALTS_04,
9040 t_ALTS_05>& rhs);
9041#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 5
9042
9043#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
9044template <class t_ALTS_01,
9045 class t_ALTS_02,
9046 class t_ALTS_03,
9047 class t_ALTS_04,
9048 class t_ALTS_05,
9049 class t_ALTS_06>
9050 requires(std::three_way_comparable<t_ALTS_01> && ,
9051 std::three_way_comparable<t_ALTS_02> && ,
9052 std::three_way_comparable<t_ALTS_03> && ,
9053 std::three_way_comparable<t_ALTS_04> && ,
9054 std::three_way_comparable<t_ALTS_05> && ,
9055 std::three_way_comparable<t_ALTS_06> && )
9056constexpr std::common_comparison_category_t<
9057 std::compare_three_way_result_t<t_ALTS_01>,
9058 std::compare_three_way_result_t<t_ALTS_02>,
9059 std::compare_three_way_result_t<t_ALTS_03>,
9060 std::compare_three_way_result_t<t_ALTS_04>,
9061 std::compare_three_way_result_t<t_ALTS_05>,
9062 std::compare_three_way_result_t<t_ALTS_06>>
9063operator<=>(const variant<t_ALTS_01,
9064 t_ALTS_02,
9065 t_ALTS_03,
9066 t_ALTS_04,
9067 t_ALTS_05,
9068 t_ALTS_06>& lhs, const variant<t_ALTS_01,
9069 t_ALTS_02,
9070 t_ALTS_03,
9071 t_ALTS_04,
9072 t_ALTS_05,
9073 t_ALTS_06>& rhs);
9074#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 6
9075
9076#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
9077template <class t_ALTS_01,
9078 class t_ALTS_02,
9079 class t_ALTS_03,
9080 class t_ALTS_04,
9081 class t_ALTS_05,
9082 class t_ALTS_06,
9083 class t_ALTS_07>
9084 requires(std::three_way_comparable<t_ALTS_01> && ,
9085 std::three_way_comparable<t_ALTS_02> && ,
9086 std::three_way_comparable<t_ALTS_03> && ,
9087 std::three_way_comparable<t_ALTS_04> && ,
9088 std::three_way_comparable<t_ALTS_05> && ,
9089 std::three_way_comparable<t_ALTS_06> && ,
9090 std::three_way_comparable<t_ALTS_07> && )
9091constexpr std::common_comparison_category_t<
9092 std::compare_three_way_result_t<t_ALTS_01>,
9093 std::compare_three_way_result_t<t_ALTS_02>,
9094 std::compare_three_way_result_t<t_ALTS_03>,
9095 std::compare_three_way_result_t<t_ALTS_04>,
9096 std::compare_three_way_result_t<t_ALTS_05>,
9097 std::compare_three_way_result_t<t_ALTS_06>,
9098 std::compare_three_way_result_t<t_ALTS_07>>
9099operator<=>(const variant<t_ALTS_01,
9100 t_ALTS_02,
9101 t_ALTS_03,
9102 t_ALTS_04,
9103 t_ALTS_05,
9104 t_ALTS_06,
9105 t_ALTS_07>& lhs, const variant<t_ALTS_01,
9106 t_ALTS_02,
9107 t_ALTS_03,
9108 t_ALTS_04,
9109 t_ALTS_05,
9110 t_ALTS_06,
9111 t_ALTS_07>& rhs);
9112#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 7
9113
9114#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
9115template <class t_ALTS_01,
9116 class t_ALTS_02,
9117 class t_ALTS_03,
9118 class t_ALTS_04,
9119 class t_ALTS_05,
9120 class t_ALTS_06,
9121 class t_ALTS_07,
9122 class t_ALTS_08>
9123 requires(std::three_way_comparable<t_ALTS_01> && ,
9124 std::three_way_comparable<t_ALTS_02> && ,
9125 std::three_way_comparable<t_ALTS_03> && ,
9126 std::three_way_comparable<t_ALTS_04> && ,
9127 std::three_way_comparable<t_ALTS_05> && ,
9128 std::three_way_comparable<t_ALTS_06> && ,
9129 std::three_way_comparable<t_ALTS_07> && ,
9130 std::three_way_comparable<t_ALTS_08> && )
9131constexpr std::common_comparison_category_t<
9132 std::compare_three_way_result_t<t_ALTS_01>,
9133 std::compare_three_way_result_t<t_ALTS_02>,
9134 std::compare_three_way_result_t<t_ALTS_03>,
9135 std::compare_three_way_result_t<t_ALTS_04>,
9136 std::compare_three_way_result_t<t_ALTS_05>,
9137 std::compare_three_way_result_t<t_ALTS_06>,
9138 std::compare_three_way_result_t<t_ALTS_07>,
9139 std::compare_three_way_result_t<t_ALTS_08>>
9140operator<=>(const variant<t_ALTS_01,
9141 t_ALTS_02,
9142 t_ALTS_03,
9143 t_ALTS_04,
9144 t_ALTS_05,
9145 t_ALTS_06,
9146 t_ALTS_07,
9147 t_ALTS_08>& lhs, const variant<t_ALTS_01,
9148 t_ALTS_02,
9149 t_ALTS_03,
9150 t_ALTS_04,
9151 t_ALTS_05,
9152 t_ALTS_06,
9153 t_ALTS_07,
9154 t_ALTS_08>& rhs);
9155#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 8
9156
9157#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
9158template <class t_ALTS_01,
9159 class t_ALTS_02,
9160 class t_ALTS_03,
9161 class t_ALTS_04,
9162 class t_ALTS_05,
9163 class t_ALTS_06,
9164 class t_ALTS_07,
9165 class t_ALTS_08,
9166 class t_ALTS_09>
9167 requires(std::three_way_comparable<t_ALTS_01> && ,
9168 std::three_way_comparable<t_ALTS_02> && ,
9169 std::three_way_comparable<t_ALTS_03> && ,
9170 std::three_way_comparable<t_ALTS_04> && ,
9171 std::three_way_comparable<t_ALTS_05> && ,
9172 std::three_way_comparable<t_ALTS_06> && ,
9173 std::three_way_comparable<t_ALTS_07> && ,
9174 std::three_way_comparable<t_ALTS_08> && ,
9175 std::three_way_comparable<t_ALTS_09> && )
9176constexpr std::common_comparison_category_t<
9177 std::compare_three_way_result_t<t_ALTS_01>,
9178 std::compare_three_way_result_t<t_ALTS_02>,
9179 std::compare_three_way_result_t<t_ALTS_03>,
9180 std::compare_three_way_result_t<t_ALTS_04>,
9181 std::compare_three_way_result_t<t_ALTS_05>,
9182 std::compare_three_way_result_t<t_ALTS_06>,
9183 std::compare_three_way_result_t<t_ALTS_07>,
9184 std::compare_three_way_result_t<t_ALTS_08>,
9185 std::compare_three_way_result_t<t_ALTS_09>>
9186operator<=>(const variant<t_ALTS_01,
9187 t_ALTS_02,
9188 t_ALTS_03,
9189 t_ALTS_04,
9190 t_ALTS_05,
9191 t_ALTS_06,
9192 t_ALTS_07,
9193 t_ALTS_08,
9194 t_ALTS_09>& lhs, const variant<t_ALTS_01,
9195 t_ALTS_02,
9196 t_ALTS_03,
9197 t_ALTS_04,
9198 t_ALTS_05,
9199 t_ALTS_06,
9200 t_ALTS_07,
9201 t_ALTS_08,
9202 t_ALTS_09>& rhs);
9203#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 9
9204
9205#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
9206template <class t_ALTS_01,
9207 class t_ALTS_02,
9208 class t_ALTS_03,
9209 class t_ALTS_04,
9210 class t_ALTS_05,
9211 class t_ALTS_06,
9212 class t_ALTS_07,
9213 class t_ALTS_08,
9214 class t_ALTS_09,
9215 class t_ALTS_10>
9216 requires(std::three_way_comparable<t_ALTS_01> && ,
9217 std::three_way_comparable<t_ALTS_02> && ,
9218 std::three_way_comparable<t_ALTS_03> && ,
9219 std::three_way_comparable<t_ALTS_04> && ,
9220 std::three_way_comparable<t_ALTS_05> && ,
9221 std::three_way_comparable<t_ALTS_06> && ,
9222 std::three_way_comparable<t_ALTS_07> && ,
9223 std::three_way_comparable<t_ALTS_08> && ,
9224 std::three_way_comparable<t_ALTS_09> && ,
9225 std::three_way_comparable<t_ALTS_10> && )
9226constexpr std::common_comparison_category_t<
9227 std::compare_three_way_result_t<t_ALTS_01>,
9228 std::compare_three_way_result_t<t_ALTS_02>,
9229 std::compare_three_way_result_t<t_ALTS_03>,
9230 std::compare_three_way_result_t<t_ALTS_04>,
9231 std::compare_three_way_result_t<t_ALTS_05>,
9232 std::compare_three_way_result_t<t_ALTS_06>,
9233 std::compare_three_way_result_t<t_ALTS_07>,
9234 std::compare_three_way_result_t<t_ALTS_08>,
9235 std::compare_three_way_result_t<t_ALTS_09>,
9236 std::compare_three_way_result_t<t_ALTS_10>>
9237operator<=>(const variant<t_ALTS_01,
9238 t_ALTS_02,
9239 t_ALTS_03,
9240 t_ALTS_04,
9241 t_ALTS_05,
9242 t_ALTS_06,
9243 t_ALTS_07,
9244 t_ALTS_08,
9245 t_ALTS_09,
9246 t_ALTS_10>& lhs, const variant<t_ALTS_01,
9247 t_ALTS_02,
9248 t_ALTS_03,
9249 t_ALTS_04,
9250 t_ALTS_05,
9251 t_ALTS_06,
9252 t_ALTS_07,
9253 t_ALTS_08,
9254 t_ALTS_09,
9255 t_ALTS_10>& rhs);
9256#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 10
9257
9258#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
9259template <class t_ALTS_01,
9260 class t_ALTS_02,
9261 class t_ALTS_03,
9262 class t_ALTS_04,
9263 class t_ALTS_05,
9264 class t_ALTS_06,
9265 class t_ALTS_07,
9266 class t_ALTS_08,
9267 class t_ALTS_09,
9268 class t_ALTS_10,
9269 class t_ALTS_11>
9270 requires(std::three_way_comparable<t_ALTS_01> && ,
9271 std::three_way_comparable<t_ALTS_02> && ,
9272 std::three_way_comparable<t_ALTS_03> && ,
9273 std::three_way_comparable<t_ALTS_04> && ,
9274 std::three_way_comparable<t_ALTS_05> && ,
9275 std::three_way_comparable<t_ALTS_06> && ,
9276 std::three_way_comparable<t_ALTS_07> && ,
9277 std::three_way_comparable<t_ALTS_08> && ,
9278 std::three_way_comparable<t_ALTS_09> && ,
9279 std::three_way_comparable<t_ALTS_10> && ,
9280 std::three_way_comparable<t_ALTS_11> && )
9281constexpr std::common_comparison_category_t<
9282 std::compare_three_way_result_t<t_ALTS_01>,
9283 std::compare_three_way_result_t<t_ALTS_02>,
9284 std::compare_three_way_result_t<t_ALTS_03>,
9285 std::compare_three_way_result_t<t_ALTS_04>,
9286 std::compare_three_way_result_t<t_ALTS_05>,
9287 std::compare_three_way_result_t<t_ALTS_06>,
9288 std::compare_three_way_result_t<t_ALTS_07>,
9289 std::compare_three_way_result_t<t_ALTS_08>,
9290 std::compare_three_way_result_t<t_ALTS_09>,
9291 std::compare_three_way_result_t<t_ALTS_10>,
9292 std::compare_three_way_result_t<t_ALTS_11>>
9293operator<=>(const variant<t_ALTS_01,
9294 t_ALTS_02,
9295 t_ALTS_03,
9296 t_ALTS_04,
9297 t_ALTS_05,
9298 t_ALTS_06,
9299 t_ALTS_07,
9300 t_ALTS_08,
9301 t_ALTS_09,
9302 t_ALTS_10,
9303 t_ALTS_11>& lhs, const variant<t_ALTS_01,
9304 t_ALTS_02,
9305 t_ALTS_03,
9306 t_ALTS_04,
9307 t_ALTS_05,
9308 t_ALTS_06,
9309 t_ALTS_07,
9310 t_ALTS_08,
9311 t_ALTS_09,
9312 t_ALTS_10,
9313 t_ALTS_11>& rhs);
9314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 11
9315
9316#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
9317template <class t_ALTS_01,
9318 class t_ALTS_02,
9319 class t_ALTS_03,
9320 class t_ALTS_04,
9321 class t_ALTS_05,
9322 class t_ALTS_06,
9323 class t_ALTS_07,
9324 class t_ALTS_08,
9325 class t_ALTS_09,
9326 class t_ALTS_10,
9327 class t_ALTS_11,
9328 class t_ALTS_12>
9329 requires(std::three_way_comparable<t_ALTS_01> && ,
9330 std::three_way_comparable<t_ALTS_02> && ,
9331 std::three_way_comparable<t_ALTS_03> && ,
9332 std::three_way_comparable<t_ALTS_04> && ,
9333 std::three_way_comparable<t_ALTS_05> && ,
9334 std::three_way_comparable<t_ALTS_06> && ,
9335 std::three_way_comparable<t_ALTS_07> && ,
9336 std::three_way_comparable<t_ALTS_08> && ,
9337 std::three_way_comparable<t_ALTS_09> && ,
9338 std::three_way_comparable<t_ALTS_10> && ,
9339 std::three_way_comparable<t_ALTS_11> && ,
9340 std::three_way_comparable<t_ALTS_12> && )
9341constexpr std::common_comparison_category_t<
9342 std::compare_three_way_result_t<t_ALTS_01>,
9343 std::compare_three_way_result_t<t_ALTS_02>,
9344 std::compare_three_way_result_t<t_ALTS_03>,
9345 std::compare_three_way_result_t<t_ALTS_04>,
9346 std::compare_three_way_result_t<t_ALTS_05>,
9347 std::compare_three_way_result_t<t_ALTS_06>,
9348 std::compare_three_way_result_t<t_ALTS_07>,
9349 std::compare_three_way_result_t<t_ALTS_08>,
9350 std::compare_three_way_result_t<t_ALTS_09>,
9351 std::compare_three_way_result_t<t_ALTS_10>,
9352 std::compare_three_way_result_t<t_ALTS_11>,
9353 std::compare_three_way_result_t<t_ALTS_12>>
9354operator<=>(const variant<t_ALTS_01,
9355 t_ALTS_02,
9356 t_ALTS_03,
9357 t_ALTS_04,
9358 t_ALTS_05,
9359 t_ALTS_06,
9360 t_ALTS_07,
9361 t_ALTS_08,
9362 t_ALTS_09,
9363 t_ALTS_10,
9364 t_ALTS_11,
9365 t_ALTS_12>& lhs, const variant<t_ALTS_01,
9366 t_ALTS_02,
9367 t_ALTS_03,
9368 t_ALTS_04,
9369 t_ALTS_05,
9370 t_ALTS_06,
9371 t_ALTS_07,
9372 t_ALTS_08,
9373 t_ALTS_09,
9374 t_ALTS_10,
9375 t_ALTS_11,
9376 t_ALTS_12>& rhs);
9377#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 12
9378
9379#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
9380template <class t_ALTS_01,
9381 class t_ALTS_02,
9382 class t_ALTS_03,
9383 class t_ALTS_04,
9384 class t_ALTS_05,
9385 class t_ALTS_06,
9386 class t_ALTS_07,
9387 class t_ALTS_08,
9388 class t_ALTS_09,
9389 class t_ALTS_10,
9390 class t_ALTS_11,
9391 class t_ALTS_12,
9392 class t_ALTS_13>
9393 requires(std::three_way_comparable<t_ALTS_01> && ,
9394 std::three_way_comparable<t_ALTS_02> && ,
9395 std::three_way_comparable<t_ALTS_03> && ,
9396 std::three_way_comparable<t_ALTS_04> && ,
9397 std::three_way_comparable<t_ALTS_05> && ,
9398 std::three_way_comparable<t_ALTS_06> && ,
9399 std::three_way_comparable<t_ALTS_07> && ,
9400 std::three_way_comparable<t_ALTS_08> && ,
9401 std::three_way_comparable<t_ALTS_09> && ,
9402 std::three_way_comparable<t_ALTS_10> && ,
9403 std::three_way_comparable<t_ALTS_11> && ,
9404 std::three_way_comparable<t_ALTS_12> && ,
9405 std::three_way_comparable<t_ALTS_13> && )
9406constexpr std::common_comparison_category_t<
9407 std::compare_three_way_result_t<t_ALTS_01>,
9408 std::compare_three_way_result_t<t_ALTS_02>,
9409 std::compare_three_way_result_t<t_ALTS_03>,
9410 std::compare_three_way_result_t<t_ALTS_04>,
9411 std::compare_three_way_result_t<t_ALTS_05>,
9412 std::compare_three_way_result_t<t_ALTS_06>,
9413 std::compare_three_way_result_t<t_ALTS_07>,
9414 std::compare_three_way_result_t<t_ALTS_08>,
9415 std::compare_three_way_result_t<t_ALTS_09>,
9416 std::compare_three_way_result_t<t_ALTS_10>,
9417 std::compare_three_way_result_t<t_ALTS_11>,
9418 std::compare_three_way_result_t<t_ALTS_12>,
9419 std::compare_three_way_result_t<t_ALTS_13>>
9420operator<=>(const variant<t_ALTS_01,
9421 t_ALTS_02,
9422 t_ALTS_03,
9423 t_ALTS_04,
9424 t_ALTS_05,
9425 t_ALTS_06,
9426 t_ALTS_07,
9427 t_ALTS_08,
9428 t_ALTS_09,
9429 t_ALTS_10,
9430 t_ALTS_11,
9431 t_ALTS_12,
9432 t_ALTS_13>& lhs, const variant<t_ALTS_01,
9433 t_ALTS_02,
9434 t_ALTS_03,
9435 t_ALTS_04,
9436 t_ALTS_05,
9437 t_ALTS_06,
9438 t_ALTS_07,
9439 t_ALTS_08,
9440 t_ALTS_09,
9441 t_ALTS_10,
9442 t_ALTS_11,
9443 t_ALTS_12,
9444 t_ALTS_13>& rhs);
9445#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 13
9446
9447#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
9448template <class t_ALTS_01,
9449 class t_ALTS_02,
9450 class t_ALTS_03,
9451 class t_ALTS_04,
9452 class t_ALTS_05,
9453 class t_ALTS_06,
9454 class t_ALTS_07,
9455 class t_ALTS_08,
9456 class t_ALTS_09,
9457 class t_ALTS_10,
9458 class t_ALTS_11,
9459 class t_ALTS_12,
9460 class t_ALTS_13,
9461 class t_ALTS_14>
9462 requires(std::three_way_comparable<t_ALTS_01> && ,
9463 std::three_way_comparable<t_ALTS_02> && ,
9464 std::three_way_comparable<t_ALTS_03> && ,
9465 std::three_way_comparable<t_ALTS_04> && ,
9466 std::three_way_comparable<t_ALTS_05> && ,
9467 std::three_way_comparable<t_ALTS_06> && ,
9468 std::three_way_comparable<t_ALTS_07> && ,
9469 std::three_way_comparable<t_ALTS_08> && ,
9470 std::three_way_comparable<t_ALTS_09> && ,
9471 std::three_way_comparable<t_ALTS_10> && ,
9472 std::three_way_comparable<t_ALTS_11> && ,
9473 std::three_way_comparable<t_ALTS_12> && ,
9474 std::three_way_comparable<t_ALTS_13> && ,
9475 std::three_way_comparable<t_ALTS_14> && )
9476constexpr std::common_comparison_category_t<
9477 std::compare_three_way_result_t<t_ALTS_01>,
9478 std::compare_three_way_result_t<t_ALTS_02>,
9479 std::compare_three_way_result_t<t_ALTS_03>,
9480 std::compare_three_way_result_t<t_ALTS_04>,
9481 std::compare_three_way_result_t<t_ALTS_05>,
9482 std::compare_three_way_result_t<t_ALTS_06>,
9483 std::compare_three_way_result_t<t_ALTS_07>,
9484 std::compare_three_way_result_t<t_ALTS_08>,
9485 std::compare_three_way_result_t<t_ALTS_09>,
9486 std::compare_three_way_result_t<t_ALTS_10>,
9487 std::compare_three_way_result_t<t_ALTS_11>,
9488 std::compare_three_way_result_t<t_ALTS_12>,
9489 std::compare_three_way_result_t<t_ALTS_13>,
9490 std::compare_three_way_result_t<t_ALTS_14>>
9491operator<=>(const variant<t_ALTS_01,
9492 t_ALTS_02,
9493 t_ALTS_03,
9494 t_ALTS_04,
9495 t_ALTS_05,
9496 t_ALTS_06,
9497 t_ALTS_07,
9498 t_ALTS_08,
9499 t_ALTS_09,
9500 t_ALTS_10,
9501 t_ALTS_11,
9502 t_ALTS_12,
9503 t_ALTS_13,
9504 t_ALTS_14>& lhs, const variant<t_ALTS_01,
9505 t_ALTS_02,
9506 t_ALTS_03,
9507 t_ALTS_04,
9508 t_ALTS_05,
9509 t_ALTS_06,
9510 t_ALTS_07,
9511 t_ALTS_08,
9512 t_ALTS_09,
9513 t_ALTS_10,
9514 t_ALTS_11,
9515 t_ALTS_12,
9516 t_ALTS_13,
9517 t_ALTS_14>& rhs);
9518#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 14
9519
9520#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
9521template <class t_ALTS_01,
9522 class t_ALTS_02,
9523 class t_ALTS_03,
9524 class t_ALTS_04,
9525 class t_ALTS_05,
9526 class t_ALTS_06,
9527 class t_ALTS_07,
9528 class t_ALTS_08,
9529 class t_ALTS_09,
9530 class t_ALTS_10,
9531 class t_ALTS_11,
9532 class t_ALTS_12,
9533 class t_ALTS_13,
9534 class t_ALTS_14,
9535 class t_ALTS_15>
9536 requires(std::three_way_comparable<t_ALTS_01> && ,
9537 std::three_way_comparable<t_ALTS_02> && ,
9538 std::three_way_comparable<t_ALTS_03> && ,
9539 std::three_way_comparable<t_ALTS_04> && ,
9540 std::three_way_comparable<t_ALTS_05> && ,
9541 std::three_way_comparable<t_ALTS_06> && ,
9542 std::three_way_comparable<t_ALTS_07> && ,
9543 std::three_way_comparable<t_ALTS_08> && ,
9544 std::three_way_comparable<t_ALTS_09> && ,
9545 std::three_way_comparable<t_ALTS_10> && ,
9546 std::three_way_comparable<t_ALTS_11> && ,
9547 std::three_way_comparable<t_ALTS_12> && ,
9548 std::three_way_comparable<t_ALTS_13> && ,
9549 std::three_way_comparable<t_ALTS_14> && ,
9550 std::three_way_comparable<t_ALTS_15> && )
9551constexpr std::common_comparison_category_t<
9552 std::compare_three_way_result_t<t_ALTS_01>,
9553 std::compare_three_way_result_t<t_ALTS_02>,
9554 std::compare_three_way_result_t<t_ALTS_03>,
9555 std::compare_three_way_result_t<t_ALTS_04>,
9556 std::compare_three_way_result_t<t_ALTS_05>,
9557 std::compare_three_way_result_t<t_ALTS_06>,
9558 std::compare_three_way_result_t<t_ALTS_07>,
9559 std::compare_three_way_result_t<t_ALTS_08>,
9560 std::compare_three_way_result_t<t_ALTS_09>,
9561 std::compare_three_way_result_t<t_ALTS_10>,
9562 std::compare_three_way_result_t<t_ALTS_11>,
9563 std::compare_three_way_result_t<t_ALTS_12>,
9564 std::compare_three_way_result_t<t_ALTS_13>,
9565 std::compare_three_way_result_t<t_ALTS_14>,
9566 std::compare_three_way_result_t<t_ALTS_15>>
9567operator<=>(const variant<t_ALTS_01,
9568 t_ALTS_02,
9569 t_ALTS_03,
9570 t_ALTS_04,
9571 t_ALTS_05,
9572 t_ALTS_06,
9573 t_ALTS_07,
9574 t_ALTS_08,
9575 t_ALTS_09,
9576 t_ALTS_10,
9577 t_ALTS_11,
9578 t_ALTS_12,
9579 t_ALTS_13,
9580 t_ALTS_14,
9581 t_ALTS_15>& lhs, const variant<t_ALTS_01,
9582 t_ALTS_02,
9583 t_ALTS_03,
9584 t_ALTS_04,
9585 t_ALTS_05,
9586 t_ALTS_06,
9587 t_ALTS_07,
9588 t_ALTS_08,
9589 t_ALTS_09,
9590 t_ALTS_10,
9591 t_ALTS_11,
9592 t_ALTS_12,
9593 t_ALTS_13,
9594 t_ALTS_14,
9595 t_ALTS_15>& rhs);
9596#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 15
9597
9598#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
9599template <class t_ALTS_01,
9600 class t_ALTS_02,
9601 class t_ALTS_03,
9602 class t_ALTS_04,
9603 class t_ALTS_05,
9604 class t_ALTS_06,
9605 class t_ALTS_07,
9606 class t_ALTS_08,
9607 class t_ALTS_09,
9608 class t_ALTS_10,
9609 class t_ALTS_11,
9610 class t_ALTS_12,
9611 class t_ALTS_13,
9612 class t_ALTS_14,
9613 class t_ALTS_15,
9614 class t_ALTS_16>
9615 requires(std::three_way_comparable<t_ALTS_01> && ,
9616 std::three_way_comparable<t_ALTS_02> && ,
9617 std::three_way_comparable<t_ALTS_03> && ,
9618 std::three_way_comparable<t_ALTS_04> && ,
9619 std::three_way_comparable<t_ALTS_05> && ,
9620 std::three_way_comparable<t_ALTS_06> && ,
9621 std::three_way_comparable<t_ALTS_07> && ,
9622 std::three_way_comparable<t_ALTS_08> && ,
9623 std::three_way_comparable<t_ALTS_09> && ,
9624 std::three_way_comparable<t_ALTS_10> && ,
9625 std::three_way_comparable<t_ALTS_11> && ,
9626 std::three_way_comparable<t_ALTS_12> && ,
9627 std::three_way_comparable<t_ALTS_13> && ,
9628 std::three_way_comparable<t_ALTS_14> && ,
9629 std::three_way_comparable<t_ALTS_15> && ,
9630 std::three_way_comparable<t_ALTS_16> && )
9631constexpr std::common_comparison_category_t<
9632 std::compare_three_way_result_t<t_ALTS_01>,
9633 std::compare_three_way_result_t<t_ALTS_02>,
9634 std::compare_three_way_result_t<t_ALTS_03>,
9635 std::compare_three_way_result_t<t_ALTS_04>,
9636 std::compare_three_way_result_t<t_ALTS_05>,
9637 std::compare_three_way_result_t<t_ALTS_06>,
9638 std::compare_three_way_result_t<t_ALTS_07>,
9639 std::compare_three_way_result_t<t_ALTS_08>,
9640 std::compare_three_way_result_t<t_ALTS_09>,
9641 std::compare_three_way_result_t<t_ALTS_10>,
9642 std::compare_three_way_result_t<t_ALTS_11>,
9643 std::compare_three_way_result_t<t_ALTS_12>,
9644 std::compare_three_way_result_t<t_ALTS_13>,
9645 std::compare_three_way_result_t<t_ALTS_14>,
9646 std::compare_three_way_result_t<t_ALTS_15>,
9647 std::compare_three_way_result_t<t_ALTS_16>>
9648operator<=>(const variant<t_ALTS_01,
9649 t_ALTS_02,
9650 t_ALTS_03,
9651 t_ALTS_04,
9652 t_ALTS_05,
9653 t_ALTS_06,
9654 t_ALTS_07,
9655 t_ALTS_08,
9656 t_ALTS_09,
9657 t_ALTS_10,
9658 t_ALTS_11,
9659 t_ALTS_12,
9660 t_ALTS_13,
9661 t_ALTS_14,
9662 t_ALTS_15,
9663 t_ALTS_16>& lhs, const variant<t_ALTS_01,
9664 t_ALTS_02,
9665 t_ALTS_03,
9666 t_ALTS_04,
9667 t_ALTS_05,
9668 t_ALTS_06,
9669 t_ALTS_07,
9670 t_ALTS_08,
9671 t_ALTS_09,
9672 t_ALTS_10,
9673 t_ALTS_11,
9674 t_ALTS_12,
9675 t_ALTS_13,
9676 t_ALTS_14,
9677 t_ALTS_15,
9678 t_ALTS_16>& rhs);
9679#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 16
9680
9681#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
9682template <class t_ALTS_01,
9683 class t_ALTS_02,
9684 class t_ALTS_03,
9685 class t_ALTS_04,
9686 class t_ALTS_05,
9687 class t_ALTS_06,
9688 class t_ALTS_07,
9689 class t_ALTS_08,
9690 class t_ALTS_09,
9691 class t_ALTS_10,
9692 class t_ALTS_11,
9693 class t_ALTS_12,
9694 class t_ALTS_13,
9695 class t_ALTS_14,
9696 class t_ALTS_15,
9697 class t_ALTS_16,
9698 class t_ALTS_17>
9699 requires(std::three_way_comparable<t_ALTS_01> && ,
9700 std::three_way_comparable<t_ALTS_02> && ,
9701 std::three_way_comparable<t_ALTS_03> && ,
9702 std::three_way_comparable<t_ALTS_04> && ,
9703 std::three_way_comparable<t_ALTS_05> && ,
9704 std::three_way_comparable<t_ALTS_06> && ,
9705 std::three_way_comparable<t_ALTS_07> && ,
9706 std::three_way_comparable<t_ALTS_08> && ,
9707 std::three_way_comparable<t_ALTS_09> && ,
9708 std::three_way_comparable<t_ALTS_10> && ,
9709 std::three_way_comparable<t_ALTS_11> && ,
9710 std::three_way_comparable<t_ALTS_12> && ,
9711 std::three_way_comparable<t_ALTS_13> && ,
9712 std::three_way_comparable<t_ALTS_14> && ,
9713 std::three_way_comparable<t_ALTS_15> && ,
9714 std::three_way_comparable<t_ALTS_16> && ,
9715 std::three_way_comparable<t_ALTS_17> && )
9716constexpr std::common_comparison_category_t<
9717 std::compare_three_way_result_t<t_ALTS_01>,
9718 std::compare_three_way_result_t<t_ALTS_02>,
9719 std::compare_three_way_result_t<t_ALTS_03>,
9720 std::compare_three_way_result_t<t_ALTS_04>,
9721 std::compare_three_way_result_t<t_ALTS_05>,
9722 std::compare_three_way_result_t<t_ALTS_06>,
9723 std::compare_three_way_result_t<t_ALTS_07>,
9724 std::compare_three_way_result_t<t_ALTS_08>,
9725 std::compare_three_way_result_t<t_ALTS_09>,
9726 std::compare_three_way_result_t<t_ALTS_10>,
9727 std::compare_three_way_result_t<t_ALTS_11>,
9728 std::compare_three_way_result_t<t_ALTS_12>,
9729 std::compare_three_way_result_t<t_ALTS_13>,
9730 std::compare_three_way_result_t<t_ALTS_14>,
9731 std::compare_three_way_result_t<t_ALTS_15>,
9732 std::compare_three_way_result_t<t_ALTS_16>,
9733 std::compare_three_way_result_t<t_ALTS_17>>
9734operator<=>(const variant<t_ALTS_01,
9735 t_ALTS_02,
9736 t_ALTS_03,
9737 t_ALTS_04,
9738 t_ALTS_05,
9739 t_ALTS_06,
9740 t_ALTS_07,
9741 t_ALTS_08,
9742 t_ALTS_09,
9743 t_ALTS_10,
9744 t_ALTS_11,
9745 t_ALTS_12,
9746 t_ALTS_13,
9747 t_ALTS_14,
9748 t_ALTS_15,
9749 t_ALTS_16,
9750 t_ALTS_17>& lhs, const variant<t_ALTS_01,
9751 t_ALTS_02,
9752 t_ALTS_03,
9753 t_ALTS_04,
9754 t_ALTS_05,
9755 t_ALTS_06,
9756 t_ALTS_07,
9757 t_ALTS_08,
9758 t_ALTS_09,
9759 t_ALTS_10,
9760 t_ALTS_11,
9761 t_ALTS_12,
9762 t_ALTS_13,
9763 t_ALTS_14,
9764 t_ALTS_15,
9765 t_ALTS_16,
9766 t_ALTS_17>& rhs);
9767#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 17
9768
9769#if BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
9770template <class t_ALTS_01,
9771 class t_ALTS_02,
9772 class t_ALTS_03,
9773 class t_ALTS_04,
9774 class t_ALTS_05,
9775 class t_ALTS_06,
9776 class t_ALTS_07,
9777 class t_ALTS_08,
9778 class t_ALTS_09,
9779 class t_ALTS_10,
9780 class t_ALTS_11,
9781 class t_ALTS_12,
9782 class t_ALTS_13,
9783 class t_ALTS_14,
9784 class t_ALTS_15,
9785 class t_ALTS_16,
9786 class t_ALTS_17,
9787 class t_ALTS_18>
9788 requires(std::three_way_comparable<t_ALTS_01> && ,
9789 std::three_way_comparable<t_ALTS_02> && ,
9790 std::three_way_comparable<t_ALTS_03> && ,
9791 std::three_way_comparable<t_ALTS_04> && ,
9792 std::three_way_comparable<t_ALTS_05> && ,
9793 std::three_way_comparable<t_ALTS_06> && ,
9794 std::three_way_comparable<t_ALTS_07> && ,
9795 std::three_way_comparable<t_ALTS_08> && ,
9796 std::three_way_comparable<t_ALTS_09> && ,
9797 std::three_way_comparable<t_ALTS_10> && ,
9798 std::three_way_comparable<t_ALTS_11> && ,
9799 std::three_way_comparable<t_ALTS_12> && ,
9800 std::three_way_comparable<t_ALTS_13> && ,
9801 std::three_way_comparable<t_ALTS_14> && ,
9802 std::three_way_comparable<t_ALTS_15> && ,
9803 std::three_way_comparable<t_ALTS_16> && ,
9804 std::three_way_comparable<t_ALTS_17> && ,
9805 std::three_way_comparable<t_ALTS_18> && )
9806constexpr std::common_comparison_category_t<
9807 std::compare_three_way_result_t<t_ALTS_01>,
9808 std::compare_three_way_result_t<t_ALTS_02>,
9809 std::compare_three_way_result_t<t_ALTS_03>,
9810 std::compare_three_way_result_t<t_ALTS_04>,
9811 std::compare_three_way_result_t<t_ALTS_05>,
9812 std::compare_three_way_result_t<t_ALTS_06>,
9813 std::compare_three_way_result_t<t_ALTS_07>,
9814 std::compare_three_way_result_t<t_ALTS_08>,
9815 std::compare_three_way_result_t<t_ALTS_09>,
9816 std::compare_three_way_result_t<t_ALTS_10>,
9817 std::compare_three_way_result_t<t_ALTS_11>,
9818 std::compare_three_way_result_t<t_ALTS_12>,
9819 std::compare_three_way_result_t<t_ALTS_13>,
9820 std::compare_three_way_result_t<t_ALTS_14>,
9821 std::compare_three_way_result_t<t_ALTS_15>,
9822 std::compare_three_way_result_t<t_ALTS_16>,
9823 std::compare_three_way_result_t<t_ALTS_17>,
9824 std::compare_three_way_result_t<t_ALTS_18>>
9825operator<=>(const variant<t_ALTS_01,
9826 t_ALTS_02,
9827 t_ALTS_03,
9828 t_ALTS_04,
9829 t_ALTS_05,
9830 t_ALTS_06,
9831 t_ALTS_07,
9832 t_ALTS_08,
9833 t_ALTS_09,
9834 t_ALTS_10,
9835 t_ALTS_11,
9836 t_ALTS_12,
9837 t_ALTS_13,
9838 t_ALTS_14,
9839 t_ALTS_15,
9840 t_ALTS_16,
9841 t_ALTS_17,
9842 t_ALTS_18>& lhs, const variant<t_ALTS_01,
9843 t_ALTS_02,
9844 t_ALTS_03,
9845 t_ALTS_04,
9846 t_ALTS_05,
9847 t_ALTS_06,
9848 t_ALTS_07,
9849 t_ALTS_08,
9850 t_ALTS_09,
9851 t_ALTS_10,
9852 t_ALTS_11,
9853 t_ALTS_12,
9854 t_ALTS_13,
9855 t_ALTS_14,
9856 t_ALTS_15,
9857 t_ALTS_16,
9858 t_ALTS_17,
9859 t_ALTS_18>& rhs);
9860#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_E >= 18
9861
9862#endif
9863#else
9864// The generated code below is a workaround for the absence of perfect
9865// forwarding in some compilers.
9866template <class t_HEAD, class... t_TAIL>
9867bool operator==(const variant<t_HEAD, t_TAIL...>& lhs,
9868 const variant<t_HEAD, t_TAIL...>& rhs);
9869
9870template <class t_HEAD, class... t_TAIL>
9871bool operator!=(const variant<t_HEAD, t_TAIL...>& lhs,
9872 const variant<t_HEAD, t_TAIL...>& rhs);
9873
9874template <class t_HEAD, class... t_TAIL>
9875bool operator<(const variant<t_HEAD, t_TAIL...>& lhs,
9876 const variant<t_HEAD, t_TAIL...>& rhs);
9877
9878template <class t_HEAD, class... t_TAIL>
9879bool operator>(const variant<t_HEAD, t_TAIL...>& lhs,
9880 const variant<t_HEAD, t_TAIL...>& rhs);
9881
9882template <class t_HEAD, class... t_TAIL>
9883bool operator<=(const variant<t_HEAD, t_TAIL...>& lhs,
9884 const variant<t_HEAD, t_TAIL...>& rhs);
9885
9886template <class t_HEAD, class... t_TAIL>
9887bool operator>=(const variant<t_HEAD, t_TAIL...>& lhs,
9888 const variant<t_HEAD, t_TAIL...>& rhs);
9889
9890#if defined BSLS_COMPILERFEATURES_SUPPORT_THREE_WAY_COMPARISON && \
9891 defined BSLS_LIBRARYFEATURES_HAS_CPP20_CONCEPTS
9892
9893template <class... t_ALTS>
9894 requires(std::three_way_comparable<t_ALTS> && ...)
9895constexpr std::common_comparison_category_t<
9896 std::compare_three_way_result_t<t_ALTS>...>
9897operator<=>(const variant<t_ALTS...>& lhs, const variant<t_ALTS...>& rhs);
9898#endif
9899// }}} END GENERATED CODE
9900#endif
9901
9902} // close namespace bsl
9903
9904
9905namespace bslstl {
9906// COMPONENT-PRIVATE TAG TYPES
9907
9908/// This component-private tag type is used as a parameter type for
9909/// constructors of `Variant_Base` that accept a `std::variant`.
9910struct Variant_ConstructFromStdTag {};
9911
9912#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
9913// {{{ BEGIN GENERATED CODE
9914// Command line: sim_cpp11_features.pl bslstl_variant.h
9915#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
9916#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
9917#endif
9918#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_F
9919#define BSLSTL_VARIANT_VARIADIC_LIMIT_F BSLSTL_VARIANT_VARIADIC_LIMIT
9920#endif
9921template <class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE
9922#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
9923 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
9924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
9925
9926#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
9927 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
9928#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
9929
9930#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
9931 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
9932#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
9933
9934#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
9935 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
9936#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
9937
9938#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
9939 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
9940#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
9941
9942#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
9943 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
9944#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
9945
9946#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
9947 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
9948#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
9949
9950#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
9951 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
9952#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
9953
9954#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
9955 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
9956#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
9957
9958#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
9959 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
9960#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
9961
9962#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
9963 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
9964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
9965
9966#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
9967 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
9968#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
9969
9970#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
9971 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
9972#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
9973
9974#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
9975 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
9976#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
9977
9978#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
9979 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
9980#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
9981
9982#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
9983 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
9984#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
9985
9986#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
9987 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
9988#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
9989
9990#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
9991 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
9992#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
9993 , class = BSLS_COMPILERFEATURES_NILT>
9994struct Variant_UsesBslmaAllocatorAny;
9995
9996
9997template <>
9998struct Variant_UsesBslmaAllocatorAny<BSLSTL_VARIANT_NOT_A_TYPE>
10000};
10001
10002#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
10003template <class t_HEAD>
10004struct Variant_UsesBslmaAllocatorAny<t_HEAD>
10006 bool,
10007 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10008 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10009 >::value> {
10010};
10011#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
10012
10013#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
10014template <class t_HEAD, class t_TAIL_01>
10015struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01>
10017 bool,
10018 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10019 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10020 t_TAIL_01>::value> {
10021};
10022#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
10023
10024#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
10025template <class t_HEAD, class t_TAIL_01,
10026 class t_TAIL_02>
10027struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10028 t_TAIL_02>
10030 bool,
10031 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10032 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10033 t_TAIL_01,
10034 t_TAIL_02>::value> {
10035};
10036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
10037
10038#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
10039template <class t_HEAD, class t_TAIL_01,
10040 class t_TAIL_02,
10041 class t_TAIL_03>
10042struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10043 t_TAIL_02,
10044 t_TAIL_03>
10046 bool,
10047 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10048 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10049 t_TAIL_01,
10050 t_TAIL_02,
10051 t_TAIL_03>::value> {
10052};
10053#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
10054
10055#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
10056template <class t_HEAD, class t_TAIL_01,
10057 class t_TAIL_02,
10058 class t_TAIL_03,
10059 class t_TAIL_04>
10060struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10061 t_TAIL_02,
10062 t_TAIL_03,
10063 t_TAIL_04>
10065 bool,
10066 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10067 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10068 t_TAIL_01,
10069 t_TAIL_02,
10070 t_TAIL_03,
10071 t_TAIL_04>::value> {
10072};
10073#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
10074
10075#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
10076template <class t_HEAD, class t_TAIL_01,
10077 class t_TAIL_02,
10078 class t_TAIL_03,
10079 class t_TAIL_04,
10080 class t_TAIL_05>
10081struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10082 t_TAIL_02,
10083 t_TAIL_03,
10084 t_TAIL_04,
10085 t_TAIL_05>
10087 bool,
10088 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10089 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10090 t_TAIL_01,
10091 t_TAIL_02,
10092 t_TAIL_03,
10093 t_TAIL_04,
10094 t_TAIL_05>::value> {
10095};
10096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
10097
10098#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
10099template <class t_HEAD, class t_TAIL_01,
10100 class t_TAIL_02,
10101 class t_TAIL_03,
10102 class t_TAIL_04,
10103 class t_TAIL_05,
10104 class t_TAIL_06>
10105struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10106 t_TAIL_02,
10107 t_TAIL_03,
10108 t_TAIL_04,
10109 t_TAIL_05,
10110 t_TAIL_06>
10112 bool,
10113 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10114 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10115 t_TAIL_01,
10116 t_TAIL_02,
10117 t_TAIL_03,
10118 t_TAIL_04,
10119 t_TAIL_05,
10120 t_TAIL_06>::value> {
10121};
10122#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
10123
10124#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
10125template <class t_HEAD, class t_TAIL_01,
10126 class t_TAIL_02,
10127 class t_TAIL_03,
10128 class t_TAIL_04,
10129 class t_TAIL_05,
10130 class t_TAIL_06,
10131 class t_TAIL_07>
10132struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10133 t_TAIL_02,
10134 t_TAIL_03,
10135 t_TAIL_04,
10136 t_TAIL_05,
10137 t_TAIL_06,
10138 t_TAIL_07>
10140 bool,
10141 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10142 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10143 t_TAIL_01,
10144 t_TAIL_02,
10145 t_TAIL_03,
10146 t_TAIL_04,
10147 t_TAIL_05,
10148 t_TAIL_06,
10149 t_TAIL_07>::value> {
10150};
10151#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
10152
10153#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
10154template <class t_HEAD, class t_TAIL_01,
10155 class t_TAIL_02,
10156 class t_TAIL_03,
10157 class t_TAIL_04,
10158 class t_TAIL_05,
10159 class t_TAIL_06,
10160 class t_TAIL_07,
10161 class t_TAIL_08>
10162struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10163 t_TAIL_02,
10164 t_TAIL_03,
10165 t_TAIL_04,
10166 t_TAIL_05,
10167 t_TAIL_06,
10168 t_TAIL_07,
10169 t_TAIL_08>
10171 bool,
10172 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10173 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10174 t_TAIL_01,
10175 t_TAIL_02,
10176 t_TAIL_03,
10177 t_TAIL_04,
10178 t_TAIL_05,
10179 t_TAIL_06,
10180 t_TAIL_07,
10181 t_TAIL_08>::value> {
10182};
10183#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
10184
10185#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
10186template <class t_HEAD, class t_TAIL_01,
10187 class t_TAIL_02,
10188 class t_TAIL_03,
10189 class t_TAIL_04,
10190 class t_TAIL_05,
10191 class t_TAIL_06,
10192 class t_TAIL_07,
10193 class t_TAIL_08,
10194 class t_TAIL_09>
10195struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10196 t_TAIL_02,
10197 t_TAIL_03,
10198 t_TAIL_04,
10199 t_TAIL_05,
10200 t_TAIL_06,
10201 t_TAIL_07,
10202 t_TAIL_08,
10203 t_TAIL_09>
10205 bool,
10206 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10207 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10208 t_TAIL_01,
10209 t_TAIL_02,
10210 t_TAIL_03,
10211 t_TAIL_04,
10212 t_TAIL_05,
10213 t_TAIL_06,
10214 t_TAIL_07,
10215 t_TAIL_08,
10216 t_TAIL_09>::value> {
10217};
10218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
10219
10220#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
10221template <class t_HEAD, class t_TAIL_01,
10222 class t_TAIL_02,
10223 class t_TAIL_03,
10224 class t_TAIL_04,
10225 class t_TAIL_05,
10226 class t_TAIL_06,
10227 class t_TAIL_07,
10228 class t_TAIL_08,
10229 class t_TAIL_09,
10230 class t_TAIL_10>
10231struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10232 t_TAIL_02,
10233 t_TAIL_03,
10234 t_TAIL_04,
10235 t_TAIL_05,
10236 t_TAIL_06,
10237 t_TAIL_07,
10238 t_TAIL_08,
10239 t_TAIL_09,
10240 t_TAIL_10>
10242 bool,
10243 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10244 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10245 t_TAIL_01,
10246 t_TAIL_02,
10247 t_TAIL_03,
10248 t_TAIL_04,
10249 t_TAIL_05,
10250 t_TAIL_06,
10251 t_TAIL_07,
10252 t_TAIL_08,
10253 t_TAIL_09,
10254 t_TAIL_10>::value> {
10255};
10256#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
10257
10258#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
10259template <class t_HEAD, class t_TAIL_01,
10260 class t_TAIL_02,
10261 class t_TAIL_03,
10262 class t_TAIL_04,
10263 class t_TAIL_05,
10264 class t_TAIL_06,
10265 class t_TAIL_07,
10266 class t_TAIL_08,
10267 class t_TAIL_09,
10268 class t_TAIL_10,
10269 class t_TAIL_11>
10270struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10271 t_TAIL_02,
10272 t_TAIL_03,
10273 t_TAIL_04,
10274 t_TAIL_05,
10275 t_TAIL_06,
10276 t_TAIL_07,
10277 t_TAIL_08,
10278 t_TAIL_09,
10279 t_TAIL_10,
10280 t_TAIL_11>
10282 bool,
10283 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10284 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10285 t_TAIL_01,
10286 t_TAIL_02,
10287 t_TAIL_03,
10288 t_TAIL_04,
10289 t_TAIL_05,
10290 t_TAIL_06,
10291 t_TAIL_07,
10292 t_TAIL_08,
10293 t_TAIL_09,
10294 t_TAIL_10,
10295 t_TAIL_11>::value> {
10296};
10297#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
10298
10299#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
10300template <class t_HEAD, class t_TAIL_01,
10301 class t_TAIL_02,
10302 class t_TAIL_03,
10303 class t_TAIL_04,
10304 class t_TAIL_05,
10305 class t_TAIL_06,
10306 class t_TAIL_07,
10307 class t_TAIL_08,
10308 class t_TAIL_09,
10309 class t_TAIL_10,
10310 class t_TAIL_11,
10311 class t_TAIL_12>
10312struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10313 t_TAIL_02,
10314 t_TAIL_03,
10315 t_TAIL_04,
10316 t_TAIL_05,
10317 t_TAIL_06,
10318 t_TAIL_07,
10319 t_TAIL_08,
10320 t_TAIL_09,
10321 t_TAIL_10,
10322 t_TAIL_11,
10323 t_TAIL_12>
10325 bool,
10326 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10327 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10328 t_TAIL_01,
10329 t_TAIL_02,
10330 t_TAIL_03,
10331 t_TAIL_04,
10332 t_TAIL_05,
10333 t_TAIL_06,
10334 t_TAIL_07,
10335 t_TAIL_08,
10336 t_TAIL_09,
10337 t_TAIL_10,
10338 t_TAIL_11,
10339 t_TAIL_12>::value> {
10340};
10341#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
10342
10343#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
10344template <class t_HEAD, class t_TAIL_01,
10345 class t_TAIL_02,
10346 class t_TAIL_03,
10347 class t_TAIL_04,
10348 class t_TAIL_05,
10349 class t_TAIL_06,
10350 class t_TAIL_07,
10351 class t_TAIL_08,
10352 class t_TAIL_09,
10353 class t_TAIL_10,
10354 class t_TAIL_11,
10355 class t_TAIL_12,
10356 class t_TAIL_13>
10357struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10358 t_TAIL_02,
10359 t_TAIL_03,
10360 t_TAIL_04,
10361 t_TAIL_05,
10362 t_TAIL_06,
10363 t_TAIL_07,
10364 t_TAIL_08,
10365 t_TAIL_09,
10366 t_TAIL_10,
10367 t_TAIL_11,
10368 t_TAIL_12,
10369 t_TAIL_13>
10371 bool,
10372 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10373 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10374 t_TAIL_01,
10375 t_TAIL_02,
10376 t_TAIL_03,
10377 t_TAIL_04,
10378 t_TAIL_05,
10379 t_TAIL_06,
10380 t_TAIL_07,
10381 t_TAIL_08,
10382 t_TAIL_09,
10383 t_TAIL_10,
10384 t_TAIL_11,
10385 t_TAIL_12,
10386 t_TAIL_13>::value> {
10387};
10388#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
10389
10390#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
10391template <class t_HEAD, class t_TAIL_01,
10392 class t_TAIL_02,
10393 class t_TAIL_03,
10394 class t_TAIL_04,
10395 class t_TAIL_05,
10396 class t_TAIL_06,
10397 class t_TAIL_07,
10398 class t_TAIL_08,
10399 class t_TAIL_09,
10400 class t_TAIL_10,
10401 class t_TAIL_11,
10402 class t_TAIL_12,
10403 class t_TAIL_13,
10404 class t_TAIL_14>
10405struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10406 t_TAIL_02,
10407 t_TAIL_03,
10408 t_TAIL_04,
10409 t_TAIL_05,
10410 t_TAIL_06,
10411 t_TAIL_07,
10412 t_TAIL_08,
10413 t_TAIL_09,
10414 t_TAIL_10,
10415 t_TAIL_11,
10416 t_TAIL_12,
10417 t_TAIL_13,
10418 t_TAIL_14>
10420 bool,
10421 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10422 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10423 t_TAIL_01,
10424 t_TAIL_02,
10425 t_TAIL_03,
10426 t_TAIL_04,
10427 t_TAIL_05,
10428 t_TAIL_06,
10429 t_TAIL_07,
10430 t_TAIL_08,
10431 t_TAIL_09,
10432 t_TAIL_10,
10433 t_TAIL_11,
10434 t_TAIL_12,
10435 t_TAIL_13,
10436 t_TAIL_14>::value> {
10437};
10438#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
10439
10440#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
10441template <class t_HEAD, class t_TAIL_01,
10442 class t_TAIL_02,
10443 class t_TAIL_03,
10444 class t_TAIL_04,
10445 class t_TAIL_05,
10446 class t_TAIL_06,
10447 class t_TAIL_07,
10448 class t_TAIL_08,
10449 class t_TAIL_09,
10450 class t_TAIL_10,
10451 class t_TAIL_11,
10452 class t_TAIL_12,
10453 class t_TAIL_13,
10454 class t_TAIL_14,
10455 class t_TAIL_15>
10456struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10457 t_TAIL_02,
10458 t_TAIL_03,
10459 t_TAIL_04,
10460 t_TAIL_05,
10461 t_TAIL_06,
10462 t_TAIL_07,
10463 t_TAIL_08,
10464 t_TAIL_09,
10465 t_TAIL_10,
10466 t_TAIL_11,
10467 t_TAIL_12,
10468 t_TAIL_13,
10469 t_TAIL_14,
10470 t_TAIL_15>
10472 bool,
10473 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10474 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10475 t_TAIL_01,
10476 t_TAIL_02,
10477 t_TAIL_03,
10478 t_TAIL_04,
10479 t_TAIL_05,
10480 t_TAIL_06,
10481 t_TAIL_07,
10482 t_TAIL_08,
10483 t_TAIL_09,
10484 t_TAIL_10,
10485 t_TAIL_11,
10486 t_TAIL_12,
10487 t_TAIL_13,
10488 t_TAIL_14,
10489 t_TAIL_15>::value> {
10490};
10491#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
10492
10493#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
10494template <class t_HEAD, class t_TAIL_01,
10495 class t_TAIL_02,
10496 class t_TAIL_03,
10497 class t_TAIL_04,
10498 class t_TAIL_05,
10499 class t_TAIL_06,
10500 class t_TAIL_07,
10501 class t_TAIL_08,
10502 class t_TAIL_09,
10503 class t_TAIL_10,
10504 class t_TAIL_11,
10505 class t_TAIL_12,
10506 class t_TAIL_13,
10507 class t_TAIL_14,
10508 class t_TAIL_15,
10509 class t_TAIL_16>
10510struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10511 t_TAIL_02,
10512 t_TAIL_03,
10513 t_TAIL_04,
10514 t_TAIL_05,
10515 t_TAIL_06,
10516 t_TAIL_07,
10517 t_TAIL_08,
10518 t_TAIL_09,
10519 t_TAIL_10,
10520 t_TAIL_11,
10521 t_TAIL_12,
10522 t_TAIL_13,
10523 t_TAIL_14,
10524 t_TAIL_15,
10525 t_TAIL_16>
10527 bool,
10528 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10529 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10530 t_TAIL_01,
10531 t_TAIL_02,
10532 t_TAIL_03,
10533 t_TAIL_04,
10534 t_TAIL_05,
10535 t_TAIL_06,
10536 t_TAIL_07,
10537 t_TAIL_08,
10538 t_TAIL_09,
10539 t_TAIL_10,
10540 t_TAIL_11,
10541 t_TAIL_12,
10542 t_TAIL_13,
10543 t_TAIL_14,
10544 t_TAIL_15,
10545 t_TAIL_16>::value> {
10546};
10547#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
10548
10549#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
10550template <class t_HEAD, class t_TAIL_01,
10551 class t_TAIL_02,
10552 class t_TAIL_03,
10553 class t_TAIL_04,
10554 class t_TAIL_05,
10555 class t_TAIL_06,
10556 class t_TAIL_07,
10557 class t_TAIL_08,
10558 class t_TAIL_09,
10559 class t_TAIL_10,
10560 class t_TAIL_11,
10561 class t_TAIL_12,
10562 class t_TAIL_13,
10563 class t_TAIL_14,
10564 class t_TAIL_15,
10565 class t_TAIL_16,
10566 class t_TAIL_17>
10567struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10568 t_TAIL_02,
10569 t_TAIL_03,
10570 t_TAIL_04,
10571 t_TAIL_05,
10572 t_TAIL_06,
10573 t_TAIL_07,
10574 t_TAIL_08,
10575 t_TAIL_09,
10576 t_TAIL_10,
10577 t_TAIL_11,
10578 t_TAIL_12,
10579 t_TAIL_13,
10580 t_TAIL_14,
10581 t_TAIL_15,
10582 t_TAIL_16,
10583 t_TAIL_17>
10585 bool,
10586 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10587 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10588 t_TAIL_01,
10589 t_TAIL_02,
10590 t_TAIL_03,
10591 t_TAIL_04,
10592 t_TAIL_05,
10593 t_TAIL_06,
10594 t_TAIL_07,
10595 t_TAIL_08,
10596 t_TAIL_09,
10597 t_TAIL_10,
10598 t_TAIL_11,
10599 t_TAIL_12,
10600 t_TAIL_13,
10601 t_TAIL_14,
10602 t_TAIL_15,
10603 t_TAIL_16,
10604 t_TAIL_17>::value> {
10605};
10606#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
10607
10608#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
10609template <class t_HEAD, class t_TAIL_01,
10610 class t_TAIL_02,
10611 class t_TAIL_03,
10612 class t_TAIL_04,
10613 class t_TAIL_05,
10614 class t_TAIL_06,
10615 class t_TAIL_07,
10616 class t_TAIL_08,
10617 class t_TAIL_09,
10618 class t_TAIL_10,
10619 class t_TAIL_11,
10620 class t_TAIL_12,
10621 class t_TAIL_13,
10622 class t_TAIL_14,
10623 class t_TAIL_15,
10624 class t_TAIL_16,
10625 class t_TAIL_17,
10626 class t_TAIL_18>
10627struct Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
10628 t_TAIL_02,
10629 t_TAIL_03,
10630 t_TAIL_04,
10631 t_TAIL_05,
10632 t_TAIL_06,
10633 t_TAIL_07,
10634 t_TAIL_08,
10635 t_TAIL_09,
10636 t_TAIL_10,
10637 t_TAIL_11,
10638 t_TAIL_12,
10639 t_TAIL_13,
10640 t_TAIL_14,
10641 t_TAIL_15,
10642 t_TAIL_16,
10643 t_TAIL_17,
10644 t_TAIL_18>
10646 bool,
10647 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
10648 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
10649 t_TAIL_01,
10650 t_TAIL_02,
10651 t_TAIL_03,
10652 t_TAIL_04,
10653 t_TAIL_05,
10654 t_TAIL_06,
10655 t_TAIL_07,
10656 t_TAIL_08,
10657 t_TAIL_09,
10658 t_TAIL_10,
10659 t_TAIL_11,
10660 t_TAIL_12,
10661 t_TAIL_13,
10662 t_TAIL_14,
10663 t_TAIL_15,
10664 t_TAIL_16,
10665 t_TAIL_17,
10666 t_TAIL_18>::value> {
10667};
10668#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
10669
10670
10671template <class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE
10672#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
10673 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
10674#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
10675
10676#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
10677 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
10678#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
10679
10680#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
10681 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
10682#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
10683
10684#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
10685 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
10686#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
10687
10688#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
10689 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
10690#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
10691
10692#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
10693 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
10694#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
10695
10696#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
10697 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
10698#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
10699
10700#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
10701 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
10702#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
10703
10704#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
10705 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
10706#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
10707
10708#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
10709 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
10710#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
10711
10712#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
10713 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
10714#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
10715
10716#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
10717 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
10718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
10719
10720#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
10721 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
10722#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
10723
10724#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
10725 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
10726#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
10727
10728#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
10729 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
10730#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
10731
10732#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
10733 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
10734#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
10735
10736#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
10737 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
10738#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
10739
10740#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
10741 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
10742#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
10743 , class = BSLS_COMPILERFEATURES_NILT>
10744struct Variant_IsBitwiseMoveableAll;
10745
10746
10747template <>
10748struct Variant_IsBitwiseMoveableAll<BSLSTL_VARIANT_NOT_A_TYPE>
10750};
10751
10752#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
10753template <class t_HEAD>
10754struct Variant_IsBitwiseMoveableAll<t_HEAD>
10756 bool,
10757 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10758 Variant_IsBitwiseMoveableAll<>::value> {
10759};
10760#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
10761
10762#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
10763template <class t_HEAD, class t_TAIL_01>
10764struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01>
10766 bool,
10767 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10768 Variant_IsBitwiseMoveableAll<t_TAIL_01>::value> {
10769};
10770#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
10771
10772#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
10773template <class t_HEAD, class t_TAIL_01,
10774 class t_TAIL_02>
10775struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10776 t_TAIL_02>
10778 bool,
10779 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10780 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10781 t_TAIL_02>::value> {
10782};
10783#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
10784
10785#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
10786template <class t_HEAD, class t_TAIL_01,
10787 class t_TAIL_02,
10788 class t_TAIL_03>
10789struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10790 t_TAIL_02,
10791 t_TAIL_03>
10793 bool,
10794 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10795 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10796 t_TAIL_02,
10797 t_TAIL_03>::value> {
10798};
10799#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
10800
10801#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
10802template <class t_HEAD, class t_TAIL_01,
10803 class t_TAIL_02,
10804 class t_TAIL_03,
10805 class t_TAIL_04>
10806struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10807 t_TAIL_02,
10808 t_TAIL_03,
10809 t_TAIL_04>
10811 bool,
10812 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10813 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10814 t_TAIL_02,
10815 t_TAIL_03,
10816 t_TAIL_04>::value> {
10817};
10818#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
10819
10820#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
10821template <class t_HEAD, class t_TAIL_01,
10822 class t_TAIL_02,
10823 class t_TAIL_03,
10824 class t_TAIL_04,
10825 class t_TAIL_05>
10826struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10827 t_TAIL_02,
10828 t_TAIL_03,
10829 t_TAIL_04,
10830 t_TAIL_05>
10832 bool,
10833 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10834 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10835 t_TAIL_02,
10836 t_TAIL_03,
10837 t_TAIL_04,
10838 t_TAIL_05>::value> {
10839};
10840#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
10841
10842#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
10843template <class t_HEAD, class t_TAIL_01,
10844 class t_TAIL_02,
10845 class t_TAIL_03,
10846 class t_TAIL_04,
10847 class t_TAIL_05,
10848 class t_TAIL_06>
10849struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10850 t_TAIL_02,
10851 t_TAIL_03,
10852 t_TAIL_04,
10853 t_TAIL_05,
10854 t_TAIL_06>
10856 bool,
10857 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10858 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10859 t_TAIL_02,
10860 t_TAIL_03,
10861 t_TAIL_04,
10862 t_TAIL_05,
10863 t_TAIL_06>::value> {
10864};
10865#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
10866
10867#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
10868template <class t_HEAD, class t_TAIL_01,
10869 class t_TAIL_02,
10870 class t_TAIL_03,
10871 class t_TAIL_04,
10872 class t_TAIL_05,
10873 class t_TAIL_06,
10874 class t_TAIL_07>
10875struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10876 t_TAIL_02,
10877 t_TAIL_03,
10878 t_TAIL_04,
10879 t_TAIL_05,
10880 t_TAIL_06,
10881 t_TAIL_07>
10883 bool,
10884 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10885 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10886 t_TAIL_02,
10887 t_TAIL_03,
10888 t_TAIL_04,
10889 t_TAIL_05,
10890 t_TAIL_06,
10891 t_TAIL_07>::value> {
10892};
10893#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
10894
10895#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
10896template <class t_HEAD, class t_TAIL_01,
10897 class t_TAIL_02,
10898 class t_TAIL_03,
10899 class t_TAIL_04,
10900 class t_TAIL_05,
10901 class t_TAIL_06,
10902 class t_TAIL_07,
10903 class t_TAIL_08>
10904struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10905 t_TAIL_02,
10906 t_TAIL_03,
10907 t_TAIL_04,
10908 t_TAIL_05,
10909 t_TAIL_06,
10910 t_TAIL_07,
10911 t_TAIL_08>
10913 bool,
10914 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10915 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10916 t_TAIL_02,
10917 t_TAIL_03,
10918 t_TAIL_04,
10919 t_TAIL_05,
10920 t_TAIL_06,
10921 t_TAIL_07,
10922 t_TAIL_08>::value> {
10923};
10924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
10925
10926#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
10927template <class t_HEAD, class t_TAIL_01,
10928 class t_TAIL_02,
10929 class t_TAIL_03,
10930 class t_TAIL_04,
10931 class t_TAIL_05,
10932 class t_TAIL_06,
10933 class t_TAIL_07,
10934 class t_TAIL_08,
10935 class t_TAIL_09>
10936struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10937 t_TAIL_02,
10938 t_TAIL_03,
10939 t_TAIL_04,
10940 t_TAIL_05,
10941 t_TAIL_06,
10942 t_TAIL_07,
10943 t_TAIL_08,
10944 t_TAIL_09>
10946 bool,
10947 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10948 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10949 t_TAIL_02,
10950 t_TAIL_03,
10951 t_TAIL_04,
10952 t_TAIL_05,
10953 t_TAIL_06,
10954 t_TAIL_07,
10955 t_TAIL_08,
10956 t_TAIL_09>::value> {
10957};
10958#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
10959
10960#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
10961template <class t_HEAD, class t_TAIL_01,
10962 class t_TAIL_02,
10963 class t_TAIL_03,
10964 class t_TAIL_04,
10965 class t_TAIL_05,
10966 class t_TAIL_06,
10967 class t_TAIL_07,
10968 class t_TAIL_08,
10969 class t_TAIL_09,
10970 class t_TAIL_10>
10971struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
10972 t_TAIL_02,
10973 t_TAIL_03,
10974 t_TAIL_04,
10975 t_TAIL_05,
10976 t_TAIL_06,
10977 t_TAIL_07,
10978 t_TAIL_08,
10979 t_TAIL_09,
10980 t_TAIL_10>
10982 bool,
10983 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
10984 Variant_IsBitwiseMoveableAll<t_TAIL_01,
10985 t_TAIL_02,
10986 t_TAIL_03,
10987 t_TAIL_04,
10988 t_TAIL_05,
10989 t_TAIL_06,
10990 t_TAIL_07,
10991 t_TAIL_08,
10992 t_TAIL_09,
10993 t_TAIL_10>::value> {
10994};
10995#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
10996
10997#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
10998template <class t_HEAD, class t_TAIL_01,
10999 class t_TAIL_02,
11000 class t_TAIL_03,
11001 class t_TAIL_04,
11002 class t_TAIL_05,
11003 class t_TAIL_06,
11004 class t_TAIL_07,
11005 class t_TAIL_08,
11006 class t_TAIL_09,
11007 class t_TAIL_10,
11008 class t_TAIL_11>
11009struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11010 t_TAIL_02,
11011 t_TAIL_03,
11012 t_TAIL_04,
11013 t_TAIL_05,
11014 t_TAIL_06,
11015 t_TAIL_07,
11016 t_TAIL_08,
11017 t_TAIL_09,
11018 t_TAIL_10,
11019 t_TAIL_11>
11021 bool,
11022 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11023 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11024 t_TAIL_02,
11025 t_TAIL_03,
11026 t_TAIL_04,
11027 t_TAIL_05,
11028 t_TAIL_06,
11029 t_TAIL_07,
11030 t_TAIL_08,
11031 t_TAIL_09,
11032 t_TAIL_10,
11033 t_TAIL_11>::value> {
11034};
11035#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
11036
11037#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
11038template <class t_HEAD, class t_TAIL_01,
11039 class t_TAIL_02,
11040 class t_TAIL_03,
11041 class t_TAIL_04,
11042 class t_TAIL_05,
11043 class t_TAIL_06,
11044 class t_TAIL_07,
11045 class t_TAIL_08,
11046 class t_TAIL_09,
11047 class t_TAIL_10,
11048 class t_TAIL_11,
11049 class t_TAIL_12>
11050struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11051 t_TAIL_02,
11052 t_TAIL_03,
11053 t_TAIL_04,
11054 t_TAIL_05,
11055 t_TAIL_06,
11056 t_TAIL_07,
11057 t_TAIL_08,
11058 t_TAIL_09,
11059 t_TAIL_10,
11060 t_TAIL_11,
11061 t_TAIL_12>
11063 bool,
11064 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11065 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11066 t_TAIL_02,
11067 t_TAIL_03,
11068 t_TAIL_04,
11069 t_TAIL_05,
11070 t_TAIL_06,
11071 t_TAIL_07,
11072 t_TAIL_08,
11073 t_TAIL_09,
11074 t_TAIL_10,
11075 t_TAIL_11,
11076 t_TAIL_12>::value> {
11077};
11078#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
11079
11080#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
11081template <class t_HEAD, class t_TAIL_01,
11082 class t_TAIL_02,
11083 class t_TAIL_03,
11084 class t_TAIL_04,
11085 class t_TAIL_05,
11086 class t_TAIL_06,
11087 class t_TAIL_07,
11088 class t_TAIL_08,
11089 class t_TAIL_09,
11090 class t_TAIL_10,
11091 class t_TAIL_11,
11092 class t_TAIL_12,
11093 class t_TAIL_13>
11094struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11095 t_TAIL_02,
11096 t_TAIL_03,
11097 t_TAIL_04,
11098 t_TAIL_05,
11099 t_TAIL_06,
11100 t_TAIL_07,
11101 t_TAIL_08,
11102 t_TAIL_09,
11103 t_TAIL_10,
11104 t_TAIL_11,
11105 t_TAIL_12,
11106 t_TAIL_13>
11108 bool,
11109 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11110 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11111 t_TAIL_02,
11112 t_TAIL_03,
11113 t_TAIL_04,
11114 t_TAIL_05,
11115 t_TAIL_06,
11116 t_TAIL_07,
11117 t_TAIL_08,
11118 t_TAIL_09,
11119 t_TAIL_10,
11120 t_TAIL_11,
11121 t_TAIL_12,
11122 t_TAIL_13>::value> {
11123};
11124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
11125
11126#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
11127template <class t_HEAD, class t_TAIL_01,
11128 class t_TAIL_02,
11129 class t_TAIL_03,
11130 class t_TAIL_04,
11131 class t_TAIL_05,
11132 class t_TAIL_06,
11133 class t_TAIL_07,
11134 class t_TAIL_08,
11135 class t_TAIL_09,
11136 class t_TAIL_10,
11137 class t_TAIL_11,
11138 class t_TAIL_12,
11139 class t_TAIL_13,
11140 class t_TAIL_14>
11141struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11142 t_TAIL_02,
11143 t_TAIL_03,
11144 t_TAIL_04,
11145 t_TAIL_05,
11146 t_TAIL_06,
11147 t_TAIL_07,
11148 t_TAIL_08,
11149 t_TAIL_09,
11150 t_TAIL_10,
11151 t_TAIL_11,
11152 t_TAIL_12,
11153 t_TAIL_13,
11154 t_TAIL_14>
11156 bool,
11157 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11158 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11159 t_TAIL_02,
11160 t_TAIL_03,
11161 t_TAIL_04,
11162 t_TAIL_05,
11163 t_TAIL_06,
11164 t_TAIL_07,
11165 t_TAIL_08,
11166 t_TAIL_09,
11167 t_TAIL_10,
11168 t_TAIL_11,
11169 t_TAIL_12,
11170 t_TAIL_13,
11171 t_TAIL_14>::value> {
11172};
11173#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
11174
11175#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
11176template <class t_HEAD, class t_TAIL_01,
11177 class t_TAIL_02,
11178 class t_TAIL_03,
11179 class t_TAIL_04,
11180 class t_TAIL_05,
11181 class t_TAIL_06,
11182 class t_TAIL_07,
11183 class t_TAIL_08,
11184 class t_TAIL_09,
11185 class t_TAIL_10,
11186 class t_TAIL_11,
11187 class t_TAIL_12,
11188 class t_TAIL_13,
11189 class t_TAIL_14,
11190 class t_TAIL_15>
11191struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11192 t_TAIL_02,
11193 t_TAIL_03,
11194 t_TAIL_04,
11195 t_TAIL_05,
11196 t_TAIL_06,
11197 t_TAIL_07,
11198 t_TAIL_08,
11199 t_TAIL_09,
11200 t_TAIL_10,
11201 t_TAIL_11,
11202 t_TAIL_12,
11203 t_TAIL_13,
11204 t_TAIL_14,
11205 t_TAIL_15>
11207 bool,
11208 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11209 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11210 t_TAIL_02,
11211 t_TAIL_03,
11212 t_TAIL_04,
11213 t_TAIL_05,
11214 t_TAIL_06,
11215 t_TAIL_07,
11216 t_TAIL_08,
11217 t_TAIL_09,
11218 t_TAIL_10,
11219 t_TAIL_11,
11220 t_TAIL_12,
11221 t_TAIL_13,
11222 t_TAIL_14,
11223 t_TAIL_15>::value> {
11224};
11225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
11226
11227#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
11228template <class t_HEAD, class t_TAIL_01,
11229 class t_TAIL_02,
11230 class t_TAIL_03,
11231 class t_TAIL_04,
11232 class t_TAIL_05,
11233 class t_TAIL_06,
11234 class t_TAIL_07,
11235 class t_TAIL_08,
11236 class t_TAIL_09,
11237 class t_TAIL_10,
11238 class t_TAIL_11,
11239 class t_TAIL_12,
11240 class t_TAIL_13,
11241 class t_TAIL_14,
11242 class t_TAIL_15,
11243 class t_TAIL_16>
11244struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11245 t_TAIL_02,
11246 t_TAIL_03,
11247 t_TAIL_04,
11248 t_TAIL_05,
11249 t_TAIL_06,
11250 t_TAIL_07,
11251 t_TAIL_08,
11252 t_TAIL_09,
11253 t_TAIL_10,
11254 t_TAIL_11,
11255 t_TAIL_12,
11256 t_TAIL_13,
11257 t_TAIL_14,
11258 t_TAIL_15,
11259 t_TAIL_16>
11261 bool,
11262 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11263 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11264 t_TAIL_02,
11265 t_TAIL_03,
11266 t_TAIL_04,
11267 t_TAIL_05,
11268 t_TAIL_06,
11269 t_TAIL_07,
11270 t_TAIL_08,
11271 t_TAIL_09,
11272 t_TAIL_10,
11273 t_TAIL_11,
11274 t_TAIL_12,
11275 t_TAIL_13,
11276 t_TAIL_14,
11277 t_TAIL_15,
11278 t_TAIL_16>::value> {
11279};
11280#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
11281
11282#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
11283template <class t_HEAD, class t_TAIL_01,
11284 class t_TAIL_02,
11285 class t_TAIL_03,
11286 class t_TAIL_04,
11287 class t_TAIL_05,
11288 class t_TAIL_06,
11289 class t_TAIL_07,
11290 class t_TAIL_08,
11291 class t_TAIL_09,
11292 class t_TAIL_10,
11293 class t_TAIL_11,
11294 class t_TAIL_12,
11295 class t_TAIL_13,
11296 class t_TAIL_14,
11297 class t_TAIL_15,
11298 class t_TAIL_16,
11299 class t_TAIL_17>
11300struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11301 t_TAIL_02,
11302 t_TAIL_03,
11303 t_TAIL_04,
11304 t_TAIL_05,
11305 t_TAIL_06,
11306 t_TAIL_07,
11307 t_TAIL_08,
11308 t_TAIL_09,
11309 t_TAIL_10,
11310 t_TAIL_11,
11311 t_TAIL_12,
11312 t_TAIL_13,
11313 t_TAIL_14,
11314 t_TAIL_15,
11315 t_TAIL_16,
11316 t_TAIL_17>
11318 bool,
11319 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11320 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11321 t_TAIL_02,
11322 t_TAIL_03,
11323 t_TAIL_04,
11324 t_TAIL_05,
11325 t_TAIL_06,
11326 t_TAIL_07,
11327 t_TAIL_08,
11328 t_TAIL_09,
11329 t_TAIL_10,
11330 t_TAIL_11,
11331 t_TAIL_12,
11332 t_TAIL_13,
11333 t_TAIL_14,
11334 t_TAIL_15,
11335 t_TAIL_16,
11336 t_TAIL_17>::value> {
11337};
11338#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
11339
11340#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
11341template <class t_HEAD, class t_TAIL_01,
11342 class t_TAIL_02,
11343 class t_TAIL_03,
11344 class t_TAIL_04,
11345 class t_TAIL_05,
11346 class t_TAIL_06,
11347 class t_TAIL_07,
11348 class t_TAIL_08,
11349 class t_TAIL_09,
11350 class t_TAIL_10,
11351 class t_TAIL_11,
11352 class t_TAIL_12,
11353 class t_TAIL_13,
11354 class t_TAIL_14,
11355 class t_TAIL_15,
11356 class t_TAIL_16,
11357 class t_TAIL_17,
11358 class t_TAIL_18>
11359struct Variant_IsBitwiseMoveableAll<t_HEAD, t_TAIL_01,
11360 t_TAIL_02,
11361 t_TAIL_03,
11362 t_TAIL_04,
11363 t_TAIL_05,
11364 t_TAIL_06,
11365 t_TAIL_07,
11366 t_TAIL_08,
11367 t_TAIL_09,
11368 t_TAIL_10,
11369 t_TAIL_11,
11370 t_TAIL_12,
11371 t_TAIL_13,
11372 t_TAIL_14,
11373 t_TAIL_15,
11374 t_TAIL_16,
11375 t_TAIL_17,
11376 t_TAIL_18>
11378 bool,
11379 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
11380 Variant_IsBitwiseMoveableAll<t_TAIL_01,
11381 t_TAIL_02,
11382 t_TAIL_03,
11383 t_TAIL_04,
11384 t_TAIL_05,
11385 t_TAIL_06,
11386 t_TAIL_07,
11387 t_TAIL_08,
11388 t_TAIL_09,
11389 t_TAIL_10,
11390 t_TAIL_11,
11391 t_TAIL_12,
11392 t_TAIL_13,
11393 t_TAIL_14,
11394 t_TAIL_15,
11395 t_TAIL_16,
11396 t_TAIL_17,
11397 t_TAIL_18>::value> {
11398};
11399#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
11400
11401
11402template <class t_TYPE>
11403struct Variant_IsTag : bsl::false_type {
11404};
11405
11406template <>
11407struct Variant_IsTag<bsl::allocator_arg_t> : bsl::true_type {
11408};
11409
11410template <class t_TYPE>
11411struct Variant_IsTag<bsl::in_place_type_t<t_TYPE> > : bsl::true_type {
11412};
11413
11414template <size_t t_INDEX>
11415struct Variant_IsTag<bsl::in_place_index_t<t_INDEX> > : bsl::true_type {
11416};
11417
11418#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
11419template <class t_TO, class t_FROM>
11420struct Variant_IsConstructible : std::is_constructible<t_TO, t_FROM> {
11421};
11422
11423template <class t_LHS, class t_RHS>
11424struct Variant_IsAssignable : std::is_assignable<t_LHS, t_RHS> {
11425};
11426#else
11427template <class t_TO, class t_FROM>
11428struct Variant_IsConstructible : bsl::true_type {
11429};
11430
11431template <class t_LHS, class t_RHS>
11432struct Variant_IsAssignable : bsl::true_type {
11433};
11434#endif
11435
11436#define BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM(VARIANT, TYPE) \
11437 typename bsl::enable_if< \
11438 BloombergLP::bslstl::Variant_ConstructsFromType<VARIANT, \
11439 TYPE>::value, \
11440 BloombergLP::bslstl::Variant_NoSuchType>::type
11441
11442#define BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM(VARIANT, TYPE) \
11443 BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM( \
11444 VARIANT, \
11445 TYPE) = BloombergLP::bslstl::Variant_NoSuchType(0)
11446
11447#define BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM_STD(STD_VARIANT) \
11448 bsl::enable_if_t< \
11449 BloombergLP::bslstl::variant_constructsFromStd<variant, STD_VARIANT>, \
11450 BloombergLP::bslstl::Variant_NoSuchType>
11451
11452#define BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM_STD(STD_VARIANT) \
11453 BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM_STD(STD_VARIANT) \
11454 = BloombergLP::bslstl::Variant_NoSuchType(0)
11455
11456#define BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(TYPE) \
11457 typename bsl::enable_if< \
11458 BloombergLP::bslstl::Variant_HasUniqueType<TYPE, variant>::value, \
11459 BloombergLP::bslstl::Variant_NoSuchType>::type
11460
11461#define BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(TYPE) \
11462 BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE( \
11463 TYPE) = BloombergLP::bslstl::Variant_NoSuchType(0)
11464
11465#define BSLSTL_VARIANT_HAS_UNIQUE_TYPE(TYPE) \
11466 BloombergLP::bslstl:: \
11467 Variant_HasUniqueType<TYPE, variant<t_HEAD, t_TAIL...> >::value
11468
11469#define BSLSTL_VARIANT_TYPE_AT_INDEX(INDEX) \
11470 typename bsl::variant_alternative<INDEX, \
11471 bsl::variant<t_HEAD, t_TAIL...> >::type
11472
11473#define BSLSTL_VARIANT_INDEX_OF(TYPE, VARIANT) \
11474 BloombergLP::bslstl::Variant_TypeToIndex<TYPE, VARIANT>::value
11475
11476#define BSLSTL_VARIANT_CONVERT_INDEX_OF(TYPE, VARIANT) \
11477 BloombergLP::bslstl::Variant_ConvertIndex<TYPE, VARIANT>::value
11478
11479#define BSLSTL_VARIANT_CONVERT_TYPE_OF(TYPE, VARIANT) \
11480 typename bsl::variant_alternative<BSLSTL_VARIANT_CONVERT_INDEX_OF( \
11481 TYPE, VARIANT), \
11482 VARIANT>::type
11483
11484#define BSLSTL_VARIANT_VISITID(RET, VISITOR, VAROBJ) \
11485 BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(VISITOR, VAROBJ);
11486
11487template <size_t t_INDEX,
11488 class t_TYPE,
11489 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE
11490#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
11491 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
11492#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
11493
11494#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
11495 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
11496#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
11497
11498#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
11499 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
11500#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
11501
11502#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
11503 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
11504#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
11505
11506#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
11507 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
11508#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
11509
11510#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
11511 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
11512#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
11513
11514#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
11515 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
11516#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
11517
11518#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
11519 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
11520#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
11521
11522#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
11523 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
11524#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
11525
11526#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
11527 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
11528#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
11529
11530#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
11531 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
11532#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
11533
11534#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
11535 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
11536#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
11537
11538#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
11539 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
11540#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
11541
11542#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
11543 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
11544#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
11545
11546#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
11547 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
11548#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
11549
11550#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
11551 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
11552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
11553
11554#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
11555 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
11556#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
11557
11558#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
11559 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
11560#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
11561 , class = BSLS_COMPILERFEATURES_NILT>
11562struct Variant_TypeToIndexImpl;
11563
11564#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
11565template <size_t t_INDEX, class t_TYPE, class t_HEAD>
11566struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD>
11568 bsl::is_same<t_TYPE, t_HEAD>::value,
11569 bsl::integral_constant<size_t, t_INDEX>,
11570 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE> >::type {
11571};
11572#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
11573
11574#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
11575template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01>
11576struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01>
11578 bsl::is_same<t_TYPE, t_HEAD>::value,
11579 bsl::integral_constant<size_t, t_INDEX>,
11580 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01> >::type {
11581};
11582#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
11583
11584#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
11585template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11586 class t_TAIL_02>
11587struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11588 t_TAIL_02>
11590 bsl::is_same<t_TYPE, t_HEAD>::value,
11591 bsl::integral_constant<size_t, t_INDEX>,
11592 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11593 t_TAIL_02> >::type {
11594};
11595#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
11596
11597#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
11598template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11599 class t_TAIL_02,
11600 class t_TAIL_03>
11601struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11602 t_TAIL_02,
11603 t_TAIL_03>
11605 bsl::is_same<t_TYPE, t_HEAD>::value,
11606 bsl::integral_constant<size_t, t_INDEX>,
11607 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11608 t_TAIL_02,
11609 t_TAIL_03> >::type {
11610};
11611#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
11612
11613#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
11614template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11615 class t_TAIL_02,
11616 class t_TAIL_03,
11617 class t_TAIL_04>
11618struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11619 t_TAIL_02,
11620 t_TAIL_03,
11621 t_TAIL_04>
11623 bsl::is_same<t_TYPE, t_HEAD>::value,
11624 bsl::integral_constant<size_t, t_INDEX>,
11625 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11626 t_TAIL_02,
11627 t_TAIL_03,
11628 t_TAIL_04> >::type {
11629};
11630#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
11631
11632#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
11633template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11634 class t_TAIL_02,
11635 class t_TAIL_03,
11636 class t_TAIL_04,
11637 class t_TAIL_05>
11638struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11639 t_TAIL_02,
11640 t_TAIL_03,
11641 t_TAIL_04,
11642 t_TAIL_05>
11644 bsl::is_same<t_TYPE, t_HEAD>::value,
11645 bsl::integral_constant<size_t, t_INDEX>,
11646 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11647 t_TAIL_02,
11648 t_TAIL_03,
11649 t_TAIL_04,
11650 t_TAIL_05> >::type {
11651};
11652#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
11653
11654#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
11655template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11656 class t_TAIL_02,
11657 class t_TAIL_03,
11658 class t_TAIL_04,
11659 class t_TAIL_05,
11660 class t_TAIL_06>
11661struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11662 t_TAIL_02,
11663 t_TAIL_03,
11664 t_TAIL_04,
11665 t_TAIL_05,
11666 t_TAIL_06>
11668 bsl::is_same<t_TYPE, t_HEAD>::value,
11669 bsl::integral_constant<size_t, t_INDEX>,
11670 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11671 t_TAIL_02,
11672 t_TAIL_03,
11673 t_TAIL_04,
11674 t_TAIL_05,
11675 t_TAIL_06> >::type {
11676};
11677#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
11678
11679#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
11680template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11681 class t_TAIL_02,
11682 class t_TAIL_03,
11683 class t_TAIL_04,
11684 class t_TAIL_05,
11685 class t_TAIL_06,
11686 class t_TAIL_07>
11687struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11688 t_TAIL_02,
11689 t_TAIL_03,
11690 t_TAIL_04,
11691 t_TAIL_05,
11692 t_TAIL_06,
11693 t_TAIL_07>
11695 bsl::is_same<t_TYPE, t_HEAD>::value,
11696 bsl::integral_constant<size_t, t_INDEX>,
11697 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11698 t_TAIL_02,
11699 t_TAIL_03,
11700 t_TAIL_04,
11701 t_TAIL_05,
11702 t_TAIL_06,
11703 t_TAIL_07> >::type {
11704};
11705#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
11706
11707#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
11708template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11709 class t_TAIL_02,
11710 class t_TAIL_03,
11711 class t_TAIL_04,
11712 class t_TAIL_05,
11713 class t_TAIL_06,
11714 class t_TAIL_07,
11715 class t_TAIL_08>
11716struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11717 t_TAIL_02,
11718 t_TAIL_03,
11719 t_TAIL_04,
11720 t_TAIL_05,
11721 t_TAIL_06,
11722 t_TAIL_07,
11723 t_TAIL_08>
11725 bsl::is_same<t_TYPE, t_HEAD>::value,
11726 bsl::integral_constant<size_t, t_INDEX>,
11727 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11728 t_TAIL_02,
11729 t_TAIL_03,
11730 t_TAIL_04,
11731 t_TAIL_05,
11732 t_TAIL_06,
11733 t_TAIL_07,
11734 t_TAIL_08> >::type {
11735};
11736#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
11737
11738#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
11739template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11740 class t_TAIL_02,
11741 class t_TAIL_03,
11742 class t_TAIL_04,
11743 class t_TAIL_05,
11744 class t_TAIL_06,
11745 class t_TAIL_07,
11746 class t_TAIL_08,
11747 class t_TAIL_09>
11748struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11749 t_TAIL_02,
11750 t_TAIL_03,
11751 t_TAIL_04,
11752 t_TAIL_05,
11753 t_TAIL_06,
11754 t_TAIL_07,
11755 t_TAIL_08,
11756 t_TAIL_09>
11758 bsl::is_same<t_TYPE, t_HEAD>::value,
11759 bsl::integral_constant<size_t, t_INDEX>,
11760 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11761 t_TAIL_02,
11762 t_TAIL_03,
11763 t_TAIL_04,
11764 t_TAIL_05,
11765 t_TAIL_06,
11766 t_TAIL_07,
11767 t_TAIL_08,
11768 t_TAIL_09> >::type {
11769};
11770#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
11771
11772#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
11773template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11774 class t_TAIL_02,
11775 class t_TAIL_03,
11776 class t_TAIL_04,
11777 class t_TAIL_05,
11778 class t_TAIL_06,
11779 class t_TAIL_07,
11780 class t_TAIL_08,
11781 class t_TAIL_09,
11782 class t_TAIL_10>
11783struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11784 t_TAIL_02,
11785 t_TAIL_03,
11786 t_TAIL_04,
11787 t_TAIL_05,
11788 t_TAIL_06,
11789 t_TAIL_07,
11790 t_TAIL_08,
11791 t_TAIL_09,
11792 t_TAIL_10>
11794 bsl::is_same<t_TYPE, t_HEAD>::value,
11795 bsl::integral_constant<size_t, t_INDEX>,
11796 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11797 t_TAIL_02,
11798 t_TAIL_03,
11799 t_TAIL_04,
11800 t_TAIL_05,
11801 t_TAIL_06,
11802 t_TAIL_07,
11803 t_TAIL_08,
11804 t_TAIL_09,
11805 t_TAIL_10> >::type {
11806};
11807#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
11808
11809#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
11810template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11811 class t_TAIL_02,
11812 class t_TAIL_03,
11813 class t_TAIL_04,
11814 class t_TAIL_05,
11815 class t_TAIL_06,
11816 class t_TAIL_07,
11817 class t_TAIL_08,
11818 class t_TAIL_09,
11819 class t_TAIL_10,
11820 class t_TAIL_11>
11821struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11822 t_TAIL_02,
11823 t_TAIL_03,
11824 t_TAIL_04,
11825 t_TAIL_05,
11826 t_TAIL_06,
11827 t_TAIL_07,
11828 t_TAIL_08,
11829 t_TAIL_09,
11830 t_TAIL_10,
11831 t_TAIL_11>
11833 bsl::is_same<t_TYPE, t_HEAD>::value,
11834 bsl::integral_constant<size_t, t_INDEX>,
11835 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11836 t_TAIL_02,
11837 t_TAIL_03,
11838 t_TAIL_04,
11839 t_TAIL_05,
11840 t_TAIL_06,
11841 t_TAIL_07,
11842 t_TAIL_08,
11843 t_TAIL_09,
11844 t_TAIL_10,
11845 t_TAIL_11> >::type {
11846};
11847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
11848
11849#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
11850template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11851 class t_TAIL_02,
11852 class t_TAIL_03,
11853 class t_TAIL_04,
11854 class t_TAIL_05,
11855 class t_TAIL_06,
11856 class t_TAIL_07,
11857 class t_TAIL_08,
11858 class t_TAIL_09,
11859 class t_TAIL_10,
11860 class t_TAIL_11,
11861 class t_TAIL_12>
11862struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11863 t_TAIL_02,
11864 t_TAIL_03,
11865 t_TAIL_04,
11866 t_TAIL_05,
11867 t_TAIL_06,
11868 t_TAIL_07,
11869 t_TAIL_08,
11870 t_TAIL_09,
11871 t_TAIL_10,
11872 t_TAIL_11,
11873 t_TAIL_12>
11875 bsl::is_same<t_TYPE, t_HEAD>::value,
11876 bsl::integral_constant<size_t, t_INDEX>,
11877 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11878 t_TAIL_02,
11879 t_TAIL_03,
11880 t_TAIL_04,
11881 t_TAIL_05,
11882 t_TAIL_06,
11883 t_TAIL_07,
11884 t_TAIL_08,
11885 t_TAIL_09,
11886 t_TAIL_10,
11887 t_TAIL_11,
11888 t_TAIL_12> >::type {
11889};
11890#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
11891
11892#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
11893template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11894 class t_TAIL_02,
11895 class t_TAIL_03,
11896 class t_TAIL_04,
11897 class t_TAIL_05,
11898 class t_TAIL_06,
11899 class t_TAIL_07,
11900 class t_TAIL_08,
11901 class t_TAIL_09,
11902 class t_TAIL_10,
11903 class t_TAIL_11,
11904 class t_TAIL_12,
11905 class t_TAIL_13>
11906struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11907 t_TAIL_02,
11908 t_TAIL_03,
11909 t_TAIL_04,
11910 t_TAIL_05,
11911 t_TAIL_06,
11912 t_TAIL_07,
11913 t_TAIL_08,
11914 t_TAIL_09,
11915 t_TAIL_10,
11916 t_TAIL_11,
11917 t_TAIL_12,
11918 t_TAIL_13>
11920 bsl::is_same<t_TYPE, t_HEAD>::value,
11921 bsl::integral_constant<size_t, t_INDEX>,
11922 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11923 t_TAIL_02,
11924 t_TAIL_03,
11925 t_TAIL_04,
11926 t_TAIL_05,
11927 t_TAIL_06,
11928 t_TAIL_07,
11929 t_TAIL_08,
11930 t_TAIL_09,
11931 t_TAIL_10,
11932 t_TAIL_11,
11933 t_TAIL_12,
11934 t_TAIL_13> >::type {
11935};
11936#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
11937
11938#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
11939template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11940 class t_TAIL_02,
11941 class t_TAIL_03,
11942 class t_TAIL_04,
11943 class t_TAIL_05,
11944 class t_TAIL_06,
11945 class t_TAIL_07,
11946 class t_TAIL_08,
11947 class t_TAIL_09,
11948 class t_TAIL_10,
11949 class t_TAIL_11,
11950 class t_TAIL_12,
11951 class t_TAIL_13,
11952 class t_TAIL_14>
11953struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
11954 t_TAIL_02,
11955 t_TAIL_03,
11956 t_TAIL_04,
11957 t_TAIL_05,
11958 t_TAIL_06,
11959 t_TAIL_07,
11960 t_TAIL_08,
11961 t_TAIL_09,
11962 t_TAIL_10,
11963 t_TAIL_11,
11964 t_TAIL_12,
11965 t_TAIL_13,
11966 t_TAIL_14>
11968 bsl::is_same<t_TYPE, t_HEAD>::value,
11969 bsl::integral_constant<size_t, t_INDEX>,
11970 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
11971 t_TAIL_02,
11972 t_TAIL_03,
11973 t_TAIL_04,
11974 t_TAIL_05,
11975 t_TAIL_06,
11976 t_TAIL_07,
11977 t_TAIL_08,
11978 t_TAIL_09,
11979 t_TAIL_10,
11980 t_TAIL_11,
11981 t_TAIL_12,
11982 t_TAIL_13,
11983 t_TAIL_14> >::type {
11984};
11985#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
11986
11987#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
11988template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
11989 class t_TAIL_02,
11990 class t_TAIL_03,
11991 class t_TAIL_04,
11992 class t_TAIL_05,
11993 class t_TAIL_06,
11994 class t_TAIL_07,
11995 class t_TAIL_08,
11996 class t_TAIL_09,
11997 class t_TAIL_10,
11998 class t_TAIL_11,
11999 class t_TAIL_12,
12000 class t_TAIL_13,
12001 class t_TAIL_14,
12002 class t_TAIL_15>
12003struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
12004 t_TAIL_02,
12005 t_TAIL_03,
12006 t_TAIL_04,
12007 t_TAIL_05,
12008 t_TAIL_06,
12009 t_TAIL_07,
12010 t_TAIL_08,
12011 t_TAIL_09,
12012 t_TAIL_10,
12013 t_TAIL_11,
12014 t_TAIL_12,
12015 t_TAIL_13,
12016 t_TAIL_14,
12017 t_TAIL_15>
12019 bsl::is_same<t_TYPE, t_HEAD>::value,
12020 bsl::integral_constant<size_t, t_INDEX>,
12021 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
12022 t_TAIL_02,
12023 t_TAIL_03,
12024 t_TAIL_04,
12025 t_TAIL_05,
12026 t_TAIL_06,
12027 t_TAIL_07,
12028 t_TAIL_08,
12029 t_TAIL_09,
12030 t_TAIL_10,
12031 t_TAIL_11,
12032 t_TAIL_12,
12033 t_TAIL_13,
12034 t_TAIL_14,
12035 t_TAIL_15> >::type {
12036};
12037#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
12038
12039#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
12040template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
12041 class t_TAIL_02,
12042 class t_TAIL_03,
12043 class t_TAIL_04,
12044 class t_TAIL_05,
12045 class t_TAIL_06,
12046 class t_TAIL_07,
12047 class t_TAIL_08,
12048 class t_TAIL_09,
12049 class t_TAIL_10,
12050 class t_TAIL_11,
12051 class t_TAIL_12,
12052 class t_TAIL_13,
12053 class t_TAIL_14,
12054 class t_TAIL_15,
12055 class t_TAIL_16>
12056struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
12057 t_TAIL_02,
12058 t_TAIL_03,
12059 t_TAIL_04,
12060 t_TAIL_05,
12061 t_TAIL_06,
12062 t_TAIL_07,
12063 t_TAIL_08,
12064 t_TAIL_09,
12065 t_TAIL_10,
12066 t_TAIL_11,
12067 t_TAIL_12,
12068 t_TAIL_13,
12069 t_TAIL_14,
12070 t_TAIL_15,
12071 t_TAIL_16>
12073 bsl::is_same<t_TYPE, t_HEAD>::value,
12074 bsl::integral_constant<size_t, t_INDEX>,
12075 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
12076 t_TAIL_02,
12077 t_TAIL_03,
12078 t_TAIL_04,
12079 t_TAIL_05,
12080 t_TAIL_06,
12081 t_TAIL_07,
12082 t_TAIL_08,
12083 t_TAIL_09,
12084 t_TAIL_10,
12085 t_TAIL_11,
12086 t_TAIL_12,
12087 t_TAIL_13,
12088 t_TAIL_14,
12089 t_TAIL_15,
12090 t_TAIL_16> >::type {
12091};
12092#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
12093
12094#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
12095template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
12096 class t_TAIL_02,
12097 class t_TAIL_03,
12098 class t_TAIL_04,
12099 class t_TAIL_05,
12100 class t_TAIL_06,
12101 class t_TAIL_07,
12102 class t_TAIL_08,
12103 class t_TAIL_09,
12104 class t_TAIL_10,
12105 class t_TAIL_11,
12106 class t_TAIL_12,
12107 class t_TAIL_13,
12108 class t_TAIL_14,
12109 class t_TAIL_15,
12110 class t_TAIL_16,
12111 class t_TAIL_17>
12112struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
12113 t_TAIL_02,
12114 t_TAIL_03,
12115 t_TAIL_04,
12116 t_TAIL_05,
12117 t_TAIL_06,
12118 t_TAIL_07,
12119 t_TAIL_08,
12120 t_TAIL_09,
12121 t_TAIL_10,
12122 t_TAIL_11,
12123 t_TAIL_12,
12124 t_TAIL_13,
12125 t_TAIL_14,
12126 t_TAIL_15,
12127 t_TAIL_16,
12128 t_TAIL_17>
12130 bsl::is_same<t_TYPE, t_HEAD>::value,
12131 bsl::integral_constant<size_t, t_INDEX>,
12132 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
12133 t_TAIL_02,
12134 t_TAIL_03,
12135 t_TAIL_04,
12136 t_TAIL_05,
12137 t_TAIL_06,
12138 t_TAIL_07,
12139 t_TAIL_08,
12140 t_TAIL_09,
12141 t_TAIL_10,
12142 t_TAIL_11,
12143 t_TAIL_12,
12144 t_TAIL_13,
12145 t_TAIL_14,
12146 t_TAIL_15,
12147 t_TAIL_16,
12148 t_TAIL_17> >::type {
12149};
12150#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
12151
12152#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
12153template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
12154 class t_TAIL_02,
12155 class t_TAIL_03,
12156 class t_TAIL_04,
12157 class t_TAIL_05,
12158 class t_TAIL_06,
12159 class t_TAIL_07,
12160 class t_TAIL_08,
12161 class t_TAIL_09,
12162 class t_TAIL_10,
12163 class t_TAIL_11,
12164 class t_TAIL_12,
12165 class t_TAIL_13,
12166 class t_TAIL_14,
12167 class t_TAIL_15,
12168 class t_TAIL_16,
12169 class t_TAIL_17,
12170 class t_TAIL_18>
12171struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
12172 t_TAIL_02,
12173 t_TAIL_03,
12174 t_TAIL_04,
12175 t_TAIL_05,
12176 t_TAIL_06,
12177 t_TAIL_07,
12178 t_TAIL_08,
12179 t_TAIL_09,
12180 t_TAIL_10,
12181 t_TAIL_11,
12182 t_TAIL_12,
12183 t_TAIL_13,
12184 t_TAIL_14,
12185 t_TAIL_15,
12186 t_TAIL_16,
12187 t_TAIL_17,
12188 t_TAIL_18>
12190 bsl::is_same<t_TYPE, t_HEAD>::value,
12191 bsl::integral_constant<size_t, t_INDEX>,
12192 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
12193 t_TAIL_02,
12194 t_TAIL_03,
12195 t_TAIL_04,
12196 t_TAIL_05,
12197 t_TAIL_06,
12198 t_TAIL_07,
12199 t_TAIL_08,
12200 t_TAIL_09,
12201 t_TAIL_10,
12202 t_TAIL_11,
12203 t_TAIL_12,
12204 t_TAIL_13,
12205 t_TAIL_14,
12206 t_TAIL_15,
12207 t_TAIL_16,
12208 t_TAIL_17,
12209 t_TAIL_18> >::type {
12210};
12211#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
12212
12213
12214template <size_t t_INDEX, class t_TYPE>
12215struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
12216: bsl::integral_constant<size_t, bsl::variant_npos> {
12217};
12218
12219template <class t_TYPE, class t_VARIANT>
12220struct Variant_TypeToIndex;
12221
12222#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
12223template <class t_TYPE, class t_HEAD>
12224struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD> >
12225: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD> {
12226};
12227#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
12228
12229#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
12230template <class t_TYPE, class t_HEAD, class t_TAIL_01>
12231struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01> >
12232: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01> {
12233};
12234#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
12235
12236#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
12237template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12238 class t_TAIL_02>
12239struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12240 t_TAIL_02> >
12241: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12242 t_TAIL_02> {
12243};
12244#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
12245
12246#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
12247template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12248 class t_TAIL_02,
12249 class t_TAIL_03>
12250struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12251 t_TAIL_02,
12252 t_TAIL_03> >
12253: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12254 t_TAIL_02,
12255 t_TAIL_03> {
12256};
12257#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
12258
12259#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
12260template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12261 class t_TAIL_02,
12262 class t_TAIL_03,
12263 class t_TAIL_04>
12264struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12265 t_TAIL_02,
12266 t_TAIL_03,
12267 t_TAIL_04> >
12268: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12269 t_TAIL_02,
12270 t_TAIL_03,
12271 t_TAIL_04> {
12272};
12273#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
12274
12275#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
12276template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12277 class t_TAIL_02,
12278 class t_TAIL_03,
12279 class t_TAIL_04,
12280 class t_TAIL_05>
12281struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12282 t_TAIL_02,
12283 t_TAIL_03,
12284 t_TAIL_04,
12285 t_TAIL_05> >
12286: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12287 t_TAIL_02,
12288 t_TAIL_03,
12289 t_TAIL_04,
12290 t_TAIL_05> {
12291};
12292#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
12293
12294#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
12295template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12296 class t_TAIL_02,
12297 class t_TAIL_03,
12298 class t_TAIL_04,
12299 class t_TAIL_05,
12300 class t_TAIL_06>
12301struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12302 t_TAIL_02,
12303 t_TAIL_03,
12304 t_TAIL_04,
12305 t_TAIL_05,
12306 t_TAIL_06> >
12307: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12308 t_TAIL_02,
12309 t_TAIL_03,
12310 t_TAIL_04,
12311 t_TAIL_05,
12312 t_TAIL_06> {
12313};
12314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
12315
12316#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
12317template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12318 class t_TAIL_02,
12319 class t_TAIL_03,
12320 class t_TAIL_04,
12321 class t_TAIL_05,
12322 class t_TAIL_06,
12323 class t_TAIL_07>
12324struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12325 t_TAIL_02,
12326 t_TAIL_03,
12327 t_TAIL_04,
12328 t_TAIL_05,
12329 t_TAIL_06,
12330 t_TAIL_07> >
12331: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12332 t_TAIL_02,
12333 t_TAIL_03,
12334 t_TAIL_04,
12335 t_TAIL_05,
12336 t_TAIL_06,
12337 t_TAIL_07> {
12338};
12339#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
12340
12341#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
12342template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12343 class t_TAIL_02,
12344 class t_TAIL_03,
12345 class t_TAIL_04,
12346 class t_TAIL_05,
12347 class t_TAIL_06,
12348 class t_TAIL_07,
12349 class t_TAIL_08>
12350struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12351 t_TAIL_02,
12352 t_TAIL_03,
12353 t_TAIL_04,
12354 t_TAIL_05,
12355 t_TAIL_06,
12356 t_TAIL_07,
12357 t_TAIL_08> >
12358: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12359 t_TAIL_02,
12360 t_TAIL_03,
12361 t_TAIL_04,
12362 t_TAIL_05,
12363 t_TAIL_06,
12364 t_TAIL_07,
12365 t_TAIL_08> {
12366};
12367#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
12368
12369#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
12370template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12371 class t_TAIL_02,
12372 class t_TAIL_03,
12373 class t_TAIL_04,
12374 class t_TAIL_05,
12375 class t_TAIL_06,
12376 class t_TAIL_07,
12377 class t_TAIL_08,
12378 class t_TAIL_09>
12379struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12380 t_TAIL_02,
12381 t_TAIL_03,
12382 t_TAIL_04,
12383 t_TAIL_05,
12384 t_TAIL_06,
12385 t_TAIL_07,
12386 t_TAIL_08,
12387 t_TAIL_09> >
12388: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12389 t_TAIL_02,
12390 t_TAIL_03,
12391 t_TAIL_04,
12392 t_TAIL_05,
12393 t_TAIL_06,
12394 t_TAIL_07,
12395 t_TAIL_08,
12396 t_TAIL_09> {
12397};
12398#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
12399
12400#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
12401template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12402 class t_TAIL_02,
12403 class t_TAIL_03,
12404 class t_TAIL_04,
12405 class t_TAIL_05,
12406 class t_TAIL_06,
12407 class t_TAIL_07,
12408 class t_TAIL_08,
12409 class t_TAIL_09,
12410 class t_TAIL_10>
12411struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12412 t_TAIL_02,
12413 t_TAIL_03,
12414 t_TAIL_04,
12415 t_TAIL_05,
12416 t_TAIL_06,
12417 t_TAIL_07,
12418 t_TAIL_08,
12419 t_TAIL_09,
12420 t_TAIL_10> >
12421: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12422 t_TAIL_02,
12423 t_TAIL_03,
12424 t_TAIL_04,
12425 t_TAIL_05,
12426 t_TAIL_06,
12427 t_TAIL_07,
12428 t_TAIL_08,
12429 t_TAIL_09,
12430 t_TAIL_10> {
12431};
12432#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
12433
12434#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
12435template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12436 class t_TAIL_02,
12437 class t_TAIL_03,
12438 class t_TAIL_04,
12439 class t_TAIL_05,
12440 class t_TAIL_06,
12441 class t_TAIL_07,
12442 class t_TAIL_08,
12443 class t_TAIL_09,
12444 class t_TAIL_10,
12445 class t_TAIL_11>
12446struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12447 t_TAIL_02,
12448 t_TAIL_03,
12449 t_TAIL_04,
12450 t_TAIL_05,
12451 t_TAIL_06,
12452 t_TAIL_07,
12453 t_TAIL_08,
12454 t_TAIL_09,
12455 t_TAIL_10,
12456 t_TAIL_11> >
12457: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12458 t_TAIL_02,
12459 t_TAIL_03,
12460 t_TAIL_04,
12461 t_TAIL_05,
12462 t_TAIL_06,
12463 t_TAIL_07,
12464 t_TAIL_08,
12465 t_TAIL_09,
12466 t_TAIL_10,
12467 t_TAIL_11> {
12468};
12469#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
12470
12471#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
12472template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12473 class t_TAIL_02,
12474 class t_TAIL_03,
12475 class t_TAIL_04,
12476 class t_TAIL_05,
12477 class t_TAIL_06,
12478 class t_TAIL_07,
12479 class t_TAIL_08,
12480 class t_TAIL_09,
12481 class t_TAIL_10,
12482 class t_TAIL_11,
12483 class t_TAIL_12>
12484struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12485 t_TAIL_02,
12486 t_TAIL_03,
12487 t_TAIL_04,
12488 t_TAIL_05,
12489 t_TAIL_06,
12490 t_TAIL_07,
12491 t_TAIL_08,
12492 t_TAIL_09,
12493 t_TAIL_10,
12494 t_TAIL_11,
12495 t_TAIL_12> >
12496: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12497 t_TAIL_02,
12498 t_TAIL_03,
12499 t_TAIL_04,
12500 t_TAIL_05,
12501 t_TAIL_06,
12502 t_TAIL_07,
12503 t_TAIL_08,
12504 t_TAIL_09,
12505 t_TAIL_10,
12506 t_TAIL_11,
12507 t_TAIL_12> {
12508};
12509#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
12510
12511#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
12512template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12513 class t_TAIL_02,
12514 class t_TAIL_03,
12515 class t_TAIL_04,
12516 class t_TAIL_05,
12517 class t_TAIL_06,
12518 class t_TAIL_07,
12519 class t_TAIL_08,
12520 class t_TAIL_09,
12521 class t_TAIL_10,
12522 class t_TAIL_11,
12523 class t_TAIL_12,
12524 class t_TAIL_13>
12525struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12526 t_TAIL_02,
12527 t_TAIL_03,
12528 t_TAIL_04,
12529 t_TAIL_05,
12530 t_TAIL_06,
12531 t_TAIL_07,
12532 t_TAIL_08,
12533 t_TAIL_09,
12534 t_TAIL_10,
12535 t_TAIL_11,
12536 t_TAIL_12,
12537 t_TAIL_13> >
12538: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12539 t_TAIL_02,
12540 t_TAIL_03,
12541 t_TAIL_04,
12542 t_TAIL_05,
12543 t_TAIL_06,
12544 t_TAIL_07,
12545 t_TAIL_08,
12546 t_TAIL_09,
12547 t_TAIL_10,
12548 t_TAIL_11,
12549 t_TAIL_12,
12550 t_TAIL_13> {
12551};
12552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
12553
12554#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
12555template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12556 class t_TAIL_02,
12557 class t_TAIL_03,
12558 class t_TAIL_04,
12559 class t_TAIL_05,
12560 class t_TAIL_06,
12561 class t_TAIL_07,
12562 class t_TAIL_08,
12563 class t_TAIL_09,
12564 class t_TAIL_10,
12565 class t_TAIL_11,
12566 class t_TAIL_12,
12567 class t_TAIL_13,
12568 class t_TAIL_14>
12569struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12570 t_TAIL_02,
12571 t_TAIL_03,
12572 t_TAIL_04,
12573 t_TAIL_05,
12574 t_TAIL_06,
12575 t_TAIL_07,
12576 t_TAIL_08,
12577 t_TAIL_09,
12578 t_TAIL_10,
12579 t_TAIL_11,
12580 t_TAIL_12,
12581 t_TAIL_13,
12582 t_TAIL_14> >
12583: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12584 t_TAIL_02,
12585 t_TAIL_03,
12586 t_TAIL_04,
12587 t_TAIL_05,
12588 t_TAIL_06,
12589 t_TAIL_07,
12590 t_TAIL_08,
12591 t_TAIL_09,
12592 t_TAIL_10,
12593 t_TAIL_11,
12594 t_TAIL_12,
12595 t_TAIL_13,
12596 t_TAIL_14> {
12597};
12598#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
12599
12600#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
12601template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12602 class t_TAIL_02,
12603 class t_TAIL_03,
12604 class t_TAIL_04,
12605 class t_TAIL_05,
12606 class t_TAIL_06,
12607 class t_TAIL_07,
12608 class t_TAIL_08,
12609 class t_TAIL_09,
12610 class t_TAIL_10,
12611 class t_TAIL_11,
12612 class t_TAIL_12,
12613 class t_TAIL_13,
12614 class t_TAIL_14,
12615 class t_TAIL_15>
12616struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12617 t_TAIL_02,
12618 t_TAIL_03,
12619 t_TAIL_04,
12620 t_TAIL_05,
12621 t_TAIL_06,
12622 t_TAIL_07,
12623 t_TAIL_08,
12624 t_TAIL_09,
12625 t_TAIL_10,
12626 t_TAIL_11,
12627 t_TAIL_12,
12628 t_TAIL_13,
12629 t_TAIL_14,
12630 t_TAIL_15> >
12631: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12632 t_TAIL_02,
12633 t_TAIL_03,
12634 t_TAIL_04,
12635 t_TAIL_05,
12636 t_TAIL_06,
12637 t_TAIL_07,
12638 t_TAIL_08,
12639 t_TAIL_09,
12640 t_TAIL_10,
12641 t_TAIL_11,
12642 t_TAIL_12,
12643 t_TAIL_13,
12644 t_TAIL_14,
12645 t_TAIL_15> {
12646};
12647#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
12648
12649#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
12650template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12651 class t_TAIL_02,
12652 class t_TAIL_03,
12653 class t_TAIL_04,
12654 class t_TAIL_05,
12655 class t_TAIL_06,
12656 class t_TAIL_07,
12657 class t_TAIL_08,
12658 class t_TAIL_09,
12659 class t_TAIL_10,
12660 class t_TAIL_11,
12661 class t_TAIL_12,
12662 class t_TAIL_13,
12663 class t_TAIL_14,
12664 class t_TAIL_15,
12665 class t_TAIL_16>
12666struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12667 t_TAIL_02,
12668 t_TAIL_03,
12669 t_TAIL_04,
12670 t_TAIL_05,
12671 t_TAIL_06,
12672 t_TAIL_07,
12673 t_TAIL_08,
12674 t_TAIL_09,
12675 t_TAIL_10,
12676 t_TAIL_11,
12677 t_TAIL_12,
12678 t_TAIL_13,
12679 t_TAIL_14,
12680 t_TAIL_15,
12681 t_TAIL_16> >
12682: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12683 t_TAIL_02,
12684 t_TAIL_03,
12685 t_TAIL_04,
12686 t_TAIL_05,
12687 t_TAIL_06,
12688 t_TAIL_07,
12689 t_TAIL_08,
12690 t_TAIL_09,
12691 t_TAIL_10,
12692 t_TAIL_11,
12693 t_TAIL_12,
12694 t_TAIL_13,
12695 t_TAIL_14,
12696 t_TAIL_15,
12697 t_TAIL_16> {
12698};
12699#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
12700
12701#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
12702template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12703 class t_TAIL_02,
12704 class t_TAIL_03,
12705 class t_TAIL_04,
12706 class t_TAIL_05,
12707 class t_TAIL_06,
12708 class t_TAIL_07,
12709 class t_TAIL_08,
12710 class t_TAIL_09,
12711 class t_TAIL_10,
12712 class t_TAIL_11,
12713 class t_TAIL_12,
12714 class t_TAIL_13,
12715 class t_TAIL_14,
12716 class t_TAIL_15,
12717 class t_TAIL_16,
12718 class t_TAIL_17>
12719struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12720 t_TAIL_02,
12721 t_TAIL_03,
12722 t_TAIL_04,
12723 t_TAIL_05,
12724 t_TAIL_06,
12725 t_TAIL_07,
12726 t_TAIL_08,
12727 t_TAIL_09,
12728 t_TAIL_10,
12729 t_TAIL_11,
12730 t_TAIL_12,
12731 t_TAIL_13,
12732 t_TAIL_14,
12733 t_TAIL_15,
12734 t_TAIL_16,
12735 t_TAIL_17> >
12736: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12737 t_TAIL_02,
12738 t_TAIL_03,
12739 t_TAIL_04,
12740 t_TAIL_05,
12741 t_TAIL_06,
12742 t_TAIL_07,
12743 t_TAIL_08,
12744 t_TAIL_09,
12745 t_TAIL_10,
12746 t_TAIL_11,
12747 t_TAIL_12,
12748 t_TAIL_13,
12749 t_TAIL_14,
12750 t_TAIL_15,
12751 t_TAIL_16,
12752 t_TAIL_17> {
12753};
12754#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
12755
12756#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
12757template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12758 class t_TAIL_02,
12759 class t_TAIL_03,
12760 class t_TAIL_04,
12761 class t_TAIL_05,
12762 class t_TAIL_06,
12763 class t_TAIL_07,
12764 class t_TAIL_08,
12765 class t_TAIL_09,
12766 class t_TAIL_10,
12767 class t_TAIL_11,
12768 class t_TAIL_12,
12769 class t_TAIL_13,
12770 class t_TAIL_14,
12771 class t_TAIL_15,
12772 class t_TAIL_16,
12773 class t_TAIL_17,
12774 class t_TAIL_18>
12775struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
12776 t_TAIL_02,
12777 t_TAIL_03,
12778 t_TAIL_04,
12779 t_TAIL_05,
12780 t_TAIL_06,
12781 t_TAIL_07,
12782 t_TAIL_08,
12783 t_TAIL_09,
12784 t_TAIL_10,
12785 t_TAIL_11,
12786 t_TAIL_12,
12787 t_TAIL_13,
12788 t_TAIL_14,
12789 t_TAIL_15,
12790 t_TAIL_16,
12791 t_TAIL_17,
12792 t_TAIL_18> >
12793: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL_01,
12794 t_TAIL_02,
12795 t_TAIL_03,
12796 t_TAIL_04,
12797 t_TAIL_05,
12798 t_TAIL_06,
12799 t_TAIL_07,
12800 t_TAIL_08,
12801 t_TAIL_09,
12802 t_TAIL_10,
12803 t_TAIL_11,
12804 t_TAIL_12,
12805 t_TAIL_13,
12806 t_TAIL_14,
12807 t_TAIL_15,
12808 t_TAIL_16,
12809 t_TAIL_17,
12810 t_TAIL_18> {
12811};
12812#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
12813
12814
12815template <class t_TYPE,
12816 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE
12817#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
12818 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
12819#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
12820
12821#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
12822 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
12823#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
12824
12825#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
12826 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
12827#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
12828
12829#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
12830 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
12831#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
12832
12833#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
12834 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
12835#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
12836
12837#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
12838 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
12839#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
12840
12841#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
12842 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
12843#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
12844
12845#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
12846 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
12847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
12848
12849#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
12850 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
12851#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
12852
12853#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
12854 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
12855#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
12856
12857#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
12858 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
12859#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
12860
12861#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
12862 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
12863#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
12864
12865#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
12866 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
12867#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
12868
12869#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
12870 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
12871#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
12872
12873#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
12874 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
12875#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
12876
12877#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
12878 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
12879#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
12880
12881#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
12882 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
12883#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
12884
12885#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
12886 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
12887#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
12888 , class = BSLS_COMPILERFEATURES_NILT>
12889struct Variant_CountType;
12890
12891#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
12892template <class t_TYPE, class t_HEAD>
12893struct Variant_CountType<t_TYPE, t_HEAD>
12894: bsl::integral_constant<size_t,
12895 bsl::is_same<t_TYPE, t_HEAD>::value +
12896 Variant_CountType<t_TYPE>::value> {
12897};
12898#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
12899
12900#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
12901template <class t_TYPE, class t_HEAD, class t_TAIL_01>
12902struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01>
12903: bsl::integral_constant<size_t,
12904 bsl::is_same<t_TYPE, t_HEAD>::value +
12905 Variant_CountType<t_TYPE, t_TAIL_01>::value> {
12906};
12907#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
12908
12909#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
12910template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12911 class t_TAIL_02>
12912struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
12913 t_TAIL_02>
12914: bsl::integral_constant<size_t,
12915 bsl::is_same<t_TYPE, t_HEAD>::value +
12916 Variant_CountType<t_TYPE, t_TAIL_01,
12917 t_TAIL_02>::value> {
12918};
12919#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
12920
12921#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
12922template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12923 class t_TAIL_02,
12924 class t_TAIL_03>
12925struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
12926 t_TAIL_02,
12927 t_TAIL_03>
12928: bsl::integral_constant<size_t,
12929 bsl::is_same<t_TYPE, t_HEAD>::value +
12930 Variant_CountType<t_TYPE, t_TAIL_01,
12931 t_TAIL_02,
12932 t_TAIL_03>::value> {
12933};
12934#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
12935
12936#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
12937template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12938 class t_TAIL_02,
12939 class t_TAIL_03,
12940 class t_TAIL_04>
12941struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
12942 t_TAIL_02,
12943 t_TAIL_03,
12944 t_TAIL_04>
12945: bsl::integral_constant<size_t,
12946 bsl::is_same<t_TYPE, t_HEAD>::value +
12947 Variant_CountType<t_TYPE, t_TAIL_01,
12948 t_TAIL_02,
12949 t_TAIL_03,
12950 t_TAIL_04>::value> {
12951};
12952#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
12953
12954#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
12955template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12956 class t_TAIL_02,
12957 class t_TAIL_03,
12958 class t_TAIL_04,
12959 class t_TAIL_05>
12960struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
12961 t_TAIL_02,
12962 t_TAIL_03,
12963 t_TAIL_04,
12964 t_TAIL_05>
12965: bsl::integral_constant<size_t,
12966 bsl::is_same<t_TYPE, t_HEAD>::value +
12967 Variant_CountType<t_TYPE, t_TAIL_01,
12968 t_TAIL_02,
12969 t_TAIL_03,
12970 t_TAIL_04,
12971 t_TAIL_05>::value> {
12972};
12973#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
12974
12975#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
12976template <class t_TYPE, class t_HEAD, class t_TAIL_01,
12977 class t_TAIL_02,
12978 class t_TAIL_03,
12979 class t_TAIL_04,
12980 class t_TAIL_05,
12981 class t_TAIL_06>
12982struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
12983 t_TAIL_02,
12984 t_TAIL_03,
12985 t_TAIL_04,
12986 t_TAIL_05,
12987 t_TAIL_06>
12988: bsl::integral_constant<size_t,
12989 bsl::is_same<t_TYPE, t_HEAD>::value +
12990 Variant_CountType<t_TYPE, t_TAIL_01,
12991 t_TAIL_02,
12992 t_TAIL_03,
12993 t_TAIL_04,
12994 t_TAIL_05,
12995 t_TAIL_06>::value> {
12996};
12997#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
12998
12999#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
13000template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13001 class t_TAIL_02,
13002 class t_TAIL_03,
13003 class t_TAIL_04,
13004 class t_TAIL_05,
13005 class t_TAIL_06,
13006 class t_TAIL_07>
13007struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13008 t_TAIL_02,
13009 t_TAIL_03,
13010 t_TAIL_04,
13011 t_TAIL_05,
13012 t_TAIL_06,
13013 t_TAIL_07>
13014: bsl::integral_constant<size_t,
13015 bsl::is_same<t_TYPE, t_HEAD>::value +
13016 Variant_CountType<t_TYPE, t_TAIL_01,
13017 t_TAIL_02,
13018 t_TAIL_03,
13019 t_TAIL_04,
13020 t_TAIL_05,
13021 t_TAIL_06,
13022 t_TAIL_07>::value> {
13023};
13024#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
13025
13026#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
13027template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13028 class t_TAIL_02,
13029 class t_TAIL_03,
13030 class t_TAIL_04,
13031 class t_TAIL_05,
13032 class t_TAIL_06,
13033 class t_TAIL_07,
13034 class t_TAIL_08>
13035struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13036 t_TAIL_02,
13037 t_TAIL_03,
13038 t_TAIL_04,
13039 t_TAIL_05,
13040 t_TAIL_06,
13041 t_TAIL_07,
13042 t_TAIL_08>
13043: bsl::integral_constant<size_t,
13044 bsl::is_same<t_TYPE, t_HEAD>::value +
13045 Variant_CountType<t_TYPE, t_TAIL_01,
13046 t_TAIL_02,
13047 t_TAIL_03,
13048 t_TAIL_04,
13049 t_TAIL_05,
13050 t_TAIL_06,
13051 t_TAIL_07,
13052 t_TAIL_08>::value> {
13053};
13054#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
13055
13056#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
13057template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13058 class t_TAIL_02,
13059 class t_TAIL_03,
13060 class t_TAIL_04,
13061 class t_TAIL_05,
13062 class t_TAIL_06,
13063 class t_TAIL_07,
13064 class t_TAIL_08,
13065 class t_TAIL_09>
13066struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13067 t_TAIL_02,
13068 t_TAIL_03,
13069 t_TAIL_04,
13070 t_TAIL_05,
13071 t_TAIL_06,
13072 t_TAIL_07,
13073 t_TAIL_08,
13074 t_TAIL_09>
13075: bsl::integral_constant<size_t,
13076 bsl::is_same<t_TYPE, t_HEAD>::value +
13077 Variant_CountType<t_TYPE, t_TAIL_01,
13078 t_TAIL_02,
13079 t_TAIL_03,
13080 t_TAIL_04,
13081 t_TAIL_05,
13082 t_TAIL_06,
13083 t_TAIL_07,
13084 t_TAIL_08,
13085 t_TAIL_09>::value> {
13086};
13087#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
13088
13089#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
13090template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13091 class t_TAIL_02,
13092 class t_TAIL_03,
13093 class t_TAIL_04,
13094 class t_TAIL_05,
13095 class t_TAIL_06,
13096 class t_TAIL_07,
13097 class t_TAIL_08,
13098 class t_TAIL_09,
13099 class t_TAIL_10>
13100struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13101 t_TAIL_02,
13102 t_TAIL_03,
13103 t_TAIL_04,
13104 t_TAIL_05,
13105 t_TAIL_06,
13106 t_TAIL_07,
13107 t_TAIL_08,
13108 t_TAIL_09,
13109 t_TAIL_10>
13110: bsl::integral_constant<size_t,
13111 bsl::is_same<t_TYPE, t_HEAD>::value +
13112 Variant_CountType<t_TYPE, t_TAIL_01,
13113 t_TAIL_02,
13114 t_TAIL_03,
13115 t_TAIL_04,
13116 t_TAIL_05,
13117 t_TAIL_06,
13118 t_TAIL_07,
13119 t_TAIL_08,
13120 t_TAIL_09,
13121 t_TAIL_10>::value> {
13122};
13123#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
13124
13125#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
13126template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13127 class t_TAIL_02,
13128 class t_TAIL_03,
13129 class t_TAIL_04,
13130 class t_TAIL_05,
13131 class t_TAIL_06,
13132 class t_TAIL_07,
13133 class t_TAIL_08,
13134 class t_TAIL_09,
13135 class t_TAIL_10,
13136 class t_TAIL_11>
13137struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13138 t_TAIL_02,
13139 t_TAIL_03,
13140 t_TAIL_04,
13141 t_TAIL_05,
13142 t_TAIL_06,
13143 t_TAIL_07,
13144 t_TAIL_08,
13145 t_TAIL_09,
13146 t_TAIL_10,
13147 t_TAIL_11>
13148: bsl::integral_constant<size_t,
13149 bsl::is_same<t_TYPE, t_HEAD>::value +
13150 Variant_CountType<t_TYPE, t_TAIL_01,
13151 t_TAIL_02,
13152 t_TAIL_03,
13153 t_TAIL_04,
13154 t_TAIL_05,
13155 t_TAIL_06,
13156 t_TAIL_07,
13157 t_TAIL_08,
13158 t_TAIL_09,
13159 t_TAIL_10,
13160 t_TAIL_11>::value> {
13161};
13162#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
13163
13164#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
13165template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13166 class t_TAIL_02,
13167 class t_TAIL_03,
13168 class t_TAIL_04,
13169 class t_TAIL_05,
13170 class t_TAIL_06,
13171 class t_TAIL_07,
13172 class t_TAIL_08,
13173 class t_TAIL_09,
13174 class t_TAIL_10,
13175 class t_TAIL_11,
13176 class t_TAIL_12>
13177struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13178 t_TAIL_02,
13179 t_TAIL_03,
13180 t_TAIL_04,
13181 t_TAIL_05,
13182 t_TAIL_06,
13183 t_TAIL_07,
13184 t_TAIL_08,
13185 t_TAIL_09,
13186 t_TAIL_10,
13187 t_TAIL_11,
13188 t_TAIL_12>
13189: bsl::integral_constant<size_t,
13190 bsl::is_same<t_TYPE, t_HEAD>::value +
13191 Variant_CountType<t_TYPE, t_TAIL_01,
13192 t_TAIL_02,
13193 t_TAIL_03,
13194 t_TAIL_04,
13195 t_TAIL_05,
13196 t_TAIL_06,
13197 t_TAIL_07,
13198 t_TAIL_08,
13199 t_TAIL_09,
13200 t_TAIL_10,
13201 t_TAIL_11,
13202 t_TAIL_12>::value> {
13203};
13204#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
13205
13206#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
13207template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13208 class t_TAIL_02,
13209 class t_TAIL_03,
13210 class t_TAIL_04,
13211 class t_TAIL_05,
13212 class t_TAIL_06,
13213 class t_TAIL_07,
13214 class t_TAIL_08,
13215 class t_TAIL_09,
13216 class t_TAIL_10,
13217 class t_TAIL_11,
13218 class t_TAIL_12,
13219 class t_TAIL_13>
13220struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13221 t_TAIL_02,
13222 t_TAIL_03,
13223 t_TAIL_04,
13224 t_TAIL_05,
13225 t_TAIL_06,
13226 t_TAIL_07,
13227 t_TAIL_08,
13228 t_TAIL_09,
13229 t_TAIL_10,
13230 t_TAIL_11,
13231 t_TAIL_12,
13232 t_TAIL_13>
13233: bsl::integral_constant<size_t,
13234 bsl::is_same<t_TYPE, t_HEAD>::value +
13235 Variant_CountType<t_TYPE, t_TAIL_01,
13236 t_TAIL_02,
13237 t_TAIL_03,
13238 t_TAIL_04,
13239 t_TAIL_05,
13240 t_TAIL_06,
13241 t_TAIL_07,
13242 t_TAIL_08,
13243 t_TAIL_09,
13244 t_TAIL_10,
13245 t_TAIL_11,
13246 t_TAIL_12,
13247 t_TAIL_13>::value> {
13248};
13249#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
13250
13251#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
13252template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13253 class t_TAIL_02,
13254 class t_TAIL_03,
13255 class t_TAIL_04,
13256 class t_TAIL_05,
13257 class t_TAIL_06,
13258 class t_TAIL_07,
13259 class t_TAIL_08,
13260 class t_TAIL_09,
13261 class t_TAIL_10,
13262 class t_TAIL_11,
13263 class t_TAIL_12,
13264 class t_TAIL_13,
13265 class t_TAIL_14>
13266struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13267 t_TAIL_02,
13268 t_TAIL_03,
13269 t_TAIL_04,
13270 t_TAIL_05,
13271 t_TAIL_06,
13272 t_TAIL_07,
13273 t_TAIL_08,
13274 t_TAIL_09,
13275 t_TAIL_10,
13276 t_TAIL_11,
13277 t_TAIL_12,
13278 t_TAIL_13,
13279 t_TAIL_14>
13280: bsl::integral_constant<size_t,
13281 bsl::is_same<t_TYPE, t_HEAD>::value +
13282 Variant_CountType<t_TYPE, t_TAIL_01,
13283 t_TAIL_02,
13284 t_TAIL_03,
13285 t_TAIL_04,
13286 t_TAIL_05,
13287 t_TAIL_06,
13288 t_TAIL_07,
13289 t_TAIL_08,
13290 t_TAIL_09,
13291 t_TAIL_10,
13292 t_TAIL_11,
13293 t_TAIL_12,
13294 t_TAIL_13,
13295 t_TAIL_14>::value> {
13296};
13297#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
13298
13299#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
13300template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13301 class t_TAIL_02,
13302 class t_TAIL_03,
13303 class t_TAIL_04,
13304 class t_TAIL_05,
13305 class t_TAIL_06,
13306 class t_TAIL_07,
13307 class t_TAIL_08,
13308 class t_TAIL_09,
13309 class t_TAIL_10,
13310 class t_TAIL_11,
13311 class t_TAIL_12,
13312 class t_TAIL_13,
13313 class t_TAIL_14,
13314 class t_TAIL_15>
13315struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13316 t_TAIL_02,
13317 t_TAIL_03,
13318 t_TAIL_04,
13319 t_TAIL_05,
13320 t_TAIL_06,
13321 t_TAIL_07,
13322 t_TAIL_08,
13323 t_TAIL_09,
13324 t_TAIL_10,
13325 t_TAIL_11,
13326 t_TAIL_12,
13327 t_TAIL_13,
13328 t_TAIL_14,
13329 t_TAIL_15>
13330: bsl::integral_constant<size_t,
13331 bsl::is_same<t_TYPE, t_HEAD>::value +
13332 Variant_CountType<t_TYPE, t_TAIL_01,
13333 t_TAIL_02,
13334 t_TAIL_03,
13335 t_TAIL_04,
13336 t_TAIL_05,
13337 t_TAIL_06,
13338 t_TAIL_07,
13339 t_TAIL_08,
13340 t_TAIL_09,
13341 t_TAIL_10,
13342 t_TAIL_11,
13343 t_TAIL_12,
13344 t_TAIL_13,
13345 t_TAIL_14,
13346 t_TAIL_15>::value> {
13347};
13348#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
13349
13350#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
13351template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13352 class t_TAIL_02,
13353 class t_TAIL_03,
13354 class t_TAIL_04,
13355 class t_TAIL_05,
13356 class t_TAIL_06,
13357 class t_TAIL_07,
13358 class t_TAIL_08,
13359 class t_TAIL_09,
13360 class t_TAIL_10,
13361 class t_TAIL_11,
13362 class t_TAIL_12,
13363 class t_TAIL_13,
13364 class t_TAIL_14,
13365 class t_TAIL_15,
13366 class t_TAIL_16>
13367struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13368 t_TAIL_02,
13369 t_TAIL_03,
13370 t_TAIL_04,
13371 t_TAIL_05,
13372 t_TAIL_06,
13373 t_TAIL_07,
13374 t_TAIL_08,
13375 t_TAIL_09,
13376 t_TAIL_10,
13377 t_TAIL_11,
13378 t_TAIL_12,
13379 t_TAIL_13,
13380 t_TAIL_14,
13381 t_TAIL_15,
13382 t_TAIL_16>
13383: bsl::integral_constant<size_t,
13384 bsl::is_same<t_TYPE, t_HEAD>::value +
13385 Variant_CountType<t_TYPE, t_TAIL_01,
13386 t_TAIL_02,
13387 t_TAIL_03,
13388 t_TAIL_04,
13389 t_TAIL_05,
13390 t_TAIL_06,
13391 t_TAIL_07,
13392 t_TAIL_08,
13393 t_TAIL_09,
13394 t_TAIL_10,
13395 t_TAIL_11,
13396 t_TAIL_12,
13397 t_TAIL_13,
13398 t_TAIL_14,
13399 t_TAIL_15,
13400 t_TAIL_16>::value> {
13401};
13402#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
13403
13404#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
13405template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13406 class t_TAIL_02,
13407 class t_TAIL_03,
13408 class t_TAIL_04,
13409 class t_TAIL_05,
13410 class t_TAIL_06,
13411 class t_TAIL_07,
13412 class t_TAIL_08,
13413 class t_TAIL_09,
13414 class t_TAIL_10,
13415 class t_TAIL_11,
13416 class t_TAIL_12,
13417 class t_TAIL_13,
13418 class t_TAIL_14,
13419 class t_TAIL_15,
13420 class t_TAIL_16,
13421 class t_TAIL_17>
13422struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13423 t_TAIL_02,
13424 t_TAIL_03,
13425 t_TAIL_04,
13426 t_TAIL_05,
13427 t_TAIL_06,
13428 t_TAIL_07,
13429 t_TAIL_08,
13430 t_TAIL_09,
13431 t_TAIL_10,
13432 t_TAIL_11,
13433 t_TAIL_12,
13434 t_TAIL_13,
13435 t_TAIL_14,
13436 t_TAIL_15,
13437 t_TAIL_16,
13438 t_TAIL_17>
13439: bsl::integral_constant<size_t,
13440 bsl::is_same<t_TYPE, t_HEAD>::value +
13441 Variant_CountType<t_TYPE, t_TAIL_01,
13442 t_TAIL_02,
13443 t_TAIL_03,
13444 t_TAIL_04,
13445 t_TAIL_05,
13446 t_TAIL_06,
13447 t_TAIL_07,
13448 t_TAIL_08,
13449 t_TAIL_09,
13450 t_TAIL_10,
13451 t_TAIL_11,
13452 t_TAIL_12,
13453 t_TAIL_13,
13454 t_TAIL_14,
13455 t_TAIL_15,
13456 t_TAIL_16,
13457 t_TAIL_17>::value> {
13458};
13459#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
13460
13461#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
13462template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13463 class t_TAIL_02,
13464 class t_TAIL_03,
13465 class t_TAIL_04,
13466 class t_TAIL_05,
13467 class t_TAIL_06,
13468 class t_TAIL_07,
13469 class t_TAIL_08,
13470 class t_TAIL_09,
13471 class t_TAIL_10,
13472 class t_TAIL_11,
13473 class t_TAIL_12,
13474 class t_TAIL_13,
13475 class t_TAIL_14,
13476 class t_TAIL_15,
13477 class t_TAIL_16,
13478 class t_TAIL_17,
13479 class t_TAIL_18>
13480struct Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13481 t_TAIL_02,
13482 t_TAIL_03,
13483 t_TAIL_04,
13484 t_TAIL_05,
13485 t_TAIL_06,
13486 t_TAIL_07,
13487 t_TAIL_08,
13488 t_TAIL_09,
13489 t_TAIL_10,
13490 t_TAIL_11,
13491 t_TAIL_12,
13492 t_TAIL_13,
13493 t_TAIL_14,
13494 t_TAIL_15,
13495 t_TAIL_16,
13496 t_TAIL_17,
13497 t_TAIL_18>
13498: bsl::integral_constant<size_t,
13499 bsl::is_same<t_TYPE, t_HEAD>::value +
13500 Variant_CountType<t_TYPE, t_TAIL_01,
13501 t_TAIL_02,
13502 t_TAIL_03,
13503 t_TAIL_04,
13504 t_TAIL_05,
13505 t_TAIL_06,
13506 t_TAIL_07,
13507 t_TAIL_08,
13508 t_TAIL_09,
13509 t_TAIL_10,
13510 t_TAIL_11,
13511 t_TAIL_12,
13512 t_TAIL_13,
13513 t_TAIL_14,
13514 t_TAIL_15,
13515 t_TAIL_16,
13516 t_TAIL_17,
13517 t_TAIL_18>::value> {
13518};
13519#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
13520
13521
13522template <class t_TYPE>
13523struct Variant_CountType<t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
13524: bsl::integral_constant<size_t, 0> {
13525};
13526
13527template <class t_TYPE, class t_VARIANT>
13528struct Variant_HasUniqueType;
13529
13530#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
13531template <class t_TYPE, class t_HEAD>
13532struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD> >
13534 Variant_CountType<t_TYPE, t_HEAD>::value ==
13535 1> {
13536};
13537#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
13538
13539#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
13540template <class t_TYPE, class t_HEAD, class t_TAIL_01>
13541struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01> >
13543 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01>::value ==
13544 1> {
13545};
13546#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
13547
13548#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
13549template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13550 class t_TAIL_02>
13551struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13552 t_TAIL_02> >
13554 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13555 t_TAIL_02>::value ==
13556 1> {
13557};
13558#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
13559
13560#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
13561template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13562 class t_TAIL_02,
13563 class t_TAIL_03>
13564struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13565 t_TAIL_02,
13566 t_TAIL_03> >
13568 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13569 t_TAIL_02,
13570 t_TAIL_03>::value ==
13571 1> {
13572};
13573#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
13574
13575#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
13576template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13577 class t_TAIL_02,
13578 class t_TAIL_03,
13579 class t_TAIL_04>
13580struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13581 t_TAIL_02,
13582 t_TAIL_03,
13583 t_TAIL_04> >
13585 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13586 t_TAIL_02,
13587 t_TAIL_03,
13588 t_TAIL_04>::value ==
13589 1> {
13590};
13591#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
13592
13593#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
13594template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13595 class t_TAIL_02,
13596 class t_TAIL_03,
13597 class t_TAIL_04,
13598 class t_TAIL_05>
13599struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13600 t_TAIL_02,
13601 t_TAIL_03,
13602 t_TAIL_04,
13603 t_TAIL_05> >
13605 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13606 t_TAIL_02,
13607 t_TAIL_03,
13608 t_TAIL_04,
13609 t_TAIL_05>::value ==
13610 1> {
13611};
13612#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
13613
13614#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
13615template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13616 class t_TAIL_02,
13617 class t_TAIL_03,
13618 class t_TAIL_04,
13619 class t_TAIL_05,
13620 class t_TAIL_06>
13621struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13622 t_TAIL_02,
13623 t_TAIL_03,
13624 t_TAIL_04,
13625 t_TAIL_05,
13626 t_TAIL_06> >
13628 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13629 t_TAIL_02,
13630 t_TAIL_03,
13631 t_TAIL_04,
13632 t_TAIL_05,
13633 t_TAIL_06>::value ==
13634 1> {
13635};
13636#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
13637
13638#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
13639template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13640 class t_TAIL_02,
13641 class t_TAIL_03,
13642 class t_TAIL_04,
13643 class t_TAIL_05,
13644 class t_TAIL_06,
13645 class t_TAIL_07>
13646struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13647 t_TAIL_02,
13648 t_TAIL_03,
13649 t_TAIL_04,
13650 t_TAIL_05,
13651 t_TAIL_06,
13652 t_TAIL_07> >
13654 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13655 t_TAIL_02,
13656 t_TAIL_03,
13657 t_TAIL_04,
13658 t_TAIL_05,
13659 t_TAIL_06,
13660 t_TAIL_07>::value ==
13661 1> {
13662};
13663#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
13664
13665#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
13666template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13667 class t_TAIL_02,
13668 class t_TAIL_03,
13669 class t_TAIL_04,
13670 class t_TAIL_05,
13671 class t_TAIL_06,
13672 class t_TAIL_07,
13673 class t_TAIL_08>
13674struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13675 t_TAIL_02,
13676 t_TAIL_03,
13677 t_TAIL_04,
13678 t_TAIL_05,
13679 t_TAIL_06,
13680 t_TAIL_07,
13681 t_TAIL_08> >
13683 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13684 t_TAIL_02,
13685 t_TAIL_03,
13686 t_TAIL_04,
13687 t_TAIL_05,
13688 t_TAIL_06,
13689 t_TAIL_07,
13690 t_TAIL_08>::value ==
13691 1> {
13692};
13693#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
13694
13695#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
13696template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13697 class t_TAIL_02,
13698 class t_TAIL_03,
13699 class t_TAIL_04,
13700 class t_TAIL_05,
13701 class t_TAIL_06,
13702 class t_TAIL_07,
13703 class t_TAIL_08,
13704 class t_TAIL_09>
13705struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13706 t_TAIL_02,
13707 t_TAIL_03,
13708 t_TAIL_04,
13709 t_TAIL_05,
13710 t_TAIL_06,
13711 t_TAIL_07,
13712 t_TAIL_08,
13713 t_TAIL_09> >
13715 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13716 t_TAIL_02,
13717 t_TAIL_03,
13718 t_TAIL_04,
13719 t_TAIL_05,
13720 t_TAIL_06,
13721 t_TAIL_07,
13722 t_TAIL_08,
13723 t_TAIL_09>::value ==
13724 1> {
13725};
13726#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
13727
13728#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
13729template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13730 class t_TAIL_02,
13731 class t_TAIL_03,
13732 class t_TAIL_04,
13733 class t_TAIL_05,
13734 class t_TAIL_06,
13735 class t_TAIL_07,
13736 class t_TAIL_08,
13737 class t_TAIL_09,
13738 class t_TAIL_10>
13739struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13740 t_TAIL_02,
13741 t_TAIL_03,
13742 t_TAIL_04,
13743 t_TAIL_05,
13744 t_TAIL_06,
13745 t_TAIL_07,
13746 t_TAIL_08,
13747 t_TAIL_09,
13748 t_TAIL_10> >
13750 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13751 t_TAIL_02,
13752 t_TAIL_03,
13753 t_TAIL_04,
13754 t_TAIL_05,
13755 t_TAIL_06,
13756 t_TAIL_07,
13757 t_TAIL_08,
13758 t_TAIL_09,
13759 t_TAIL_10>::value ==
13760 1> {
13761};
13762#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
13763
13764#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
13765template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13766 class t_TAIL_02,
13767 class t_TAIL_03,
13768 class t_TAIL_04,
13769 class t_TAIL_05,
13770 class t_TAIL_06,
13771 class t_TAIL_07,
13772 class t_TAIL_08,
13773 class t_TAIL_09,
13774 class t_TAIL_10,
13775 class t_TAIL_11>
13776struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13777 t_TAIL_02,
13778 t_TAIL_03,
13779 t_TAIL_04,
13780 t_TAIL_05,
13781 t_TAIL_06,
13782 t_TAIL_07,
13783 t_TAIL_08,
13784 t_TAIL_09,
13785 t_TAIL_10,
13786 t_TAIL_11> >
13788 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13789 t_TAIL_02,
13790 t_TAIL_03,
13791 t_TAIL_04,
13792 t_TAIL_05,
13793 t_TAIL_06,
13794 t_TAIL_07,
13795 t_TAIL_08,
13796 t_TAIL_09,
13797 t_TAIL_10,
13798 t_TAIL_11>::value ==
13799 1> {
13800};
13801#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
13802
13803#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
13804template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13805 class t_TAIL_02,
13806 class t_TAIL_03,
13807 class t_TAIL_04,
13808 class t_TAIL_05,
13809 class t_TAIL_06,
13810 class t_TAIL_07,
13811 class t_TAIL_08,
13812 class t_TAIL_09,
13813 class t_TAIL_10,
13814 class t_TAIL_11,
13815 class t_TAIL_12>
13816struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13817 t_TAIL_02,
13818 t_TAIL_03,
13819 t_TAIL_04,
13820 t_TAIL_05,
13821 t_TAIL_06,
13822 t_TAIL_07,
13823 t_TAIL_08,
13824 t_TAIL_09,
13825 t_TAIL_10,
13826 t_TAIL_11,
13827 t_TAIL_12> >
13829 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13830 t_TAIL_02,
13831 t_TAIL_03,
13832 t_TAIL_04,
13833 t_TAIL_05,
13834 t_TAIL_06,
13835 t_TAIL_07,
13836 t_TAIL_08,
13837 t_TAIL_09,
13838 t_TAIL_10,
13839 t_TAIL_11,
13840 t_TAIL_12>::value ==
13841 1> {
13842};
13843#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
13844
13845#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
13846template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13847 class t_TAIL_02,
13848 class t_TAIL_03,
13849 class t_TAIL_04,
13850 class t_TAIL_05,
13851 class t_TAIL_06,
13852 class t_TAIL_07,
13853 class t_TAIL_08,
13854 class t_TAIL_09,
13855 class t_TAIL_10,
13856 class t_TAIL_11,
13857 class t_TAIL_12,
13858 class t_TAIL_13>
13859struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13860 t_TAIL_02,
13861 t_TAIL_03,
13862 t_TAIL_04,
13863 t_TAIL_05,
13864 t_TAIL_06,
13865 t_TAIL_07,
13866 t_TAIL_08,
13867 t_TAIL_09,
13868 t_TAIL_10,
13869 t_TAIL_11,
13870 t_TAIL_12,
13871 t_TAIL_13> >
13873 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13874 t_TAIL_02,
13875 t_TAIL_03,
13876 t_TAIL_04,
13877 t_TAIL_05,
13878 t_TAIL_06,
13879 t_TAIL_07,
13880 t_TAIL_08,
13881 t_TAIL_09,
13882 t_TAIL_10,
13883 t_TAIL_11,
13884 t_TAIL_12,
13885 t_TAIL_13>::value ==
13886 1> {
13887};
13888#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
13889
13890#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
13891template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13892 class t_TAIL_02,
13893 class t_TAIL_03,
13894 class t_TAIL_04,
13895 class t_TAIL_05,
13896 class t_TAIL_06,
13897 class t_TAIL_07,
13898 class t_TAIL_08,
13899 class t_TAIL_09,
13900 class t_TAIL_10,
13901 class t_TAIL_11,
13902 class t_TAIL_12,
13903 class t_TAIL_13,
13904 class t_TAIL_14>
13905struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13906 t_TAIL_02,
13907 t_TAIL_03,
13908 t_TAIL_04,
13909 t_TAIL_05,
13910 t_TAIL_06,
13911 t_TAIL_07,
13912 t_TAIL_08,
13913 t_TAIL_09,
13914 t_TAIL_10,
13915 t_TAIL_11,
13916 t_TAIL_12,
13917 t_TAIL_13,
13918 t_TAIL_14> >
13920 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13921 t_TAIL_02,
13922 t_TAIL_03,
13923 t_TAIL_04,
13924 t_TAIL_05,
13925 t_TAIL_06,
13926 t_TAIL_07,
13927 t_TAIL_08,
13928 t_TAIL_09,
13929 t_TAIL_10,
13930 t_TAIL_11,
13931 t_TAIL_12,
13932 t_TAIL_13,
13933 t_TAIL_14>::value ==
13934 1> {
13935};
13936#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
13937
13938#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
13939template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13940 class t_TAIL_02,
13941 class t_TAIL_03,
13942 class t_TAIL_04,
13943 class t_TAIL_05,
13944 class t_TAIL_06,
13945 class t_TAIL_07,
13946 class t_TAIL_08,
13947 class t_TAIL_09,
13948 class t_TAIL_10,
13949 class t_TAIL_11,
13950 class t_TAIL_12,
13951 class t_TAIL_13,
13952 class t_TAIL_14,
13953 class t_TAIL_15>
13954struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
13955 t_TAIL_02,
13956 t_TAIL_03,
13957 t_TAIL_04,
13958 t_TAIL_05,
13959 t_TAIL_06,
13960 t_TAIL_07,
13961 t_TAIL_08,
13962 t_TAIL_09,
13963 t_TAIL_10,
13964 t_TAIL_11,
13965 t_TAIL_12,
13966 t_TAIL_13,
13967 t_TAIL_14,
13968 t_TAIL_15> >
13970 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
13971 t_TAIL_02,
13972 t_TAIL_03,
13973 t_TAIL_04,
13974 t_TAIL_05,
13975 t_TAIL_06,
13976 t_TAIL_07,
13977 t_TAIL_08,
13978 t_TAIL_09,
13979 t_TAIL_10,
13980 t_TAIL_11,
13981 t_TAIL_12,
13982 t_TAIL_13,
13983 t_TAIL_14,
13984 t_TAIL_15>::value ==
13985 1> {
13986};
13987#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
13988
13989#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
13990template <class t_TYPE, class t_HEAD, class t_TAIL_01,
13991 class t_TAIL_02,
13992 class t_TAIL_03,
13993 class t_TAIL_04,
13994 class t_TAIL_05,
13995 class t_TAIL_06,
13996 class t_TAIL_07,
13997 class t_TAIL_08,
13998 class t_TAIL_09,
13999 class t_TAIL_10,
14000 class t_TAIL_11,
14001 class t_TAIL_12,
14002 class t_TAIL_13,
14003 class t_TAIL_14,
14004 class t_TAIL_15,
14005 class t_TAIL_16>
14006struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
14007 t_TAIL_02,
14008 t_TAIL_03,
14009 t_TAIL_04,
14010 t_TAIL_05,
14011 t_TAIL_06,
14012 t_TAIL_07,
14013 t_TAIL_08,
14014 t_TAIL_09,
14015 t_TAIL_10,
14016 t_TAIL_11,
14017 t_TAIL_12,
14018 t_TAIL_13,
14019 t_TAIL_14,
14020 t_TAIL_15,
14021 t_TAIL_16> >
14023 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
14024 t_TAIL_02,
14025 t_TAIL_03,
14026 t_TAIL_04,
14027 t_TAIL_05,
14028 t_TAIL_06,
14029 t_TAIL_07,
14030 t_TAIL_08,
14031 t_TAIL_09,
14032 t_TAIL_10,
14033 t_TAIL_11,
14034 t_TAIL_12,
14035 t_TAIL_13,
14036 t_TAIL_14,
14037 t_TAIL_15,
14038 t_TAIL_16>::value ==
14039 1> {
14040};
14041#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
14042
14043#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
14044template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14045 class t_TAIL_02,
14046 class t_TAIL_03,
14047 class t_TAIL_04,
14048 class t_TAIL_05,
14049 class t_TAIL_06,
14050 class t_TAIL_07,
14051 class t_TAIL_08,
14052 class t_TAIL_09,
14053 class t_TAIL_10,
14054 class t_TAIL_11,
14055 class t_TAIL_12,
14056 class t_TAIL_13,
14057 class t_TAIL_14,
14058 class t_TAIL_15,
14059 class t_TAIL_16,
14060 class t_TAIL_17>
14061struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
14062 t_TAIL_02,
14063 t_TAIL_03,
14064 t_TAIL_04,
14065 t_TAIL_05,
14066 t_TAIL_06,
14067 t_TAIL_07,
14068 t_TAIL_08,
14069 t_TAIL_09,
14070 t_TAIL_10,
14071 t_TAIL_11,
14072 t_TAIL_12,
14073 t_TAIL_13,
14074 t_TAIL_14,
14075 t_TAIL_15,
14076 t_TAIL_16,
14077 t_TAIL_17> >
14079 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
14080 t_TAIL_02,
14081 t_TAIL_03,
14082 t_TAIL_04,
14083 t_TAIL_05,
14084 t_TAIL_06,
14085 t_TAIL_07,
14086 t_TAIL_08,
14087 t_TAIL_09,
14088 t_TAIL_10,
14089 t_TAIL_11,
14090 t_TAIL_12,
14091 t_TAIL_13,
14092 t_TAIL_14,
14093 t_TAIL_15,
14094 t_TAIL_16,
14095 t_TAIL_17>::value ==
14096 1> {
14097};
14098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
14099
14100#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
14101template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14102 class t_TAIL_02,
14103 class t_TAIL_03,
14104 class t_TAIL_04,
14105 class t_TAIL_05,
14106 class t_TAIL_06,
14107 class t_TAIL_07,
14108 class t_TAIL_08,
14109 class t_TAIL_09,
14110 class t_TAIL_10,
14111 class t_TAIL_11,
14112 class t_TAIL_12,
14113 class t_TAIL_13,
14114 class t_TAIL_14,
14115 class t_TAIL_15,
14116 class t_TAIL_16,
14117 class t_TAIL_17,
14118 class t_TAIL_18>
14119struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
14120 t_TAIL_02,
14121 t_TAIL_03,
14122 t_TAIL_04,
14123 t_TAIL_05,
14124 t_TAIL_06,
14125 t_TAIL_07,
14126 t_TAIL_08,
14127 t_TAIL_09,
14128 t_TAIL_10,
14129 t_TAIL_11,
14130 t_TAIL_12,
14131 t_TAIL_13,
14132 t_TAIL_14,
14133 t_TAIL_15,
14134 t_TAIL_16,
14135 t_TAIL_17,
14136 t_TAIL_18> >
14138 Variant_CountType<t_TYPE, t_HEAD, t_TAIL_01,
14139 t_TAIL_02,
14140 t_TAIL_03,
14141 t_TAIL_04,
14142 t_TAIL_05,
14143 t_TAIL_06,
14144 t_TAIL_07,
14145 t_TAIL_08,
14146 t_TAIL_09,
14147 t_TAIL_10,
14148 t_TAIL_11,
14149 t_TAIL_12,
14150 t_TAIL_13,
14151 t_TAIL_14,
14152 t_TAIL_15,
14153 t_TAIL_16,
14154 t_TAIL_17,
14155 t_TAIL_18>::value ==
14156 1> {
14157};
14158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
14159
14160
14161template <class t_TYPE,
14162 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE
14163#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
14164 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
14165#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
14166
14167#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
14168 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
14169#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
14170
14171#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
14172 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
14173#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
14174
14175#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
14176 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
14177#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
14178
14179#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
14180 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
14181#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
14182
14183#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
14184 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
14185#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
14186
14187#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
14188 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
14189#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
14190
14191#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
14192 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
14193#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
14194
14195#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
14196 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
14197#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
14198
14199#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
14200 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
14201#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
14202
14203#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
14204 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
14205#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
14206
14207#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
14208 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
14209#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
14210
14211#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
14212 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
14213#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
14214
14215#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
14216 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
14217#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
14218
14219#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
14220 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
14221#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
14222
14223#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
14224 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
14225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
14226
14227#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
14228 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
14229#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
14230
14231#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
14232 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
14233#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
14234 , class = BSLS_COMPILERFEATURES_NILT>
14235struct Variant_CountCVType;
14236
14237#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
14238template <class t_TYPE, class t_HEAD>
14239struct Variant_CountCVType<t_TYPE, t_HEAD>
14241 size_t,
14242 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14243 typename bsl::remove_cv<t_HEAD>::type>::value +
14244 Variant_CountCVType<t_TYPE>::value> {
14245};
14246#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
14247
14248#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
14249template <class t_TYPE, class t_HEAD, class t_TAIL_01>
14250struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01>
14252 size_t,
14253 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14254 typename bsl::remove_cv<t_HEAD>::type>::value +
14255 Variant_CountCVType<t_TYPE, t_TAIL_01>::value> {
14256};
14257#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
14258
14259#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
14260template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14261 class t_TAIL_02>
14262struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14263 t_TAIL_02>
14265 size_t,
14266 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14267 typename bsl::remove_cv<t_HEAD>::type>::value +
14268 Variant_CountCVType<t_TYPE, t_TAIL_01,
14269 t_TAIL_02>::value> {
14270};
14271#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
14272
14273#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
14274template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14275 class t_TAIL_02,
14276 class t_TAIL_03>
14277struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14278 t_TAIL_02,
14279 t_TAIL_03>
14281 size_t,
14282 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14283 typename bsl::remove_cv<t_HEAD>::type>::value +
14284 Variant_CountCVType<t_TYPE, t_TAIL_01,
14285 t_TAIL_02,
14286 t_TAIL_03>::value> {
14287};
14288#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
14289
14290#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
14291template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14292 class t_TAIL_02,
14293 class t_TAIL_03,
14294 class t_TAIL_04>
14295struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14296 t_TAIL_02,
14297 t_TAIL_03,
14298 t_TAIL_04>
14300 size_t,
14301 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14302 typename bsl::remove_cv<t_HEAD>::type>::value +
14303 Variant_CountCVType<t_TYPE, t_TAIL_01,
14304 t_TAIL_02,
14305 t_TAIL_03,
14306 t_TAIL_04>::value> {
14307};
14308#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
14309
14310#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
14311template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14312 class t_TAIL_02,
14313 class t_TAIL_03,
14314 class t_TAIL_04,
14315 class t_TAIL_05>
14316struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14317 t_TAIL_02,
14318 t_TAIL_03,
14319 t_TAIL_04,
14320 t_TAIL_05>
14322 size_t,
14323 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14324 typename bsl::remove_cv<t_HEAD>::type>::value +
14325 Variant_CountCVType<t_TYPE, t_TAIL_01,
14326 t_TAIL_02,
14327 t_TAIL_03,
14328 t_TAIL_04,
14329 t_TAIL_05>::value> {
14330};
14331#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
14332
14333#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
14334template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14335 class t_TAIL_02,
14336 class t_TAIL_03,
14337 class t_TAIL_04,
14338 class t_TAIL_05,
14339 class t_TAIL_06>
14340struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14341 t_TAIL_02,
14342 t_TAIL_03,
14343 t_TAIL_04,
14344 t_TAIL_05,
14345 t_TAIL_06>
14347 size_t,
14348 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14349 typename bsl::remove_cv<t_HEAD>::type>::value +
14350 Variant_CountCVType<t_TYPE, t_TAIL_01,
14351 t_TAIL_02,
14352 t_TAIL_03,
14353 t_TAIL_04,
14354 t_TAIL_05,
14355 t_TAIL_06>::value> {
14356};
14357#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
14358
14359#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
14360template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14361 class t_TAIL_02,
14362 class t_TAIL_03,
14363 class t_TAIL_04,
14364 class t_TAIL_05,
14365 class t_TAIL_06,
14366 class t_TAIL_07>
14367struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14368 t_TAIL_02,
14369 t_TAIL_03,
14370 t_TAIL_04,
14371 t_TAIL_05,
14372 t_TAIL_06,
14373 t_TAIL_07>
14375 size_t,
14376 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14377 typename bsl::remove_cv<t_HEAD>::type>::value +
14378 Variant_CountCVType<t_TYPE, t_TAIL_01,
14379 t_TAIL_02,
14380 t_TAIL_03,
14381 t_TAIL_04,
14382 t_TAIL_05,
14383 t_TAIL_06,
14384 t_TAIL_07>::value> {
14385};
14386#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
14387
14388#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
14389template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14390 class t_TAIL_02,
14391 class t_TAIL_03,
14392 class t_TAIL_04,
14393 class t_TAIL_05,
14394 class t_TAIL_06,
14395 class t_TAIL_07,
14396 class t_TAIL_08>
14397struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14398 t_TAIL_02,
14399 t_TAIL_03,
14400 t_TAIL_04,
14401 t_TAIL_05,
14402 t_TAIL_06,
14403 t_TAIL_07,
14404 t_TAIL_08>
14406 size_t,
14407 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14408 typename bsl::remove_cv<t_HEAD>::type>::value +
14409 Variant_CountCVType<t_TYPE, t_TAIL_01,
14410 t_TAIL_02,
14411 t_TAIL_03,
14412 t_TAIL_04,
14413 t_TAIL_05,
14414 t_TAIL_06,
14415 t_TAIL_07,
14416 t_TAIL_08>::value> {
14417};
14418#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
14419
14420#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
14421template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14422 class t_TAIL_02,
14423 class t_TAIL_03,
14424 class t_TAIL_04,
14425 class t_TAIL_05,
14426 class t_TAIL_06,
14427 class t_TAIL_07,
14428 class t_TAIL_08,
14429 class t_TAIL_09>
14430struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14431 t_TAIL_02,
14432 t_TAIL_03,
14433 t_TAIL_04,
14434 t_TAIL_05,
14435 t_TAIL_06,
14436 t_TAIL_07,
14437 t_TAIL_08,
14438 t_TAIL_09>
14440 size_t,
14441 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14442 typename bsl::remove_cv<t_HEAD>::type>::value +
14443 Variant_CountCVType<t_TYPE, t_TAIL_01,
14444 t_TAIL_02,
14445 t_TAIL_03,
14446 t_TAIL_04,
14447 t_TAIL_05,
14448 t_TAIL_06,
14449 t_TAIL_07,
14450 t_TAIL_08,
14451 t_TAIL_09>::value> {
14452};
14453#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
14454
14455#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
14456template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14457 class t_TAIL_02,
14458 class t_TAIL_03,
14459 class t_TAIL_04,
14460 class t_TAIL_05,
14461 class t_TAIL_06,
14462 class t_TAIL_07,
14463 class t_TAIL_08,
14464 class t_TAIL_09,
14465 class t_TAIL_10>
14466struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14467 t_TAIL_02,
14468 t_TAIL_03,
14469 t_TAIL_04,
14470 t_TAIL_05,
14471 t_TAIL_06,
14472 t_TAIL_07,
14473 t_TAIL_08,
14474 t_TAIL_09,
14475 t_TAIL_10>
14477 size_t,
14478 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14479 typename bsl::remove_cv<t_HEAD>::type>::value +
14480 Variant_CountCVType<t_TYPE, t_TAIL_01,
14481 t_TAIL_02,
14482 t_TAIL_03,
14483 t_TAIL_04,
14484 t_TAIL_05,
14485 t_TAIL_06,
14486 t_TAIL_07,
14487 t_TAIL_08,
14488 t_TAIL_09,
14489 t_TAIL_10>::value> {
14490};
14491#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
14492
14493#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
14494template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14495 class t_TAIL_02,
14496 class t_TAIL_03,
14497 class t_TAIL_04,
14498 class t_TAIL_05,
14499 class t_TAIL_06,
14500 class t_TAIL_07,
14501 class t_TAIL_08,
14502 class t_TAIL_09,
14503 class t_TAIL_10,
14504 class t_TAIL_11>
14505struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14506 t_TAIL_02,
14507 t_TAIL_03,
14508 t_TAIL_04,
14509 t_TAIL_05,
14510 t_TAIL_06,
14511 t_TAIL_07,
14512 t_TAIL_08,
14513 t_TAIL_09,
14514 t_TAIL_10,
14515 t_TAIL_11>
14517 size_t,
14518 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14519 typename bsl::remove_cv<t_HEAD>::type>::value +
14520 Variant_CountCVType<t_TYPE, t_TAIL_01,
14521 t_TAIL_02,
14522 t_TAIL_03,
14523 t_TAIL_04,
14524 t_TAIL_05,
14525 t_TAIL_06,
14526 t_TAIL_07,
14527 t_TAIL_08,
14528 t_TAIL_09,
14529 t_TAIL_10,
14530 t_TAIL_11>::value> {
14531};
14532#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
14533
14534#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
14535template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14536 class t_TAIL_02,
14537 class t_TAIL_03,
14538 class t_TAIL_04,
14539 class t_TAIL_05,
14540 class t_TAIL_06,
14541 class t_TAIL_07,
14542 class t_TAIL_08,
14543 class t_TAIL_09,
14544 class t_TAIL_10,
14545 class t_TAIL_11,
14546 class t_TAIL_12>
14547struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14548 t_TAIL_02,
14549 t_TAIL_03,
14550 t_TAIL_04,
14551 t_TAIL_05,
14552 t_TAIL_06,
14553 t_TAIL_07,
14554 t_TAIL_08,
14555 t_TAIL_09,
14556 t_TAIL_10,
14557 t_TAIL_11,
14558 t_TAIL_12>
14560 size_t,
14561 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14562 typename bsl::remove_cv<t_HEAD>::type>::value +
14563 Variant_CountCVType<t_TYPE, t_TAIL_01,
14564 t_TAIL_02,
14565 t_TAIL_03,
14566 t_TAIL_04,
14567 t_TAIL_05,
14568 t_TAIL_06,
14569 t_TAIL_07,
14570 t_TAIL_08,
14571 t_TAIL_09,
14572 t_TAIL_10,
14573 t_TAIL_11,
14574 t_TAIL_12>::value> {
14575};
14576#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
14577
14578#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
14579template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14580 class t_TAIL_02,
14581 class t_TAIL_03,
14582 class t_TAIL_04,
14583 class t_TAIL_05,
14584 class t_TAIL_06,
14585 class t_TAIL_07,
14586 class t_TAIL_08,
14587 class t_TAIL_09,
14588 class t_TAIL_10,
14589 class t_TAIL_11,
14590 class t_TAIL_12,
14591 class t_TAIL_13>
14592struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14593 t_TAIL_02,
14594 t_TAIL_03,
14595 t_TAIL_04,
14596 t_TAIL_05,
14597 t_TAIL_06,
14598 t_TAIL_07,
14599 t_TAIL_08,
14600 t_TAIL_09,
14601 t_TAIL_10,
14602 t_TAIL_11,
14603 t_TAIL_12,
14604 t_TAIL_13>
14606 size_t,
14607 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14608 typename bsl::remove_cv<t_HEAD>::type>::value +
14609 Variant_CountCVType<t_TYPE, t_TAIL_01,
14610 t_TAIL_02,
14611 t_TAIL_03,
14612 t_TAIL_04,
14613 t_TAIL_05,
14614 t_TAIL_06,
14615 t_TAIL_07,
14616 t_TAIL_08,
14617 t_TAIL_09,
14618 t_TAIL_10,
14619 t_TAIL_11,
14620 t_TAIL_12,
14621 t_TAIL_13>::value> {
14622};
14623#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
14624
14625#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
14626template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14627 class t_TAIL_02,
14628 class t_TAIL_03,
14629 class t_TAIL_04,
14630 class t_TAIL_05,
14631 class t_TAIL_06,
14632 class t_TAIL_07,
14633 class t_TAIL_08,
14634 class t_TAIL_09,
14635 class t_TAIL_10,
14636 class t_TAIL_11,
14637 class t_TAIL_12,
14638 class t_TAIL_13,
14639 class t_TAIL_14>
14640struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14641 t_TAIL_02,
14642 t_TAIL_03,
14643 t_TAIL_04,
14644 t_TAIL_05,
14645 t_TAIL_06,
14646 t_TAIL_07,
14647 t_TAIL_08,
14648 t_TAIL_09,
14649 t_TAIL_10,
14650 t_TAIL_11,
14651 t_TAIL_12,
14652 t_TAIL_13,
14653 t_TAIL_14>
14655 size_t,
14656 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14657 typename bsl::remove_cv<t_HEAD>::type>::value +
14658 Variant_CountCVType<t_TYPE, t_TAIL_01,
14659 t_TAIL_02,
14660 t_TAIL_03,
14661 t_TAIL_04,
14662 t_TAIL_05,
14663 t_TAIL_06,
14664 t_TAIL_07,
14665 t_TAIL_08,
14666 t_TAIL_09,
14667 t_TAIL_10,
14668 t_TAIL_11,
14669 t_TAIL_12,
14670 t_TAIL_13,
14671 t_TAIL_14>::value> {
14672};
14673#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
14674
14675#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
14676template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14677 class t_TAIL_02,
14678 class t_TAIL_03,
14679 class t_TAIL_04,
14680 class t_TAIL_05,
14681 class t_TAIL_06,
14682 class t_TAIL_07,
14683 class t_TAIL_08,
14684 class t_TAIL_09,
14685 class t_TAIL_10,
14686 class t_TAIL_11,
14687 class t_TAIL_12,
14688 class t_TAIL_13,
14689 class t_TAIL_14,
14690 class t_TAIL_15>
14691struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14692 t_TAIL_02,
14693 t_TAIL_03,
14694 t_TAIL_04,
14695 t_TAIL_05,
14696 t_TAIL_06,
14697 t_TAIL_07,
14698 t_TAIL_08,
14699 t_TAIL_09,
14700 t_TAIL_10,
14701 t_TAIL_11,
14702 t_TAIL_12,
14703 t_TAIL_13,
14704 t_TAIL_14,
14705 t_TAIL_15>
14707 size_t,
14708 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14709 typename bsl::remove_cv<t_HEAD>::type>::value +
14710 Variant_CountCVType<t_TYPE, t_TAIL_01,
14711 t_TAIL_02,
14712 t_TAIL_03,
14713 t_TAIL_04,
14714 t_TAIL_05,
14715 t_TAIL_06,
14716 t_TAIL_07,
14717 t_TAIL_08,
14718 t_TAIL_09,
14719 t_TAIL_10,
14720 t_TAIL_11,
14721 t_TAIL_12,
14722 t_TAIL_13,
14723 t_TAIL_14,
14724 t_TAIL_15>::value> {
14725};
14726#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
14727
14728#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
14729template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14730 class t_TAIL_02,
14731 class t_TAIL_03,
14732 class t_TAIL_04,
14733 class t_TAIL_05,
14734 class t_TAIL_06,
14735 class t_TAIL_07,
14736 class t_TAIL_08,
14737 class t_TAIL_09,
14738 class t_TAIL_10,
14739 class t_TAIL_11,
14740 class t_TAIL_12,
14741 class t_TAIL_13,
14742 class t_TAIL_14,
14743 class t_TAIL_15,
14744 class t_TAIL_16>
14745struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14746 t_TAIL_02,
14747 t_TAIL_03,
14748 t_TAIL_04,
14749 t_TAIL_05,
14750 t_TAIL_06,
14751 t_TAIL_07,
14752 t_TAIL_08,
14753 t_TAIL_09,
14754 t_TAIL_10,
14755 t_TAIL_11,
14756 t_TAIL_12,
14757 t_TAIL_13,
14758 t_TAIL_14,
14759 t_TAIL_15,
14760 t_TAIL_16>
14762 size_t,
14763 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14764 typename bsl::remove_cv<t_HEAD>::type>::value +
14765 Variant_CountCVType<t_TYPE, t_TAIL_01,
14766 t_TAIL_02,
14767 t_TAIL_03,
14768 t_TAIL_04,
14769 t_TAIL_05,
14770 t_TAIL_06,
14771 t_TAIL_07,
14772 t_TAIL_08,
14773 t_TAIL_09,
14774 t_TAIL_10,
14775 t_TAIL_11,
14776 t_TAIL_12,
14777 t_TAIL_13,
14778 t_TAIL_14,
14779 t_TAIL_15,
14780 t_TAIL_16>::value> {
14781};
14782#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
14783
14784#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
14785template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14786 class t_TAIL_02,
14787 class t_TAIL_03,
14788 class t_TAIL_04,
14789 class t_TAIL_05,
14790 class t_TAIL_06,
14791 class t_TAIL_07,
14792 class t_TAIL_08,
14793 class t_TAIL_09,
14794 class t_TAIL_10,
14795 class t_TAIL_11,
14796 class t_TAIL_12,
14797 class t_TAIL_13,
14798 class t_TAIL_14,
14799 class t_TAIL_15,
14800 class t_TAIL_16,
14801 class t_TAIL_17>
14802struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14803 t_TAIL_02,
14804 t_TAIL_03,
14805 t_TAIL_04,
14806 t_TAIL_05,
14807 t_TAIL_06,
14808 t_TAIL_07,
14809 t_TAIL_08,
14810 t_TAIL_09,
14811 t_TAIL_10,
14812 t_TAIL_11,
14813 t_TAIL_12,
14814 t_TAIL_13,
14815 t_TAIL_14,
14816 t_TAIL_15,
14817 t_TAIL_16,
14818 t_TAIL_17>
14820 size_t,
14821 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14822 typename bsl::remove_cv<t_HEAD>::type>::value +
14823 Variant_CountCVType<t_TYPE, t_TAIL_01,
14824 t_TAIL_02,
14825 t_TAIL_03,
14826 t_TAIL_04,
14827 t_TAIL_05,
14828 t_TAIL_06,
14829 t_TAIL_07,
14830 t_TAIL_08,
14831 t_TAIL_09,
14832 t_TAIL_10,
14833 t_TAIL_11,
14834 t_TAIL_12,
14835 t_TAIL_13,
14836 t_TAIL_14,
14837 t_TAIL_15,
14838 t_TAIL_16,
14839 t_TAIL_17>::value> {
14840};
14841#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
14842
14843#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
14844template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14845 class t_TAIL_02,
14846 class t_TAIL_03,
14847 class t_TAIL_04,
14848 class t_TAIL_05,
14849 class t_TAIL_06,
14850 class t_TAIL_07,
14851 class t_TAIL_08,
14852 class t_TAIL_09,
14853 class t_TAIL_10,
14854 class t_TAIL_11,
14855 class t_TAIL_12,
14856 class t_TAIL_13,
14857 class t_TAIL_14,
14858 class t_TAIL_15,
14859 class t_TAIL_16,
14860 class t_TAIL_17,
14861 class t_TAIL_18>
14862struct Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14863 t_TAIL_02,
14864 t_TAIL_03,
14865 t_TAIL_04,
14866 t_TAIL_05,
14867 t_TAIL_06,
14868 t_TAIL_07,
14869 t_TAIL_08,
14870 t_TAIL_09,
14871 t_TAIL_10,
14872 t_TAIL_11,
14873 t_TAIL_12,
14874 t_TAIL_13,
14875 t_TAIL_14,
14876 t_TAIL_15,
14877 t_TAIL_16,
14878 t_TAIL_17,
14879 t_TAIL_18>
14881 size_t,
14882 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
14883 typename bsl::remove_cv<t_HEAD>::type>::value +
14884 Variant_CountCVType<t_TYPE, t_TAIL_01,
14885 t_TAIL_02,
14886 t_TAIL_03,
14887 t_TAIL_04,
14888 t_TAIL_05,
14889 t_TAIL_06,
14890 t_TAIL_07,
14891 t_TAIL_08,
14892 t_TAIL_09,
14893 t_TAIL_10,
14894 t_TAIL_11,
14895 t_TAIL_12,
14896 t_TAIL_13,
14897 t_TAIL_14,
14898 t_TAIL_15,
14899 t_TAIL_16,
14900 t_TAIL_17,
14901 t_TAIL_18>::value> {
14902};
14903#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
14904
14905
14906template <class t_TYPE>
14907struct Variant_CountCVType<t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
14908: bsl::integral_constant<size_t, 0> {
14909};
14910
14911template <class t_TYPE, class t_VARIANT>
14912struct Variant_HasUniqueCVType;
14913
14914#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
14915template <class t_TYPE, class t_HEAD>
14916struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD> >
14918 bool,
14919 Variant_CountCVType<t_TYPE, t_HEAD>::value == 1> {
14920};
14921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 0
14922
14923#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
14924template <class t_TYPE, class t_HEAD, class t_TAIL_01>
14925struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01> >
14927 bool,
14928 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01>::value == 1> {
14929};
14930#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 1
14931
14932#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
14933template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14934 class t_TAIL_02>
14935struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
14936 t_TAIL_02> >
14938 bool,
14939 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14940 t_TAIL_02>::value == 1> {
14941};
14942#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 2
14943
14944#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
14945template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14946 class t_TAIL_02,
14947 class t_TAIL_03>
14948struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
14949 t_TAIL_02,
14950 t_TAIL_03> >
14952 bool,
14953 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14954 t_TAIL_02,
14955 t_TAIL_03>::value == 1> {
14956};
14957#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 3
14958
14959#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
14960template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14961 class t_TAIL_02,
14962 class t_TAIL_03,
14963 class t_TAIL_04>
14964struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
14965 t_TAIL_02,
14966 t_TAIL_03,
14967 t_TAIL_04> >
14969 bool,
14970 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14971 t_TAIL_02,
14972 t_TAIL_03,
14973 t_TAIL_04>::value == 1> {
14974};
14975#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 4
14976
14977#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
14978template <class t_TYPE, class t_HEAD, class t_TAIL_01,
14979 class t_TAIL_02,
14980 class t_TAIL_03,
14981 class t_TAIL_04,
14982 class t_TAIL_05>
14983struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
14984 t_TAIL_02,
14985 t_TAIL_03,
14986 t_TAIL_04,
14987 t_TAIL_05> >
14989 bool,
14990 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
14991 t_TAIL_02,
14992 t_TAIL_03,
14993 t_TAIL_04,
14994 t_TAIL_05>::value == 1> {
14995};
14996#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 5
14997
14998#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
14999template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15000 class t_TAIL_02,
15001 class t_TAIL_03,
15002 class t_TAIL_04,
15003 class t_TAIL_05,
15004 class t_TAIL_06>
15005struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15006 t_TAIL_02,
15007 t_TAIL_03,
15008 t_TAIL_04,
15009 t_TAIL_05,
15010 t_TAIL_06> >
15012 bool,
15013 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15014 t_TAIL_02,
15015 t_TAIL_03,
15016 t_TAIL_04,
15017 t_TAIL_05,
15018 t_TAIL_06>::value == 1> {
15019};
15020#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 6
15021
15022#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
15023template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15024 class t_TAIL_02,
15025 class t_TAIL_03,
15026 class t_TAIL_04,
15027 class t_TAIL_05,
15028 class t_TAIL_06,
15029 class t_TAIL_07>
15030struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15031 t_TAIL_02,
15032 t_TAIL_03,
15033 t_TAIL_04,
15034 t_TAIL_05,
15035 t_TAIL_06,
15036 t_TAIL_07> >
15038 bool,
15039 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15040 t_TAIL_02,
15041 t_TAIL_03,
15042 t_TAIL_04,
15043 t_TAIL_05,
15044 t_TAIL_06,
15045 t_TAIL_07>::value == 1> {
15046};
15047#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 7
15048
15049#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
15050template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15051 class t_TAIL_02,
15052 class t_TAIL_03,
15053 class t_TAIL_04,
15054 class t_TAIL_05,
15055 class t_TAIL_06,
15056 class t_TAIL_07,
15057 class t_TAIL_08>
15058struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15059 t_TAIL_02,
15060 t_TAIL_03,
15061 t_TAIL_04,
15062 t_TAIL_05,
15063 t_TAIL_06,
15064 t_TAIL_07,
15065 t_TAIL_08> >
15067 bool,
15068 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15069 t_TAIL_02,
15070 t_TAIL_03,
15071 t_TAIL_04,
15072 t_TAIL_05,
15073 t_TAIL_06,
15074 t_TAIL_07,
15075 t_TAIL_08>::value == 1> {
15076};
15077#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 8
15078
15079#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
15080template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15081 class t_TAIL_02,
15082 class t_TAIL_03,
15083 class t_TAIL_04,
15084 class t_TAIL_05,
15085 class t_TAIL_06,
15086 class t_TAIL_07,
15087 class t_TAIL_08,
15088 class t_TAIL_09>
15089struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15090 t_TAIL_02,
15091 t_TAIL_03,
15092 t_TAIL_04,
15093 t_TAIL_05,
15094 t_TAIL_06,
15095 t_TAIL_07,
15096 t_TAIL_08,
15097 t_TAIL_09> >
15099 bool,
15100 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15101 t_TAIL_02,
15102 t_TAIL_03,
15103 t_TAIL_04,
15104 t_TAIL_05,
15105 t_TAIL_06,
15106 t_TAIL_07,
15107 t_TAIL_08,
15108 t_TAIL_09>::value == 1> {
15109};
15110#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 9
15111
15112#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
15113template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15114 class t_TAIL_02,
15115 class t_TAIL_03,
15116 class t_TAIL_04,
15117 class t_TAIL_05,
15118 class t_TAIL_06,
15119 class t_TAIL_07,
15120 class t_TAIL_08,
15121 class t_TAIL_09,
15122 class t_TAIL_10>
15123struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15124 t_TAIL_02,
15125 t_TAIL_03,
15126 t_TAIL_04,
15127 t_TAIL_05,
15128 t_TAIL_06,
15129 t_TAIL_07,
15130 t_TAIL_08,
15131 t_TAIL_09,
15132 t_TAIL_10> >
15134 bool,
15135 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15136 t_TAIL_02,
15137 t_TAIL_03,
15138 t_TAIL_04,
15139 t_TAIL_05,
15140 t_TAIL_06,
15141 t_TAIL_07,
15142 t_TAIL_08,
15143 t_TAIL_09,
15144 t_TAIL_10>::value == 1> {
15145};
15146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 10
15147
15148#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
15149template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15150 class t_TAIL_02,
15151 class t_TAIL_03,
15152 class t_TAIL_04,
15153 class t_TAIL_05,
15154 class t_TAIL_06,
15155 class t_TAIL_07,
15156 class t_TAIL_08,
15157 class t_TAIL_09,
15158 class t_TAIL_10,
15159 class t_TAIL_11>
15160struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15161 t_TAIL_02,
15162 t_TAIL_03,
15163 t_TAIL_04,
15164 t_TAIL_05,
15165 t_TAIL_06,
15166 t_TAIL_07,
15167 t_TAIL_08,
15168 t_TAIL_09,
15169 t_TAIL_10,
15170 t_TAIL_11> >
15172 bool,
15173 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15174 t_TAIL_02,
15175 t_TAIL_03,
15176 t_TAIL_04,
15177 t_TAIL_05,
15178 t_TAIL_06,
15179 t_TAIL_07,
15180 t_TAIL_08,
15181 t_TAIL_09,
15182 t_TAIL_10,
15183 t_TAIL_11>::value == 1> {
15184};
15185#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 11
15186
15187#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
15188template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15189 class t_TAIL_02,
15190 class t_TAIL_03,
15191 class t_TAIL_04,
15192 class t_TAIL_05,
15193 class t_TAIL_06,
15194 class t_TAIL_07,
15195 class t_TAIL_08,
15196 class t_TAIL_09,
15197 class t_TAIL_10,
15198 class t_TAIL_11,
15199 class t_TAIL_12>
15200struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15201 t_TAIL_02,
15202 t_TAIL_03,
15203 t_TAIL_04,
15204 t_TAIL_05,
15205 t_TAIL_06,
15206 t_TAIL_07,
15207 t_TAIL_08,
15208 t_TAIL_09,
15209 t_TAIL_10,
15210 t_TAIL_11,
15211 t_TAIL_12> >
15213 bool,
15214 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15215 t_TAIL_02,
15216 t_TAIL_03,
15217 t_TAIL_04,
15218 t_TAIL_05,
15219 t_TAIL_06,
15220 t_TAIL_07,
15221 t_TAIL_08,
15222 t_TAIL_09,
15223 t_TAIL_10,
15224 t_TAIL_11,
15225 t_TAIL_12>::value == 1> {
15226};
15227#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 12
15228
15229#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
15230template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15231 class t_TAIL_02,
15232 class t_TAIL_03,
15233 class t_TAIL_04,
15234 class t_TAIL_05,
15235 class t_TAIL_06,
15236 class t_TAIL_07,
15237 class t_TAIL_08,
15238 class t_TAIL_09,
15239 class t_TAIL_10,
15240 class t_TAIL_11,
15241 class t_TAIL_12,
15242 class t_TAIL_13>
15243struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15244 t_TAIL_02,
15245 t_TAIL_03,
15246 t_TAIL_04,
15247 t_TAIL_05,
15248 t_TAIL_06,
15249 t_TAIL_07,
15250 t_TAIL_08,
15251 t_TAIL_09,
15252 t_TAIL_10,
15253 t_TAIL_11,
15254 t_TAIL_12,
15255 t_TAIL_13> >
15257 bool,
15258 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15259 t_TAIL_02,
15260 t_TAIL_03,
15261 t_TAIL_04,
15262 t_TAIL_05,
15263 t_TAIL_06,
15264 t_TAIL_07,
15265 t_TAIL_08,
15266 t_TAIL_09,
15267 t_TAIL_10,
15268 t_TAIL_11,
15269 t_TAIL_12,
15270 t_TAIL_13>::value == 1> {
15271};
15272#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 13
15273
15274#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
15275template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15276 class t_TAIL_02,
15277 class t_TAIL_03,
15278 class t_TAIL_04,
15279 class t_TAIL_05,
15280 class t_TAIL_06,
15281 class t_TAIL_07,
15282 class t_TAIL_08,
15283 class t_TAIL_09,
15284 class t_TAIL_10,
15285 class t_TAIL_11,
15286 class t_TAIL_12,
15287 class t_TAIL_13,
15288 class t_TAIL_14>
15289struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15290 t_TAIL_02,
15291 t_TAIL_03,
15292 t_TAIL_04,
15293 t_TAIL_05,
15294 t_TAIL_06,
15295 t_TAIL_07,
15296 t_TAIL_08,
15297 t_TAIL_09,
15298 t_TAIL_10,
15299 t_TAIL_11,
15300 t_TAIL_12,
15301 t_TAIL_13,
15302 t_TAIL_14> >
15304 bool,
15305 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15306 t_TAIL_02,
15307 t_TAIL_03,
15308 t_TAIL_04,
15309 t_TAIL_05,
15310 t_TAIL_06,
15311 t_TAIL_07,
15312 t_TAIL_08,
15313 t_TAIL_09,
15314 t_TAIL_10,
15315 t_TAIL_11,
15316 t_TAIL_12,
15317 t_TAIL_13,
15318 t_TAIL_14>::value == 1> {
15319};
15320#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 14
15321
15322#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
15323template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15324 class t_TAIL_02,
15325 class t_TAIL_03,
15326 class t_TAIL_04,
15327 class t_TAIL_05,
15328 class t_TAIL_06,
15329 class t_TAIL_07,
15330 class t_TAIL_08,
15331 class t_TAIL_09,
15332 class t_TAIL_10,
15333 class t_TAIL_11,
15334 class t_TAIL_12,
15335 class t_TAIL_13,
15336 class t_TAIL_14,
15337 class t_TAIL_15>
15338struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15339 t_TAIL_02,
15340 t_TAIL_03,
15341 t_TAIL_04,
15342 t_TAIL_05,
15343 t_TAIL_06,
15344 t_TAIL_07,
15345 t_TAIL_08,
15346 t_TAIL_09,
15347 t_TAIL_10,
15348 t_TAIL_11,
15349 t_TAIL_12,
15350 t_TAIL_13,
15351 t_TAIL_14,
15352 t_TAIL_15> >
15354 bool,
15355 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15356 t_TAIL_02,
15357 t_TAIL_03,
15358 t_TAIL_04,
15359 t_TAIL_05,
15360 t_TAIL_06,
15361 t_TAIL_07,
15362 t_TAIL_08,
15363 t_TAIL_09,
15364 t_TAIL_10,
15365 t_TAIL_11,
15366 t_TAIL_12,
15367 t_TAIL_13,
15368 t_TAIL_14,
15369 t_TAIL_15>::value == 1> {
15370};
15371#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 15
15372
15373#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
15374template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15375 class t_TAIL_02,
15376 class t_TAIL_03,
15377 class t_TAIL_04,
15378 class t_TAIL_05,
15379 class t_TAIL_06,
15380 class t_TAIL_07,
15381 class t_TAIL_08,
15382 class t_TAIL_09,
15383 class t_TAIL_10,
15384 class t_TAIL_11,
15385 class t_TAIL_12,
15386 class t_TAIL_13,
15387 class t_TAIL_14,
15388 class t_TAIL_15,
15389 class t_TAIL_16>
15390struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15391 t_TAIL_02,
15392 t_TAIL_03,
15393 t_TAIL_04,
15394 t_TAIL_05,
15395 t_TAIL_06,
15396 t_TAIL_07,
15397 t_TAIL_08,
15398 t_TAIL_09,
15399 t_TAIL_10,
15400 t_TAIL_11,
15401 t_TAIL_12,
15402 t_TAIL_13,
15403 t_TAIL_14,
15404 t_TAIL_15,
15405 t_TAIL_16> >
15407 bool,
15408 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15409 t_TAIL_02,
15410 t_TAIL_03,
15411 t_TAIL_04,
15412 t_TAIL_05,
15413 t_TAIL_06,
15414 t_TAIL_07,
15415 t_TAIL_08,
15416 t_TAIL_09,
15417 t_TAIL_10,
15418 t_TAIL_11,
15419 t_TAIL_12,
15420 t_TAIL_13,
15421 t_TAIL_14,
15422 t_TAIL_15,
15423 t_TAIL_16>::value == 1> {
15424};
15425#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 16
15426
15427#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
15428template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15429 class t_TAIL_02,
15430 class t_TAIL_03,
15431 class t_TAIL_04,
15432 class t_TAIL_05,
15433 class t_TAIL_06,
15434 class t_TAIL_07,
15435 class t_TAIL_08,
15436 class t_TAIL_09,
15437 class t_TAIL_10,
15438 class t_TAIL_11,
15439 class t_TAIL_12,
15440 class t_TAIL_13,
15441 class t_TAIL_14,
15442 class t_TAIL_15,
15443 class t_TAIL_16,
15444 class t_TAIL_17>
15445struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15446 t_TAIL_02,
15447 t_TAIL_03,
15448 t_TAIL_04,
15449 t_TAIL_05,
15450 t_TAIL_06,
15451 t_TAIL_07,
15452 t_TAIL_08,
15453 t_TAIL_09,
15454 t_TAIL_10,
15455 t_TAIL_11,
15456 t_TAIL_12,
15457 t_TAIL_13,
15458 t_TAIL_14,
15459 t_TAIL_15,
15460 t_TAIL_16,
15461 t_TAIL_17> >
15463 bool,
15464 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15465 t_TAIL_02,
15466 t_TAIL_03,
15467 t_TAIL_04,
15468 t_TAIL_05,
15469 t_TAIL_06,
15470 t_TAIL_07,
15471 t_TAIL_08,
15472 t_TAIL_09,
15473 t_TAIL_10,
15474 t_TAIL_11,
15475 t_TAIL_12,
15476 t_TAIL_13,
15477 t_TAIL_14,
15478 t_TAIL_15,
15479 t_TAIL_16,
15480 t_TAIL_17>::value == 1> {
15481};
15482#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 17
15483
15484#if BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
15485template <class t_TYPE, class t_HEAD, class t_TAIL_01,
15486 class t_TAIL_02,
15487 class t_TAIL_03,
15488 class t_TAIL_04,
15489 class t_TAIL_05,
15490 class t_TAIL_06,
15491 class t_TAIL_07,
15492 class t_TAIL_08,
15493 class t_TAIL_09,
15494 class t_TAIL_10,
15495 class t_TAIL_11,
15496 class t_TAIL_12,
15497 class t_TAIL_13,
15498 class t_TAIL_14,
15499 class t_TAIL_15,
15500 class t_TAIL_16,
15501 class t_TAIL_17,
15502 class t_TAIL_18>
15503struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
15504 t_TAIL_02,
15505 t_TAIL_03,
15506 t_TAIL_04,
15507 t_TAIL_05,
15508 t_TAIL_06,
15509 t_TAIL_07,
15510 t_TAIL_08,
15511 t_TAIL_09,
15512 t_TAIL_10,
15513 t_TAIL_11,
15514 t_TAIL_12,
15515 t_TAIL_13,
15516 t_TAIL_14,
15517 t_TAIL_15,
15518 t_TAIL_16,
15519 t_TAIL_17,
15520 t_TAIL_18> >
15522 bool,
15523 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL_01,
15524 t_TAIL_02,
15525 t_TAIL_03,
15526 t_TAIL_04,
15527 t_TAIL_05,
15528 t_TAIL_06,
15529 t_TAIL_07,
15530 t_TAIL_08,
15531 t_TAIL_09,
15532 t_TAIL_10,
15533 t_TAIL_11,
15534 t_TAIL_12,
15535 t_TAIL_13,
15536 t_TAIL_14,
15537 t_TAIL_15,
15538 t_TAIL_16,
15539 t_TAIL_17,
15540 t_TAIL_18>::value == 1> {
15541};
15542#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_F >= 18
15543
15544#else
15545// The generated code below is a workaround for the absence of perfect
15546// forwarding in some compilers.
15547template <class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE, class... t_TAIL>
15548struct Variant_UsesBslmaAllocatorAny;
15549
15550template <>
15551struct Variant_UsesBslmaAllocatorAny<BSLSTL_VARIANT_NOT_A_TYPE>
15553};
15554
15555template <class t_HEAD, class... t_TAIL>
15556struct Variant_UsesBslmaAllocatorAny
15558 bool,
15559 BloombergLP::bslma::UsesBslmaAllocator<t_HEAD>::value ||
15560 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<
15561 t_TAIL...>::value> {
15562};
15563
15564template <class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE, class... t_TAIL>
15565struct Variant_IsBitwiseMoveableAll;
15566
15567template <>
15568struct Variant_IsBitwiseMoveableAll<BSLSTL_VARIANT_NOT_A_TYPE>
15570};
15571
15572template <class t_HEAD, class... t_TAIL>
15573struct Variant_IsBitwiseMoveableAll
15575 bool,
15576 BloombergLP::bslmf::IsBitwiseMoveable<t_HEAD>::value &&
15577 Variant_IsBitwiseMoveableAll<t_TAIL...>::value> {
15578};
15579
15580template <class t_TYPE>
15581struct Variant_IsTag : bsl::false_type {
15582};
15583
15584template <>
15585struct Variant_IsTag<bsl::allocator_arg_t> : bsl::true_type {
15586};
15587
15588template <class t_TYPE>
15589struct Variant_IsTag<bsl::in_place_type_t<t_TYPE> > : bsl::true_type {
15590};
15591
15592template <size_t t_INDEX>
15593struct Variant_IsTag<bsl::in_place_index_t<t_INDEX> > : bsl::true_type {
15594};
15595
15596#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
15597template <class t_TO, class t_FROM>
15598struct Variant_IsConstructible : std::is_constructible<t_TO, t_FROM> {
15599};
15600
15601template <class t_LHS, class t_RHS>
15602struct Variant_IsAssignable : std::is_assignable<t_LHS, t_RHS> {
15603};
15604#else
15605template <class t_TO, class t_FROM>
15606struct Variant_IsConstructible : bsl::true_type {
15607};
15608
15609template <class t_LHS, class t_RHS>
15610struct Variant_IsAssignable : bsl::true_type {
15611};
15612#endif
15613
15614#define BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM(VARIANT, TYPE) \
15615 typename bsl::enable_if< \
15616 BloombergLP::bslstl::Variant_ConstructsFromType<VARIANT, \
15617 TYPE>::value, \
15618 BloombergLP::bslstl::Variant_NoSuchType>::type
15619
15620#define BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM(VARIANT, TYPE) \
15621 BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM( \
15622 VARIANT, \
15623 TYPE) = BloombergLP::bslstl::Variant_NoSuchType(0)
15624
15625#define BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM_STD(STD_VARIANT) \
15626 bsl::enable_if_t< \
15627 BloombergLP::bslstl::variant_constructsFromStd<variant, STD_VARIANT>, \
15628 BloombergLP::bslstl::Variant_NoSuchType>
15629
15630#define BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM_STD(STD_VARIANT) \
15631 BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM_STD(STD_VARIANT) \
15632 = BloombergLP::bslstl::Variant_NoSuchType(0)
15633
15634#define BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(TYPE) \
15635 typename bsl::enable_if< \
15636 BloombergLP::bslstl::Variant_HasUniqueType<TYPE, variant>::value, \
15637 BloombergLP::bslstl::Variant_NoSuchType>::type
15638
15639#define BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(TYPE) \
15640 BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE( \
15641 TYPE) = BloombergLP::bslstl::Variant_NoSuchType(0)
15642
15643#define BSLSTL_VARIANT_HAS_UNIQUE_TYPE(TYPE) \
15644 BloombergLP::bslstl:: \
15645 Variant_HasUniqueType<TYPE, variant<t_HEAD, t_TAIL...> >::value
15646
15647#define BSLSTL_VARIANT_TYPE_AT_INDEX(INDEX) \
15648 typename bsl::variant_alternative<INDEX, \
15649 bsl::variant<t_HEAD, t_TAIL...> >::type
15650
15651#define BSLSTL_VARIANT_INDEX_OF(TYPE, VARIANT) \
15652 BloombergLP::bslstl::Variant_TypeToIndex<TYPE, VARIANT>::value
15653
15654#define BSLSTL_VARIANT_CONVERT_INDEX_OF(TYPE, VARIANT) \
15655 BloombergLP::bslstl::Variant_ConvertIndex<TYPE, VARIANT>::value
15656
15657#define BSLSTL_VARIANT_CONVERT_TYPE_OF(TYPE, VARIANT) \
15658 typename bsl::variant_alternative<BSLSTL_VARIANT_CONVERT_INDEX_OF( \
15659 TYPE, VARIANT), \
15660 VARIANT>::type
15661
15662#define BSLSTL_VARIANT_VISITID(RET, VISITOR, VAROBJ) \
15663 BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(VISITOR, VAROBJ);
15664
15665template <size_t t_INDEX,
15666 class t_TYPE,
15667 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE,
15668 class... t_TAIL>
15669struct Variant_TypeToIndexImpl
15671 bsl::is_same<t_TYPE, t_HEAD>::value,
15672 bsl::integral_constant<size_t, t_INDEX>,
15673 Variant_TypeToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL...> >::type {
15674};
15675
15676template <size_t t_INDEX, class t_TYPE>
15677struct Variant_TypeToIndexImpl<t_INDEX, t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
15678: bsl::integral_constant<size_t, bsl::variant_npos> {
15679};
15680
15681template <class t_TYPE, class t_VARIANT>
15682struct Variant_TypeToIndex;
15683
15684template <class t_TYPE, class t_HEAD, class... t_TAIL>
15685struct Variant_TypeToIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL...> >
15686: Variant_TypeToIndexImpl<0, t_TYPE, t_HEAD, t_TAIL...> {
15687};
15688
15689template <class t_TYPE,
15690 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE,
15691 class... t_TAIL>
15692struct Variant_CountType
15693: bsl::integral_constant<size_t,
15694 bsl::is_same<t_TYPE, t_HEAD>::value +
15695 Variant_CountType<t_TYPE, t_TAIL...>::value> {
15696};
15697
15698template <class t_TYPE>
15699struct Variant_CountType<t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
15700: bsl::integral_constant<size_t, 0> {
15701};
15702
15703template <class t_TYPE, class t_VARIANT>
15704struct Variant_HasUniqueType;
15705
15706template <class t_TYPE, class t_HEAD, class... t_TAIL>
15707struct Variant_HasUniqueType<t_TYPE, bsl::variant<t_HEAD, t_TAIL...> >
15709 Variant_CountType<t_TYPE, t_HEAD, t_TAIL...>::value ==
15710 1> {
15711};
15712
15713template <class t_TYPE,
15714 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE,
15715 class... t_TAIL>
15716struct Variant_CountCVType
15718 size_t,
15719 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
15720 typename bsl::remove_cv<t_HEAD>::type>::value +
15721 Variant_CountCVType<t_TYPE, t_TAIL...>::value> {
15722};
15723
15724template <class t_TYPE>
15725struct Variant_CountCVType<t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
15726: bsl::integral_constant<size_t, 0> {
15727};
15728
15729template <class t_TYPE, class t_VARIANT>
15730struct Variant_HasUniqueCVType;
15731
15732template <class t_TYPE, class t_HEAD, class... t_TAIL>
15733struct Variant_HasUniqueCVType<t_TYPE, bsl::variant<t_HEAD, t_TAIL...> >
15735 bool,
15736 Variant_CountCVType<t_TYPE, t_HEAD, t_TAIL...>::value == 1> {
15737};
15738// }}} END GENERATED CODE
15739#endif
15740
15741/// This component-private metafunction calculates the alternative type at
15742/// index (template parameter) `t_INDEX` in (template parameter)
15743/// `t_VARIANT`, where the cv- and ref-qualifiers of `t_VARIANT` are added
15744/// to the alternative type. This metafunction is used to calculate the
15745/// return type of `bsl::visit`.
15746template <class t_VARIANT, size_t t_INDEX>
15747struct Variant_CVQualAlt {
15748
15749 /// Alternative at `t_INDEX` with combined cv-qualifiers
15750 typedef typename bsl::variant_alternative<
15751 t_INDEX,
15753 CVAlt;
15754
15755 typedef typename bsl::conditional<
15757 typename bsl::conditional<
15761 type,
15762 CVAlt>::type type;
15763};
15764
15765/// This component-private metafunction derives from `bsl::true_type` if,
15766/// for each alternative `ALTi` in (template parameter) `t_VARIANT` with
15767/// index less than or equal to (template parameter) `t_INDEX`,
15768/// `decltype(std::declval<t_VISITOR>(std::declval<ALTi>()))` is `t_RET`;
15769/// otherwise, this metafunction derives from `bsl::false_type`. Note that
15770/// `ALTi` has the cv- and ref-qualifiers from `t_VARIANT` added to it.
15771/// This metafunction is used to determine whether invoking the visitor
15772/// results in the same type and value category for all alternatives.
15773template <class t_RET,
15774 class t_VISITOR,
15775 class t_VARIANT,
15776 size_t t_INDEX =
15777 bsl::variant_size<typename bslmf::MovableRefUtil::
15778 RemoveReference<t_VARIANT>::type>::value -
15779 1>
15780struct Variant_IsSameReturnType
15781: public bsl::integral_constant<
15782 bool,
15783 bsl::is_same<t_RET,
15784 typename bsl::invoke_result<
15785 t_VISITOR,
15786 typename Variant_CVQualAlt<t_VARIANT, t_INDEX>::type>::
15787 type>::value &&
15788 Variant_IsSameReturnType<t_RET, t_VISITOR, t_VARIANT, t_INDEX - 1>::
15789 value> {
15790};
15791template <class t_RET, class t_VISITOR, class t_VARIANT>
15792struct Variant_IsSameReturnType<t_RET, t_VISITOR, t_VARIANT, 0>
15793: bsl::is_same<t_RET,
15794 typename bsl::invoke_result<
15795 t_VISITOR,
15796 typename Variant_CVQualAlt<t_VARIANT, 0>::type>::type> {
15797};
15798
15799 // ======================
15800 // struct Variant_ImpUtil
15801 // ======================
15802
15803/// This `struct` provides a namespace for utility functions used implement
15804/// various operations on `bsl::variant`.
15805struct Variant_ImpUtil {
15806
15807 /// Return a reference to the alternative with index (template
15808 /// parameter) `t_INDEX` in the specified `variant`. If `t_INDEX` is
15809 /// not the index of the currently active alternative, throw an
15810 /// exception of type `bad_variant_access`. Note that the return type
15811 /// must be explicitly specified.
15812 template <class t_RET, size_t t_INDEX, class t_VARIANT>
15813 static t_RET& get(t_VARIANT& variant);
15814 template <class t_RET, size_t t_INDEX, class t_VARIANT>
15815 static t_RET& get(const t_VARIANT& variant);
15816
15817#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
15818 /// Invoke the specified `visitor` on the active alternative of the
15819 /// specified `variant`, implicitly converting the return type to the
15820 /// explicitly specified (template parameter) `t_RET`. The behavior is
15821 /// undefined unless `variant` holds a value. Note that the return type
15822 /// must be explicitly specified. This function does not require friend
15823 /// access to `Variant` and has been added to `Variant_ImpUtil` for the
15824 /// purposes of avoiding free functions.
15825 template <class t_RET, class t_VISITOR, class t_VARIANT>
15826 static t_RET visit(t_VISITOR&& visitor, t_VARIANT&& variant);
15827
15828 /// Invoke the specified `visitor` on the active alternative of the
15829 /// specified `variant`, implicitly converting the return type to the
15830 /// explicitly specified (template parameter) `t_RET`, and pass a tag
15831 /// representing the index of the selected alternative when invoking the
15832 /// visitor. It is used internally for visitors that participate in the
15833 /// `variant` implementation. The behavior is undefined unless
15834 /// `variant` holds a value. This function does not require friend
15835 /// access to `Variant` and has been added to `Variant_ImpUtil` for the
15836 /// purposes of avoiding free functions.
15837 template <class t_RET, class t_VISITOR, class t_VARIANT>
15838 static t_RET visitId(t_VISITOR&& visitor, t_VARIANT&& variant);
15839#else
15840 // Lack of perfect forwarding in C++03 means overload set must be
15841 // different.
15842 template <class t_RET, class t_VISITOR, class t_VARIANT>
15843 static t_RET visit(t_VISITOR& visitor, t_VARIANT& variant);
15844 template <class t_RET, class t_VISITOR, class t_VARIANT>
15845 static t_RET visit(t_VISITOR& visitor, const t_VARIANT& variant);
15846 // Invoke the specified 'visitor' on the active alternative of the
15847 // specified 'variant', implicitly converting the return type to the
15848 // explicitly specified (template parameter) 't_RET'. The behavior is
15849 // undefined if 'variant' does not hold a value. This function does
15850 // not require friend access to 'Variant' and has been added to
15851 // 'Variant_ImpUtil' for the purposes of avoiding free functions.
15852
15853 template <class t_RET, class t_VISITOR, class t_VARIANT>
15854 static t_RET moveVisit(t_VISITOR& visitor, t_VARIANT& variant);
15855 // Invoke the specified 'visitor' on a 'bslmf::MovableRef' referring to
15856 // the active alternative of the specified 'variant', implicitly
15857 // converting the return type to the explicitly specified (template
15858 // parameter) 't_RET'. The behavior is undefined if 'variant' does not
15859 // hold a value. This function does not require friend access to
15860 // 'Variant' and has been added to 'Variant_ImpUtil' for the purposes
15861 // of avoiding free functions.
15862
15863 template <class t_RET, class t_VISITOR, class t_VARIANT>
15864 static t_RET visitId(t_VISITOR& visitor, t_VARIANT& variant);
15865 template <class t_RET, class t_VISITOR, class t_VARIANT>
15866 static t_RET visitId(t_VISITOR& visitor, const t_VARIANT& variant);
15867 // Invoke the specified 'visitor' with a
15868 // 'bsl::in_place_index_t<t_INDEX>' tag (where 't_INDEX' is the index
15869 // of the first alternative that has the same type as the active
15870 // alternative of the specified 'variant') and the active alternative
15871 // of 'variant', implicitly converting the return type to the
15872 // explicitly specified (template parameter) 't_RET'. The behavior is
15873 // undefined if 'variant' does not hold a value. This function does
15874 // not require friend access to 'Variant' and has been added to
15875 // 'Variant_ImpUtil' for the purposes of avoiding free functions.
15876
15877#endif // BSL_VARIANT_FULL_IMPLEMENTATION
15878
15879#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
15880 // In C++03, the internal visitation dispatch must call a type-based (not
15881 // index-based) getter. This internal type-based getter will always be
15882 // passed the type of the currently active alternative, so there is no need
15883 // to check whether the requested alternative matches the currently active
15884 // alternative. Moreover, in cases where there are alternatives of
15885 // identical type, 'bsl::get' cannot be passed such a type. To solve the
15886 // problem, we implement an unsafe type-based getter that is used only for
15887 // internal visitation.
15888
15889 template <class t_RET, size_t t_INDEX, class t_VARIANT>
15890 static t_RET& unsafeGet(t_VARIANT& variant);
15891 template <class t_RET, size_t t_INDEX, class t_VARIANT>
15892 static t_RET& unsafeGet(const t_VARIANT& variant);
15893 // Return a reference to type (template parameter) 't_RET' to the
15894 // alternative at (template parameter) 't_INDEX' in the specified
15895 // 'variant', regardless of whether that is the active alternative.
15896 // The behavior is undefined unless the active alternative of 'variant'
15897 // has the same type as the alternative with index 't_INDEX'. Note
15898 // that the return type must be explicitly specified.
15899
15900 template <class t_TYPE, class t_VARIANT>
15901 static t_TYPE& unsafeGet(t_VARIANT& obj);
15902 template <class t_TYPE, class t_VARIANT>
15903 static const t_TYPE& unsafeGet(const t_VARIANT& obj);
15904 // Return a reference to const-qualified (template parameter) 't_TYPE'
15905 // to the first alternative of the specified 'obj' that has type
15906 // 't_TYPE', regardless of whether that is the active alternative. The
15907 // behavior is undefined unless the active alternative of 'variant' is
15908 // of type 't_TYPE'. This function does not require friend access to
15909 // 'Variant' and has been added to 'Variant_ImpUtil' for the purposes
15910 // of avoiding free functions.
15911
15912#endif // BSL_VARIANT_FULL_IMPLEMENTATION
15913
15914 /// Return a reference to the object managed by the first member of the
15915 /// specified `variantUnion`. It is the base case for the overload of
15916 /// `getAlternative` below. This function does not require friend
15917 /// access to `Variant` and has been added to `Variant_ImpUtil` for the
15918 /// purposes of avoiding free functions.
15919 template <class t_RET, class t_VARIANT_UNION>
15920 static t_RET& getAlternative(
15922 t_VARIANT_UNION& variantUnion) BSLS_KEYWORD_NOEXCEPT;
15923
15924 /// Return a reference to the alternative with index (template
15925 /// parameter) `t_INDEX` in the specified `variantUnion` by recursively
15926 /// unravelling `variantUnion` until the desired alternative is at the
15927 /// head. `t_INDEX` shall be a valid alternative index. The behavior
15928 /// is undefined unless the alternative with index `t_INDEX` has the
15929 /// same type as the active alternative of `variantUnion`. This
15930 /// function does not require friend access to `Variant` and has been
15931 /// added to `Variant_ImpUtil` for the purposes of avoiding free
15932 /// functions.
15933 template <class t_RET, size_t t_INDEX, class t_VARIANT_UNION>
15934 static t_RET& getAlternative(
15936 t_VARIANT_UNION& variantUnion) BSLS_KEYWORD_NOEXCEPT;
15937
15938 template <class t_VARIANT>
15939 static bool Equal(const t_VARIANT& lhs, const t_VARIANT& rhs);
15940 template <class t_VARIANT>
15941 static bool NotEqual(const t_VARIANT& lhs, const t_VARIANT& rhs);
15942 template <class t_VARIANT>
15943 static bool LessThan(const t_VARIANT& lhs, const t_VARIANT& rhs);
15944 template <class t_VARIANT>
15945 static bool GreaterThan(const t_VARIANT& lhs, const t_VARIANT& rhs);
15946 template <class t_VARIANT>
15947 static bool LessOrEqual(const t_VARIANT& lhs, const t_VARIANT& rhs);
15948
15949 /// Return the result of comparing the specified `lhs` with the
15950 /// specified `rhs`. The behavior is undefined unless both `lhs` and
15951 /// `rhs` hold the same alternative. Note that the capitalization of
15952 /// the names of these methods has been chosen so that their definitions
15953 /// can be generated using a macro.
15954 template <class t_VARIANT>
15955 static bool GreaterOrEqual(const t_VARIANT& lhs, const t_VARIANT& rhs);
15956
15957#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
15958 /// This visitor is used to implement the explicit constructor for
15959 /// `bsl::variant` from `std::variant`.
15960 template <class t_VARIANT, class t_STD_VARIANT>
15961 class ConstructFromStdVisitor;
15962#endif // BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
15963};
15964
15965#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
15966
15967 // ==============================================
15968 // class Variant_ImpUtil::ConstructFromStdVisitor
15969 // ==============================================
15970
15971template <class t_VARIANT, class t_STD_VARIANT>
15972class Variant_ImpUtil::ConstructFromStdVisitor {
15973 private:
15974 // DATA
15975 t_VARIANT& d_target;
15976 t_STD_VARIANT& d_original;
15977
15978 public:
15979 // CREATORS
15980
15981 /// Create a `ConstructFromStdVisitor` object that, when invoked, will
15982 /// construct the alternative of the specified `target` corresponding to
15983 /// the active alternative of the specified `original`. `target` shall
15984 /// have the same sequence of alternative types as `original`.
15985 explicit ConstructFromStdVisitor(t_VARIANT& target,
15986 t_STD_VARIANT& original);
15987
15988 // ACCESSORS
15989
15990 /// Construct the alternative at index (template parameter) `t_INDEX`
15991 /// in `d_target` from the contained value of `d_original`. If
15992 /// `t_STD_VARIANT` is an lvalue reference type, the alternative will be
15993 /// created by copy construction, otherwise it will be created by move
15994 /// construction. The behavior is undefined unless `d_original` holds a
15995 /// value and `d_target.index() == d_original.index()`. Note that the
15996 /// unused parameter of type `t_TYPE&` refers to the alternative that
15997 /// will be constructed, but we do not construct directly into that
15998 /// object because we need to make sure that the allocator of `d_target`
15999 /// (if any) is used.
16000 template <size_t t_INDEX, class t_TYPE>
16001 void operator()(bsl::in_place_index_t<t_INDEX>, t_TYPE&) const;
16002};
16003#endif // BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
16004
16005#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
16006/// This component-private struct is used to check whether an alternative
16007/// given by (template parameter) `t_TYPE` is a potential match for an
16008/// argument of a `bsl::variant` constructor or assignment operator that
16009/// does not take an explicitly specified alternative type. The standard
16010/// allows such conversion only when the declaration `t_TYPE d_x[] = {expr};`
16011/// is valid, where `expr` is the (forwarded) argument expression.
16012template <class t_TYPE>
16013struct Variant_ArrayHelper {
16014 t_TYPE d_x[1];
16015};
16016
16017/// This component-private metafunction checks whether a conversion from a
16018/// pointer type to (template parameter) `t_TYPE` is narrowing. It is
16019/// instantiated only for `bool`, and its behavior depends on whether the
16020/// compiler has implemented P1957R2.
16021template <class t_TYPE, class = void>
16022struct Variant_CheckForP1957R2 : bsl::true_type {
16023};
16024
16025template <class t_TYPE>
16026struct Variant_CheckForP1957R2<
16027 t_TYPE,
16028 bsl::void_t<decltype(Variant_ArrayHelper<t_TYPE>{{"bc"}})> >
16030};
16031
16032template <class t_DEST, class t_SOURCE, class = void>
16033struct Variant_ConvertsWithoutNarrowing : bsl::false_type {
16034};
16035
16036/// This component-private metafunction is derived from `bsl::true_type` if
16037/// (template parameter) `t_SOURCE` can be converted to (template parameter)
16038/// `t_DEST` without narrowing, and `bsl::false_type` otherwise. A
16039/// conversion from pointer or pointer-to-member type to cv `bool` is
16040/// considered narrowing even if the compiler does not implement P1957R2
16041/// (which was adopted as a DR); however, on compilers that do not implement
16042/// P1957R2, we do not have the ability to check whether a user-defined
16043/// conversion sequence to cv `bool` would use a narrowing standard
16044/// conversion, so on those compilers, we permit conversion to a `t_DEST`
16045/// that is cv `bool` only if `t_SOURCE` is also cv `bool`, and not when
16046/// `t_SOURCE` is a class type. This behavior is not expected to pose a
16047/// problem for users migrating from `bdlb::Variant`, because that class
16048/// does not support implicit conversions from an argument type to an
16049/// alternative type.
16050template <class t_DEST, class t_SOURCE>
16051struct Variant_ConvertsWithoutNarrowing<
16052 t_DEST,
16053 t_SOURCE,
16054 bsl::void_t<decltype(
16055 Variant_ArrayHelper<t_DEST>{{std::declval<t_SOURCE>()}})> >
16057 bool,
16058 !(!Variant_CheckForP1957R2<bool>::value &&
16059 bsl::is_same<bool, typename bsl::remove_cvref<t_DEST>::type>::value &&
16060 !bsl::is_same<bool,
16061 typename bsl::remove_cvref<t_SOURCE>::type>::value)> {
16062};
16063
16064 // =============================
16065 // struct Variant_OverloadSetImp
16066 // =============================
16067
16068/// This component-private metafunction computes an overload set consisting
16069/// of one function, named `candidate`, for each type in (template
16070/// parameters) `t_HEAD, t_TAIL...`, having one parameter of that type.
16071/// Each such function participates in overload resolution only when
16072/// `std::declval<t_SRC>()` is convertible to the alternative without
16073/// narrowing, and returns `bsl::integral_constant<t_INDEX + i>`, where `i`
16074/// is the zero-based index of the corresponding alternative. Note that a
16075/// type that occurs multiple times in `t_HEAD, t_TAIL...` (possibly with
16076/// varying cv-qualifications) will only result in the generation of a
16077/// single candidate. This implementation relies on expression SFINAE,
16078/// `decltype`, `std::declval`, and P1957R2; since these features are not
16079/// available in C++03, the C++03 version requires an exact match modulo
16080/// cv-qualification.
16081template <class t_SRC, size_t t_INDEX, class t_HEAD, class... t_TAIL>
16082struct Variant_OverloadSetImp
16083: Variant_OverloadSetImp<t_SRC, t_INDEX + 1, t_TAIL...> {
16084
16085 using Variant_OverloadSetImp<t_SRC, t_INDEX + 1, t_TAIL...>::candidate;
16086
16087 template <class t_DEST = t_HEAD>
16088 static typename bsl::enable_if<
16089 Variant_ConvertsWithoutNarrowing<t_DEST, t_SRC>::value,
16090 bsl::integral_constant<size_t, t_INDEX> >::type candidate(t_HEAD);
16091};
16092template <class t_SRC, size_t t_INDEX, class t_HEAD>
16093struct Variant_OverloadSetImp<t_SRC, t_INDEX, t_HEAD> {
16094 template <class t_DEST = t_HEAD>
16095 static typename bsl::enable_if<
16096 Variant_ConvertsWithoutNarrowing<t_DEST, t_SRC>::value,
16097 bsl::integral_constant<size_t, t_INDEX> >::type candidate(t_HEAD);
16098};
16099
16100/// This component-private metafunction provides a member typedef `Index`
16101/// representing the value that should be computed by
16102/// `Variant_ConvertIndex`. The primary template is instantiated when the
16103/// partial specialization below is not viable because no viable alternative
16104/// exists for the conversion or because the best match is not "unique" (see
16105/// the documentation of `Variant_ConvertIndex` for an explanation).
16106template <class t_SRC, class t_VARIANT, class = void>
16107struct Variant_OverloadHelper {
16108
16110};
16111
16112/// This partial specialization is used when a "unique" best match is found
16113/// for converting `std::declval<t_SRC>()` to one of (template parameters)
16114/// `t_HEAD, t_TAIL...`.
16115template <class t_SRC, class t_HEAD, class... t_TAIL>
16116struct Variant_OverloadHelper<
16117 t_SRC,
16118 bsl::variant<t_HEAD, t_TAIL...>,
16119 bsl::void_t<decltype(Variant_OverloadSetImp<t_SRC, 0, t_HEAD, t_TAIL...>::
16120 candidate(std::declval<t_SRC>()))> > {
16121 typedef decltype(
16122 Variant_OverloadSetImp<t_SRC, 0, t_HEAD, t_TAIL...>::candidate(
16123 std::declval<t_SRC>())) Index;
16124};
16125
16126/// This component-private metafunction computes the index of the
16127/// alternative in (template parameter) `t_VARIANT` that is the "unique"
16128/// best match for conversion from `std::declval<t_TYPE>()`, or
16129/// `bsl::variant_npos` if there is no such alternative. An alternative
16130/// that occurs multiple times in `t_VARIANT` (possibly with varying
16131/// cv-qualifications) is considered to occur only once; thus, if all
16132/// alternatives that are tied for the best match are the same type
16133/// (possibly with varying cv-qualifications), the result is the lowest
16134/// index at which that type (with any cv-qualification) occurs.
16135template <class t_TYPE, class t_VARIANT>
16136struct Variant_ConvertIndex
16137: Variant_OverloadHelper<t_TYPE, t_VARIANT>::Index {
16138};
16139
16140#else // BSL_VARIANT_FULL_IMPLEMENTATION
16141
16142#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
16143// {{{ BEGIN GENERATED CODE
16144// Command line: sim_cpp11_features.pl bslstl_variant.h
16145#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
16146#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
16147#endif
16148#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_G
16149#define BSLSTL_VARIANT_VARIADIC_LIMIT_G BSLSTL_VARIANT_VARIADIC_LIMIT
16150#endif
16151template <size_t t_INDEX,
16152 class t_TYPE,
16153 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE
16154#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 0
16155 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
16156#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 0
16157
16158#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 1
16159 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
16160#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 1
16161
16162#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 2
16163 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
16164#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 2
16165
16166#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 3
16167 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
16168#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 3
16169
16170#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 4
16171 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
16172#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 4
16173
16174#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 5
16175 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
16176#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 5
16177
16178#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 6
16179 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
16180#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 6
16181
16182#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 7
16183 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
16184#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 7
16185
16186#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 8
16187 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
16188#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 8
16189
16190#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 9
16191 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
16192#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 9
16193
16194#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 10
16195 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
16196#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 10
16197
16198#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 11
16199 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
16200#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 11
16201
16202#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 12
16203 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
16204#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 12
16205
16206#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 13
16207 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
16208#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 13
16209
16210#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 14
16211 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
16212#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 14
16213
16214#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 15
16215 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
16216#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 15
16217
16218#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 16
16219 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
16220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 16
16221
16222#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 17
16223 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
16224#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 17
16225 , class = BSLS_COMPILERFEATURES_NILT>
16226struct Variant_ConvertToIndexImpl;
16227
16228
16229template <size_t t_INDEX, class t_TYPE>
16230struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
16231: bsl::integral_constant<size_t, bsl::variant_npos> {
16232};
16233#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 0
16234template <size_t t_INDEX, class t_TYPE, class t_HEAD>
16235struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD>
16237 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16238 typename bsl::remove_cv<t_HEAD>::type>::value,
16239 bsl::integral_constant<size_t, t_INDEX>,
16240 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE> >::type {
16241};
16242#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 0
16243
16244#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 1
16245template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01>
16246struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01>
16248 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16249 typename bsl::remove_cv<t_HEAD>::type>::value,
16250 bsl::integral_constant<size_t, t_INDEX>,
16251 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01> >::type {
16252};
16253#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 1
16254
16255#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 2
16256template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16257 class t_TAIL_02>
16258struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16259 t_TAIL_02>
16261 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16262 typename bsl::remove_cv<t_HEAD>::type>::value,
16263 bsl::integral_constant<size_t, t_INDEX>,
16264 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16265 t_TAIL_02> >::type {
16266};
16267#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 2
16268
16269#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 3
16270template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16271 class t_TAIL_02,
16272 class t_TAIL_03>
16273struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16274 t_TAIL_02,
16275 t_TAIL_03>
16277 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16278 typename bsl::remove_cv<t_HEAD>::type>::value,
16279 bsl::integral_constant<size_t, t_INDEX>,
16280 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16281 t_TAIL_02,
16282 t_TAIL_03> >::type {
16283};
16284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 3
16285
16286#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 4
16287template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16288 class t_TAIL_02,
16289 class t_TAIL_03,
16290 class t_TAIL_04>
16291struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16292 t_TAIL_02,
16293 t_TAIL_03,
16294 t_TAIL_04>
16296 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16297 typename bsl::remove_cv<t_HEAD>::type>::value,
16298 bsl::integral_constant<size_t, t_INDEX>,
16299 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16300 t_TAIL_02,
16301 t_TAIL_03,
16302 t_TAIL_04> >::type {
16303};
16304#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 4
16305
16306#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 5
16307template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16308 class t_TAIL_02,
16309 class t_TAIL_03,
16310 class t_TAIL_04,
16311 class t_TAIL_05>
16312struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16313 t_TAIL_02,
16314 t_TAIL_03,
16315 t_TAIL_04,
16316 t_TAIL_05>
16318 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16319 typename bsl::remove_cv<t_HEAD>::type>::value,
16320 bsl::integral_constant<size_t, t_INDEX>,
16321 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16322 t_TAIL_02,
16323 t_TAIL_03,
16324 t_TAIL_04,
16325 t_TAIL_05> >::type {
16326};
16327#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 5
16328
16329#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 6
16330template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16331 class t_TAIL_02,
16332 class t_TAIL_03,
16333 class t_TAIL_04,
16334 class t_TAIL_05,
16335 class t_TAIL_06>
16336struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16337 t_TAIL_02,
16338 t_TAIL_03,
16339 t_TAIL_04,
16340 t_TAIL_05,
16341 t_TAIL_06>
16343 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16344 typename bsl::remove_cv<t_HEAD>::type>::value,
16345 bsl::integral_constant<size_t, t_INDEX>,
16346 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16347 t_TAIL_02,
16348 t_TAIL_03,
16349 t_TAIL_04,
16350 t_TAIL_05,
16351 t_TAIL_06> >::type {
16352};
16353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 6
16354
16355#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 7
16356template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16357 class t_TAIL_02,
16358 class t_TAIL_03,
16359 class t_TAIL_04,
16360 class t_TAIL_05,
16361 class t_TAIL_06,
16362 class t_TAIL_07>
16363struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16364 t_TAIL_02,
16365 t_TAIL_03,
16366 t_TAIL_04,
16367 t_TAIL_05,
16368 t_TAIL_06,
16369 t_TAIL_07>
16371 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16372 typename bsl::remove_cv<t_HEAD>::type>::value,
16373 bsl::integral_constant<size_t, t_INDEX>,
16374 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16375 t_TAIL_02,
16376 t_TAIL_03,
16377 t_TAIL_04,
16378 t_TAIL_05,
16379 t_TAIL_06,
16380 t_TAIL_07> >::type {
16381};
16382#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 7
16383
16384#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 8
16385template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16386 class t_TAIL_02,
16387 class t_TAIL_03,
16388 class t_TAIL_04,
16389 class t_TAIL_05,
16390 class t_TAIL_06,
16391 class t_TAIL_07,
16392 class t_TAIL_08>
16393struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16394 t_TAIL_02,
16395 t_TAIL_03,
16396 t_TAIL_04,
16397 t_TAIL_05,
16398 t_TAIL_06,
16399 t_TAIL_07,
16400 t_TAIL_08>
16402 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16403 typename bsl::remove_cv<t_HEAD>::type>::value,
16404 bsl::integral_constant<size_t, t_INDEX>,
16405 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16406 t_TAIL_02,
16407 t_TAIL_03,
16408 t_TAIL_04,
16409 t_TAIL_05,
16410 t_TAIL_06,
16411 t_TAIL_07,
16412 t_TAIL_08> >::type {
16413};
16414#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 8
16415
16416#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 9
16417template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16418 class t_TAIL_02,
16419 class t_TAIL_03,
16420 class t_TAIL_04,
16421 class t_TAIL_05,
16422 class t_TAIL_06,
16423 class t_TAIL_07,
16424 class t_TAIL_08,
16425 class t_TAIL_09>
16426struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16427 t_TAIL_02,
16428 t_TAIL_03,
16429 t_TAIL_04,
16430 t_TAIL_05,
16431 t_TAIL_06,
16432 t_TAIL_07,
16433 t_TAIL_08,
16434 t_TAIL_09>
16436 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16437 typename bsl::remove_cv<t_HEAD>::type>::value,
16438 bsl::integral_constant<size_t, t_INDEX>,
16439 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16440 t_TAIL_02,
16441 t_TAIL_03,
16442 t_TAIL_04,
16443 t_TAIL_05,
16444 t_TAIL_06,
16445 t_TAIL_07,
16446 t_TAIL_08,
16447 t_TAIL_09> >::type {
16448};
16449#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 9
16450
16451#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 10
16452template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16453 class t_TAIL_02,
16454 class t_TAIL_03,
16455 class t_TAIL_04,
16456 class t_TAIL_05,
16457 class t_TAIL_06,
16458 class t_TAIL_07,
16459 class t_TAIL_08,
16460 class t_TAIL_09,
16461 class t_TAIL_10>
16462struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16463 t_TAIL_02,
16464 t_TAIL_03,
16465 t_TAIL_04,
16466 t_TAIL_05,
16467 t_TAIL_06,
16468 t_TAIL_07,
16469 t_TAIL_08,
16470 t_TAIL_09,
16471 t_TAIL_10>
16473 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16474 typename bsl::remove_cv<t_HEAD>::type>::value,
16475 bsl::integral_constant<size_t, t_INDEX>,
16476 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16477 t_TAIL_02,
16478 t_TAIL_03,
16479 t_TAIL_04,
16480 t_TAIL_05,
16481 t_TAIL_06,
16482 t_TAIL_07,
16483 t_TAIL_08,
16484 t_TAIL_09,
16485 t_TAIL_10> >::type {
16486};
16487#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 10
16488
16489#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 11
16490template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16491 class t_TAIL_02,
16492 class t_TAIL_03,
16493 class t_TAIL_04,
16494 class t_TAIL_05,
16495 class t_TAIL_06,
16496 class t_TAIL_07,
16497 class t_TAIL_08,
16498 class t_TAIL_09,
16499 class t_TAIL_10,
16500 class t_TAIL_11>
16501struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16502 t_TAIL_02,
16503 t_TAIL_03,
16504 t_TAIL_04,
16505 t_TAIL_05,
16506 t_TAIL_06,
16507 t_TAIL_07,
16508 t_TAIL_08,
16509 t_TAIL_09,
16510 t_TAIL_10,
16511 t_TAIL_11>
16513 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16514 typename bsl::remove_cv<t_HEAD>::type>::value,
16515 bsl::integral_constant<size_t, t_INDEX>,
16516 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16517 t_TAIL_02,
16518 t_TAIL_03,
16519 t_TAIL_04,
16520 t_TAIL_05,
16521 t_TAIL_06,
16522 t_TAIL_07,
16523 t_TAIL_08,
16524 t_TAIL_09,
16525 t_TAIL_10,
16526 t_TAIL_11> >::type {
16527};
16528#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 11
16529
16530#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 12
16531template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16532 class t_TAIL_02,
16533 class t_TAIL_03,
16534 class t_TAIL_04,
16535 class t_TAIL_05,
16536 class t_TAIL_06,
16537 class t_TAIL_07,
16538 class t_TAIL_08,
16539 class t_TAIL_09,
16540 class t_TAIL_10,
16541 class t_TAIL_11,
16542 class t_TAIL_12>
16543struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16544 t_TAIL_02,
16545 t_TAIL_03,
16546 t_TAIL_04,
16547 t_TAIL_05,
16548 t_TAIL_06,
16549 t_TAIL_07,
16550 t_TAIL_08,
16551 t_TAIL_09,
16552 t_TAIL_10,
16553 t_TAIL_11,
16554 t_TAIL_12>
16556 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16557 typename bsl::remove_cv<t_HEAD>::type>::value,
16558 bsl::integral_constant<size_t, t_INDEX>,
16559 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16560 t_TAIL_02,
16561 t_TAIL_03,
16562 t_TAIL_04,
16563 t_TAIL_05,
16564 t_TAIL_06,
16565 t_TAIL_07,
16566 t_TAIL_08,
16567 t_TAIL_09,
16568 t_TAIL_10,
16569 t_TAIL_11,
16570 t_TAIL_12> >::type {
16571};
16572#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 12
16573
16574#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 13
16575template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16576 class t_TAIL_02,
16577 class t_TAIL_03,
16578 class t_TAIL_04,
16579 class t_TAIL_05,
16580 class t_TAIL_06,
16581 class t_TAIL_07,
16582 class t_TAIL_08,
16583 class t_TAIL_09,
16584 class t_TAIL_10,
16585 class t_TAIL_11,
16586 class t_TAIL_12,
16587 class t_TAIL_13>
16588struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16589 t_TAIL_02,
16590 t_TAIL_03,
16591 t_TAIL_04,
16592 t_TAIL_05,
16593 t_TAIL_06,
16594 t_TAIL_07,
16595 t_TAIL_08,
16596 t_TAIL_09,
16597 t_TAIL_10,
16598 t_TAIL_11,
16599 t_TAIL_12,
16600 t_TAIL_13>
16602 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16603 typename bsl::remove_cv<t_HEAD>::type>::value,
16604 bsl::integral_constant<size_t, t_INDEX>,
16605 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16606 t_TAIL_02,
16607 t_TAIL_03,
16608 t_TAIL_04,
16609 t_TAIL_05,
16610 t_TAIL_06,
16611 t_TAIL_07,
16612 t_TAIL_08,
16613 t_TAIL_09,
16614 t_TAIL_10,
16615 t_TAIL_11,
16616 t_TAIL_12,
16617 t_TAIL_13> >::type {
16618};
16619#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 13
16620
16621#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 14
16622template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16623 class t_TAIL_02,
16624 class t_TAIL_03,
16625 class t_TAIL_04,
16626 class t_TAIL_05,
16627 class t_TAIL_06,
16628 class t_TAIL_07,
16629 class t_TAIL_08,
16630 class t_TAIL_09,
16631 class t_TAIL_10,
16632 class t_TAIL_11,
16633 class t_TAIL_12,
16634 class t_TAIL_13,
16635 class t_TAIL_14>
16636struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16637 t_TAIL_02,
16638 t_TAIL_03,
16639 t_TAIL_04,
16640 t_TAIL_05,
16641 t_TAIL_06,
16642 t_TAIL_07,
16643 t_TAIL_08,
16644 t_TAIL_09,
16645 t_TAIL_10,
16646 t_TAIL_11,
16647 t_TAIL_12,
16648 t_TAIL_13,
16649 t_TAIL_14>
16651 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16652 typename bsl::remove_cv<t_HEAD>::type>::value,
16653 bsl::integral_constant<size_t, t_INDEX>,
16654 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16655 t_TAIL_02,
16656 t_TAIL_03,
16657 t_TAIL_04,
16658 t_TAIL_05,
16659 t_TAIL_06,
16660 t_TAIL_07,
16661 t_TAIL_08,
16662 t_TAIL_09,
16663 t_TAIL_10,
16664 t_TAIL_11,
16665 t_TAIL_12,
16666 t_TAIL_13,
16667 t_TAIL_14> >::type {
16668};
16669#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 14
16670
16671#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 15
16672template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16673 class t_TAIL_02,
16674 class t_TAIL_03,
16675 class t_TAIL_04,
16676 class t_TAIL_05,
16677 class t_TAIL_06,
16678 class t_TAIL_07,
16679 class t_TAIL_08,
16680 class t_TAIL_09,
16681 class t_TAIL_10,
16682 class t_TAIL_11,
16683 class t_TAIL_12,
16684 class t_TAIL_13,
16685 class t_TAIL_14,
16686 class t_TAIL_15>
16687struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16688 t_TAIL_02,
16689 t_TAIL_03,
16690 t_TAIL_04,
16691 t_TAIL_05,
16692 t_TAIL_06,
16693 t_TAIL_07,
16694 t_TAIL_08,
16695 t_TAIL_09,
16696 t_TAIL_10,
16697 t_TAIL_11,
16698 t_TAIL_12,
16699 t_TAIL_13,
16700 t_TAIL_14,
16701 t_TAIL_15>
16703 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16704 typename bsl::remove_cv<t_HEAD>::type>::value,
16705 bsl::integral_constant<size_t, t_INDEX>,
16706 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16707 t_TAIL_02,
16708 t_TAIL_03,
16709 t_TAIL_04,
16710 t_TAIL_05,
16711 t_TAIL_06,
16712 t_TAIL_07,
16713 t_TAIL_08,
16714 t_TAIL_09,
16715 t_TAIL_10,
16716 t_TAIL_11,
16717 t_TAIL_12,
16718 t_TAIL_13,
16719 t_TAIL_14,
16720 t_TAIL_15> >::type {
16721};
16722#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 15
16723
16724#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 16
16725template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16726 class t_TAIL_02,
16727 class t_TAIL_03,
16728 class t_TAIL_04,
16729 class t_TAIL_05,
16730 class t_TAIL_06,
16731 class t_TAIL_07,
16732 class t_TAIL_08,
16733 class t_TAIL_09,
16734 class t_TAIL_10,
16735 class t_TAIL_11,
16736 class t_TAIL_12,
16737 class t_TAIL_13,
16738 class t_TAIL_14,
16739 class t_TAIL_15,
16740 class t_TAIL_16>
16741struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16742 t_TAIL_02,
16743 t_TAIL_03,
16744 t_TAIL_04,
16745 t_TAIL_05,
16746 t_TAIL_06,
16747 t_TAIL_07,
16748 t_TAIL_08,
16749 t_TAIL_09,
16750 t_TAIL_10,
16751 t_TAIL_11,
16752 t_TAIL_12,
16753 t_TAIL_13,
16754 t_TAIL_14,
16755 t_TAIL_15,
16756 t_TAIL_16>
16758 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16759 typename bsl::remove_cv<t_HEAD>::type>::value,
16760 bsl::integral_constant<size_t, t_INDEX>,
16761 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16762 t_TAIL_02,
16763 t_TAIL_03,
16764 t_TAIL_04,
16765 t_TAIL_05,
16766 t_TAIL_06,
16767 t_TAIL_07,
16768 t_TAIL_08,
16769 t_TAIL_09,
16770 t_TAIL_10,
16771 t_TAIL_11,
16772 t_TAIL_12,
16773 t_TAIL_13,
16774 t_TAIL_14,
16775 t_TAIL_15,
16776 t_TAIL_16> >::type {
16777};
16778#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 16
16779
16780#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 17
16781template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16782 class t_TAIL_02,
16783 class t_TAIL_03,
16784 class t_TAIL_04,
16785 class t_TAIL_05,
16786 class t_TAIL_06,
16787 class t_TAIL_07,
16788 class t_TAIL_08,
16789 class t_TAIL_09,
16790 class t_TAIL_10,
16791 class t_TAIL_11,
16792 class t_TAIL_12,
16793 class t_TAIL_13,
16794 class t_TAIL_14,
16795 class t_TAIL_15,
16796 class t_TAIL_16,
16797 class t_TAIL_17>
16798struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16799 t_TAIL_02,
16800 t_TAIL_03,
16801 t_TAIL_04,
16802 t_TAIL_05,
16803 t_TAIL_06,
16804 t_TAIL_07,
16805 t_TAIL_08,
16806 t_TAIL_09,
16807 t_TAIL_10,
16808 t_TAIL_11,
16809 t_TAIL_12,
16810 t_TAIL_13,
16811 t_TAIL_14,
16812 t_TAIL_15,
16813 t_TAIL_16,
16814 t_TAIL_17>
16816 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16817 typename bsl::remove_cv<t_HEAD>::type>::value,
16818 bsl::integral_constant<size_t, t_INDEX>,
16819 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16820 t_TAIL_02,
16821 t_TAIL_03,
16822 t_TAIL_04,
16823 t_TAIL_05,
16824 t_TAIL_06,
16825 t_TAIL_07,
16826 t_TAIL_08,
16827 t_TAIL_09,
16828 t_TAIL_10,
16829 t_TAIL_11,
16830 t_TAIL_12,
16831 t_TAIL_13,
16832 t_TAIL_14,
16833 t_TAIL_15,
16834 t_TAIL_16,
16835 t_TAIL_17> >::type {
16836};
16837#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 17
16838
16839#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 18
16840template <size_t t_INDEX, class t_TYPE, class t_HEAD, class t_TAIL_01,
16841 class t_TAIL_02,
16842 class t_TAIL_03,
16843 class t_TAIL_04,
16844 class t_TAIL_05,
16845 class t_TAIL_06,
16846 class t_TAIL_07,
16847 class t_TAIL_08,
16848 class t_TAIL_09,
16849 class t_TAIL_10,
16850 class t_TAIL_11,
16851 class t_TAIL_12,
16852 class t_TAIL_13,
16853 class t_TAIL_14,
16854 class t_TAIL_15,
16855 class t_TAIL_16,
16856 class t_TAIL_17,
16857 class t_TAIL_18>
16858struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL_01,
16859 t_TAIL_02,
16860 t_TAIL_03,
16861 t_TAIL_04,
16862 t_TAIL_05,
16863 t_TAIL_06,
16864 t_TAIL_07,
16865 t_TAIL_08,
16866 t_TAIL_09,
16867 t_TAIL_10,
16868 t_TAIL_11,
16869 t_TAIL_12,
16870 t_TAIL_13,
16871 t_TAIL_14,
16872 t_TAIL_15,
16873 t_TAIL_16,
16874 t_TAIL_17,
16875 t_TAIL_18>
16877 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
16878 typename bsl::remove_cv<t_HEAD>::type>::value,
16879 bsl::integral_constant<size_t, t_INDEX>,
16880 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL_01,
16881 t_TAIL_02,
16882 t_TAIL_03,
16883 t_TAIL_04,
16884 t_TAIL_05,
16885 t_TAIL_06,
16886 t_TAIL_07,
16887 t_TAIL_08,
16888 t_TAIL_09,
16889 t_TAIL_10,
16890 t_TAIL_11,
16891 t_TAIL_12,
16892 t_TAIL_13,
16893 t_TAIL_14,
16894 t_TAIL_15,
16895 t_TAIL_16,
16896 t_TAIL_17,
16897 t_TAIL_18> >::type {
16898};
16899#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 18
16900
16901
16902template <class t_TYPE, class t_VARIANT>
16903struct Variant_ConvertIndex;
16904
16905#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 0
16906template <class t_TYPE, class t_HEAD>
16907struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD> >
16908: Variant_ConvertToIndexImpl<
16909 0,
16910 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
16911 t_HEAD> {
16912};
16913#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 0
16914
16915#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 1
16916template <class t_TYPE, class t_HEAD, class t_TAIL_01>
16917struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01> >
16918: Variant_ConvertToIndexImpl<
16919 0,
16920 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
16921 t_HEAD,
16922 t_TAIL_01> {
16923};
16924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 1
16925
16926#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 2
16927template <class t_TYPE, class t_HEAD, class t_TAIL_01,
16928 class t_TAIL_02>
16929struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
16930 t_TAIL_02> >
16931: Variant_ConvertToIndexImpl<
16932 0,
16933 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
16934 t_HEAD,
16935 t_TAIL_01,
16936 t_TAIL_02> {
16937};
16938#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 2
16939
16940#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 3
16941template <class t_TYPE, class t_HEAD, class t_TAIL_01,
16942 class t_TAIL_02,
16943 class t_TAIL_03>
16944struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
16945 t_TAIL_02,
16946 t_TAIL_03> >
16947: Variant_ConvertToIndexImpl<
16948 0,
16949 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
16950 t_HEAD,
16951 t_TAIL_01,
16952 t_TAIL_02,
16953 t_TAIL_03> {
16954};
16955#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 3
16956
16957#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 4
16958template <class t_TYPE, class t_HEAD, class t_TAIL_01,
16959 class t_TAIL_02,
16960 class t_TAIL_03,
16961 class t_TAIL_04>
16962struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
16963 t_TAIL_02,
16964 t_TAIL_03,
16965 t_TAIL_04> >
16966: Variant_ConvertToIndexImpl<
16967 0,
16968 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
16969 t_HEAD,
16970 t_TAIL_01,
16971 t_TAIL_02,
16972 t_TAIL_03,
16973 t_TAIL_04> {
16974};
16975#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 4
16976
16977#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 5
16978template <class t_TYPE, class t_HEAD, class t_TAIL_01,
16979 class t_TAIL_02,
16980 class t_TAIL_03,
16981 class t_TAIL_04,
16982 class t_TAIL_05>
16983struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
16984 t_TAIL_02,
16985 t_TAIL_03,
16986 t_TAIL_04,
16987 t_TAIL_05> >
16988: Variant_ConvertToIndexImpl<
16989 0,
16990 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
16991 t_HEAD,
16992 t_TAIL_01,
16993 t_TAIL_02,
16994 t_TAIL_03,
16995 t_TAIL_04,
16996 t_TAIL_05> {
16997};
16998#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 5
16999
17000#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 6
17001template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17002 class t_TAIL_02,
17003 class t_TAIL_03,
17004 class t_TAIL_04,
17005 class t_TAIL_05,
17006 class t_TAIL_06>
17007struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17008 t_TAIL_02,
17009 t_TAIL_03,
17010 t_TAIL_04,
17011 t_TAIL_05,
17012 t_TAIL_06> >
17013: Variant_ConvertToIndexImpl<
17014 0,
17015 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17016 t_HEAD,
17017 t_TAIL_01,
17018 t_TAIL_02,
17019 t_TAIL_03,
17020 t_TAIL_04,
17021 t_TAIL_05,
17022 t_TAIL_06> {
17023};
17024#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 6
17025
17026#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 7
17027template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17028 class t_TAIL_02,
17029 class t_TAIL_03,
17030 class t_TAIL_04,
17031 class t_TAIL_05,
17032 class t_TAIL_06,
17033 class t_TAIL_07>
17034struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17035 t_TAIL_02,
17036 t_TAIL_03,
17037 t_TAIL_04,
17038 t_TAIL_05,
17039 t_TAIL_06,
17040 t_TAIL_07> >
17041: Variant_ConvertToIndexImpl<
17042 0,
17043 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17044 t_HEAD,
17045 t_TAIL_01,
17046 t_TAIL_02,
17047 t_TAIL_03,
17048 t_TAIL_04,
17049 t_TAIL_05,
17050 t_TAIL_06,
17051 t_TAIL_07> {
17052};
17053#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 7
17054
17055#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 8
17056template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17057 class t_TAIL_02,
17058 class t_TAIL_03,
17059 class t_TAIL_04,
17060 class t_TAIL_05,
17061 class t_TAIL_06,
17062 class t_TAIL_07,
17063 class t_TAIL_08>
17064struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17065 t_TAIL_02,
17066 t_TAIL_03,
17067 t_TAIL_04,
17068 t_TAIL_05,
17069 t_TAIL_06,
17070 t_TAIL_07,
17071 t_TAIL_08> >
17072: Variant_ConvertToIndexImpl<
17073 0,
17074 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17075 t_HEAD,
17076 t_TAIL_01,
17077 t_TAIL_02,
17078 t_TAIL_03,
17079 t_TAIL_04,
17080 t_TAIL_05,
17081 t_TAIL_06,
17082 t_TAIL_07,
17083 t_TAIL_08> {
17084};
17085#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 8
17086
17087#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 9
17088template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17089 class t_TAIL_02,
17090 class t_TAIL_03,
17091 class t_TAIL_04,
17092 class t_TAIL_05,
17093 class t_TAIL_06,
17094 class t_TAIL_07,
17095 class t_TAIL_08,
17096 class t_TAIL_09>
17097struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17098 t_TAIL_02,
17099 t_TAIL_03,
17100 t_TAIL_04,
17101 t_TAIL_05,
17102 t_TAIL_06,
17103 t_TAIL_07,
17104 t_TAIL_08,
17105 t_TAIL_09> >
17106: Variant_ConvertToIndexImpl<
17107 0,
17108 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17109 t_HEAD,
17110 t_TAIL_01,
17111 t_TAIL_02,
17112 t_TAIL_03,
17113 t_TAIL_04,
17114 t_TAIL_05,
17115 t_TAIL_06,
17116 t_TAIL_07,
17117 t_TAIL_08,
17118 t_TAIL_09> {
17119};
17120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 9
17121
17122#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 10
17123template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17124 class t_TAIL_02,
17125 class t_TAIL_03,
17126 class t_TAIL_04,
17127 class t_TAIL_05,
17128 class t_TAIL_06,
17129 class t_TAIL_07,
17130 class t_TAIL_08,
17131 class t_TAIL_09,
17132 class t_TAIL_10>
17133struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17134 t_TAIL_02,
17135 t_TAIL_03,
17136 t_TAIL_04,
17137 t_TAIL_05,
17138 t_TAIL_06,
17139 t_TAIL_07,
17140 t_TAIL_08,
17141 t_TAIL_09,
17142 t_TAIL_10> >
17143: Variant_ConvertToIndexImpl<
17144 0,
17145 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17146 t_HEAD,
17147 t_TAIL_01,
17148 t_TAIL_02,
17149 t_TAIL_03,
17150 t_TAIL_04,
17151 t_TAIL_05,
17152 t_TAIL_06,
17153 t_TAIL_07,
17154 t_TAIL_08,
17155 t_TAIL_09,
17156 t_TAIL_10> {
17157};
17158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 10
17159
17160#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 11
17161template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17162 class t_TAIL_02,
17163 class t_TAIL_03,
17164 class t_TAIL_04,
17165 class t_TAIL_05,
17166 class t_TAIL_06,
17167 class t_TAIL_07,
17168 class t_TAIL_08,
17169 class t_TAIL_09,
17170 class t_TAIL_10,
17171 class t_TAIL_11>
17172struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17173 t_TAIL_02,
17174 t_TAIL_03,
17175 t_TAIL_04,
17176 t_TAIL_05,
17177 t_TAIL_06,
17178 t_TAIL_07,
17179 t_TAIL_08,
17180 t_TAIL_09,
17181 t_TAIL_10,
17182 t_TAIL_11> >
17183: Variant_ConvertToIndexImpl<
17184 0,
17185 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17186 t_HEAD,
17187 t_TAIL_01,
17188 t_TAIL_02,
17189 t_TAIL_03,
17190 t_TAIL_04,
17191 t_TAIL_05,
17192 t_TAIL_06,
17193 t_TAIL_07,
17194 t_TAIL_08,
17195 t_TAIL_09,
17196 t_TAIL_10,
17197 t_TAIL_11> {
17198};
17199#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 11
17200
17201#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 12
17202template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17203 class t_TAIL_02,
17204 class t_TAIL_03,
17205 class t_TAIL_04,
17206 class t_TAIL_05,
17207 class t_TAIL_06,
17208 class t_TAIL_07,
17209 class t_TAIL_08,
17210 class t_TAIL_09,
17211 class t_TAIL_10,
17212 class t_TAIL_11,
17213 class t_TAIL_12>
17214struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17215 t_TAIL_02,
17216 t_TAIL_03,
17217 t_TAIL_04,
17218 t_TAIL_05,
17219 t_TAIL_06,
17220 t_TAIL_07,
17221 t_TAIL_08,
17222 t_TAIL_09,
17223 t_TAIL_10,
17224 t_TAIL_11,
17225 t_TAIL_12> >
17226: Variant_ConvertToIndexImpl<
17227 0,
17228 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17229 t_HEAD,
17230 t_TAIL_01,
17231 t_TAIL_02,
17232 t_TAIL_03,
17233 t_TAIL_04,
17234 t_TAIL_05,
17235 t_TAIL_06,
17236 t_TAIL_07,
17237 t_TAIL_08,
17238 t_TAIL_09,
17239 t_TAIL_10,
17240 t_TAIL_11,
17241 t_TAIL_12> {
17242};
17243#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 12
17244
17245#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 13
17246template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17247 class t_TAIL_02,
17248 class t_TAIL_03,
17249 class t_TAIL_04,
17250 class t_TAIL_05,
17251 class t_TAIL_06,
17252 class t_TAIL_07,
17253 class t_TAIL_08,
17254 class t_TAIL_09,
17255 class t_TAIL_10,
17256 class t_TAIL_11,
17257 class t_TAIL_12,
17258 class t_TAIL_13>
17259struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17260 t_TAIL_02,
17261 t_TAIL_03,
17262 t_TAIL_04,
17263 t_TAIL_05,
17264 t_TAIL_06,
17265 t_TAIL_07,
17266 t_TAIL_08,
17267 t_TAIL_09,
17268 t_TAIL_10,
17269 t_TAIL_11,
17270 t_TAIL_12,
17271 t_TAIL_13> >
17272: Variant_ConvertToIndexImpl<
17273 0,
17274 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17275 t_HEAD,
17276 t_TAIL_01,
17277 t_TAIL_02,
17278 t_TAIL_03,
17279 t_TAIL_04,
17280 t_TAIL_05,
17281 t_TAIL_06,
17282 t_TAIL_07,
17283 t_TAIL_08,
17284 t_TAIL_09,
17285 t_TAIL_10,
17286 t_TAIL_11,
17287 t_TAIL_12,
17288 t_TAIL_13> {
17289};
17290#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 13
17291
17292#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 14
17293template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17294 class t_TAIL_02,
17295 class t_TAIL_03,
17296 class t_TAIL_04,
17297 class t_TAIL_05,
17298 class t_TAIL_06,
17299 class t_TAIL_07,
17300 class t_TAIL_08,
17301 class t_TAIL_09,
17302 class t_TAIL_10,
17303 class t_TAIL_11,
17304 class t_TAIL_12,
17305 class t_TAIL_13,
17306 class t_TAIL_14>
17307struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17308 t_TAIL_02,
17309 t_TAIL_03,
17310 t_TAIL_04,
17311 t_TAIL_05,
17312 t_TAIL_06,
17313 t_TAIL_07,
17314 t_TAIL_08,
17315 t_TAIL_09,
17316 t_TAIL_10,
17317 t_TAIL_11,
17318 t_TAIL_12,
17319 t_TAIL_13,
17320 t_TAIL_14> >
17321: Variant_ConvertToIndexImpl<
17322 0,
17323 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17324 t_HEAD,
17325 t_TAIL_01,
17326 t_TAIL_02,
17327 t_TAIL_03,
17328 t_TAIL_04,
17329 t_TAIL_05,
17330 t_TAIL_06,
17331 t_TAIL_07,
17332 t_TAIL_08,
17333 t_TAIL_09,
17334 t_TAIL_10,
17335 t_TAIL_11,
17336 t_TAIL_12,
17337 t_TAIL_13,
17338 t_TAIL_14> {
17339};
17340#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 14
17341
17342#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 15
17343template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17344 class t_TAIL_02,
17345 class t_TAIL_03,
17346 class t_TAIL_04,
17347 class t_TAIL_05,
17348 class t_TAIL_06,
17349 class t_TAIL_07,
17350 class t_TAIL_08,
17351 class t_TAIL_09,
17352 class t_TAIL_10,
17353 class t_TAIL_11,
17354 class t_TAIL_12,
17355 class t_TAIL_13,
17356 class t_TAIL_14,
17357 class t_TAIL_15>
17358struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17359 t_TAIL_02,
17360 t_TAIL_03,
17361 t_TAIL_04,
17362 t_TAIL_05,
17363 t_TAIL_06,
17364 t_TAIL_07,
17365 t_TAIL_08,
17366 t_TAIL_09,
17367 t_TAIL_10,
17368 t_TAIL_11,
17369 t_TAIL_12,
17370 t_TAIL_13,
17371 t_TAIL_14,
17372 t_TAIL_15> >
17373: Variant_ConvertToIndexImpl<
17374 0,
17375 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17376 t_HEAD,
17377 t_TAIL_01,
17378 t_TAIL_02,
17379 t_TAIL_03,
17380 t_TAIL_04,
17381 t_TAIL_05,
17382 t_TAIL_06,
17383 t_TAIL_07,
17384 t_TAIL_08,
17385 t_TAIL_09,
17386 t_TAIL_10,
17387 t_TAIL_11,
17388 t_TAIL_12,
17389 t_TAIL_13,
17390 t_TAIL_14,
17391 t_TAIL_15> {
17392};
17393#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 15
17394
17395#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 16
17396template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17397 class t_TAIL_02,
17398 class t_TAIL_03,
17399 class t_TAIL_04,
17400 class t_TAIL_05,
17401 class t_TAIL_06,
17402 class t_TAIL_07,
17403 class t_TAIL_08,
17404 class t_TAIL_09,
17405 class t_TAIL_10,
17406 class t_TAIL_11,
17407 class t_TAIL_12,
17408 class t_TAIL_13,
17409 class t_TAIL_14,
17410 class t_TAIL_15,
17411 class t_TAIL_16>
17412struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17413 t_TAIL_02,
17414 t_TAIL_03,
17415 t_TAIL_04,
17416 t_TAIL_05,
17417 t_TAIL_06,
17418 t_TAIL_07,
17419 t_TAIL_08,
17420 t_TAIL_09,
17421 t_TAIL_10,
17422 t_TAIL_11,
17423 t_TAIL_12,
17424 t_TAIL_13,
17425 t_TAIL_14,
17426 t_TAIL_15,
17427 t_TAIL_16> >
17428: Variant_ConvertToIndexImpl<
17429 0,
17430 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17431 t_HEAD,
17432 t_TAIL_01,
17433 t_TAIL_02,
17434 t_TAIL_03,
17435 t_TAIL_04,
17436 t_TAIL_05,
17437 t_TAIL_06,
17438 t_TAIL_07,
17439 t_TAIL_08,
17440 t_TAIL_09,
17441 t_TAIL_10,
17442 t_TAIL_11,
17443 t_TAIL_12,
17444 t_TAIL_13,
17445 t_TAIL_14,
17446 t_TAIL_15,
17447 t_TAIL_16> {
17448};
17449#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 16
17450
17451#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 17
17452template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17453 class t_TAIL_02,
17454 class t_TAIL_03,
17455 class t_TAIL_04,
17456 class t_TAIL_05,
17457 class t_TAIL_06,
17458 class t_TAIL_07,
17459 class t_TAIL_08,
17460 class t_TAIL_09,
17461 class t_TAIL_10,
17462 class t_TAIL_11,
17463 class t_TAIL_12,
17464 class t_TAIL_13,
17465 class t_TAIL_14,
17466 class t_TAIL_15,
17467 class t_TAIL_16,
17468 class t_TAIL_17>
17469struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17470 t_TAIL_02,
17471 t_TAIL_03,
17472 t_TAIL_04,
17473 t_TAIL_05,
17474 t_TAIL_06,
17475 t_TAIL_07,
17476 t_TAIL_08,
17477 t_TAIL_09,
17478 t_TAIL_10,
17479 t_TAIL_11,
17480 t_TAIL_12,
17481 t_TAIL_13,
17482 t_TAIL_14,
17483 t_TAIL_15,
17484 t_TAIL_16,
17485 t_TAIL_17> >
17486: Variant_ConvertToIndexImpl<
17487 0,
17488 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17489 t_HEAD,
17490 t_TAIL_01,
17491 t_TAIL_02,
17492 t_TAIL_03,
17493 t_TAIL_04,
17494 t_TAIL_05,
17495 t_TAIL_06,
17496 t_TAIL_07,
17497 t_TAIL_08,
17498 t_TAIL_09,
17499 t_TAIL_10,
17500 t_TAIL_11,
17501 t_TAIL_12,
17502 t_TAIL_13,
17503 t_TAIL_14,
17504 t_TAIL_15,
17505 t_TAIL_16,
17506 t_TAIL_17> {
17507};
17508#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 17
17509
17510#if BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 18
17511template <class t_TYPE, class t_HEAD, class t_TAIL_01,
17512 class t_TAIL_02,
17513 class t_TAIL_03,
17514 class t_TAIL_04,
17515 class t_TAIL_05,
17516 class t_TAIL_06,
17517 class t_TAIL_07,
17518 class t_TAIL_08,
17519 class t_TAIL_09,
17520 class t_TAIL_10,
17521 class t_TAIL_11,
17522 class t_TAIL_12,
17523 class t_TAIL_13,
17524 class t_TAIL_14,
17525 class t_TAIL_15,
17526 class t_TAIL_16,
17527 class t_TAIL_17,
17528 class t_TAIL_18>
17529struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL_01,
17530 t_TAIL_02,
17531 t_TAIL_03,
17532 t_TAIL_04,
17533 t_TAIL_05,
17534 t_TAIL_06,
17535 t_TAIL_07,
17536 t_TAIL_08,
17537 t_TAIL_09,
17538 t_TAIL_10,
17539 t_TAIL_11,
17540 t_TAIL_12,
17541 t_TAIL_13,
17542 t_TAIL_14,
17543 t_TAIL_15,
17544 t_TAIL_16,
17545 t_TAIL_17,
17546 t_TAIL_18> >
17547: Variant_ConvertToIndexImpl<
17548 0,
17549 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17550 t_HEAD,
17551 t_TAIL_01,
17552 t_TAIL_02,
17553 t_TAIL_03,
17554 t_TAIL_04,
17555 t_TAIL_05,
17556 t_TAIL_06,
17557 t_TAIL_07,
17558 t_TAIL_08,
17559 t_TAIL_09,
17560 t_TAIL_10,
17561 t_TAIL_11,
17562 t_TAIL_12,
17563 t_TAIL_13,
17564 t_TAIL_14,
17565 t_TAIL_15,
17566 t_TAIL_16,
17567 t_TAIL_17,
17568 t_TAIL_18> {
17569};
17570#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_G >= 18
17571
17572#else
17573// The generated code below is a workaround for the absence of perfect
17574// forwarding in some compilers.
17575template <size_t t_INDEX,
17576 class t_TYPE,
17577 class t_HEAD = BSLSTL_VARIANT_NOT_A_TYPE,
17578 class... t_TAIL>
17579struct Variant_ConvertToIndexImpl;
17580
17581template <size_t t_INDEX, class t_TYPE>
17582struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, BSLSTL_VARIANT_NOT_A_TYPE>
17583: bsl::integral_constant<size_t, bsl::variant_npos> {
17584};
17585template <size_t t_INDEX, class t_TYPE, class t_HEAD, class... t_TAIL>
17586struct Variant_ConvertToIndexImpl<t_INDEX, t_TYPE, t_HEAD, t_TAIL...>
17588 bsl::is_same<typename bsl::remove_cv<t_TYPE>::type,
17589 typename bsl::remove_cv<t_HEAD>::type>::value,
17590 bsl::integral_constant<size_t, t_INDEX>,
17591 Variant_ConvertToIndexImpl<t_INDEX + 1, t_TYPE, t_TAIL...> >::type {
17592};
17593
17594template <class t_TYPE, class t_VARIANT>
17595struct Variant_ConvertIndex;
17596
17597template <class t_TYPE, class t_HEAD, class... t_TAIL>
17598struct Variant_ConvertIndex<t_TYPE, bsl::variant<t_HEAD, t_TAIL...> >
17599: Variant_ConvertToIndexImpl<
17600 0,
17601 typename bslmf::MovableRefUtil::RemoveReference<t_TYPE>::type,
17602 t_HEAD,
17603 t_TAIL...> {
17604};
17605
17606// }}} END GENERATED CODE
17607#endif
17608#endif // BSL_VARIANT_FULL_IMPLEMENTATION
17609
17610/// This component-private metafunction is derived from `bsl::true_type` if
17611/// there is a unique best match alternative in (template parameter)
17612/// `t_VARIANT` for 'std::declval<t_TYPE>() and that alternative is
17613/// constructible from `std::declval<t_TYPE>(), and `bsl::false_type'
17614/// otherwise.
17615template <class t_VARIANT,
17616 class t_TYPE,
17617 size_t t_INDEX = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, t_VARIANT)>
17618struct Variant_IsAlternativeConstructibleFrom
17620 bool,
17621 Variant_IsConstructible<
17622 typename bsl::variant_alternative<t_INDEX, t_VARIANT>::type,
17623 t_TYPE>::value &&
17624 Variant_HasUniqueCVType<BSLSTL_VARIANT_CONVERT_TYPE_OF(t_TYPE,
17625 t_VARIANT),
17626 t_VARIANT>::value> {
17627};
17628
17629template <class t_VARIANT, class t_TYPE>
17630struct Variant_IsAlternativeConstructibleFrom<t_VARIANT,
17631 t_TYPE,
17634};
17635
17636/// This component-private metafunction is derived from `bsl::true_type` if
17637/// there is a unique best match alternative in (template parameter)
17638/// `t_VARIANT` for `std::declval<t_TYPE>()` and that alternative is both
17639/// constructible and assignable from `std::declval<t_TYPE>()`, and
17640/// `bsl::false_type` otherwise.
17641template <class t_VARIANT,
17642 class t_TYPE,
17643 size_t t_INDEX = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, t_VARIANT)>
17644struct Variant_isAlternativeAssignableFrom
17646 bool,
17647 Variant_IsAssignable<
17648 typename bsl::variant_alternative<t_INDEX, t_VARIANT>::type&,
17649 t_TYPE>::value &&
17650 Variant_HasUniqueCVType<BSLSTL_VARIANT_CONVERT_TYPE_OF(t_TYPE,
17651 t_VARIANT),
17652 t_VARIANT>::value> {
17653};
17654
17655template <class t_VARIANT, class t_TYPE>
17656struct Variant_isAlternativeAssignableFrom<t_VARIANT,
17657 t_TYPE,
17660};
17661
17662/// This component-private metafunction declares a member `type` that is an
17663/// alias to the `std::variant` type corresponding to `t_TYPE` if one
17664/// exists, and `void` otherwise.
17665template <class t_TYPE>
17666struct Variant_CorrespondingStdVariant {
17667 typedef void type;
17668};
17669
17670#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
17671template <class t_HEAD, class... t_TAIL>
17672struct Variant_CorrespondingStdVariant<bsl::variant<t_HEAD, t_TAIL...>> {
17673 typedef std::variant<t_HEAD, t_TAIL...> type;
17674};
17675#endif // BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
17676
17677/// This component-private metafunction is derived from `bsl::true_type` if
17678/// (template parameter) `t_TYPE` is neither a tag type, nor the type
17679/// (template parameter) `t_VARIANT` (modulo cv-qualification), nor the
17680/// corresponding (possibly cv-qualified) `std::variant` type, there is a
17681/// unique best match alternative in `t_VARIANT` for
17682/// `std::declval<t_TYPE>()`, and that alternative is constructible from
17683/// `std::declval<t_TYPE>()`; otherwise, this metafunction is derived from
17684/// `bsl::false_type`.
17685template <class t_VARIANT, class t_TYPE>
17686struct Variant_ConstructsFromType
17688 bool,
17689 !bsl::is_same<typename bsl::remove_cvref<t_TYPE>::type,
17690 t_VARIANT>::value &&
17691 !Variant_IsTag<typename bsl::remove_cvref<t_TYPE>::type>::value &&
17692 !bsl::is_same<
17693 typename Variant_CorrespondingStdVariant<t_VARIANT>::type,
17694 typename bsl::remove_cvref<t_TYPE>::type>::value &&
17695 Variant_IsAlternativeConstructibleFrom<t_VARIANT, t_TYPE>::value> {
17696};
17697
17698/// This component-private metafunction is derived from `bsl::true_type` if
17699/// (template parameter) `t_TYPE` is neither a tag type nor the type
17700/// (template parameter) `t_VARIANT` (modulo cv-qualification), there is a
17701/// unique best match alternative in `t_VARIANT` for
17702/// `std::declval<t_TYPE>()`, and that alternative is constructible and
17703/// assignable from `std::declval<t_TYPE>()`; otherwise, this metafunction
17704/// is derived from `bsl::false_type`.
17705template <class t_VARIANT, class t_TYPE>
17706struct Variant_AssignsFromType
17708 bool,
17709 !bsl::is_same<typename bsl::remove_cvref<t_TYPE>::type,
17710 t_VARIANT>::value &&
17711 Variant_IsAlternativeConstructibleFrom<t_VARIANT, t_TYPE>::value &&
17712 Variant_isAlternativeAssignableFrom<t_VARIANT, t_TYPE>::value> {
17713};
17714
17715#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
17716template <class t_VARIANT, class t_STD_VARIANT>
17717constexpr bool variant_constructsFromStd =
17718 // This component-private constexpr variable template is 'true' if
17719 // 't_VARIANT' is a specialization of 'bsl::variant', and 't_STD_VARIANT'
17720 // is the 'std::variant' type (possibly with added cvref-qualification)
17721 // that has the same sequence of alternatives, and each alternative of
17722 // 't_VARIANT' is constructible from the corresponding alternative of
17723 // 't_STD_VARIANT' (with cv-qualification and value category matching that
17724 // of 't_STD_VARIANT'). Note that we use 'bsl::conjunction_v' for its
17725 // short-circuiting properties: if 't_STD_VARIANT' isn't a 'std::variant'
17726 // (for example, if it's a 'bsl::variant') we avoid recursing into the
17727 // constraints of 'bsl::variant'.
17728 bsl::conjunction_v<
17730 bsl::remove_cvref_t<t_STD_VARIANT>>,
17731 std::is_constructible<bsl::remove_cvref_t<t_STD_VARIANT>,
17732 t_STD_VARIANT>>;
17733#endif // BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
17734
17735#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
17736// The following component-private machinery allows for conditionally deleting
17737// special member functions.
17738
17739/// This component-private class has deleted copy constructor if (template
17740/// parameter) `t_ISCOPYCONSTRUCTIBLE` is `false`. All other special member
17741/// functions are defaulted.
17742template <bool t_ISCOPYCONSTRUCTIBLE>
17743struct Variant_CopyConstructorBase {
17744};
17745template <>
17746struct Variant_CopyConstructorBase<false> {
17747 Variant_CopyConstructorBase() = default;
17748 Variant_CopyConstructorBase(const Variant_CopyConstructorBase&) = delete;
17749 Variant_CopyConstructorBase(Variant_CopyConstructorBase&&) = default;
17750 Variant_CopyConstructorBase&
17751 operator=(const Variant_CopyConstructorBase&) = default;
17752 Variant_CopyConstructorBase&
17753 operator=(Variant_CopyConstructorBase&&) = default;
17754};
17755
17756/// This component-private class has deleted move constructor if (template
17757/// parameter) `t_ISMOVECONSTRUCTIBLE` is `false`. All other special member
17758/// functions are defaulted.
17759template <bool t_ISCOPYCONSTRUCTIBLE, bool t_ISMOVECONSTRUCTIBLE>
17760struct Variant_MoveConstructorBase
17761: Variant_CopyConstructorBase<t_ISCOPYCONSTRUCTIBLE> {
17762};
17763template <bool t_ISCOPYCONSTRUCTIBLE>
17764struct Variant_MoveConstructorBase<t_ISCOPYCONSTRUCTIBLE, false>
17765: Variant_CopyConstructorBase<t_ISCOPYCONSTRUCTIBLE> {
17766 Variant_MoveConstructorBase() = default;
17767 Variant_MoveConstructorBase(const Variant_MoveConstructorBase&) = default;
17768 Variant_MoveConstructorBase(Variant_MoveConstructorBase&&) = delete;
17769 Variant_MoveConstructorBase&
17770 operator=(const Variant_MoveConstructorBase&) = default;
17771 Variant_MoveConstructorBase&
17772 operator=(Variant_MoveConstructorBase&&) = default;
17773};
17774
17775/// This component-private class has deleted copy assignment operator if
17776/// (template parameter) `t_ISCOPYASSIGNABLE` is `false`. All other special
17777/// member functions are defaulted.
17778template <bool t_ISCOPYCONSTRUCTIBLE,
17779 bool t_ISMOVECONSTRUCTIBLE,
17780 bool t_ISCOPYASSIGNABLE>
17781struct Variant_CopyAssignBase
17782: Variant_MoveConstructorBase<t_ISCOPYCONSTRUCTIBLE, t_ISMOVECONSTRUCTIBLE> {
17783};
17784template <bool t_ISCOPYCONSTRUCTIBLE, bool t_ISMOVECONSTRUCTIBLE>
17785struct Variant_CopyAssignBase<t_ISCOPYCONSTRUCTIBLE,
17786 t_ISMOVECONSTRUCTIBLE,
17787 false>
17788: Variant_MoveConstructorBase<t_ISCOPYCONSTRUCTIBLE, t_ISMOVECONSTRUCTIBLE> {
17789 Variant_CopyAssignBase() = default;
17790 Variant_CopyAssignBase(const Variant_CopyAssignBase&) = default;
17791 Variant_CopyAssignBase(Variant_CopyAssignBase&&) = default;
17792 Variant_CopyAssignBase& operator=(const Variant_CopyAssignBase&) = delete;
17793 Variant_CopyAssignBase& operator=(Variant_CopyAssignBase&&) = default;
17794};
17795
17796/// This component-private class has deleted move assignment operator if
17797/// (template parameter) `t_ISMOVEASSIGNABLE` is `false`. All other special
17798/// member functions are defaulted.
17799template <bool t_ISCOPYCONSTRUCTIBLE,
17800 bool t_ISMOVECONSTRUCTIBLE,
17801 bool t_ISCOPYASSIGNABLE,
17802 bool t_ISMOVEASSIGNABLE>
17803struct Variant_MoveAssignBase : Variant_CopyAssignBase<t_ISCOPYCONSTRUCTIBLE,
17804 t_ISMOVECONSTRUCTIBLE,
17805 t_ISCOPYASSIGNABLE> {
17806};
17807template <bool t_ISCOPYCONSTRUCTIBLE,
17808 bool t_ISMOVECONSTRUCTIBLE,
17809 bool t_ISCOPYASSIGNABLE>
17810struct Variant_MoveAssignBase<t_ISCOPYCONSTRUCTIBLE,
17811 t_ISMOVECONSTRUCTIBLE,
17812 t_ISCOPYASSIGNABLE,
17813 false>
17814: Variant_CopyAssignBase<t_ISCOPYCONSTRUCTIBLE,
17815 t_ISMOVECONSTRUCTIBLE,
17816 t_ISCOPYASSIGNABLE> {
17817 Variant_MoveAssignBase() = default;
17818 Variant_MoveAssignBase(const Variant_MoveAssignBase&) = default;
17819 Variant_MoveAssignBase(Variant_MoveAssignBase&&) = default;
17820 Variant_MoveAssignBase& operator=(const Variant_MoveAssignBase&) = default;
17821 Variant_MoveAssignBase& operator=(Variant_MoveAssignBase&&) = delete;
17822};
17823
17824/// This component-private class has special member functions that are
17825/// either deleted or defaulted according to the specified template
17826/// parameters.
17827template <bool t_ISCOPYCONSTRUCTIBLE,
17828 bool t_ISMOVECONSTRUCTIBLE,
17829 bool t_ISCOPYASSIGNABLE,
17830 bool t_ISMOVEASSIGNABLE>
17831struct Variant_SMFBase : Variant_MoveAssignBase<t_ISCOPYCONSTRUCTIBLE,
17832 t_ISMOVECONSTRUCTIBLE,
17833 t_ISCOPYASSIGNABLE,
17834 t_ISMOVEASSIGNABLE> {
17835};
17836
17837/// This component-private metafunction is derived from `bsl::true_type` if
17838/// all template parameters are copy constructible, and `bsl::false_type`
17839/// otherwise.
17840template <class t_HEAD, class... t_TAIL>
17841struct Variant_IsCopyConstructibleAll
17843 bool,
17844 std::is_copy_constructible<t_HEAD>::value &&
17845 Variant_IsCopyConstructibleAll<t_TAIL...>::value> {
17846};
17847
17848template <class t_HEAD>
17849struct Variant_IsCopyConstructibleAll<t_HEAD>
17850: std::is_copy_constructible<t_HEAD> {
17851};
17852
17853/// This component-private metafunction is derived from `bsl::true_type` if
17854/// all template parameters are move constructible, and `bsl::false_type`
17855/// otherwise.
17856template <class t_HEAD, class... t_TAIL>
17857struct Variant_IsMoveConstructibleAll
17859 bool,
17860 std::is_move_constructible<t_HEAD>::value &&
17861 Variant_IsMoveConstructibleAll<t_TAIL...>::value> {
17862};
17863
17864template <class t_HEAD>
17865struct Variant_IsMoveConstructibleAll<t_HEAD>
17866: std::is_move_constructible<t_HEAD> {
17867};
17868
17869/// This component-private metafunction is derived from `bsl::true_type` if
17870/// all template parameters are copy assignable, and `bsl::false_type`
17871/// otherwise.
17872template <class t_HEAD, class... t_TAIL>
17873struct Variant_IsCopyAssignableAll
17875 std::is_copy_assignable<t_HEAD>::value &&
17876 Variant_IsCopyAssignableAll<t_TAIL...>::value> {
17877};
17878
17879template <class t_HEAD>
17880struct Variant_IsCopyAssignableAll<t_HEAD> : std::is_copy_assignable<t_HEAD> {
17881};
17882
17883/// This component-private metafunction is derived from `bsl::true_type` if
17884/// all template parameters are move assignable, and `bsl::false_type`
17885/// otherwise.
17886template <class t_HEAD, class... t_TAIL>
17887struct Variant_IsMoveAssignableAll
17889 std::is_move_assignable<t_HEAD>::value &&
17890 Variant_IsMoveAssignableAll<t_TAIL...>::value> {
17891};
17892
17893template <class t_HEAD>
17894struct Variant_IsMoveAssignableAll<t_HEAD> : std::is_move_assignable<t_HEAD> {
17895};
17896#endif // BSL_VARIANT_FULL_IMPLEMENTATION
17897
17898#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
17899template <class t_RET, class t_VISITOR, class t_VARIANT, size_t t_INDEX>
17900struct Variant_Function {
17901 /// This component-private function invokes the specified `visitor` with
17902 /// the active alternative object of the specified `variant` and
17903 /// implicitly converts the return type to (template parameter) `t_RET`.
17904 /// The pre-C++17 implementation is limited to invocations of the form
17905 /// `visitor(variant)`. The behavior is undefined unless (template
17906 /// parameter) `t_INDEX` is the index of the active alternative.
17907 static t_RET functionImpl(t_VISITOR&& visitor, t_VARIANT&& variant)
17908 {
17909#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
17910 return std::invoke(
17911 std::forward<t_VISITOR>(visitor),
17912 bsl::get<t_INDEX>(std::forward<t_VARIANT>(variant)));
17913#else
17914 return std::forward<t_VISITOR>(visitor)(
17915 bsl::get<t_INDEX>(std::forward<t_VARIANT>(variant)));
17916#endif
17917 }
17918};
17919
17920/// This partial specialization is used when `t_RET` is `void`. The visitor
17921/// is invoked and its return value, if any, is ignored. This partial
17922/// specialization is necessary because a `void`-returning function cannot
17923/// contain a `return` statement with a non-`void` operand.
17924template <class t_VISITOR, class t_VARIANT, size_t t_INDEX>
17925struct Variant_Function<void, t_VISITOR, t_VARIANT, t_INDEX> {
17926
17927 static void functionImpl(t_VISITOR&& visitor, t_VARIANT&& variant)
17928 {
17929#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
17930 std::invoke(std::forward<t_VISITOR>(visitor),
17931 bsl::get<t_INDEX>(std::forward<t_VARIANT>(variant)));
17932#else
17933 std::forward<t_VISITOR>(visitor)(
17934 bsl::get<t_INDEX>(std::forward<t_VARIANT>(variant)));
17935#endif
17936 }
17937};
17938
17939template <class t_RET, class t_VISITOR, class t_VARIANT, size_t t_INDEX>
17940struct Variant_FunctionId {
17941 /// This component-private function invokes the specified `visitor` with
17942 /// a `bsl::in_place_index_t` tag representing the value of (template
17943 /// parameter) `t_INDEX` and the active alternative object of the
17944 /// specified `variant`, implicitly converting the return type to
17945 /// (template parameter) `t_RET`. The behavior is undefined unless
17946 /// `t_INDEX` is the index of the active alternative.
17947 static t_RET functionImpl(t_VISITOR&& visitor, t_VARIANT&& variant)
17948 {
17949 return visitor(bsl::in_place_index_t<t_INDEX>(),
17950 bsl::get<t_INDEX>(std::forward<t_VARIANT>(variant)));
17951 }
17952};
17953
17954/// This component-private struct computes an array in which element `i` is
17955/// a pointer to
17956/// `Variant_Function<t_RET, t_VISITOR, t_VARIANT, i>::functionImpl`,
17957/// defined above as a function that invokes a `t_VISITOR` with alternative
17958/// `i` of `t_VARIANT` and implicitly converts the return type to `t_RET`.
17959template <class t_RET, class t_VISITOR, class t_VARIANT, class t_DUMMY>
17960struct Variant_VTable;
17961
17962/// In order to allow for perfect forwarding, both t_VISITOR and t_VARIANT
17963/// must be of reference type. If they are not, something went wrong.
17964template <class t_RET, class t_VISITOR, class t_VARIANT, size_t... t_INDICES>
17965struct Variant_VTable<t_RET,
17966 t_VISITOR,
17967 t_VARIANT,
17968 bslmf::IntegerSequence<std::size_t, t_INDICES...> > {
17971
17972 typedef t_RET (*FuncPtr)(t_VISITOR, t_VARIANT);
17973
17974 static BSLS_KEYWORD_CONSTEXPR FuncPtr s_map[sizeof...(t_INDICES)] = {
17975 &(Variant_Function<t_RET, t_VISITOR, t_VARIANT, t_INDICES>::
17976 functionImpl)...};
17977};
17978
17979/// This component-private struct computes an array in which element `i` is
17980/// a pointer to
17981/// `Variant_FunctionId<t_RET, t_VISITOR, t_VARIANT, i>::functionImpl`,
17982/// defined above as a function that invokes a `t_VISITOR` with a tag
17983/// representing `i` and alternative `i` of `t_VARIANT`, implicitly
17984/// converting the return type to `t_RET`. Implementation note: The
17985/// constexpr static maps of pointers defined by `Variant_VTable` and this
17986/// class have deliberately been defined in two different classes as having
17987/// them in the same class caused issues with Clang and Microsoft Visual
17988/// C++.
17989template <class t_RET, class t_VISITOR, class t_VARIANT, class t_DUMMY>
17990struct Variant_VTableId;
17991
17992/// In order to allow for perfect forwarding, both t_VISITOR and t_VARIANT
17993/// must be of reference type. If they are not, something went wrong.
17994template <class t_RET, class t_VISITOR, class t_VARIANT, size_t... t_INDICES>
17995struct Variant_VTableId<t_RET,
17996 t_VISITOR,
17997 t_VARIANT,
17998 bslmf::IntegerSequence<std::size_t, t_INDICES...> > {
18001
18002 typedef t_RET (*FuncPtr)(t_VISITOR, t_VARIANT);
18003
18004 static BSLS_KEYWORD_CONSTEXPR FuncPtr s_mapId[sizeof...(t_INDICES)] = {
18005 &(Variant_FunctionId<t_RET, t_VISITOR, t_VARIANT, t_INDICES>::
18006 functionImpl)...};
18007};
18008
18009// inline definitions of component-private function pointer maps
18010template <class t_RET, class t_VISITOR, class t_VARIANT, size_t... t_INDICES>
18011BSLS_KEYWORD_CONSTEXPR typename Variant_VTable<
18012 t_RET,
18013 t_VISITOR,
18014 t_VARIANT,
18015 bslmf::IntegerSequence<std::size_t, t_INDICES...> >::FuncPtr
18016 Variant_VTable<t_RET,
18017 t_VISITOR,
18018 t_VARIANT,
18019 bslmf::IntegerSequence<std::size_t, t_INDICES...> >::s_map
18020 [sizeof...(t_INDICES)];
18021
18022template <class t_RET, class t_VISITOR, class t_VARIANT, size_t... t_INDICES>
18023BSLS_KEYWORD_CONSTEXPR typename Variant_VTableId<
18024 t_RET,
18025 t_VISITOR,
18026 t_VARIANT,
18027 bslmf::IntegerSequence<std::size_t, t_INDICES...> >::FuncPtr
18028 Variant_VTableId<t_RET,
18029 t_VISITOR,
18030 t_VARIANT,
18031 bslmf::IntegerSequence<std::size_t, t_INDICES...> >::
18032 s_mapId[sizeof...(t_INDICES)];
18033
18034#else // BSL_VARIANT_FULL_IMPLEMENTATION
18035#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
18036// {{{ BEGIN GENERATED CODE
18037// Command line: sim_cpp11_features.pl bslstl_variant.h
18038#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
18039#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
18040#endif
18041#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_H
18042#define BSLSTL_VARIANT_VARIADIC_LIMIT_H BSLSTL_VARIANT_VARIADIC_LIMIT
18043#endif
18044
18045template <class t_RET, class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
18046struct Variant_Function {
18047 static t_RET functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
18048 {
18049 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
18050 return visitor(ImpUtil::unsafeGet<t_ALT_TYPE>(variant));
18051 }
18052};
18053
18054template <class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
18055struct Variant_Function<void, t_VISITOR, t_VARIANT, t_ALT_TYPE> {
18056
18057 static void functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
18058 {
18059 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
18060 visitor(ImpUtil::unsafeGet<t_ALT_TYPE>(variant));
18061 }
18062};
18063
18064template <class t_RET, class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
18065struct Variant_MoveFunction {
18066 static t_RET functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
18067 {
18068 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
18069 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
18070
18071 return visitor(
18072 MoveUtil::move(ImpUtil::unsafeGet<t_ALT_TYPE>(variant)));
18073 }
18074};
18075
18076template <class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
18077struct Variant_MoveFunction<void, t_VISITOR, t_VARIANT, t_ALT_TYPE> {
18078
18079 static void functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
18080 {
18081 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
18082 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
18083
18084 visitor(MoveUtil::move(ImpUtil::unsafeGet<t_ALT_TYPE>(variant)));
18085 }
18086};
18087
18088template <class t_RET, class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
18089struct Variant_FunctionId {
18090 static t_RET functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
18091 {
18092 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
18093 static const size_t t_INDEX = BSLSTL_VARIANT_INDEX_OF(
18094 t_ALT_TYPE, typename bsl::remove_cv<t_VARIANT>::type);
18095
18096 return visitor(bsl::in_place_index_t<t_INDEX>(),
18097 ImpUtil::unsafeGet<t_ALT_TYPE>(variant));
18098 }
18099};
18100
18101template <class t_RET,
18102 class t_VISITOR,
18103 class t_VARIANT
18104#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 0
18105 , class t_UNUSED_0 = BSLS_COMPILERFEATURES_NILT
18106#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 0
18107
18108#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 1
18109 , class t_UNUSED_1 = BSLS_COMPILERFEATURES_NILT
18110#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 1
18111
18112#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 2
18113 , class t_UNUSED_2 = BSLS_COMPILERFEATURES_NILT
18114#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 2
18115
18116#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 3
18117 , class t_UNUSED_3 = BSLS_COMPILERFEATURES_NILT
18118#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 3
18119
18120#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 4
18121 , class t_UNUSED_4 = BSLS_COMPILERFEATURES_NILT
18122#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 4
18123
18124#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 5
18125 , class t_UNUSED_5 = BSLS_COMPILERFEATURES_NILT
18126#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 5
18127
18128#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 6
18129 , class t_UNUSED_6 = BSLS_COMPILERFEATURES_NILT
18130#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 6
18131
18132#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 7
18133 , class t_UNUSED_7 = BSLS_COMPILERFEATURES_NILT
18134#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 7
18135
18136#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 8
18137 , class t_UNUSED_8 = BSLS_COMPILERFEATURES_NILT
18138#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 8
18139
18140#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 9
18141 , class t_UNUSED_9 = BSLS_COMPILERFEATURES_NILT
18142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 9
18143
18144#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 10
18145 , class t_UNUSED_10 = BSLS_COMPILERFEATURES_NILT
18146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 10
18147
18148#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 11
18149 , class t_UNUSED_11 = BSLS_COMPILERFEATURES_NILT
18150#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 11
18151
18152#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 12
18153 , class t_UNUSED_12 = BSLS_COMPILERFEATURES_NILT
18154#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 12
18155
18156#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 13
18157 , class t_UNUSED_13 = BSLS_COMPILERFEATURES_NILT
18158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 13
18159
18160#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 14
18161 , class t_UNUSED_14 = BSLS_COMPILERFEATURES_NILT
18162#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 14
18163
18164#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 15
18165 , class t_UNUSED_15 = BSLS_COMPILERFEATURES_NILT
18166#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 15
18167
18168#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 16
18169 , class t_UNUSED_16 = BSLS_COMPILERFEATURES_NILT
18170#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 16
18171
18172#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 17
18173 , class t_UNUSED_17 = BSLS_COMPILERFEATURES_NILT
18174#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 17
18175 , class = BSLS_COMPILERFEATURES_NILT>
18176struct Variant_VTable;
18177
18178
18179#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 0
18180template <class t_RET, class t_VISITOR, class t_HEAD>
18181struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD> > {
18182
18183 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD>&);
18184
18185 typedef bsl::variant<t_HEAD> Variant;
18186
18187 static const FuncPtr *map()
18188 {
18189 static const FuncPtr s_mapArray[] = {
18190 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18191 functionImpl)};
18192 return s_mapArray;
18193 }
18194
18195 static const FuncPtr *moveMap()
18196 {
18197 static const FuncPtr s_mapArray[] = {
18198 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18199 functionImpl)};
18200 return s_mapArray;
18201 }
18202
18203 static const FuncPtr *mapId()
18204 {
18205 static const FuncPtr s_mapArray[] = {
18206 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18207 functionImpl)};
18208 return s_mapArray;
18209 }
18210};
18211#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 0
18212
18213#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 1
18214template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01>
18215struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01> > {
18216
18217 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01>&);
18218
18219 typedef bsl::variant<t_HEAD, t_TAIL_01> Variant;
18220
18221 static const FuncPtr *map()
18222 {
18223 static const FuncPtr s_mapArray[] = {
18224 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18225 functionImpl),
18226 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18227 functionImpl)};
18228 return s_mapArray;
18229 }
18230
18231 static const FuncPtr *moveMap()
18232 {
18233 static const FuncPtr s_mapArray[] = {
18234 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18235 functionImpl),
18236 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18237 functionImpl)};
18238 return s_mapArray;
18239 }
18240
18241 static const FuncPtr *mapId()
18242 {
18243 static const FuncPtr s_mapArray[] = {
18244 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18245 functionImpl),
18246 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18247 functionImpl)};
18248 return s_mapArray;
18249 }
18250};
18251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 1
18252
18253#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 2
18254template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18255 class t_TAIL_02>
18256struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18257 t_TAIL_02> > {
18258
18259 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18260 t_TAIL_02>&);
18261
18262 typedef bsl::variant<t_HEAD, t_TAIL_01,
18263 t_TAIL_02> Variant;
18264
18265 static const FuncPtr *map()
18266 {
18267 static const FuncPtr s_mapArray[] = {
18268 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18269 functionImpl),
18270 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18271 functionImpl),
18272 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18273 functionImpl)};
18274 return s_mapArray;
18275 }
18276
18277 static const FuncPtr *moveMap()
18278 {
18279 static const FuncPtr s_mapArray[] = {
18280 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18281 functionImpl),
18282 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18283 functionImpl),
18284 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18285 functionImpl)};
18286 return s_mapArray;
18287 }
18288
18289 static const FuncPtr *mapId()
18290 {
18291 static const FuncPtr s_mapArray[] = {
18292 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18293 functionImpl),
18294 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18295 functionImpl),
18296 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18297 functionImpl)};
18298 return s_mapArray;
18299 }
18300};
18301#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 2
18302
18303#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 3
18304template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18305 class t_TAIL_02,
18306 class t_TAIL_03>
18307struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18308 t_TAIL_02,
18309 t_TAIL_03> > {
18310
18311 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18312 t_TAIL_02,
18313 t_TAIL_03>&);
18314
18315 typedef bsl::variant<t_HEAD, t_TAIL_01,
18316 t_TAIL_02,
18317 t_TAIL_03> Variant;
18318
18319 static const FuncPtr *map()
18320 {
18321 static const FuncPtr s_mapArray[] = {
18322 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18323 functionImpl),
18324 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18325 functionImpl),
18326 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18327 functionImpl),
18328 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18329 functionImpl)};
18330 return s_mapArray;
18331 }
18332
18333 static const FuncPtr *moveMap()
18334 {
18335 static const FuncPtr s_mapArray[] = {
18336 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18337 functionImpl),
18338 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18339 functionImpl),
18340 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18341 functionImpl),
18342 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18343 functionImpl)};
18344 return s_mapArray;
18345 }
18346
18347 static const FuncPtr *mapId()
18348 {
18349 static const FuncPtr s_mapArray[] = {
18350 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18351 functionImpl),
18352 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18353 functionImpl),
18354 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18355 functionImpl),
18356 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18357 functionImpl)};
18358 return s_mapArray;
18359 }
18360};
18361#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 3
18362
18363#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 4
18364template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18365 class t_TAIL_02,
18366 class t_TAIL_03,
18367 class t_TAIL_04>
18368struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18369 t_TAIL_02,
18370 t_TAIL_03,
18371 t_TAIL_04> > {
18372
18373 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18374 t_TAIL_02,
18375 t_TAIL_03,
18376 t_TAIL_04>&);
18377
18378 typedef bsl::variant<t_HEAD, t_TAIL_01,
18379 t_TAIL_02,
18380 t_TAIL_03,
18381 t_TAIL_04> Variant;
18382
18383 static const FuncPtr *map()
18384 {
18385 static const FuncPtr s_mapArray[] = {
18386 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18387 functionImpl),
18388 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18389 functionImpl),
18390 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18391 functionImpl),
18392 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18393 functionImpl),
18394 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18395 functionImpl)};
18396 return s_mapArray;
18397 }
18398
18399 static const FuncPtr *moveMap()
18400 {
18401 static const FuncPtr s_mapArray[] = {
18402 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18403 functionImpl),
18404 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18405 functionImpl),
18406 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18407 functionImpl),
18408 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18409 functionImpl),
18410 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18411 functionImpl)};
18412 return s_mapArray;
18413 }
18414
18415 static const FuncPtr *mapId()
18416 {
18417 static const FuncPtr s_mapArray[] = {
18418 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18419 functionImpl),
18420 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18421 functionImpl),
18422 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18423 functionImpl),
18424 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18425 functionImpl),
18426 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18427 functionImpl)};
18428 return s_mapArray;
18429 }
18430};
18431#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 4
18432
18433#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 5
18434template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18435 class t_TAIL_02,
18436 class t_TAIL_03,
18437 class t_TAIL_04,
18438 class t_TAIL_05>
18439struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18440 t_TAIL_02,
18441 t_TAIL_03,
18442 t_TAIL_04,
18443 t_TAIL_05> > {
18444
18445 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18446 t_TAIL_02,
18447 t_TAIL_03,
18448 t_TAIL_04,
18449 t_TAIL_05>&);
18450
18451 typedef bsl::variant<t_HEAD, t_TAIL_01,
18452 t_TAIL_02,
18453 t_TAIL_03,
18454 t_TAIL_04,
18455 t_TAIL_05> Variant;
18456
18457 static const FuncPtr *map()
18458 {
18459 static const FuncPtr s_mapArray[] = {
18460 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18461 functionImpl),
18462 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18463 functionImpl),
18464 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18465 functionImpl),
18466 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18467 functionImpl),
18468 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18469 functionImpl),
18470 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18471 functionImpl)};
18472 return s_mapArray;
18473 }
18474
18475 static const FuncPtr *moveMap()
18476 {
18477 static const FuncPtr s_mapArray[] = {
18478 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18479 functionImpl),
18480 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18481 functionImpl),
18482 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18483 functionImpl),
18484 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18485 functionImpl),
18486 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18487 functionImpl),
18488 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18489 functionImpl)};
18490 return s_mapArray;
18491 }
18492
18493 static const FuncPtr *mapId()
18494 {
18495 static const FuncPtr s_mapArray[] = {
18496 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18497 functionImpl),
18498 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18499 functionImpl),
18500 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18501 functionImpl),
18502 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18503 functionImpl),
18504 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18505 functionImpl),
18506 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18507 functionImpl)};
18508 return s_mapArray;
18509 }
18510};
18511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 5
18512
18513#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 6
18514template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18515 class t_TAIL_02,
18516 class t_TAIL_03,
18517 class t_TAIL_04,
18518 class t_TAIL_05,
18519 class t_TAIL_06>
18520struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18521 t_TAIL_02,
18522 t_TAIL_03,
18523 t_TAIL_04,
18524 t_TAIL_05,
18525 t_TAIL_06> > {
18526
18527 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18528 t_TAIL_02,
18529 t_TAIL_03,
18530 t_TAIL_04,
18531 t_TAIL_05,
18532 t_TAIL_06>&);
18533
18534 typedef bsl::variant<t_HEAD, t_TAIL_01,
18535 t_TAIL_02,
18536 t_TAIL_03,
18537 t_TAIL_04,
18538 t_TAIL_05,
18539 t_TAIL_06> Variant;
18540
18541 static const FuncPtr *map()
18542 {
18543 static const FuncPtr s_mapArray[] = {
18544 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18545 functionImpl),
18546 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18547 functionImpl),
18548 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18549 functionImpl),
18550 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18551 functionImpl),
18552 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18553 functionImpl),
18554 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18555 functionImpl),
18556 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18557 functionImpl)};
18558 return s_mapArray;
18559 }
18560
18561 static const FuncPtr *moveMap()
18562 {
18563 static const FuncPtr s_mapArray[] = {
18564 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18565 functionImpl),
18566 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18567 functionImpl),
18568 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18569 functionImpl),
18570 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18571 functionImpl),
18572 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18573 functionImpl),
18574 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18575 functionImpl),
18576 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18577 functionImpl)};
18578 return s_mapArray;
18579 }
18580
18581 static const FuncPtr *mapId()
18582 {
18583 static const FuncPtr s_mapArray[] = {
18584 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18585 functionImpl),
18586 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18587 functionImpl),
18588 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18589 functionImpl),
18590 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18591 functionImpl),
18592 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18593 functionImpl),
18594 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18595 functionImpl),
18596 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18597 functionImpl)};
18598 return s_mapArray;
18599 }
18600};
18601#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 6
18602
18603#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 7
18604template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18605 class t_TAIL_02,
18606 class t_TAIL_03,
18607 class t_TAIL_04,
18608 class t_TAIL_05,
18609 class t_TAIL_06,
18610 class t_TAIL_07>
18611struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18612 t_TAIL_02,
18613 t_TAIL_03,
18614 t_TAIL_04,
18615 t_TAIL_05,
18616 t_TAIL_06,
18617 t_TAIL_07> > {
18618
18619 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18620 t_TAIL_02,
18621 t_TAIL_03,
18622 t_TAIL_04,
18623 t_TAIL_05,
18624 t_TAIL_06,
18625 t_TAIL_07>&);
18626
18627 typedef bsl::variant<t_HEAD, t_TAIL_01,
18628 t_TAIL_02,
18629 t_TAIL_03,
18630 t_TAIL_04,
18631 t_TAIL_05,
18632 t_TAIL_06,
18633 t_TAIL_07> Variant;
18634
18635 static const FuncPtr *map()
18636 {
18637 static const FuncPtr s_mapArray[] = {
18638 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18639 functionImpl),
18640 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18641 functionImpl),
18642 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18643 functionImpl),
18644 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18645 functionImpl),
18646 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18647 functionImpl),
18648 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18649 functionImpl),
18650 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18651 functionImpl),
18652 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18653 functionImpl)};
18654 return s_mapArray;
18655 }
18656
18657 static const FuncPtr *moveMap()
18658 {
18659 static const FuncPtr s_mapArray[] = {
18660 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18661 functionImpl),
18662 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18663 functionImpl),
18664 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18665 functionImpl),
18666 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18667 functionImpl),
18668 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18669 functionImpl),
18670 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18671 functionImpl),
18672 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18673 functionImpl),
18674 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18675 functionImpl)};
18676 return s_mapArray;
18677 }
18678
18679 static const FuncPtr *mapId()
18680 {
18681 static const FuncPtr s_mapArray[] = {
18682 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18683 functionImpl),
18684 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18685 functionImpl),
18686 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18687 functionImpl),
18688 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18689 functionImpl),
18690 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18691 functionImpl),
18692 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18693 functionImpl),
18694 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18695 functionImpl),
18696 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18697 functionImpl)};
18698 return s_mapArray;
18699 }
18700};
18701#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 7
18702
18703#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 8
18704template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18705 class t_TAIL_02,
18706 class t_TAIL_03,
18707 class t_TAIL_04,
18708 class t_TAIL_05,
18709 class t_TAIL_06,
18710 class t_TAIL_07,
18711 class t_TAIL_08>
18712struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18713 t_TAIL_02,
18714 t_TAIL_03,
18715 t_TAIL_04,
18716 t_TAIL_05,
18717 t_TAIL_06,
18718 t_TAIL_07,
18719 t_TAIL_08> > {
18720
18721 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18722 t_TAIL_02,
18723 t_TAIL_03,
18724 t_TAIL_04,
18725 t_TAIL_05,
18726 t_TAIL_06,
18727 t_TAIL_07,
18728 t_TAIL_08>&);
18729
18730 typedef bsl::variant<t_HEAD, t_TAIL_01,
18731 t_TAIL_02,
18732 t_TAIL_03,
18733 t_TAIL_04,
18734 t_TAIL_05,
18735 t_TAIL_06,
18736 t_TAIL_07,
18737 t_TAIL_08> Variant;
18738
18739 static const FuncPtr *map()
18740 {
18741 static const FuncPtr s_mapArray[] = {
18742 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18743 functionImpl),
18744 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18745 functionImpl),
18746 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18747 functionImpl),
18748 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18749 functionImpl),
18750 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18751 functionImpl),
18752 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18753 functionImpl),
18754 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18755 functionImpl),
18756 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18757 functionImpl),
18758 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
18759 functionImpl)};
18760 return s_mapArray;
18761 }
18762
18763 static const FuncPtr *moveMap()
18764 {
18765 static const FuncPtr s_mapArray[] = {
18766 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18767 functionImpl),
18768 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18769 functionImpl),
18770 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18771 functionImpl),
18772 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18773 functionImpl),
18774 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18775 functionImpl),
18776 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18777 functionImpl),
18778 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18779 functionImpl),
18780 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18781 functionImpl),
18782 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
18783 functionImpl)};
18784 return s_mapArray;
18785 }
18786
18787 static const FuncPtr *mapId()
18788 {
18789 static const FuncPtr s_mapArray[] = {
18790 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18791 functionImpl),
18792 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18793 functionImpl),
18794 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18795 functionImpl),
18796 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18797 functionImpl),
18798 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18799 functionImpl),
18800 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18801 functionImpl),
18802 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18803 functionImpl),
18804 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18805 functionImpl),
18806 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
18807 functionImpl)};
18808 return s_mapArray;
18809 }
18810};
18811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 8
18812
18813#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 9
18814template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18815 class t_TAIL_02,
18816 class t_TAIL_03,
18817 class t_TAIL_04,
18818 class t_TAIL_05,
18819 class t_TAIL_06,
18820 class t_TAIL_07,
18821 class t_TAIL_08,
18822 class t_TAIL_09>
18823struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18824 t_TAIL_02,
18825 t_TAIL_03,
18826 t_TAIL_04,
18827 t_TAIL_05,
18828 t_TAIL_06,
18829 t_TAIL_07,
18830 t_TAIL_08,
18831 t_TAIL_09> > {
18832
18833 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18834 t_TAIL_02,
18835 t_TAIL_03,
18836 t_TAIL_04,
18837 t_TAIL_05,
18838 t_TAIL_06,
18839 t_TAIL_07,
18840 t_TAIL_08,
18841 t_TAIL_09>&);
18842
18843 typedef bsl::variant<t_HEAD, t_TAIL_01,
18844 t_TAIL_02,
18845 t_TAIL_03,
18846 t_TAIL_04,
18847 t_TAIL_05,
18848 t_TAIL_06,
18849 t_TAIL_07,
18850 t_TAIL_08,
18851 t_TAIL_09> Variant;
18852
18853 static const FuncPtr *map()
18854 {
18855 static const FuncPtr s_mapArray[] = {
18856 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18857 functionImpl),
18858 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18859 functionImpl),
18860 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18861 functionImpl),
18862 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18863 functionImpl),
18864 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18865 functionImpl),
18866 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18867 functionImpl),
18868 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18869 functionImpl),
18870 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18871 functionImpl),
18872 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
18873 functionImpl),
18874 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
18875 functionImpl)};
18876 return s_mapArray;
18877 }
18878
18879 static const FuncPtr *moveMap()
18880 {
18881 static const FuncPtr s_mapArray[] = {
18882 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
18883 functionImpl),
18884 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18885 functionImpl),
18886 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18887 functionImpl),
18888 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18889 functionImpl),
18890 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18891 functionImpl),
18892 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18893 functionImpl),
18894 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18895 functionImpl),
18896 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18897 functionImpl),
18898 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
18899 functionImpl),
18900 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
18901 functionImpl)};
18902 return s_mapArray;
18903 }
18904
18905 static const FuncPtr *mapId()
18906 {
18907 static const FuncPtr s_mapArray[] = {
18908 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
18909 functionImpl),
18910 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18911 functionImpl),
18912 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18913 functionImpl),
18914 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18915 functionImpl),
18916 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18917 functionImpl),
18918 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18919 functionImpl),
18920 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18921 functionImpl),
18922 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18923 functionImpl),
18924 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
18925 functionImpl),
18926 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
18927 functionImpl)};
18928 return s_mapArray;
18929 }
18930};
18931#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 9
18932
18933#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 10
18934template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
18935 class t_TAIL_02,
18936 class t_TAIL_03,
18937 class t_TAIL_04,
18938 class t_TAIL_05,
18939 class t_TAIL_06,
18940 class t_TAIL_07,
18941 class t_TAIL_08,
18942 class t_TAIL_09,
18943 class t_TAIL_10>
18944struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
18945 t_TAIL_02,
18946 t_TAIL_03,
18947 t_TAIL_04,
18948 t_TAIL_05,
18949 t_TAIL_06,
18950 t_TAIL_07,
18951 t_TAIL_08,
18952 t_TAIL_09,
18953 t_TAIL_10> > {
18954
18955 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
18956 t_TAIL_02,
18957 t_TAIL_03,
18958 t_TAIL_04,
18959 t_TAIL_05,
18960 t_TAIL_06,
18961 t_TAIL_07,
18962 t_TAIL_08,
18963 t_TAIL_09,
18964 t_TAIL_10>&);
18965
18966 typedef bsl::variant<t_HEAD, t_TAIL_01,
18967 t_TAIL_02,
18968 t_TAIL_03,
18969 t_TAIL_04,
18970 t_TAIL_05,
18971 t_TAIL_06,
18972 t_TAIL_07,
18973 t_TAIL_08,
18974 t_TAIL_09,
18975 t_TAIL_10> Variant;
18976
18977 static const FuncPtr *map()
18978 {
18979 static const FuncPtr s_mapArray[] = {
18980 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
18981 functionImpl),
18982 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
18983 functionImpl),
18984 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
18985 functionImpl),
18986 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
18987 functionImpl),
18988 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
18989 functionImpl),
18990 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
18991 functionImpl),
18992 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
18993 functionImpl),
18994 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
18995 functionImpl),
18996 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
18997 functionImpl),
18998 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
18999 functionImpl),
19000 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19001 functionImpl)};
19002 return s_mapArray;
19003 }
19004
19005 static const FuncPtr *moveMap()
19006 {
19007 static const FuncPtr s_mapArray[] = {
19008 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
19009 functionImpl),
19010 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19011 functionImpl),
19012 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19013 functionImpl),
19014 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19015 functionImpl),
19016 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19017 functionImpl),
19018 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19019 functionImpl),
19020 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19021 functionImpl),
19022 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19023 functionImpl),
19024 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19025 functionImpl),
19026 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19027 functionImpl),
19028 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19029 functionImpl)};
19030 return s_mapArray;
19031 }
19032
19033 static const FuncPtr *mapId()
19034 {
19035 static const FuncPtr s_mapArray[] = {
19036 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
19037 functionImpl),
19038 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19039 functionImpl),
19040 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19041 functionImpl),
19042 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19043 functionImpl),
19044 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19045 functionImpl),
19046 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19047 functionImpl),
19048 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19049 functionImpl),
19050 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19051 functionImpl),
19052 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19053 functionImpl),
19054 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19055 functionImpl),
19056 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19057 functionImpl)};
19058 return s_mapArray;
19059 }
19060};
19061#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 10
19062
19063#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 11
19064template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
19065 class t_TAIL_02,
19066 class t_TAIL_03,
19067 class t_TAIL_04,
19068 class t_TAIL_05,
19069 class t_TAIL_06,
19070 class t_TAIL_07,
19071 class t_TAIL_08,
19072 class t_TAIL_09,
19073 class t_TAIL_10,
19074 class t_TAIL_11>
19075struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
19076 t_TAIL_02,
19077 t_TAIL_03,
19078 t_TAIL_04,
19079 t_TAIL_05,
19080 t_TAIL_06,
19081 t_TAIL_07,
19082 t_TAIL_08,
19083 t_TAIL_09,
19084 t_TAIL_10,
19085 t_TAIL_11> > {
19086
19087 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
19088 t_TAIL_02,
19089 t_TAIL_03,
19090 t_TAIL_04,
19091 t_TAIL_05,
19092 t_TAIL_06,
19093 t_TAIL_07,
19094 t_TAIL_08,
19095 t_TAIL_09,
19096 t_TAIL_10,
19097 t_TAIL_11>&);
19098
19099 typedef bsl::variant<t_HEAD, t_TAIL_01,
19100 t_TAIL_02,
19101 t_TAIL_03,
19102 t_TAIL_04,
19103 t_TAIL_05,
19104 t_TAIL_06,
19105 t_TAIL_07,
19106 t_TAIL_08,
19107 t_TAIL_09,
19108 t_TAIL_10,
19109 t_TAIL_11> Variant;
19110
19111 static const FuncPtr *map()
19112 {
19113 static const FuncPtr s_mapArray[] = {
19114 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
19115 functionImpl),
19116 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19117 functionImpl),
19118 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19119 functionImpl),
19120 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19121 functionImpl),
19122 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19123 functionImpl),
19124 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19125 functionImpl),
19126 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19127 functionImpl),
19128 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19129 functionImpl),
19130 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19131 functionImpl),
19132 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19133 functionImpl),
19134 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19135 functionImpl),
19136 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19137 functionImpl)};
19138 return s_mapArray;
19139 }
19140
19141 static const FuncPtr *moveMap()
19142 {
19143 static const FuncPtr s_mapArray[] = {
19144 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
19145 functionImpl),
19146 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19147 functionImpl),
19148 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19149 functionImpl),
19150 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19151 functionImpl),
19152 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19153 functionImpl),
19154 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19155 functionImpl),
19156 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19157 functionImpl),
19158 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19159 functionImpl),
19160 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19161 functionImpl),
19162 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19163 functionImpl),
19164 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19165 functionImpl),
19166 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19167 functionImpl)};
19168 return s_mapArray;
19169 }
19170
19171 static const FuncPtr *mapId()
19172 {
19173 static const FuncPtr s_mapArray[] = {
19174 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
19175 functionImpl),
19176 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19177 functionImpl),
19178 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19179 functionImpl),
19180 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19181 functionImpl),
19182 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19183 functionImpl),
19184 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19185 functionImpl),
19186 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19187 functionImpl),
19188 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19189 functionImpl),
19190 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19191 functionImpl),
19192 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19193 functionImpl),
19194 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19195 functionImpl),
19196 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19197 functionImpl)};
19198 return s_mapArray;
19199 }
19200};
19201#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 11
19202
19203#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 12
19204template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
19205 class t_TAIL_02,
19206 class t_TAIL_03,
19207 class t_TAIL_04,
19208 class t_TAIL_05,
19209 class t_TAIL_06,
19210 class t_TAIL_07,
19211 class t_TAIL_08,
19212 class t_TAIL_09,
19213 class t_TAIL_10,
19214 class t_TAIL_11,
19215 class t_TAIL_12>
19216struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
19217 t_TAIL_02,
19218 t_TAIL_03,
19219 t_TAIL_04,
19220 t_TAIL_05,
19221 t_TAIL_06,
19222 t_TAIL_07,
19223 t_TAIL_08,
19224 t_TAIL_09,
19225 t_TAIL_10,
19226 t_TAIL_11,
19227 t_TAIL_12> > {
19228
19229 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
19230 t_TAIL_02,
19231 t_TAIL_03,
19232 t_TAIL_04,
19233 t_TAIL_05,
19234 t_TAIL_06,
19235 t_TAIL_07,
19236 t_TAIL_08,
19237 t_TAIL_09,
19238 t_TAIL_10,
19239 t_TAIL_11,
19240 t_TAIL_12>&);
19241
19242 typedef bsl::variant<t_HEAD, t_TAIL_01,
19243 t_TAIL_02,
19244 t_TAIL_03,
19245 t_TAIL_04,
19246 t_TAIL_05,
19247 t_TAIL_06,
19248 t_TAIL_07,
19249 t_TAIL_08,
19250 t_TAIL_09,
19251 t_TAIL_10,
19252 t_TAIL_11,
19253 t_TAIL_12> Variant;
19254
19255 static const FuncPtr *map()
19256 {
19257 static const FuncPtr s_mapArray[] = {
19258 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
19259 functionImpl),
19260 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19261 functionImpl),
19262 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19263 functionImpl),
19264 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19265 functionImpl),
19266 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19267 functionImpl),
19268 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19269 functionImpl),
19270 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19271 functionImpl),
19272 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19273 functionImpl),
19274 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19275 functionImpl),
19276 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19277 functionImpl),
19278 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19279 functionImpl),
19280 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19281 functionImpl),
19282 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19283 functionImpl)};
19284 return s_mapArray;
19285 }
19286
19287 static const FuncPtr *moveMap()
19288 {
19289 static const FuncPtr s_mapArray[] = {
19290 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
19291 functionImpl),
19292 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19293 functionImpl),
19294 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19295 functionImpl),
19296 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19297 functionImpl),
19298 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19299 functionImpl),
19300 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19301 functionImpl),
19302 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19303 functionImpl),
19304 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19305 functionImpl),
19306 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19307 functionImpl),
19308 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19309 functionImpl),
19310 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19311 functionImpl),
19312 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19313 functionImpl),
19314 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19315 functionImpl)};
19316 return s_mapArray;
19317 }
19318
19319 static const FuncPtr *mapId()
19320 {
19321 static const FuncPtr s_mapArray[] = {
19322 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
19323 functionImpl),
19324 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19325 functionImpl),
19326 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19327 functionImpl),
19328 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19329 functionImpl),
19330 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19331 functionImpl),
19332 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19333 functionImpl),
19334 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19335 functionImpl),
19336 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19337 functionImpl),
19338 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19339 functionImpl),
19340 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19341 functionImpl),
19342 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19343 functionImpl),
19344 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19345 functionImpl),
19346 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19347 functionImpl)};
19348 return s_mapArray;
19349 }
19350};
19351#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 12
19352
19353#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 13
19354template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
19355 class t_TAIL_02,
19356 class t_TAIL_03,
19357 class t_TAIL_04,
19358 class t_TAIL_05,
19359 class t_TAIL_06,
19360 class t_TAIL_07,
19361 class t_TAIL_08,
19362 class t_TAIL_09,
19363 class t_TAIL_10,
19364 class t_TAIL_11,
19365 class t_TAIL_12,
19366 class t_TAIL_13>
19367struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
19368 t_TAIL_02,
19369 t_TAIL_03,
19370 t_TAIL_04,
19371 t_TAIL_05,
19372 t_TAIL_06,
19373 t_TAIL_07,
19374 t_TAIL_08,
19375 t_TAIL_09,
19376 t_TAIL_10,
19377 t_TAIL_11,
19378 t_TAIL_12,
19379 t_TAIL_13> > {
19380
19381 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
19382 t_TAIL_02,
19383 t_TAIL_03,
19384 t_TAIL_04,
19385 t_TAIL_05,
19386 t_TAIL_06,
19387 t_TAIL_07,
19388 t_TAIL_08,
19389 t_TAIL_09,
19390 t_TAIL_10,
19391 t_TAIL_11,
19392 t_TAIL_12,
19393 t_TAIL_13>&);
19394
19395 typedef bsl::variant<t_HEAD, t_TAIL_01,
19396 t_TAIL_02,
19397 t_TAIL_03,
19398 t_TAIL_04,
19399 t_TAIL_05,
19400 t_TAIL_06,
19401 t_TAIL_07,
19402 t_TAIL_08,
19403 t_TAIL_09,
19404 t_TAIL_10,
19405 t_TAIL_11,
19406 t_TAIL_12,
19407 t_TAIL_13> Variant;
19408
19409 static const FuncPtr *map()
19410 {
19411 static const FuncPtr s_mapArray[] = {
19412 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
19413 functionImpl),
19414 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19415 functionImpl),
19416 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19417 functionImpl),
19418 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19419 functionImpl),
19420 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19421 functionImpl),
19422 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19423 functionImpl),
19424 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19425 functionImpl),
19426 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19427 functionImpl),
19428 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19429 functionImpl),
19430 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19431 functionImpl),
19432 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19433 functionImpl),
19434 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19435 functionImpl),
19436 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19437 functionImpl),
19438 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19439 functionImpl)};
19440 return s_mapArray;
19441 }
19442
19443 static const FuncPtr *moveMap()
19444 {
19445 static const FuncPtr s_mapArray[] = {
19446 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
19447 functionImpl),
19448 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19449 functionImpl),
19450 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19451 functionImpl),
19452 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19453 functionImpl),
19454 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19455 functionImpl),
19456 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19457 functionImpl),
19458 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19459 functionImpl),
19460 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19461 functionImpl),
19462 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19463 functionImpl),
19464 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19465 functionImpl),
19466 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19467 functionImpl),
19468 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19469 functionImpl),
19470 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19471 functionImpl),
19472 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19473 functionImpl)};
19474 return s_mapArray;
19475 }
19476
19477 static const FuncPtr *mapId()
19478 {
19479 static const FuncPtr s_mapArray[] = {
19480 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
19481 functionImpl),
19482 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19483 functionImpl),
19484 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19485 functionImpl),
19486 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19487 functionImpl),
19488 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19489 functionImpl),
19490 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19491 functionImpl),
19492 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19493 functionImpl),
19494 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19495 functionImpl),
19496 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19497 functionImpl),
19498 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19499 functionImpl),
19500 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19501 functionImpl),
19502 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19503 functionImpl),
19504 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19505 functionImpl),
19506 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19507 functionImpl)};
19508 return s_mapArray;
19509 }
19510};
19511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 13
19512
19513#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 14
19514template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
19515 class t_TAIL_02,
19516 class t_TAIL_03,
19517 class t_TAIL_04,
19518 class t_TAIL_05,
19519 class t_TAIL_06,
19520 class t_TAIL_07,
19521 class t_TAIL_08,
19522 class t_TAIL_09,
19523 class t_TAIL_10,
19524 class t_TAIL_11,
19525 class t_TAIL_12,
19526 class t_TAIL_13,
19527 class t_TAIL_14>
19528struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
19529 t_TAIL_02,
19530 t_TAIL_03,
19531 t_TAIL_04,
19532 t_TAIL_05,
19533 t_TAIL_06,
19534 t_TAIL_07,
19535 t_TAIL_08,
19536 t_TAIL_09,
19537 t_TAIL_10,
19538 t_TAIL_11,
19539 t_TAIL_12,
19540 t_TAIL_13,
19541 t_TAIL_14> > {
19542
19543 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
19544 t_TAIL_02,
19545 t_TAIL_03,
19546 t_TAIL_04,
19547 t_TAIL_05,
19548 t_TAIL_06,
19549 t_TAIL_07,
19550 t_TAIL_08,
19551 t_TAIL_09,
19552 t_TAIL_10,
19553 t_TAIL_11,
19554 t_TAIL_12,
19555 t_TAIL_13,
19556 t_TAIL_14>&);
19557
19558 typedef bsl::variant<t_HEAD, t_TAIL_01,
19559 t_TAIL_02,
19560 t_TAIL_03,
19561 t_TAIL_04,
19562 t_TAIL_05,
19563 t_TAIL_06,
19564 t_TAIL_07,
19565 t_TAIL_08,
19566 t_TAIL_09,
19567 t_TAIL_10,
19568 t_TAIL_11,
19569 t_TAIL_12,
19570 t_TAIL_13,
19571 t_TAIL_14> Variant;
19572
19573 static const FuncPtr *map()
19574 {
19575 static const FuncPtr s_mapArray[] = {
19576 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
19577 functionImpl),
19578 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19579 functionImpl),
19580 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19581 functionImpl),
19582 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19583 functionImpl),
19584 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19585 functionImpl),
19586 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19587 functionImpl),
19588 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19589 functionImpl),
19590 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19591 functionImpl),
19592 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19593 functionImpl),
19594 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19595 functionImpl),
19596 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19597 functionImpl),
19598 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19599 functionImpl),
19600 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19601 functionImpl),
19602 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19603 functionImpl),
19604 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
19605 functionImpl)};
19606 return s_mapArray;
19607 }
19608
19609 static const FuncPtr *moveMap()
19610 {
19611 static const FuncPtr s_mapArray[] = {
19612 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
19613 functionImpl),
19614 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19615 functionImpl),
19616 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19617 functionImpl),
19618 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19619 functionImpl),
19620 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19621 functionImpl),
19622 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19623 functionImpl),
19624 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19625 functionImpl),
19626 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19627 functionImpl),
19628 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19629 functionImpl),
19630 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19631 functionImpl),
19632 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19633 functionImpl),
19634 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19635 functionImpl),
19636 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19637 functionImpl),
19638 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19639 functionImpl),
19640 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_14>::
19641 functionImpl)};
19642 return s_mapArray;
19643 }
19644
19645 static const FuncPtr *mapId()
19646 {
19647 static const FuncPtr s_mapArray[] = {
19648 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
19649 functionImpl),
19650 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19651 functionImpl),
19652 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19653 functionImpl),
19654 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19655 functionImpl),
19656 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19657 functionImpl),
19658 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19659 functionImpl),
19660 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19661 functionImpl),
19662 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19663 functionImpl),
19664 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19665 functionImpl),
19666 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19667 functionImpl),
19668 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19669 functionImpl),
19670 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19671 functionImpl),
19672 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19673 functionImpl),
19674 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19675 functionImpl),
19676 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
19677 functionImpl)};
19678 return s_mapArray;
19679 }
19680};
19681#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 14
19682
19683#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 15
19684template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
19685 class t_TAIL_02,
19686 class t_TAIL_03,
19687 class t_TAIL_04,
19688 class t_TAIL_05,
19689 class t_TAIL_06,
19690 class t_TAIL_07,
19691 class t_TAIL_08,
19692 class t_TAIL_09,
19693 class t_TAIL_10,
19694 class t_TAIL_11,
19695 class t_TAIL_12,
19696 class t_TAIL_13,
19697 class t_TAIL_14,
19698 class t_TAIL_15>
19699struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
19700 t_TAIL_02,
19701 t_TAIL_03,
19702 t_TAIL_04,
19703 t_TAIL_05,
19704 t_TAIL_06,
19705 t_TAIL_07,
19706 t_TAIL_08,
19707 t_TAIL_09,
19708 t_TAIL_10,
19709 t_TAIL_11,
19710 t_TAIL_12,
19711 t_TAIL_13,
19712 t_TAIL_14,
19713 t_TAIL_15> > {
19714
19715 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
19716 t_TAIL_02,
19717 t_TAIL_03,
19718 t_TAIL_04,
19719 t_TAIL_05,
19720 t_TAIL_06,
19721 t_TAIL_07,
19722 t_TAIL_08,
19723 t_TAIL_09,
19724 t_TAIL_10,
19725 t_TAIL_11,
19726 t_TAIL_12,
19727 t_TAIL_13,
19728 t_TAIL_14,
19729 t_TAIL_15>&);
19730
19731 typedef bsl::variant<t_HEAD, t_TAIL_01,
19732 t_TAIL_02,
19733 t_TAIL_03,
19734 t_TAIL_04,
19735 t_TAIL_05,
19736 t_TAIL_06,
19737 t_TAIL_07,
19738 t_TAIL_08,
19739 t_TAIL_09,
19740 t_TAIL_10,
19741 t_TAIL_11,
19742 t_TAIL_12,
19743 t_TAIL_13,
19744 t_TAIL_14,
19745 t_TAIL_15> Variant;
19746
19747 static const FuncPtr *map()
19748 {
19749 static const FuncPtr s_mapArray[] = {
19750 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
19751 functionImpl),
19752 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19753 functionImpl),
19754 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19755 functionImpl),
19756 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19757 functionImpl),
19758 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19759 functionImpl),
19760 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19761 functionImpl),
19762 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19763 functionImpl),
19764 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19765 functionImpl),
19766 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19767 functionImpl),
19768 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19769 functionImpl),
19770 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19771 functionImpl),
19772 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19773 functionImpl),
19774 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19775 functionImpl),
19776 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19777 functionImpl),
19778 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
19779 functionImpl),
19780 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
19781 functionImpl)};
19782 return s_mapArray;
19783 }
19784
19785 static const FuncPtr *moveMap()
19786 {
19787 static const FuncPtr s_mapArray[] = {
19788 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
19789 functionImpl),
19790 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19791 functionImpl),
19792 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19793 functionImpl),
19794 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19795 functionImpl),
19796 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19797 functionImpl),
19798 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19799 functionImpl),
19800 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19801 functionImpl),
19802 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19803 functionImpl),
19804 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19805 functionImpl),
19806 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19807 functionImpl),
19808 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19809 functionImpl),
19810 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19811 functionImpl),
19812 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19813 functionImpl),
19814 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19815 functionImpl),
19816 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_14>::
19817 functionImpl),
19818 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_15>::
19819 functionImpl)};
19820 return s_mapArray;
19821 }
19822
19823 static const FuncPtr *mapId()
19824 {
19825 static const FuncPtr s_mapArray[] = {
19826 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
19827 functionImpl),
19828 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19829 functionImpl),
19830 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19831 functionImpl),
19832 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19833 functionImpl),
19834 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19835 functionImpl),
19836 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19837 functionImpl),
19838 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19839 functionImpl),
19840 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19841 functionImpl),
19842 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19843 functionImpl),
19844 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19845 functionImpl),
19846 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19847 functionImpl),
19848 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19849 functionImpl),
19850 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19851 functionImpl),
19852 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19853 functionImpl),
19854 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
19855 functionImpl),
19856 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
19857 functionImpl)};
19858 return s_mapArray;
19859 }
19860};
19861#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 15
19862
19863#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 16
19864template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
19865 class t_TAIL_02,
19866 class t_TAIL_03,
19867 class t_TAIL_04,
19868 class t_TAIL_05,
19869 class t_TAIL_06,
19870 class t_TAIL_07,
19871 class t_TAIL_08,
19872 class t_TAIL_09,
19873 class t_TAIL_10,
19874 class t_TAIL_11,
19875 class t_TAIL_12,
19876 class t_TAIL_13,
19877 class t_TAIL_14,
19878 class t_TAIL_15,
19879 class t_TAIL_16>
19880struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
19881 t_TAIL_02,
19882 t_TAIL_03,
19883 t_TAIL_04,
19884 t_TAIL_05,
19885 t_TAIL_06,
19886 t_TAIL_07,
19887 t_TAIL_08,
19888 t_TAIL_09,
19889 t_TAIL_10,
19890 t_TAIL_11,
19891 t_TAIL_12,
19892 t_TAIL_13,
19893 t_TAIL_14,
19894 t_TAIL_15,
19895 t_TAIL_16> > {
19896
19897 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
19898 t_TAIL_02,
19899 t_TAIL_03,
19900 t_TAIL_04,
19901 t_TAIL_05,
19902 t_TAIL_06,
19903 t_TAIL_07,
19904 t_TAIL_08,
19905 t_TAIL_09,
19906 t_TAIL_10,
19907 t_TAIL_11,
19908 t_TAIL_12,
19909 t_TAIL_13,
19910 t_TAIL_14,
19911 t_TAIL_15,
19912 t_TAIL_16>&);
19913
19914 typedef bsl::variant<t_HEAD, t_TAIL_01,
19915 t_TAIL_02,
19916 t_TAIL_03,
19917 t_TAIL_04,
19918 t_TAIL_05,
19919 t_TAIL_06,
19920 t_TAIL_07,
19921 t_TAIL_08,
19922 t_TAIL_09,
19923 t_TAIL_10,
19924 t_TAIL_11,
19925 t_TAIL_12,
19926 t_TAIL_13,
19927 t_TAIL_14,
19928 t_TAIL_15,
19929 t_TAIL_16> Variant;
19930
19931 static const FuncPtr *map()
19932 {
19933 static const FuncPtr s_mapArray[] = {
19934 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
19935 functionImpl),
19936 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19937 functionImpl),
19938 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19939 functionImpl),
19940 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19941 functionImpl),
19942 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19943 functionImpl),
19944 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19945 functionImpl),
19946 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19947 functionImpl),
19948 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19949 functionImpl),
19950 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19951 functionImpl),
19952 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19953 functionImpl),
19954 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19955 functionImpl),
19956 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19957 functionImpl),
19958 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19959 functionImpl),
19960 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
19961 functionImpl),
19962 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
19963 functionImpl),
19964 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
19965 functionImpl),
19966 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_16>::
19967 functionImpl)};
19968 return s_mapArray;
19969 }
19970
19971 static const FuncPtr *moveMap()
19972 {
19973 static const FuncPtr s_mapArray[] = {
19974 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
19975 functionImpl),
19976 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
19977 functionImpl),
19978 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
19979 functionImpl),
19980 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
19981 functionImpl),
19982 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
19983 functionImpl),
19984 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
19985 functionImpl),
19986 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
19987 functionImpl),
19988 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
19989 functionImpl),
19990 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
19991 functionImpl),
19992 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
19993 functionImpl),
19994 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
19995 functionImpl),
19996 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
19997 functionImpl),
19998 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_12>::
19999 functionImpl),
20000 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20001 functionImpl),
20002 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20003 functionImpl),
20004 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20005 functionImpl),
20006 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20007 functionImpl)};
20008 return s_mapArray;
20009 }
20010
20011 static const FuncPtr *mapId()
20012 {
20013 static const FuncPtr s_mapArray[] = {
20014 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20015 functionImpl),
20016 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20017 functionImpl),
20018 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20019 functionImpl),
20020 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20021 functionImpl),
20022 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20023 functionImpl),
20024 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20025 functionImpl),
20026 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20027 functionImpl),
20028 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20029 functionImpl),
20030 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20031 functionImpl),
20032 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
20033 functionImpl),
20034 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
20035 functionImpl),
20036 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
20037 functionImpl),
20038 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
20039 functionImpl),
20040 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20041 functionImpl),
20042 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20043 functionImpl),
20044 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20045 functionImpl),
20046 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20047 functionImpl)};
20048 return s_mapArray;
20049 }
20050};
20051#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 16
20052
20053#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 17
20054template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20055 class t_TAIL_02,
20056 class t_TAIL_03,
20057 class t_TAIL_04,
20058 class t_TAIL_05,
20059 class t_TAIL_06,
20060 class t_TAIL_07,
20061 class t_TAIL_08,
20062 class t_TAIL_09,
20063 class t_TAIL_10,
20064 class t_TAIL_11,
20065 class t_TAIL_12,
20066 class t_TAIL_13,
20067 class t_TAIL_14,
20068 class t_TAIL_15,
20069 class t_TAIL_16,
20070 class t_TAIL_17>
20071struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
20072 t_TAIL_02,
20073 t_TAIL_03,
20074 t_TAIL_04,
20075 t_TAIL_05,
20076 t_TAIL_06,
20077 t_TAIL_07,
20078 t_TAIL_08,
20079 t_TAIL_09,
20080 t_TAIL_10,
20081 t_TAIL_11,
20082 t_TAIL_12,
20083 t_TAIL_13,
20084 t_TAIL_14,
20085 t_TAIL_15,
20086 t_TAIL_16,
20087 t_TAIL_17> > {
20088
20089 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
20090 t_TAIL_02,
20091 t_TAIL_03,
20092 t_TAIL_04,
20093 t_TAIL_05,
20094 t_TAIL_06,
20095 t_TAIL_07,
20096 t_TAIL_08,
20097 t_TAIL_09,
20098 t_TAIL_10,
20099 t_TAIL_11,
20100 t_TAIL_12,
20101 t_TAIL_13,
20102 t_TAIL_14,
20103 t_TAIL_15,
20104 t_TAIL_16,
20105 t_TAIL_17>&);
20106
20107 typedef bsl::variant<t_HEAD, t_TAIL_01,
20108 t_TAIL_02,
20109 t_TAIL_03,
20110 t_TAIL_04,
20111 t_TAIL_05,
20112 t_TAIL_06,
20113 t_TAIL_07,
20114 t_TAIL_08,
20115 t_TAIL_09,
20116 t_TAIL_10,
20117 t_TAIL_11,
20118 t_TAIL_12,
20119 t_TAIL_13,
20120 t_TAIL_14,
20121 t_TAIL_15,
20122 t_TAIL_16,
20123 t_TAIL_17> Variant;
20124
20125 static const FuncPtr *map()
20126 {
20127 static const FuncPtr s_mapArray[] = {
20128 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20129 functionImpl),
20130 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20131 functionImpl),
20132 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20133 functionImpl),
20134 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20135 functionImpl),
20136 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20137 functionImpl),
20138 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20139 functionImpl),
20140 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20141 functionImpl),
20142 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20143 functionImpl),
20144 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20145 functionImpl),
20146 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
20147 functionImpl),
20148 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
20149 functionImpl),
20150 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
20151 functionImpl),
20152 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
20153 functionImpl),
20154 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20155 functionImpl),
20156 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20157 functionImpl),
20158 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20159 functionImpl),
20160 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20161 functionImpl),
20162 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_17>::
20163 functionImpl)};
20164 return s_mapArray;
20165 }
20166
20167 static const FuncPtr *moveMap()
20168 {
20169 static const FuncPtr s_mapArray[] = {
20170 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
20171 functionImpl),
20172 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20173 functionImpl),
20174 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20175 functionImpl),
20176 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20177 functionImpl),
20178 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20179 functionImpl),
20180 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20181 functionImpl),
20182 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20183 functionImpl),
20184 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20185 functionImpl),
20186 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20187 functionImpl),
20188 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
20189 functionImpl),
20190 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
20191 functionImpl),
20192 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
20193 functionImpl),
20194 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_12>::
20195 functionImpl),
20196 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20197 functionImpl),
20198 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20199 functionImpl),
20200 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20201 functionImpl),
20202 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20203 functionImpl),
20204 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_17>::
20205 functionImpl)};
20206 return s_mapArray;
20207 }
20208
20209 static const FuncPtr *mapId()
20210 {
20211 static const FuncPtr s_mapArray[] = {
20212 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20213 functionImpl),
20214 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20215 functionImpl),
20216 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20217 functionImpl),
20218 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20219 functionImpl),
20220 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20221 functionImpl),
20222 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20223 functionImpl),
20224 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20225 functionImpl),
20226 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20227 functionImpl),
20228 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20229 functionImpl),
20230 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
20231 functionImpl),
20232 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
20233 functionImpl),
20234 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
20235 functionImpl),
20236 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
20237 functionImpl),
20238 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20239 functionImpl),
20240 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20241 functionImpl),
20242 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20243 functionImpl),
20244 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20245 functionImpl),
20246 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_17>::
20247 functionImpl)};
20248 return s_mapArray;
20249 }
20250};
20251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 17
20252
20253#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 18
20254template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20255 class t_TAIL_02,
20256 class t_TAIL_03,
20257 class t_TAIL_04,
20258 class t_TAIL_05,
20259 class t_TAIL_06,
20260 class t_TAIL_07,
20261 class t_TAIL_08,
20262 class t_TAIL_09,
20263 class t_TAIL_10,
20264 class t_TAIL_11,
20265 class t_TAIL_12,
20266 class t_TAIL_13,
20267 class t_TAIL_14,
20268 class t_TAIL_15,
20269 class t_TAIL_16,
20270 class t_TAIL_17,
20271 class t_TAIL_18>
20272struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL_01,
20273 t_TAIL_02,
20274 t_TAIL_03,
20275 t_TAIL_04,
20276 t_TAIL_05,
20277 t_TAIL_06,
20278 t_TAIL_07,
20279 t_TAIL_08,
20280 t_TAIL_09,
20281 t_TAIL_10,
20282 t_TAIL_11,
20283 t_TAIL_12,
20284 t_TAIL_13,
20285 t_TAIL_14,
20286 t_TAIL_15,
20287 t_TAIL_16,
20288 t_TAIL_17,
20289 t_TAIL_18> > {
20290
20291 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL_01,
20292 t_TAIL_02,
20293 t_TAIL_03,
20294 t_TAIL_04,
20295 t_TAIL_05,
20296 t_TAIL_06,
20297 t_TAIL_07,
20298 t_TAIL_08,
20299 t_TAIL_09,
20300 t_TAIL_10,
20301 t_TAIL_11,
20302 t_TAIL_12,
20303 t_TAIL_13,
20304 t_TAIL_14,
20305 t_TAIL_15,
20306 t_TAIL_16,
20307 t_TAIL_17,
20308 t_TAIL_18>&);
20309
20310 typedef bsl::variant<t_HEAD, t_TAIL_01,
20311 t_TAIL_02,
20312 t_TAIL_03,
20313 t_TAIL_04,
20314 t_TAIL_05,
20315 t_TAIL_06,
20316 t_TAIL_07,
20317 t_TAIL_08,
20318 t_TAIL_09,
20319 t_TAIL_10,
20320 t_TAIL_11,
20321 t_TAIL_12,
20322 t_TAIL_13,
20323 t_TAIL_14,
20324 t_TAIL_15,
20325 t_TAIL_16,
20326 t_TAIL_17,
20327 t_TAIL_18> Variant;
20328
20329 static const FuncPtr *map()
20330 {
20331 static const FuncPtr s_mapArray[] = {
20332 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20333 functionImpl),
20334 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20335 functionImpl),
20336 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20337 functionImpl),
20338 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20339 functionImpl),
20340 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20341 functionImpl),
20342 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20343 functionImpl),
20344 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20345 functionImpl),
20346 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20347 functionImpl),
20348 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20349 functionImpl),
20350 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
20351 functionImpl),
20352 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
20353 functionImpl),
20354 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
20355 functionImpl),
20356 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
20357 functionImpl),
20358 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20359 functionImpl),
20360 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20361 functionImpl),
20362 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20363 functionImpl),
20364 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20365 functionImpl),
20366 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_17>::
20367 functionImpl),
20368 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_18>::
20369 functionImpl)};
20370 return s_mapArray;
20371 }
20372
20373 static const FuncPtr *moveMap()
20374 {
20375 static const FuncPtr s_mapArray[] = {
20376 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
20377 functionImpl),
20378 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20379 functionImpl),
20380 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20381 functionImpl),
20382 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20383 functionImpl),
20384 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20385 functionImpl),
20386 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20387 functionImpl),
20388 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20389 functionImpl),
20390 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20391 functionImpl),
20392 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20393 functionImpl),
20394 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_09>::
20395 functionImpl),
20396 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_10>::
20397 functionImpl),
20398 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_11>::
20399 functionImpl),
20400 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_12>::
20401 functionImpl),
20402 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20403 functionImpl),
20404 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20405 functionImpl),
20406 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20407 functionImpl),
20408 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20409 functionImpl),
20410 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_17>::
20411 functionImpl),
20412 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL_18>::
20413 functionImpl)};
20414 return s_mapArray;
20415 }
20416
20417 static const FuncPtr *mapId()
20418 {
20419 static const FuncPtr s_mapArray[] = {
20420 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20421 functionImpl),
20422 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20423 functionImpl),
20424 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20425 functionImpl),
20426 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20427 functionImpl),
20428 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20429 functionImpl),
20430 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20431 functionImpl),
20432 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20433 functionImpl),
20434 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20435 functionImpl),
20436 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20437 functionImpl),
20438 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
20439 functionImpl),
20440 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
20441 functionImpl),
20442 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
20443 functionImpl),
20444 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
20445 functionImpl),
20446 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
20447 functionImpl),
20448 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
20449 functionImpl),
20450 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
20451 functionImpl),
20452 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_16>::
20453 functionImpl),
20454 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_17>::
20455 functionImpl),
20456 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_18>::
20457 functionImpl)};
20458 return s_mapArray;
20459 }
20460};
20461#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 18
20462
20463
20464#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 0
20465template <class t_RET, class t_VISITOR, class t_HEAD>
20466struct Variant_VTable<t_RET,
20467 t_VISITOR,
20468 const bsl::variant<t_HEAD> > {
20469
20470 typedef t_RET (*FuncPtr)(t_VISITOR&,
20471 const bsl::variant<t_HEAD>&);
20472
20473 typedef const bsl::variant<t_HEAD> Variant;
20474
20475 static const FuncPtr *map()
20476 {
20477 static const FuncPtr s_mapArray[] = {
20478 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20479 functionImpl)};
20480 return s_mapArray;
20481 }
20482
20483 static const FuncPtr *mapId()
20484 {
20485 static const FuncPtr s_mapArray[] = {
20486 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20487 functionImpl)};
20488 return s_mapArray;
20489 }
20490};
20491#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 0
20492
20493#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 1
20494template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01>
20495struct Variant_VTable<t_RET,
20496 t_VISITOR,
20497 const bsl::variant<t_HEAD, t_TAIL_01> > {
20498
20499 typedef t_RET (*FuncPtr)(t_VISITOR&,
20501
20502 typedef const bsl::variant<t_HEAD, t_TAIL_01> Variant;
20503
20504 static const FuncPtr *map()
20505 {
20506 static const FuncPtr s_mapArray[] = {
20507 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20508 functionImpl),
20509 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20510 functionImpl)};
20511 return s_mapArray;
20512 }
20513
20514 static const FuncPtr *mapId()
20515 {
20516 static const FuncPtr s_mapArray[] = {
20517 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20518 functionImpl),
20519 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20520 functionImpl)};
20521 return s_mapArray;
20522 }
20523};
20524#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 1
20525
20526#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 2
20527template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20528 class t_TAIL_02>
20529struct Variant_VTable<t_RET,
20530 t_VISITOR,
20531 const bsl::variant<t_HEAD, t_TAIL_01,
20532 t_TAIL_02> > {
20533
20534 typedef t_RET (*FuncPtr)(t_VISITOR&,
20535 const bsl::variant<t_HEAD, t_TAIL_01,
20536 t_TAIL_02>&);
20537
20538 typedef const bsl::variant<t_HEAD, t_TAIL_01,
20539 t_TAIL_02> Variant;
20540
20541 static const FuncPtr *map()
20542 {
20543 static const FuncPtr s_mapArray[] = {
20544 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20545 functionImpl),
20546 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20547 functionImpl),
20548 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20549 functionImpl)};
20550 return s_mapArray;
20551 }
20552
20553 static const FuncPtr *mapId()
20554 {
20555 static const FuncPtr s_mapArray[] = {
20556 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20557 functionImpl),
20558 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20559 functionImpl),
20560 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20561 functionImpl)};
20562 return s_mapArray;
20563 }
20564};
20565#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 2
20566
20567#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 3
20568template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20569 class t_TAIL_02,
20570 class t_TAIL_03>
20571struct Variant_VTable<t_RET,
20572 t_VISITOR,
20573 const bsl::variant<t_HEAD, t_TAIL_01,
20574 t_TAIL_02,
20575 t_TAIL_03> > {
20576
20577 typedef t_RET (*FuncPtr)(t_VISITOR&,
20578 const bsl::variant<t_HEAD, t_TAIL_01,
20579 t_TAIL_02,
20580 t_TAIL_03>&);
20581
20582 typedef const bsl::variant<t_HEAD, t_TAIL_01,
20583 t_TAIL_02,
20584 t_TAIL_03> Variant;
20585
20586 static const FuncPtr *map()
20587 {
20588 static const FuncPtr s_mapArray[] = {
20589 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20590 functionImpl),
20591 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20592 functionImpl),
20593 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20594 functionImpl),
20595 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20596 functionImpl)};
20597 return s_mapArray;
20598 }
20599
20600 static const FuncPtr *mapId()
20601 {
20602 static const FuncPtr s_mapArray[] = {
20603 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20604 functionImpl),
20605 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20606 functionImpl),
20607 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20608 functionImpl),
20609 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20610 functionImpl)};
20611 return s_mapArray;
20612 }
20613};
20614#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 3
20615
20616#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 4
20617template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20618 class t_TAIL_02,
20619 class t_TAIL_03,
20620 class t_TAIL_04>
20621struct Variant_VTable<t_RET,
20622 t_VISITOR,
20623 const bsl::variant<t_HEAD, t_TAIL_01,
20624 t_TAIL_02,
20625 t_TAIL_03,
20626 t_TAIL_04> > {
20627
20628 typedef t_RET (*FuncPtr)(t_VISITOR&,
20629 const bsl::variant<t_HEAD, t_TAIL_01,
20630 t_TAIL_02,
20631 t_TAIL_03,
20632 t_TAIL_04>&);
20633
20634 typedef const bsl::variant<t_HEAD, t_TAIL_01,
20635 t_TAIL_02,
20636 t_TAIL_03,
20637 t_TAIL_04> Variant;
20638
20639 static const FuncPtr *map()
20640 {
20641 static const FuncPtr s_mapArray[] = {
20642 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20643 functionImpl),
20644 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20645 functionImpl),
20646 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20647 functionImpl),
20648 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20649 functionImpl),
20650 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20651 functionImpl)};
20652 return s_mapArray;
20653 }
20654
20655 static const FuncPtr *mapId()
20656 {
20657 static const FuncPtr s_mapArray[] = {
20658 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20659 functionImpl),
20660 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20661 functionImpl),
20662 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20663 functionImpl),
20664 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20665 functionImpl),
20666 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20667 functionImpl)};
20668 return s_mapArray;
20669 }
20670};
20671#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 4
20672
20673#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 5
20674template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20675 class t_TAIL_02,
20676 class t_TAIL_03,
20677 class t_TAIL_04,
20678 class t_TAIL_05>
20679struct Variant_VTable<t_RET,
20680 t_VISITOR,
20681 const bsl::variant<t_HEAD, t_TAIL_01,
20682 t_TAIL_02,
20683 t_TAIL_03,
20684 t_TAIL_04,
20685 t_TAIL_05> > {
20686
20687 typedef t_RET (*FuncPtr)(t_VISITOR&,
20688 const bsl::variant<t_HEAD, t_TAIL_01,
20689 t_TAIL_02,
20690 t_TAIL_03,
20691 t_TAIL_04,
20692 t_TAIL_05>&);
20693
20694 typedef const bsl::variant<t_HEAD, t_TAIL_01,
20695 t_TAIL_02,
20696 t_TAIL_03,
20697 t_TAIL_04,
20698 t_TAIL_05> Variant;
20699
20700 static const FuncPtr *map()
20701 {
20702 static const FuncPtr s_mapArray[] = {
20703 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20704 functionImpl),
20705 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20706 functionImpl),
20707 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20708 functionImpl),
20709 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20710 functionImpl),
20711 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20712 functionImpl),
20713 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20714 functionImpl)};
20715 return s_mapArray;
20716 }
20717
20718 static const FuncPtr *mapId()
20719 {
20720 static const FuncPtr s_mapArray[] = {
20721 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20722 functionImpl),
20723 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20724 functionImpl),
20725 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20726 functionImpl),
20727 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20728 functionImpl),
20729 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20730 functionImpl),
20731 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20732 functionImpl)};
20733 return s_mapArray;
20734 }
20735};
20736#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 5
20737
20738#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 6
20739template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20740 class t_TAIL_02,
20741 class t_TAIL_03,
20742 class t_TAIL_04,
20743 class t_TAIL_05,
20744 class t_TAIL_06>
20745struct Variant_VTable<t_RET,
20746 t_VISITOR,
20747 const bsl::variant<t_HEAD, t_TAIL_01,
20748 t_TAIL_02,
20749 t_TAIL_03,
20750 t_TAIL_04,
20751 t_TAIL_05,
20752 t_TAIL_06> > {
20753
20754 typedef t_RET (*FuncPtr)(t_VISITOR&,
20755 const bsl::variant<t_HEAD, t_TAIL_01,
20756 t_TAIL_02,
20757 t_TAIL_03,
20758 t_TAIL_04,
20759 t_TAIL_05,
20760 t_TAIL_06>&);
20761
20762 typedef const bsl::variant<t_HEAD, t_TAIL_01,
20763 t_TAIL_02,
20764 t_TAIL_03,
20765 t_TAIL_04,
20766 t_TAIL_05,
20767 t_TAIL_06> Variant;
20768
20769 static const FuncPtr *map()
20770 {
20771 static const FuncPtr s_mapArray[] = {
20772 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20773 functionImpl),
20774 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20775 functionImpl),
20776 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20777 functionImpl),
20778 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20779 functionImpl),
20780 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20781 functionImpl),
20782 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20783 functionImpl),
20784 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20785 functionImpl)};
20786 return s_mapArray;
20787 }
20788
20789 static const FuncPtr *mapId()
20790 {
20791 static const FuncPtr s_mapArray[] = {
20792 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20793 functionImpl),
20794 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20795 functionImpl),
20796 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20797 functionImpl),
20798 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20799 functionImpl),
20800 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20801 functionImpl),
20802 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20803 functionImpl),
20804 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20805 functionImpl)};
20806 return s_mapArray;
20807 }
20808};
20809#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 6
20810
20811#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 7
20812template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20813 class t_TAIL_02,
20814 class t_TAIL_03,
20815 class t_TAIL_04,
20816 class t_TAIL_05,
20817 class t_TAIL_06,
20818 class t_TAIL_07>
20819struct Variant_VTable<t_RET,
20820 t_VISITOR,
20821 const bsl::variant<t_HEAD, t_TAIL_01,
20822 t_TAIL_02,
20823 t_TAIL_03,
20824 t_TAIL_04,
20825 t_TAIL_05,
20826 t_TAIL_06,
20827 t_TAIL_07> > {
20828
20829 typedef t_RET (*FuncPtr)(t_VISITOR&,
20830 const bsl::variant<t_HEAD, t_TAIL_01,
20831 t_TAIL_02,
20832 t_TAIL_03,
20833 t_TAIL_04,
20834 t_TAIL_05,
20835 t_TAIL_06,
20836 t_TAIL_07>&);
20837
20838 typedef const bsl::variant<t_HEAD, t_TAIL_01,
20839 t_TAIL_02,
20840 t_TAIL_03,
20841 t_TAIL_04,
20842 t_TAIL_05,
20843 t_TAIL_06,
20844 t_TAIL_07> Variant;
20845
20846 static const FuncPtr *map()
20847 {
20848 static const FuncPtr s_mapArray[] = {
20849 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20850 functionImpl),
20851 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20852 functionImpl),
20853 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20854 functionImpl),
20855 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20856 functionImpl),
20857 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20858 functionImpl),
20859 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20860 functionImpl),
20861 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20862 functionImpl),
20863 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20864 functionImpl)};
20865 return s_mapArray;
20866 }
20867
20868 static const FuncPtr *mapId()
20869 {
20870 static const FuncPtr s_mapArray[] = {
20871 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20872 functionImpl),
20873 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20874 functionImpl),
20875 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20876 functionImpl),
20877 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20878 functionImpl),
20879 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20880 functionImpl),
20881 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20882 functionImpl),
20883 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20884 functionImpl),
20885 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20886 functionImpl)};
20887 return s_mapArray;
20888 }
20889};
20890#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 7
20891
20892#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 8
20893template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20894 class t_TAIL_02,
20895 class t_TAIL_03,
20896 class t_TAIL_04,
20897 class t_TAIL_05,
20898 class t_TAIL_06,
20899 class t_TAIL_07,
20900 class t_TAIL_08>
20901struct Variant_VTable<t_RET,
20902 t_VISITOR,
20903 const bsl::variant<t_HEAD, t_TAIL_01,
20904 t_TAIL_02,
20905 t_TAIL_03,
20906 t_TAIL_04,
20907 t_TAIL_05,
20908 t_TAIL_06,
20909 t_TAIL_07,
20910 t_TAIL_08> > {
20911
20912 typedef t_RET (*FuncPtr)(t_VISITOR&,
20913 const bsl::variant<t_HEAD, t_TAIL_01,
20914 t_TAIL_02,
20915 t_TAIL_03,
20916 t_TAIL_04,
20917 t_TAIL_05,
20918 t_TAIL_06,
20919 t_TAIL_07,
20920 t_TAIL_08>&);
20921
20922 typedef const bsl::variant<t_HEAD, t_TAIL_01,
20923 t_TAIL_02,
20924 t_TAIL_03,
20925 t_TAIL_04,
20926 t_TAIL_05,
20927 t_TAIL_06,
20928 t_TAIL_07,
20929 t_TAIL_08> Variant;
20930
20931 static const FuncPtr *map()
20932 {
20933 static const FuncPtr s_mapArray[] = {
20934 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
20935 functionImpl),
20936 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20937 functionImpl),
20938 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20939 functionImpl),
20940 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20941 functionImpl),
20942 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20943 functionImpl),
20944 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20945 functionImpl),
20946 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20947 functionImpl),
20948 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20949 functionImpl),
20950 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20951 functionImpl)};
20952 return s_mapArray;
20953 }
20954
20955 static const FuncPtr *mapId()
20956 {
20957 static const FuncPtr s_mapArray[] = {
20958 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
20959 functionImpl),
20960 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
20961 functionImpl),
20962 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
20963 functionImpl),
20964 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
20965 functionImpl),
20966 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
20967 functionImpl),
20968 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
20969 functionImpl),
20970 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
20971 functionImpl),
20972 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
20973 functionImpl),
20974 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
20975 functionImpl)};
20976 return s_mapArray;
20977 }
20978};
20979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 8
20980
20981#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 9
20982template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
20983 class t_TAIL_02,
20984 class t_TAIL_03,
20985 class t_TAIL_04,
20986 class t_TAIL_05,
20987 class t_TAIL_06,
20988 class t_TAIL_07,
20989 class t_TAIL_08,
20990 class t_TAIL_09>
20991struct Variant_VTable<t_RET,
20992 t_VISITOR,
20993 const bsl::variant<t_HEAD, t_TAIL_01,
20994 t_TAIL_02,
20995 t_TAIL_03,
20996 t_TAIL_04,
20997 t_TAIL_05,
20998 t_TAIL_06,
20999 t_TAIL_07,
21000 t_TAIL_08,
21001 t_TAIL_09> > {
21002
21003 typedef t_RET (*FuncPtr)(t_VISITOR&,
21004 const bsl::variant<t_HEAD, t_TAIL_01,
21005 t_TAIL_02,
21006 t_TAIL_03,
21007 t_TAIL_04,
21008 t_TAIL_05,
21009 t_TAIL_06,
21010 t_TAIL_07,
21011 t_TAIL_08,
21012 t_TAIL_09>&);
21013
21014 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21015 t_TAIL_02,
21016 t_TAIL_03,
21017 t_TAIL_04,
21018 t_TAIL_05,
21019 t_TAIL_06,
21020 t_TAIL_07,
21021 t_TAIL_08,
21022 t_TAIL_09> Variant;
21023
21024 static const FuncPtr *map()
21025 {
21026 static const FuncPtr s_mapArray[] = {
21027 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21028 functionImpl),
21029 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21030 functionImpl),
21031 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21032 functionImpl),
21033 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21034 functionImpl),
21035 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21036 functionImpl),
21037 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21038 functionImpl),
21039 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21040 functionImpl),
21041 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21042 functionImpl),
21043 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21044 functionImpl),
21045 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21046 functionImpl)};
21047 return s_mapArray;
21048 }
21049
21050 static const FuncPtr *mapId()
21051 {
21052 static const FuncPtr s_mapArray[] = {
21053 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21054 functionImpl),
21055 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21056 functionImpl),
21057 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21058 functionImpl),
21059 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21060 functionImpl),
21061 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21062 functionImpl),
21063 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21064 functionImpl),
21065 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21066 functionImpl),
21067 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21068 functionImpl),
21069 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21070 functionImpl),
21071 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21072 functionImpl)};
21073 return s_mapArray;
21074 }
21075};
21076#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 9
21077
21078#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 10
21079template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21080 class t_TAIL_02,
21081 class t_TAIL_03,
21082 class t_TAIL_04,
21083 class t_TAIL_05,
21084 class t_TAIL_06,
21085 class t_TAIL_07,
21086 class t_TAIL_08,
21087 class t_TAIL_09,
21088 class t_TAIL_10>
21089struct Variant_VTable<t_RET,
21090 t_VISITOR,
21091 const bsl::variant<t_HEAD, t_TAIL_01,
21092 t_TAIL_02,
21093 t_TAIL_03,
21094 t_TAIL_04,
21095 t_TAIL_05,
21096 t_TAIL_06,
21097 t_TAIL_07,
21098 t_TAIL_08,
21099 t_TAIL_09,
21100 t_TAIL_10> > {
21101
21102 typedef t_RET (*FuncPtr)(t_VISITOR&,
21103 const bsl::variant<t_HEAD, t_TAIL_01,
21104 t_TAIL_02,
21105 t_TAIL_03,
21106 t_TAIL_04,
21107 t_TAIL_05,
21108 t_TAIL_06,
21109 t_TAIL_07,
21110 t_TAIL_08,
21111 t_TAIL_09,
21112 t_TAIL_10>&);
21113
21114 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21115 t_TAIL_02,
21116 t_TAIL_03,
21117 t_TAIL_04,
21118 t_TAIL_05,
21119 t_TAIL_06,
21120 t_TAIL_07,
21121 t_TAIL_08,
21122 t_TAIL_09,
21123 t_TAIL_10> Variant;
21124
21125 static const FuncPtr *map()
21126 {
21127 static const FuncPtr s_mapArray[] = {
21128 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21129 functionImpl),
21130 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21131 functionImpl),
21132 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21133 functionImpl),
21134 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21135 functionImpl),
21136 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21137 functionImpl),
21138 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21139 functionImpl),
21140 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21141 functionImpl),
21142 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21143 functionImpl),
21144 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21145 functionImpl),
21146 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21147 functionImpl),
21148 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21149 functionImpl)};
21150 return s_mapArray;
21151 }
21152
21153 static const FuncPtr *mapId()
21154 {
21155 static const FuncPtr s_mapArray[] = {
21156 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21157 functionImpl),
21158 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21159 functionImpl),
21160 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21161 functionImpl),
21162 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21163 functionImpl),
21164 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21165 functionImpl),
21166 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21167 functionImpl),
21168 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21169 functionImpl),
21170 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21171 functionImpl),
21172 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21173 functionImpl),
21174 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21175 functionImpl),
21176 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21177 functionImpl)};
21178 return s_mapArray;
21179 }
21180};
21181#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 10
21182
21183#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 11
21184template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21185 class t_TAIL_02,
21186 class t_TAIL_03,
21187 class t_TAIL_04,
21188 class t_TAIL_05,
21189 class t_TAIL_06,
21190 class t_TAIL_07,
21191 class t_TAIL_08,
21192 class t_TAIL_09,
21193 class t_TAIL_10,
21194 class t_TAIL_11>
21195struct Variant_VTable<t_RET,
21196 t_VISITOR,
21197 const bsl::variant<t_HEAD, t_TAIL_01,
21198 t_TAIL_02,
21199 t_TAIL_03,
21200 t_TAIL_04,
21201 t_TAIL_05,
21202 t_TAIL_06,
21203 t_TAIL_07,
21204 t_TAIL_08,
21205 t_TAIL_09,
21206 t_TAIL_10,
21207 t_TAIL_11> > {
21208
21209 typedef t_RET (*FuncPtr)(t_VISITOR&,
21210 const bsl::variant<t_HEAD, t_TAIL_01,
21211 t_TAIL_02,
21212 t_TAIL_03,
21213 t_TAIL_04,
21214 t_TAIL_05,
21215 t_TAIL_06,
21216 t_TAIL_07,
21217 t_TAIL_08,
21218 t_TAIL_09,
21219 t_TAIL_10,
21220 t_TAIL_11>&);
21221
21222 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21223 t_TAIL_02,
21224 t_TAIL_03,
21225 t_TAIL_04,
21226 t_TAIL_05,
21227 t_TAIL_06,
21228 t_TAIL_07,
21229 t_TAIL_08,
21230 t_TAIL_09,
21231 t_TAIL_10,
21232 t_TAIL_11> Variant;
21233
21234 static const FuncPtr *map()
21235 {
21236 static const FuncPtr s_mapArray[] = {
21237 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21238 functionImpl),
21239 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21240 functionImpl),
21241 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21242 functionImpl),
21243 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21244 functionImpl),
21245 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21246 functionImpl),
21247 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21248 functionImpl),
21249 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21250 functionImpl),
21251 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21252 functionImpl),
21253 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21254 functionImpl),
21255 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21256 functionImpl),
21257 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21258 functionImpl),
21259 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21260 functionImpl)};
21261 return s_mapArray;
21262 }
21263
21264 static const FuncPtr *mapId()
21265 {
21266 static const FuncPtr s_mapArray[] = {
21267 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21268 functionImpl),
21269 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21270 functionImpl),
21271 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21272 functionImpl),
21273 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21274 functionImpl),
21275 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21276 functionImpl),
21277 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21278 functionImpl),
21279 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21280 functionImpl),
21281 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21282 functionImpl),
21283 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21284 functionImpl),
21285 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21286 functionImpl),
21287 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21288 functionImpl),
21289 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21290 functionImpl)};
21291 return s_mapArray;
21292 }
21293};
21294#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 11
21295
21296#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 12
21297template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21298 class t_TAIL_02,
21299 class t_TAIL_03,
21300 class t_TAIL_04,
21301 class t_TAIL_05,
21302 class t_TAIL_06,
21303 class t_TAIL_07,
21304 class t_TAIL_08,
21305 class t_TAIL_09,
21306 class t_TAIL_10,
21307 class t_TAIL_11,
21308 class t_TAIL_12>
21309struct Variant_VTable<t_RET,
21310 t_VISITOR,
21311 const bsl::variant<t_HEAD, t_TAIL_01,
21312 t_TAIL_02,
21313 t_TAIL_03,
21314 t_TAIL_04,
21315 t_TAIL_05,
21316 t_TAIL_06,
21317 t_TAIL_07,
21318 t_TAIL_08,
21319 t_TAIL_09,
21320 t_TAIL_10,
21321 t_TAIL_11,
21322 t_TAIL_12> > {
21323
21324 typedef t_RET (*FuncPtr)(t_VISITOR&,
21325 const bsl::variant<t_HEAD, t_TAIL_01,
21326 t_TAIL_02,
21327 t_TAIL_03,
21328 t_TAIL_04,
21329 t_TAIL_05,
21330 t_TAIL_06,
21331 t_TAIL_07,
21332 t_TAIL_08,
21333 t_TAIL_09,
21334 t_TAIL_10,
21335 t_TAIL_11,
21336 t_TAIL_12>&);
21337
21338 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21339 t_TAIL_02,
21340 t_TAIL_03,
21341 t_TAIL_04,
21342 t_TAIL_05,
21343 t_TAIL_06,
21344 t_TAIL_07,
21345 t_TAIL_08,
21346 t_TAIL_09,
21347 t_TAIL_10,
21348 t_TAIL_11,
21349 t_TAIL_12> Variant;
21350
21351 static const FuncPtr *map()
21352 {
21353 static const FuncPtr s_mapArray[] = {
21354 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21355 functionImpl),
21356 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21357 functionImpl),
21358 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21359 functionImpl),
21360 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21361 functionImpl),
21362 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21363 functionImpl),
21364 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21365 functionImpl),
21366 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21367 functionImpl),
21368 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21369 functionImpl),
21370 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21371 functionImpl),
21372 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21373 functionImpl),
21374 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21375 functionImpl),
21376 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21377 functionImpl),
21378 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21379 functionImpl)};
21380 return s_mapArray;
21381 }
21382
21383 static const FuncPtr *mapId()
21384 {
21385 static const FuncPtr s_mapArray[] = {
21386 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21387 functionImpl),
21388 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21389 functionImpl),
21390 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21391 functionImpl),
21392 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21393 functionImpl),
21394 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21395 functionImpl),
21396 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21397 functionImpl),
21398 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21399 functionImpl),
21400 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21401 functionImpl),
21402 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21403 functionImpl),
21404 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21405 functionImpl),
21406 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21407 functionImpl),
21408 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21409 functionImpl),
21410 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21411 functionImpl)};
21412 return s_mapArray;
21413 }
21414};
21415#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 12
21416
21417#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 13
21418template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21419 class t_TAIL_02,
21420 class t_TAIL_03,
21421 class t_TAIL_04,
21422 class t_TAIL_05,
21423 class t_TAIL_06,
21424 class t_TAIL_07,
21425 class t_TAIL_08,
21426 class t_TAIL_09,
21427 class t_TAIL_10,
21428 class t_TAIL_11,
21429 class t_TAIL_12,
21430 class t_TAIL_13>
21431struct Variant_VTable<t_RET,
21432 t_VISITOR,
21433 const bsl::variant<t_HEAD, t_TAIL_01,
21434 t_TAIL_02,
21435 t_TAIL_03,
21436 t_TAIL_04,
21437 t_TAIL_05,
21438 t_TAIL_06,
21439 t_TAIL_07,
21440 t_TAIL_08,
21441 t_TAIL_09,
21442 t_TAIL_10,
21443 t_TAIL_11,
21444 t_TAIL_12,
21445 t_TAIL_13> > {
21446
21447 typedef t_RET (*FuncPtr)(t_VISITOR&,
21448 const bsl::variant<t_HEAD, t_TAIL_01,
21449 t_TAIL_02,
21450 t_TAIL_03,
21451 t_TAIL_04,
21452 t_TAIL_05,
21453 t_TAIL_06,
21454 t_TAIL_07,
21455 t_TAIL_08,
21456 t_TAIL_09,
21457 t_TAIL_10,
21458 t_TAIL_11,
21459 t_TAIL_12,
21460 t_TAIL_13>&);
21461
21462 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21463 t_TAIL_02,
21464 t_TAIL_03,
21465 t_TAIL_04,
21466 t_TAIL_05,
21467 t_TAIL_06,
21468 t_TAIL_07,
21469 t_TAIL_08,
21470 t_TAIL_09,
21471 t_TAIL_10,
21472 t_TAIL_11,
21473 t_TAIL_12,
21474 t_TAIL_13> Variant;
21475
21476 static const FuncPtr *map()
21477 {
21478 static const FuncPtr s_mapArray[] = {
21479 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21480 functionImpl),
21481 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21482 functionImpl),
21483 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21484 functionImpl),
21485 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21486 functionImpl),
21487 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21488 functionImpl),
21489 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21490 functionImpl),
21491 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21492 functionImpl),
21493 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21494 functionImpl),
21495 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21496 functionImpl),
21497 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21498 functionImpl),
21499 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21500 functionImpl),
21501 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21502 functionImpl),
21503 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21504 functionImpl),
21505 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21506 functionImpl)};
21507 return s_mapArray;
21508 }
21509
21510 static const FuncPtr *mapId()
21511 {
21512 static const FuncPtr s_mapArray[] = {
21513 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21514 functionImpl),
21515 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21516 functionImpl),
21517 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21518 functionImpl),
21519 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21520 functionImpl),
21521 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21522 functionImpl),
21523 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21524 functionImpl),
21525 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21526 functionImpl),
21527 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21528 functionImpl),
21529 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21530 functionImpl),
21531 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21532 functionImpl),
21533 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21534 functionImpl),
21535 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21536 functionImpl),
21537 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21538 functionImpl),
21539 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21540 functionImpl)};
21541 return s_mapArray;
21542 }
21543};
21544#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 13
21545
21546#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 14
21547template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21548 class t_TAIL_02,
21549 class t_TAIL_03,
21550 class t_TAIL_04,
21551 class t_TAIL_05,
21552 class t_TAIL_06,
21553 class t_TAIL_07,
21554 class t_TAIL_08,
21555 class t_TAIL_09,
21556 class t_TAIL_10,
21557 class t_TAIL_11,
21558 class t_TAIL_12,
21559 class t_TAIL_13,
21560 class t_TAIL_14>
21561struct Variant_VTable<t_RET,
21562 t_VISITOR,
21563 const bsl::variant<t_HEAD, t_TAIL_01,
21564 t_TAIL_02,
21565 t_TAIL_03,
21566 t_TAIL_04,
21567 t_TAIL_05,
21568 t_TAIL_06,
21569 t_TAIL_07,
21570 t_TAIL_08,
21571 t_TAIL_09,
21572 t_TAIL_10,
21573 t_TAIL_11,
21574 t_TAIL_12,
21575 t_TAIL_13,
21576 t_TAIL_14> > {
21577
21578 typedef t_RET (*FuncPtr)(t_VISITOR&,
21579 const bsl::variant<t_HEAD, t_TAIL_01,
21580 t_TAIL_02,
21581 t_TAIL_03,
21582 t_TAIL_04,
21583 t_TAIL_05,
21584 t_TAIL_06,
21585 t_TAIL_07,
21586 t_TAIL_08,
21587 t_TAIL_09,
21588 t_TAIL_10,
21589 t_TAIL_11,
21590 t_TAIL_12,
21591 t_TAIL_13,
21592 t_TAIL_14>&);
21593
21594 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21595 t_TAIL_02,
21596 t_TAIL_03,
21597 t_TAIL_04,
21598 t_TAIL_05,
21599 t_TAIL_06,
21600 t_TAIL_07,
21601 t_TAIL_08,
21602 t_TAIL_09,
21603 t_TAIL_10,
21604 t_TAIL_11,
21605 t_TAIL_12,
21606 t_TAIL_13,
21607 t_TAIL_14> Variant;
21608
21609 static const FuncPtr *map()
21610 {
21611 static const FuncPtr s_mapArray[] = {
21612 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21613 functionImpl),
21614 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21615 functionImpl),
21616 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21617 functionImpl),
21618 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21619 functionImpl),
21620 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21621 functionImpl),
21622 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21623 functionImpl),
21624 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21625 functionImpl),
21626 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21627 functionImpl),
21628 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21629 functionImpl),
21630 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21631 functionImpl),
21632 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21633 functionImpl),
21634 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21635 functionImpl),
21636 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21637 functionImpl),
21638 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21639 functionImpl),
21640 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
21641 functionImpl)};
21642 return s_mapArray;
21643 }
21644
21645 static const FuncPtr *mapId()
21646 {
21647 static const FuncPtr s_mapArray[] = {
21648 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21649 functionImpl),
21650 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21651 functionImpl),
21652 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21653 functionImpl),
21654 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21655 functionImpl),
21656 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21657 functionImpl),
21658 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21659 functionImpl),
21660 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21661 functionImpl),
21662 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21663 functionImpl),
21664 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21665 functionImpl),
21666 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21667 functionImpl),
21668 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21669 functionImpl),
21670 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21671 functionImpl),
21672 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21673 functionImpl),
21674 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21675 functionImpl),
21676 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
21677 functionImpl)};
21678 return s_mapArray;
21679 }
21680};
21681#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 14
21682
21683#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 15
21684template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21685 class t_TAIL_02,
21686 class t_TAIL_03,
21687 class t_TAIL_04,
21688 class t_TAIL_05,
21689 class t_TAIL_06,
21690 class t_TAIL_07,
21691 class t_TAIL_08,
21692 class t_TAIL_09,
21693 class t_TAIL_10,
21694 class t_TAIL_11,
21695 class t_TAIL_12,
21696 class t_TAIL_13,
21697 class t_TAIL_14,
21698 class t_TAIL_15>
21699struct Variant_VTable<t_RET,
21700 t_VISITOR,
21701 const bsl::variant<t_HEAD, t_TAIL_01,
21702 t_TAIL_02,
21703 t_TAIL_03,
21704 t_TAIL_04,
21705 t_TAIL_05,
21706 t_TAIL_06,
21707 t_TAIL_07,
21708 t_TAIL_08,
21709 t_TAIL_09,
21710 t_TAIL_10,
21711 t_TAIL_11,
21712 t_TAIL_12,
21713 t_TAIL_13,
21714 t_TAIL_14,
21715 t_TAIL_15> > {
21716
21717 typedef t_RET (*FuncPtr)(t_VISITOR&,
21718 const bsl::variant<t_HEAD, t_TAIL_01,
21719 t_TAIL_02,
21720 t_TAIL_03,
21721 t_TAIL_04,
21722 t_TAIL_05,
21723 t_TAIL_06,
21724 t_TAIL_07,
21725 t_TAIL_08,
21726 t_TAIL_09,
21727 t_TAIL_10,
21728 t_TAIL_11,
21729 t_TAIL_12,
21730 t_TAIL_13,
21731 t_TAIL_14,
21732 t_TAIL_15>&);
21733
21734 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21735 t_TAIL_02,
21736 t_TAIL_03,
21737 t_TAIL_04,
21738 t_TAIL_05,
21739 t_TAIL_06,
21740 t_TAIL_07,
21741 t_TAIL_08,
21742 t_TAIL_09,
21743 t_TAIL_10,
21744 t_TAIL_11,
21745 t_TAIL_12,
21746 t_TAIL_13,
21747 t_TAIL_14,
21748 t_TAIL_15> Variant;
21749
21750 static const FuncPtr *map()
21751 {
21752 static const FuncPtr s_mapArray[] = {
21753 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21754 functionImpl),
21755 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21756 functionImpl),
21757 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21758 functionImpl),
21759 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21760 functionImpl),
21761 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21762 functionImpl),
21763 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21764 functionImpl),
21765 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21766 functionImpl),
21767 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21768 functionImpl),
21769 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21770 functionImpl),
21771 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21772 functionImpl),
21773 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21774 functionImpl),
21775 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21776 functionImpl),
21777 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21778 functionImpl),
21779 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21780 functionImpl),
21781 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
21782 functionImpl),
21783 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
21784 functionImpl)};
21785 return s_mapArray;
21786 }
21787
21788 static const FuncPtr *mapId()
21789 {
21790 static const FuncPtr s_mapArray[] = {
21791 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21792 functionImpl),
21793 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21794 functionImpl),
21795 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21796 functionImpl),
21797 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21798 functionImpl),
21799 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21800 functionImpl),
21801 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21802 functionImpl),
21803 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21804 functionImpl),
21805 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21806 functionImpl),
21807 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21808 functionImpl),
21809 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21810 functionImpl),
21811 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21812 functionImpl),
21813 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21814 functionImpl),
21815 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21816 functionImpl),
21817 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21818 functionImpl),
21819 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
21820 functionImpl),
21821 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
21822 functionImpl)};
21823 return s_mapArray;
21824 }
21825};
21826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 15
21827
21828#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 16
21829template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21830 class t_TAIL_02,
21831 class t_TAIL_03,
21832 class t_TAIL_04,
21833 class t_TAIL_05,
21834 class t_TAIL_06,
21835 class t_TAIL_07,
21836 class t_TAIL_08,
21837 class t_TAIL_09,
21838 class t_TAIL_10,
21839 class t_TAIL_11,
21840 class t_TAIL_12,
21841 class t_TAIL_13,
21842 class t_TAIL_14,
21843 class t_TAIL_15,
21844 class t_TAIL_16>
21845struct Variant_VTable<t_RET,
21846 t_VISITOR,
21847 const bsl::variant<t_HEAD, t_TAIL_01,
21848 t_TAIL_02,
21849 t_TAIL_03,
21850 t_TAIL_04,
21851 t_TAIL_05,
21852 t_TAIL_06,
21853 t_TAIL_07,
21854 t_TAIL_08,
21855 t_TAIL_09,
21856 t_TAIL_10,
21857 t_TAIL_11,
21858 t_TAIL_12,
21859 t_TAIL_13,
21860 t_TAIL_14,
21861 t_TAIL_15,
21862 t_TAIL_16> > {
21863
21864 typedef t_RET (*FuncPtr)(t_VISITOR&,
21865 const bsl::variant<t_HEAD, t_TAIL_01,
21866 t_TAIL_02,
21867 t_TAIL_03,
21868 t_TAIL_04,
21869 t_TAIL_05,
21870 t_TAIL_06,
21871 t_TAIL_07,
21872 t_TAIL_08,
21873 t_TAIL_09,
21874 t_TAIL_10,
21875 t_TAIL_11,
21876 t_TAIL_12,
21877 t_TAIL_13,
21878 t_TAIL_14,
21879 t_TAIL_15,
21880 t_TAIL_16>&);
21881
21882 typedef const bsl::variant<t_HEAD, t_TAIL_01,
21883 t_TAIL_02,
21884 t_TAIL_03,
21885 t_TAIL_04,
21886 t_TAIL_05,
21887 t_TAIL_06,
21888 t_TAIL_07,
21889 t_TAIL_08,
21890 t_TAIL_09,
21891 t_TAIL_10,
21892 t_TAIL_11,
21893 t_TAIL_12,
21894 t_TAIL_13,
21895 t_TAIL_14,
21896 t_TAIL_15,
21897 t_TAIL_16> Variant;
21898
21899 static const FuncPtr *map()
21900 {
21901 static const FuncPtr s_mapArray[] = {
21902 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
21903 functionImpl),
21904 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21905 functionImpl),
21906 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21907 functionImpl),
21908 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21909 functionImpl),
21910 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21911 functionImpl),
21912 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21913 functionImpl),
21914 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21915 functionImpl),
21916 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21917 functionImpl),
21918 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21919 functionImpl),
21920 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21921 functionImpl),
21922 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21923 functionImpl),
21924 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21925 functionImpl),
21926 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21927 functionImpl),
21928 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21929 functionImpl),
21930 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
21931 functionImpl),
21932 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
21933 functionImpl),
21934 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_16>::
21935 functionImpl)};
21936 return s_mapArray;
21937 }
21938
21939 static const FuncPtr *mapId()
21940 {
21941 static const FuncPtr s_mapArray[] = {
21942 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
21943 functionImpl),
21944 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
21945 functionImpl),
21946 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
21947 functionImpl),
21948 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
21949 functionImpl),
21950 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
21951 functionImpl),
21952 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
21953 functionImpl),
21954 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
21955 functionImpl),
21956 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
21957 functionImpl),
21958 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
21959 functionImpl),
21960 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
21961 functionImpl),
21962 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
21963 functionImpl),
21964 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
21965 functionImpl),
21966 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
21967 functionImpl),
21968 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
21969 functionImpl),
21970 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
21971 functionImpl),
21972 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
21973 functionImpl),
21974 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_16>::
21975 functionImpl)};
21976 return s_mapArray;
21977 }
21978};
21979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 16
21980
21981#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 17
21982template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
21983 class t_TAIL_02,
21984 class t_TAIL_03,
21985 class t_TAIL_04,
21986 class t_TAIL_05,
21987 class t_TAIL_06,
21988 class t_TAIL_07,
21989 class t_TAIL_08,
21990 class t_TAIL_09,
21991 class t_TAIL_10,
21992 class t_TAIL_11,
21993 class t_TAIL_12,
21994 class t_TAIL_13,
21995 class t_TAIL_14,
21996 class t_TAIL_15,
21997 class t_TAIL_16,
21998 class t_TAIL_17>
21999struct Variant_VTable<t_RET,
22000 t_VISITOR,
22001 const bsl::variant<t_HEAD, t_TAIL_01,
22002 t_TAIL_02,
22003 t_TAIL_03,
22004 t_TAIL_04,
22005 t_TAIL_05,
22006 t_TAIL_06,
22007 t_TAIL_07,
22008 t_TAIL_08,
22009 t_TAIL_09,
22010 t_TAIL_10,
22011 t_TAIL_11,
22012 t_TAIL_12,
22013 t_TAIL_13,
22014 t_TAIL_14,
22015 t_TAIL_15,
22016 t_TAIL_16,
22017 t_TAIL_17> > {
22018
22019 typedef t_RET (*FuncPtr)(t_VISITOR&,
22020 const bsl::variant<t_HEAD, t_TAIL_01,
22021 t_TAIL_02,
22022 t_TAIL_03,
22023 t_TAIL_04,
22024 t_TAIL_05,
22025 t_TAIL_06,
22026 t_TAIL_07,
22027 t_TAIL_08,
22028 t_TAIL_09,
22029 t_TAIL_10,
22030 t_TAIL_11,
22031 t_TAIL_12,
22032 t_TAIL_13,
22033 t_TAIL_14,
22034 t_TAIL_15,
22035 t_TAIL_16,
22036 t_TAIL_17>&);
22037
22038 typedef const bsl::variant<t_HEAD, t_TAIL_01,
22039 t_TAIL_02,
22040 t_TAIL_03,
22041 t_TAIL_04,
22042 t_TAIL_05,
22043 t_TAIL_06,
22044 t_TAIL_07,
22045 t_TAIL_08,
22046 t_TAIL_09,
22047 t_TAIL_10,
22048 t_TAIL_11,
22049 t_TAIL_12,
22050 t_TAIL_13,
22051 t_TAIL_14,
22052 t_TAIL_15,
22053 t_TAIL_16,
22054 t_TAIL_17> Variant;
22055
22056 static const FuncPtr *map()
22057 {
22058 static const FuncPtr s_mapArray[] = {
22059 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
22060 functionImpl),
22061 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
22062 functionImpl),
22063 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
22064 functionImpl),
22065 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
22066 functionImpl),
22067 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
22068 functionImpl),
22069 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
22070 functionImpl),
22071 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
22072 functionImpl),
22073 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
22074 functionImpl),
22075 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
22076 functionImpl),
22077 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
22078 functionImpl),
22079 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
22080 functionImpl),
22081 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
22082 functionImpl),
22083 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
22084 functionImpl),
22085 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
22086 functionImpl),
22087 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
22088 functionImpl),
22089 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
22090 functionImpl),
22091 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_16>::
22092 functionImpl),
22093 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_17>::
22094 functionImpl)};
22095 return s_mapArray;
22096 }
22097
22098 static const FuncPtr *mapId()
22099 {
22100 static const FuncPtr s_mapArray[] = {
22101 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
22102 functionImpl),
22103 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
22104 functionImpl),
22105 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
22106 functionImpl),
22107 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
22108 functionImpl),
22109 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
22110 functionImpl),
22111 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
22112 functionImpl),
22113 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
22114 functionImpl),
22115 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
22116 functionImpl),
22117 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
22118 functionImpl),
22119 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
22120 functionImpl),
22121 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
22122 functionImpl),
22123 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
22124 functionImpl),
22125 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
22126 functionImpl),
22127 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
22128 functionImpl),
22129 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
22130 functionImpl),
22131 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
22132 functionImpl),
22133 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_16>::
22134 functionImpl),
22135 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_17>::
22136 functionImpl)};
22137 return s_mapArray;
22138 }
22139};
22140#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 17
22141
22142#if BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 18
22143template <class t_RET, class t_VISITOR, class t_HEAD, class t_TAIL_01,
22144 class t_TAIL_02,
22145 class t_TAIL_03,
22146 class t_TAIL_04,
22147 class t_TAIL_05,
22148 class t_TAIL_06,
22149 class t_TAIL_07,
22150 class t_TAIL_08,
22151 class t_TAIL_09,
22152 class t_TAIL_10,
22153 class t_TAIL_11,
22154 class t_TAIL_12,
22155 class t_TAIL_13,
22156 class t_TAIL_14,
22157 class t_TAIL_15,
22158 class t_TAIL_16,
22159 class t_TAIL_17,
22160 class t_TAIL_18>
22161struct Variant_VTable<t_RET,
22162 t_VISITOR,
22163 const bsl::variant<t_HEAD, t_TAIL_01,
22164 t_TAIL_02,
22165 t_TAIL_03,
22166 t_TAIL_04,
22167 t_TAIL_05,
22168 t_TAIL_06,
22169 t_TAIL_07,
22170 t_TAIL_08,
22171 t_TAIL_09,
22172 t_TAIL_10,
22173 t_TAIL_11,
22174 t_TAIL_12,
22175 t_TAIL_13,
22176 t_TAIL_14,
22177 t_TAIL_15,
22178 t_TAIL_16,
22179 t_TAIL_17,
22180 t_TAIL_18> > {
22181
22182 typedef t_RET (*FuncPtr)(t_VISITOR&,
22183 const bsl::variant<t_HEAD, t_TAIL_01,
22184 t_TAIL_02,
22185 t_TAIL_03,
22186 t_TAIL_04,
22187 t_TAIL_05,
22188 t_TAIL_06,
22189 t_TAIL_07,
22190 t_TAIL_08,
22191 t_TAIL_09,
22192 t_TAIL_10,
22193 t_TAIL_11,
22194 t_TAIL_12,
22195 t_TAIL_13,
22196 t_TAIL_14,
22197 t_TAIL_15,
22198 t_TAIL_16,
22199 t_TAIL_17,
22200 t_TAIL_18>&);
22201
22202 typedef const bsl::variant<t_HEAD, t_TAIL_01,
22203 t_TAIL_02,
22204 t_TAIL_03,
22205 t_TAIL_04,
22206 t_TAIL_05,
22207 t_TAIL_06,
22208 t_TAIL_07,
22209 t_TAIL_08,
22210 t_TAIL_09,
22211 t_TAIL_10,
22212 t_TAIL_11,
22213 t_TAIL_12,
22214 t_TAIL_13,
22215 t_TAIL_14,
22216 t_TAIL_15,
22217 t_TAIL_16,
22218 t_TAIL_17,
22219 t_TAIL_18> Variant;
22220
22221 static const FuncPtr *map()
22222 {
22223 static const FuncPtr s_mapArray[] = {
22224 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
22225 functionImpl),
22226 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_01>::
22227 functionImpl),
22228 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_02>::
22229 functionImpl),
22230 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_03>::
22231 functionImpl),
22232 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_04>::
22233 functionImpl),
22234 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_05>::
22235 functionImpl),
22236 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_06>::
22237 functionImpl),
22238 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_07>::
22239 functionImpl),
22240 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_08>::
22241 functionImpl),
22242 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_09>::
22243 functionImpl),
22244 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_10>::
22245 functionImpl),
22246 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_11>::
22247 functionImpl),
22248 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_12>::
22249 functionImpl),
22250 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_13>::
22251 functionImpl),
22252 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_14>::
22253 functionImpl),
22254 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_15>::
22255 functionImpl),
22256 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_16>::
22257 functionImpl),
22258 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_17>::
22259 functionImpl),
22260 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL_18>::
22261 functionImpl)};
22262 return s_mapArray;
22263 }
22264
22265 static const FuncPtr *mapId()
22266 {
22267 static const FuncPtr s_mapArray[] = {
22268 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
22269 functionImpl),
22270 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_01>::
22271 functionImpl),
22272 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_02>::
22273 functionImpl),
22274 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_03>::
22275 functionImpl),
22276 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_04>::
22277 functionImpl),
22278 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_05>::
22279 functionImpl),
22280 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_06>::
22281 functionImpl),
22282 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_07>::
22283 functionImpl),
22284 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_08>::
22285 functionImpl),
22286 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_09>::
22287 functionImpl),
22288 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_10>::
22289 functionImpl),
22290 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_11>::
22291 functionImpl),
22292 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_12>::
22293 functionImpl),
22294 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_13>::
22295 functionImpl),
22296 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_14>::
22297 functionImpl),
22298 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_15>::
22299 functionImpl),
22300 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_16>::
22301 functionImpl),
22302 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_17>::
22303 functionImpl),
22304 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL_18>::
22305 functionImpl)};
22306 return s_mapArray;
22307 }
22308};
22309#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_H >= 18
22310
22311#else
22312// The generated code below is a workaround for the absence of perfect
22313// forwarding in some compilers.
22314
22315template <class t_RET, class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
22316struct Variant_Function {
22317 static t_RET functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
22318 {
22319 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22320 return visitor(ImpUtil::unsafeGet<t_ALT_TYPE>(variant));
22321 }
22322};
22323
22324template <class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
22325struct Variant_Function<void, t_VISITOR, t_VARIANT, t_ALT_TYPE> {
22326
22327 static void functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
22328 {
22329 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22330 visitor(ImpUtil::unsafeGet<t_ALT_TYPE>(variant));
22331 }
22332};
22333
22334template <class t_RET, class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
22335struct Variant_MoveFunction {
22336 static t_RET functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
22337 {
22338 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
22339 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22340
22341 return visitor(
22342 MoveUtil::move(ImpUtil::unsafeGet<t_ALT_TYPE>(variant)));
22343 }
22344};
22345
22346template <class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
22347struct Variant_MoveFunction<void, t_VISITOR, t_VARIANT, t_ALT_TYPE> {
22348
22349 static void functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
22350 {
22351 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
22352 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22353
22354 visitor(MoveUtil::move(ImpUtil::unsafeGet<t_ALT_TYPE>(variant)));
22355 }
22356};
22357
22358template <class t_RET, class t_VISITOR, class t_VARIANT, class t_ALT_TYPE>
22359struct Variant_FunctionId {
22360 static t_RET functionImpl(t_VISITOR& visitor, t_VARIANT& variant)
22361 {
22362 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22363 static const size_t t_INDEX = BSLSTL_VARIANT_INDEX_OF(
22364 t_ALT_TYPE, typename bsl::remove_cv<t_VARIANT>::type);
22365
22366 return visitor(bsl::in_place_index_t<t_INDEX>(),
22367 ImpUtil::unsafeGet<t_ALT_TYPE>(variant));
22368 }
22369};
22370
22371template <class t_RET, class t_VISITOR, class t_VARIANT, class... t_UNUSED>
22372struct Variant_VTable;
22373
22374template <class t_RET, class t_VISITOR, class t_HEAD, class... t_TAIL>
22375struct Variant_VTable<t_RET, t_VISITOR, bsl::variant<t_HEAD, t_TAIL...> > {
22376
22377 typedef t_RET (*FuncPtr)(t_VISITOR&, bsl::variant<t_HEAD, t_TAIL...>&);
22378
22379 typedef bsl::variant<t_HEAD, t_TAIL...> Variant;
22380
22381 static const FuncPtr *map()
22382 {
22383 static const FuncPtr s_mapArray[] = {
22384 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
22385 functionImpl),
22386 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL>::
22387 functionImpl)...};
22388 return s_mapArray;
22389 }
22390
22391 static const FuncPtr *moveMap()
22392 {
22393 static const FuncPtr s_mapArray[] = {
22394 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_HEAD>::
22395 functionImpl),
22396 &(Variant_MoveFunction<t_RET, t_VISITOR, Variant, t_TAIL>::
22397 functionImpl)...};
22398 return s_mapArray;
22399 }
22400
22401 static const FuncPtr *mapId()
22402 {
22403 static const FuncPtr s_mapArray[] = {
22404 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
22405 functionImpl),
22406 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL>::
22407 functionImpl)...};
22408 return s_mapArray;
22409 }
22410};
22411
22412template <class t_RET, class t_VISITOR, class t_HEAD, class... t_TAIL>
22413struct Variant_VTable<t_RET,
22414 t_VISITOR,
22415 const bsl::variant<t_HEAD, t_TAIL...> > {
22416
22417 typedef t_RET (*FuncPtr)(t_VISITOR&,
22418 const bsl::variant<t_HEAD, t_TAIL...>&);
22419
22420 typedef const bsl::variant<t_HEAD, t_TAIL...> Variant;
22421
22422 static const FuncPtr *map()
22423 {
22424 static const FuncPtr s_mapArray[] = {
22425 &(Variant_Function<t_RET, t_VISITOR, Variant, t_HEAD>::
22426 functionImpl),
22427 &(Variant_Function<t_RET, t_VISITOR, Variant, t_TAIL>::
22428 functionImpl)...};
22429 return s_mapArray;
22430 }
22431
22432 static const FuncPtr *mapId()
22433 {
22434 static const FuncPtr s_mapArray[] = {
22435 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_HEAD>::
22436 functionImpl),
22437 &(Variant_FunctionId<t_RET, t_VISITOR, Variant, t_TAIL>::
22438 functionImpl)...};
22439 return s_mapArray;
22440 }
22441};
22442
22443// }}} END GENERATED CODE
22444#endif
22445#endif // BSL_VARIANT_FULL_IMPLEMENTATION
22446
22447} // close package namespace
22448
22449
22450namespace bsl {
22451#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
22452/// Return the result of invoking the specified `visitor` with the currently
22453/// active alternative of the specified `variant`, implicitly converting the
22454/// result to the explicitly specified (template parameter) `t_RET`. If
22455/// `variant` does not hold a value, throw an exception of type
22456/// `bsl::bad_variant_access`. Note that unlike the `visit` overload below
22457/// that deduces its return type, this overload does not require the visitor
22458/// to yield the exact same type for each alternative, but only requires
22459/// each such type to be implicitly convertible to `t_RET`. This function
22460/// differs from the standard in the following ways:
22461/// * only one variant is supported
22462/// * constexpr is not implemented
22463/// * before C++17, only `t_VISITOR(ALTERNATIVE)` form of visitation is
22464/// supported; cases where the visitor is a pointer to member are not
22465/// supported.
22466template <class t_RET, class t_VISITOR, class t_VARIANT>
22467t_RET visit(t_VISITOR&& visitor, t_VARIANT&& variant)
22468{
22469 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22470
22471 if (variant.valueless_by_exception()) {
22472 BSLS_THROW(bsl::bad_variant_access());
22473 }
22474 return ImpUtil::visit<t_RET>(std::forward<t_VISITOR>(visitor),
22475 std::forward<t_VARIANT>(variant));
22476}
22477
22478/// Return the result of invoking the specified `visitor` with the currently
22479/// active alternative of the specified `variant`. If `variant` does not
22480/// hold a value, throw an exception of type `bsl::bad_variant_access`. For
22481/// each alternative, invocation of the visitor with that alternative shall
22482/// be of the same type and value category. This function differs from the
22483/// standard in the following ways:
22484/// * only one variant is supported
22485/// * constexpr is not implemented
22486/// * before C++17, only `t_VISITOR(ALTERNATIVE)` form of visitation is
22487/// supported; cases where the visitor is a pointer to member are not
22488/// supported.
22489template <class t_VISITOR, class t_VARIANT>
22490typename bsl::invoke_result<
22491 t_VISITOR,
22492 typename BloombergLP::bslstl::Variant_CVQualAlt<t_VARIANT, 0>::type>::type
22493visit(t_VISITOR&& visitor, t_VARIANT&& variant)
22494{
22495 typedef typename bsl::invoke_result<
22496 t_VISITOR&&,
22497 typename BloombergLP::bslstl::Variant_CVQualAlt<t_VARIANT&&,
22498 0>::type>::type RET;
22499 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22500
22501 static_assert(
22502 BloombergLP::bslstl::
22503 Variant_IsSameReturnType<RET, t_VISITOR&&, t_VARIANT&&>::value,
22504 "The value type and category of invoking the visitor with "
22505 "every alternative is not the same");
22506 if (variant.valueless_by_exception()) {
22507 BSLS_THROW(bsl::bad_variant_access());
22508 }
22509 return ImpUtil::visit<RET>(std::forward<t_VISITOR>(visitor),
22510 std::forward<t_VARIANT>(variant));
22511}
22512
22513/// Return the result of invoking the specified `visitor` with the currently
22514/// active alternative of the specified `variant`, implicitly converting the
22515/// result to the explicitly specified (template parameter) `t_RET`. If
22516/// `variant` does not hold a value, throw an exception of type
22517/// `bsl::bad_variant_access`. This function is provided in all language
22518/// versions for compatibility with the C++03 version (see below), but in
22519/// new code in C++11 and later, `bsl::visit` should be used instead of this
22520/// function.
22521template <class t_RET, class t_VISITOR, class t_VARIANT>
22522t_RET visitR(t_VISITOR& visitor, t_VARIANT&& variant)
22523{
22524 return visit<t_RET>(visitor, std::forward<t_VARIANT>(variant));
22525}
22526#else // BSL_VARIANT_FULL_IMPLEMENTATION
22527
22528template <class t_RET, class t_VISITOR, class t_VARIANT>
22529t_RET visitR(t_VISITOR& visitor, t_VARIANT& variant)
22530 // Return the result of invoking the specified 'visitor' with the currently
22531 // active alternative of the specified 'variant', implicitly converting the
22532 // result to the explicitly specified (template parameter) 't_RET'. If
22533 // 'variant' does not hold a value, throw an exception of type
22534 // 'bsl::bad_variant_access'. Unlike 'visit', which deduces its return
22535 // type, this function does not require the visitor to yield the exact same
22536 // type for each alternative, but only requires each such type to be
22537 // implicitly convertible to 't_RET'. Implementation note: Due to
22538 // limitations of the type deduction facility in C++03, this function can
22539 // not share the same name as the deduced type 'visit' because it is not
22540 // possible to discern between invocation of non deduced return type
22541 // 'visit' where the return type parameter is explicitly specified and
22542 // invocation of deduced return type 'visit' where the visitor type
22543 // parameter is explicitly specified.
22544{
22545 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22546
22547 if (variant.valueless_by_exception()) {
22548 BSLS_THROW(bsl::bad_variant_access());
22549 }
22550 return ImpUtil::visit<t_RET>(visitor, variant);
22551}
22552
22553template <class t_RET, class t_VISITOR, class t_VARIANT>
22554t_RET visitR(t_VISITOR& visitor,
22555 BloombergLP::bslmf::MovableRef<t_VARIANT> variant)
22556 // Return the result of invoking the specified 'visitor' with a
22557 // 'bslmf::MovableRef' referring to the currently active alternative of the
22558 // specified 'variant', implicitly converting the result to the explicitly
22559 // specified (template parameter) 't_RET'. If 'variant' does not hold a
22560 // value, throw an exception of type 'bsl::bad_variant_access'. Unlike
22561 // 'visit', which deduces its return type, this function does not require
22562 // the visitor to yield the exact same type for each alternative, but only
22563 // requires each such type to be implicitly convertible to 't_RET'.
22564 // Implementation note: Due to limitations of the type deduction facility
22565 // in C++03, this function can not share the same name as the deduced type
22566 // 'visit' because it is not possible to discern between invocation of non
22567 // deduced return type 'visit' where the return type parameter is
22568 // explicitly specified and invocation of deduced return type 'visit' where
22569 // the visitor type parameter is explicitly specified.
22570{
22571 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22572
22573 t_VARIANT& lvalue = variant;
22574 if (lvalue.valueless_by_exception()) {
22575 BSLS_THROW(bsl::bad_variant_access());
22576 }
22577 return ImpUtil::moveVisit<t_RET>(visitor, lvalue);
22578}
22579
22580template <class t_VISITOR, class t_VARIANT>
22581typename bsl::invoke_result<
22582 t_VISITOR&,
22584visit(t_VISITOR& visitor, t_VARIANT& variant)
22585 // Return the result of invoking the specified 'visitor' with the currently
22586 // active alternative of the specified 'variant'. If 'variant' does not
22587 // hold a value, throw an exception of type 'bsl::bad_variant_access'. For
22588 // each alternative, invocation of the visitor with that alternative shall
22589 // be of the same type and value category.
22590{
22591 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22592
22593 if (variant.valueless_by_exception()) {
22594 BSLS_THROW(bsl::bad_variant_access());
22595 }
22596 typedef typename bsl::invoke_result<
22597 t_VISITOR&,
22599
22601 (BloombergLP::bslstl::
22602 Variant_IsSameReturnType<Ret, t_VISITOR, t_VARIANT&>::value));
22603
22604 return ImpUtil::visit<Ret>(visitor, variant);
22605}
22606
22607template <class t_VISITOR, class t_VARIANT>
22608typename bsl::invoke_result<
22609 t_VISITOR&,
22610 BloombergLP::bslmf::MovableRef<
22612visit(t_VISITOR& visitor, BloombergLP::bslmf::MovableRef<t_VARIANT> variant)
22613 // Return the result of invoking the specified 'visitor' with a
22614 // 'bslmf::MovableRef' referring to the currently active alternative of the
22615 // specified 'variant'. If 'variant' does not hold a value, throw an
22616 // exception of type 'bsl::bad_variant_access'. For each alternative,
22617 // invocation of the visitor with that alternative shall be of the same
22618 // type and value category.
22619{
22620 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
22621
22622 t_VARIANT& lvalue = variant;
22623 if (lvalue.valueless_by_exception()) {
22624 BSLS_THROW(bsl::bad_variant_access());
22625 }
22626 typedef typename bsl::invoke_result<
22627 t_VISITOR&,
22628 BloombergLP::bslmf::MovableRef<
22630
22631 BSLMF_ASSERT((BloombergLP::bslstl::Variant_IsSameReturnType<
22632 Ret,
22633 t_VISITOR,
22634 BloombergLP::bslmf::MovableRef<t_VARIANT> >::value));
22635
22636 return ImpUtil::moveVisit<Ret>(visitor, lvalue);
22637}
22638
22639#endif // BSL_VARIANT_FULL_IMPLEMENTATION
22640
22641} // close namespace bsl
22642
22643
22644namespace bslstl {
22645
22646 // ========================
22647 // class Variant_NoSuchType
22648 // ========================
22649
22650/// This component-private trivial tag type is used to distinguish between
22651/// arguments passed by a user, and an `enable_if` argument. It is not
22652/// default constructible so the following construction never invokes a
22653/// constrained single parameter constructor:
22654/// @code
22655/// struct SomeType
22656/// {
22657/// SomeType(int, const std::string &s = "default"){}
22658/// };
22659///
22660/// variant<SomeType> o(1, {});
22661/// @endcode
22662struct Variant_NoSuchType {
22663
22664 // CREATORS
22665
22666 /// Create a `Variant_NoSuchType` object.
22667 explicit BSLS_KEYWORD_CONSTEXPR Variant_NoSuchType(
22669};
22670
22671#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
22672/// This component-private class manages an object of type (template
22673/// parameter) `t_TYPE` that is stored in a `variant` object. Note that
22674/// `t_TYPE` may be const-qualified, in which case the internally stored
22675/// object is not `const`, but the interface of this class prevents
22676/// modification thereof.
22677///
22678/// See @ref bslstl_variant_cpp03
22679template <class t_TYPE>
22680class Variant_DataImp {
22681
22682 private:
22683 // PRIVATE TYPES
22684 typedef typename bsl::remove_const<t_TYPE>::type StoredType;
22685
22686 // DATA
22687 bsls::ObjectBuffer<StoredType> d_buffer; // in-place 't_TYPE' object
22688
22689 public:
22690 // CREATORS
22691 Variant_DataImp() = default;
22692 // Create a 'Variant_DataImp' object that holds an empty buffer.
22693
22694 // MANIPULATORS
22695
22696 /// Create a `Variant_DataImp` object whose stored `t_TYPE` object is
22697 /// constructed by forwarding the specified `args` to
22698 /// `ConstructionUtil::construct` directly. This means the first
22699 /// argument in `args` must be a pointer to `bslma::Allocator`, which
22700 /// will be ignored if `t_TYPE` is not allocator-aware.
22701 template <class... t_ARGS>
22702 Variant_DataImp(t_ARGS&&... args);
22703
22704 BSLS_KEYWORD_CONSTEXPR_CPP14 t_TYPE& value() &;
22705 BSLS_KEYWORD_CONSTEXPR_CPP14 t_TYPE&& value() &&;
22706 // Return a reference to the stored 't_TYPE' object. The behavior is
22707 // undefined unless this object contains a 't_TYPE' object (i.e., this
22708 // object is currently managing the active alternative of a 'bsl::variant'
22709 // object).
22710
22711 // ACCESSORS
22712 BSLS_KEYWORD_CONSTEXPR_CPP14 const t_TYPE& value() const&;
22713 BSLS_KEYWORD_CONSTEXPR_CPP14 const t_TYPE&& value() const&&;
22714 // Return a const reference to the stored 't_TYPE' object. The behavior is
22715 // undefined unless this object contains a 't_TYPE' object (i.e., this
22716 // object is currently managing the active alternative of a 'bsl::variant'
22717 // object).
22718};
22719
22720/// This component-private union can hold a `Variant_DataImp` object for any
22721/// alternative in (template parameters) `t_TYPES...`. The primary template
22722/// is used when `t_TYPES...` is empty.
22723template <class... t_TYPES>
22724union Variant_Union {
22725};
22726
22727/// This partial specialization uses template recursion because C++ does not
22728/// support member packs.
22729template <class t_HEAD, class... t_TAIL>
22730union Variant_Union<t_HEAD, t_TAIL...> {
22731
22732 // PUBLIC DATA
22733 Variant_DataImp<t_HEAD> d_head;
22734 Variant_Union<t_TAIL...> d_tail;
22735
22736 // CREATORS
22737 Variant_Union() = default;
22738 // Create a 'Variant_Union' object having no active alternative.
22739
22740 /// Create a `Variant_Union` object holding an object of type `t_HEAD`
22741 /// direct-initialized from the specified `args`.
22742 template <class... t_ARGS>
22743 Variant_Union(bsl::in_place_index_t<0>, t_ARGS&&... args)
22744 : d_head(std::forward<t_ARGS>(args)...)
22745 {
22746 }
22747
22748 /// Create a `Variant_Union` object holding the alternative at index
22749 /// (template parameter) `t_INDEX` in (template parameters) 't_HEAD,
22750 /// t_TAIL...`, direct-initialized from the specified `args'. Note that
22751 /// `t_INDEX` is not necessarily the absolute index of the desired
22752 /// alternative in the `bsl::variant` object. We use the tag to
22753 /// "unravel" the union until we get to the desired alternative type.
22754 ///
22755 /// See @ref bslstl_variant_cpp03
22756 template <size_t t_INDEX, class... t_ARGS>
22757 Variant_Union(bsl::in_place_index_t<t_INDEX>, t_ARGS&&... args)
22758 : d_tail(bsl::in_place_index_t<t_INDEX - 1>(),
22759 std::forward<t_ARGS>(args)...)
22760 {
22761 }
22762};
22763#else // BSL_VARIANT_FULL_IMPLEMENTATION
22764template <class t_TYPE>
22765class Variant_DataImp {
22766 // This component-private class manages an object of type (template
22767 // parameter) 't_TYPE' that is stored in a 'variant' object. Note that
22768 // 't_TYPE' may be const-qualified, in which case the internally stored
22769 // object is not 'const', but the interface of this class prevents
22770 // modification thereof.
22771
22772 private:
22773 // PRIVATE TYPES
22774 typedef typename bsl::remove_const<t_TYPE>::type StoredType;
22775
22776 // DATA
22777 bsls::ObjectBuffer<StoredType> d_buffer; // in-place 't_TYPE' object
22778
22779 public:
22780 // CREATORS
22781 Variant_DataImp() = default;
22782 // Create a 'Variant_DataImp' object that holds an empty buffer.
22783
22784 // MANIPULATORS
22785 t_TYPE& value();
22786 // Return a reference to the stored 't_TYPE' object. The behavior is
22787 // undefined unless the enclosing union contains a 't_TYPE' object
22788 // (i.e., the enclosing 'bsl::variant' has an active alternative of
22789 // type 't_TYPE').
22790
22791 // ACCESSORS
22792 const t_TYPE& value() const;
22793 // Return a const reference to the stored 't_TYPE' object. The
22794 // behavior is undefined unless the enclosing union contains a 't_TYPE'
22795 // object (i.e., the enclosing 'bsl::variant' has an active alternative
22796 // of type 't_TYPE').
22797};
22798
22799#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
22800// {{{ BEGIN GENERATED CODE
22801// Command line: sim_cpp11_features.pl bslstl_variant.h
22802#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
22803#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
22804#endif
22805#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_I
22806#define BSLSTL_VARIANT_VARIADIC_LIMIT_I BSLSTL_VARIANT_VARIADIC_LIMIT
22807#endif
22808template <class t_HEAD = void
22809#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 0
22810 , class t_TAIL0_0 = BSLS_COMPILERFEATURES_NILT
22811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 0
22812
22813#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 1
22814 , class t_TAIL0_1 = BSLS_COMPILERFEATURES_NILT
22815#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 1
22816
22817#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 2
22818 , class t_TAIL0_2 = BSLS_COMPILERFEATURES_NILT
22819#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 2
22820
22821#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 3
22822 , class t_TAIL0_3 = BSLS_COMPILERFEATURES_NILT
22823#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 3
22824
22825#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 4
22826 , class t_TAIL0_4 = BSLS_COMPILERFEATURES_NILT
22827#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 4
22828
22829#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 5
22830 , class t_TAIL0_5 = BSLS_COMPILERFEATURES_NILT
22831#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 5
22832
22833#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 6
22834 , class t_TAIL0_6 = BSLS_COMPILERFEATURES_NILT
22835#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 6
22836
22837#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 7
22838 , class t_TAIL0_7 = BSLS_COMPILERFEATURES_NILT
22839#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 7
22840
22841#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 8
22842 , class t_TAIL0_8 = BSLS_COMPILERFEATURES_NILT
22843#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 8
22844
22845#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 9
22846 , class t_TAIL0_9 = BSLS_COMPILERFEATURES_NILT
22847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 9
22848
22849#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 10
22850 , class t_TAIL0_10 = BSLS_COMPILERFEATURES_NILT
22851#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 10
22852
22853#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 11
22854 , class t_TAIL0_11 = BSLS_COMPILERFEATURES_NILT
22855#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 11
22856
22857#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 12
22858 , class t_TAIL0_12 = BSLS_COMPILERFEATURES_NILT
22859#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 12
22860
22861#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 13
22862 , class t_TAIL0_13 = BSLS_COMPILERFEATURES_NILT
22863#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 13
22864
22865#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 14
22866 , class t_TAIL0_14 = BSLS_COMPILERFEATURES_NILT
22867#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 14
22868
22869#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 15
22870 , class t_TAIL0_15 = BSLS_COMPILERFEATURES_NILT
22871#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 15
22872
22873#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 16
22874 , class t_TAIL0_16 = BSLS_COMPILERFEATURES_NILT
22875#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 16
22876
22877#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 17
22878 , class t_TAIL0_17 = BSLS_COMPILERFEATURES_NILT
22879#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 17
22880 , class = BSLS_COMPILERFEATURES_NILT
22881#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 0
22882 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
22883#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 0
22884
22885#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 1
22886 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
22887#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 1
22888
22889#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 2
22890 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
22891#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 2
22892
22893#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 3
22894 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
22895#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 3
22896
22897#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 4
22898 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
22899#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 4
22900
22901#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 5
22902 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
22903#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 5
22904
22905#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 6
22906 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
22907#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 6
22908
22909#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 7
22910 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
22911#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 7
22912
22913#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 8
22914 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
22915#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 8
22916
22917#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 9
22918 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
22919#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 9
22920
22921#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 10
22922 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
22923#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 10
22924
22925#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 11
22926 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
22927#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 11
22928
22929#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 12
22930 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
22931#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 12
22932
22933#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 13
22934 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
22935#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 13
22936
22937#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 14
22938 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
22939#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 14
22940
22941#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 15
22942 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
22943#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 15
22944
22945#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 16
22946 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
22947#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 16
22948
22949#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 17
22950 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
22951#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 17
22952 , class = BSLS_COMPILERFEATURES_NILT>
22953union Variant_Union;
22954
22955
22956template <>
22957union Variant_Union<void, void> {
22958};
22959
22960template <>
22961union Variant_Union<BloombergLP::bsls::CompilerFeaturesNilT> {
22962};
22963
22964#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 0
22965template <class t_HEAD, class t_TAIL0>
22966union Variant_Union<t_HEAD, t_TAIL0> {
22967
22968 Variant_DataImp<t_HEAD> d_head;
22969 Variant_Union<t_TAIL0> d_tail;
22970};
22971#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 0
22972
22973#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 1
22974template <class t_HEAD, class t_TAIL0, class t_TAIL_01>
22975union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01> {
22976
22977 Variant_DataImp<t_HEAD> d_head;
22978 Variant_Union<t_TAIL0, t_TAIL_01> d_tail;
22979};
22980#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 1
22981
22982#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 2
22983template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
22984 class t_TAIL_02>
22985union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
22986 t_TAIL_02> {
22987
22988 Variant_DataImp<t_HEAD> d_head;
22989 Variant_Union<t_TAIL0, t_TAIL_01,
22990 t_TAIL_02> d_tail;
22991};
22992#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 2
22993
22994#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 3
22995template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
22996 class t_TAIL_02,
22997 class t_TAIL_03>
22998union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
22999 t_TAIL_02,
23000 t_TAIL_03> {
23001
23002 Variant_DataImp<t_HEAD> d_head;
23003 Variant_Union<t_TAIL0, t_TAIL_01,
23004 t_TAIL_02,
23005 t_TAIL_03> d_tail;
23006};
23007#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 3
23008
23009#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 4
23010template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23011 class t_TAIL_02,
23012 class t_TAIL_03,
23013 class t_TAIL_04>
23014union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23015 t_TAIL_02,
23016 t_TAIL_03,
23017 t_TAIL_04> {
23018
23019 Variant_DataImp<t_HEAD> d_head;
23020 Variant_Union<t_TAIL0, t_TAIL_01,
23021 t_TAIL_02,
23022 t_TAIL_03,
23023 t_TAIL_04> d_tail;
23024};
23025#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 4
23026
23027#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 5
23028template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23029 class t_TAIL_02,
23030 class t_TAIL_03,
23031 class t_TAIL_04,
23032 class t_TAIL_05>
23033union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23034 t_TAIL_02,
23035 t_TAIL_03,
23036 t_TAIL_04,
23037 t_TAIL_05> {
23038
23039 Variant_DataImp<t_HEAD> d_head;
23040 Variant_Union<t_TAIL0, t_TAIL_01,
23041 t_TAIL_02,
23042 t_TAIL_03,
23043 t_TAIL_04,
23044 t_TAIL_05> d_tail;
23045};
23046#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 5
23047
23048#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 6
23049template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23050 class t_TAIL_02,
23051 class t_TAIL_03,
23052 class t_TAIL_04,
23053 class t_TAIL_05,
23054 class t_TAIL_06>
23055union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23056 t_TAIL_02,
23057 t_TAIL_03,
23058 t_TAIL_04,
23059 t_TAIL_05,
23060 t_TAIL_06> {
23061
23062 Variant_DataImp<t_HEAD> d_head;
23063 Variant_Union<t_TAIL0, t_TAIL_01,
23064 t_TAIL_02,
23065 t_TAIL_03,
23066 t_TAIL_04,
23067 t_TAIL_05,
23068 t_TAIL_06> d_tail;
23069};
23070#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 6
23071
23072#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 7
23073template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23074 class t_TAIL_02,
23075 class t_TAIL_03,
23076 class t_TAIL_04,
23077 class t_TAIL_05,
23078 class t_TAIL_06,
23079 class t_TAIL_07>
23080union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23081 t_TAIL_02,
23082 t_TAIL_03,
23083 t_TAIL_04,
23084 t_TAIL_05,
23085 t_TAIL_06,
23086 t_TAIL_07> {
23087
23088 Variant_DataImp<t_HEAD> d_head;
23089 Variant_Union<t_TAIL0, t_TAIL_01,
23090 t_TAIL_02,
23091 t_TAIL_03,
23092 t_TAIL_04,
23093 t_TAIL_05,
23094 t_TAIL_06,
23095 t_TAIL_07> d_tail;
23096};
23097#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 7
23098
23099#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 8
23100template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23101 class t_TAIL_02,
23102 class t_TAIL_03,
23103 class t_TAIL_04,
23104 class t_TAIL_05,
23105 class t_TAIL_06,
23106 class t_TAIL_07,
23107 class t_TAIL_08>
23108union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23109 t_TAIL_02,
23110 t_TAIL_03,
23111 t_TAIL_04,
23112 t_TAIL_05,
23113 t_TAIL_06,
23114 t_TAIL_07,
23115 t_TAIL_08> {
23116
23117 Variant_DataImp<t_HEAD> d_head;
23118 Variant_Union<t_TAIL0, t_TAIL_01,
23119 t_TAIL_02,
23120 t_TAIL_03,
23121 t_TAIL_04,
23122 t_TAIL_05,
23123 t_TAIL_06,
23124 t_TAIL_07,
23125 t_TAIL_08> d_tail;
23126};
23127#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 8
23128
23129#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 9
23130template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23131 class t_TAIL_02,
23132 class t_TAIL_03,
23133 class t_TAIL_04,
23134 class t_TAIL_05,
23135 class t_TAIL_06,
23136 class t_TAIL_07,
23137 class t_TAIL_08,
23138 class t_TAIL_09>
23139union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23140 t_TAIL_02,
23141 t_TAIL_03,
23142 t_TAIL_04,
23143 t_TAIL_05,
23144 t_TAIL_06,
23145 t_TAIL_07,
23146 t_TAIL_08,
23147 t_TAIL_09> {
23148
23149 Variant_DataImp<t_HEAD> d_head;
23150 Variant_Union<t_TAIL0, t_TAIL_01,
23151 t_TAIL_02,
23152 t_TAIL_03,
23153 t_TAIL_04,
23154 t_TAIL_05,
23155 t_TAIL_06,
23156 t_TAIL_07,
23157 t_TAIL_08,
23158 t_TAIL_09> d_tail;
23159};
23160#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 9
23161
23162#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 10
23163template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23164 class t_TAIL_02,
23165 class t_TAIL_03,
23166 class t_TAIL_04,
23167 class t_TAIL_05,
23168 class t_TAIL_06,
23169 class t_TAIL_07,
23170 class t_TAIL_08,
23171 class t_TAIL_09,
23172 class t_TAIL_10>
23173union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23174 t_TAIL_02,
23175 t_TAIL_03,
23176 t_TAIL_04,
23177 t_TAIL_05,
23178 t_TAIL_06,
23179 t_TAIL_07,
23180 t_TAIL_08,
23181 t_TAIL_09,
23182 t_TAIL_10> {
23183
23184 Variant_DataImp<t_HEAD> d_head;
23185 Variant_Union<t_TAIL0, t_TAIL_01,
23186 t_TAIL_02,
23187 t_TAIL_03,
23188 t_TAIL_04,
23189 t_TAIL_05,
23190 t_TAIL_06,
23191 t_TAIL_07,
23192 t_TAIL_08,
23193 t_TAIL_09,
23194 t_TAIL_10> d_tail;
23195};
23196#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 10
23197
23198#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 11
23199template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23200 class t_TAIL_02,
23201 class t_TAIL_03,
23202 class t_TAIL_04,
23203 class t_TAIL_05,
23204 class t_TAIL_06,
23205 class t_TAIL_07,
23206 class t_TAIL_08,
23207 class t_TAIL_09,
23208 class t_TAIL_10,
23209 class t_TAIL_11>
23210union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23211 t_TAIL_02,
23212 t_TAIL_03,
23213 t_TAIL_04,
23214 t_TAIL_05,
23215 t_TAIL_06,
23216 t_TAIL_07,
23217 t_TAIL_08,
23218 t_TAIL_09,
23219 t_TAIL_10,
23220 t_TAIL_11> {
23221
23222 Variant_DataImp<t_HEAD> d_head;
23223 Variant_Union<t_TAIL0, t_TAIL_01,
23224 t_TAIL_02,
23225 t_TAIL_03,
23226 t_TAIL_04,
23227 t_TAIL_05,
23228 t_TAIL_06,
23229 t_TAIL_07,
23230 t_TAIL_08,
23231 t_TAIL_09,
23232 t_TAIL_10,
23233 t_TAIL_11> d_tail;
23234};
23235#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 11
23236
23237#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 12
23238template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23239 class t_TAIL_02,
23240 class t_TAIL_03,
23241 class t_TAIL_04,
23242 class t_TAIL_05,
23243 class t_TAIL_06,
23244 class t_TAIL_07,
23245 class t_TAIL_08,
23246 class t_TAIL_09,
23247 class t_TAIL_10,
23248 class t_TAIL_11,
23249 class t_TAIL_12>
23250union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23251 t_TAIL_02,
23252 t_TAIL_03,
23253 t_TAIL_04,
23254 t_TAIL_05,
23255 t_TAIL_06,
23256 t_TAIL_07,
23257 t_TAIL_08,
23258 t_TAIL_09,
23259 t_TAIL_10,
23260 t_TAIL_11,
23261 t_TAIL_12> {
23262
23263 Variant_DataImp<t_HEAD> d_head;
23264 Variant_Union<t_TAIL0, t_TAIL_01,
23265 t_TAIL_02,
23266 t_TAIL_03,
23267 t_TAIL_04,
23268 t_TAIL_05,
23269 t_TAIL_06,
23270 t_TAIL_07,
23271 t_TAIL_08,
23272 t_TAIL_09,
23273 t_TAIL_10,
23274 t_TAIL_11,
23275 t_TAIL_12> d_tail;
23276};
23277#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 12
23278
23279#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 13
23280template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23281 class t_TAIL_02,
23282 class t_TAIL_03,
23283 class t_TAIL_04,
23284 class t_TAIL_05,
23285 class t_TAIL_06,
23286 class t_TAIL_07,
23287 class t_TAIL_08,
23288 class t_TAIL_09,
23289 class t_TAIL_10,
23290 class t_TAIL_11,
23291 class t_TAIL_12,
23292 class t_TAIL_13>
23293union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23294 t_TAIL_02,
23295 t_TAIL_03,
23296 t_TAIL_04,
23297 t_TAIL_05,
23298 t_TAIL_06,
23299 t_TAIL_07,
23300 t_TAIL_08,
23301 t_TAIL_09,
23302 t_TAIL_10,
23303 t_TAIL_11,
23304 t_TAIL_12,
23305 t_TAIL_13> {
23306
23307 Variant_DataImp<t_HEAD> d_head;
23308 Variant_Union<t_TAIL0, t_TAIL_01,
23309 t_TAIL_02,
23310 t_TAIL_03,
23311 t_TAIL_04,
23312 t_TAIL_05,
23313 t_TAIL_06,
23314 t_TAIL_07,
23315 t_TAIL_08,
23316 t_TAIL_09,
23317 t_TAIL_10,
23318 t_TAIL_11,
23319 t_TAIL_12,
23320 t_TAIL_13> d_tail;
23321};
23322#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 13
23323
23324#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 14
23325template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23326 class t_TAIL_02,
23327 class t_TAIL_03,
23328 class t_TAIL_04,
23329 class t_TAIL_05,
23330 class t_TAIL_06,
23331 class t_TAIL_07,
23332 class t_TAIL_08,
23333 class t_TAIL_09,
23334 class t_TAIL_10,
23335 class t_TAIL_11,
23336 class t_TAIL_12,
23337 class t_TAIL_13,
23338 class t_TAIL_14>
23339union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23340 t_TAIL_02,
23341 t_TAIL_03,
23342 t_TAIL_04,
23343 t_TAIL_05,
23344 t_TAIL_06,
23345 t_TAIL_07,
23346 t_TAIL_08,
23347 t_TAIL_09,
23348 t_TAIL_10,
23349 t_TAIL_11,
23350 t_TAIL_12,
23351 t_TAIL_13,
23352 t_TAIL_14> {
23353
23354 Variant_DataImp<t_HEAD> d_head;
23355 Variant_Union<t_TAIL0, t_TAIL_01,
23356 t_TAIL_02,
23357 t_TAIL_03,
23358 t_TAIL_04,
23359 t_TAIL_05,
23360 t_TAIL_06,
23361 t_TAIL_07,
23362 t_TAIL_08,
23363 t_TAIL_09,
23364 t_TAIL_10,
23365 t_TAIL_11,
23366 t_TAIL_12,
23367 t_TAIL_13,
23368 t_TAIL_14> d_tail;
23369};
23370#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 14
23371
23372#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 15
23373template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23374 class t_TAIL_02,
23375 class t_TAIL_03,
23376 class t_TAIL_04,
23377 class t_TAIL_05,
23378 class t_TAIL_06,
23379 class t_TAIL_07,
23380 class t_TAIL_08,
23381 class t_TAIL_09,
23382 class t_TAIL_10,
23383 class t_TAIL_11,
23384 class t_TAIL_12,
23385 class t_TAIL_13,
23386 class t_TAIL_14,
23387 class t_TAIL_15>
23388union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23389 t_TAIL_02,
23390 t_TAIL_03,
23391 t_TAIL_04,
23392 t_TAIL_05,
23393 t_TAIL_06,
23394 t_TAIL_07,
23395 t_TAIL_08,
23396 t_TAIL_09,
23397 t_TAIL_10,
23398 t_TAIL_11,
23399 t_TAIL_12,
23400 t_TAIL_13,
23401 t_TAIL_14,
23402 t_TAIL_15> {
23403
23404 Variant_DataImp<t_HEAD> d_head;
23405 Variant_Union<t_TAIL0, t_TAIL_01,
23406 t_TAIL_02,
23407 t_TAIL_03,
23408 t_TAIL_04,
23409 t_TAIL_05,
23410 t_TAIL_06,
23411 t_TAIL_07,
23412 t_TAIL_08,
23413 t_TAIL_09,
23414 t_TAIL_10,
23415 t_TAIL_11,
23416 t_TAIL_12,
23417 t_TAIL_13,
23418 t_TAIL_14,
23419 t_TAIL_15> d_tail;
23420};
23421#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 15
23422
23423#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 16
23424template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23425 class t_TAIL_02,
23426 class t_TAIL_03,
23427 class t_TAIL_04,
23428 class t_TAIL_05,
23429 class t_TAIL_06,
23430 class t_TAIL_07,
23431 class t_TAIL_08,
23432 class t_TAIL_09,
23433 class t_TAIL_10,
23434 class t_TAIL_11,
23435 class t_TAIL_12,
23436 class t_TAIL_13,
23437 class t_TAIL_14,
23438 class t_TAIL_15,
23439 class t_TAIL_16>
23440union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23441 t_TAIL_02,
23442 t_TAIL_03,
23443 t_TAIL_04,
23444 t_TAIL_05,
23445 t_TAIL_06,
23446 t_TAIL_07,
23447 t_TAIL_08,
23448 t_TAIL_09,
23449 t_TAIL_10,
23450 t_TAIL_11,
23451 t_TAIL_12,
23452 t_TAIL_13,
23453 t_TAIL_14,
23454 t_TAIL_15,
23455 t_TAIL_16> {
23456
23457 Variant_DataImp<t_HEAD> d_head;
23458 Variant_Union<t_TAIL0, t_TAIL_01,
23459 t_TAIL_02,
23460 t_TAIL_03,
23461 t_TAIL_04,
23462 t_TAIL_05,
23463 t_TAIL_06,
23464 t_TAIL_07,
23465 t_TAIL_08,
23466 t_TAIL_09,
23467 t_TAIL_10,
23468 t_TAIL_11,
23469 t_TAIL_12,
23470 t_TAIL_13,
23471 t_TAIL_14,
23472 t_TAIL_15,
23473 t_TAIL_16> d_tail;
23474};
23475#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 16
23476
23477#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 17
23478template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23479 class t_TAIL_02,
23480 class t_TAIL_03,
23481 class t_TAIL_04,
23482 class t_TAIL_05,
23483 class t_TAIL_06,
23484 class t_TAIL_07,
23485 class t_TAIL_08,
23486 class t_TAIL_09,
23487 class t_TAIL_10,
23488 class t_TAIL_11,
23489 class t_TAIL_12,
23490 class t_TAIL_13,
23491 class t_TAIL_14,
23492 class t_TAIL_15,
23493 class t_TAIL_16,
23494 class t_TAIL_17>
23495union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23496 t_TAIL_02,
23497 t_TAIL_03,
23498 t_TAIL_04,
23499 t_TAIL_05,
23500 t_TAIL_06,
23501 t_TAIL_07,
23502 t_TAIL_08,
23503 t_TAIL_09,
23504 t_TAIL_10,
23505 t_TAIL_11,
23506 t_TAIL_12,
23507 t_TAIL_13,
23508 t_TAIL_14,
23509 t_TAIL_15,
23510 t_TAIL_16,
23511 t_TAIL_17> {
23512
23513 Variant_DataImp<t_HEAD> d_head;
23514 Variant_Union<t_TAIL0, t_TAIL_01,
23515 t_TAIL_02,
23516 t_TAIL_03,
23517 t_TAIL_04,
23518 t_TAIL_05,
23519 t_TAIL_06,
23520 t_TAIL_07,
23521 t_TAIL_08,
23522 t_TAIL_09,
23523 t_TAIL_10,
23524 t_TAIL_11,
23525 t_TAIL_12,
23526 t_TAIL_13,
23527 t_TAIL_14,
23528 t_TAIL_15,
23529 t_TAIL_16,
23530 t_TAIL_17> d_tail;
23531};
23532#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 17
23533
23534#if BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 18
23535template <class t_HEAD, class t_TAIL0, class t_TAIL_01,
23536 class t_TAIL_02,
23537 class t_TAIL_03,
23538 class t_TAIL_04,
23539 class t_TAIL_05,
23540 class t_TAIL_06,
23541 class t_TAIL_07,
23542 class t_TAIL_08,
23543 class t_TAIL_09,
23544 class t_TAIL_10,
23545 class t_TAIL_11,
23546 class t_TAIL_12,
23547 class t_TAIL_13,
23548 class t_TAIL_14,
23549 class t_TAIL_15,
23550 class t_TAIL_16,
23551 class t_TAIL_17,
23552 class t_TAIL_18>
23553union Variant_Union<t_HEAD, t_TAIL0, t_TAIL_01,
23554 t_TAIL_02,
23555 t_TAIL_03,
23556 t_TAIL_04,
23557 t_TAIL_05,
23558 t_TAIL_06,
23559 t_TAIL_07,
23560 t_TAIL_08,
23561 t_TAIL_09,
23562 t_TAIL_10,
23563 t_TAIL_11,
23564 t_TAIL_12,
23565 t_TAIL_13,
23566 t_TAIL_14,
23567 t_TAIL_15,
23568 t_TAIL_16,
23569 t_TAIL_17,
23570 t_TAIL_18> {
23571
23572 Variant_DataImp<t_HEAD> d_head;
23573 Variant_Union<t_TAIL0, t_TAIL_01,
23574 t_TAIL_02,
23575 t_TAIL_03,
23576 t_TAIL_04,
23577 t_TAIL_05,
23578 t_TAIL_06,
23579 t_TAIL_07,
23580 t_TAIL_08,
23581 t_TAIL_09,
23582 t_TAIL_10,
23583 t_TAIL_11,
23584 t_TAIL_12,
23585 t_TAIL_13,
23586 t_TAIL_14,
23587 t_TAIL_15,
23588 t_TAIL_16,
23589 t_TAIL_17,
23590 t_TAIL_18> d_tail;
23591};
23592#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_I >= 18
23593
23594#else
23595// The generated code below is a workaround for the absence of perfect
23596// forwarding in some compilers.
23597template <class t_HEAD = void, class... t_TAIL0 = void, class... t_TAIL>
23598union Variant_Union;
23599
23600template <>
23601union Variant_Union<void, void> {
23602};
23603
23604template <>
23605union Variant_Union<BloombergLP::bsls::CompilerFeaturesNilT> {
23606};
23607
23608template <class t_HEAD, class t_TAIL0, class... t_TAIL>
23609union Variant_Union<t_HEAD, t_TAIL0, t_TAIL...> {
23610
23611 Variant_DataImp<t_HEAD> d_head;
23612 Variant_Union<t_TAIL0, t_TAIL...> d_tail;
23613};
23614// }}} END GENERATED CODE
23615#endif
23616#endif // BSL_VARIANT_FULL_IMPLEMENTATION
23617
23618 // ==================================
23619 // class Variant_CopyConstructVisitor
23620 // ==================================
23621
23622/// This component-private class is a visitor that is used to implement the
23623/// copy constructor for `bsl::variant`.
23624///
23625/// See @ref bslstl_variant_cpp03
23626template <class t_VARIANT_BASE>
23627class Variant_CopyConstructVisitor {
23628
23629 private:
23630 // DATA
23631 t_VARIANT_BASE *d_variant_p;
23632
23633 public:
23634 // CREATORS
23635 explicit Variant_CopyConstructVisitor(t_VARIANT_BASE *variant)
23636 // Create a 'Variant_CopyConstructVisitor' object that, when invoked,
23637 // will copy-construct an alternative in the specified 'variant'.
23638 : d_variant_p(variant)
23639 {
23640 BSLS_ASSERT_SAFE(d_variant_p);
23641 }
23642
23643 // ACCESSORS
23644
23645 /// Copy-construct the alternative at index (template parameter)
23646 /// `t_INDEX` from the specified `other` (i.e. the alternative that is
23647 /// being visited). Note that the allocator specified on construction
23648 /// of `*d_variant_p` will be used.
23649 template <size_t t_INDEX, class t_TYPE>
23650 void operator()(bsl::in_place_index_t<t_INDEX>, const t_TYPE& other) const
23651 {
23652 d_variant_p->template baseEmplace<t_INDEX>(other);
23653 }
23654};
23655
23656 // ==================================
23657 // class Variant_MoveConstructVisitor
23658 // ==================================
23659
23660/// This component-private class is a visitor that is used to implement the
23661/// move constructor for `bsl::variant`.
23662///
23663/// See @ref bslstl_variant_cpp03
23664template <class t_VARIANT_BASE>
23665class Variant_MoveConstructVisitor {
23666
23667 private:
23668 // PRIVATE TYPES
23669 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
23670
23671 // DATA
23672 t_VARIANT_BASE *d_variant_p;
23673
23674 public:
23675 // CREATORS
23676
23677 /// Create a `Variant_MoveConstructVisitor` object that, when invoked,
23678 /// will move-construct an alternative in the specified `variant`.
23679 explicit Variant_MoveConstructVisitor(t_VARIANT_BASE *variant)
23680 : d_variant_p(variant)
23681 {
23682 BSLS_ASSERT_SAFE(d_variant_p);
23683 }
23684
23685 // ACCESSORS
23686
23687 /// Move-construct the alternative at index (template parameter)
23688 /// `t_INDEX` from the specified `other` (i.e. the alternative that is
23689 /// being visited). Note that the allocator specified on construction
23690 /// of `*d_variant_p` will be used.
23691 template <size_t t_INDEX, class t_TYPE>
23692 void operator()(bsl::in_place_index_t<t_INDEX>, t_TYPE& other) const
23693 {
23694 d_variant_p->template baseEmplace<t_INDEX>(MoveUtil::move(other));
23695 }
23696};
23697
23698 // ===============================
23699 // class Variant_CopyAssignVisitor
23700 // ===============================
23701
23702/// This component-private class is a visitor that is used to implement the
23703/// copy assignment operator for `bsl::variant`.
23704///
23705/// See @ref bslstl_variant_cpp03
23706template <class t_VARIANT>
23707class Variant_CopyAssignVisitor {
23708
23709 private:
23710 // DATA
23711 t_VARIANT *d_variant_p;
23712
23713 public:
23714 // CREATORS
23715
23716 /// Create a `Variant_CopyAssignVisitor` object that, when invoked, will
23717 /// copy-assign to the active alternative of the specified `variant`.
23718 explicit Variant_CopyAssignVisitor(t_VARIANT *variant)
23719 : d_variant_p(variant)
23720 {
23721 BSLS_ASSERT_SAFE(d_variant_p);
23722 }
23723
23724
23725 public:
23726 // ACCESSORS
23727
23728 /// Copy-assign to the active alternative of `*d_variant_p` from the
23729 /// specified `value` (i.e. the alternative that is being visited). The
23730 /// behavior is undefined unless (template parameter) `t_INDEX` is the
23731 /// index of the active alternative of `*d_variant_p` (or, in C++03, the
23732 /// index of an alternative that has the same type as the active
23733 /// alternative).
23734 template <size_t t_INDEX, class t_TYPE>
23735 void operator()(bsl::in_place_index_t<t_INDEX>, const t_TYPE& value) const
23736 {
23737#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
23738 bsl::get<t_INDEX>(*d_variant_p) = value;
23739#else
23740 // When invoking this visitor in C++03, 't_INDEX' may not be the index
23741 // of the active alternative, but it will be an index of an alternative
23742 // of same type. However, because 't_TYPE' is deduced, it may be
23743 // missing cv-qualifications. 't_ALT_TYPE' will give the correct
23744 // cv-qualification.
23746 Alt_Type;
23747 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
23748
23749 ImpUtil::unsafeGet<Alt_Type>(*d_variant_p) = value;
23750#endif // BSL_VARIANT_FULL_IMPLEMENTATION
23751 }
23752};
23753
23754 // ===============================
23755 // class Variant_MoveAssignVisitor
23756 // ===============================
23757
23758/// This component-private class is a visitor that is used to implement the
23759/// move assignment operator for `bsl::variant`.
23760///
23761/// See @ref bslstl_variant_cpp03
23762template <class t_VARIANT>
23763class Variant_MoveAssignVisitor {
23764
23765 private:
23766 // PRIVATE TYPES
23767 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
23768
23769 // DATA
23770 t_VARIANT *d_variant_p;
23771
23772 public:
23773 // CREATORS
23774
23775 /// Create a `Variant_MoveAssignVisitor` object that, when invoked, will
23776 /// move-assign to the active alternative of the specified `variant`.
23777 explicit Variant_MoveAssignVisitor(t_VARIANT *variant)
23778 : d_variant_p(variant)
23779 {
23780 BSLS_ASSERT_SAFE(d_variant_p);
23781 }
23782
23783 public:
23784 // ACCESSORS
23785
23786 /// Move-assign to the active alternative of `*d_variant_p` from the
23787 /// specified `value` (i.e. the alternative that is being visited). The
23788 /// behavior is undefined unless (template parameter) `t_INDEX` is the
23789 /// index of the active alternative of `*d_variant_p` (or, in C++03, the
23790 /// index of an alternative that has the same type as the active
23791 /// alternative).
23792 template <size_t t_INDEX, class t_TYPE>
23793 void operator()(bsl::in_place_index_t<t_INDEX>, t_TYPE& value) const
23794 {
23795#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
23796 bsl::get<t_INDEX>(*d_variant_p) = MoveUtil::move(value);
23797#else
23798 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
23799 ImpUtil::unsafeGet<t_TYPE>(*d_variant_p) = MoveUtil::move(value);
23800#endif // BSL_VARIANT_FULL_IMPLEMENTATION
23801 }
23802};
23803
23804 // ================================
23805 // struct Variant_DestructorVisitor
23806 // ================================
23807
23808/// This component-private struct is a visitor that destroys the active
23809/// alternative of the visited `variant` object.
23810struct Variant_DestructorVisitor {
23811
23812 public:
23813 // ACCESSORS
23814
23815 /// Destroy the specified `object`, which is the alternative that is
23816 /// being visited.
23817 template <class t_TYPE>
23818 void operator()(t_TYPE& object) const
23819 {
23820 bslma::DestructionUtil::destroy(&object);
23821 }
23822};
23823
23824 // ==============================
23825 // struct Variant_##NAME##Visitor
23826 // ==============================
23827
23828#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
23829#define BSLSTL_VARIANT_RELOP_VISITOR_DEFINITON(NAME, OP) \
23830 template <class t_VARIANT> \
23831 struct Variant_##NAME##Visitor { \
23832 /* When using this visitor, construct the visitor using the left */ \
23833 /* operand, and call visitation on the right operand. */ \
23834 explicit Variant_##NAME##Visitor(const t_VARIANT *variant) \
23835 : d_variant_p(variant) \
23836 { \
23837 BSLS_ASSERT_SAFE(d_variant_p); \
23838 } \
23839 \
23840 private: \
23841 const t_VARIANT *d_variant_p; \
23842 \
23843 public: \
23844 template <size_t t_INDEX, class t_TYPE> \
23845 bool operator()(bsl::in_place_index_t<t_INDEX>, \
23846 const t_TYPE& value) const \
23847 { \
23848 return (bsl::get<t_INDEX>(*d_variant_p) OP value); \
23849 } \
23850 }; \
23851 \
23852 template <class t_VARIANT> \
23853 bool Variant_ImpUtil::NAME(const t_VARIANT& lhs, const t_VARIANT& rhs) \
23854 { \
23855 BSLS_ASSERT(lhs.index() == rhs.index() && \
23856 !lhs.valueless_by_exception()); \
23857 \
23858 Variant_##NAME##Visitor<t_VARIANT> NAME##Visitor( \
23859 BSLS_UTIL_ADDRESSOF(lhs)); \
23860 return BSLSTL_VARIANT_VISITID(bool, NAME##Visitor, rhs); \
23861 }
23862#else
23863#define BSLSTL_VARIANT_RELOP_VISITOR_DEFINITON(NAME, OP) \
23864 template <class t_VARIANT> \
23865 struct Variant_##NAME##Visitor { \
23866 Variant_##NAME##Visitor(const t_VARIANT *variant) \
23867 : d_variant_p(variant) \
23868 { \
23869 BSLS_ASSERT_SAFE(d_variant_p); \
23870 } \
23871 \
23872 private: \
23873 const t_VARIANT *d_variant_p; \
23874 \
23875 public: \
23876 template <size_t t_INDEX, class t_TYPE> \
23877 bool operator()(bsl::in_place_index_t<t_INDEX>, \
23878 t_TYPE& value) const \
23879 { \
23880 /* When invoking this visitor in C++03, 't_INDEX' may not be */ \
23881 /* the index of the active alternative, but it will be an */ \
23882 /* index of an alternative of same type. However, because */ \
23883 /* 't_TYPE' is deduced, it may have incorrect */ \
23884 /* cv-qualifications. 't_ALT_TYPE' will give the correct */ \
23885 /* cv-qualification. */ \
23886 typedef \
23887 typename bsl::variant_alternative<t_INDEX, t_VARIANT>::type \
23888 Alt_Type; \
23889 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil; \
23890 return (ImpUtil::unsafeGet<Alt_Type>(*d_variant_p) OP value); \
23891 } \
23892 }; \
23893 \
23894 template <class t_VARIANT> \
23895 bool Variant_ImpUtil::NAME(const t_VARIANT& lhs, const t_VARIANT& rhs) \
23896 { \
23897 BSLS_ASSERT(lhs.index() == rhs.index() && \
23898 !lhs.valueless_by_exception()); \
23899 \
23900 Variant_##NAME##Visitor<t_VARIANT> NAME##Visitor( \
23901 BSLS_UTIL_ADDRESSOF(lhs)); \
23902 return BSLSTL_VARIANT_VISITID(bool, NAME##Visitor, rhs); \
23903 }
23904#endif // BSL_VARIANT_FULL_IMPLEMENTATION
23905 // This macro is used to define the 'Variant_ImpUtil::*Impl' methods.
23906
23913
23914 // =========================
23915 // class Variant_SwapVisitor
23916 // =========================
23917
23918/// This component-private class is a visitor that is used to implement
23919/// `bsl::variant::swap`.
23920///
23921/// See @ref bslstl_variant_cpp03
23922template <class t_VARIANT>
23923class Variant_SwapVisitor {
23924
23925 private:
23926 // DATA
23927 t_VARIANT *d_variant_p;
23928
23929 public:
23930 // CREATORS
23931
23932 /// Create a `Variant_SwapVisitor` object that, when invoked, will swap
23933 /// the visited alternative with the active alternative of the specified
23934 /// `variant`.
23935 explicit Variant_SwapVisitor(t_VARIANT *variant)
23936 : d_variant_p(variant)
23937 {
23938 BSLS_ASSERT_SAFE(d_variant_p);
23939 }
23940
23941 // ACCESSORS
23942
23943 /// Swap the alternative having index (template parameter) `t_INDEX` in
23944 /// `*d_variant_p` with the specified `value` (i.e. the alternative that
23945 /// is being visited). The behavior is undefined unless `t_INDEX` is the
23946 /// index of the active alternative of `*d_variant_p` (or, in C++03, the
23947 /// index of an alternative that has the same type as the active
23948 /// alternative).
23949 template <size_t t_INDEX, class t_TYPE>
23950 void operator()(bsl::in_place_index_t<t_INDEX>, t_TYPE& value) const
23951 {
23952#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
23953 BloombergLP::bslalg::SwapUtil::swap(
23954 BSLS_UTIL_ADDRESSOF(value),
23955 BSLS_UTIL_ADDRESSOF(bsl::get<t_INDEX>(*d_variant_p)));
23956#else
23957 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
23958 // When invoking this visitor in C++03, 't_INDEX' may not be the
23959 // index of the active alternative, but it will be an index of an
23960 // alternative of same type. Swap can not be invoked on a constant
23961 // variant, so the cv qualifications will match.
23962 BloombergLP::bslalg::SwapUtil::swap(
23963 BSLS_UTIL_ADDRESSOF(value),
23964 BSLS_UTIL_ADDRESSOF((ImpUtil::unsafeGet<t_TYPE>(*d_variant_p))));
23965#endif // BSL_VARIANT_FULL_IMPLEMENTATION
23966 }
23967};
23968
23969 // =========================
23970 // class Variant_HashVisitor
23971 // =========================
23972
23973/// This component-private class is a visitor that is used to implement
23974/// `hashAppend` for `bsl::variant`.
23975///
23976/// See @ref bslstl_variant_cpp03
23977template <class t_HASHALG>
23978class Variant_HashVisitor {
23979
23980 private:
23981 // DATA
23982 t_HASHALG& d_hashAlg;
23983
23984 public:
23985 // CREATORS
23986
23987 /// Create a `Variant_HashVisitor` object that, when invoked, appends to
23988 /// the specified `hashAlg`.
23989 explicit Variant_HashVisitor(t_HASHALG& hashAlg)
23990 : d_hashAlg(hashAlg)
23991 {
23992 }
23993
23994 // ACCESSORS
23995
23996 /// Append the specified `value` (i.e., the alternative that is being
23997 /// visited) to `d_hashAlg`.
23998 template <class t_TYPE>
23999 void operator()(t_TYPE& value) const
24000 {
24001 using BloombergLP::bslh::hashAppend;
24002 hashAppend(d_hashAlg, value);
24003 }
24004};
24005
24006/// This component-private struct keeps track of the allocator for a
24007/// `bsl::variant` object. The primary template is used when the `variant`
24008/// is not allocator-aware (because it has no allocator-aware alternatives).
24009template <bool t_AA>
24010struct Variant_AllocatorBase {
24011
24012 // ACCESSORS
24013
24014 /// Return a null pointer. Note that this method has the same return
24015 /// type as the allocator-aware version so that the remainder of the
24016 /// implementation of `bsl::variant` is abstracted with respect to
24017 /// whether or not the specialization is allocator-aware; this is why
24018 /// both methods return `bslma::Allocator*` instead of
24019 /// `bsl::allocator<char>`. The returned pointer will be ignored (and
24020 /// not dereferenced) when passed to
24021 /// `bslma::ConstructionUtil::construct`.
24022 BloombergLP::bslma::Allocator *mechanism() const
24023 {
24024 return NULL;
24025 }
24026};
24027
24028/// This specialization is used when the `variant` is allocator-aware.
24029template <>
24030struct Variant_AllocatorBase<true> {
24031
24032 // TYPES
24033 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
24034 typedef bsl::allocator<char> allocator_type;
24035
24036 // PUBLIC DATA
24037 allocator_type d_allocator;
24038
24039 // CREATORS
24040
24041 /// Create a `Variant_AllocatorBase` object that holds the currently
24042 /// installed default allocator.
24043 Variant_AllocatorBase() {}
24044
24045 /// Create a `Variant_AllocatorBase` object that holds a copy of the
24046 /// allocator held by the specified `original`.
24047 Variant_AllocatorBase(const Variant_AllocatorBase& original)
24048 : d_allocator(original.d_allocator)
24049 {
24050 }
24051
24052 /// Create a `Variant_AllocatorBase` object that holds a copy of the
24053 /// specified `allocator`.
24054 Variant_AllocatorBase(allocator_type allocator)
24055 : d_allocator(allocator)
24056 {
24057 }
24058
24059 // ACCESSORS
24060
24061 /// Return the mechanism of the stored allocator.
24062 BloombergLP::bslma::Allocator *mechanism() const
24063 {
24064 return d_allocator.mechanism();
24065 }
24066};
24067
24068 // ===================
24069 // struct variant_base
24070 // ===================
24071
24072#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
24073// {{{ BEGIN GENERATED CODE
24074// Command line: sim_cpp11_features.pl bslstl_variant.h
24075#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
24076#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
24077#endif
24078#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_J
24079#define BSLSTL_VARIANT_VARIADIC_LIMIT_J BSLSTL_VARIANT_VARIADIC_LIMIT
24080#endif
24081template <class t_HEAD
24082#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 0
24083 , class t_TAIL_0 = BSLS_COMPILERFEATURES_NILT
24084#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 0
24085
24086#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 1
24087 , class t_TAIL_1 = BSLS_COMPILERFEATURES_NILT
24088#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 1
24089
24090#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 2
24091 , class t_TAIL_2 = BSLS_COMPILERFEATURES_NILT
24092#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 2
24093
24094#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 3
24095 , class t_TAIL_3 = BSLS_COMPILERFEATURES_NILT
24096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 3
24097
24098#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 4
24099 , class t_TAIL_4 = BSLS_COMPILERFEATURES_NILT
24100#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 4
24101
24102#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 5
24103 , class t_TAIL_5 = BSLS_COMPILERFEATURES_NILT
24104#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 5
24105
24106#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 6
24107 , class t_TAIL_6 = BSLS_COMPILERFEATURES_NILT
24108#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 6
24109
24110#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 7
24111 , class t_TAIL_7 = BSLS_COMPILERFEATURES_NILT
24112#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 7
24113
24114#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 8
24115 , class t_TAIL_8 = BSLS_COMPILERFEATURES_NILT
24116#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 8
24117
24118#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 9
24119 , class t_TAIL_9 = BSLS_COMPILERFEATURES_NILT
24120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 9
24121
24122#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 10
24123 , class t_TAIL_10 = BSLS_COMPILERFEATURES_NILT
24124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 10
24125
24126#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 11
24127 , class t_TAIL_11 = BSLS_COMPILERFEATURES_NILT
24128#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 11
24129
24130#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 12
24131 , class t_TAIL_12 = BSLS_COMPILERFEATURES_NILT
24132#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 12
24133
24134#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 13
24135 , class t_TAIL_13 = BSLS_COMPILERFEATURES_NILT
24136#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 13
24137
24138#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 14
24139 , class t_TAIL_14 = BSLS_COMPILERFEATURES_NILT
24140#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 14
24141
24142#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 15
24143 , class t_TAIL_15 = BSLS_COMPILERFEATURES_NILT
24144#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 15
24145
24146#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 16
24147 , class t_TAIL_16 = BSLS_COMPILERFEATURES_NILT
24148#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 16
24149
24150#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 17
24151 , class t_TAIL_17 = BSLS_COMPILERFEATURES_NILT
24152#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 17
24153 , class = BSLS_COMPILERFEATURES_NILT>
24154struct Variant_Base;
24155
24156#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 0
24157template <class t_HEAD>
24158struct Variant_Base<t_HEAD>
24159: public BloombergLP::bslstl::Variant_AllocatorBase<
24160 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD>::value> {
24161
24162 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
24163 typedef BloombergLP::bslstl::Variant_AllocatorBase<
24164 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD>::value>
24165 AllocBase;
24166 typedef BloombergLP::bslstl::Variant_Union<t_HEAD>
24167 Variant_Union;
24168 typedef bsl::variant<t_HEAD> Variant;
24169
24170 struct NoAlloc {
24171 };
24172
24173 typedef typename bsl::conditional<
24174 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD>::value,
24176 NoAlloc>::type allocator_type;
24177
24178
24179 size_t d_type;
24180
24181 Variant_Union d_union;
24182
24184 Variant_Base,
24185 BloombergLP::bslma::UsesBslmaAllocator,
24186 (BloombergLP::bslstl::
24187 Variant_UsesBslmaAllocatorAny<t_HEAD>::value));
24189 Variant_Base,
24190 BloombergLP::bslmf::UsesAllocatorArgT,
24191 (BloombergLP::bslstl::
24192 Variant_UsesBslmaAllocatorAny<t_HEAD>::value));
24194 Variant_Base,
24195 BloombergLP::bslmf::IsBitwiseMoveable,
24196 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD>::value));
24197
24198#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
24199 Variant_Base();
24200
24201 Variant_Base(const Variant_Base& original);
24202
24203 Variant_Base(Variant_Base&& original);
24204
24205#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
24206 Variant_Base(Variant_ConstructFromStdTag, size_t index);
24207#endif
24208
24209 template <size_t t_INDEX>
24210 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
24211
24212
24213 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
24214
24215 Variant_Base(bsl::allocator_arg_t,
24216 allocator_type allocator,
24217 const Variant& original);
24218 Variant_Base(bsl::allocator_arg_t,
24219 allocator_type allocator,
24220 Variant&& original);
24221
24222#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
24223 Variant_Base(bsl::allocator_arg_t,
24224 allocator_type allocator,
24225 Variant_ConstructFromStdTag,
24226 size_t index);
24227#endif
24228
24229 template <size_t t_INDEX>
24230 explicit Variant_Base(bsl::allocator_arg_t,
24231 allocator_type allocator,
24233
24234#else
24235
24236 Variant_Base();
24237
24238 Variant_Base(const Variant& original);
24239
24240 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
24241
24242 template <size_t t_INDEX>
24243 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
24244
24245 template <size_t t_INDEX, class t_ARG_01>
24246 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24247 const t_ARG_01& arg_01);
24248
24249 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
24250 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24251 const t_ARG_01& arg_01,
24252 const t_ARG_02& arg_02);
24253
24254 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
24255 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24256 const t_ARG_01& arg_01,
24257 const t_ARG_02& arg_02,
24258 const t_ARG_03& arg_03);
24259
24260 template <size_t t_INDEX,
24261 class t_ARG_01,
24262 class t_ARG_02,
24263 class t_ARG_03,
24264 class t_ARG_04>
24265 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24266 const t_ARG_01& arg_01,
24267 const t_ARG_02& arg_02,
24268 const t_ARG_03& arg_03,
24269 const t_ARG_04& arg_04);
24270
24271 template <size_t t_INDEX,
24272 class t_ARG_01,
24273 class t_ARG_02,
24274 class t_ARG_03,
24275 class t_ARG_04,
24276 class t_ARG_05>
24277 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24278 const t_ARG_01& arg_01,
24279 const t_ARG_02& arg_02,
24280 const t_ARG_03& arg_03,
24281 const t_ARG_04& arg_04,
24282 const t_ARG_05& arg_05);
24283
24284 template <size_t t_INDEX,
24285 class t_ARG_01,
24286 class t_ARG_02,
24287 class t_ARG_03,
24288 class t_ARG_04,
24289 class t_ARG_05,
24290 class t_ARG_06>
24291 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24292 const t_ARG_01& arg_01,
24293 const t_ARG_02& arg_02,
24294 const t_ARG_03& arg_03,
24295 const t_ARG_04& arg_04,
24296 const t_ARG_05& arg_05,
24297 const t_ARG_06& arg_06);
24298
24299 template <size_t t_INDEX,
24300 class t_ARG_01,
24301 class t_ARG_02,
24302 class t_ARG_03,
24303 class t_ARG_04,
24304 class t_ARG_05,
24305 class t_ARG_06,
24306 class t_ARG_07>
24307 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24308 const t_ARG_01& arg_01,
24309 const t_ARG_02& arg_02,
24310 const t_ARG_03& arg_03,
24311 const t_ARG_04& arg_04,
24312 const t_ARG_05& arg_05,
24313 const t_ARG_06& arg_06,
24314 const t_ARG_07& arg_07);
24315
24316 template <size_t t_INDEX,
24317 class t_ARG_01,
24318 class t_ARG_02,
24319 class t_ARG_03,
24320 class t_ARG_04,
24321 class t_ARG_05,
24322 class t_ARG_06,
24323 class t_ARG_07,
24324 class t_ARG_08>
24325 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24326 const t_ARG_01& arg_01,
24327 const t_ARG_02& arg_02,
24328 const t_ARG_03& arg_03,
24329 const t_ARG_04& arg_04,
24330 const t_ARG_05& arg_05,
24331 const t_ARG_06& arg_06,
24332 const t_ARG_07& arg_07,
24333 const t_ARG_08& arg_08);
24334
24335 template <size_t t_INDEX,
24336 class t_ARG_01,
24337 class t_ARG_02,
24338 class t_ARG_03,
24339 class t_ARG_04,
24340 class t_ARG_05,
24341 class t_ARG_06,
24342 class t_ARG_07,
24343 class t_ARG_08,
24344 class t_ARG_09>
24345 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24346 const t_ARG_01& arg_01,
24347 const t_ARG_02& arg_02,
24348 const t_ARG_03& arg_03,
24349 const t_ARG_04& arg_04,
24350 const t_ARG_05& arg_05,
24351 const t_ARG_06& arg_06,
24352 const t_ARG_07& arg_07,
24353 const t_ARG_08& arg_08,
24354 const t_ARG_09& arg_09);
24355
24356 template <size_t t_INDEX,
24357 class t_ARG_01,
24358 class t_ARG_02,
24359 class t_ARG_03,
24360 class t_ARG_04,
24361 class t_ARG_05,
24362 class t_ARG_06,
24363 class t_ARG_07,
24364 class t_ARG_08,
24365 class t_ARG_09,
24366 class t_ARG_10>
24367 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24368 const t_ARG_01& arg_01,
24369 const t_ARG_02& arg_02,
24370 const t_ARG_03& arg_03,
24371 const t_ARG_04& arg_04,
24372 const t_ARG_05& arg_05,
24373 const t_ARG_06& arg_06,
24374 const t_ARG_07& arg_07,
24375 const t_ARG_08& arg_08,
24376 const t_ARG_09& arg_09,
24377 const t_ARG_10& arg_10);
24378
24379 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
24380
24381 Variant_Base(bsl::allocator_arg_t,
24382 allocator_type allocator,
24383 const Variant& original);
24384 Variant_Base(bsl::allocator_arg_t,
24385 allocator_type allocator,
24386 BloombergLP::bslmf::MovableRef<Variant> original);
24387
24388 template <size_t t_INDEX>
24389 explicit Variant_Base(bsl::allocator_arg_t,
24390 allocator_type allocator,
24392
24393 template <size_t t_INDEX, class t_ARG_01>
24394 explicit Variant_Base(bsl::allocator_arg_t,
24395 allocator_type allocator,
24397 const t_ARG_01& arg_01);
24398
24399 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
24400 explicit Variant_Base(bsl::allocator_arg_t,
24401 allocator_type allocator,
24403 const t_ARG_01& arg_01,
24404 const t_ARG_02& arg_02);
24405
24406 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
24407 explicit Variant_Base(bsl::allocator_arg_t,
24408 allocator_type allocator,
24410 const t_ARG_01& arg_01,
24411 const t_ARG_02& arg_02,
24412 const t_ARG_03& arg_03);
24413
24414 template <size_t t_INDEX,
24415 class t_ARG_01,
24416 class t_ARG_02,
24417 class t_ARG_03,
24418 class t_ARG_04>
24419 explicit Variant_Base(bsl::allocator_arg_t,
24420 allocator_type allocator,
24422 const t_ARG_01& arg_01,
24423 const t_ARG_02& arg_02,
24424 const t_ARG_03& arg_03,
24425 const t_ARG_04& arg_04);
24426
24427 template <size_t t_INDEX,
24428 class t_ARG_01,
24429 class t_ARG_02,
24430 class t_ARG_03,
24431 class t_ARG_04,
24432 class t_ARG_05>
24433 explicit Variant_Base(bsl::allocator_arg_t,
24434 allocator_type allocator,
24436 const t_ARG_01& arg_01,
24437 const t_ARG_02& arg_02,
24438 const t_ARG_03& arg_03,
24439 const t_ARG_04& arg_04,
24440 const t_ARG_05& arg_05);
24441
24442 template <size_t t_INDEX,
24443 class t_ARG_01,
24444 class t_ARG_02,
24445 class t_ARG_03,
24446 class t_ARG_04,
24447 class t_ARG_05,
24448 class t_ARG_06>
24449 explicit Variant_Base(bsl::allocator_arg_t,
24450 allocator_type allocator,
24452 const t_ARG_01& arg_01,
24453 const t_ARG_02& arg_02,
24454 const t_ARG_03& arg_03,
24455 const t_ARG_04& arg_04,
24456 const t_ARG_05& arg_05,
24457 const t_ARG_06& arg_06);
24458
24459 template <size_t t_INDEX,
24460 class t_ARG_01,
24461 class t_ARG_02,
24462 class t_ARG_03,
24463 class t_ARG_04,
24464 class t_ARG_05,
24465 class t_ARG_06,
24466 class t_ARG_07>
24467 explicit Variant_Base(bsl::allocator_arg_t,
24468 allocator_type allocator,
24470 const t_ARG_01& arg_01,
24471 const t_ARG_02& arg_02,
24472 const t_ARG_03& arg_03,
24473 const t_ARG_04& arg_04,
24474 const t_ARG_05& arg_05,
24475 const t_ARG_06& arg_06,
24476 const t_ARG_07& arg_07);
24477
24478 template <size_t t_INDEX,
24479 class t_ARG_01,
24480 class t_ARG_02,
24481 class t_ARG_03,
24482 class t_ARG_04,
24483 class t_ARG_05,
24484 class t_ARG_06,
24485 class t_ARG_07,
24486 class t_ARG_08>
24487 explicit Variant_Base(bsl::allocator_arg_t,
24488 allocator_type allocator,
24490 const t_ARG_01& arg_01,
24491 const t_ARG_02& arg_02,
24492 const t_ARG_03& arg_03,
24493 const t_ARG_04& arg_04,
24494 const t_ARG_05& arg_05,
24495 const t_ARG_06& arg_06,
24496 const t_ARG_07& arg_07,
24497 const t_ARG_08& arg_08);
24498
24499 template <size_t t_INDEX,
24500 class t_ARG_01,
24501 class t_ARG_02,
24502 class t_ARG_03,
24503 class t_ARG_04,
24504 class t_ARG_05,
24505 class t_ARG_06,
24506 class t_ARG_07,
24507 class t_ARG_08,
24508 class t_ARG_09>
24509 explicit Variant_Base(bsl::allocator_arg_t,
24510 allocator_type allocator,
24512 const t_ARG_01& arg_01,
24513 const t_ARG_02& arg_02,
24514 const t_ARG_03& arg_03,
24515 const t_ARG_04& arg_04,
24516 const t_ARG_05& arg_05,
24517 const t_ARG_06& arg_06,
24518 const t_ARG_07& arg_07,
24519 const t_ARG_08& arg_08,
24520 const t_ARG_09& arg_09);
24521
24522 template <size_t t_INDEX,
24523 class t_ARG_01,
24524 class t_ARG_02,
24525 class t_ARG_03,
24526 class t_ARG_04,
24527 class t_ARG_05,
24528 class t_ARG_06,
24529 class t_ARG_07,
24530 class t_ARG_08,
24531 class t_ARG_09,
24532 class t_ARG_10>
24533 explicit Variant_Base(bsl::allocator_arg_t,
24534 allocator_type allocator,
24536 const t_ARG_01& arg_01,
24537 const t_ARG_02& arg_02,
24538 const t_ARG_03& arg_03,
24539 const t_ARG_04& arg_04,
24540 const t_ARG_05& arg_05,
24541 const t_ARG_06& arg_06,
24542 const t_ARG_07& arg_07,
24543 const t_ARG_08& arg_08,
24544 const t_ARG_09& arg_09,
24545 const t_ARG_10& arg_10);
24546
24547#endif
24548
24549 ~Variant_Base();
24550
24551#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
24552 template <size_t t_INDEX>
24553 void baseEmplace();
24554#else
24555 template <size_t t_INDEX>
24556 void baseEmplace();
24557 template <size_t t_INDEX, class t_ARG_01>
24558 void baseEmplace(const t_ARG_01& arg_01);
24559
24560 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
24561 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
24562
24563 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
24564 void baseEmplace(const t_ARG_01& arg_01,
24565 const t_ARG_02& arg_02,
24566 const t_ARG_03& arg_03);
24567
24568 template <size_t t_INDEX,
24569 class t_ARG_01,
24570 class t_ARG_02,
24571 class t_ARG_03,
24572 class t_ARG_04>
24573 void baseEmplace(const t_ARG_01& arg_01,
24574 const t_ARG_02& arg_02,
24575 const t_ARG_03& arg_03,
24576 const t_ARG_04& arg_04);
24577
24578 template <size_t t_INDEX,
24579 class t_ARG_01,
24580 class t_ARG_02,
24581 class t_ARG_03,
24582 class t_ARG_04,
24583 class t_ARG_05>
24584 void baseEmplace(const t_ARG_01& arg_01,
24585 const t_ARG_02& arg_02,
24586 const t_ARG_03& arg_03,
24587 const t_ARG_04& arg_04,
24588 const t_ARG_05& arg_05);
24589
24590 template <size_t t_INDEX,
24591 class t_ARG_01,
24592 class t_ARG_02,
24593 class t_ARG_03,
24594 class t_ARG_04,
24595 class t_ARG_05,
24596 class t_ARG_06>
24597 void baseEmplace(const t_ARG_01& arg_01,
24598 const t_ARG_02& arg_02,
24599 const t_ARG_03& arg_03,
24600 const t_ARG_04& arg_04,
24601 const t_ARG_05& arg_05,
24602 const t_ARG_06& arg_06);
24603
24604 template <size_t t_INDEX,
24605 class t_ARG_01,
24606 class t_ARG_02,
24607 class t_ARG_03,
24608 class t_ARG_04,
24609 class t_ARG_05,
24610 class t_ARG_06,
24611 class t_ARG_07>
24612 void baseEmplace(const t_ARG_01& arg_01,
24613 const t_ARG_02& arg_02,
24614 const t_ARG_03& arg_03,
24615 const t_ARG_04& arg_04,
24616 const t_ARG_05& arg_05,
24617 const t_ARG_06& arg_06,
24618 const t_ARG_07& arg_07);
24619
24620 template <size_t t_INDEX,
24621 class t_ARG_01,
24622 class t_ARG_02,
24623 class t_ARG_03,
24624 class t_ARG_04,
24625 class t_ARG_05,
24626 class t_ARG_06,
24627 class t_ARG_07,
24628 class t_ARG_08>
24629 void baseEmplace(const t_ARG_01& arg_01,
24630 const t_ARG_02& arg_02,
24631 const t_ARG_03& arg_03,
24632 const t_ARG_04& arg_04,
24633 const t_ARG_05& arg_05,
24634 const t_ARG_06& arg_06,
24635 const t_ARG_07& arg_07,
24636 const t_ARG_08& arg_08);
24637
24638 template <size_t t_INDEX,
24639 class t_ARG_01,
24640 class t_ARG_02,
24641 class t_ARG_03,
24642 class t_ARG_04,
24643 class t_ARG_05,
24644 class t_ARG_06,
24645 class t_ARG_07,
24646 class t_ARG_08,
24647 class t_ARG_09>
24648 void baseEmplace(const t_ARG_01& arg_01,
24649 const t_ARG_02& arg_02,
24650 const t_ARG_03& arg_03,
24651 const t_ARG_04& arg_04,
24652 const t_ARG_05& arg_05,
24653 const t_ARG_06& arg_06,
24654 const t_ARG_07& arg_07,
24655 const t_ARG_08& arg_08,
24656 const t_ARG_09& arg_09);
24657
24658 template <size_t t_INDEX,
24659 class t_ARG_01,
24660 class t_ARG_02,
24661 class t_ARG_03,
24662 class t_ARG_04,
24663 class t_ARG_05,
24664 class t_ARG_06,
24665 class t_ARG_07,
24666 class t_ARG_08,
24667 class t_ARG_09,
24668 class t_ARG_10>
24669 void baseEmplace(const t_ARG_01& arg_01,
24670 const t_ARG_02& arg_02,
24671 const t_ARG_03& arg_03,
24672 const t_ARG_04& arg_04,
24673 const t_ARG_05& arg_05,
24674 const t_ARG_06& arg_06,
24675 const t_ARG_07& arg_07,
24676 const t_ARG_08& arg_08,
24677 const t_ARG_09& arg_09,
24678 const t_ARG_10& arg_10);
24679#endif
24680
24681 Variant_Base& operator=(const Variant_Base& rhs);
24682
24683 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
24684
24686};
24687#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 0
24688
24689#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 1
24690template <class t_HEAD, class t_TAIL_01>
24691struct Variant_Base<t_HEAD, t_TAIL_01>
24692: public BloombergLP::bslstl::Variant_AllocatorBase<
24693 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
24694 t_TAIL_01>::value> {
24695
24696 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
24697 typedef BloombergLP::bslstl::Variant_AllocatorBase<
24698 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
24699 t_TAIL_01>::value>
24700 AllocBase;
24701 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01>
24702 Variant_Union;
24703 typedef bsl::variant<t_HEAD, t_TAIL_01> Variant;
24704
24705 struct NoAlloc {
24706 };
24707
24708 typedef typename bsl::conditional<
24709 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
24710 t_TAIL_01>::value,
24712 NoAlloc>::type allocator_type;
24713
24714
24715 size_t d_type;
24716
24717 Variant_Union d_union;
24718
24720 Variant_Base,
24721 BloombergLP::bslma::UsesBslmaAllocator,
24722 (BloombergLP::bslstl::
24723 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01>::value));
24725 Variant_Base,
24726 BloombergLP::bslmf::UsesAllocatorArgT,
24727 (BloombergLP::bslstl::
24728 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01>::value));
24730 Variant_Base,
24731 BloombergLP::bslmf::IsBitwiseMoveable,
24732 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
24733 t_TAIL_01>::value));
24734
24735#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
24736 Variant_Base();
24737
24738 Variant_Base(const Variant_Base& original);
24739
24740 Variant_Base(Variant_Base&& original);
24741
24742#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
24743 Variant_Base(Variant_ConstructFromStdTag, size_t index);
24744#endif
24745
24746 template <size_t t_INDEX, class t_ARGS_01>
24747 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24748 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01);
24749
24750
24751 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
24752
24753 Variant_Base(bsl::allocator_arg_t,
24754 allocator_type allocator,
24755 const Variant& original);
24756 Variant_Base(bsl::allocator_arg_t,
24757 allocator_type allocator,
24758 Variant&& original);
24759
24760#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
24761 Variant_Base(bsl::allocator_arg_t,
24762 allocator_type allocator,
24763 Variant_ConstructFromStdTag,
24764 size_t index);
24765#endif
24766
24767 template <size_t t_INDEX, class t_ARGS_01>
24768 explicit Variant_Base(bsl::allocator_arg_t,
24769 allocator_type allocator,
24771 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01);
24772
24773#else
24774
24775 Variant_Base();
24776
24777 Variant_Base(const Variant& original);
24778
24779 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
24780
24781 template <size_t t_INDEX>
24782 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
24783
24784 template <size_t t_INDEX, class t_ARG_01>
24785 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24786 const t_ARG_01& arg_01);
24787
24788 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
24789 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24790 const t_ARG_01& arg_01,
24791 const t_ARG_02& arg_02);
24792
24793 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
24794 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24795 const t_ARG_01& arg_01,
24796 const t_ARG_02& arg_02,
24797 const t_ARG_03& arg_03);
24798
24799 template <size_t t_INDEX,
24800 class t_ARG_01,
24801 class t_ARG_02,
24802 class t_ARG_03,
24803 class t_ARG_04>
24804 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24805 const t_ARG_01& arg_01,
24806 const t_ARG_02& arg_02,
24807 const t_ARG_03& arg_03,
24808 const t_ARG_04& arg_04);
24809
24810 template <size_t t_INDEX,
24811 class t_ARG_01,
24812 class t_ARG_02,
24813 class t_ARG_03,
24814 class t_ARG_04,
24815 class t_ARG_05>
24816 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24817 const t_ARG_01& arg_01,
24818 const t_ARG_02& arg_02,
24819 const t_ARG_03& arg_03,
24820 const t_ARG_04& arg_04,
24821 const t_ARG_05& arg_05);
24822
24823 template <size_t t_INDEX,
24824 class t_ARG_01,
24825 class t_ARG_02,
24826 class t_ARG_03,
24827 class t_ARG_04,
24828 class t_ARG_05,
24829 class t_ARG_06>
24830 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24831 const t_ARG_01& arg_01,
24832 const t_ARG_02& arg_02,
24833 const t_ARG_03& arg_03,
24834 const t_ARG_04& arg_04,
24835 const t_ARG_05& arg_05,
24836 const t_ARG_06& arg_06);
24837
24838 template <size_t t_INDEX,
24839 class t_ARG_01,
24840 class t_ARG_02,
24841 class t_ARG_03,
24842 class t_ARG_04,
24843 class t_ARG_05,
24844 class t_ARG_06,
24845 class t_ARG_07>
24846 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24847 const t_ARG_01& arg_01,
24848 const t_ARG_02& arg_02,
24849 const t_ARG_03& arg_03,
24850 const t_ARG_04& arg_04,
24851 const t_ARG_05& arg_05,
24852 const t_ARG_06& arg_06,
24853 const t_ARG_07& arg_07);
24854
24855 template <size_t t_INDEX,
24856 class t_ARG_01,
24857 class t_ARG_02,
24858 class t_ARG_03,
24859 class t_ARG_04,
24860 class t_ARG_05,
24861 class t_ARG_06,
24862 class t_ARG_07,
24863 class t_ARG_08>
24864 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24865 const t_ARG_01& arg_01,
24866 const t_ARG_02& arg_02,
24867 const t_ARG_03& arg_03,
24868 const t_ARG_04& arg_04,
24869 const t_ARG_05& arg_05,
24870 const t_ARG_06& arg_06,
24871 const t_ARG_07& arg_07,
24872 const t_ARG_08& arg_08);
24873
24874 template <size_t t_INDEX,
24875 class t_ARG_01,
24876 class t_ARG_02,
24877 class t_ARG_03,
24878 class t_ARG_04,
24879 class t_ARG_05,
24880 class t_ARG_06,
24881 class t_ARG_07,
24882 class t_ARG_08,
24883 class t_ARG_09>
24884 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24885 const t_ARG_01& arg_01,
24886 const t_ARG_02& arg_02,
24887 const t_ARG_03& arg_03,
24888 const t_ARG_04& arg_04,
24889 const t_ARG_05& arg_05,
24890 const t_ARG_06& arg_06,
24891 const t_ARG_07& arg_07,
24892 const t_ARG_08& arg_08,
24893 const t_ARG_09& arg_09);
24894
24895 template <size_t t_INDEX,
24896 class t_ARG_01,
24897 class t_ARG_02,
24898 class t_ARG_03,
24899 class t_ARG_04,
24900 class t_ARG_05,
24901 class t_ARG_06,
24902 class t_ARG_07,
24903 class t_ARG_08,
24904 class t_ARG_09,
24905 class t_ARG_10>
24906 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
24907 const t_ARG_01& arg_01,
24908 const t_ARG_02& arg_02,
24909 const t_ARG_03& arg_03,
24910 const t_ARG_04& arg_04,
24911 const t_ARG_05& arg_05,
24912 const t_ARG_06& arg_06,
24913 const t_ARG_07& arg_07,
24914 const t_ARG_08& arg_08,
24915 const t_ARG_09& arg_09,
24916 const t_ARG_10& arg_10);
24917
24918 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
24919
24920 Variant_Base(bsl::allocator_arg_t,
24921 allocator_type allocator,
24922 const Variant& original);
24923 Variant_Base(bsl::allocator_arg_t,
24924 allocator_type allocator,
24925 BloombergLP::bslmf::MovableRef<Variant> original);
24926
24927 template <size_t t_INDEX>
24928 explicit Variant_Base(bsl::allocator_arg_t,
24929 allocator_type allocator,
24931
24932 template <size_t t_INDEX, class t_ARG_01>
24933 explicit Variant_Base(bsl::allocator_arg_t,
24934 allocator_type allocator,
24936 const t_ARG_01& arg_01);
24937
24938 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
24939 explicit Variant_Base(bsl::allocator_arg_t,
24940 allocator_type allocator,
24942 const t_ARG_01& arg_01,
24943 const t_ARG_02& arg_02);
24944
24945 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
24946 explicit Variant_Base(bsl::allocator_arg_t,
24947 allocator_type allocator,
24949 const t_ARG_01& arg_01,
24950 const t_ARG_02& arg_02,
24951 const t_ARG_03& arg_03);
24952
24953 template <size_t t_INDEX,
24954 class t_ARG_01,
24955 class t_ARG_02,
24956 class t_ARG_03,
24957 class t_ARG_04>
24958 explicit Variant_Base(bsl::allocator_arg_t,
24959 allocator_type allocator,
24961 const t_ARG_01& arg_01,
24962 const t_ARG_02& arg_02,
24963 const t_ARG_03& arg_03,
24964 const t_ARG_04& arg_04);
24965
24966 template <size_t t_INDEX,
24967 class t_ARG_01,
24968 class t_ARG_02,
24969 class t_ARG_03,
24970 class t_ARG_04,
24971 class t_ARG_05>
24972 explicit Variant_Base(bsl::allocator_arg_t,
24973 allocator_type allocator,
24975 const t_ARG_01& arg_01,
24976 const t_ARG_02& arg_02,
24977 const t_ARG_03& arg_03,
24978 const t_ARG_04& arg_04,
24979 const t_ARG_05& arg_05);
24980
24981 template <size_t t_INDEX,
24982 class t_ARG_01,
24983 class t_ARG_02,
24984 class t_ARG_03,
24985 class t_ARG_04,
24986 class t_ARG_05,
24987 class t_ARG_06>
24988 explicit Variant_Base(bsl::allocator_arg_t,
24989 allocator_type allocator,
24991 const t_ARG_01& arg_01,
24992 const t_ARG_02& arg_02,
24993 const t_ARG_03& arg_03,
24994 const t_ARG_04& arg_04,
24995 const t_ARG_05& arg_05,
24996 const t_ARG_06& arg_06);
24997
24998 template <size_t t_INDEX,
24999 class t_ARG_01,
25000 class t_ARG_02,
25001 class t_ARG_03,
25002 class t_ARG_04,
25003 class t_ARG_05,
25004 class t_ARG_06,
25005 class t_ARG_07>
25006 explicit Variant_Base(bsl::allocator_arg_t,
25007 allocator_type allocator,
25009 const t_ARG_01& arg_01,
25010 const t_ARG_02& arg_02,
25011 const t_ARG_03& arg_03,
25012 const t_ARG_04& arg_04,
25013 const t_ARG_05& arg_05,
25014 const t_ARG_06& arg_06,
25015 const t_ARG_07& arg_07);
25016
25017 template <size_t t_INDEX,
25018 class t_ARG_01,
25019 class t_ARG_02,
25020 class t_ARG_03,
25021 class t_ARG_04,
25022 class t_ARG_05,
25023 class t_ARG_06,
25024 class t_ARG_07,
25025 class t_ARG_08>
25026 explicit Variant_Base(bsl::allocator_arg_t,
25027 allocator_type allocator,
25029 const t_ARG_01& arg_01,
25030 const t_ARG_02& arg_02,
25031 const t_ARG_03& arg_03,
25032 const t_ARG_04& arg_04,
25033 const t_ARG_05& arg_05,
25034 const t_ARG_06& arg_06,
25035 const t_ARG_07& arg_07,
25036 const t_ARG_08& arg_08);
25037
25038 template <size_t t_INDEX,
25039 class t_ARG_01,
25040 class t_ARG_02,
25041 class t_ARG_03,
25042 class t_ARG_04,
25043 class t_ARG_05,
25044 class t_ARG_06,
25045 class t_ARG_07,
25046 class t_ARG_08,
25047 class t_ARG_09>
25048 explicit Variant_Base(bsl::allocator_arg_t,
25049 allocator_type allocator,
25051 const t_ARG_01& arg_01,
25052 const t_ARG_02& arg_02,
25053 const t_ARG_03& arg_03,
25054 const t_ARG_04& arg_04,
25055 const t_ARG_05& arg_05,
25056 const t_ARG_06& arg_06,
25057 const t_ARG_07& arg_07,
25058 const t_ARG_08& arg_08,
25059 const t_ARG_09& arg_09);
25060
25061 template <size_t t_INDEX,
25062 class t_ARG_01,
25063 class t_ARG_02,
25064 class t_ARG_03,
25065 class t_ARG_04,
25066 class t_ARG_05,
25067 class t_ARG_06,
25068 class t_ARG_07,
25069 class t_ARG_08,
25070 class t_ARG_09,
25071 class t_ARG_10>
25072 explicit Variant_Base(bsl::allocator_arg_t,
25073 allocator_type allocator,
25075 const t_ARG_01& arg_01,
25076 const t_ARG_02& arg_02,
25077 const t_ARG_03& arg_03,
25078 const t_ARG_04& arg_04,
25079 const t_ARG_05& arg_05,
25080 const t_ARG_06& arg_06,
25081 const t_ARG_07& arg_07,
25082 const t_ARG_08& arg_08,
25083 const t_ARG_09& arg_09,
25084 const t_ARG_10& arg_10);
25085
25086#endif
25087
25088 ~Variant_Base();
25089
25090#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
25091 template <size_t t_INDEX, class t_ARGS_01>
25092 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01));
25093#else
25094 template <size_t t_INDEX>
25095 void baseEmplace();
25096 template <size_t t_INDEX, class t_ARG_01>
25097 void baseEmplace(const t_ARG_01& arg_01);
25098
25099 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
25100 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
25101
25102 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
25103 void baseEmplace(const t_ARG_01& arg_01,
25104 const t_ARG_02& arg_02,
25105 const t_ARG_03& arg_03);
25106
25107 template <size_t t_INDEX,
25108 class t_ARG_01,
25109 class t_ARG_02,
25110 class t_ARG_03,
25111 class t_ARG_04>
25112 void baseEmplace(const t_ARG_01& arg_01,
25113 const t_ARG_02& arg_02,
25114 const t_ARG_03& arg_03,
25115 const t_ARG_04& arg_04);
25116
25117 template <size_t t_INDEX,
25118 class t_ARG_01,
25119 class t_ARG_02,
25120 class t_ARG_03,
25121 class t_ARG_04,
25122 class t_ARG_05>
25123 void baseEmplace(const t_ARG_01& arg_01,
25124 const t_ARG_02& arg_02,
25125 const t_ARG_03& arg_03,
25126 const t_ARG_04& arg_04,
25127 const t_ARG_05& arg_05);
25128
25129 template <size_t t_INDEX,
25130 class t_ARG_01,
25131 class t_ARG_02,
25132 class t_ARG_03,
25133 class t_ARG_04,
25134 class t_ARG_05,
25135 class t_ARG_06>
25136 void baseEmplace(const t_ARG_01& arg_01,
25137 const t_ARG_02& arg_02,
25138 const t_ARG_03& arg_03,
25139 const t_ARG_04& arg_04,
25140 const t_ARG_05& arg_05,
25141 const t_ARG_06& arg_06);
25142
25143 template <size_t t_INDEX,
25144 class t_ARG_01,
25145 class t_ARG_02,
25146 class t_ARG_03,
25147 class t_ARG_04,
25148 class t_ARG_05,
25149 class t_ARG_06,
25150 class t_ARG_07>
25151 void baseEmplace(const t_ARG_01& arg_01,
25152 const t_ARG_02& arg_02,
25153 const t_ARG_03& arg_03,
25154 const t_ARG_04& arg_04,
25155 const t_ARG_05& arg_05,
25156 const t_ARG_06& arg_06,
25157 const t_ARG_07& arg_07);
25158
25159 template <size_t t_INDEX,
25160 class t_ARG_01,
25161 class t_ARG_02,
25162 class t_ARG_03,
25163 class t_ARG_04,
25164 class t_ARG_05,
25165 class t_ARG_06,
25166 class t_ARG_07,
25167 class t_ARG_08>
25168 void baseEmplace(const t_ARG_01& arg_01,
25169 const t_ARG_02& arg_02,
25170 const t_ARG_03& arg_03,
25171 const t_ARG_04& arg_04,
25172 const t_ARG_05& arg_05,
25173 const t_ARG_06& arg_06,
25174 const t_ARG_07& arg_07,
25175 const t_ARG_08& arg_08);
25176
25177 template <size_t t_INDEX,
25178 class t_ARG_01,
25179 class t_ARG_02,
25180 class t_ARG_03,
25181 class t_ARG_04,
25182 class t_ARG_05,
25183 class t_ARG_06,
25184 class t_ARG_07,
25185 class t_ARG_08,
25186 class t_ARG_09>
25187 void baseEmplace(const t_ARG_01& arg_01,
25188 const t_ARG_02& arg_02,
25189 const t_ARG_03& arg_03,
25190 const t_ARG_04& arg_04,
25191 const t_ARG_05& arg_05,
25192 const t_ARG_06& arg_06,
25193 const t_ARG_07& arg_07,
25194 const t_ARG_08& arg_08,
25195 const t_ARG_09& arg_09);
25196
25197 template <size_t t_INDEX,
25198 class t_ARG_01,
25199 class t_ARG_02,
25200 class t_ARG_03,
25201 class t_ARG_04,
25202 class t_ARG_05,
25203 class t_ARG_06,
25204 class t_ARG_07,
25205 class t_ARG_08,
25206 class t_ARG_09,
25207 class t_ARG_10>
25208 void baseEmplace(const t_ARG_01& arg_01,
25209 const t_ARG_02& arg_02,
25210 const t_ARG_03& arg_03,
25211 const t_ARG_04& arg_04,
25212 const t_ARG_05& arg_05,
25213 const t_ARG_06& arg_06,
25214 const t_ARG_07& arg_07,
25215 const t_ARG_08& arg_08,
25216 const t_ARG_09& arg_09,
25217 const t_ARG_10& arg_10);
25218#endif
25219
25220 Variant_Base& operator=(const Variant_Base& rhs);
25221
25222 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
25223
25225};
25226#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 1
25227
25228#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 2
25229template <class t_HEAD, class t_TAIL_01,
25230 class t_TAIL_02>
25231struct Variant_Base<t_HEAD, t_TAIL_01,
25232 t_TAIL_02>
25233: public BloombergLP::bslstl::Variant_AllocatorBase<
25234 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
25235 t_TAIL_01,
25236 t_TAIL_02>::value> {
25237
25238 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
25239 typedef BloombergLP::bslstl::Variant_AllocatorBase<
25240 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
25241 t_TAIL_01,
25242 t_TAIL_02>::value>
25243 AllocBase;
25244 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
25245 t_TAIL_02>
25246 Variant_Union;
25247 typedef bsl::variant<t_HEAD, t_TAIL_01,
25248 t_TAIL_02> Variant;
25249
25250 struct NoAlloc {
25251 };
25252
25253 typedef typename bsl::conditional<
25254 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
25255 t_TAIL_01,
25256 t_TAIL_02>::value,
25258 NoAlloc>::type allocator_type;
25259
25260
25261 size_t d_type;
25262
25263 Variant_Union d_union;
25264
25266 Variant_Base,
25267 BloombergLP::bslma::UsesBslmaAllocator,
25268 (BloombergLP::bslstl::
25269 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
25270 t_TAIL_02>::value));
25272 Variant_Base,
25273 BloombergLP::bslmf::UsesAllocatorArgT,
25274 (BloombergLP::bslstl::
25275 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
25276 t_TAIL_02>::value));
25278 Variant_Base,
25279 BloombergLP::bslmf::IsBitwiseMoveable,
25280 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
25281 t_TAIL_01,
25282 t_TAIL_02>::value));
25283
25284#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
25285 Variant_Base();
25286
25287 Variant_Base(const Variant_Base& original);
25288
25289 Variant_Base(Variant_Base&& original);
25290
25291#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
25292 Variant_Base(Variant_ConstructFromStdTag, size_t index);
25293#endif
25294
25295 template <size_t t_INDEX, class t_ARGS_01,
25296 class t_ARGS_02>
25297 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25298 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
25299 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02);
25300
25301
25302 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
25303
25304 Variant_Base(bsl::allocator_arg_t,
25305 allocator_type allocator,
25306 const Variant& original);
25307 Variant_Base(bsl::allocator_arg_t,
25308 allocator_type allocator,
25309 Variant&& original);
25310
25311#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
25312 Variant_Base(bsl::allocator_arg_t,
25313 allocator_type allocator,
25314 Variant_ConstructFromStdTag,
25315 size_t index);
25316#endif
25317
25318 template <size_t t_INDEX, class t_ARGS_01,
25319 class t_ARGS_02>
25320 explicit Variant_Base(bsl::allocator_arg_t,
25321 allocator_type allocator,
25323 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
25324 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02);
25325
25326#else
25327
25328 Variant_Base();
25329
25330 Variant_Base(const Variant& original);
25331
25332 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
25333
25334 template <size_t t_INDEX>
25335 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
25336
25337 template <size_t t_INDEX, class t_ARG_01>
25338 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25339 const t_ARG_01& arg_01);
25340
25341 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
25342 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25343 const t_ARG_01& arg_01,
25344 const t_ARG_02& arg_02);
25345
25346 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
25347 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25348 const t_ARG_01& arg_01,
25349 const t_ARG_02& arg_02,
25350 const t_ARG_03& arg_03);
25351
25352 template <size_t t_INDEX,
25353 class t_ARG_01,
25354 class t_ARG_02,
25355 class t_ARG_03,
25356 class t_ARG_04>
25357 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25358 const t_ARG_01& arg_01,
25359 const t_ARG_02& arg_02,
25360 const t_ARG_03& arg_03,
25361 const t_ARG_04& arg_04);
25362
25363 template <size_t t_INDEX,
25364 class t_ARG_01,
25365 class t_ARG_02,
25366 class t_ARG_03,
25367 class t_ARG_04,
25368 class t_ARG_05>
25369 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25370 const t_ARG_01& arg_01,
25371 const t_ARG_02& arg_02,
25372 const t_ARG_03& arg_03,
25373 const t_ARG_04& arg_04,
25374 const t_ARG_05& arg_05);
25375
25376 template <size_t t_INDEX,
25377 class t_ARG_01,
25378 class t_ARG_02,
25379 class t_ARG_03,
25380 class t_ARG_04,
25381 class t_ARG_05,
25382 class t_ARG_06>
25383 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25384 const t_ARG_01& arg_01,
25385 const t_ARG_02& arg_02,
25386 const t_ARG_03& arg_03,
25387 const t_ARG_04& arg_04,
25388 const t_ARG_05& arg_05,
25389 const t_ARG_06& arg_06);
25390
25391 template <size_t t_INDEX,
25392 class t_ARG_01,
25393 class t_ARG_02,
25394 class t_ARG_03,
25395 class t_ARG_04,
25396 class t_ARG_05,
25397 class t_ARG_06,
25398 class t_ARG_07>
25399 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25400 const t_ARG_01& arg_01,
25401 const t_ARG_02& arg_02,
25402 const t_ARG_03& arg_03,
25403 const t_ARG_04& arg_04,
25404 const t_ARG_05& arg_05,
25405 const t_ARG_06& arg_06,
25406 const t_ARG_07& arg_07);
25407
25408 template <size_t t_INDEX,
25409 class t_ARG_01,
25410 class t_ARG_02,
25411 class t_ARG_03,
25412 class t_ARG_04,
25413 class t_ARG_05,
25414 class t_ARG_06,
25415 class t_ARG_07,
25416 class t_ARG_08>
25417 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25418 const t_ARG_01& arg_01,
25419 const t_ARG_02& arg_02,
25420 const t_ARG_03& arg_03,
25421 const t_ARG_04& arg_04,
25422 const t_ARG_05& arg_05,
25423 const t_ARG_06& arg_06,
25424 const t_ARG_07& arg_07,
25425 const t_ARG_08& arg_08);
25426
25427 template <size_t t_INDEX,
25428 class t_ARG_01,
25429 class t_ARG_02,
25430 class t_ARG_03,
25431 class t_ARG_04,
25432 class t_ARG_05,
25433 class t_ARG_06,
25434 class t_ARG_07,
25435 class t_ARG_08,
25436 class t_ARG_09>
25437 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25438 const t_ARG_01& arg_01,
25439 const t_ARG_02& arg_02,
25440 const t_ARG_03& arg_03,
25441 const t_ARG_04& arg_04,
25442 const t_ARG_05& arg_05,
25443 const t_ARG_06& arg_06,
25444 const t_ARG_07& arg_07,
25445 const t_ARG_08& arg_08,
25446 const t_ARG_09& arg_09);
25447
25448 template <size_t t_INDEX,
25449 class t_ARG_01,
25450 class t_ARG_02,
25451 class t_ARG_03,
25452 class t_ARG_04,
25453 class t_ARG_05,
25454 class t_ARG_06,
25455 class t_ARG_07,
25456 class t_ARG_08,
25457 class t_ARG_09,
25458 class t_ARG_10>
25459 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25460 const t_ARG_01& arg_01,
25461 const t_ARG_02& arg_02,
25462 const t_ARG_03& arg_03,
25463 const t_ARG_04& arg_04,
25464 const t_ARG_05& arg_05,
25465 const t_ARG_06& arg_06,
25466 const t_ARG_07& arg_07,
25467 const t_ARG_08& arg_08,
25468 const t_ARG_09& arg_09,
25469 const t_ARG_10& arg_10);
25470
25471 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
25472
25473 Variant_Base(bsl::allocator_arg_t,
25474 allocator_type allocator,
25475 const Variant& original);
25476 Variant_Base(bsl::allocator_arg_t,
25477 allocator_type allocator,
25478 BloombergLP::bslmf::MovableRef<Variant> original);
25479
25480 template <size_t t_INDEX>
25481 explicit Variant_Base(bsl::allocator_arg_t,
25482 allocator_type allocator,
25484
25485 template <size_t t_INDEX, class t_ARG_01>
25486 explicit Variant_Base(bsl::allocator_arg_t,
25487 allocator_type allocator,
25489 const t_ARG_01& arg_01);
25490
25491 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
25492 explicit Variant_Base(bsl::allocator_arg_t,
25493 allocator_type allocator,
25495 const t_ARG_01& arg_01,
25496 const t_ARG_02& arg_02);
25497
25498 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
25499 explicit Variant_Base(bsl::allocator_arg_t,
25500 allocator_type allocator,
25502 const t_ARG_01& arg_01,
25503 const t_ARG_02& arg_02,
25504 const t_ARG_03& arg_03);
25505
25506 template <size_t t_INDEX,
25507 class t_ARG_01,
25508 class t_ARG_02,
25509 class t_ARG_03,
25510 class t_ARG_04>
25511 explicit Variant_Base(bsl::allocator_arg_t,
25512 allocator_type allocator,
25514 const t_ARG_01& arg_01,
25515 const t_ARG_02& arg_02,
25516 const t_ARG_03& arg_03,
25517 const t_ARG_04& arg_04);
25518
25519 template <size_t t_INDEX,
25520 class t_ARG_01,
25521 class t_ARG_02,
25522 class t_ARG_03,
25523 class t_ARG_04,
25524 class t_ARG_05>
25525 explicit Variant_Base(bsl::allocator_arg_t,
25526 allocator_type allocator,
25528 const t_ARG_01& arg_01,
25529 const t_ARG_02& arg_02,
25530 const t_ARG_03& arg_03,
25531 const t_ARG_04& arg_04,
25532 const t_ARG_05& arg_05);
25533
25534 template <size_t t_INDEX,
25535 class t_ARG_01,
25536 class t_ARG_02,
25537 class t_ARG_03,
25538 class t_ARG_04,
25539 class t_ARG_05,
25540 class t_ARG_06>
25541 explicit Variant_Base(bsl::allocator_arg_t,
25542 allocator_type allocator,
25544 const t_ARG_01& arg_01,
25545 const t_ARG_02& arg_02,
25546 const t_ARG_03& arg_03,
25547 const t_ARG_04& arg_04,
25548 const t_ARG_05& arg_05,
25549 const t_ARG_06& arg_06);
25550
25551 template <size_t t_INDEX,
25552 class t_ARG_01,
25553 class t_ARG_02,
25554 class t_ARG_03,
25555 class t_ARG_04,
25556 class t_ARG_05,
25557 class t_ARG_06,
25558 class t_ARG_07>
25559 explicit Variant_Base(bsl::allocator_arg_t,
25560 allocator_type allocator,
25562 const t_ARG_01& arg_01,
25563 const t_ARG_02& arg_02,
25564 const t_ARG_03& arg_03,
25565 const t_ARG_04& arg_04,
25566 const t_ARG_05& arg_05,
25567 const t_ARG_06& arg_06,
25568 const t_ARG_07& arg_07);
25569
25570 template <size_t t_INDEX,
25571 class t_ARG_01,
25572 class t_ARG_02,
25573 class t_ARG_03,
25574 class t_ARG_04,
25575 class t_ARG_05,
25576 class t_ARG_06,
25577 class t_ARG_07,
25578 class t_ARG_08>
25579 explicit Variant_Base(bsl::allocator_arg_t,
25580 allocator_type allocator,
25582 const t_ARG_01& arg_01,
25583 const t_ARG_02& arg_02,
25584 const t_ARG_03& arg_03,
25585 const t_ARG_04& arg_04,
25586 const t_ARG_05& arg_05,
25587 const t_ARG_06& arg_06,
25588 const t_ARG_07& arg_07,
25589 const t_ARG_08& arg_08);
25590
25591 template <size_t t_INDEX,
25592 class t_ARG_01,
25593 class t_ARG_02,
25594 class t_ARG_03,
25595 class t_ARG_04,
25596 class t_ARG_05,
25597 class t_ARG_06,
25598 class t_ARG_07,
25599 class t_ARG_08,
25600 class t_ARG_09>
25601 explicit Variant_Base(bsl::allocator_arg_t,
25602 allocator_type allocator,
25604 const t_ARG_01& arg_01,
25605 const t_ARG_02& arg_02,
25606 const t_ARG_03& arg_03,
25607 const t_ARG_04& arg_04,
25608 const t_ARG_05& arg_05,
25609 const t_ARG_06& arg_06,
25610 const t_ARG_07& arg_07,
25611 const t_ARG_08& arg_08,
25612 const t_ARG_09& arg_09);
25613
25614 template <size_t t_INDEX,
25615 class t_ARG_01,
25616 class t_ARG_02,
25617 class t_ARG_03,
25618 class t_ARG_04,
25619 class t_ARG_05,
25620 class t_ARG_06,
25621 class t_ARG_07,
25622 class t_ARG_08,
25623 class t_ARG_09,
25624 class t_ARG_10>
25625 explicit Variant_Base(bsl::allocator_arg_t,
25626 allocator_type allocator,
25628 const t_ARG_01& arg_01,
25629 const t_ARG_02& arg_02,
25630 const t_ARG_03& arg_03,
25631 const t_ARG_04& arg_04,
25632 const t_ARG_05& arg_05,
25633 const t_ARG_06& arg_06,
25634 const t_ARG_07& arg_07,
25635 const t_ARG_08& arg_08,
25636 const t_ARG_09& arg_09,
25637 const t_ARG_10& arg_10);
25638
25639#endif
25640
25641 ~Variant_Base();
25642
25643#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
25644 template <size_t t_INDEX, class t_ARGS_01,
25645 class t_ARGS_02>
25646 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
25648#else
25649 template <size_t t_INDEX>
25650 void baseEmplace();
25651 template <size_t t_INDEX, class t_ARG_01>
25652 void baseEmplace(const t_ARG_01& arg_01);
25653
25654 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
25655 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
25656
25657 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
25658 void baseEmplace(const t_ARG_01& arg_01,
25659 const t_ARG_02& arg_02,
25660 const t_ARG_03& arg_03);
25661
25662 template <size_t t_INDEX,
25663 class t_ARG_01,
25664 class t_ARG_02,
25665 class t_ARG_03,
25666 class t_ARG_04>
25667 void baseEmplace(const t_ARG_01& arg_01,
25668 const t_ARG_02& arg_02,
25669 const t_ARG_03& arg_03,
25670 const t_ARG_04& arg_04);
25671
25672 template <size_t t_INDEX,
25673 class t_ARG_01,
25674 class t_ARG_02,
25675 class t_ARG_03,
25676 class t_ARG_04,
25677 class t_ARG_05>
25678 void baseEmplace(const t_ARG_01& arg_01,
25679 const t_ARG_02& arg_02,
25680 const t_ARG_03& arg_03,
25681 const t_ARG_04& arg_04,
25682 const t_ARG_05& arg_05);
25683
25684 template <size_t t_INDEX,
25685 class t_ARG_01,
25686 class t_ARG_02,
25687 class t_ARG_03,
25688 class t_ARG_04,
25689 class t_ARG_05,
25690 class t_ARG_06>
25691 void baseEmplace(const t_ARG_01& arg_01,
25692 const t_ARG_02& arg_02,
25693 const t_ARG_03& arg_03,
25694 const t_ARG_04& arg_04,
25695 const t_ARG_05& arg_05,
25696 const t_ARG_06& arg_06);
25697
25698 template <size_t t_INDEX,
25699 class t_ARG_01,
25700 class t_ARG_02,
25701 class t_ARG_03,
25702 class t_ARG_04,
25703 class t_ARG_05,
25704 class t_ARG_06,
25705 class t_ARG_07>
25706 void baseEmplace(const t_ARG_01& arg_01,
25707 const t_ARG_02& arg_02,
25708 const t_ARG_03& arg_03,
25709 const t_ARG_04& arg_04,
25710 const t_ARG_05& arg_05,
25711 const t_ARG_06& arg_06,
25712 const t_ARG_07& arg_07);
25713
25714 template <size_t t_INDEX,
25715 class t_ARG_01,
25716 class t_ARG_02,
25717 class t_ARG_03,
25718 class t_ARG_04,
25719 class t_ARG_05,
25720 class t_ARG_06,
25721 class t_ARG_07,
25722 class t_ARG_08>
25723 void baseEmplace(const t_ARG_01& arg_01,
25724 const t_ARG_02& arg_02,
25725 const t_ARG_03& arg_03,
25726 const t_ARG_04& arg_04,
25727 const t_ARG_05& arg_05,
25728 const t_ARG_06& arg_06,
25729 const t_ARG_07& arg_07,
25730 const t_ARG_08& arg_08);
25731
25732 template <size_t t_INDEX,
25733 class t_ARG_01,
25734 class t_ARG_02,
25735 class t_ARG_03,
25736 class t_ARG_04,
25737 class t_ARG_05,
25738 class t_ARG_06,
25739 class t_ARG_07,
25740 class t_ARG_08,
25741 class t_ARG_09>
25742 void baseEmplace(const t_ARG_01& arg_01,
25743 const t_ARG_02& arg_02,
25744 const t_ARG_03& arg_03,
25745 const t_ARG_04& arg_04,
25746 const t_ARG_05& arg_05,
25747 const t_ARG_06& arg_06,
25748 const t_ARG_07& arg_07,
25749 const t_ARG_08& arg_08,
25750 const t_ARG_09& arg_09);
25751
25752 template <size_t t_INDEX,
25753 class t_ARG_01,
25754 class t_ARG_02,
25755 class t_ARG_03,
25756 class t_ARG_04,
25757 class t_ARG_05,
25758 class t_ARG_06,
25759 class t_ARG_07,
25760 class t_ARG_08,
25761 class t_ARG_09,
25762 class t_ARG_10>
25763 void baseEmplace(const t_ARG_01& arg_01,
25764 const t_ARG_02& arg_02,
25765 const t_ARG_03& arg_03,
25766 const t_ARG_04& arg_04,
25767 const t_ARG_05& arg_05,
25768 const t_ARG_06& arg_06,
25769 const t_ARG_07& arg_07,
25770 const t_ARG_08& arg_08,
25771 const t_ARG_09& arg_09,
25772 const t_ARG_10& arg_10);
25773#endif
25774
25775 Variant_Base& operator=(const Variant_Base& rhs);
25776
25777 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
25778
25780};
25781#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 2
25782
25783#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 3
25784template <class t_HEAD, class t_TAIL_01,
25785 class t_TAIL_02,
25786 class t_TAIL_03>
25787struct Variant_Base<t_HEAD, t_TAIL_01,
25788 t_TAIL_02,
25789 t_TAIL_03>
25790: public BloombergLP::bslstl::Variant_AllocatorBase<
25791 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
25792 t_TAIL_01,
25793 t_TAIL_02,
25794 t_TAIL_03>::value> {
25795
25796 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
25797 typedef BloombergLP::bslstl::Variant_AllocatorBase<
25798 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
25799 t_TAIL_01,
25800 t_TAIL_02,
25801 t_TAIL_03>::value>
25802 AllocBase;
25803 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
25804 t_TAIL_02,
25805 t_TAIL_03>
25806 Variant_Union;
25807 typedef bsl::variant<t_HEAD, t_TAIL_01,
25808 t_TAIL_02,
25809 t_TAIL_03> Variant;
25810
25811 struct NoAlloc {
25812 };
25813
25814 typedef typename bsl::conditional<
25815 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
25816 t_TAIL_01,
25817 t_TAIL_02,
25818 t_TAIL_03>::value,
25820 NoAlloc>::type allocator_type;
25821
25822
25823 size_t d_type;
25824
25825 Variant_Union d_union;
25826
25828 Variant_Base,
25829 BloombergLP::bslma::UsesBslmaAllocator,
25830 (BloombergLP::bslstl::
25831 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
25832 t_TAIL_02,
25833 t_TAIL_03>::value));
25835 Variant_Base,
25836 BloombergLP::bslmf::UsesAllocatorArgT,
25837 (BloombergLP::bslstl::
25838 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
25839 t_TAIL_02,
25840 t_TAIL_03>::value));
25842 Variant_Base,
25843 BloombergLP::bslmf::IsBitwiseMoveable,
25844 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
25845 t_TAIL_01,
25846 t_TAIL_02,
25847 t_TAIL_03>::value));
25848
25849#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
25850 Variant_Base();
25851
25852 Variant_Base(const Variant_Base& original);
25853
25854 Variant_Base(Variant_Base&& original);
25855
25856#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
25857 Variant_Base(Variant_ConstructFromStdTag, size_t index);
25858#endif
25859
25860 template <size_t t_INDEX, class t_ARGS_01,
25861 class t_ARGS_02,
25862 class t_ARGS_03>
25863 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25864 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
25865 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
25866 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03);
25867
25868
25869 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
25870
25871 Variant_Base(bsl::allocator_arg_t,
25872 allocator_type allocator,
25873 const Variant& original);
25874 Variant_Base(bsl::allocator_arg_t,
25875 allocator_type allocator,
25876 Variant&& original);
25877
25878#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
25879 Variant_Base(bsl::allocator_arg_t,
25880 allocator_type allocator,
25881 Variant_ConstructFromStdTag,
25882 size_t index);
25883#endif
25884
25885 template <size_t t_INDEX, class t_ARGS_01,
25886 class t_ARGS_02,
25887 class t_ARGS_03>
25888 explicit Variant_Base(bsl::allocator_arg_t,
25889 allocator_type allocator,
25891 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
25892 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
25893 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03);
25894
25895#else
25896
25897 Variant_Base();
25898
25899 Variant_Base(const Variant& original);
25900
25901 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
25902
25903 template <size_t t_INDEX>
25904 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
25905
25906 template <size_t t_INDEX, class t_ARG_01>
25907 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25908 const t_ARG_01& arg_01);
25909
25910 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
25911 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25912 const t_ARG_01& arg_01,
25913 const t_ARG_02& arg_02);
25914
25915 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
25916 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25917 const t_ARG_01& arg_01,
25918 const t_ARG_02& arg_02,
25919 const t_ARG_03& arg_03);
25920
25921 template <size_t t_INDEX,
25922 class t_ARG_01,
25923 class t_ARG_02,
25924 class t_ARG_03,
25925 class t_ARG_04>
25926 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25927 const t_ARG_01& arg_01,
25928 const t_ARG_02& arg_02,
25929 const t_ARG_03& arg_03,
25930 const t_ARG_04& arg_04);
25931
25932 template <size_t t_INDEX,
25933 class t_ARG_01,
25934 class t_ARG_02,
25935 class t_ARG_03,
25936 class t_ARG_04,
25937 class t_ARG_05>
25938 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25939 const t_ARG_01& arg_01,
25940 const t_ARG_02& arg_02,
25941 const t_ARG_03& arg_03,
25942 const t_ARG_04& arg_04,
25943 const t_ARG_05& arg_05);
25944
25945 template <size_t t_INDEX,
25946 class t_ARG_01,
25947 class t_ARG_02,
25948 class t_ARG_03,
25949 class t_ARG_04,
25950 class t_ARG_05,
25951 class t_ARG_06>
25952 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25953 const t_ARG_01& arg_01,
25954 const t_ARG_02& arg_02,
25955 const t_ARG_03& arg_03,
25956 const t_ARG_04& arg_04,
25957 const t_ARG_05& arg_05,
25958 const t_ARG_06& arg_06);
25959
25960 template <size_t t_INDEX,
25961 class t_ARG_01,
25962 class t_ARG_02,
25963 class t_ARG_03,
25964 class t_ARG_04,
25965 class t_ARG_05,
25966 class t_ARG_06,
25967 class t_ARG_07>
25968 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25969 const t_ARG_01& arg_01,
25970 const t_ARG_02& arg_02,
25971 const t_ARG_03& arg_03,
25972 const t_ARG_04& arg_04,
25973 const t_ARG_05& arg_05,
25974 const t_ARG_06& arg_06,
25975 const t_ARG_07& arg_07);
25976
25977 template <size_t t_INDEX,
25978 class t_ARG_01,
25979 class t_ARG_02,
25980 class t_ARG_03,
25981 class t_ARG_04,
25982 class t_ARG_05,
25983 class t_ARG_06,
25984 class t_ARG_07,
25985 class t_ARG_08>
25986 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
25987 const t_ARG_01& arg_01,
25988 const t_ARG_02& arg_02,
25989 const t_ARG_03& arg_03,
25990 const t_ARG_04& arg_04,
25991 const t_ARG_05& arg_05,
25992 const t_ARG_06& arg_06,
25993 const t_ARG_07& arg_07,
25994 const t_ARG_08& arg_08);
25995
25996 template <size_t t_INDEX,
25997 class t_ARG_01,
25998 class t_ARG_02,
25999 class t_ARG_03,
26000 class t_ARG_04,
26001 class t_ARG_05,
26002 class t_ARG_06,
26003 class t_ARG_07,
26004 class t_ARG_08,
26005 class t_ARG_09>
26006 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26007 const t_ARG_01& arg_01,
26008 const t_ARG_02& arg_02,
26009 const t_ARG_03& arg_03,
26010 const t_ARG_04& arg_04,
26011 const t_ARG_05& arg_05,
26012 const t_ARG_06& arg_06,
26013 const t_ARG_07& arg_07,
26014 const t_ARG_08& arg_08,
26015 const t_ARG_09& arg_09);
26016
26017 template <size_t t_INDEX,
26018 class t_ARG_01,
26019 class t_ARG_02,
26020 class t_ARG_03,
26021 class t_ARG_04,
26022 class t_ARG_05,
26023 class t_ARG_06,
26024 class t_ARG_07,
26025 class t_ARG_08,
26026 class t_ARG_09,
26027 class t_ARG_10>
26028 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26029 const t_ARG_01& arg_01,
26030 const t_ARG_02& arg_02,
26031 const t_ARG_03& arg_03,
26032 const t_ARG_04& arg_04,
26033 const t_ARG_05& arg_05,
26034 const t_ARG_06& arg_06,
26035 const t_ARG_07& arg_07,
26036 const t_ARG_08& arg_08,
26037 const t_ARG_09& arg_09,
26038 const t_ARG_10& arg_10);
26039
26040 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
26041
26042 Variant_Base(bsl::allocator_arg_t,
26043 allocator_type allocator,
26044 const Variant& original);
26045 Variant_Base(bsl::allocator_arg_t,
26046 allocator_type allocator,
26047 BloombergLP::bslmf::MovableRef<Variant> original);
26048
26049 template <size_t t_INDEX>
26050 explicit Variant_Base(bsl::allocator_arg_t,
26051 allocator_type allocator,
26053
26054 template <size_t t_INDEX, class t_ARG_01>
26055 explicit Variant_Base(bsl::allocator_arg_t,
26056 allocator_type allocator,
26058 const t_ARG_01& arg_01);
26059
26060 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
26061 explicit Variant_Base(bsl::allocator_arg_t,
26062 allocator_type allocator,
26064 const t_ARG_01& arg_01,
26065 const t_ARG_02& arg_02);
26066
26067 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
26068 explicit Variant_Base(bsl::allocator_arg_t,
26069 allocator_type allocator,
26071 const t_ARG_01& arg_01,
26072 const t_ARG_02& arg_02,
26073 const t_ARG_03& arg_03);
26074
26075 template <size_t t_INDEX,
26076 class t_ARG_01,
26077 class t_ARG_02,
26078 class t_ARG_03,
26079 class t_ARG_04>
26080 explicit Variant_Base(bsl::allocator_arg_t,
26081 allocator_type allocator,
26083 const t_ARG_01& arg_01,
26084 const t_ARG_02& arg_02,
26085 const t_ARG_03& arg_03,
26086 const t_ARG_04& arg_04);
26087
26088 template <size_t t_INDEX,
26089 class t_ARG_01,
26090 class t_ARG_02,
26091 class t_ARG_03,
26092 class t_ARG_04,
26093 class t_ARG_05>
26094 explicit Variant_Base(bsl::allocator_arg_t,
26095 allocator_type allocator,
26097 const t_ARG_01& arg_01,
26098 const t_ARG_02& arg_02,
26099 const t_ARG_03& arg_03,
26100 const t_ARG_04& arg_04,
26101 const t_ARG_05& arg_05);
26102
26103 template <size_t t_INDEX,
26104 class t_ARG_01,
26105 class t_ARG_02,
26106 class t_ARG_03,
26107 class t_ARG_04,
26108 class t_ARG_05,
26109 class t_ARG_06>
26110 explicit Variant_Base(bsl::allocator_arg_t,
26111 allocator_type allocator,
26113 const t_ARG_01& arg_01,
26114 const t_ARG_02& arg_02,
26115 const t_ARG_03& arg_03,
26116 const t_ARG_04& arg_04,
26117 const t_ARG_05& arg_05,
26118 const t_ARG_06& arg_06);
26119
26120 template <size_t t_INDEX,
26121 class t_ARG_01,
26122 class t_ARG_02,
26123 class t_ARG_03,
26124 class t_ARG_04,
26125 class t_ARG_05,
26126 class t_ARG_06,
26127 class t_ARG_07>
26128 explicit Variant_Base(bsl::allocator_arg_t,
26129 allocator_type allocator,
26131 const t_ARG_01& arg_01,
26132 const t_ARG_02& arg_02,
26133 const t_ARG_03& arg_03,
26134 const t_ARG_04& arg_04,
26135 const t_ARG_05& arg_05,
26136 const t_ARG_06& arg_06,
26137 const t_ARG_07& arg_07);
26138
26139 template <size_t t_INDEX,
26140 class t_ARG_01,
26141 class t_ARG_02,
26142 class t_ARG_03,
26143 class t_ARG_04,
26144 class t_ARG_05,
26145 class t_ARG_06,
26146 class t_ARG_07,
26147 class t_ARG_08>
26148 explicit Variant_Base(bsl::allocator_arg_t,
26149 allocator_type allocator,
26151 const t_ARG_01& arg_01,
26152 const t_ARG_02& arg_02,
26153 const t_ARG_03& arg_03,
26154 const t_ARG_04& arg_04,
26155 const t_ARG_05& arg_05,
26156 const t_ARG_06& arg_06,
26157 const t_ARG_07& arg_07,
26158 const t_ARG_08& arg_08);
26159
26160 template <size_t t_INDEX,
26161 class t_ARG_01,
26162 class t_ARG_02,
26163 class t_ARG_03,
26164 class t_ARG_04,
26165 class t_ARG_05,
26166 class t_ARG_06,
26167 class t_ARG_07,
26168 class t_ARG_08,
26169 class t_ARG_09>
26170 explicit Variant_Base(bsl::allocator_arg_t,
26171 allocator_type allocator,
26173 const t_ARG_01& arg_01,
26174 const t_ARG_02& arg_02,
26175 const t_ARG_03& arg_03,
26176 const t_ARG_04& arg_04,
26177 const t_ARG_05& arg_05,
26178 const t_ARG_06& arg_06,
26179 const t_ARG_07& arg_07,
26180 const t_ARG_08& arg_08,
26181 const t_ARG_09& arg_09);
26182
26183 template <size_t t_INDEX,
26184 class t_ARG_01,
26185 class t_ARG_02,
26186 class t_ARG_03,
26187 class t_ARG_04,
26188 class t_ARG_05,
26189 class t_ARG_06,
26190 class t_ARG_07,
26191 class t_ARG_08,
26192 class t_ARG_09,
26193 class t_ARG_10>
26194 explicit Variant_Base(bsl::allocator_arg_t,
26195 allocator_type allocator,
26197 const t_ARG_01& arg_01,
26198 const t_ARG_02& arg_02,
26199 const t_ARG_03& arg_03,
26200 const t_ARG_04& arg_04,
26201 const t_ARG_05& arg_05,
26202 const t_ARG_06& arg_06,
26203 const t_ARG_07& arg_07,
26204 const t_ARG_08& arg_08,
26205 const t_ARG_09& arg_09,
26206 const t_ARG_10& arg_10);
26207
26208#endif
26209
26210 ~Variant_Base();
26211
26212#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
26213 template <size_t t_INDEX, class t_ARGS_01,
26214 class t_ARGS_02,
26215 class t_ARGS_03>
26216 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
26219#else
26220 template <size_t t_INDEX>
26221 void baseEmplace();
26222 template <size_t t_INDEX, class t_ARG_01>
26223 void baseEmplace(const t_ARG_01& arg_01);
26224
26225 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
26226 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
26227
26228 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
26229 void baseEmplace(const t_ARG_01& arg_01,
26230 const t_ARG_02& arg_02,
26231 const t_ARG_03& arg_03);
26232
26233 template <size_t t_INDEX,
26234 class t_ARG_01,
26235 class t_ARG_02,
26236 class t_ARG_03,
26237 class t_ARG_04>
26238 void baseEmplace(const t_ARG_01& arg_01,
26239 const t_ARG_02& arg_02,
26240 const t_ARG_03& arg_03,
26241 const t_ARG_04& arg_04);
26242
26243 template <size_t t_INDEX,
26244 class t_ARG_01,
26245 class t_ARG_02,
26246 class t_ARG_03,
26247 class t_ARG_04,
26248 class t_ARG_05>
26249 void baseEmplace(const t_ARG_01& arg_01,
26250 const t_ARG_02& arg_02,
26251 const t_ARG_03& arg_03,
26252 const t_ARG_04& arg_04,
26253 const t_ARG_05& arg_05);
26254
26255 template <size_t t_INDEX,
26256 class t_ARG_01,
26257 class t_ARG_02,
26258 class t_ARG_03,
26259 class t_ARG_04,
26260 class t_ARG_05,
26261 class t_ARG_06>
26262 void baseEmplace(const t_ARG_01& arg_01,
26263 const t_ARG_02& arg_02,
26264 const t_ARG_03& arg_03,
26265 const t_ARG_04& arg_04,
26266 const t_ARG_05& arg_05,
26267 const t_ARG_06& arg_06);
26268
26269 template <size_t t_INDEX,
26270 class t_ARG_01,
26271 class t_ARG_02,
26272 class t_ARG_03,
26273 class t_ARG_04,
26274 class t_ARG_05,
26275 class t_ARG_06,
26276 class t_ARG_07>
26277 void baseEmplace(const t_ARG_01& arg_01,
26278 const t_ARG_02& arg_02,
26279 const t_ARG_03& arg_03,
26280 const t_ARG_04& arg_04,
26281 const t_ARG_05& arg_05,
26282 const t_ARG_06& arg_06,
26283 const t_ARG_07& arg_07);
26284
26285 template <size_t t_INDEX,
26286 class t_ARG_01,
26287 class t_ARG_02,
26288 class t_ARG_03,
26289 class t_ARG_04,
26290 class t_ARG_05,
26291 class t_ARG_06,
26292 class t_ARG_07,
26293 class t_ARG_08>
26294 void baseEmplace(const t_ARG_01& arg_01,
26295 const t_ARG_02& arg_02,
26296 const t_ARG_03& arg_03,
26297 const t_ARG_04& arg_04,
26298 const t_ARG_05& arg_05,
26299 const t_ARG_06& arg_06,
26300 const t_ARG_07& arg_07,
26301 const t_ARG_08& arg_08);
26302
26303 template <size_t t_INDEX,
26304 class t_ARG_01,
26305 class t_ARG_02,
26306 class t_ARG_03,
26307 class t_ARG_04,
26308 class t_ARG_05,
26309 class t_ARG_06,
26310 class t_ARG_07,
26311 class t_ARG_08,
26312 class t_ARG_09>
26313 void baseEmplace(const t_ARG_01& arg_01,
26314 const t_ARG_02& arg_02,
26315 const t_ARG_03& arg_03,
26316 const t_ARG_04& arg_04,
26317 const t_ARG_05& arg_05,
26318 const t_ARG_06& arg_06,
26319 const t_ARG_07& arg_07,
26320 const t_ARG_08& arg_08,
26321 const t_ARG_09& arg_09);
26322
26323 template <size_t t_INDEX,
26324 class t_ARG_01,
26325 class t_ARG_02,
26326 class t_ARG_03,
26327 class t_ARG_04,
26328 class t_ARG_05,
26329 class t_ARG_06,
26330 class t_ARG_07,
26331 class t_ARG_08,
26332 class t_ARG_09,
26333 class t_ARG_10>
26334 void baseEmplace(const t_ARG_01& arg_01,
26335 const t_ARG_02& arg_02,
26336 const t_ARG_03& arg_03,
26337 const t_ARG_04& arg_04,
26338 const t_ARG_05& arg_05,
26339 const t_ARG_06& arg_06,
26340 const t_ARG_07& arg_07,
26341 const t_ARG_08& arg_08,
26342 const t_ARG_09& arg_09,
26343 const t_ARG_10& arg_10);
26344#endif
26345
26346 Variant_Base& operator=(const Variant_Base& rhs);
26347
26348 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
26349
26351};
26352#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 3
26353
26354#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 4
26355template <class t_HEAD, class t_TAIL_01,
26356 class t_TAIL_02,
26357 class t_TAIL_03,
26358 class t_TAIL_04>
26359struct Variant_Base<t_HEAD, t_TAIL_01,
26360 t_TAIL_02,
26361 t_TAIL_03,
26362 t_TAIL_04>
26363: public BloombergLP::bslstl::Variant_AllocatorBase<
26364 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
26365 t_TAIL_01,
26366 t_TAIL_02,
26367 t_TAIL_03,
26368 t_TAIL_04>::value> {
26369
26370 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
26371 typedef BloombergLP::bslstl::Variant_AllocatorBase<
26372 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
26373 t_TAIL_01,
26374 t_TAIL_02,
26375 t_TAIL_03,
26376 t_TAIL_04>::value>
26377 AllocBase;
26378 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
26379 t_TAIL_02,
26380 t_TAIL_03,
26381 t_TAIL_04>
26382 Variant_Union;
26383 typedef bsl::variant<t_HEAD, t_TAIL_01,
26384 t_TAIL_02,
26385 t_TAIL_03,
26386 t_TAIL_04> Variant;
26387
26388 struct NoAlloc {
26389 };
26390
26391 typedef typename bsl::conditional<
26392 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
26393 t_TAIL_01,
26394 t_TAIL_02,
26395 t_TAIL_03,
26396 t_TAIL_04>::value,
26398 NoAlloc>::type allocator_type;
26399
26400
26401 size_t d_type;
26402
26403 Variant_Union d_union;
26404
26406 Variant_Base,
26407 BloombergLP::bslma::UsesBslmaAllocator,
26408 (BloombergLP::bslstl::
26409 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
26410 t_TAIL_02,
26411 t_TAIL_03,
26412 t_TAIL_04>::value));
26414 Variant_Base,
26415 BloombergLP::bslmf::UsesAllocatorArgT,
26416 (BloombergLP::bslstl::
26417 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
26418 t_TAIL_02,
26419 t_TAIL_03,
26420 t_TAIL_04>::value));
26422 Variant_Base,
26423 BloombergLP::bslmf::IsBitwiseMoveable,
26424 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
26425 t_TAIL_01,
26426 t_TAIL_02,
26427 t_TAIL_03,
26428 t_TAIL_04>::value));
26429
26430#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
26431 Variant_Base();
26432
26433 Variant_Base(const Variant_Base& original);
26434
26435 Variant_Base(Variant_Base&& original);
26436
26437#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
26438 Variant_Base(Variant_ConstructFromStdTag, size_t index);
26439#endif
26440
26441 template <size_t t_INDEX, class t_ARGS_01,
26442 class t_ARGS_02,
26443 class t_ARGS_03,
26444 class t_ARGS_04>
26445 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26446 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
26447 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
26448 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
26449 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04);
26450
26451
26452 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
26453
26454 Variant_Base(bsl::allocator_arg_t,
26455 allocator_type allocator,
26456 const Variant& original);
26457 Variant_Base(bsl::allocator_arg_t,
26458 allocator_type allocator,
26459 Variant&& original);
26460
26461#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
26462 Variant_Base(bsl::allocator_arg_t,
26463 allocator_type allocator,
26464 Variant_ConstructFromStdTag,
26465 size_t index);
26466#endif
26467
26468 template <size_t t_INDEX, class t_ARGS_01,
26469 class t_ARGS_02,
26470 class t_ARGS_03,
26471 class t_ARGS_04>
26472 explicit Variant_Base(bsl::allocator_arg_t,
26473 allocator_type allocator,
26475 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
26476 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
26477 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
26478 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04);
26479
26480#else
26481
26482 Variant_Base();
26483
26484 Variant_Base(const Variant& original);
26485
26486 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
26487
26488 template <size_t t_INDEX>
26489 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
26490
26491 template <size_t t_INDEX, class t_ARG_01>
26492 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26493 const t_ARG_01& arg_01);
26494
26495 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
26496 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26497 const t_ARG_01& arg_01,
26498 const t_ARG_02& arg_02);
26499
26500 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
26501 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26502 const t_ARG_01& arg_01,
26503 const t_ARG_02& arg_02,
26504 const t_ARG_03& arg_03);
26505
26506 template <size_t t_INDEX,
26507 class t_ARG_01,
26508 class t_ARG_02,
26509 class t_ARG_03,
26510 class t_ARG_04>
26511 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26512 const t_ARG_01& arg_01,
26513 const t_ARG_02& arg_02,
26514 const t_ARG_03& arg_03,
26515 const t_ARG_04& arg_04);
26516
26517 template <size_t t_INDEX,
26518 class t_ARG_01,
26519 class t_ARG_02,
26520 class t_ARG_03,
26521 class t_ARG_04,
26522 class t_ARG_05>
26523 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26524 const t_ARG_01& arg_01,
26525 const t_ARG_02& arg_02,
26526 const t_ARG_03& arg_03,
26527 const t_ARG_04& arg_04,
26528 const t_ARG_05& arg_05);
26529
26530 template <size_t t_INDEX,
26531 class t_ARG_01,
26532 class t_ARG_02,
26533 class t_ARG_03,
26534 class t_ARG_04,
26535 class t_ARG_05,
26536 class t_ARG_06>
26537 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26538 const t_ARG_01& arg_01,
26539 const t_ARG_02& arg_02,
26540 const t_ARG_03& arg_03,
26541 const t_ARG_04& arg_04,
26542 const t_ARG_05& arg_05,
26543 const t_ARG_06& arg_06);
26544
26545 template <size_t t_INDEX,
26546 class t_ARG_01,
26547 class t_ARG_02,
26548 class t_ARG_03,
26549 class t_ARG_04,
26550 class t_ARG_05,
26551 class t_ARG_06,
26552 class t_ARG_07>
26553 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26554 const t_ARG_01& arg_01,
26555 const t_ARG_02& arg_02,
26556 const t_ARG_03& arg_03,
26557 const t_ARG_04& arg_04,
26558 const t_ARG_05& arg_05,
26559 const t_ARG_06& arg_06,
26560 const t_ARG_07& arg_07);
26561
26562 template <size_t t_INDEX,
26563 class t_ARG_01,
26564 class t_ARG_02,
26565 class t_ARG_03,
26566 class t_ARG_04,
26567 class t_ARG_05,
26568 class t_ARG_06,
26569 class t_ARG_07,
26570 class t_ARG_08>
26571 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26572 const t_ARG_01& arg_01,
26573 const t_ARG_02& arg_02,
26574 const t_ARG_03& arg_03,
26575 const t_ARG_04& arg_04,
26576 const t_ARG_05& arg_05,
26577 const t_ARG_06& arg_06,
26578 const t_ARG_07& arg_07,
26579 const t_ARG_08& arg_08);
26580
26581 template <size_t t_INDEX,
26582 class t_ARG_01,
26583 class t_ARG_02,
26584 class t_ARG_03,
26585 class t_ARG_04,
26586 class t_ARG_05,
26587 class t_ARG_06,
26588 class t_ARG_07,
26589 class t_ARG_08,
26590 class t_ARG_09>
26591 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26592 const t_ARG_01& arg_01,
26593 const t_ARG_02& arg_02,
26594 const t_ARG_03& arg_03,
26595 const t_ARG_04& arg_04,
26596 const t_ARG_05& arg_05,
26597 const t_ARG_06& arg_06,
26598 const t_ARG_07& arg_07,
26599 const t_ARG_08& arg_08,
26600 const t_ARG_09& arg_09);
26601
26602 template <size_t t_INDEX,
26603 class t_ARG_01,
26604 class t_ARG_02,
26605 class t_ARG_03,
26606 class t_ARG_04,
26607 class t_ARG_05,
26608 class t_ARG_06,
26609 class t_ARG_07,
26610 class t_ARG_08,
26611 class t_ARG_09,
26612 class t_ARG_10>
26613 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
26614 const t_ARG_01& arg_01,
26615 const t_ARG_02& arg_02,
26616 const t_ARG_03& arg_03,
26617 const t_ARG_04& arg_04,
26618 const t_ARG_05& arg_05,
26619 const t_ARG_06& arg_06,
26620 const t_ARG_07& arg_07,
26621 const t_ARG_08& arg_08,
26622 const t_ARG_09& arg_09,
26623 const t_ARG_10& arg_10);
26624
26625 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
26626
26627 Variant_Base(bsl::allocator_arg_t,
26628 allocator_type allocator,
26629 const Variant& original);
26630 Variant_Base(bsl::allocator_arg_t,
26631 allocator_type allocator,
26632 BloombergLP::bslmf::MovableRef<Variant> original);
26633
26634 template <size_t t_INDEX>
26635 explicit Variant_Base(bsl::allocator_arg_t,
26636 allocator_type allocator,
26638
26639 template <size_t t_INDEX, class t_ARG_01>
26640 explicit Variant_Base(bsl::allocator_arg_t,
26641 allocator_type allocator,
26643 const t_ARG_01& arg_01);
26644
26645 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
26646 explicit Variant_Base(bsl::allocator_arg_t,
26647 allocator_type allocator,
26649 const t_ARG_01& arg_01,
26650 const t_ARG_02& arg_02);
26651
26652 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
26653 explicit Variant_Base(bsl::allocator_arg_t,
26654 allocator_type allocator,
26656 const t_ARG_01& arg_01,
26657 const t_ARG_02& arg_02,
26658 const t_ARG_03& arg_03);
26659
26660 template <size_t t_INDEX,
26661 class t_ARG_01,
26662 class t_ARG_02,
26663 class t_ARG_03,
26664 class t_ARG_04>
26665 explicit Variant_Base(bsl::allocator_arg_t,
26666 allocator_type allocator,
26668 const t_ARG_01& arg_01,
26669 const t_ARG_02& arg_02,
26670 const t_ARG_03& arg_03,
26671 const t_ARG_04& arg_04);
26672
26673 template <size_t t_INDEX,
26674 class t_ARG_01,
26675 class t_ARG_02,
26676 class t_ARG_03,
26677 class t_ARG_04,
26678 class t_ARG_05>
26679 explicit Variant_Base(bsl::allocator_arg_t,
26680 allocator_type allocator,
26682 const t_ARG_01& arg_01,
26683 const t_ARG_02& arg_02,
26684 const t_ARG_03& arg_03,
26685 const t_ARG_04& arg_04,
26686 const t_ARG_05& arg_05);
26687
26688 template <size_t t_INDEX,
26689 class t_ARG_01,
26690 class t_ARG_02,
26691 class t_ARG_03,
26692 class t_ARG_04,
26693 class t_ARG_05,
26694 class t_ARG_06>
26695 explicit Variant_Base(bsl::allocator_arg_t,
26696 allocator_type allocator,
26698 const t_ARG_01& arg_01,
26699 const t_ARG_02& arg_02,
26700 const t_ARG_03& arg_03,
26701 const t_ARG_04& arg_04,
26702 const t_ARG_05& arg_05,
26703 const t_ARG_06& arg_06);
26704
26705 template <size_t t_INDEX,
26706 class t_ARG_01,
26707 class t_ARG_02,
26708 class t_ARG_03,
26709 class t_ARG_04,
26710 class t_ARG_05,
26711 class t_ARG_06,
26712 class t_ARG_07>
26713 explicit Variant_Base(bsl::allocator_arg_t,
26714 allocator_type allocator,
26716 const t_ARG_01& arg_01,
26717 const t_ARG_02& arg_02,
26718 const t_ARG_03& arg_03,
26719 const t_ARG_04& arg_04,
26720 const t_ARG_05& arg_05,
26721 const t_ARG_06& arg_06,
26722 const t_ARG_07& arg_07);
26723
26724 template <size_t t_INDEX,
26725 class t_ARG_01,
26726 class t_ARG_02,
26727 class t_ARG_03,
26728 class t_ARG_04,
26729 class t_ARG_05,
26730 class t_ARG_06,
26731 class t_ARG_07,
26732 class t_ARG_08>
26733 explicit Variant_Base(bsl::allocator_arg_t,
26734 allocator_type allocator,
26736 const t_ARG_01& arg_01,
26737 const t_ARG_02& arg_02,
26738 const t_ARG_03& arg_03,
26739 const t_ARG_04& arg_04,
26740 const t_ARG_05& arg_05,
26741 const t_ARG_06& arg_06,
26742 const t_ARG_07& arg_07,
26743 const t_ARG_08& arg_08);
26744
26745 template <size_t t_INDEX,
26746 class t_ARG_01,
26747 class t_ARG_02,
26748 class t_ARG_03,
26749 class t_ARG_04,
26750 class t_ARG_05,
26751 class t_ARG_06,
26752 class t_ARG_07,
26753 class t_ARG_08,
26754 class t_ARG_09>
26755 explicit Variant_Base(bsl::allocator_arg_t,
26756 allocator_type allocator,
26758 const t_ARG_01& arg_01,
26759 const t_ARG_02& arg_02,
26760 const t_ARG_03& arg_03,
26761 const t_ARG_04& arg_04,
26762 const t_ARG_05& arg_05,
26763 const t_ARG_06& arg_06,
26764 const t_ARG_07& arg_07,
26765 const t_ARG_08& arg_08,
26766 const t_ARG_09& arg_09);
26767
26768 template <size_t t_INDEX,
26769 class t_ARG_01,
26770 class t_ARG_02,
26771 class t_ARG_03,
26772 class t_ARG_04,
26773 class t_ARG_05,
26774 class t_ARG_06,
26775 class t_ARG_07,
26776 class t_ARG_08,
26777 class t_ARG_09,
26778 class t_ARG_10>
26779 explicit Variant_Base(bsl::allocator_arg_t,
26780 allocator_type allocator,
26782 const t_ARG_01& arg_01,
26783 const t_ARG_02& arg_02,
26784 const t_ARG_03& arg_03,
26785 const t_ARG_04& arg_04,
26786 const t_ARG_05& arg_05,
26787 const t_ARG_06& arg_06,
26788 const t_ARG_07& arg_07,
26789 const t_ARG_08& arg_08,
26790 const t_ARG_09& arg_09,
26791 const t_ARG_10& arg_10);
26792
26793#endif
26794
26795 ~Variant_Base();
26796
26797#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
26798 template <size_t t_INDEX, class t_ARGS_01,
26799 class t_ARGS_02,
26800 class t_ARGS_03,
26801 class t_ARGS_04>
26802 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
26806#else
26807 template <size_t t_INDEX>
26808 void baseEmplace();
26809 template <size_t t_INDEX, class t_ARG_01>
26810 void baseEmplace(const t_ARG_01& arg_01);
26811
26812 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
26813 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
26814
26815 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
26816 void baseEmplace(const t_ARG_01& arg_01,
26817 const t_ARG_02& arg_02,
26818 const t_ARG_03& arg_03);
26819
26820 template <size_t t_INDEX,
26821 class t_ARG_01,
26822 class t_ARG_02,
26823 class t_ARG_03,
26824 class t_ARG_04>
26825 void baseEmplace(const t_ARG_01& arg_01,
26826 const t_ARG_02& arg_02,
26827 const t_ARG_03& arg_03,
26828 const t_ARG_04& arg_04);
26829
26830 template <size_t t_INDEX,
26831 class t_ARG_01,
26832 class t_ARG_02,
26833 class t_ARG_03,
26834 class t_ARG_04,
26835 class t_ARG_05>
26836 void baseEmplace(const t_ARG_01& arg_01,
26837 const t_ARG_02& arg_02,
26838 const t_ARG_03& arg_03,
26839 const t_ARG_04& arg_04,
26840 const t_ARG_05& arg_05);
26841
26842 template <size_t t_INDEX,
26843 class t_ARG_01,
26844 class t_ARG_02,
26845 class t_ARG_03,
26846 class t_ARG_04,
26847 class t_ARG_05,
26848 class t_ARG_06>
26849 void baseEmplace(const t_ARG_01& arg_01,
26850 const t_ARG_02& arg_02,
26851 const t_ARG_03& arg_03,
26852 const t_ARG_04& arg_04,
26853 const t_ARG_05& arg_05,
26854 const t_ARG_06& arg_06);
26855
26856 template <size_t t_INDEX,
26857 class t_ARG_01,
26858 class t_ARG_02,
26859 class t_ARG_03,
26860 class t_ARG_04,
26861 class t_ARG_05,
26862 class t_ARG_06,
26863 class t_ARG_07>
26864 void baseEmplace(const t_ARG_01& arg_01,
26865 const t_ARG_02& arg_02,
26866 const t_ARG_03& arg_03,
26867 const t_ARG_04& arg_04,
26868 const t_ARG_05& arg_05,
26869 const t_ARG_06& arg_06,
26870 const t_ARG_07& arg_07);
26871
26872 template <size_t t_INDEX,
26873 class t_ARG_01,
26874 class t_ARG_02,
26875 class t_ARG_03,
26876 class t_ARG_04,
26877 class t_ARG_05,
26878 class t_ARG_06,
26879 class t_ARG_07,
26880 class t_ARG_08>
26881 void baseEmplace(const t_ARG_01& arg_01,
26882 const t_ARG_02& arg_02,
26883 const t_ARG_03& arg_03,
26884 const t_ARG_04& arg_04,
26885 const t_ARG_05& arg_05,
26886 const t_ARG_06& arg_06,
26887 const t_ARG_07& arg_07,
26888 const t_ARG_08& arg_08);
26889
26890 template <size_t t_INDEX,
26891 class t_ARG_01,
26892 class t_ARG_02,
26893 class t_ARG_03,
26894 class t_ARG_04,
26895 class t_ARG_05,
26896 class t_ARG_06,
26897 class t_ARG_07,
26898 class t_ARG_08,
26899 class t_ARG_09>
26900 void baseEmplace(const t_ARG_01& arg_01,
26901 const t_ARG_02& arg_02,
26902 const t_ARG_03& arg_03,
26903 const t_ARG_04& arg_04,
26904 const t_ARG_05& arg_05,
26905 const t_ARG_06& arg_06,
26906 const t_ARG_07& arg_07,
26907 const t_ARG_08& arg_08,
26908 const t_ARG_09& arg_09);
26909
26910 template <size_t t_INDEX,
26911 class t_ARG_01,
26912 class t_ARG_02,
26913 class t_ARG_03,
26914 class t_ARG_04,
26915 class t_ARG_05,
26916 class t_ARG_06,
26917 class t_ARG_07,
26918 class t_ARG_08,
26919 class t_ARG_09,
26920 class t_ARG_10>
26921 void baseEmplace(const t_ARG_01& arg_01,
26922 const t_ARG_02& arg_02,
26923 const t_ARG_03& arg_03,
26924 const t_ARG_04& arg_04,
26925 const t_ARG_05& arg_05,
26926 const t_ARG_06& arg_06,
26927 const t_ARG_07& arg_07,
26928 const t_ARG_08& arg_08,
26929 const t_ARG_09& arg_09,
26930 const t_ARG_10& arg_10);
26931#endif
26932
26933 Variant_Base& operator=(const Variant_Base& rhs);
26934
26935 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
26936
26938};
26939#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 4
26940
26941#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 5
26942template <class t_HEAD, class t_TAIL_01,
26943 class t_TAIL_02,
26944 class t_TAIL_03,
26945 class t_TAIL_04,
26946 class t_TAIL_05>
26947struct Variant_Base<t_HEAD, t_TAIL_01,
26948 t_TAIL_02,
26949 t_TAIL_03,
26950 t_TAIL_04,
26951 t_TAIL_05>
26952: public BloombergLP::bslstl::Variant_AllocatorBase<
26953 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
26954 t_TAIL_01,
26955 t_TAIL_02,
26956 t_TAIL_03,
26957 t_TAIL_04,
26958 t_TAIL_05>::value> {
26959
26960 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
26961 typedef BloombergLP::bslstl::Variant_AllocatorBase<
26962 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
26963 t_TAIL_01,
26964 t_TAIL_02,
26965 t_TAIL_03,
26966 t_TAIL_04,
26967 t_TAIL_05>::value>
26968 AllocBase;
26969 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
26970 t_TAIL_02,
26971 t_TAIL_03,
26972 t_TAIL_04,
26973 t_TAIL_05>
26974 Variant_Union;
26975 typedef bsl::variant<t_HEAD, t_TAIL_01,
26976 t_TAIL_02,
26977 t_TAIL_03,
26978 t_TAIL_04,
26979 t_TAIL_05> Variant;
26980
26981 struct NoAlloc {
26982 };
26983
26984 typedef typename bsl::conditional<
26985 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
26986 t_TAIL_01,
26987 t_TAIL_02,
26988 t_TAIL_03,
26989 t_TAIL_04,
26990 t_TAIL_05>::value,
26992 NoAlloc>::type allocator_type;
26993
26994
26995 size_t d_type;
26996
26997 Variant_Union d_union;
26998
27000 Variant_Base,
27001 BloombergLP::bslma::UsesBslmaAllocator,
27002 (BloombergLP::bslstl::
27003 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
27004 t_TAIL_02,
27005 t_TAIL_03,
27006 t_TAIL_04,
27007 t_TAIL_05>::value));
27009 Variant_Base,
27010 BloombergLP::bslmf::UsesAllocatorArgT,
27011 (BloombergLP::bslstl::
27012 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
27013 t_TAIL_02,
27014 t_TAIL_03,
27015 t_TAIL_04,
27016 t_TAIL_05>::value));
27018 Variant_Base,
27019 BloombergLP::bslmf::IsBitwiseMoveable,
27020 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
27021 t_TAIL_01,
27022 t_TAIL_02,
27023 t_TAIL_03,
27024 t_TAIL_04,
27025 t_TAIL_05>::value));
27026
27027#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
27028 Variant_Base();
27029
27030 Variant_Base(const Variant_Base& original);
27031
27032 Variant_Base(Variant_Base&& original);
27033
27034#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
27035 Variant_Base(Variant_ConstructFromStdTag, size_t index);
27036#endif
27037
27038 template <size_t t_INDEX, class t_ARGS_01,
27039 class t_ARGS_02,
27040 class t_ARGS_03,
27041 class t_ARGS_04,
27042 class t_ARGS_05>
27043 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27044 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
27045 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
27046 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
27047 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
27048 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05);
27049
27050
27051 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
27052
27053 Variant_Base(bsl::allocator_arg_t,
27054 allocator_type allocator,
27055 const Variant& original);
27056 Variant_Base(bsl::allocator_arg_t,
27057 allocator_type allocator,
27058 Variant&& original);
27059
27060#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
27061 Variant_Base(bsl::allocator_arg_t,
27062 allocator_type allocator,
27063 Variant_ConstructFromStdTag,
27064 size_t index);
27065#endif
27066
27067 template <size_t t_INDEX, class t_ARGS_01,
27068 class t_ARGS_02,
27069 class t_ARGS_03,
27070 class t_ARGS_04,
27071 class t_ARGS_05>
27072 explicit Variant_Base(bsl::allocator_arg_t,
27073 allocator_type allocator,
27075 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
27076 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
27077 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
27078 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
27079 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05);
27080
27081#else
27082
27083 Variant_Base();
27084
27085 Variant_Base(const Variant& original);
27086
27087 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
27088
27089 template <size_t t_INDEX>
27090 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
27091
27092 template <size_t t_INDEX, class t_ARG_01>
27093 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27094 const t_ARG_01& arg_01);
27095
27096 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
27097 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27098 const t_ARG_01& arg_01,
27099 const t_ARG_02& arg_02);
27100
27101 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
27102 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27103 const t_ARG_01& arg_01,
27104 const t_ARG_02& arg_02,
27105 const t_ARG_03& arg_03);
27106
27107 template <size_t t_INDEX,
27108 class t_ARG_01,
27109 class t_ARG_02,
27110 class t_ARG_03,
27111 class t_ARG_04>
27112 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27113 const t_ARG_01& arg_01,
27114 const t_ARG_02& arg_02,
27115 const t_ARG_03& arg_03,
27116 const t_ARG_04& arg_04);
27117
27118 template <size_t t_INDEX,
27119 class t_ARG_01,
27120 class t_ARG_02,
27121 class t_ARG_03,
27122 class t_ARG_04,
27123 class t_ARG_05>
27124 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27125 const t_ARG_01& arg_01,
27126 const t_ARG_02& arg_02,
27127 const t_ARG_03& arg_03,
27128 const t_ARG_04& arg_04,
27129 const t_ARG_05& arg_05);
27130
27131 template <size_t t_INDEX,
27132 class t_ARG_01,
27133 class t_ARG_02,
27134 class t_ARG_03,
27135 class t_ARG_04,
27136 class t_ARG_05,
27137 class t_ARG_06>
27138 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27139 const t_ARG_01& arg_01,
27140 const t_ARG_02& arg_02,
27141 const t_ARG_03& arg_03,
27142 const t_ARG_04& arg_04,
27143 const t_ARG_05& arg_05,
27144 const t_ARG_06& arg_06);
27145
27146 template <size_t t_INDEX,
27147 class t_ARG_01,
27148 class t_ARG_02,
27149 class t_ARG_03,
27150 class t_ARG_04,
27151 class t_ARG_05,
27152 class t_ARG_06,
27153 class t_ARG_07>
27154 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27155 const t_ARG_01& arg_01,
27156 const t_ARG_02& arg_02,
27157 const t_ARG_03& arg_03,
27158 const t_ARG_04& arg_04,
27159 const t_ARG_05& arg_05,
27160 const t_ARG_06& arg_06,
27161 const t_ARG_07& arg_07);
27162
27163 template <size_t t_INDEX,
27164 class t_ARG_01,
27165 class t_ARG_02,
27166 class t_ARG_03,
27167 class t_ARG_04,
27168 class t_ARG_05,
27169 class t_ARG_06,
27170 class t_ARG_07,
27171 class t_ARG_08>
27172 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27173 const t_ARG_01& arg_01,
27174 const t_ARG_02& arg_02,
27175 const t_ARG_03& arg_03,
27176 const t_ARG_04& arg_04,
27177 const t_ARG_05& arg_05,
27178 const t_ARG_06& arg_06,
27179 const t_ARG_07& arg_07,
27180 const t_ARG_08& arg_08);
27181
27182 template <size_t t_INDEX,
27183 class t_ARG_01,
27184 class t_ARG_02,
27185 class t_ARG_03,
27186 class t_ARG_04,
27187 class t_ARG_05,
27188 class t_ARG_06,
27189 class t_ARG_07,
27190 class t_ARG_08,
27191 class t_ARG_09>
27192 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27193 const t_ARG_01& arg_01,
27194 const t_ARG_02& arg_02,
27195 const t_ARG_03& arg_03,
27196 const t_ARG_04& arg_04,
27197 const t_ARG_05& arg_05,
27198 const t_ARG_06& arg_06,
27199 const t_ARG_07& arg_07,
27200 const t_ARG_08& arg_08,
27201 const t_ARG_09& arg_09);
27202
27203 template <size_t t_INDEX,
27204 class t_ARG_01,
27205 class t_ARG_02,
27206 class t_ARG_03,
27207 class t_ARG_04,
27208 class t_ARG_05,
27209 class t_ARG_06,
27210 class t_ARG_07,
27211 class t_ARG_08,
27212 class t_ARG_09,
27213 class t_ARG_10>
27214 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27215 const t_ARG_01& arg_01,
27216 const t_ARG_02& arg_02,
27217 const t_ARG_03& arg_03,
27218 const t_ARG_04& arg_04,
27219 const t_ARG_05& arg_05,
27220 const t_ARG_06& arg_06,
27221 const t_ARG_07& arg_07,
27222 const t_ARG_08& arg_08,
27223 const t_ARG_09& arg_09,
27224 const t_ARG_10& arg_10);
27225
27226 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
27227
27228 Variant_Base(bsl::allocator_arg_t,
27229 allocator_type allocator,
27230 const Variant& original);
27231 Variant_Base(bsl::allocator_arg_t,
27232 allocator_type allocator,
27233 BloombergLP::bslmf::MovableRef<Variant> original);
27234
27235 template <size_t t_INDEX>
27236 explicit Variant_Base(bsl::allocator_arg_t,
27237 allocator_type allocator,
27239
27240 template <size_t t_INDEX, class t_ARG_01>
27241 explicit Variant_Base(bsl::allocator_arg_t,
27242 allocator_type allocator,
27244 const t_ARG_01& arg_01);
27245
27246 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
27247 explicit Variant_Base(bsl::allocator_arg_t,
27248 allocator_type allocator,
27250 const t_ARG_01& arg_01,
27251 const t_ARG_02& arg_02);
27252
27253 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
27254 explicit Variant_Base(bsl::allocator_arg_t,
27255 allocator_type allocator,
27257 const t_ARG_01& arg_01,
27258 const t_ARG_02& arg_02,
27259 const t_ARG_03& arg_03);
27260
27261 template <size_t t_INDEX,
27262 class t_ARG_01,
27263 class t_ARG_02,
27264 class t_ARG_03,
27265 class t_ARG_04>
27266 explicit Variant_Base(bsl::allocator_arg_t,
27267 allocator_type allocator,
27269 const t_ARG_01& arg_01,
27270 const t_ARG_02& arg_02,
27271 const t_ARG_03& arg_03,
27272 const t_ARG_04& arg_04);
27273
27274 template <size_t t_INDEX,
27275 class t_ARG_01,
27276 class t_ARG_02,
27277 class t_ARG_03,
27278 class t_ARG_04,
27279 class t_ARG_05>
27280 explicit Variant_Base(bsl::allocator_arg_t,
27281 allocator_type allocator,
27283 const t_ARG_01& arg_01,
27284 const t_ARG_02& arg_02,
27285 const t_ARG_03& arg_03,
27286 const t_ARG_04& arg_04,
27287 const t_ARG_05& arg_05);
27288
27289 template <size_t t_INDEX,
27290 class t_ARG_01,
27291 class t_ARG_02,
27292 class t_ARG_03,
27293 class t_ARG_04,
27294 class t_ARG_05,
27295 class t_ARG_06>
27296 explicit Variant_Base(bsl::allocator_arg_t,
27297 allocator_type allocator,
27299 const t_ARG_01& arg_01,
27300 const t_ARG_02& arg_02,
27301 const t_ARG_03& arg_03,
27302 const t_ARG_04& arg_04,
27303 const t_ARG_05& arg_05,
27304 const t_ARG_06& arg_06);
27305
27306 template <size_t t_INDEX,
27307 class t_ARG_01,
27308 class t_ARG_02,
27309 class t_ARG_03,
27310 class t_ARG_04,
27311 class t_ARG_05,
27312 class t_ARG_06,
27313 class t_ARG_07>
27314 explicit Variant_Base(bsl::allocator_arg_t,
27315 allocator_type allocator,
27317 const t_ARG_01& arg_01,
27318 const t_ARG_02& arg_02,
27319 const t_ARG_03& arg_03,
27320 const t_ARG_04& arg_04,
27321 const t_ARG_05& arg_05,
27322 const t_ARG_06& arg_06,
27323 const t_ARG_07& arg_07);
27324
27325 template <size_t t_INDEX,
27326 class t_ARG_01,
27327 class t_ARG_02,
27328 class t_ARG_03,
27329 class t_ARG_04,
27330 class t_ARG_05,
27331 class t_ARG_06,
27332 class t_ARG_07,
27333 class t_ARG_08>
27334 explicit Variant_Base(bsl::allocator_arg_t,
27335 allocator_type allocator,
27337 const t_ARG_01& arg_01,
27338 const t_ARG_02& arg_02,
27339 const t_ARG_03& arg_03,
27340 const t_ARG_04& arg_04,
27341 const t_ARG_05& arg_05,
27342 const t_ARG_06& arg_06,
27343 const t_ARG_07& arg_07,
27344 const t_ARG_08& arg_08);
27345
27346 template <size_t t_INDEX,
27347 class t_ARG_01,
27348 class t_ARG_02,
27349 class t_ARG_03,
27350 class t_ARG_04,
27351 class t_ARG_05,
27352 class t_ARG_06,
27353 class t_ARG_07,
27354 class t_ARG_08,
27355 class t_ARG_09>
27356 explicit Variant_Base(bsl::allocator_arg_t,
27357 allocator_type allocator,
27359 const t_ARG_01& arg_01,
27360 const t_ARG_02& arg_02,
27361 const t_ARG_03& arg_03,
27362 const t_ARG_04& arg_04,
27363 const t_ARG_05& arg_05,
27364 const t_ARG_06& arg_06,
27365 const t_ARG_07& arg_07,
27366 const t_ARG_08& arg_08,
27367 const t_ARG_09& arg_09);
27368
27369 template <size_t t_INDEX,
27370 class t_ARG_01,
27371 class t_ARG_02,
27372 class t_ARG_03,
27373 class t_ARG_04,
27374 class t_ARG_05,
27375 class t_ARG_06,
27376 class t_ARG_07,
27377 class t_ARG_08,
27378 class t_ARG_09,
27379 class t_ARG_10>
27380 explicit Variant_Base(bsl::allocator_arg_t,
27381 allocator_type allocator,
27383 const t_ARG_01& arg_01,
27384 const t_ARG_02& arg_02,
27385 const t_ARG_03& arg_03,
27386 const t_ARG_04& arg_04,
27387 const t_ARG_05& arg_05,
27388 const t_ARG_06& arg_06,
27389 const t_ARG_07& arg_07,
27390 const t_ARG_08& arg_08,
27391 const t_ARG_09& arg_09,
27392 const t_ARG_10& arg_10);
27393
27394#endif
27395
27396 ~Variant_Base();
27397
27398#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
27399 template <size_t t_INDEX, class t_ARGS_01,
27400 class t_ARGS_02,
27401 class t_ARGS_03,
27402 class t_ARGS_04,
27403 class t_ARGS_05>
27404 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
27409#else
27410 template <size_t t_INDEX>
27411 void baseEmplace();
27412 template <size_t t_INDEX, class t_ARG_01>
27413 void baseEmplace(const t_ARG_01& arg_01);
27414
27415 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
27416 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
27417
27418 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
27419 void baseEmplace(const t_ARG_01& arg_01,
27420 const t_ARG_02& arg_02,
27421 const t_ARG_03& arg_03);
27422
27423 template <size_t t_INDEX,
27424 class t_ARG_01,
27425 class t_ARG_02,
27426 class t_ARG_03,
27427 class t_ARG_04>
27428 void baseEmplace(const t_ARG_01& arg_01,
27429 const t_ARG_02& arg_02,
27430 const t_ARG_03& arg_03,
27431 const t_ARG_04& arg_04);
27432
27433 template <size_t t_INDEX,
27434 class t_ARG_01,
27435 class t_ARG_02,
27436 class t_ARG_03,
27437 class t_ARG_04,
27438 class t_ARG_05>
27439 void baseEmplace(const t_ARG_01& arg_01,
27440 const t_ARG_02& arg_02,
27441 const t_ARG_03& arg_03,
27442 const t_ARG_04& arg_04,
27443 const t_ARG_05& arg_05);
27444
27445 template <size_t t_INDEX,
27446 class t_ARG_01,
27447 class t_ARG_02,
27448 class t_ARG_03,
27449 class t_ARG_04,
27450 class t_ARG_05,
27451 class t_ARG_06>
27452 void baseEmplace(const t_ARG_01& arg_01,
27453 const t_ARG_02& arg_02,
27454 const t_ARG_03& arg_03,
27455 const t_ARG_04& arg_04,
27456 const t_ARG_05& arg_05,
27457 const t_ARG_06& arg_06);
27458
27459 template <size_t t_INDEX,
27460 class t_ARG_01,
27461 class t_ARG_02,
27462 class t_ARG_03,
27463 class t_ARG_04,
27464 class t_ARG_05,
27465 class t_ARG_06,
27466 class t_ARG_07>
27467 void baseEmplace(const t_ARG_01& arg_01,
27468 const t_ARG_02& arg_02,
27469 const t_ARG_03& arg_03,
27470 const t_ARG_04& arg_04,
27471 const t_ARG_05& arg_05,
27472 const t_ARG_06& arg_06,
27473 const t_ARG_07& arg_07);
27474
27475 template <size_t t_INDEX,
27476 class t_ARG_01,
27477 class t_ARG_02,
27478 class t_ARG_03,
27479 class t_ARG_04,
27480 class t_ARG_05,
27481 class t_ARG_06,
27482 class t_ARG_07,
27483 class t_ARG_08>
27484 void baseEmplace(const t_ARG_01& arg_01,
27485 const t_ARG_02& arg_02,
27486 const t_ARG_03& arg_03,
27487 const t_ARG_04& arg_04,
27488 const t_ARG_05& arg_05,
27489 const t_ARG_06& arg_06,
27490 const t_ARG_07& arg_07,
27491 const t_ARG_08& arg_08);
27492
27493 template <size_t t_INDEX,
27494 class t_ARG_01,
27495 class t_ARG_02,
27496 class t_ARG_03,
27497 class t_ARG_04,
27498 class t_ARG_05,
27499 class t_ARG_06,
27500 class t_ARG_07,
27501 class t_ARG_08,
27502 class t_ARG_09>
27503 void baseEmplace(const t_ARG_01& arg_01,
27504 const t_ARG_02& arg_02,
27505 const t_ARG_03& arg_03,
27506 const t_ARG_04& arg_04,
27507 const t_ARG_05& arg_05,
27508 const t_ARG_06& arg_06,
27509 const t_ARG_07& arg_07,
27510 const t_ARG_08& arg_08,
27511 const t_ARG_09& arg_09);
27512
27513 template <size_t t_INDEX,
27514 class t_ARG_01,
27515 class t_ARG_02,
27516 class t_ARG_03,
27517 class t_ARG_04,
27518 class t_ARG_05,
27519 class t_ARG_06,
27520 class t_ARG_07,
27521 class t_ARG_08,
27522 class t_ARG_09,
27523 class t_ARG_10>
27524 void baseEmplace(const t_ARG_01& arg_01,
27525 const t_ARG_02& arg_02,
27526 const t_ARG_03& arg_03,
27527 const t_ARG_04& arg_04,
27528 const t_ARG_05& arg_05,
27529 const t_ARG_06& arg_06,
27530 const t_ARG_07& arg_07,
27531 const t_ARG_08& arg_08,
27532 const t_ARG_09& arg_09,
27533 const t_ARG_10& arg_10);
27534#endif
27535
27536 Variant_Base& operator=(const Variant_Base& rhs);
27537
27538 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
27539
27541};
27542#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 5
27543
27544#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 6
27545template <class t_HEAD, class t_TAIL_01,
27546 class t_TAIL_02,
27547 class t_TAIL_03,
27548 class t_TAIL_04,
27549 class t_TAIL_05,
27550 class t_TAIL_06>
27551struct Variant_Base<t_HEAD, t_TAIL_01,
27552 t_TAIL_02,
27553 t_TAIL_03,
27554 t_TAIL_04,
27555 t_TAIL_05,
27556 t_TAIL_06>
27557: public BloombergLP::bslstl::Variant_AllocatorBase<
27558 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
27559 t_TAIL_01,
27560 t_TAIL_02,
27561 t_TAIL_03,
27562 t_TAIL_04,
27563 t_TAIL_05,
27564 t_TAIL_06>::value> {
27565
27566 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
27567 typedef BloombergLP::bslstl::Variant_AllocatorBase<
27568 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
27569 t_TAIL_01,
27570 t_TAIL_02,
27571 t_TAIL_03,
27572 t_TAIL_04,
27573 t_TAIL_05,
27574 t_TAIL_06>::value>
27575 AllocBase;
27576 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
27577 t_TAIL_02,
27578 t_TAIL_03,
27579 t_TAIL_04,
27580 t_TAIL_05,
27581 t_TAIL_06>
27582 Variant_Union;
27583 typedef bsl::variant<t_HEAD, t_TAIL_01,
27584 t_TAIL_02,
27585 t_TAIL_03,
27586 t_TAIL_04,
27587 t_TAIL_05,
27588 t_TAIL_06> Variant;
27589
27590 struct NoAlloc {
27591 };
27592
27593 typedef typename bsl::conditional<
27594 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
27595 t_TAIL_01,
27596 t_TAIL_02,
27597 t_TAIL_03,
27598 t_TAIL_04,
27599 t_TAIL_05,
27600 t_TAIL_06>::value,
27602 NoAlloc>::type allocator_type;
27603
27604
27605 size_t d_type;
27606
27607 Variant_Union d_union;
27608
27610 Variant_Base,
27611 BloombergLP::bslma::UsesBslmaAllocator,
27612 (BloombergLP::bslstl::
27613 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
27614 t_TAIL_02,
27615 t_TAIL_03,
27616 t_TAIL_04,
27617 t_TAIL_05,
27618 t_TAIL_06>::value));
27620 Variant_Base,
27621 BloombergLP::bslmf::UsesAllocatorArgT,
27622 (BloombergLP::bslstl::
27623 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
27624 t_TAIL_02,
27625 t_TAIL_03,
27626 t_TAIL_04,
27627 t_TAIL_05,
27628 t_TAIL_06>::value));
27630 Variant_Base,
27631 BloombergLP::bslmf::IsBitwiseMoveable,
27632 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
27633 t_TAIL_01,
27634 t_TAIL_02,
27635 t_TAIL_03,
27636 t_TAIL_04,
27637 t_TAIL_05,
27638 t_TAIL_06>::value));
27639
27640#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
27641 Variant_Base();
27642
27643 Variant_Base(const Variant_Base& original);
27644
27645 Variant_Base(Variant_Base&& original);
27646
27647#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
27648 Variant_Base(Variant_ConstructFromStdTag, size_t index);
27649#endif
27650
27651 template <size_t t_INDEX, class t_ARGS_01,
27652 class t_ARGS_02,
27653 class t_ARGS_03,
27654 class t_ARGS_04,
27655 class t_ARGS_05,
27656 class t_ARGS_06>
27657 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27658 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
27659 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
27660 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
27661 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
27662 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
27663 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06);
27664
27665
27666 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
27667
27668 Variant_Base(bsl::allocator_arg_t,
27669 allocator_type allocator,
27670 const Variant& original);
27671 Variant_Base(bsl::allocator_arg_t,
27672 allocator_type allocator,
27673 Variant&& original);
27674
27675#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
27676 Variant_Base(bsl::allocator_arg_t,
27677 allocator_type allocator,
27678 Variant_ConstructFromStdTag,
27679 size_t index);
27680#endif
27681
27682 template <size_t t_INDEX, class t_ARGS_01,
27683 class t_ARGS_02,
27684 class t_ARGS_03,
27685 class t_ARGS_04,
27686 class t_ARGS_05,
27687 class t_ARGS_06>
27688 explicit Variant_Base(bsl::allocator_arg_t,
27689 allocator_type allocator,
27691 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
27692 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
27693 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
27694 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
27695 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
27696 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06);
27697
27698#else
27699
27700 Variant_Base();
27701
27702 Variant_Base(const Variant& original);
27703
27704 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
27705
27706 template <size_t t_INDEX>
27707 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
27708
27709 template <size_t t_INDEX, class t_ARG_01>
27710 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27711 const t_ARG_01& arg_01);
27712
27713 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
27714 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27715 const t_ARG_01& arg_01,
27716 const t_ARG_02& arg_02);
27717
27718 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
27719 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27720 const t_ARG_01& arg_01,
27721 const t_ARG_02& arg_02,
27722 const t_ARG_03& arg_03);
27723
27724 template <size_t t_INDEX,
27725 class t_ARG_01,
27726 class t_ARG_02,
27727 class t_ARG_03,
27728 class t_ARG_04>
27729 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27730 const t_ARG_01& arg_01,
27731 const t_ARG_02& arg_02,
27732 const t_ARG_03& arg_03,
27733 const t_ARG_04& arg_04);
27734
27735 template <size_t t_INDEX,
27736 class t_ARG_01,
27737 class t_ARG_02,
27738 class t_ARG_03,
27739 class t_ARG_04,
27740 class t_ARG_05>
27741 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27742 const t_ARG_01& arg_01,
27743 const t_ARG_02& arg_02,
27744 const t_ARG_03& arg_03,
27745 const t_ARG_04& arg_04,
27746 const t_ARG_05& arg_05);
27747
27748 template <size_t t_INDEX,
27749 class t_ARG_01,
27750 class t_ARG_02,
27751 class t_ARG_03,
27752 class t_ARG_04,
27753 class t_ARG_05,
27754 class t_ARG_06>
27755 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27756 const t_ARG_01& arg_01,
27757 const t_ARG_02& arg_02,
27758 const t_ARG_03& arg_03,
27759 const t_ARG_04& arg_04,
27760 const t_ARG_05& arg_05,
27761 const t_ARG_06& arg_06);
27762
27763 template <size_t t_INDEX,
27764 class t_ARG_01,
27765 class t_ARG_02,
27766 class t_ARG_03,
27767 class t_ARG_04,
27768 class t_ARG_05,
27769 class t_ARG_06,
27770 class t_ARG_07>
27771 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27772 const t_ARG_01& arg_01,
27773 const t_ARG_02& arg_02,
27774 const t_ARG_03& arg_03,
27775 const t_ARG_04& arg_04,
27776 const t_ARG_05& arg_05,
27777 const t_ARG_06& arg_06,
27778 const t_ARG_07& arg_07);
27779
27780 template <size_t t_INDEX,
27781 class t_ARG_01,
27782 class t_ARG_02,
27783 class t_ARG_03,
27784 class t_ARG_04,
27785 class t_ARG_05,
27786 class t_ARG_06,
27787 class t_ARG_07,
27788 class t_ARG_08>
27789 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27790 const t_ARG_01& arg_01,
27791 const t_ARG_02& arg_02,
27792 const t_ARG_03& arg_03,
27793 const t_ARG_04& arg_04,
27794 const t_ARG_05& arg_05,
27795 const t_ARG_06& arg_06,
27796 const t_ARG_07& arg_07,
27797 const t_ARG_08& arg_08);
27798
27799 template <size_t t_INDEX,
27800 class t_ARG_01,
27801 class t_ARG_02,
27802 class t_ARG_03,
27803 class t_ARG_04,
27804 class t_ARG_05,
27805 class t_ARG_06,
27806 class t_ARG_07,
27807 class t_ARG_08,
27808 class t_ARG_09>
27809 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27810 const t_ARG_01& arg_01,
27811 const t_ARG_02& arg_02,
27812 const t_ARG_03& arg_03,
27813 const t_ARG_04& arg_04,
27814 const t_ARG_05& arg_05,
27815 const t_ARG_06& arg_06,
27816 const t_ARG_07& arg_07,
27817 const t_ARG_08& arg_08,
27818 const t_ARG_09& arg_09);
27819
27820 template <size_t t_INDEX,
27821 class t_ARG_01,
27822 class t_ARG_02,
27823 class t_ARG_03,
27824 class t_ARG_04,
27825 class t_ARG_05,
27826 class t_ARG_06,
27827 class t_ARG_07,
27828 class t_ARG_08,
27829 class t_ARG_09,
27830 class t_ARG_10>
27831 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
27832 const t_ARG_01& arg_01,
27833 const t_ARG_02& arg_02,
27834 const t_ARG_03& arg_03,
27835 const t_ARG_04& arg_04,
27836 const t_ARG_05& arg_05,
27837 const t_ARG_06& arg_06,
27838 const t_ARG_07& arg_07,
27839 const t_ARG_08& arg_08,
27840 const t_ARG_09& arg_09,
27841 const t_ARG_10& arg_10);
27842
27843 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
27844
27845 Variant_Base(bsl::allocator_arg_t,
27846 allocator_type allocator,
27847 const Variant& original);
27848 Variant_Base(bsl::allocator_arg_t,
27849 allocator_type allocator,
27850 BloombergLP::bslmf::MovableRef<Variant> original);
27851
27852 template <size_t t_INDEX>
27853 explicit Variant_Base(bsl::allocator_arg_t,
27854 allocator_type allocator,
27856
27857 template <size_t t_INDEX, class t_ARG_01>
27858 explicit Variant_Base(bsl::allocator_arg_t,
27859 allocator_type allocator,
27861 const t_ARG_01& arg_01);
27862
27863 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
27864 explicit Variant_Base(bsl::allocator_arg_t,
27865 allocator_type allocator,
27867 const t_ARG_01& arg_01,
27868 const t_ARG_02& arg_02);
27869
27870 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
27871 explicit Variant_Base(bsl::allocator_arg_t,
27872 allocator_type allocator,
27874 const t_ARG_01& arg_01,
27875 const t_ARG_02& arg_02,
27876 const t_ARG_03& arg_03);
27877
27878 template <size_t t_INDEX,
27879 class t_ARG_01,
27880 class t_ARG_02,
27881 class t_ARG_03,
27882 class t_ARG_04>
27883 explicit Variant_Base(bsl::allocator_arg_t,
27884 allocator_type allocator,
27886 const t_ARG_01& arg_01,
27887 const t_ARG_02& arg_02,
27888 const t_ARG_03& arg_03,
27889 const t_ARG_04& arg_04);
27890
27891 template <size_t t_INDEX,
27892 class t_ARG_01,
27893 class t_ARG_02,
27894 class t_ARG_03,
27895 class t_ARG_04,
27896 class t_ARG_05>
27897 explicit Variant_Base(bsl::allocator_arg_t,
27898 allocator_type allocator,
27900 const t_ARG_01& arg_01,
27901 const t_ARG_02& arg_02,
27902 const t_ARG_03& arg_03,
27903 const t_ARG_04& arg_04,
27904 const t_ARG_05& arg_05);
27905
27906 template <size_t t_INDEX,
27907 class t_ARG_01,
27908 class t_ARG_02,
27909 class t_ARG_03,
27910 class t_ARG_04,
27911 class t_ARG_05,
27912 class t_ARG_06>
27913 explicit Variant_Base(bsl::allocator_arg_t,
27914 allocator_type allocator,
27916 const t_ARG_01& arg_01,
27917 const t_ARG_02& arg_02,
27918 const t_ARG_03& arg_03,
27919 const t_ARG_04& arg_04,
27920 const t_ARG_05& arg_05,
27921 const t_ARG_06& arg_06);
27922
27923 template <size_t t_INDEX,
27924 class t_ARG_01,
27925 class t_ARG_02,
27926 class t_ARG_03,
27927 class t_ARG_04,
27928 class t_ARG_05,
27929 class t_ARG_06,
27930 class t_ARG_07>
27931 explicit Variant_Base(bsl::allocator_arg_t,
27932 allocator_type allocator,
27934 const t_ARG_01& arg_01,
27935 const t_ARG_02& arg_02,
27936 const t_ARG_03& arg_03,
27937 const t_ARG_04& arg_04,
27938 const t_ARG_05& arg_05,
27939 const t_ARG_06& arg_06,
27940 const t_ARG_07& arg_07);
27941
27942 template <size_t t_INDEX,
27943 class t_ARG_01,
27944 class t_ARG_02,
27945 class t_ARG_03,
27946 class t_ARG_04,
27947 class t_ARG_05,
27948 class t_ARG_06,
27949 class t_ARG_07,
27950 class t_ARG_08>
27951 explicit Variant_Base(bsl::allocator_arg_t,
27952 allocator_type allocator,
27954 const t_ARG_01& arg_01,
27955 const t_ARG_02& arg_02,
27956 const t_ARG_03& arg_03,
27957 const t_ARG_04& arg_04,
27958 const t_ARG_05& arg_05,
27959 const t_ARG_06& arg_06,
27960 const t_ARG_07& arg_07,
27961 const t_ARG_08& arg_08);
27962
27963 template <size_t t_INDEX,
27964 class t_ARG_01,
27965 class t_ARG_02,
27966 class t_ARG_03,
27967 class t_ARG_04,
27968 class t_ARG_05,
27969 class t_ARG_06,
27970 class t_ARG_07,
27971 class t_ARG_08,
27972 class t_ARG_09>
27973 explicit Variant_Base(bsl::allocator_arg_t,
27974 allocator_type allocator,
27976 const t_ARG_01& arg_01,
27977 const t_ARG_02& arg_02,
27978 const t_ARG_03& arg_03,
27979 const t_ARG_04& arg_04,
27980 const t_ARG_05& arg_05,
27981 const t_ARG_06& arg_06,
27982 const t_ARG_07& arg_07,
27983 const t_ARG_08& arg_08,
27984 const t_ARG_09& arg_09);
27985
27986 template <size_t t_INDEX,
27987 class t_ARG_01,
27988 class t_ARG_02,
27989 class t_ARG_03,
27990 class t_ARG_04,
27991 class t_ARG_05,
27992 class t_ARG_06,
27993 class t_ARG_07,
27994 class t_ARG_08,
27995 class t_ARG_09,
27996 class t_ARG_10>
27997 explicit Variant_Base(bsl::allocator_arg_t,
27998 allocator_type allocator,
28000 const t_ARG_01& arg_01,
28001 const t_ARG_02& arg_02,
28002 const t_ARG_03& arg_03,
28003 const t_ARG_04& arg_04,
28004 const t_ARG_05& arg_05,
28005 const t_ARG_06& arg_06,
28006 const t_ARG_07& arg_07,
28007 const t_ARG_08& arg_08,
28008 const t_ARG_09& arg_09,
28009 const t_ARG_10& arg_10);
28010
28011#endif
28012
28013 ~Variant_Base();
28014
28015#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
28016 template <size_t t_INDEX, class t_ARGS_01,
28017 class t_ARGS_02,
28018 class t_ARGS_03,
28019 class t_ARGS_04,
28020 class t_ARGS_05,
28021 class t_ARGS_06>
28022 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
28028#else
28029 template <size_t t_INDEX>
28030 void baseEmplace();
28031 template <size_t t_INDEX, class t_ARG_01>
28032 void baseEmplace(const t_ARG_01& arg_01);
28033
28034 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
28035 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
28036
28037 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
28038 void baseEmplace(const t_ARG_01& arg_01,
28039 const t_ARG_02& arg_02,
28040 const t_ARG_03& arg_03);
28041
28042 template <size_t t_INDEX,
28043 class t_ARG_01,
28044 class t_ARG_02,
28045 class t_ARG_03,
28046 class t_ARG_04>
28047 void baseEmplace(const t_ARG_01& arg_01,
28048 const t_ARG_02& arg_02,
28049 const t_ARG_03& arg_03,
28050 const t_ARG_04& arg_04);
28051
28052 template <size_t t_INDEX,
28053 class t_ARG_01,
28054 class t_ARG_02,
28055 class t_ARG_03,
28056 class t_ARG_04,
28057 class t_ARG_05>
28058 void baseEmplace(const t_ARG_01& arg_01,
28059 const t_ARG_02& arg_02,
28060 const t_ARG_03& arg_03,
28061 const t_ARG_04& arg_04,
28062 const t_ARG_05& arg_05);
28063
28064 template <size_t t_INDEX,
28065 class t_ARG_01,
28066 class t_ARG_02,
28067 class t_ARG_03,
28068 class t_ARG_04,
28069 class t_ARG_05,
28070 class t_ARG_06>
28071 void baseEmplace(const t_ARG_01& arg_01,
28072 const t_ARG_02& arg_02,
28073 const t_ARG_03& arg_03,
28074 const t_ARG_04& arg_04,
28075 const t_ARG_05& arg_05,
28076 const t_ARG_06& arg_06);
28077
28078 template <size_t t_INDEX,
28079 class t_ARG_01,
28080 class t_ARG_02,
28081 class t_ARG_03,
28082 class t_ARG_04,
28083 class t_ARG_05,
28084 class t_ARG_06,
28085 class t_ARG_07>
28086 void baseEmplace(const t_ARG_01& arg_01,
28087 const t_ARG_02& arg_02,
28088 const t_ARG_03& arg_03,
28089 const t_ARG_04& arg_04,
28090 const t_ARG_05& arg_05,
28091 const t_ARG_06& arg_06,
28092 const t_ARG_07& arg_07);
28093
28094 template <size_t t_INDEX,
28095 class t_ARG_01,
28096 class t_ARG_02,
28097 class t_ARG_03,
28098 class t_ARG_04,
28099 class t_ARG_05,
28100 class t_ARG_06,
28101 class t_ARG_07,
28102 class t_ARG_08>
28103 void baseEmplace(const t_ARG_01& arg_01,
28104 const t_ARG_02& arg_02,
28105 const t_ARG_03& arg_03,
28106 const t_ARG_04& arg_04,
28107 const t_ARG_05& arg_05,
28108 const t_ARG_06& arg_06,
28109 const t_ARG_07& arg_07,
28110 const t_ARG_08& arg_08);
28111
28112 template <size_t t_INDEX,
28113 class t_ARG_01,
28114 class t_ARG_02,
28115 class t_ARG_03,
28116 class t_ARG_04,
28117 class t_ARG_05,
28118 class t_ARG_06,
28119 class t_ARG_07,
28120 class t_ARG_08,
28121 class t_ARG_09>
28122 void baseEmplace(const t_ARG_01& arg_01,
28123 const t_ARG_02& arg_02,
28124 const t_ARG_03& arg_03,
28125 const t_ARG_04& arg_04,
28126 const t_ARG_05& arg_05,
28127 const t_ARG_06& arg_06,
28128 const t_ARG_07& arg_07,
28129 const t_ARG_08& arg_08,
28130 const t_ARG_09& arg_09);
28131
28132 template <size_t t_INDEX,
28133 class t_ARG_01,
28134 class t_ARG_02,
28135 class t_ARG_03,
28136 class t_ARG_04,
28137 class t_ARG_05,
28138 class t_ARG_06,
28139 class t_ARG_07,
28140 class t_ARG_08,
28141 class t_ARG_09,
28142 class t_ARG_10>
28143 void baseEmplace(const t_ARG_01& arg_01,
28144 const t_ARG_02& arg_02,
28145 const t_ARG_03& arg_03,
28146 const t_ARG_04& arg_04,
28147 const t_ARG_05& arg_05,
28148 const t_ARG_06& arg_06,
28149 const t_ARG_07& arg_07,
28150 const t_ARG_08& arg_08,
28151 const t_ARG_09& arg_09,
28152 const t_ARG_10& arg_10);
28153#endif
28154
28155 Variant_Base& operator=(const Variant_Base& rhs);
28156
28157 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
28158
28160};
28161#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 6
28162
28163#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 7
28164template <class t_HEAD, class t_TAIL_01,
28165 class t_TAIL_02,
28166 class t_TAIL_03,
28167 class t_TAIL_04,
28168 class t_TAIL_05,
28169 class t_TAIL_06,
28170 class t_TAIL_07>
28171struct Variant_Base<t_HEAD, t_TAIL_01,
28172 t_TAIL_02,
28173 t_TAIL_03,
28174 t_TAIL_04,
28175 t_TAIL_05,
28176 t_TAIL_06,
28177 t_TAIL_07>
28178: public BloombergLP::bslstl::Variant_AllocatorBase<
28179 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
28180 t_TAIL_01,
28181 t_TAIL_02,
28182 t_TAIL_03,
28183 t_TAIL_04,
28184 t_TAIL_05,
28185 t_TAIL_06,
28186 t_TAIL_07>::value> {
28187
28188 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
28189 typedef BloombergLP::bslstl::Variant_AllocatorBase<
28190 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
28191 t_TAIL_01,
28192 t_TAIL_02,
28193 t_TAIL_03,
28194 t_TAIL_04,
28195 t_TAIL_05,
28196 t_TAIL_06,
28197 t_TAIL_07>::value>
28198 AllocBase;
28199 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
28200 t_TAIL_02,
28201 t_TAIL_03,
28202 t_TAIL_04,
28203 t_TAIL_05,
28204 t_TAIL_06,
28205 t_TAIL_07>
28206 Variant_Union;
28207 typedef bsl::variant<t_HEAD, t_TAIL_01,
28208 t_TAIL_02,
28209 t_TAIL_03,
28210 t_TAIL_04,
28211 t_TAIL_05,
28212 t_TAIL_06,
28213 t_TAIL_07> Variant;
28214
28215 struct NoAlloc {
28216 };
28217
28218 typedef typename bsl::conditional<
28219 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
28220 t_TAIL_01,
28221 t_TAIL_02,
28222 t_TAIL_03,
28223 t_TAIL_04,
28224 t_TAIL_05,
28225 t_TAIL_06,
28226 t_TAIL_07>::value,
28228 NoAlloc>::type allocator_type;
28229
28230
28231 size_t d_type;
28232
28233 Variant_Union d_union;
28234
28236 Variant_Base,
28237 BloombergLP::bslma::UsesBslmaAllocator,
28238 (BloombergLP::bslstl::
28239 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
28240 t_TAIL_02,
28241 t_TAIL_03,
28242 t_TAIL_04,
28243 t_TAIL_05,
28244 t_TAIL_06,
28245 t_TAIL_07>::value));
28247 Variant_Base,
28248 BloombergLP::bslmf::UsesAllocatorArgT,
28249 (BloombergLP::bslstl::
28250 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
28251 t_TAIL_02,
28252 t_TAIL_03,
28253 t_TAIL_04,
28254 t_TAIL_05,
28255 t_TAIL_06,
28256 t_TAIL_07>::value));
28258 Variant_Base,
28259 BloombergLP::bslmf::IsBitwiseMoveable,
28260 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
28261 t_TAIL_01,
28262 t_TAIL_02,
28263 t_TAIL_03,
28264 t_TAIL_04,
28265 t_TAIL_05,
28266 t_TAIL_06,
28267 t_TAIL_07>::value));
28268
28269#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
28270 Variant_Base();
28271
28272 Variant_Base(const Variant_Base& original);
28273
28274 Variant_Base(Variant_Base&& original);
28275
28276#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
28277 Variant_Base(Variant_ConstructFromStdTag, size_t index);
28278#endif
28279
28280 template <size_t t_INDEX, class t_ARGS_01,
28281 class t_ARGS_02,
28282 class t_ARGS_03,
28283 class t_ARGS_04,
28284 class t_ARGS_05,
28285 class t_ARGS_06,
28286 class t_ARGS_07>
28287 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28288 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
28289 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
28290 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
28291 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
28292 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
28293 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
28294 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07);
28295
28296
28297 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
28298
28299 Variant_Base(bsl::allocator_arg_t,
28300 allocator_type allocator,
28301 const Variant& original);
28302 Variant_Base(bsl::allocator_arg_t,
28303 allocator_type allocator,
28304 Variant&& original);
28305
28306#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
28307 Variant_Base(bsl::allocator_arg_t,
28308 allocator_type allocator,
28309 Variant_ConstructFromStdTag,
28310 size_t index);
28311#endif
28312
28313 template <size_t t_INDEX, class t_ARGS_01,
28314 class t_ARGS_02,
28315 class t_ARGS_03,
28316 class t_ARGS_04,
28317 class t_ARGS_05,
28318 class t_ARGS_06,
28319 class t_ARGS_07>
28320 explicit Variant_Base(bsl::allocator_arg_t,
28321 allocator_type allocator,
28323 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
28324 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
28325 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
28326 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
28327 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
28328 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
28329 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07);
28330
28331#else
28332
28333 Variant_Base();
28334
28335 Variant_Base(const Variant& original);
28336
28337 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
28338
28339 template <size_t t_INDEX>
28340 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
28341
28342 template <size_t t_INDEX, class t_ARG_01>
28343 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28344 const t_ARG_01& arg_01);
28345
28346 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
28347 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28348 const t_ARG_01& arg_01,
28349 const t_ARG_02& arg_02);
28350
28351 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
28352 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28353 const t_ARG_01& arg_01,
28354 const t_ARG_02& arg_02,
28355 const t_ARG_03& arg_03);
28356
28357 template <size_t t_INDEX,
28358 class t_ARG_01,
28359 class t_ARG_02,
28360 class t_ARG_03,
28361 class t_ARG_04>
28362 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28363 const t_ARG_01& arg_01,
28364 const t_ARG_02& arg_02,
28365 const t_ARG_03& arg_03,
28366 const t_ARG_04& arg_04);
28367
28368 template <size_t t_INDEX,
28369 class t_ARG_01,
28370 class t_ARG_02,
28371 class t_ARG_03,
28372 class t_ARG_04,
28373 class t_ARG_05>
28374 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28375 const t_ARG_01& arg_01,
28376 const t_ARG_02& arg_02,
28377 const t_ARG_03& arg_03,
28378 const t_ARG_04& arg_04,
28379 const t_ARG_05& arg_05);
28380
28381 template <size_t t_INDEX,
28382 class t_ARG_01,
28383 class t_ARG_02,
28384 class t_ARG_03,
28385 class t_ARG_04,
28386 class t_ARG_05,
28387 class t_ARG_06>
28388 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28389 const t_ARG_01& arg_01,
28390 const t_ARG_02& arg_02,
28391 const t_ARG_03& arg_03,
28392 const t_ARG_04& arg_04,
28393 const t_ARG_05& arg_05,
28394 const t_ARG_06& arg_06);
28395
28396 template <size_t t_INDEX,
28397 class t_ARG_01,
28398 class t_ARG_02,
28399 class t_ARG_03,
28400 class t_ARG_04,
28401 class t_ARG_05,
28402 class t_ARG_06,
28403 class t_ARG_07>
28404 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28405 const t_ARG_01& arg_01,
28406 const t_ARG_02& arg_02,
28407 const t_ARG_03& arg_03,
28408 const t_ARG_04& arg_04,
28409 const t_ARG_05& arg_05,
28410 const t_ARG_06& arg_06,
28411 const t_ARG_07& arg_07);
28412
28413 template <size_t t_INDEX,
28414 class t_ARG_01,
28415 class t_ARG_02,
28416 class t_ARG_03,
28417 class t_ARG_04,
28418 class t_ARG_05,
28419 class t_ARG_06,
28420 class t_ARG_07,
28421 class t_ARG_08>
28422 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28423 const t_ARG_01& arg_01,
28424 const t_ARG_02& arg_02,
28425 const t_ARG_03& arg_03,
28426 const t_ARG_04& arg_04,
28427 const t_ARG_05& arg_05,
28428 const t_ARG_06& arg_06,
28429 const t_ARG_07& arg_07,
28430 const t_ARG_08& arg_08);
28431
28432 template <size_t t_INDEX,
28433 class t_ARG_01,
28434 class t_ARG_02,
28435 class t_ARG_03,
28436 class t_ARG_04,
28437 class t_ARG_05,
28438 class t_ARG_06,
28439 class t_ARG_07,
28440 class t_ARG_08,
28441 class t_ARG_09>
28442 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28443 const t_ARG_01& arg_01,
28444 const t_ARG_02& arg_02,
28445 const t_ARG_03& arg_03,
28446 const t_ARG_04& arg_04,
28447 const t_ARG_05& arg_05,
28448 const t_ARG_06& arg_06,
28449 const t_ARG_07& arg_07,
28450 const t_ARG_08& arg_08,
28451 const t_ARG_09& arg_09);
28452
28453 template <size_t t_INDEX,
28454 class t_ARG_01,
28455 class t_ARG_02,
28456 class t_ARG_03,
28457 class t_ARG_04,
28458 class t_ARG_05,
28459 class t_ARG_06,
28460 class t_ARG_07,
28461 class t_ARG_08,
28462 class t_ARG_09,
28463 class t_ARG_10>
28464 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28465 const t_ARG_01& arg_01,
28466 const t_ARG_02& arg_02,
28467 const t_ARG_03& arg_03,
28468 const t_ARG_04& arg_04,
28469 const t_ARG_05& arg_05,
28470 const t_ARG_06& arg_06,
28471 const t_ARG_07& arg_07,
28472 const t_ARG_08& arg_08,
28473 const t_ARG_09& arg_09,
28474 const t_ARG_10& arg_10);
28475
28476 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
28477
28478 Variant_Base(bsl::allocator_arg_t,
28479 allocator_type allocator,
28480 const Variant& original);
28481 Variant_Base(bsl::allocator_arg_t,
28482 allocator_type allocator,
28483 BloombergLP::bslmf::MovableRef<Variant> original);
28484
28485 template <size_t t_INDEX>
28486 explicit Variant_Base(bsl::allocator_arg_t,
28487 allocator_type allocator,
28489
28490 template <size_t t_INDEX, class t_ARG_01>
28491 explicit Variant_Base(bsl::allocator_arg_t,
28492 allocator_type allocator,
28494 const t_ARG_01& arg_01);
28495
28496 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
28497 explicit Variant_Base(bsl::allocator_arg_t,
28498 allocator_type allocator,
28500 const t_ARG_01& arg_01,
28501 const t_ARG_02& arg_02);
28502
28503 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
28504 explicit Variant_Base(bsl::allocator_arg_t,
28505 allocator_type allocator,
28507 const t_ARG_01& arg_01,
28508 const t_ARG_02& arg_02,
28509 const t_ARG_03& arg_03);
28510
28511 template <size_t t_INDEX,
28512 class t_ARG_01,
28513 class t_ARG_02,
28514 class t_ARG_03,
28515 class t_ARG_04>
28516 explicit Variant_Base(bsl::allocator_arg_t,
28517 allocator_type allocator,
28519 const t_ARG_01& arg_01,
28520 const t_ARG_02& arg_02,
28521 const t_ARG_03& arg_03,
28522 const t_ARG_04& arg_04);
28523
28524 template <size_t t_INDEX,
28525 class t_ARG_01,
28526 class t_ARG_02,
28527 class t_ARG_03,
28528 class t_ARG_04,
28529 class t_ARG_05>
28530 explicit Variant_Base(bsl::allocator_arg_t,
28531 allocator_type allocator,
28533 const t_ARG_01& arg_01,
28534 const t_ARG_02& arg_02,
28535 const t_ARG_03& arg_03,
28536 const t_ARG_04& arg_04,
28537 const t_ARG_05& arg_05);
28538
28539 template <size_t t_INDEX,
28540 class t_ARG_01,
28541 class t_ARG_02,
28542 class t_ARG_03,
28543 class t_ARG_04,
28544 class t_ARG_05,
28545 class t_ARG_06>
28546 explicit Variant_Base(bsl::allocator_arg_t,
28547 allocator_type allocator,
28549 const t_ARG_01& arg_01,
28550 const t_ARG_02& arg_02,
28551 const t_ARG_03& arg_03,
28552 const t_ARG_04& arg_04,
28553 const t_ARG_05& arg_05,
28554 const t_ARG_06& arg_06);
28555
28556 template <size_t t_INDEX,
28557 class t_ARG_01,
28558 class t_ARG_02,
28559 class t_ARG_03,
28560 class t_ARG_04,
28561 class t_ARG_05,
28562 class t_ARG_06,
28563 class t_ARG_07>
28564 explicit Variant_Base(bsl::allocator_arg_t,
28565 allocator_type allocator,
28567 const t_ARG_01& arg_01,
28568 const t_ARG_02& arg_02,
28569 const t_ARG_03& arg_03,
28570 const t_ARG_04& arg_04,
28571 const t_ARG_05& arg_05,
28572 const t_ARG_06& arg_06,
28573 const t_ARG_07& arg_07);
28574
28575 template <size_t t_INDEX,
28576 class t_ARG_01,
28577 class t_ARG_02,
28578 class t_ARG_03,
28579 class t_ARG_04,
28580 class t_ARG_05,
28581 class t_ARG_06,
28582 class t_ARG_07,
28583 class t_ARG_08>
28584 explicit Variant_Base(bsl::allocator_arg_t,
28585 allocator_type allocator,
28587 const t_ARG_01& arg_01,
28588 const t_ARG_02& arg_02,
28589 const t_ARG_03& arg_03,
28590 const t_ARG_04& arg_04,
28591 const t_ARG_05& arg_05,
28592 const t_ARG_06& arg_06,
28593 const t_ARG_07& arg_07,
28594 const t_ARG_08& arg_08);
28595
28596 template <size_t t_INDEX,
28597 class t_ARG_01,
28598 class t_ARG_02,
28599 class t_ARG_03,
28600 class t_ARG_04,
28601 class t_ARG_05,
28602 class t_ARG_06,
28603 class t_ARG_07,
28604 class t_ARG_08,
28605 class t_ARG_09>
28606 explicit Variant_Base(bsl::allocator_arg_t,
28607 allocator_type allocator,
28609 const t_ARG_01& arg_01,
28610 const t_ARG_02& arg_02,
28611 const t_ARG_03& arg_03,
28612 const t_ARG_04& arg_04,
28613 const t_ARG_05& arg_05,
28614 const t_ARG_06& arg_06,
28615 const t_ARG_07& arg_07,
28616 const t_ARG_08& arg_08,
28617 const t_ARG_09& arg_09);
28618
28619 template <size_t t_INDEX,
28620 class t_ARG_01,
28621 class t_ARG_02,
28622 class t_ARG_03,
28623 class t_ARG_04,
28624 class t_ARG_05,
28625 class t_ARG_06,
28626 class t_ARG_07,
28627 class t_ARG_08,
28628 class t_ARG_09,
28629 class t_ARG_10>
28630 explicit Variant_Base(bsl::allocator_arg_t,
28631 allocator_type allocator,
28633 const t_ARG_01& arg_01,
28634 const t_ARG_02& arg_02,
28635 const t_ARG_03& arg_03,
28636 const t_ARG_04& arg_04,
28637 const t_ARG_05& arg_05,
28638 const t_ARG_06& arg_06,
28639 const t_ARG_07& arg_07,
28640 const t_ARG_08& arg_08,
28641 const t_ARG_09& arg_09,
28642 const t_ARG_10& arg_10);
28643
28644#endif
28645
28646 ~Variant_Base();
28647
28648#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
28649 template <size_t t_INDEX, class t_ARGS_01,
28650 class t_ARGS_02,
28651 class t_ARGS_03,
28652 class t_ARGS_04,
28653 class t_ARGS_05,
28654 class t_ARGS_06,
28655 class t_ARGS_07>
28656 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
28663#else
28664 template <size_t t_INDEX>
28665 void baseEmplace();
28666 template <size_t t_INDEX, class t_ARG_01>
28667 void baseEmplace(const t_ARG_01& arg_01);
28668
28669 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
28670 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
28671
28672 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
28673 void baseEmplace(const t_ARG_01& arg_01,
28674 const t_ARG_02& arg_02,
28675 const t_ARG_03& arg_03);
28676
28677 template <size_t t_INDEX,
28678 class t_ARG_01,
28679 class t_ARG_02,
28680 class t_ARG_03,
28681 class t_ARG_04>
28682 void baseEmplace(const t_ARG_01& arg_01,
28683 const t_ARG_02& arg_02,
28684 const t_ARG_03& arg_03,
28685 const t_ARG_04& arg_04);
28686
28687 template <size_t t_INDEX,
28688 class t_ARG_01,
28689 class t_ARG_02,
28690 class t_ARG_03,
28691 class t_ARG_04,
28692 class t_ARG_05>
28693 void baseEmplace(const t_ARG_01& arg_01,
28694 const t_ARG_02& arg_02,
28695 const t_ARG_03& arg_03,
28696 const t_ARG_04& arg_04,
28697 const t_ARG_05& arg_05);
28698
28699 template <size_t t_INDEX,
28700 class t_ARG_01,
28701 class t_ARG_02,
28702 class t_ARG_03,
28703 class t_ARG_04,
28704 class t_ARG_05,
28705 class t_ARG_06>
28706 void baseEmplace(const t_ARG_01& arg_01,
28707 const t_ARG_02& arg_02,
28708 const t_ARG_03& arg_03,
28709 const t_ARG_04& arg_04,
28710 const t_ARG_05& arg_05,
28711 const t_ARG_06& arg_06);
28712
28713 template <size_t t_INDEX,
28714 class t_ARG_01,
28715 class t_ARG_02,
28716 class t_ARG_03,
28717 class t_ARG_04,
28718 class t_ARG_05,
28719 class t_ARG_06,
28720 class t_ARG_07>
28721 void baseEmplace(const t_ARG_01& arg_01,
28722 const t_ARG_02& arg_02,
28723 const t_ARG_03& arg_03,
28724 const t_ARG_04& arg_04,
28725 const t_ARG_05& arg_05,
28726 const t_ARG_06& arg_06,
28727 const t_ARG_07& arg_07);
28728
28729 template <size_t t_INDEX,
28730 class t_ARG_01,
28731 class t_ARG_02,
28732 class t_ARG_03,
28733 class t_ARG_04,
28734 class t_ARG_05,
28735 class t_ARG_06,
28736 class t_ARG_07,
28737 class t_ARG_08>
28738 void baseEmplace(const t_ARG_01& arg_01,
28739 const t_ARG_02& arg_02,
28740 const t_ARG_03& arg_03,
28741 const t_ARG_04& arg_04,
28742 const t_ARG_05& arg_05,
28743 const t_ARG_06& arg_06,
28744 const t_ARG_07& arg_07,
28745 const t_ARG_08& arg_08);
28746
28747 template <size_t t_INDEX,
28748 class t_ARG_01,
28749 class t_ARG_02,
28750 class t_ARG_03,
28751 class t_ARG_04,
28752 class t_ARG_05,
28753 class t_ARG_06,
28754 class t_ARG_07,
28755 class t_ARG_08,
28756 class t_ARG_09>
28757 void baseEmplace(const t_ARG_01& arg_01,
28758 const t_ARG_02& arg_02,
28759 const t_ARG_03& arg_03,
28760 const t_ARG_04& arg_04,
28761 const t_ARG_05& arg_05,
28762 const t_ARG_06& arg_06,
28763 const t_ARG_07& arg_07,
28764 const t_ARG_08& arg_08,
28765 const t_ARG_09& arg_09);
28766
28767 template <size_t t_INDEX,
28768 class t_ARG_01,
28769 class t_ARG_02,
28770 class t_ARG_03,
28771 class t_ARG_04,
28772 class t_ARG_05,
28773 class t_ARG_06,
28774 class t_ARG_07,
28775 class t_ARG_08,
28776 class t_ARG_09,
28777 class t_ARG_10>
28778 void baseEmplace(const t_ARG_01& arg_01,
28779 const t_ARG_02& arg_02,
28780 const t_ARG_03& arg_03,
28781 const t_ARG_04& arg_04,
28782 const t_ARG_05& arg_05,
28783 const t_ARG_06& arg_06,
28784 const t_ARG_07& arg_07,
28785 const t_ARG_08& arg_08,
28786 const t_ARG_09& arg_09,
28787 const t_ARG_10& arg_10);
28788#endif
28789
28790 Variant_Base& operator=(const Variant_Base& rhs);
28791
28792 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
28793
28795};
28796#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 7
28797
28798#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 8
28799template <class t_HEAD, class t_TAIL_01,
28800 class t_TAIL_02,
28801 class t_TAIL_03,
28802 class t_TAIL_04,
28803 class t_TAIL_05,
28804 class t_TAIL_06,
28805 class t_TAIL_07,
28806 class t_TAIL_08>
28807struct Variant_Base<t_HEAD, t_TAIL_01,
28808 t_TAIL_02,
28809 t_TAIL_03,
28810 t_TAIL_04,
28811 t_TAIL_05,
28812 t_TAIL_06,
28813 t_TAIL_07,
28814 t_TAIL_08>
28815: public BloombergLP::bslstl::Variant_AllocatorBase<
28816 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
28817 t_TAIL_01,
28818 t_TAIL_02,
28819 t_TAIL_03,
28820 t_TAIL_04,
28821 t_TAIL_05,
28822 t_TAIL_06,
28823 t_TAIL_07,
28824 t_TAIL_08>::value> {
28825
28826 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
28827 typedef BloombergLP::bslstl::Variant_AllocatorBase<
28828 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
28829 t_TAIL_01,
28830 t_TAIL_02,
28831 t_TAIL_03,
28832 t_TAIL_04,
28833 t_TAIL_05,
28834 t_TAIL_06,
28835 t_TAIL_07,
28836 t_TAIL_08>::value>
28837 AllocBase;
28838 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
28839 t_TAIL_02,
28840 t_TAIL_03,
28841 t_TAIL_04,
28842 t_TAIL_05,
28843 t_TAIL_06,
28844 t_TAIL_07,
28845 t_TAIL_08>
28846 Variant_Union;
28847 typedef bsl::variant<t_HEAD, t_TAIL_01,
28848 t_TAIL_02,
28849 t_TAIL_03,
28850 t_TAIL_04,
28851 t_TAIL_05,
28852 t_TAIL_06,
28853 t_TAIL_07,
28854 t_TAIL_08> Variant;
28855
28856 struct NoAlloc {
28857 };
28858
28859 typedef typename bsl::conditional<
28860 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
28861 t_TAIL_01,
28862 t_TAIL_02,
28863 t_TAIL_03,
28864 t_TAIL_04,
28865 t_TAIL_05,
28866 t_TAIL_06,
28867 t_TAIL_07,
28868 t_TAIL_08>::value,
28870 NoAlloc>::type allocator_type;
28871
28872
28873 size_t d_type;
28874
28875 Variant_Union d_union;
28876
28878 Variant_Base,
28879 BloombergLP::bslma::UsesBslmaAllocator,
28880 (BloombergLP::bslstl::
28881 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
28882 t_TAIL_02,
28883 t_TAIL_03,
28884 t_TAIL_04,
28885 t_TAIL_05,
28886 t_TAIL_06,
28887 t_TAIL_07,
28888 t_TAIL_08>::value));
28890 Variant_Base,
28891 BloombergLP::bslmf::UsesAllocatorArgT,
28892 (BloombergLP::bslstl::
28893 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
28894 t_TAIL_02,
28895 t_TAIL_03,
28896 t_TAIL_04,
28897 t_TAIL_05,
28898 t_TAIL_06,
28899 t_TAIL_07,
28900 t_TAIL_08>::value));
28902 Variant_Base,
28903 BloombergLP::bslmf::IsBitwiseMoveable,
28904 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
28905 t_TAIL_01,
28906 t_TAIL_02,
28907 t_TAIL_03,
28908 t_TAIL_04,
28909 t_TAIL_05,
28910 t_TAIL_06,
28911 t_TAIL_07,
28912 t_TAIL_08>::value));
28913
28914#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
28915 Variant_Base();
28916
28917 Variant_Base(const Variant_Base& original);
28918
28919 Variant_Base(Variant_Base&& original);
28920
28921#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
28922 Variant_Base(Variant_ConstructFromStdTag, size_t index);
28923#endif
28924
28925 template <size_t t_INDEX, class t_ARGS_01,
28926 class t_ARGS_02,
28927 class t_ARGS_03,
28928 class t_ARGS_04,
28929 class t_ARGS_05,
28930 class t_ARGS_06,
28931 class t_ARGS_07,
28932 class t_ARGS_08>
28933 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28934 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
28935 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
28936 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
28937 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
28938 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
28939 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
28940 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
28941 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08);
28942
28943
28944 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
28945
28946 Variant_Base(bsl::allocator_arg_t,
28947 allocator_type allocator,
28948 const Variant& original);
28949 Variant_Base(bsl::allocator_arg_t,
28950 allocator_type allocator,
28951 Variant&& original);
28952
28953#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
28954 Variant_Base(bsl::allocator_arg_t,
28955 allocator_type allocator,
28956 Variant_ConstructFromStdTag,
28957 size_t index);
28958#endif
28959
28960 template <size_t t_INDEX, class t_ARGS_01,
28961 class t_ARGS_02,
28962 class t_ARGS_03,
28963 class t_ARGS_04,
28964 class t_ARGS_05,
28965 class t_ARGS_06,
28966 class t_ARGS_07,
28967 class t_ARGS_08>
28968 explicit Variant_Base(bsl::allocator_arg_t,
28969 allocator_type allocator,
28971 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
28972 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
28973 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
28974 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
28975 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
28976 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
28977 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
28978 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08);
28979
28980#else
28981
28982 Variant_Base();
28983
28984 Variant_Base(const Variant& original);
28985
28986 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
28987
28988 template <size_t t_INDEX>
28989 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
28990
28991 template <size_t t_INDEX, class t_ARG_01>
28992 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28993 const t_ARG_01& arg_01);
28994
28995 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
28996 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
28997 const t_ARG_01& arg_01,
28998 const t_ARG_02& arg_02);
28999
29000 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
29001 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29002 const t_ARG_01& arg_01,
29003 const t_ARG_02& arg_02,
29004 const t_ARG_03& arg_03);
29005
29006 template <size_t t_INDEX,
29007 class t_ARG_01,
29008 class t_ARG_02,
29009 class t_ARG_03,
29010 class t_ARG_04>
29011 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29012 const t_ARG_01& arg_01,
29013 const t_ARG_02& arg_02,
29014 const t_ARG_03& arg_03,
29015 const t_ARG_04& arg_04);
29016
29017 template <size_t t_INDEX,
29018 class t_ARG_01,
29019 class t_ARG_02,
29020 class t_ARG_03,
29021 class t_ARG_04,
29022 class t_ARG_05>
29023 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29024 const t_ARG_01& arg_01,
29025 const t_ARG_02& arg_02,
29026 const t_ARG_03& arg_03,
29027 const t_ARG_04& arg_04,
29028 const t_ARG_05& arg_05);
29029
29030 template <size_t t_INDEX,
29031 class t_ARG_01,
29032 class t_ARG_02,
29033 class t_ARG_03,
29034 class t_ARG_04,
29035 class t_ARG_05,
29036 class t_ARG_06>
29037 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29038 const t_ARG_01& arg_01,
29039 const t_ARG_02& arg_02,
29040 const t_ARG_03& arg_03,
29041 const t_ARG_04& arg_04,
29042 const t_ARG_05& arg_05,
29043 const t_ARG_06& arg_06);
29044
29045 template <size_t t_INDEX,
29046 class t_ARG_01,
29047 class t_ARG_02,
29048 class t_ARG_03,
29049 class t_ARG_04,
29050 class t_ARG_05,
29051 class t_ARG_06,
29052 class t_ARG_07>
29053 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29054 const t_ARG_01& arg_01,
29055 const t_ARG_02& arg_02,
29056 const t_ARG_03& arg_03,
29057 const t_ARG_04& arg_04,
29058 const t_ARG_05& arg_05,
29059 const t_ARG_06& arg_06,
29060 const t_ARG_07& arg_07);
29061
29062 template <size_t t_INDEX,
29063 class t_ARG_01,
29064 class t_ARG_02,
29065 class t_ARG_03,
29066 class t_ARG_04,
29067 class t_ARG_05,
29068 class t_ARG_06,
29069 class t_ARG_07,
29070 class t_ARG_08>
29071 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29072 const t_ARG_01& arg_01,
29073 const t_ARG_02& arg_02,
29074 const t_ARG_03& arg_03,
29075 const t_ARG_04& arg_04,
29076 const t_ARG_05& arg_05,
29077 const t_ARG_06& arg_06,
29078 const t_ARG_07& arg_07,
29079 const t_ARG_08& arg_08);
29080
29081 template <size_t t_INDEX,
29082 class t_ARG_01,
29083 class t_ARG_02,
29084 class t_ARG_03,
29085 class t_ARG_04,
29086 class t_ARG_05,
29087 class t_ARG_06,
29088 class t_ARG_07,
29089 class t_ARG_08,
29090 class t_ARG_09>
29091 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29092 const t_ARG_01& arg_01,
29093 const t_ARG_02& arg_02,
29094 const t_ARG_03& arg_03,
29095 const t_ARG_04& arg_04,
29096 const t_ARG_05& arg_05,
29097 const t_ARG_06& arg_06,
29098 const t_ARG_07& arg_07,
29099 const t_ARG_08& arg_08,
29100 const t_ARG_09& arg_09);
29101
29102 template <size_t t_INDEX,
29103 class t_ARG_01,
29104 class t_ARG_02,
29105 class t_ARG_03,
29106 class t_ARG_04,
29107 class t_ARG_05,
29108 class t_ARG_06,
29109 class t_ARG_07,
29110 class t_ARG_08,
29111 class t_ARG_09,
29112 class t_ARG_10>
29113 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29114 const t_ARG_01& arg_01,
29115 const t_ARG_02& arg_02,
29116 const t_ARG_03& arg_03,
29117 const t_ARG_04& arg_04,
29118 const t_ARG_05& arg_05,
29119 const t_ARG_06& arg_06,
29120 const t_ARG_07& arg_07,
29121 const t_ARG_08& arg_08,
29122 const t_ARG_09& arg_09,
29123 const t_ARG_10& arg_10);
29124
29125 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
29126
29127 Variant_Base(bsl::allocator_arg_t,
29128 allocator_type allocator,
29129 const Variant& original);
29130 Variant_Base(bsl::allocator_arg_t,
29131 allocator_type allocator,
29132 BloombergLP::bslmf::MovableRef<Variant> original);
29133
29134 template <size_t t_INDEX>
29135 explicit Variant_Base(bsl::allocator_arg_t,
29136 allocator_type allocator,
29138
29139 template <size_t t_INDEX, class t_ARG_01>
29140 explicit Variant_Base(bsl::allocator_arg_t,
29141 allocator_type allocator,
29143 const t_ARG_01& arg_01);
29144
29145 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
29146 explicit Variant_Base(bsl::allocator_arg_t,
29147 allocator_type allocator,
29149 const t_ARG_01& arg_01,
29150 const t_ARG_02& arg_02);
29151
29152 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
29153 explicit Variant_Base(bsl::allocator_arg_t,
29154 allocator_type allocator,
29156 const t_ARG_01& arg_01,
29157 const t_ARG_02& arg_02,
29158 const t_ARG_03& arg_03);
29159
29160 template <size_t t_INDEX,
29161 class t_ARG_01,
29162 class t_ARG_02,
29163 class t_ARG_03,
29164 class t_ARG_04>
29165 explicit Variant_Base(bsl::allocator_arg_t,
29166 allocator_type allocator,
29168 const t_ARG_01& arg_01,
29169 const t_ARG_02& arg_02,
29170 const t_ARG_03& arg_03,
29171 const t_ARG_04& arg_04);
29172
29173 template <size_t t_INDEX,
29174 class t_ARG_01,
29175 class t_ARG_02,
29176 class t_ARG_03,
29177 class t_ARG_04,
29178 class t_ARG_05>
29179 explicit Variant_Base(bsl::allocator_arg_t,
29180 allocator_type allocator,
29182 const t_ARG_01& arg_01,
29183 const t_ARG_02& arg_02,
29184 const t_ARG_03& arg_03,
29185 const t_ARG_04& arg_04,
29186 const t_ARG_05& arg_05);
29187
29188 template <size_t t_INDEX,
29189 class t_ARG_01,
29190 class t_ARG_02,
29191 class t_ARG_03,
29192 class t_ARG_04,
29193 class t_ARG_05,
29194 class t_ARG_06>
29195 explicit Variant_Base(bsl::allocator_arg_t,
29196 allocator_type allocator,
29198 const t_ARG_01& arg_01,
29199 const t_ARG_02& arg_02,
29200 const t_ARG_03& arg_03,
29201 const t_ARG_04& arg_04,
29202 const t_ARG_05& arg_05,
29203 const t_ARG_06& arg_06);
29204
29205 template <size_t t_INDEX,
29206 class t_ARG_01,
29207 class t_ARG_02,
29208 class t_ARG_03,
29209 class t_ARG_04,
29210 class t_ARG_05,
29211 class t_ARG_06,
29212 class t_ARG_07>
29213 explicit Variant_Base(bsl::allocator_arg_t,
29214 allocator_type allocator,
29216 const t_ARG_01& arg_01,
29217 const t_ARG_02& arg_02,
29218 const t_ARG_03& arg_03,
29219 const t_ARG_04& arg_04,
29220 const t_ARG_05& arg_05,
29221 const t_ARG_06& arg_06,
29222 const t_ARG_07& arg_07);
29223
29224 template <size_t t_INDEX,
29225 class t_ARG_01,
29226 class t_ARG_02,
29227 class t_ARG_03,
29228 class t_ARG_04,
29229 class t_ARG_05,
29230 class t_ARG_06,
29231 class t_ARG_07,
29232 class t_ARG_08>
29233 explicit Variant_Base(bsl::allocator_arg_t,
29234 allocator_type allocator,
29236 const t_ARG_01& arg_01,
29237 const t_ARG_02& arg_02,
29238 const t_ARG_03& arg_03,
29239 const t_ARG_04& arg_04,
29240 const t_ARG_05& arg_05,
29241 const t_ARG_06& arg_06,
29242 const t_ARG_07& arg_07,
29243 const t_ARG_08& arg_08);
29244
29245 template <size_t t_INDEX,
29246 class t_ARG_01,
29247 class t_ARG_02,
29248 class t_ARG_03,
29249 class t_ARG_04,
29250 class t_ARG_05,
29251 class t_ARG_06,
29252 class t_ARG_07,
29253 class t_ARG_08,
29254 class t_ARG_09>
29255 explicit Variant_Base(bsl::allocator_arg_t,
29256 allocator_type allocator,
29258 const t_ARG_01& arg_01,
29259 const t_ARG_02& arg_02,
29260 const t_ARG_03& arg_03,
29261 const t_ARG_04& arg_04,
29262 const t_ARG_05& arg_05,
29263 const t_ARG_06& arg_06,
29264 const t_ARG_07& arg_07,
29265 const t_ARG_08& arg_08,
29266 const t_ARG_09& arg_09);
29267
29268 template <size_t t_INDEX,
29269 class t_ARG_01,
29270 class t_ARG_02,
29271 class t_ARG_03,
29272 class t_ARG_04,
29273 class t_ARG_05,
29274 class t_ARG_06,
29275 class t_ARG_07,
29276 class t_ARG_08,
29277 class t_ARG_09,
29278 class t_ARG_10>
29279 explicit Variant_Base(bsl::allocator_arg_t,
29280 allocator_type allocator,
29282 const t_ARG_01& arg_01,
29283 const t_ARG_02& arg_02,
29284 const t_ARG_03& arg_03,
29285 const t_ARG_04& arg_04,
29286 const t_ARG_05& arg_05,
29287 const t_ARG_06& arg_06,
29288 const t_ARG_07& arg_07,
29289 const t_ARG_08& arg_08,
29290 const t_ARG_09& arg_09,
29291 const t_ARG_10& arg_10);
29292
29293#endif
29294
29295 ~Variant_Base();
29296
29297#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
29298 template <size_t t_INDEX, class t_ARGS_01,
29299 class t_ARGS_02,
29300 class t_ARGS_03,
29301 class t_ARGS_04,
29302 class t_ARGS_05,
29303 class t_ARGS_06,
29304 class t_ARGS_07,
29305 class t_ARGS_08>
29306 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
29314#else
29315 template <size_t t_INDEX>
29316 void baseEmplace();
29317 template <size_t t_INDEX, class t_ARG_01>
29318 void baseEmplace(const t_ARG_01& arg_01);
29319
29320 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
29321 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
29322
29323 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
29324 void baseEmplace(const t_ARG_01& arg_01,
29325 const t_ARG_02& arg_02,
29326 const t_ARG_03& arg_03);
29327
29328 template <size_t t_INDEX,
29329 class t_ARG_01,
29330 class t_ARG_02,
29331 class t_ARG_03,
29332 class t_ARG_04>
29333 void baseEmplace(const t_ARG_01& arg_01,
29334 const t_ARG_02& arg_02,
29335 const t_ARG_03& arg_03,
29336 const t_ARG_04& arg_04);
29337
29338 template <size_t t_INDEX,
29339 class t_ARG_01,
29340 class t_ARG_02,
29341 class t_ARG_03,
29342 class t_ARG_04,
29343 class t_ARG_05>
29344 void baseEmplace(const t_ARG_01& arg_01,
29345 const t_ARG_02& arg_02,
29346 const t_ARG_03& arg_03,
29347 const t_ARG_04& arg_04,
29348 const t_ARG_05& arg_05);
29349
29350 template <size_t t_INDEX,
29351 class t_ARG_01,
29352 class t_ARG_02,
29353 class t_ARG_03,
29354 class t_ARG_04,
29355 class t_ARG_05,
29356 class t_ARG_06>
29357 void baseEmplace(const t_ARG_01& arg_01,
29358 const t_ARG_02& arg_02,
29359 const t_ARG_03& arg_03,
29360 const t_ARG_04& arg_04,
29361 const t_ARG_05& arg_05,
29362 const t_ARG_06& arg_06);
29363
29364 template <size_t t_INDEX,
29365 class t_ARG_01,
29366 class t_ARG_02,
29367 class t_ARG_03,
29368 class t_ARG_04,
29369 class t_ARG_05,
29370 class t_ARG_06,
29371 class t_ARG_07>
29372 void baseEmplace(const t_ARG_01& arg_01,
29373 const t_ARG_02& arg_02,
29374 const t_ARG_03& arg_03,
29375 const t_ARG_04& arg_04,
29376 const t_ARG_05& arg_05,
29377 const t_ARG_06& arg_06,
29378 const t_ARG_07& arg_07);
29379
29380 template <size_t t_INDEX,
29381 class t_ARG_01,
29382 class t_ARG_02,
29383 class t_ARG_03,
29384 class t_ARG_04,
29385 class t_ARG_05,
29386 class t_ARG_06,
29387 class t_ARG_07,
29388 class t_ARG_08>
29389 void baseEmplace(const t_ARG_01& arg_01,
29390 const t_ARG_02& arg_02,
29391 const t_ARG_03& arg_03,
29392 const t_ARG_04& arg_04,
29393 const t_ARG_05& arg_05,
29394 const t_ARG_06& arg_06,
29395 const t_ARG_07& arg_07,
29396 const t_ARG_08& arg_08);
29397
29398 template <size_t t_INDEX,
29399 class t_ARG_01,
29400 class t_ARG_02,
29401 class t_ARG_03,
29402 class t_ARG_04,
29403 class t_ARG_05,
29404 class t_ARG_06,
29405 class t_ARG_07,
29406 class t_ARG_08,
29407 class t_ARG_09>
29408 void baseEmplace(const t_ARG_01& arg_01,
29409 const t_ARG_02& arg_02,
29410 const t_ARG_03& arg_03,
29411 const t_ARG_04& arg_04,
29412 const t_ARG_05& arg_05,
29413 const t_ARG_06& arg_06,
29414 const t_ARG_07& arg_07,
29415 const t_ARG_08& arg_08,
29416 const t_ARG_09& arg_09);
29417
29418 template <size_t t_INDEX,
29419 class t_ARG_01,
29420 class t_ARG_02,
29421 class t_ARG_03,
29422 class t_ARG_04,
29423 class t_ARG_05,
29424 class t_ARG_06,
29425 class t_ARG_07,
29426 class t_ARG_08,
29427 class t_ARG_09,
29428 class t_ARG_10>
29429 void baseEmplace(const t_ARG_01& arg_01,
29430 const t_ARG_02& arg_02,
29431 const t_ARG_03& arg_03,
29432 const t_ARG_04& arg_04,
29433 const t_ARG_05& arg_05,
29434 const t_ARG_06& arg_06,
29435 const t_ARG_07& arg_07,
29436 const t_ARG_08& arg_08,
29437 const t_ARG_09& arg_09,
29438 const t_ARG_10& arg_10);
29439#endif
29440
29441 Variant_Base& operator=(const Variant_Base& rhs);
29442
29443 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
29444
29446};
29447#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 8
29448
29449#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 9
29450template <class t_HEAD, class t_TAIL_01,
29451 class t_TAIL_02,
29452 class t_TAIL_03,
29453 class t_TAIL_04,
29454 class t_TAIL_05,
29455 class t_TAIL_06,
29456 class t_TAIL_07,
29457 class t_TAIL_08,
29458 class t_TAIL_09>
29459struct Variant_Base<t_HEAD, t_TAIL_01,
29460 t_TAIL_02,
29461 t_TAIL_03,
29462 t_TAIL_04,
29463 t_TAIL_05,
29464 t_TAIL_06,
29465 t_TAIL_07,
29466 t_TAIL_08,
29467 t_TAIL_09>
29468: public BloombergLP::bslstl::Variant_AllocatorBase<
29469 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
29470 t_TAIL_01,
29471 t_TAIL_02,
29472 t_TAIL_03,
29473 t_TAIL_04,
29474 t_TAIL_05,
29475 t_TAIL_06,
29476 t_TAIL_07,
29477 t_TAIL_08,
29478 t_TAIL_09>::value> {
29479
29480 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
29481 typedef BloombergLP::bslstl::Variant_AllocatorBase<
29482 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
29483 t_TAIL_01,
29484 t_TAIL_02,
29485 t_TAIL_03,
29486 t_TAIL_04,
29487 t_TAIL_05,
29488 t_TAIL_06,
29489 t_TAIL_07,
29490 t_TAIL_08,
29491 t_TAIL_09>::value>
29492 AllocBase;
29493 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
29494 t_TAIL_02,
29495 t_TAIL_03,
29496 t_TAIL_04,
29497 t_TAIL_05,
29498 t_TAIL_06,
29499 t_TAIL_07,
29500 t_TAIL_08,
29501 t_TAIL_09>
29502 Variant_Union;
29503 typedef bsl::variant<t_HEAD, t_TAIL_01,
29504 t_TAIL_02,
29505 t_TAIL_03,
29506 t_TAIL_04,
29507 t_TAIL_05,
29508 t_TAIL_06,
29509 t_TAIL_07,
29510 t_TAIL_08,
29511 t_TAIL_09> Variant;
29512
29513 struct NoAlloc {
29514 };
29515
29516 typedef typename bsl::conditional<
29517 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
29518 t_TAIL_01,
29519 t_TAIL_02,
29520 t_TAIL_03,
29521 t_TAIL_04,
29522 t_TAIL_05,
29523 t_TAIL_06,
29524 t_TAIL_07,
29525 t_TAIL_08,
29526 t_TAIL_09>::value,
29528 NoAlloc>::type allocator_type;
29529
29530
29531 size_t d_type;
29532
29533 Variant_Union d_union;
29534
29536 Variant_Base,
29537 BloombergLP::bslma::UsesBslmaAllocator,
29538 (BloombergLP::bslstl::
29539 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
29540 t_TAIL_02,
29541 t_TAIL_03,
29542 t_TAIL_04,
29543 t_TAIL_05,
29544 t_TAIL_06,
29545 t_TAIL_07,
29546 t_TAIL_08,
29547 t_TAIL_09>::value));
29549 Variant_Base,
29550 BloombergLP::bslmf::UsesAllocatorArgT,
29551 (BloombergLP::bslstl::
29552 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
29553 t_TAIL_02,
29554 t_TAIL_03,
29555 t_TAIL_04,
29556 t_TAIL_05,
29557 t_TAIL_06,
29558 t_TAIL_07,
29559 t_TAIL_08,
29560 t_TAIL_09>::value));
29562 Variant_Base,
29563 BloombergLP::bslmf::IsBitwiseMoveable,
29564 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
29565 t_TAIL_01,
29566 t_TAIL_02,
29567 t_TAIL_03,
29568 t_TAIL_04,
29569 t_TAIL_05,
29570 t_TAIL_06,
29571 t_TAIL_07,
29572 t_TAIL_08,
29573 t_TAIL_09>::value));
29574
29575#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
29576 Variant_Base();
29577
29578 Variant_Base(const Variant_Base& original);
29579
29580 Variant_Base(Variant_Base&& original);
29581
29582#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
29583 Variant_Base(Variant_ConstructFromStdTag, size_t index);
29584#endif
29585
29586 template <size_t t_INDEX, class t_ARGS_01,
29587 class t_ARGS_02,
29588 class t_ARGS_03,
29589 class t_ARGS_04,
29590 class t_ARGS_05,
29591 class t_ARGS_06,
29592 class t_ARGS_07,
29593 class t_ARGS_08,
29594 class t_ARGS_09>
29595 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29596 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
29597 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
29598 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
29599 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
29600 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
29601 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
29602 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
29603 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
29604 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09);
29605
29606
29607 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
29608
29609 Variant_Base(bsl::allocator_arg_t,
29610 allocator_type allocator,
29611 const Variant& original);
29612 Variant_Base(bsl::allocator_arg_t,
29613 allocator_type allocator,
29614 Variant&& original);
29615
29616#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
29617 Variant_Base(bsl::allocator_arg_t,
29618 allocator_type allocator,
29619 Variant_ConstructFromStdTag,
29620 size_t index);
29621#endif
29622
29623 template <size_t t_INDEX, class t_ARGS_01,
29624 class t_ARGS_02,
29625 class t_ARGS_03,
29626 class t_ARGS_04,
29627 class t_ARGS_05,
29628 class t_ARGS_06,
29629 class t_ARGS_07,
29630 class t_ARGS_08,
29631 class t_ARGS_09>
29632 explicit Variant_Base(bsl::allocator_arg_t,
29633 allocator_type allocator,
29635 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
29636 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
29637 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
29638 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
29639 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
29640 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
29641 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
29642 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
29643 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09);
29644
29645#else
29646
29647 Variant_Base();
29648
29649 Variant_Base(const Variant& original);
29650
29651 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
29652
29653 template <size_t t_INDEX>
29654 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
29655
29656 template <size_t t_INDEX, class t_ARG_01>
29657 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29658 const t_ARG_01& arg_01);
29659
29660 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
29661 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29662 const t_ARG_01& arg_01,
29663 const t_ARG_02& arg_02);
29664
29665 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
29666 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29667 const t_ARG_01& arg_01,
29668 const t_ARG_02& arg_02,
29669 const t_ARG_03& arg_03);
29670
29671 template <size_t t_INDEX,
29672 class t_ARG_01,
29673 class t_ARG_02,
29674 class t_ARG_03,
29675 class t_ARG_04>
29676 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29677 const t_ARG_01& arg_01,
29678 const t_ARG_02& arg_02,
29679 const t_ARG_03& arg_03,
29680 const t_ARG_04& arg_04);
29681
29682 template <size_t t_INDEX,
29683 class t_ARG_01,
29684 class t_ARG_02,
29685 class t_ARG_03,
29686 class t_ARG_04,
29687 class t_ARG_05>
29688 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29689 const t_ARG_01& arg_01,
29690 const t_ARG_02& arg_02,
29691 const t_ARG_03& arg_03,
29692 const t_ARG_04& arg_04,
29693 const t_ARG_05& arg_05);
29694
29695 template <size_t t_INDEX,
29696 class t_ARG_01,
29697 class t_ARG_02,
29698 class t_ARG_03,
29699 class t_ARG_04,
29700 class t_ARG_05,
29701 class t_ARG_06>
29702 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29703 const t_ARG_01& arg_01,
29704 const t_ARG_02& arg_02,
29705 const t_ARG_03& arg_03,
29706 const t_ARG_04& arg_04,
29707 const t_ARG_05& arg_05,
29708 const t_ARG_06& arg_06);
29709
29710 template <size_t t_INDEX,
29711 class t_ARG_01,
29712 class t_ARG_02,
29713 class t_ARG_03,
29714 class t_ARG_04,
29715 class t_ARG_05,
29716 class t_ARG_06,
29717 class t_ARG_07>
29718 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29719 const t_ARG_01& arg_01,
29720 const t_ARG_02& arg_02,
29721 const t_ARG_03& arg_03,
29722 const t_ARG_04& arg_04,
29723 const t_ARG_05& arg_05,
29724 const t_ARG_06& arg_06,
29725 const t_ARG_07& arg_07);
29726
29727 template <size_t t_INDEX,
29728 class t_ARG_01,
29729 class t_ARG_02,
29730 class t_ARG_03,
29731 class t_ARG_04,
29732 class t_ARG_05,
29733 class t_ARG_06,
29734 class t_ARG_07,
29735 class t_ARG_08>
29736 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29737 const t_ARG_01& arg_01,
29738 const t_ARG_02& arg_02,
29739 const t_ARG_03& arg_03,
29740 const t_ARG_04& arg_04,
29741 const t_ARG_05& arg_05,
29742 const t_ARG_06& arg_06,
29743 const t_ARG_07& arg_07,
29744 const t_ARG_08& arg_08);
29745
29746 template <size_t t_INDEX,
29747 class t_ARG_01,
29748 class t_ARG_02,
29749 class t_ARG_03,
29750 class t_ARG_04,
29751 class t_ARG_05,
29752 class t_ARG_06,
29753 class t_ARG_07,
29754 class t_ARG_08,
29755 class t_ARG_09>
29756 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29757 const t_ARG_01& arg_01,
29758 const t_ARG_02& arg_02,
29759 const t_ARG_03& arg_03,
29760 const t_ARG_04& arg_04,
29761 const t_ARG_05& arg_05,
29762 const t_ARG_06& arg_06,
29763 const t_ARG_07& arg_07,
29764 const t_ARG_08& arg_08,
29765 const t_ARG_09& arg_09);
29766
29767 template <size_t t_INDEX,
29768 class t_ARG_01,
29769 class t_ARG_02,
29770 class t_ARG_03,
29771 class t_ARG_04,
29772 class t_ARG_05,
29773 class t_ARG_06,
29774 class t_ARG_07,
29775 class t_ARG_08,
29776 class t_ARG_09,
29777 class t_ARG_10>
29778 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
29779 const t_ARG_01& arg_01,
29780 const t_ARG_02& arg_02,
29781 const t_ARG_03& arg_03,
29782 const t_ARG_04& arg_04,
29783 const t_ARG_05& arg_05,
29784 const t_ARG_06& arg_06,
29785 const t_ARG_07& arg_07,
29786 const t_ARG_08& arg_08,
29787 const t_ARG_09& arg_09,
29788 const t_ARG_10& arg_10);
29789
29790 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
29791
29792 Variant_Base(bsl::allocator_arg_t,
29793 allocator_type allocator,
29794 const Variant& original);
29795 Variant_Base(bsl::allocator_arg_t,
29796 allocator_type allocator,
29797 BloombergLP::bslmf::MovableRef<Variant> original);
29798
29799 template <size_t t_INDEX>
29800 explicit Variant_Base(bsl::allocator_arg_t,
29801 allocator_type allocator,
29803
29804 template <size_t t_INDEX, class t_ARG_01>
29805 explicit Variant_Base(bsl::allocator_arg_t,
29806 allocator_type allocator,
29808 const t_ARG_01& arg_01);
29809
29810 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
29811 explicit Variant_Base(bsl::allocator_arg_t,
29812 allocator_type allocator,
29814 const t_ARG_01& arg_01,
29815 const t_ARG_02& arg_02);
29816
29817 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
29818 explicit Variant_Base(bsl::allocator_arg_t,
29819 allocator_type allocator,
29821 const t_ARG_01& arg_01,
29822 const t_ARG_02& arg_02,
29823 const t_ARG_03& arg_03);
29824
29825 template <size_t t_INDEX,
29826 class t_ARG_01,
29827 class t_ARG_02,
29828 class t_ARG_03,
29829 class t_ARG_04>
29830 explicit Variant_Base(bsl::allocator_arg_t,
29831 allocator_type allocator,
29833 const t_ARG_01& arg_01,
29834 const t_ARG_02& arg_02,
29835 const t_ARG_03& arg_03,
29836 const t_ARG_04& arg_04);
29837
29838 template <size_t t_INDEX,
29839 class t_ARG_01,
29840 class t_ARG_02,
29841 class t_ARG_03,
29842 class t_ARG_04,
29843 class t_ARG_05>
29844 explicit Variant_Base(bsl::allocator_arg_t,
29845 allocator_type allocator,
29847 const t_ARG_01& arg_01,
29848 const t_ARG_02& arg_02,
29849 const t_ARG_03& arg_03,
29850 const t_ARG_04& arg_04,
29851 const t_ARG_05& arg_05);
29852
29853 template <size_t t_INDEX,
29854 class t_ARG_01,
29855 class t_ARG_02,
29856 class t_ARG_03,
29857 class t_ARG_04,
29858 class t_ARG_05,
29859 class t_ARG_06>
29860 explicit Variant_Base(bsl::allocator_arg_t,
29861 allocator_type allocator,
29863 const t_ARG_01& arg_01,
29864 const t_ARG_02& arg_02,
29865 const t_ARG_03& arg_03,
29866 const t_ARG_04& arg_04,
29867 const t_ARG_05& arg_05,
29868 const t_ARG_06& arg_06);
29869
29870 template <size_t t_INDEX,
29871 class t_ARG_01,
29872 class t_ARG_02,
29873 class t_ARG_03,
29874 class t_ARG_04,
29875 class t_ARG_05,
29876 class t_ARG_06,
29877 class t_ARG_07>
29878 explicit Variant_Base(bsl::allocator_arg_t,
29879 allocator_type allocator,
29881 const t_ARG_01& arg_01,
29882 const t_ARG_02& arg_02,
29883 const t_ARG_03& arg_03,
29884 const t_ARG_04& arg_04,
29885 const t_ARG_05& arg_05,
29886 const t_ARG_06& arg_06,
29887 const t_ARG_07& arg_07);
29888
29889 template <size_t t_INDEX,
29890 class t_ARG_01,
29891 class t_ARG_02,
29892 class t_ARG_03,
29893 class t_ARG_04,
29894 class t_ARG_05,
29895 class t_ARG_06,
29896 class t_ARG_07,
29897 class t_ARG_08>
29898 explicit Variant_Base(bsl::allocator_arg_t,
29899 allocator_type allocator,
29901 const t_ARG_01& arg_01,
29902 const t_ARG_02& arg_02,
29903 const t_ARG_03& arg_03,
29904 const t_ARG_04& arg_04,
29905 const t_ARG_05& arg_05,
29906 const t_ARG_06& arg_06,
29907 const t_ARG_07& arg_07,
29908 const t_ARG_08& arg_08);
29909
29910 template <size_t t_INDEX,
29911 class t_ARG_01,
29912 class t_ARG_02,
29913 class t_ARG_03,
29914 class t_ARG_04,
29915 class t_ARG_05,
29916 class t_ARG_06,
29917 class t_ARG_07,
29918 class t_ARG_08,
29919 class t_ARG_09>
29920 explicit Variant_Base(bsl::allocator_arg_t,
29921 allocator_type allocator,
29923 const t_ARG_01& arg_01,
29924 const t_ARG_02& arg_02,
29925 const t_ARG_03& arg_03,
29926 const t_ARG_04& arg_04,
29927 const t_ARG_05& arg_05,
29928 const t_ARG_06& arg_06,
29929 const t_ARG_07& arg_07,
29930 const t_ARG_08& arg_08,
29931 const t_ARG_09& arg_09);
29932
29933 template <size_t t_INDEX,
29934 class t_ARG_01,
29935 class t_ARG_02,
29936 class t_ARG_03,
29937 class t_ARG_04,
29938 class t_ARG_05,
29939 class t_ARG_06,
29940 class t_ARG_07,
29941 class t_ARG_08,
29942 class t_ARG_09,
29943 class t_ARG_10>
29944 explicit Variant_Base(bsl::allocator_arg_t,
29945 allocator_type allocator,
29947 const t_ARG_01& arg_01,
29948 const t_ARG_02& arg_02,
29949 const t_ARG_03& arg_03,
29950 const t_ARG_04& arg_04,
29951 const t_ARG_05& arg_05,
29952 const t_ARG_06& arg_06,
29953 const t_ARG_07& arg_07,
29954 const t_ARG_08& arg_08,
29955 const t_ARG_09& arg_09,
29956 const t_ARG_10& arg_10);
29957
29958#endif
29959
29960 ~Variant_Base();
29961
29962#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
29963 template <size_t t_INDEX, class t_ARGS_01,
29964 class t_ARGS_02,
29965 class t_ARGS_03,
29966 class t_ARGS_04,
29967 class t_ARGS_05,
29968 class t_ARGS_06,
29969 class t_ARGS_07,
29970 class t_ARGS_08,
29971 class t_ARGS_09>
29972 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
29981#else
29982 template <size_t t_INDEX>
29983 void baseEmplace();
29984 template <size_t t_INDEX, class t_ARG_01>
29985 void baseEmplace(const t_ARG_01& arg_01);
29986
29987 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
29988 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
29989
29990 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
29991 void baseEmplace(const t_ARG_01& arg_01,
29992 const t_ARG_02& arg_02,
29993 const t_ARG_03& arg_03);
29994
29995 template <size_t t_INDEX,
29996 class t_ARG_01,
29997 class t_ARG_02,
29998 class t_ARG_03,
29999 class t_ARG_04>
30000 void baseEmplace(const t_ARG_01& arg_01,
30001 const t_ARG_02& arg_02,
30002 const t_ARG_03& arg_03,
30003 const t_ARG_04& arg_04);
30004
30005 template <size_t t_INDEX,
30006 class t_ARG_01,
30007 class t_ARG_02,
30008 class t_ARG_03,
30009 class t_ARG_04,
30010 class t_ARG_05>
30011 void baseEmplace(const t_ARG_01& arg_01,
30012 const t_ARG_02& arg_02,
30013 const t_ARG_03& arg_03,
30014 const t_ARG_04& arg_04,
30015 const t_ARG_05& arg_05);
30016
30017 template <size_t t_INDEX,
30018 class t_ARG_01,
30019 class t_ARG_02,
30020 class t_ARG_03,
30021 class t_ARG_04,
30022 class t_ARG_05,
30023 class t_ARG_06>
30024 void baseEmplace(const t_ARG_01& arg_01,
30025 const t_ARG_02& arg_02,
30026 const t_ARG_03& arg_03,
30027 const t_ARG_04& arg_04,
30028 const t_ARG_05& arg_05,
30029 const t_ARG_06& arg_06);
30030
30031 template <size_t t_INDEX,
30032 class t_ARG_01,
30033 class t_ARG_02,
30034 class t_ARG_03,
30035 class t_ARG_04,
30036 class t_ARG_05,
30037 class t_ARG_06,
30038 class t_ARG_07>
30039 void baseEmplace(const t_ARG_01& arg_01,
30040 const t_ARG_02& arg_02,
30041 const t_ARG_03& arg_03,
30042 const t_ARG_04& arg_04,
30043 const t_ARG_05& arg_05,
30044 const t_ARG_06& arg_06,
30045 const t_ARG_07& arg_07);
30046
30047 template <size_t t_INDEX,
30048 class t_ARG_01,
30049 class t_ARG_02,
30050 class t_ARG_03,
30051 class t_ARG_04,
30052 class t_ARG_05,
30053 class t_ARG_06,
30054 class t_ARG_07,
30055 class t_ARG_08>
30056 void baseEmplace(const t_ARG_01& arg_01,
30057 const t_ARG_02& arg_02,
30058 const t_ARG_03& arg_03,
30059 const t_ARG_04& arg_04,
30060 const t_ARG_05& arg_05,
30061 const t_ARG_06& arg_06,
30062 const t_ARG_07& arg_07,
30063 const t_ARG_08& arg_08);
30064
30065 template <size_t t_INDEX,
30066 class t_ARG_01,
30067 class t_ARG_02,
30068 class t_ARG_03,
30069 class t_ARG_04,
30070 class t_ARG_05,
30071 class t_ARG_06,
30072 class t_ARG_07,
30073 class t_ARG_08,
30074 class t_ARG_09>
30075 void baseEmplace(const t_ARG_01& arg_01,
30076 const t_ARG_02& arg_02,
30077 const t_ARG_03& arg_03,
30078 const t_ARG_04& arg_04,
30079 const t_ARG_05& arg_05,
30080 const t_ARG_06& arg_06,
30081 const t_ARG_07& arg_07,
30082 const t_ARG_08& arg_08,
30083 const t_ARG_09& arg_09);
30084
30085 template <size_t t_INDEX,
30086 class t_ARG_01,
30087 class t_ARG_02,
30088 class t_ARG_03,
30089 class t_ARG_04,
30090 class t_ARG_05,
30091 class t_ARG_06,
30092 class t_ARG_07,
30093 class t_ARG_08,
30094 class t_ARG_09,
30095 class t_ARG_10>
30096 void baseEmplace(const t_ARG_01& arg_01,
30097 const t_ARG_02& arg_02,
30098 const t_ARG_03& arg_03,
30099 const t_ARG_04& arg_04,
30100 const t_ARG_05& arg_05,
30101 const t_ARG_06& arg_06,
30102 const t_ARG_07& arg_07,
30103 const t_ARG_08& arg_08,
30104 const t_ARG_09& arg_09,
30105 const t_ARG_10& arg_10);
30106#endif
30107
30108 Variant_Base& operator=(const Variant_Base& rhs);
30109
30110 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
30111
30113};
30114#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 9
30115
30116#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 10
30117template <class t_HEAD, class t_TAIL_01,
30118 class t_TAIL_02,
30119 class t_TAIL_03,
30120 class t_TAIL_04,
30121 class t_TAIL_05,
30122 class t_TAIL_06,
30123 class t_TAIL_07,
30124 class t_TAIL_08,
30125 class t_TAIL_09,
30126 class t_TAIL_10>
30127struct Variant_Base<t_HEAD, t_TAIL_01,
30128 t_TAIL_02,
30129 t_TAIL_03,
30130 t_TAIL_04,
30131 t_TAIL_05,
30132 t_TAIL_06,
30133 t_TAIL_07,
30134 t_TAIL_08,
30135 t_TAIL_09,
30136 t_TAIL_10>
30137: public BloombergLP::bslstl::Variant_AllocatorBase<
30138 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
30139 t_TAIL_01,
30140 t_TAIL_02,
30141 t_TAIL_03,
30142 t_TAIL_04,
30143 t_TAIL_05,
30144 t_TAIL_06,
30145 t_TAIL_07,
30146 t_TAIL_08,
30147 t_TAIL_09,
30148 t_TAIL_10>::value> {
30149
30150 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
30151 typedef BloombergLP::bslstl::Variant_AllocatorBase<
30152 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
30153 t_TAIL_01,
30154 t_TAIL_02,
30155 t_TAIL_03,
30156 t_TAIL_04,
30157 t_TAIL_05,
30158 t_TAIL_06,
30159 t_TAIL_07,
30160 t_TAIL_08,
30161 t_TAIL_09,
30162 t_TAIL_10>::value>
30163 AllocBase;
30164 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
30165 t_TAIL_02,
30166 t_TAIL_03,
30167 t_TAIL_04,
30168 t_TAIL_05,
30169 t_TAIL_06,
30170 t_TAIL_07,
30171 t_TAIL_08,
30172 t_TAIL_09,
30173 t_TAIL_10>
30174 Variant_Union;
30175 typedef bsl::variant<t_HEAD, t_TAIL_01,
30176 t_TAIL_02,
30177 t_TAIL_03,
30178 t_TAIL_04,
30179 t_TAIL_05,
30180 t_TAIL_06,
30181 t_TAIL_07,
30182 t_TAIL_08,
30183 t_TAIL_09,
30184 t_TAIL_10> Variant;
30185
30186 struct NoAlloc {
30187 };
30188
30189 typedef typename bsl::conditional<
30190 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
30191 t_TAIL_01,
30192 t_TAIL_02,
30193 t_TAIL_03,
30194 t_TAIL_04,
30195 t_TAIL_05,
30196 t_TAIL_06,
30197 t_TAIL_07,
30198 t_TAIL_08,
30199 t_TAIL_09,
30200 t_TAIL_10>::value,
30202 NoAlloc>::type allocator_type;
30203
30204
30205 size_t d_type;
30206
30207 Variant_Union d_union;
30208
30210 Variant_Base,
30211 BloombergLP::bslma::UsesBslmaAllocator,
30212 (BloombergLP::bslstl::
30213 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
30214 t_TAIL_02,
30215 t_TAIL_03,
30216 t_TAIL_04,
30217 t_TAIL_05,
30218 t_TAIL_06,
30219 t_TAIL_07,
30220 t_TAIL_08,
30221 t_TAIL_09,
30222 t_TAIL_10>::value));
30224 Variant_Base,
30225 BloombergLP::bslmf::UsesAllocatorArgT,
30226 (BloombergLP::bslstl::
30227 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
30228 t_TAIL_02,
30229 t_TAIL_03,
30230 t_TAIL_04,
30231 t_TAIL_05,
30232 t_TAIL_06,
30233 t_TAIL_07,
30234 t_TAIL_08,
30235 t_TAIL_09,
30236 t_TAIL_10>::value));
30238 Variant_Base,
30239 BloombergLP::bslmf::IsBitwiseMoveable,
30240 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
30241 t_TAIL_01,
30242 t_TAIL_02,
30243 t_TAIL_03,
30244 t_TAIL_04,
30245 t_TAIL_05,
30246 t_TAIL_06,
30247 t_TAIL_07,
30248 t_TAIL_08,
30249 t_TAIL_09,
30250 t_TAIL_10>::value));
30251
30252#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
30253 Variant_Base();
30254
30255 Variant_Base(const Variant_Base& original);
30256
30257 Variant_Base(Variant_Base&& original);
30258
30259#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
30260 Variant_Base(Variant_ConstructFromStdTag, size_t index);
30261#endif
30262
30263 template <size_t t_INDEX, class t_ARGS_01,
30264 class t_ARGS_02,
30265 class t_ARGS_03,
30266 class t_ARGS_04,
30267 class t_ARGS_05,
30268 class t_ARGS_06,
30269 class t_ARGS_07,
30270 class t_ARGS_08,
30271 class t_ARGS_09,
30272 class t_ARGS_10>
30273 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30274 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
30275 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
30276 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
30277 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
30278 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
30279 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
30280 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
30281 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
30282 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
30283 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10);
30284
30285
30286 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
30287
30288 Variant_Base(bsl::allocator_arg_t,
30289 allocator_type allocator,
30290 const Variant& original);
30291 Variant_Base(bsl::allocator_arg_t,
30292 allocator_type allocator,
30293 Variant&& original);
30294
30295#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
30296 Variant_Base(bsl::allocator_arg_t,
30297 allocator_type allocator,
30298 Variant_ConstructFromStdTag,
30299 size_t index);
30300#endif
30301
30302 template <size_t t_INDEX, class t_ARGS_01,
30303 class t_ARGS_02,
30304 class t_ARGS_03,
30305 class t_ARGS_04,
30306 class t_ARGS_05,
30307 class t_ARGS_06,
30308 class t_ARGS_07,
30309 class t_ARGS_08,
30310 class t_ARGS_09,
30311 class t_ARGS_10>
30312 explicit Variant_Base(bsl::allocator_arg_t,
30313 allocator_type allocator,
30315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
30316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
30317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
30318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
30319 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
30320 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
30321 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
30322 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
30323 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
30324 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10);
30325
30326#else
30327
30328 Variant_Base();
30329
30330 Variant_Base(const Variant& original);
30331
30332 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
30333
30334 template <size_t t_INDEX>
30335 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
30336
30337 template <size_t t_INDEX, class t_ARG_01>
30338 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30339 const t_ARG_01& arg_01);
30340
30341 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
30342 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30343 const t_ARG_01& arg_01,
30344 const t_ARG_02& arg_02);
30345
30346 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
30347 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30348 const t_ARG_01& arg_01,
30349 const t_ARG_02& arg_02,
30350 const t_ARG_03& arg_03);
30351
30352 template <size_t t_INDEX,
30353 class t_ARG_01,
30354 class t_ARG_02,
30355 class t_ARG_03,
30356 class t_ARG_04>
30357 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30358 const t_ARG_01& arg_01,
30359 const t_ARG_02& arg_02,
30360 const t_ARG_03& arg_03,
30361 const t_ARG_04& arg_04);
30362
30363 template <size_t t_INDEX,
30364 class t_ARG_01,
30365 class t_ARG_02,
30366 class t_ARG_03,
30367 class t_ARG_04,
30368 class t_ARG_05>
30369 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30370 const t_ARG_01& arg_01,
30371 const t_ARG_02& arg_02,
30372 const t_ARG_03& arg_03,
30373 const t_ARG_04& arg_04,
30374 const t_ARG_05& arg_05);
30375
30376 template <size_t t_INDEX,
30377 class t_ARG_01,
30378 class t_ARG_02,
30379 class t_ARG_03,
30380 class t_ARG_04,
30381 class t_ARG_05,
30382 class t_ARG_06>
30383 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30384 const t_ARG_01& arg_01,
30385 const t_ARG_02& arg_02,
30386 const t_ARG_03& arg_03,
30387 const t_ARG_04& arg_04,
30388 const t_ARG_05& arg_05,
30389 const t_ARG_06& arg_06);
30390
30391 template <size_t t_INDEX,
30392 class t_ARG_01,
30393 class t_ARG_02,
30394 class t_ARG_03,
30395 class t_ARG_04,
30396 class t_ARG_05,
30397 class t_ARG_06,
30398 class t_ARG_07>
30399 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30400 const t_ARG_01& arg_01,
30401 const t_ARG_02& arg_02,
30402 const t_ARG_03& arg_03,
30403 const t_ARG_04& arg_04,
30404 const t_ARG_05& arg_05,
30405 const t_ARG_06& arg_06,
30406 const t_ARG_07& arg_07);
30407
30408 template <size_t t_INDEX,
30409 class t_ARG_01,
30410 class t_ARG_02,
30411 class t_ARG_03,
30412 class t_ARG_04,
30413 class t_ARG_05,
30414 class t_ARG_06,
30415 class t_ARG_07,
30416 class t_ARG_08>
30417 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30418 const t_ARG_01& arg_01,
30419 const t_ARG_02& arg_02,
30420 const t_ARG_03& arg_03,
30421 const t_ARG_04& arg_04,
30422 const t_ARG_05& arg_05,
30423 const t_ARG_06& arg_06,
30424 const t_ARG_07& arg_07,
30425 const t_ARG_08& arg_08);
30426
30427 template <size_t t_INDEX,
30428 class t_ARG_01,
30429 class t_ARG_02,
30430 class t_ARG_03,
30431 class t_ARG_04,
30432 class t_ARG_05,
30433 class t_ARG_06,
30434 class t_ARG_07,
30435 class t_ARG_08,
30436 class t_ARG_09>
30437 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30438 const t_ARG_01& arg_01,
30439 const t_ARG_02& arg_02,
30440 const t_ARG_03& arg_03,
30441 const t_ARG_04& arg_04,
30442 const t_ARG_05& arg_05,
30443 const t_ARG_06& arg_06,
30444 const t_ARG_07& arg_07,
30445 const t_ARG_08& arg_08,
30446 const t_ARG_09& arg_09);
30447
30448 template <size_t t_INDEX,
30449 class t_ARG_01,
30450 class t_ARG_02,
30451 class t_ARG_03,
30452 class t_ARG_04,
30453 class t_ARG_05,
30454 class t_ARG_06,
30455 class t_ARG_07,
30456 class t_ARG_08,
30457 class t_ARG_09,
30458 class t_ARG_10>
30459 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30460 const t_ARG_01& arg_01,
30461 const t_ARG_02& arg_02,
30462 const t_ARG_03& arg_03,
30463 const t_ARG_04& arg_04,
30464 const t_ARG_05& arg_05,
30465 const t_ARG_06& arg_06,
30466 const t_ARG_07& arg_07,
30467 const t_ARG_08& arg_08,
30468 const t_ARG_09& arg_09,
30469 const t_ARG_10& arg_10);
30470
30471 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
30472
30473 Variant_Base(bsl::allocator_arg_t,
30474 allocator_type allocator,
30475 const Variant& original);
30476 Variant_Base(bsl::allocator_arg_t,
30477 allocator_type allocator,
30478 BloombergLP::bslmf::MovableRef<Variant> original);
30479
30480 template <size_t t_INDEX>
30481 explicit Variant_Base(bsl::allocator_arg_t,
30482 allocator_type allocator,
30484
30485 template <size_t t_INDEX, class t_ARG_01>
30486 explicit Variant_Base(bsl::allocator_arg_t,
30487 allocator_type allocator,
30489 const t_ARG_01& arg_01);
30490
30491 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
30492 explicit Variant_Base(bsl::allocator_arg_t,
30493 allocator_type allocator,
30495 const t_ARG_01& arg_01,
30496 const t_ARG_02& arg_02);
30497
30498 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
30499 explicit Variant_Base(bsl::allocator_arg_t,
30500 allocator_type allocator,
30502 const t_ARG_01& arg_01,
30503 const t_ARG_02& arg_02,
30504 const t_ARG_03& arg_03);
30505
30506 template <size_t t_INDEX,
30507 class t_ARG_01,
30508 class t_ARG_02,
30509 class t_ARG_03,
30510 class t_ARG_04>
30511 explicit Variant_Base(bsl::allocator_arg_t,
30512 allocator_type allocator,
30514 const t_ARG_01& arg_01,
30515 const t_ARG_02& arg_02,
30516 const t_ARG_03& arg_03,
30517 const t_ARG_04& arg_04);
30518
30519 template <size_t t_INDEX,
30520 class t_ARG_01,
30521 class t_ARG_02,
30522 class t_ARG_03,
30523 class t_ARG_04,
30524 class t_ARG_05>
30525 explicit Variant_Base(bsl::allocator_arg_t,
30526 allocator_type allocator,
30528 const t_ARG_01& arg_01,
30529 const t_ARG_02& arg_02,
30530 const t_ARG_03& arg_03,
30531 const t_ARG_04& arg_04,
30532 const t_ARG_05& arg_05);
30533
30534 template <size_t t_INDEX,
30535 class t_ARG_01,
30536 class t_ARG_02,
30537 class t_ARG_03,
30538 class t_ARG_04,
30539 class t_ARG_05,
30540 class t_ARG_06>
30541 explicit Variant_Base(bsl::allocator_arg_t,
30542 allocator_type allocator,
30544 const t_ARG_01& arg_01,
30545 const t_ARG_02& arg_02,
30546 const t_ARG_03& arg_03,
30547 const t_ARG_04& arg_04,
30548 const t_ARG_05& arg_05,
30549 const t_ARG_06& arg_06);
30550
30551 template <size_t t_INDEX,
30552 class t_ARG_01,
30553 class t_ARG_02,
30554 class t_ARG_03,
30555 class t_ARG_04,
30556 class t_ARG_05,
30557 class t_ARG_06,
30558 class t_ARG_07>
30559 explicit Variant_Base(bsl::allocator_arg_t,
30560 allocator_type allocator,
30562 const t_ARG_01& arg_01,
30563 const t_ARG_02& arg_02,
30564 const t_ARG_03& arg_03,
30565 const t_ARG_04& arg_04,
30566 const t_ARG_05& arg_05,
30567 const t_ARG_06& arg_06,
30568 const t_ARG_07& arg_07);
30569
30570 template <size_t t_INDEX,
30571 class t_ARG_01,
30572 class t_ARG_02,
30573 class t_ARG_03,
30574 class t_ARG_04,
30575 class t_ARG_05,
30576 class t_ARG_06,
30577 class t_ARG_07,
30578 class t_ARG_08>
30579 explicit Variant_Base(bsl::allocator_arg_t,
30580 allocator_type allocator,
30582 const t_ARG_01& arg_01,
30583 const t_ARG_02& arg_02,
30584 const t_ARG_03& arg_03,
30585 const t_ARG_04& arg_04,
30586 const t_ARG_05& arg_05,
30587 const t_ARG_06& arg_06,
30588 const t_ARG_07& arg_07,
30589 const t_ARG_08& arg_08);
30590
30591 template <size_t t_INDEX,
30592 class t_ARG_01,
30593 class t_ARG_02,
30594 class t_ARG_03,
30595 class t_ARG_04,
30596 class t_ARG_05,
30597 class t_ARG_06,
30598 class t_ARG_07,
30599 class t_ARG_08,
30600 class t_ARG_09>
30601 explicit Variant_Base(bsl::allocator_arg_t,
30602 allocator_type allocator,
30604 const t_ARG_01& arg_01,
30605 const t_ARG_02& arg_02,
30606 const t_ARG_03& arg_03,
30607 const t_ARG_04& arg_04,
30608 const t_ARG_05& arg_05,
30609 const t_ARG_06& arg_06,
30610 const t_ARG_07& arg_07,
30611 const t_ARG_08& arg_08,
30612 const t_ARG_09& arg_09);
30613
30614 template <size_t t_INDEX,
30615 class t_ARG_01,
30616 class t_ARG_02,
30617 class t_ARG_03,
30618 class t_ARG_04,
30619 class t_ARG_05,
30620 class t_ARG_06,
30621 class t_ARG_07,
30622 class t_ARG_08,
30623 class t_ARG_09,
30624 class t_ARG_10>
30625 explicit Variant_Base(bsl::allocator_arg_t,
30626 allocator_type allocator,
30628 const t_ARG_01& arg_01,
30629 const t_ARG_02& arg_02,
30630 const t_ARG_03& arg_03,
30631 const t_ARG_04& arg_04,
30632 const t_ARG_05& arg_05,
30633 const t_ARG_06& arg_06,
30634 const t_ARG_07& arg_07,
30635 const t_ARG_08& arg_08,
30636 const t_ARG_09& arg_09,
30637 const t_ARG_10& arg_10);
30638
30639#endif
30640
30641 ~Variant_Base();
30642
30643#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
30644 template <size_t t_INDEX, class t_ARGS_01,
30645 class t_ARGS_02,
30646 class t_ARGS_03,
30647 class t_ARGS_04,
30648 class t_ARGS_05,
30649 class t_ARGS_06,
30650 class t_ARGS_07,
30651 class t_ARGS_08,
30652 class t_ARGS_09,
30653 class t_ARGS_10>
30654 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
30664#else
30665 template <size_t t_INDEX>
30666 void baseEmplace();
30667 template <size_t t_INDEX, class t_ARG_01>
30668 void baseEmplace(const t_ARG_01& arg_01);
30669
30670 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
30671 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
30672
30673 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
30674 void baseEmplace(const t_ARG_01& arg_01,
30675 const t_ARG_02& arg_02,
30676 const t_ARG_03& arg_03);
30677
30678 template <size_t t_INDEX,
30679 class t_ARG_01,
30680 class t_ARG_02,
30681 class t_ARG_03,
30682 class t_ARG_04>
30683 void baseEmplace(const t_ARG_01& arg_01,
30684 const t_ARG_02& arg_02,
30685 const t_ARG_03& arg_03,
30686 const t_ARG_04& arg_04);
30687
30688 template <size_t t_INDEX,
30689 class t_ARG_01,
30690 class t_ARG_02,
30691 class t_ARG_03,
30692 class t_ARG_04,
30693 class t_ARG_05>
30694 void baseEmplace(const t_ARG_01& arg_01,
30695 const t_ARG_02& arg_02,
30696 const t_ARG_03& arg_03,
30697 const t_ARG_04& arg_04,
30698 const t_ARG_05& arg_05);
30699
30700 template <size_t t_INDEX,
30701 class t_ARG_01,
30702 class t_ARG_02,
30703 class t_ARG_03,
30704 class t_ARG_04,
30705 class t_ARG_05,
30706 class t_ARG_06>
30707 void baseEmplace(const t_ARG_01& arg_01,
30708 const t_ARG_02& arg_02,
30709 const t_ARG_03& arg_03,
30710 const t_ARG_04& arg_04,
30711 const t_ARG_05& arg_05,
30712 const t_ARG_06& arg_06);
30713
30714 template <size_t t_INDEX,
30715 class t_ARG_01,
30716 class t_ARG_02,
30717 class t_ARG_03,
30718 class t_ARG_04,
30719 class t_ARG_05,
30720 class t_ARG_06,
30721 class t_ARG_07>
30722 void baseEmplace(const t_ARG_01& arg_01,
30723 const t_ARG_02& arg_02,
30724 const t_ARG_03& arg_03,
30725 const t_ARG_04& arg_04,
30726 const t_ARG_05& arg_05,
30727 const t_ARG_06& arg_06,
30728 const t_ARG_07& arg_07);
30729
30730 template <size_t t_INDEX,
30731 class t_ARG_01,
30732 class t_ARG_02,
30733 class t_ARG_03,
30734 class t_ARG_04,
30735 class t_ARG_05,
30736 class t_ARG_06,
30737 class t_ARG_07,
30738 class t_ARG_08>
30739 void baseEmplace(const t_ARG_01& arg_01,
30740 const t_ARG_02& arg_02,
30741 const t_ARG_03& arg_03,
30742 const t_ARG_04& arg_04,
30743 const t_ARG_05& arg_05,
30744 const t_ARG_06& arg_06,
30745 const t_ARG_07& arg_07,
30746 const t_ARG_08& arg_08);
30747
30748 template <size_t t_INDEX,
30749 class t_ARG_01,
30750 class t_ARG_02,
30751 class t_ARG_03,
30752 class t_ARG_04,
30753 class t_ARG_05,
30754 class t_ARG_06,
30755 class t_ARG_07,
30756 class t_ARG_08,
30757 class t_ARG_09>
30758 void baseEmplace(const t_ARG_01& arg_01,
30759 const t_ARG_02& arg_02,
30760 const t_ARG_03& arg_03,
30761 const t_ARG_04& arg_04,
30762 const t_ARG_05& arg_05,
30763 const t_ARG_06& arg_06,
30764 const t_ARG_07& arg_07,
30765 const t_ARG_08& arg_08,
30766 const t_ARG_09& arg_09);
30767
30768 template <size_t t_INDEX,
30769 class t_ARG_01,
30770 class t_ARG_02,
30771 class t_ARG_03,
30772 class t_ARG_04,
30773 class t_ARG_05,
30774 class t_ARG_06,
30775 class t_ARG_07,
30776 class t_ARG_08,
30777 class t_ARG_09,
30778 class t_ARG_10>
30779 void baseEmplace(const t_ARG_01& arg_01,
30780 const t_ARG_02& arg_02,
30781 const t_ARG_03& arg_03,
30782 const t_ARG_04& arg_04,
30783 const t_ARG_05& arg_05,
30784 const t_ARG_06& arg_06,
30785 const t_ARG_07& arg_07,
30786 const t_ARG_08& arg_08,
30787 const t_ARG_09& arg_09,
30788 const t_ARG_10& arg_10);
30789#endif
30790
30791 Variant_Base& operator=(const Variant_Base& rhs);
30792
30793 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
30794
30796};
30797#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 10
30798
30799#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 11
30800template <class t_HEAD, class t_TAIL_01,
30801 class t_TAIL_02,
30802 class t_TAIL_03,
30803 class t_TAIL_04,
30804 class t_TAIL_05,
30805 class t_TAIL_06,
30806 class t_TAIL_07,
30807 class t_TAIL_08,
30808 class t_TAIL_09,
30809 class t_TAIL_10,
30810 class t_TAIL_11>
30811struct Variant_Base<t_HEAD, t_TAIL_01,
30812 t_TAIL_02,
30813 t_TAIL_03,
30814 t_TAIL_04,
30815 t_TAIL_05,
30816 t_TAIL_06,
30817 t_TAIL_07,
30818 t_TAIL_08,
30819 t_TAIL_09,
30820 t_TAIL_10,
30821 t_TAIL_11>
30822: public BloombergLP::bslstl::Variant_AllocatorBase<
30823 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
30824 t_TAIL_01,
30825 t_TAIL_02,
30826 t_TAIL_03,
30827 t_TAIL_04,
30828 t_TAIL_05,
30829 t_TAIL_06,
30830 t_TAIL_07,
30831 t_TAIL_08,
30832 t_TAIL_09,
30833 t_TAIL_10,
30834 t_TAIL_11>::value> {
30835
30836 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
30837 typedef BloombergLP::bslstl::Variant_AllocatorBase<
30838 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
30839 t_TAIL_01,
30840 t_TAIL_02,
30841 t_TAIL_03,
30842 t_TAIL_04,
30843 t_TAIL_05,
30844 t_TAIL_06,
30845 t_TAIL_07,
30846 t_TAIL_08,
30847 t_TAIL_09,
30848 t_TAIL_10,
30849 t_TAIL_11>::value>
30850 AllocBase;
30851 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
30852 t_TAIL_02,
30853 t_TAIL_03,
30854 t_TAIL_04,
30855 t_TAIL_05,
30856 t_TAIL_06,
30857 t_TAIL_07,
30858 t_TAIL_08,
30859 t_TAIL_09,
30860 t_TAIL_10,
30861 t_TAIL_11>
30862 Variant_Union;
30863 typedef bsl::variant<t_HEAD, t_TAIL_01,
30864 t_TAIL_02,
30865 t_TAIL_03,
30866 t_TAIL_04,
30867 t_TAIL_05,
30868 t_TAIL_06,
30869 t_TAIL_07,
30870 t_TAIL_08,
30871 t_TAIL_09,
30872 t_TAIL_10,
30873 t_TAIL_11> Variant;
30874
30875 struct NoAlloc {
30876 };
30877
30878 typedef typename bsl::conditional<
30879 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
30880 t_TAIL_01,
30881 t_TAIL_02,
30882 t_TAIL_03,
30883 t_TAIL_04,
30884 t_TAIL_05,
30885 t_TAIL_06,
30886 t_TAIL_07,
30887 t_TAIL_08,
30888 t_TAIL_09,
30889 t_TAIL_10,
30890 t_TAIL_11>::value,
30892 NoAlloc>::type allocator_type;
30893
30894
30895 size_t d_type;
30896
30897 Variant_Union d_union;
30898
30900 Variant_Base,
30901 BloombergLP::bslma::UsesBslmaAllocator,
30902 (BloombergLP::bslstl::
30903 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
30904 t_TAIL_02,
30905 t_TAIL_03,
30906 t_TAIL_04,
30907 t_TAIL_05,
30908 t_TAIL_06,
30909 t_TAIL_07,
30910 t_TAIL_08,
30911 t_TAIL_09,
30912 t_TAIL_10,
30913 t_TAIL_11>::value));
30915 Variant_Base,
30916 BloombergLP::bslmf::UsesAllocatorArgT,
30917 (BloombergLP::bslstl::
30918 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
30919 t_TAIL_02,
30920 t_TAIL_03,
30921 t_TAIL_04,
30922 t_TAIL_05,
30923 t_TAIL_06,
30924 t_TAIL_07,
30925 t_TAIL_08,
30926 t_TAIL_09,
30927 t_TAIL_10,
30928 t_TAIL_11>::value));
30930 Variant_Base,
30931 BloombergLP::bslmf::IsBitwiseMoveable,
30932 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
30933 t_TAIL_01,
30934 t_TAIL_02,
30935 t_TAIL_03,
30936 t_TAIL_04,
30937 t_TAIL_05,
30938 t_TAIL_06,
30939 t_TAIL_07,
30940 t_TAIL_08,
30941 t_TAIL_09,
30942 t_TAIL_10,
30943 t_TAIL_11>::value));
30944
30945#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
30946 Variant_Base();
30947
30948 Variant_Base(const Variant_Base& original);
30949
30950 Variant_Base(Variant_Base&& original);
30951
30952#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
30953 Variant_Base(Variant_ConstructFromStdTag, size_t index);
30954#endif
30955
30956 template <size_t t_INDEX, class t_ARGS_01,
30957 class t_ARGS_02,
30958 class t_ARGS_03,
30959 class t_ARGS_04,
30960 class t_ARGS_05,
30961 class t_ARGS_06,
30962 class t_ARGS_07,
30963 class t_ARGS_08,
30964 class t_ARGS_09,
30965 class t_ARGS_10,
30966 class t_ARGS_11>
30967 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
30968 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
30969 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
30970 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
30971 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
30972 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
30973 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
30974 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
30975 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
30976 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
30977 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
30978 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11);
30979
30980
30981 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
30982
30983 Variant_Base(bsl::allocator_arg_t,
30984 allocator_type allocator,
30985 const Variant& original);
30986 Variant_Base(bsl::allocator_arg_t,
30987 allocator_type allocator,
30988 Variant&& original);
30989
30990#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
30991 Variant_Base(bsl::allocator_arg_t,
30992 allocator_type allocator,
30993 Variant_ConstructFromStdTag,
30994 size_t index);
30995#endif
30996
30997 template <size_t t_INDEX, class t_ARGS_01,
30998 class t_ARGS_02,
30999 class t_ARGS_03,
31000 class t_ARGS_04,
31001 class t_ARGS_05,
31002 class t_ARGS_06,
31003 class t_ARGS_07,
31004 class t_ARGS_08,
31005 class t_ARGS_09,
31006 class t_ARGS_10,
31007 class t_ARGS_11>
31008 explicit Variant_Base(bsl::allocator_arg_t,
31009 allocator_type allocator,
31011 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
31012 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
31013 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
31014 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
31015 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
31016 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
31017 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
31018 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
31019 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
31020 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
31021 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11);
31022
31023#else
31024
31025 Variant_Base();
31026
31027 Variant_Base(const Variant& original);
31028
31029 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
31030
31031 template <size_t t_INDEX>
31032 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
31033
31034 template <size_t t_INDEX, class t_ARG_01>
31035 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31036 const t_ARG_01& arg_01);
31037
31038 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
31039 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31040 const t_ARG_01& arg_01,
31041 const t_ARG_02& arg_02);
31042
31043 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
31044 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31045 const t_ARG_01& arg_01,
31046 const t_ARG_02& arg_02,
31047 const t_ARG_03& arg_03);
31048
31049 template <size_t t_INDEX,
31050 class t_ARG_01,
31051 class t_ARG_02,
31052 class t_ARG_03,
31053 class t_ARG_04>
31054 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31055 const t_ARG_01& arg_01,
31056 const t_ARG_02& arg_02,
31057 const t_ARG_03& arg_03,
31058 const t_ARG_04& arg_04);
31059
31060 template <size_t t_INDEX,
31061 class t_ARG_01,
31062 class t_ARG_02,
31063 class t_ARG_03,
31064 class t_ARG_04,
31065 class t_ARG_05>
31066 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31067 const t_ARG_01& arg_01,
31068 const t_ARG_02& arg_02,
31069 const t_ARG_03& arg_03,
31070 const t_ARG_04& arg_04,
31071 const t_ARG_05& arg_05);
31072
31073 template <size_t t_INDEX,
31074 class t_ARG_01,
31075 class t_ARG_02,
31076 class t_ARG_03,
31077 class t_ARG_04,
31078 class t_ARG_05,
31079 class t_ARG_06>
31080 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31081 const t_ARG_01& arg_01,
31082 const t_ARG_02& arg_02,
31083 const t_ARG_03& arg_03,
31084 const t_ARG_04& arg_04,
31085 const t_ARG_05& arg_05,
31086 const t_ARG_06& arg_06);
31087
31088 template <size_t t_INDEX,
31089 class t_ARG_01,
31090 class t_ARG_02,
31091 class t_ARG_03,
31092 class t_ARG_04,
31093 class t_ARG_05,
31094 class t_ARG_06,
31095 class t_ARG_07>
31096 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31097 const t_ARG_01& arg_01,
31098 const t_ARG_02& arg_02,
31099 const t_ARG_03& arg_03,
31100 const t_ARG_04& arg_04,
31101 const t_ARG_05& arg_05,
31102 const t_ARG_06& arg_06,
31103 const t_ARG_07& arg_07);
31104
31105 template <size_t t_INDEX,
31106 class t_ARG_01,
31107 class t_ARG_02,
31108 class t_ARG_03,
31109 class t_ARG_04,
31110 class t_ARG_05,
31111 class t_ARG_06,
31112 class t_ARG_07,
31113 class t_ARG_08>
31114 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31115 const t_ARG_01& arg_01,
31116 const t_ARG_02& arg_02,
31117 const t_ARG_03& arg_03,
31118 const t_ARG_04& arg_04,
31119 const t_ARG_05& arg_05,
31120 const t_ARG_06& arg_06,
31121 const t_ARG_07& arg_07,
31122 const t_ARG_08& arg_08);
31123
31124 template <size_t t_INDEX,
31125 class t_ARG_01,
31126 class t_ARG_02,
31127 class t_ARG_03,
31128 class t_ARG_04,
31129 class t_ARG_05,
31130 class t_ARG_06,
31131 class t_ARG_07,
31132 class t_ARG_08,
31133 class t_ARG_09>
31134 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31135 const t_ARG_01& arg_01,
31136 const t_ARG_02& arg_02,
31137 const t_ARG_03& arg_03,
31138 const t_ARG_04& arg_04,
31139 const t_ARG_05& arg_05,
31140 const t_ARG_06& arg_06,
31141 const t_ARG_07& arg_07,
31142 const t_ARG_08& arg_08,
31143 const t_ARG_09& arg_09);
31144
31145 template <size_t t_INDEX,
31146 class t_ARG_01,
31147 class t_ARG_02,
31148 class t_ARG_03,
31149 class t_ARG_04,
31150 class t_ARG_05,
31151 class t_ARG_06,
31152 class t_ARG_07,
31153 class t_ARG_08,
31154 class t_ARG_09,
31155 class t_ARG_10>
31156 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31157 const t_ARG_01& arg_01,
31158 const t_ARG_02& arg_02,
31159 const t_ARG_03& arg_03,
31160 const t_ARG_04& arg_04,
31161 const t_ARG_05& arg_05,
31162 const t_ARG_06& arg_06,
31163 const t_ARG_07& arg_07,
31164 const t_ARG_08& arg_08,
31165 const t_ARG_09& arg_09,
31166 const t_ARG_10& arg_10);
31167
31168 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
31169
31170 Variant_Base(bsl::allocator_arg_t,
31171 allocator_type allocator,
31172 const Variant& original);
31173 Variant_Base(bsl::allocator_arg_t,
31174 allocator_type allocator,
31175 BloombergLP::bslmf::MovableRef<Variant> original);
31176
31177 template <size_t t_INDEX>
31178 explicit Variant_Base(bsl::allocator_arg_t,
31179 allocator_type allocator,
31181
31182 template <size_t t_INDEX, class t_ARG_01>
31183 explicit Variant_Base(bsl::allocator_arg_t,
31184 allocator_type allocator,
31186 const t_ARG_01& arg_01);
31187
31188 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
31189 explicit Variant_Base(bsl::allocator_arg_t,
31190 allocator_type allocator,
31192 const t_ARG_01& arg_01,
31193 const t_ARG_02& arg_02);
31194
31195 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
31196 explicit Variant_Base(bsl::allocator_arg_t,
31197 allocator_type allocator,
31199 const t_ARG_01& arg_01,
31200 const t_ARG_02& arg_02,
31201 const t_ARG_03& arg_03);
31202
31203 template <size_t t_INDEX,
31204 class t_ARG_01,
31205 class t_ARG_02,
31206 class t_ARG_03,
31207 class t_ARG_04>
31208 explicit Variant_Base(bsl::allocator_arg_t,
31209 allocator_type allocator,
31211 const t_ARG_01& arg_01,
31212 const t_ARG_02& arg_02,
31213 const t_ARG_03& arg_03,
31214 const t_ARG_04& arg_04);
31215
31216 template <size_t t_INDEX,
31217 class t_ARG_01,
31218 class t_ARG_02,
31219 class t_ARG_03,
31220 class t_ARG_04,
31221 class t_ARG_05>
31222 explicit Variant_Base(bsl::allocator_arg_t,
31223 allocator_type allocator,
31225 const t_ARG_01& arg_01,
31226 const t_ARG_02& arg_02,
31227 const t_ARG_03& arg_03,
31228 const t_ARG_04& arg_04,
31229 const t_ARG_05& arg_05);
31230
31231 template <size_t t_INDEX,
31232 class t_ARG_01,
31233 class t_ARG_02,
31234 class t_ARG_03,
31235 class t_ARG_04,
31236 class t_ARG_05,
31237 class t_ARG_06>
31238 explicit Variant_Base(bsl::allocator_arg_t,
31239 allocator_type allocator,
31241 const t_ARG_01& arg_01,
31242 const t_ARG_02& arg_02,
31243 const t_ARG_03& arg_03,
31244 const t_ARG_04& arg_04,
31245 const t_ARG_05& arg_05,
31246 const t_ARG_06& arg_06);
31247
31248 template <size_t t_INDEX,
31249 class t_ARG_01,
31250 class t_ARG_02,
31251 class t_ARG_03,
31252 class t_ARG_04,
31253 class t_ARG_05,
31254 class t_ARG_06,
31255 class t_ARG_07>
31256 explicit Variant_Base(bsl::allocator_arg_t,
31257 allocator_type allocator,
31259 const t_ARG_01& arg_01,
31260 const t_ARG_02& arg_02,
31261 const t_ARG_03& arg_03,
31262 const t_ARG_04& arg_04,
31263 const t_ARG_05& arg_05,
31264 const t_ARG_06& arg_06,
31265 const t_ARG_07& arg_07);
31266
31267 template <size_t t_INDEX,
31268 class t_ARG_01,
31269 class t_ARG_02,
31270 class t_ARG_03,
31271 class t_ARG_04,
31272 class t_ARG_05,
31273 class t_ARG_06,
31274 class t_ARG_07,
31275 class t_ARG_08>
31276 explicit Variant_Base(bsl::allocator_arg_t,
31277 allocator_type allocator,
31279 const t_ARG_01& arg_01,
31280 const t_ARG_02& arg_02,
31281 const t_ARG_03& arg_03,
31282 const t_ARG_04& arg_04,
31283 const t_ARG_05& arg_05,
31284 const t_ARG_06& arg_06,
31285 const t_ARG_07& arg_07,
31286 const t_ARG_08& arg_08);
31287
31288 template <size_t t_INDEX,
31289 class t_ARG_01,
31290 class t_ARG_02,
31291 class t_ARG_03,
31292 class t_ARG_04,
31293 class t_ARG_05,
31294 class t_ARG_06,
31295 class t_ARG_07,
31296 class t_ARG_08,
31297 class t_ARG_09>
31298 explicit Variant_Base(bsl::allocator_arg_t,
31299 allocator_type allocator,
31301 const t_ARG_01& arg_01,
31302 const t_ARG_02& arg_02,
31303 const t_ARG_03& arg_03,
31304 const t_ARG_04& arg_04,
31305 const t_ARG_05& arg_05,
31306 const t_ARG_06& arg_06,
31307 const t_ARG_07& arg_07,
31308 const t_ARG_08& arg_08,
31309 const t_ARG_09& arg_09);
31310
31311 template <size_t t_INDEX,
31312 class t_ARG_01,
31313 class t_ARG_02,
31314 class t_ARG_03,
31315 class t_ARG_04,
31316 class t_ARG_05,
31317 class t_ARG_06,
31318 class t_ARG_07,
31319 class t_ARG_08,
31320 class t_ARG_09,
31321 class t_ARG_10>
31322 explicit Variant_Base(bsl::allocator_arg_t,
31323 allocator_type allocator,
31325 const t_ARG_01& arg_01,
31326 const t_ARG_02& arg_02,
31327 const t_ARG_03& arg_03,
31328 const t_ARG_04& arg_04,
31329 const t_ARG_05& arg_05,
31330 const t_ARG_06& arg_06,
31331 const t_ARG_07& arg_07,
31332 const t_ARG_08& arg_08,
31333 const t_ARG_09& arg_09,
31334 const t_ARG_10& arg_10);
31335
31336#endif
31337
31338 ~Variant_Base();
31339
31340#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
31341 template <size_t t_INDEX, class t_ARGS_01,
31342 class t_ARGS_02,
31343 class t_ARGS_03,
31344 class t_ARGS_04,
31345 class t_ARGS_05,
31346 class t_ARGS_06,
31347 class t_ARGS_07,
31348 class t_ARGS_08,
31349 class t_ARGS_09,
31350 class t_ARGS_10,
31351 class t_ARGS_11>
31352 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
31363#else
31364 template <size_t t_INDEX>
31365 void baseEmplace();
31366 template <size_t t_INDEX, class t_ARG_01>
31367 void baseEmplace(const t_ARG_01& arg_01);
31368
31369 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
31370 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
31371
31372 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
31373 void baseEmplace(const t_ARG_01& arg_01,
31374 const t_ARG_02& arg_02,
31375 const t_ARG_03& arg_03);
31376
31377 template <size_t t_INDEX,
31378 class t_ARG_01,
31379 class t_ARG_02,
31380 class t_ARG_03,
31381 class t_ARG_04>
31382 void baseEmplace(const t_ARG_01& arg_01,
31383 const t_ARG_02& arg_02,
31384 const t_ARG_03& arg_03,
31385 const t_ARG_04& arg_04);
31386
31387 template <size_t t_INDEX,
31388 class t_ARG_01,
31389 class t_ARG_02,
31390 class t_ARG_03,
31391 class t_ARG_04,
31392 class t_ARG_05>
31393 void baseEmplace(const t_ARG_01& arg_01,
31394 const t_ARG_02& arg_02,
31395 const t_ARG_03& arg_03,
31396 const t_ARG_04& arg_04,
31397 const t_ARG_05& arg_05);
31398
31399 template <size_t t_INDEX,
31400 class t_ARG_01,
31401 class t_ARG_02,
31402 class t_ARG_03,
31403 class t_ARG_04,
31404 class t_ARG_05,
31405 class t_ARG_06>
31406 void baseEmplace(const t_ARG_01& arg_01,
31407 const t_ARG_02& arg_02,
31408 const t_ARG_03& arg_03,
31409 const t_ARG_04& arg_04,
31410 const t_ARG_05& arg_05,
31411 const t_ARG_06& arg_06);
31412
31413 template <size_t t_INDEX,
31414 class t_ARG_01,
31415 class t_ARG_02,
31416 class t_ARG_03,
31417 class t_ARG_04,
31418 class t_ARG_05,
31419 class t_ARG_06,
31420 class t_ARG_07>
31421 void baseEmplace(const t_ARG_01& arg_01,
31422 const t_ARG_02& arg_02,
31423 const t_ARG_03& arg_03,
31424 const t_ARG_04& arg_04,
31425 const t_ARG_05& arg_05,
31426 const t_ARG_06& arg_06,
31427 const t_ARG_07& arg_07);
31428
31429 template <size_t t_INDEX,
31430 class t_ARG_01,
31431 class t_ARG_02,
31432 class t_ARG_03,
31433 class t_ARG_04,
31434 class t_ARG_05,
31435 class t_ARG_06,
31436 class t_ARG_07,
31437 class t_ARG_08>
31438 void baseEmplace(const t_ARG_01& arg_01,
31439 const t_ARG_02& arg_02,
31440 const t_ARG_03& arg_03,
31441 const t_ARG_04& arg_04,
31442 const t_ARG_05& arg_05,
31443 const t_ARG_06& arg_06,
31444 const t_ARG_07& arg_07,
31445 const t_ARG_08& arg_08);
31446
31447 template <size_t t_INDEX,
31448 class t_ARG_01,
31449 class t_ARG_02,
31450 class t_ARG_03,
31451 class t_ARG_04,
31452 class t_ARG_05,
31453 class t_ARG_06,
31454 class t_ARG_07,
31455 class t_ARG_08,
31456 class t_ARG_09>
31457 void baseEmplace(const t_ARG_01& arg_01,
31458 const t_ARG_02& arg_02,
31459 const t_ARG_03& arg_03,
31460 const t_ARG_04& arg_04,
31461 const t_ARG_05& arg_05,
31462 const t_ARG_06& arg_06,
31463 const t_ARG_07& arg_07,
31464 const t_ARG_08& arg_08,
31465 const t_ARG_09& arg_09);
31466
31467 template <size_t t_INDEX,
31468 class t_ARG_01,
31469 class t_ARG_02,
31470 class t_ARG_03,
31471 class t_ARG_04,
31472 class t_ARG_05,
31473 class t_ARG_06,
31474 class t_ARG_07,
31475 class t_ARG_08,
31476 class t_ARG_09,
31477 class t_ARG_10>
31478 void baseEmplace(const t_ARG_01& arg_01,
31479 const t_ARG_02& arg_02,
31480 const t_ARG_03& arg_03,
31481 const t_ARG_04& arg_04,
31482 const t_ARG_05& arg_05,
31483 const t_ARG_06& arg_06,
31484 const t_ARG_07& arg_07,
31485 const t_ARG_08& arg_08,
31486 const t_ARG_09& arg_09,
31487 const t_ARG_10& arg_10);
31488#endif
31489
31490 Variant_Base& operator=(const Variant_Base& rhs);
31491
31492 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
31493
31495};
31496#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 11
31497
31498#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 12
31499template <class t_HEAD, class t_TAIL_01,
31500 class t_TAIL_02,
31501 class t_TAIL_03,
31502 class t_TAIL_04,
31503 class t_TAIL_05,
31504 class t_TAIL_06,
31505 class t_TAIL_07,
31506 class t_TAIL_08,
31507 class t_TAIL_09,
31508 class t_TAIL_10,
31509 class t_TAIL_11,
31510 class t_TAIL_12>
31511struct Variant_Base<t_HEAD, t_TAIL_01,
31512 t_TAIL_02,
31513 t_TAIL_03,
31514 t_TAIL_04,
31515 t_TAIL_05,
31516 t_TAIL_06,
31517 t_TAIL_07,
31518 t_TAIL_08,
31519 t_TAIL_09,
31520 t_TAIL_10,
31521 t_TAIL_11,
31522 t_TAIL_12>
31523: public BloombergLP::bslstl::Variant_AllocatorBase<
31524 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
31525 t_TAIL_01,
31526 t_TAIL_02,
31527 t_TAIL_03,
31528 t_TAIL_04,
31529 t_TAIL_05,
31530 t_TAIL_06,
31531 t_TAIL_07,
31532 t_TAIL_08,
31533 t_TAIL_09,
31534 t_TAIL_10,
31535 t_TAIL_11,
31536 t_TAIL_12>::value> {
31537
31538 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
31539 typedef BloombergLP::bslstl::Variant_AllocatorBase<
31540 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
31541 t_TAIL_01,
31542 t_TAIL_02,
31543 t_TAIL_03,
31544 t_TAIL_04,
31545 t_TAIL_05,
31546 t_TAIL_06,
31547 t_TAIL_07,
31548 t_TAIL_08,
31549 t_TAIL_09,
31550 t_TAIL_10,
31551 t_TAIL_11,
31552 t_TAIL_12>::value>
31553 AllocBase;
31554 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
31555 t_TAIL_02,
31556 t_TAIL_03,
31557 t_TAIL_04,
31558 t_TAIL_05,
31559 t_TAIL_06,
31560 t_TAIL_07,
31561 t_TAIL_08,
31562 t_TAIL_09,
31563 t_TAIL_10,
31564 t_TAIL_11,
31565 t_TAIL_12>
31566 Variant_Union;
31567 typedef bsl::variant<t_HEAD, t_TAIL_01,
31568 t_TAIL_02,
31569 t_TAIL_03,
31570 t_TAIL_04,
31571 t_TAIL_05,
31572 t_TAIL_06,
31573 t_TAIL_07,
31574 t_TAIL_08,
31575 t_TAIL_09,
31576 t_TAIL_10,
31577 t_TAIL_11,
31578 t_TAIL_12> Variant;
31579
31580 struct NoAlloc {
31581 };
31582
31583 typedef typename bsl::conditional<
31584 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
31585 t_TAIL_01,
31586 t_TAIL_02,
31587 t_TAIL_03,
31588 t_TAIL_04,
31589 t_TAIL_05,
31590 t_TAIL_06,
31591 t_TAIL_07,
31592 t_TAIL_08,
31593 t_TAIL_09,
31594 t_TAIL_10,
31595 t_TAIL_11,
31596 t_TAIL_12>::value,
31598 NoAlloc>::type allocator_type;
31599
31600
31601 size_t d_type;
31602
31603 Variant_Union d_union;
31604
31606 Variant_Base,
31607 BloombergLP::bslma::UsesBslmaAllocator,
31608 (BloombergLP::bslstl::
31609 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
31610 t_TAIL_02,
31611 t_TAIL_03,
31612 t_TAIL_04,
31613 t_TAIL_05,
31614 t_TAIL_06,
31615 t_TAIL_07,
31616 t_TAIL_08,
31617 t_TAIL_09,
31618 t_TAIL_10,
31619 t_TAIL_11,
31620 t_TAIL_12>::value));
31622 Variant_Base,
31623 BloombergLP::bslmf::UsesAllocatorArgT,
31624 (BloombergLP::bslstl::
31625 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
31626 t_TAIL_02,
31627 t_TAIL_03,
31628 t_TAIL_04,
31629 t_TAIL_05,
31630 t_TAIL_06,
31631 t_TAIL_07,
31632 t_TAIL_08,
31633 t_TAIL_09,
31634 t_TAIL_10,
31635 t_TAIL_11,
31636 t_TAIL_12>::value));
31638 Variant_Base,
31639 BloombergLP::bslmf::IsBitwiseMoveable,
31640 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
31641 t_TAIL_01,
31642 t_TAIL_02,
31643 t_TAIL_03,
31644 t_TAIL_04,
31645 t_TAIL_05,
31646 t_TAIL_06,
31647 t_TAIL_07,
31648 t_TAIL_08,
31649 t_TAIL_09,
31650 t_TAIL_10,
31651 t_TAIL_11,
31652 t_TAIL_12>::value));
31653
31654#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
31655 Variant_Base();
31656
31657 Variant_Base(const Variant_Base& original);
31658
31659 Variant_Base(Variant_Base&& original);
31660
31661#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
31662 Variant_Base(Variant_ConstructFromStdTag, size_t index);
31663#endif
31664
31665 template <size_t t_INDEX, class t_ARGS_01,
31666 class t_ARGS_02,
31667 class t_ARGS_03,
31668 class t_ARGS_04,
31669 class t_ARGS_05,
31670 class t_ARGS_06,
31671 class t_ARGS_07,
31672 class t_ARGS_08,
31673 class t_ARGS_09,
31674 class t_ARGS_10,
31675 class t_ARGS_11,
31676 class t_ARGS_12>
31677 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31678 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
31679 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
31680 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
31681 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
31682 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
31683 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
31684 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
31685 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
31686 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
31687 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
31688 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
31689 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12);
31690
31691
31692 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
31693
31694 Variant_Base(bsl::allocator_arg_t,
31695 allocator_type allocator,
31696 const Variant& original);
31697 Variant_Base(bsl::allocator_arg_t,
31698 allocator_type allocator,
31699 Variant&& original);
31700
31701#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
31702 Variant_Base(bsl::allocator_arg_t,
31703 allocator_type allocator,
31704 Variant_ConstructFromStdTag,
31705 size_t index);
31706#endif
31707
31708 template <size_t t_INDEX, class t_ARGS_01,
31709 class t_ARGS_02,
31710 class t_ARGS_03,
31711 class t_ARGS_04,
31712 class t_ARGS_05,
31713 class t_ARGS_06,
31714 class t_ARGS_07,
31715 class t_ARGS_08,
31716 class t_ARGS_09,
31717 class t_ARGS_10,
31718 class t_ARGS_11,
31719 class t_ARGS_12>
31720 explicit Variant_Base(bsl::allocator_arg_t,
31721 allocator_type allocator,
31723 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
31724 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
31725 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
31726 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
31727 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
31728 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
31729 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
31730 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
31731 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
31732 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
31733 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
31734 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12);
31735
31736#else
31737
31738 Variant_Base();
31739
31740 Variant_Base(const Variant& original);
31741
31742 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
31743
31744 template <size_t t_INDEX>
31745 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
31746
31747 template <size_t t_INDEX, class t_ARG_01>
31748 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31749 const t_ARG_01& arg_01);
31750
31751 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
31752 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31753 const t_ARG_01& arg_01,
31754 const t_ARG_02& arg_02);
31755
31756 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
31757 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31758 const t_ARG_01& arg_01,
31759 const t_ARG_02& arg_02,
31760 const t_ARG_03& arg_03);
31761
31762 template <size_t t_INDEX,
31763 class t_ARG_01,
31764 class t_ARG_02,
31765 class t_ARG_03,
31766 class t_ARG_04>
31767 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31768 const t_ARG_01& arg_01,
31769 const t_ARG_02& arg_02,
31770 const t_ARG_03& arg_03,
31771 const t_ARG_04& arg_04);
31772
31773 template <size_t t_INDEX,
31774 class t_ARG_01,
31775 class t_ARG_02,
31776 class t_ARG_03,
31777 class t_ARG_04,
31778 class t_ARG_05>
31779 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31780 const t_ARG_01& arg_01,
31781 const t_ARG_02& arg_02,
31782 const t_ARG_03& arg_03,
31783 const t_ARG_04& arg_04,
31784 const t_ARG_05& arg_05);
31785
31786 template <size_t t_INDEX,
31787 class t_ARG_01,
31788 class t_ARG_02,
31789 class t_ARG_03,
31790 class t_ARG_04,
31791 class t_ARG_05,
31792 class t_ARG_06>
31793 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31794 const t_ARG_01& arg_01,
31795 const t_ARG_02& arg_02,
31796 const t_ARG_03& arg_03,
31797 const t_ARG_04& arg_04,
31798 const t_ARG_05& arg_05,
31799 const t_ARG_06& arg_06);
31800
31801 template <size_t t_INDEX,
31802 class t_ARG_01,
31803 class t_ARG_02,
31804 class t_ARG_03,
31805 class t_ARG_04,
31806 class t_ARG_05,
31807 class t_ARG_06,
31808 class t_ARG_07>
31809 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31810 const t_ARG_01& arg_01,
31811 const t_ARG_02& arg_02,
31812 const t_ARG_03& arg_03,
31813 const t_ARG_04& arg_04,
31814 const t_ARG_05& arg_05,
31815 const t_ARG_06& arg_06,
31816 const t_ARG_07& arg_07);
31817
31818 template <size_t t_INDEX,
31819 class t_ARG_01,
31820 class t_ARG_02,
31821 class t_ARG_03,
31822 class t_ARG_04,
31823 class t_ARG_05,
31824 class t_ARG_06,
31825 class t_ARG_07,
31826 class t_ARG_08>
31827 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31828 const t_ARG_01& arg_01,
31829 const t_ARG_02& arg_02,
31830 const t_ARG_03& arg_03,
31831 const t_ARG_04& arg_04,
31832 const t_ARG_05& arg_05,
31833 const t_ARG_06& arg_06,
31834 const t_ARG_07& arg_07,
31835 const t_ARG_08& arg_08);
31836
31837 template <size_t t_INDEX,
31838 class t_ARG_01,
31839 class t_ARG_02,
31840 class t_ARG_03,
31841 class t_ARG_04,
31842 class t_ARG_05,
31843 class t_ARG_06,
31844 class t_ARG_07,
31845 class t_ARG_08,
31846 class t_ARG_09>
31847 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31848 const t_ARG_01& arg_01,
31849 const t_ARG_02& arg_02,
31850 const t_ARG_03& arg_03,
31851 const t_ARG_04& arg_04,
31852 const t_ARG_05& arg_05,
31853 const t_ARG_06& arg_06,
31854 const t_ARG_07& arg_07,
31855 const t_ARG_08& arg_08,
31856 const t_ARG_09& arg_09);
31857
31858 template <size_t t_INDEX,
31859 class t_ARG_01,
31860 class t_ARG_02,
31861 class t_ARG_03,
31862 class t_ARG_04,
31863 class t_ARG_05,
31864 class t_ARG_06,
31865 class t_ARG_07,
31866 class t_ARG_08,
31867 class t_ARG_09,
31868 class t_ARG_10>
31869 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
31870 const t_ARG_01& arg_01,
31871 const t_ARG_02& arg_02,
31872 const t_ARG_03& arg_03,
31873 const t_ARG_04& arg_04,
31874 const t_ARG_05& arg_05,
31875 const t_ARG_06& arg_06,
31876 const t_ARG_07& arg_07,
31877 const t_ARG_08& arg_08,
31878 const t_ARG_09& arg_09,
31879 const t_ARG_10& arg_10);
31880
31881 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
31882
31883 Variant_Base(bsl::allocator_arg_t,
31884 allocator_type allocator,
31885 const Variant& original);
31886 Variant_Base(bsl::allocator_arg_t,
31887 allocator_type allocator,
31888 BloombergLP::bslmf::MovableRef<Variant> original);
31889
31890 template <size_t t_INDEX>
31891 explicit Variant_Base(bsl::allocator_arg_t,
31892 allocator_type allocator,
31894
31895 template <size_t t_INDEX, class t_ARG_01>
31896 explicit Variant_Base(bsl::allocator_arg_t,
31897 allocator_type allocator,
31899 const t_ARG_01& arg_01);
31900
31901 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
31902 explicit Variant_Base(bsl::allocator_arg_t,
31903 allocator_type allocator,
31905 const t_ARG_01& arg_01,
31906 const t_ARG_02& arg_02);
31907
31908 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
31909 explicit Variant_Base(bsl::allocator_arg_t,
31910 allocator_type allocator,
31912 const t_ARG_01& arg_01,
31913 const t_ARG_02& arg_02,
31914 const t_ARG_03& arg_03);
31915
31916 template <size_t t_INDEX,
31917 class t_ARG_01,
31918 class t_ARG_02,
31919 class t_ARG_03,
31920 class t_ARG_04>
31921 explicit Variant_Base(bsl::allocator_arg_t,
31922 allocator_type allocator,
31924 const t_ARG_01& arg_01,
31925 const t_ARG_02& arg_02,
31926 const t_ARG_03& arg_03,
31927 const t_ARG_04& arg_04);
31928
31929 template <size_t t_INDEX,
31930 class t_ARG_01,
31931 class t_ARG_02,
31932 class t_ARG_03,
31933 class t_ARG_04,
31934 class t_ARG_05>
31935 explicit Variant_Base(bsl::allocator_arg_t,
31936 allocator_type allocator,
31938 const t_ARG_01& arg_01,
31939 const t_ARG_02& arg_02,
31940 const t_ARG_03& arg_03,
31941 const t_ARG_04& arg_04,
31942 const t_ARG_05& arg_05);
31943
31944 template <size_t t_INDEX,
31945 class t_ARG_01,
31946 class t_ARG_02,
31947 class t_ARG_03,
31948 class t_ARG_04,
31949 class t_ARG_05,
31950 class t_ARG_06>
31951 explicit Variant_Base(bsl::allocator_arg_t,
31952 allocator_type allocator,
31954 const t_ARG_01& arg_01,
31955 const t_ARG_02& arg_02,
31956 const t_ARG_03& arg_03,
31957 const t_ARG_04& arg_04,
31958 const t_ARG_05& arg_05,
31959 const t_ARG_06& arg_06);
31960
31961 template <size_t t_INDEX,
31962 class t_ARG_01,
31963 class t_ARG_02,
31964 class t_ARG_03,
31965 class t_ARG_04,
31966 class t_ARG_05,
31967 class t_ARG_06,
31968 class t_ARG_07>
31969 explicit Variant_Base(bsl::allocator_arg_t,
31970 allocator_type allocator,
31972 const t_ARG_01& arg_01,
31973 const t_ARG_02& arg_02,
31974 const t_ARG_03& arg_03,
31975 const t_ARG_04& arg_04,
31976 const t_ARG_05& arg_05,
31977 const t_ARG_06& arg_06,
31978 const t_ARG_07& arg_07);
31979
31980 template <size_t t_INDEX,
31981 class t_ARG_01,
31982 class t_ARG_02,
31983 class t_ARG_03,
31984 class t_ARG_04,
31985 class t_ARG_05,
31986 class t_ARG_06,
31987 class t_ARG_07,
31988 class t_ARG_08>
31989 explicit Variant_Base(bsl::allocator_arg_t,
31990 allocator_type allocator,
31992 const t_ARG_01& arg_01,
31993 const t_ARG_02& arg_02,
31994 const t_ARG_03& arg_03,
31995 const t_ARG_04& arg_04,
31996 const t_ARG_05& arg_05,
31997 const t_ARG_06& arg_06,
31998 const t_ARG_07& arg_07,
31999 const t_ARG_08& arg_08);
32000
32001 template <size_t t_INDEX,
32002 class t_ARG_01,
32003 class t_ARG_02,
32004 class t_ARG_03,
32005 class t_ARG_04,
32006 class t_ARG_05,
32007 class t_ARG_06,
32008 class t_ARG_07,
32009 class t_ARG_08,
32010 class t_ARG_09>
32011 explicit Variant_Base(bsl::allocator_arg_t,
32012 allocator_type allocator,
32014 const t_ARG_01& arg_01,
32015 const t_ARG_02& arg_02,
32016 const t_ARG_03& arg_03,
32017 const t_ARG_04& arg_04,
32018 const t_ARG_05& arg_05,
32019 const t_ARG_06& arg_06,
32020 const t_ARG_07& arg_07,
32021 const t_ARG_08& arg_08,
32022 const t_ARG_09& arg_09);
32023
32024 template <size_t t_INDEX,
32025 class t_ARG_01,
32026 class t_ARG_02,
32027 class t_ARG_03,
32028 class t_ARG_04,
32029 class t_ARG_05,
32030 class t_ARG_06,
32031 class t_ARG_07,
32032 class t_ARG_08,
32033 class t_ARG_09,
32034 class t_ARG_10>
32035 explicit Variant_Base(bsl::allocator_arg_t,
32036 allocator_type allocator,
32038 const t_ARG_01& arg_01,
32039 const t_ARG_02& arg_02,
32040 const t_ARG_03& arg_03,
32041 const t_ARG_04& arg_04,
32042 const t_ARG_05& arg_05,
32043 const t_ARG_06& arg_06,
32044 const t_ARG_07& arg_07,
32045 const t_ARG_08& arg_08,
32046 const t_ARG_09& arg_09,
32047 const t_ARG_10& arg_10);
32048
32049#endif
32050
32051 ~Variant_Base();
32052
32053#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
32054 template <size_t t_INDEX, class t_ARGS_01,
32055 class t_ARGS_02,
32056 class t_ARGS_03,
32057 class t_ARGS_04,
32058 class t_ARGS_05,
32059 class t_ARGS_06,
32060 class t_ARGS_07,
32061 class t_ARGS_08,
32062 class t_ARGS_09,
32063 class t_ARGS_10,
32064 class t_ARGS_11,
32065 class t_ARGS_12>
32066 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
32078#else
32079 template <size_t t_INDEX>
32080 void baseEmplace();
32081 template <size_t t_INDEX, class t_ARG_01>
32082 void baseEmplace(const t_ARG_01& arg_01);
32083
32084 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
32085 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
32086
32087 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
32088 void baseEmplace(const t_ARG_01& arg_01,
32089 const t_ARG_02& arg_02,
32090 const t_ARG_03& arg_03);
32091
32092 template <size_t t_INDEX,
32093 class t_ARG_01,
32094 class t_ARG_02,
32095 class t_ARG_03,
32096 class t_ARG_04>
32097 void baseEmplace(const t_ARG_01& arg_01,
32098 const t_ARG_02& arg_02,
32099 const t_ARG_03& arg_03,
32100 const t_ARG_04& arg_04);
32101
32102 template <size_t t_INDEX,
32103 class t_ARG_01,
32104 class t_ARG_02,
32105 class t_ARG_03,
32106 class t_ARG_04,
32107 class t_ARG_05>
32108 void baseEmplace(const t_ARG_01& arg_01,
32109 const t_ARG_02& arg_02,
32110 const t_ARG_03& arg_03,
32111 const t_ARG_04& arg_04,
32112 const t_ARG_05& arg_05);
32113
32114 template <size_t t_INDEX,
32115 class t_ARG_01,
32116 class t_ARG_02,
32117 class t_ARG_03,
32118 class t_ARG_04,
32119 class t_ARG_05,
32120 class t_ARG_06>
32121 void baseEmplace(const t_ARG_01& arg_01,
32122 const t_ARG_02& arg_02,
32123 const t_ARG_03& arg_03,
32124 const t_ARG_04& arg_04,
32125 const t_ARG_05& arg_05,
32126 const t_ARG_06& arg_06);
32127
32128 template <size_t t_INDEX,
32129 class t_ARG_01,
32130 class t_ARG_02,
32131 class t_ARG_03,
32132 class t_ARG_04,
32133 class t_ARG_05,
32134 class t_ARG_06,
32135 class t_ARG_07>
32136 void baseEmplace(const t_ARG_01& arg_01,
32137 const t_ARG_02& arg_02,
32138 const t_ARG_03& arg_03,
32139 const t_ARG_04& arg_04,
32140 const t_ARG_05& arg_05,
32141 const t_ARG_06& arg_06,
32142 const t_ARG_07& arg_07);
32143
32144 template <size_t t_INDEX,
32145 class t_ARG_01,
32146 class t_ARG_02,
32147 class t_ARG_03,
32148 class t_ARG_04,
32149 class t_ARG_05,
32150 class t_ARG_06,
32151 class t_ARG_07,
32152 class t_ARG_08>
32153 void baseEmplace(const t_ARG_01& arg_01,
32154 const t_ARG_02& arg_02,
32155 const t_ARG_03& arg_03,
32156 const t_ARG_04& arg_04,
32157 const t_ARG_05& arg_05,
32158 const t_ARG_06& arg_06,
32159 const t_ARG_07& arg_07,
32160 const t_ARG_08& arg_08);
32161
32162 template <size_t t_INDEX,
32163 class t_ARG_01,
32164 class t_ARG_02,
32165 class t_ARG_03,
32166 class t_ARG_04,
32167 class t_ARG_05,
32168 class t_ARG_06,
32169 class t_ARG_07,
32170 class t_ARG_08,
32171 class t_ARG_09>
32172 void baseEmplace(const t_ARG_01& arg_01,
32173 const t_ARG_02& arg_02,
32174 const t_ARG_03& arg_03,
32175 const t_ARG_04& arg_04,
32176 const t_ARG_05& arg_05,
32177 const t_ARG_06& arg_06,
32178 const t_ARG_07& arg_07,
32179 const t_ARG_08& arg_08,
32180 const t_ARG_09& arg_09);
32181
32182 template <size_t t_INDEX,
32183 class t_ARG_01,
32184 class t_ARG_02,
32185 class t_ARG_03,
32186 class t_ARG_04,
32187 class t_ARG_05,
32188 class t_ARG_06,
32189 class t_ARG_07,
32190 class t_ARG_08,
32191 class t_ARG_09,
32192 class t_ARG_10>
32193 void baseEmplace(const t_ARG_01& arg_01,
32194 const t_ARG_02& arg_02,
32195 const t_ARG_03& arg_03,
32196 const t_ARG_04& arg_04,
32197 const t_ARG_05& arg_05,
32198 const t_ARG_06& arg_06,
32199 const t_ARG_07& arg_07,
32200 const t_ARG_08& arg_08,
32201 const t_ARG_09& arg_09,
32202 const t_ARG_10& arg_10);
32203#endif
32204
32205 Variant_Base& operator=(const Variant_Base& rhs);
32206
32207 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
32208
32210};
32211#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 12
32212
32213#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 13
32214template <class t_HEAD, class t_TAIL_01,
32215 class t_TAIL_02,
32216 class t_TAIL_03,
32217 class t_TAIL_04,
32218 class t_TAIL_05,
32219 class t_TAIL_06,
32220 class t_TAIL_07,
32221 class t_TAIL_08,
32222 class t_TAIL_09,
32223 class t_TAIL_10,
32224 class t_TAIL_11,
32225 class t_TAIL_12,
32226 class t_TAIL_13>
32227struct Variant_Base<t_HEAD, t_TAIL_01,
32228 t_TAIL_02,
32229 t_TAIL_03,
32230 t_TAIL_04,
32231 t_TAIL_05,
32232 t_TAIL_06,
32233 t_TAIL_07,
32234 t_TAIL_08,
32235 t_TAIL_09,
32236 t_TAIL_10,
32237 t_TAIL_11,
32238 t_TAIL_12,
32239 t_TAIL_13>
32240: public BloombergLP::bslstl::Variant_AllocatorBase<
32241 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
32242 t_TAIL_01,
32243 t_TAIL_02,
32244 t_TAIL_03,
32245 t_TAIL_04,
32246 t_TAIL_05,
32247 t_TAIL_06,
32248 t_TAIL_07,
32249 t_TAIL_08,
32250 t_TAIL_09,
32251 t_TAIL_10,
32252 t_TAIL_11,
32253 t_TAIL_12,
32254 t_TAIL_13>::value> {
32255
32256 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
32257 typedef BloombergLP::bslstl::Variant_AllocatorBase<
32258 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
32259 t_TAIL_01,
32260 t_TAIL_02,
32261 t_TAIL_03,
32262 t_TAIL_04,
32263 t_TAIL_05,
32264 t_TAIL_06,
32265 t_TAIL_07,
32266 t_TAIL_08,
32267 t_TAIL_09,
32268 t_TAIL_10,
32269 t_TAIL_11,
32270 t_TAIL_12,
32271 t_TAIL_13>::value>
32272 AllocBase;
32273 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
32274 t_TAIL_02,
32275 t_TAIL_03,
32276 t_TAIL_04,
32277 t_TAIL_05,
32278 t_TAIL_06,
32279 t_TAIL_07,
32280 t_TAIL_08,
32281 t_TAIL_09,
32282 t_TAIL_10,
32283 t_TAIL_11,
32284 t_TAIL_12,
32285 t_TAIL_13>
32286 Variant_Union;
32287 typedef bsl::variant<t_HEAD, t_TAIL_01,
32288 t_TAIL_02,
32289 t_TAIL_03,
32290 t_TAIL_04,
32291 t_TAIL_05,
32292 t_TAIL_06,
32293 t_TAIL_07,
32294 t_TAIL_08,
32295 t_TAIL_09,
32296 t_TAIL_10,
32297 t_TAIL_11,
32298 t_TAIL_12,
32299 t_TAIL_13> Variant;
32300
32301 struct NoAlloc {
32302 };
32303
32304 typedef typename bsl::conditional<
32305 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
32306 t_TAIL_01,
32307 t_TAIL_02,
32308 t_TAIL_03,
32309 t_TAIL_04,
32310 t_TAIL_05,
32311 t_TAIL_06,
32312 t_TAIL_07,
32313 t_TAIL_08,
32314 t_TAIL_09,
32315 t_TAIL_10,
32316 t_TAIL_11,
32317 t_TAIL_12,
32318 t_TAIL_13>::value,
32320 NoAlloc>::type allocator_type;
32321
32322
32323 size_t d_type;
32324
32325 Variant_Union d_union;
32326
32328 Variant_Base,
32329 BloombergLP::bslma::UsesBslmaAllocator,
32330 (BloombergLP::bslstl::
32331 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
32332 t_TAIL_02,
32333 t_TAIL_03,
32334 t_TAIL_04,
32335 t_TAIL_05,
32336 t_TAIL_06,
32337 t_TAIL_07,
32338 t_TAIL_08,
32339 t_TAIL_09,
32340 t_TAIL_10,
32341 t_TAIL_11,
32342 t_TAIL_12,
32343 t_TAIL_13>::value));
32345 Variant_Base,
32346 BloombergLP::bslmf::UsesAllocatorArgT,
32347 (BloombergLP::bslstl::
32348 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
32349 t_TAIL_02,
32350 t_TAIL_03,
32351 t_TAIL_04,
32352 t_TAIL_05,
32353 t_TAIL_06,
32354 t_TAIL_07,
32355 t_TAIL_08,
32356 t_TAIL_09,
32357 t_TAIL_10,
32358 t_TAIL_11,
32359 t_TAIL_12,
32360 t_TAIL_13>::value));
32362 Variant_Base,
32363 BloombergLP::bslmf::IsBitwiseMoveable,
32364 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
32365 t_TAIL_01,
32366 t_TAIL_02,
32367 t_TAIL_03,
32368 t_TAIL_04,
32369 t_TAIL_05,
32370 t_TAIL_06,
32371 t_TAIL_07,
32372 t_TAIL_08,
32373 t_TAIL_09,
32374 t_TAIL_10,
32375 t_TAIL_11,
32376 t_TAIL_12,
32377 t_TAIL_13>::value));
32378
32379#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
32380 Variant_Base();
32381
32382 Variant_Base(const Variant_Base& original);
32383
32384 Variant_Base(Variant_Base&& original);
32385
32386#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
32387 Variant_Base(Variant_ConstructFromStdTag, size_t index);
32388#endif
32389
32390 template <size_t t_INDEX, class t_ARGS_01,
32391 class t_ARGS_02,
32392 class t_ARGS_03,
32393 class t_ARGS_04,
32394 class t_ARGS_05,
32395 class t_ARGS_06,
32396 class t_ARGS_07,
32397 class t_ARGS_08,
32398 class t_ARGS_09,
32399 class t_ARGS_10,
32400 class t_ARGS_11,
32401 class t_ARGS_12,
32402 class t_ARGS_13>
32403 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32404 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
32405 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
32406 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
32407 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
32408 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
32409 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
32410 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
32411 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
32412 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
32413 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
32414 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
32415 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
32416 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13);
32417
32418
32419 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
32420
32421 Variant_Base(bsl::allocator_arg_t,
32422 allocator_type allocator,
32423 const Variant& original);
32424 Variant_Base(bsl::allocator_arg_t,
32425 allocator_type allocator,
32426 Variant&& original);
32427
32428#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
32429 Variant_Base(bsl::allocator_arg_t,
32430 allocator_type allocator,
32431 Variant_ConstructFromStdTag,
32432 size_t index);
32433#endif
32434
32435 template <size_t t_INDEX, class t_ARGS_01,
32436 class t_ARGS_02,
32437 class t_ARGS_03,
32438 class t_ARGS_04,
32439 class t_ARGS_05,
32440 class t_ARGS_06,
32441 class t_ARGS_07,
32442 class t_ARGS_08,
32443 class t_ARGS_09,
32444 class t_ARGS_10,
32445 class t_ARGS_11,
32446 class t_ARGS_12,
32447 class t_ARGS_13>
32448 explicit Variant_Base(bsl::allocator_arg_t,
32449 allocator_type allocator,
32451 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
32452 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
32453 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
32454 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
32455 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
32456 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
32457 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
32458 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
32459 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
32460 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
32461 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
32462 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
32463 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13);
32464
32465#else
32466
32467 Variant_Base();
32468
32469 Variant_Base(const Variant& original);
32470
32471 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
32472
32473 template <size_t t_INDEX>
32474 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
32475
32476 template <size_t t_INDEX, class t_ARG_01>
32477 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32478 const t_ARG_01& arg_01);
32479
32480 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
32481 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32482 const t_ARG_01& arg_01,
32483 const t_ARG_02& arg_02);
32484
32485 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
32486 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32487 const t_ARG_01& arg_01,
32488 const t_ARG_02& arg_02,
32489 const t_ARG_03& arg_03);
32490
32491 template <size_t t_INDEX,
32492 class t_ARG_01,
32493 class t_ARG_02,
32494 class t_ARG_03,
32495 class t_ARG_04>
32496 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32497 const t_ARG_01& arg_01,
32498 const t_ARG_02& arg_02,
32499 const t_ARG_03& arg_03,
32500 const t_ARG_04& arg_04);
32501
32502 template <size_t t_INDEX,
32503 class t_ARG_01,
32504 class t_ARG_02,
32505 class t_ARG_03,
32506 class t_ARG_04,
32507 class t_ARG_05>
32508 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32509 const t_ARG_01& arg_01,
32510 const t_ARG_02& arg_02,
32511 const t_ARG_03& arg_03,
32512 const t_ARG_04& arg_04,
32513 const t_ARG_05& arg_05);
32514
32515 template <size_t t_INDEX,
32516 class t_ARG_01,
32517 class t_ARG_02,
32518 class t_ARG_03,
32519 class t_ARG_04,
32520 class t_ARG_05,
32521 class t_ARG_06>
32522 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32523 const t_ARG_01& arg_01,
32524 const t_ARG_02& arg_02,
32525 const t_ARG_03& arg_03,
32526 const t_ARG_04& arg_04,
32527 const t_ARG_05& arg_05,
32528 const t_ARG_06& arg_06);
32529
32530 template <size_t t_INDEX,
32531 class t_ARG_01,
32532 class t_ARG_02,
32533 class t_ARG_03,
32534 class t_ARG_04,
32535 class t_ARG_05,
32536 class t_ARG_06,
32537 class t_ARG_07>
32538 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32539 const t_ARG_01& arg_01,
32540 const t_ARG_02& arg_02,
32541 const t_ARG_03& arg_03,
32542 const t_ARG_04& arg_04,
32543 const t_ARG_05& arg_05,
32544 const t_ARG_06& arg_06,
32545 const t_ARG_07& arg_07);
32546
32547 template <size_t t_INDEX,
32548 class t_ARG_01,
32549 class t_ARG_02,
32550 class t_ARG_03,
32551 class t_ARG_04,
32552 class t_ARG_05,
32553 class t_ARG_06,
32554 class t_ARG_07,
32555 class t_ARG_08>
32556 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32557 const t_ARG_01& arg_01,
32558 const t_ARG_02& arg_02,
32559 const t_ARG_03& arg_03,
32560 const t_ARG_04& arg_04,
32561 const t_ARG_05& arg_05,
32562 const t_ARG_06& arg_06,
32563 const t_ARG_07& arg_07,
32564 const t_ARG_08& arg_08);
32565
32566 template <size_t t_INDEX,
32567 class t_ARG_01,
32568 class t_ARG_02,
32569 class t_ARG_03,
32570 class t_ARG_04,
32571 class t_ARG_05,
32572 class t_ARG_06,
32573 class t_ARG_07,
32574 class t_ARG_08,
32575 class t_ARG_09>
32576 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32577 const t_ARG_01& arg_01,
32578 const t_ARG_02& arg_02,
32579 const t_ARG_03& arg_03,
32580 const t_ARG_04& arg_04,
32581 const t_ARG_05& arg_05,
32582 const t_ARG_06& arg_06,
32583 const t_ARG_07& arg_07,
32584 const t_ARG_08& arg_08,
32585 const t_ARG_09& arg_09);
32586
32587 template <size_t t_INDEX,
32588 class t_ARG_01,
32589 class t_ARG_02,
32590 class t_ARG_03,
32591 class t_ARG_04,
32592 class t_ARG_05,
32593 class t_ARG_06,
32594 class t_ARG_07,
32595 class t_ARG_08,
32596 class t_ARG_09,
32597 class t_ARG_10>
32598 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
32599 const t_ARG_01& arg_01,
32600 const t_ARG_02& arg_02,
32601 const t_ARG_03& arg_03,
32602 const t_ARG_04& arg_04,
32603 const t_ARG_05& arg_05,
32604 const t_ARG_06& arg_06,
32605 const t_ARG_07& arg_07,
32606 const t_ARG_08& arg_08,
32607 const t_ARG_09& arg_09,
32608 const t_ARG_10& arg_10);
32609
32610 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
32611
32612 Variant_Base(bsl::allocator_arg_t,
32613 allocator_type allocator,
32614 const Variant& original);
32615 Variant_Base(bsl::allocator_arg_t,
32616 allocator_type allocator,
32617 BloombergLP::bslmf::MovableRef<Variant> original);
32618
32619 template <size_t t_INDEX>
32620 explicit Variant_Base(bsl::allocator_arg_t,
32621 allocator_type allocator,
32623
32624 template <size_t t_INDEX, class t_ARG_01>
32625 explicit Variant_Base(bsl::allocator_arg_t,
32626 allocator_type allocator,
32628 const t_ARG_01& arg_01);
32629
32630 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
32631 explicit Variant_Base(bsl::allocator_arg_t,
32632 allocator_type allocator,
32634 const t_ARG_01& arg_01,
32635 const t_ARG_02& arg_02);
32636
32637 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
32638 explicit Variant_Base(bsl::allocator_arg_t,
32639 allocator_type allocator,
32641 const t_ARG_01& arg_01,
32642 const t_ARG_02& arg_02,
32643 const t_ARG_03& arg_03);
32644
32645 template <size_t t_INDEX,
32646 class t_ARG_01,
32647 class t_ARG_02,
32648 class t_ARG_03,
32649 class t_ARG_04>
32650 explicit Variant_Base(bsl::allocator_arg_t,
32651 allocator_type allocator,
32653 const t_ARG_01& arg_01,
32654 const t_ARG_02& arg_02,
32655 const t_ARG_03& arg_03,
32656 const t_ARG_04& arg_04);
32657
32658 template <size_t t_INDEX,
32659 class t_ARG_01,
32660 class t_ARG_02,
32661 class t_ARG_03,
32662 class t_ARG_04,
32663 class t_ARG_05>
32664 explicit Variant_Base(bsl::allocator_arg_t,
32665 allocator_type allocator,
32667 const t_ARG_01& arg_01,
32668 const t_ARG_02& arg_02,
32669 const t_ARG_03& arg_03,
32670 const t_ARG_04& arg_04,
32671 const t_ARG_05& arg_05);
32672
32673 template <size_t t_INDEX,
32674 class t_ARG_01,
32675 class t_ARG_02,
32676 class t_ARG_03,
32677 class t_ARG_04,
32678 class t_ARG_05,
32679 class t_ARG_06>
32680 explicit Variant_Base(bsl::allocator_arg_t,
32681 allocator_type allocator,
32683 const t_ARG_01& arg_01,
32684 const t_ARG_02& arg_02,
32685 const t_ARG_03& arg_03,
32686 const t_ARG_04& arg_04,
32687 const t_ARG_05& arg_05,
32688 const t_ARG_06& arg_06);
32689
32690 template <size_t t_INDEX,
32691 class t_ARG_01,
32692 class t_ARG_02,
32693 class t_ARG_03,
32694 class t_ARG_04,
32695 class t_ARG_05,
32696 class t_ARG_06,
32697 class t_ARG_07>
32698 explicit Variant_Base(bsl::allocator_arg_t,
32699 allocator_type allocator,
32701 const t_ARG_01& arg_01,
32702 const t_ARG_02& arg_02,
32703 const t_ARG_03& arg_03,
32704 const t_ARG_04& arg_04,
32705 const t_ARG_05& arg_05,
32706 const t_ARG_06& arg_06,
32707 const t_ARG_07& arg_07);
32708
32709 template <size_t t_INDEX,
32710 class t_ARG_01,
32711 class t_ARG_02,
32712 class t_ARG_03,
32713 class t_ARG_04,
32714 class t_ARG_05,
32715 class t_ARG_06,
32716 class t_ARG_07,
32717 class t_ARG_08>
32718 explicit Variant_Base(bsl::allocator_arg_t,
32719 allocator_type allocator,
32721 const t_ARG_01& arg_01,
32722 const t_ARG_02& arg_02,
32723 const t_ARG_03& arg_03,
32724 const t_ARG_04& arg_04,
32725 const t_ARG_05& arg_05,
32726 const t_ARG_06& arg_06,
32727 const t_ARG_07& arg_07,
32728 const t_ARG_08& arg_08);
32729
32730 template <size_t t_INDEX,
32731 class t_ARG_01,
32732 class t_ARG_02,
32733 class t_ARG_03,
32734 class t_ARG_04,
32735 class t_ARG_05,
32736 class t_ARG_06,
32737 class t_ARG_07,
32738 class t_ARG_08,
32739 class t_ARG_09>
32740 explicit Variant_Base(bsl::allocator_arg_t,
32741 allocator_type allocator,
32743 const t_ARG_01& arg_01,
32744 const t_ARG_02& arg_02,
32745 const t_ARG_03& arg_03,
32746 const t_ARG_04& arg_04,
32747 const t_ARG_05& arg_05,
32748 const t_ARG_06& arg_06,
32749 const t_ARG_07& arg_07,
32750 const t_ARG_08& arg_08,
32751 const t_ARG_09& arg_09);
32752
32753 template <size_t t_INDEX,
32754 class t_ARG_01,
32755 class t_ARG_02,
32756 class t_ARG_03,
32757 class t_ARG_04,
32758 class t_ARG_05,
32759 class t_ARG_06,
32760 class t_ARG_07,
32761 class t_ARG_08,
32762 class t_ARG_09,
32763 class t_ARG_10>
32764 explicit Variant_Base(bsl::allocator_arg_t,
32765 allocator_type allocator,
32767 const t_ARG_01& arg_01,
32768 const t_ARG_02& arg_02,
32769 const t_ARG_03& arg_03,
32770 const t_ARG_04& arg_04,
32771 const t_ARG_05& arg_05,
32772 const t_ARG_06& arg_06,
32773 const t_ARG_07& arg_07,
32774 const t_ARG_08& arg_08,
32775 const t_ARG_09& arg_09,
32776 const t_ARG_10& arg_10);
32777
32778#endif
32779
32780 ~Variant_Base();
32781
32782#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
32783 template <size_t t_INDEX, class t_ARGS_01,
32784 class t_ARGS_02,
32785 class t_ARGS_03,
32786 class t_ARGS_04,
32787 class t_ARGS_05,
32788 class t_ARGS_06,
32789 class t_ARGS_07,
32790 class t_ARGS_08,
32791 class t_ARGS_09,
32792 class t_ARGS_10,
32793 class t_ARGS_11,
32794 class t_ARGS_12,
32795 class t_ARGS_13>
32796 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
32809#else
32810 template <size_t t_INDEX>
32811 void baseEmplace();
32812 template <size_t t_INDEX, class t_ARG_01>
32813 void baseEmplace(const t_ARG_01& arg_01);
32814
32815 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
32816 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
32817
32818 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
32819 void baseEmplace(const t_ARG_01& arg_01,
32820 const t_ARG_02& arg_02,
32821 const t_ARG_03& arg_03);
32822
32823 template <size_t t_INDEX,
32824 class t_ARG_01,
32825 class t_ARG_02,
32826 class t_ARG_03,
32827 class t_ARG_04>
32828 void baseEmplace(const t_ARG_01& arg_01,
32829 const t_ARG_02& arg_02,
32830 const t_ARG_03& arg_03,
32831 const t_ARG_04& arg_04);
32832
32833 template <size_t t_INDEX,
32834 class t_ARG_01,
32835 class t_ARG_02,
32836 class t_ARG_03,
32837 class t_ARG_04,
32838 class t_ARG_05>
32839 void baseEmplace(const t_ARG_01& arg_01,
32840 const t_ARG_02& arg_02,
32841 const t_ARG_03& arg_03,
32842 const t_ARG_04& arg_04,
32843 const t_ARG_05& arg_05);
32844
32845 template <size_t t_INDEX,
32846 class t_ARG_01,
32847 class t_ARG_02,
32848 class t_ARG_03,
32849 class t_ARG_04,
32850 class t_ARG_05,
32851 class t_ARG_06>
32852 void baseEmplace(const t_ARG_01& arg_01,
32853 const t_ARG_02& arg_02,
32854 const t_ARG_03& arg_03,
32855 const t_ARG_04& arg_04,
32856 const t_ARG_05& arg_05,
32857 const t_ARG_06& arg_06);
32858
32859 template <size_t t_INDEX,
32860 class t_ARG_01,
32861 class t_ARG_02,
32862 class t_ARG_03,
32863 class t_ARG_04,
32864 class t_ARG_05,
32865 class t_ARG_06,
32866 class t_ARG_07>
32867 void baseEmplace(const t_ARG_01& arg_01,
32868 const t_ARG_02& arg_02,
32869 const t_ARG_03& arg_03,
32870 const t_ARG_04& arg_04,
32871 const t_ARG_05& arg_05,
32872 const t_ARG_06& arg_06,
32873 const t_ARG_07& arg_07);
32874
32875 template <size_t t_INDEX,
32876 class t_ARG_01,
32877 class t_ARG_02,
32878 class t_ARG_03,
32879 class t_ARG_04,
32880 class t_ARG_05,
32881 class t_ARG_06,
32882 class t_ARG_07,
32883 class t_ARG_08>
32884 void baseEmplace(const t_ARG_01& arg_01,
32885 const t_ARG_02& arg_02,
32886 const t_ARG_03& arg_03,
32887 const t_ARG_04& arg_04,
32888 const t_ARG_05& arg_05,
32889 const t_ARG_06& arg_06,
32890 const t_ARG_07& arg_07,
32891 const t_ARG_08& arg_08);
32892
32893 template <size_t t_INDEX,
32894 class t_ARG_01,
32895 class t_ARG_02,
32896 class t_ARG_03,
32897 class t_ARG_04,
32898 class t_ARG_05,
32899 class t_ARG_06,
32900 class t_ARG_07,
32901 class t_ARG_08,
32902 class t_ARG_09>
32903 void baseEmplace(const t_ARG_01& arg_01,
32904 const t_ARG_02& arg_02,
32905 const t_ARG_03& arg_03,
32906 const t_ARG_04& arg_04,
32907 const t_ARG_05& arg_05,
32908 const t_ARG_06& arg_06,
32909 const t_ARG_07& arg_07,
32910 const t_ARG_08& arg_08,
32911 const t_ARG_09& arg_09);
32912
32913 template <size_t t_INDEX,
32914 class t_ARG_01,
32915 class t_ARG_02,
32916 class t_ARG_03,
32917 class t_ARG_04,
32918 class t_ARG_05,
32919 class t_ARG_06,
32920 class t_ARG_07,
32921 class t_ARG_08,
32922 class t_ARG_09,
32923 class t_ARG_10>
32924 void baseEmplace(const t_ARG_01& arg_01,
32925 const t_ARG_02& arg_02,
32926 const t_ARG_03& arg_03,
32927 const t_ARG_04& arg_04,
32928 const t_ARG_05& arg_05,
32929 const t_ARG_06& arg_06,
32930 const t_ARG_07& arg_07,
32931 const t_ARG_08& arg_08,
32932 const t_ARG_09& arg_09,
32933 const t_ARG_10& arg_10);
32934#endif
32935
32936 Variant_Base& operator=(const Variant_Base& rhs);
32937
32938 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
32939
32941};
32942#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 13
32943
32944#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 14
32945template <class t_HEAD, class t_TAIL_01,
32946 class t_TAIL_02,
32947 class t_TAIL_03,
32948 class t_TAIL_04,
32949 class t_TAIL_05,
32950 class t_TAIL_06,
32951 class t_TAIL_07,
32952 class t_TAIL_08,
32953 class t_TAIL_09,
32954 class t_TAIL_10,
32955 class t_TAIL_11,
32956 class t_TAIL_12,
32957 class t_TAIL_13,
32958 class t_TAIL_14>
32959struct Variant_Base<t_HEAD, t_TAIL_01,
32960 t_TAIL_02,
32961 t_TAIL_03,
32962 t_TAIL_04,
32963 t_TAIL_05,
32964 t_TAIL_06,
32965 t_TAIL_07,
32966 t_TAIL_08,
32967 t_TAIL_09,
32968 t_TAIL_10,
32969 t_TAIL_11,
32970 t_TAIL_12,
32971 t_TAIL_13,
32972 t_TAIL_14>
32973: public BloombergLP::bslstl::Variant_AllocatorBase<
32974 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
32975 t_TAIL_01,
32976 t_TAIL_02,
32977 t_TAIL_03,
32978 t_TAIL_04,
32979 t_TAIL_05,
32980 t_TAIL_06,
32981 t_TAIL_07,
32982 t_TAIL_08,
32983 t_TAIL_09,
32984 t_TAIL_10,
32985 t_TAIL_11,
32986 t_TAIL_12,
32987 t_TAIL_13,
32988 t_TAIL_14>::value> {
32989
32990 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
32991 typedef BloombergLP::bslstl::Variant_AllocatorBase<
32992 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
32993 t_TAIL_01,
32994 t_TAIL_02,
32995 t_TAIL_03,
32996 t_TAIL_04,
32997 t_TAIL_05,
32998 t_TAIL_06,
32999 t_TAIL_07,
33000 t_TAIL_08,
33001 t_TAIL_09,
33002 t_TAIL_10,
33003 t_TAIL_11,
33004 t_TAIL_12,
33005 t_TAIL_13,
33006 t_TAIL_14>::value>
33007 AllocBase;
33008 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
33009 t_TAIL_02,
33010 t_TAIL_03,
33011 t_TAIL_04,
33012 t_TAIL_05,
33013 t_TAIL_06,
33014 t_TAIL_07,
33015 t_TAIL_08,
33016 t_TAIL_09,
33017 t_TAIL_10,
33018 t_TAIL_11,
33019 t_TAIL_12,
33020 t_TAIL_13,
33021 t_TAIL_14>
33022 Variant_Union;
33023 typedef bsl::variant<t_HEAD, t_TAIL_01,
33024 t_TAIL_02,
33025 t_TAIL_03,
33026 t_TAIL_04,
33027 t_TAIL_05,
33028 t_TAIL_06,
33029 t_TAIL_07,
33030 t_TAIL_08,
33031 t_TAIL_09,
33032 t_TAIL_10,
33033 t_TAIL_11,
33034 t_TAIL_12,
33035 t_TAIL_13,
33036 t_TAIL_14> Variant;
33037
33038 struct NoAlloc {
33039 };
33040
33041 typedef typename bsl::conditional<
33042 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
33043 t_TAIL_01,
33044 t_TAIL_02,
33045 t_TAIL_03,
33046 t_TAIL_04,
33047 t_TAIL_05,
33048 t_TAIL_06,
33049 t_TAIL_07,
33050 t_TAIL_08,
33051 t_TAIL_09,
33052 t_TAIL_10,
33053 t_TAIL_11,
33054 t_TAIL_12,
33055 t_TAIL_13,
33056 t_TAIL_14>::value,
33058 NoAlloc>::type allocator_type;
33059
33060
33061 size_t d_type;
33062
33063 Variant_Union d_union;
33064
33066 Variant_Base,
33067 BloombergLP::bslma::UsesBslmaAllocator,
33068 (BloombergLP::bslstl::
33069 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
33070 t_TAIL_02,
33071 t_TAIL_03,
33072 t_TAIL_04,
33073 t_TAIL_05,
33074 t_TAIL_06,
33075 t_TAIL_07,
33076 t_TAIL_08,
33077 t_TAIL_09,
33078 t_TAIL_10,
33079 t_TAIL_11,
33080 t_TAIL_12,
33081 t_TAIL_13,
33082 t_TAIL_14>::value));
33084 Variant_Base,
33085 BloombergLP::bslmf::UsesAllocatorArgT,
33086 (BloombergLP::bslstl::
33087 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
33088 t_TAIL_02,
33089 t_TAIL_03,
33090 t_TAIL_04,
33091 t_TAIL_05,
33092 t_TAIL_06,
33093 t_TAIL_07,
33094 t_TAIL_08,
33095 t_TAIL_09,
33096 t_TAIL_10,
33097 t_TAIL_11,
33098 t_TAIL_12,
33099 t_TAIL_13,
33100 t_TAIL_14>::value));
33102 Variant_Base,
33103 BloombergLP::bslmf::IsBitwiseMoveable,
33104 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
33105 t_TAIL_01,
33106 t_TAIL_02,
33107 t_TAIL_03,
33108 t_TAIL_04,
33109 t_TAIL_05,
33110 t_TAIL_06,
33111 t_TAIL_07,
33112 t_TAIL_08,
33113 t_TAIL_09,
33114 t_TAIL_10,
33115 t_TAIL_11,
33116 t_TAIL_12,
33117 t_TAIL_13,
33118 t_TAIL_14>::value));
33119
33120#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
33121 Variant_Base();
33122
33123 Variant_Base(const Variant_Base& original);
33124
33125 Variant_Base(Variant_Base&& original);
33126
33127#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
33128 Variant_Base(Variant_ConstructFromStdTag, size_t index);
33129#endif
33130
33131 template <size_t t_INDEX, class t_ARGS_01,
33132 class t_ARGS_02,
33133 class t_ARGS_03,
33134 class t_ARGS_04,
33135 class t_ARGS_05,
33136 class t_ARGS_06,
33137 class t_ARGS_07,
33138 class t_ARGS_08,
33139 class t_ARGS_09,
33140 class t_ARGS_10,
33141 class t_ARGS_11,
33142 class t_ARGS_12,
33143 class t_ARGS_13,
33144 class t_ARGS_14>
33145 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33146 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
33147 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
33148 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
33149 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
33150 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
33151 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
33152 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
33153 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
33154 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
33155 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
33156 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
33157 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
33158 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
33159 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14);
33160
33161
33162 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
33163
33164 Variant_Base(bsl::allocator_arg_t,
33165 allocator_type allocator,
33166 const Variant& original);
33167 Variant_Base(bsl::allocator_arg_t,
33168 allocator_type allocator,
33169 Variant&& original);
33170
33171#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
33172 Variant_Base(bsl::allocator_arg_t,
33173 allocator_type allocator,
33174 Variant_ConstructFromStdTag,
33175 size_t index);
33176#endif
33177
33178 template <size_t t_INDEX, class t_ARGS_01,
33179 class t_ARGS_02,
33180 class t_ARGS_03,
33181 class t_ARGS_04,
33182 class t_ARGS_05,
33183 class t_ARGS_06,
33184 class t_ARGS_07,
33185 class t_ARGS_08,
33186 class t_ARGS_09,
33187 class t_ARGS_10,
33188 class t_ARGS_11,
33189 class t_ARGS_12,
33190 class t_ARGS_13,
33191 class t_ARGS_14>
33192 explicit Variant_Base(bsl::allocator_arg_t,
33193 allocator_type allocator,
33195 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
33196 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
33197 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
33198 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
33199 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
33200 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
33201 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
33202 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
33203 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
33204 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
33205 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
33206 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
33207 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
33208 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14);
33209
33210#else
33211
33212 Variant_Base();
33213
33214 Variant_Base(const Variant& original);
33215
33216 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
33217
33218 template <size_t t_INDEX>
33219 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
33220
33221 template <size_t t_INDEX, class t_ARG_01>
33222 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33223 const t_ARG_01& arg_01);
33224
33225 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
33226 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33227 const t_ARG_01& arg_01,
33228 const t_ARG_02& arg_02);
33229
33230 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
33231 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33232 const t_ARG_01& arg_01,
33233 const t_ARG_02& arg_02,
33234 const t_ARG_03& arg_03);
33235
33236 template <size_t t_INDEX,
33237 class t_ARG_01,
33238 class t_ARG_02,
33239 class t_ARG_03,
33240 class t_ARG_04>
33241 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33242 const t_ARG_01& arg_01,
33243 const t_ARG_02& arg_02,
33244 const t_ARG_03& arg_03,
33245 const t_ARG_04& arg_04);
33246
33247 template <size_t t_INDEX,
33248 class t_ARG_01,
33249 class t_ARG_02,
33250 class t_ARG_03,
33251 class t_ARG_04,
33252 class t_ARG_05>
33253 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33254 const t_ARG_01& arg_01,
33255 const t_ARG_02& arg_02,
33256 const t_ARG_03& arg_03,
33257 const t_ARG_04& arg_04,
33258 const t_ARG_05& arg_05);
33259
33260 template <size_t t_INDEX,
33261 class t_ARG_01,
33262 class t_ARG_02,
33263 class t_ARG_03,
33264 class t_ARG_04,
33265 class t_ARG_05,
33266 class t_ARG_06>
33267 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33268 const t_ARG_01& arg_01,
33269 const t_ARG_02& arg_02,
33270 const t_ARG_03& arg_03,
33271 const t_ARG_04& arg_04,
33272 const t_ARG_05& arg_05,
33273 const t_ARG_06& arg_06);
33274
33275 template <size_t t_INDEX,
33276 class t_ARG_01,
33277 class t_ARG_02,
33278 class t_ARG_03,
33279 class t_ARG_04,
33280 class t_ARG_05,
33281 class t_ARG_06,
33282 class t_ARG_07>
33283 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33284 const t_ARG_01& arg_01,
33285 const t_ARG_02& arg_02,
33286 const t_ARG_03& arg_03,
33287 const t_ARG_04& arg_04,
33288 const t_ARG_05& arg_05,
33289 const t_ARG_06& arg_06,
33290 const t_ARG_07& arg_07);
33291
33292 template <size_t t_INDEX,
33293 class t_ARG_01,
33294 class t_ARG_02,
33295 class t_ARG_03,
33296 class t_ARG_04,
33297 class t_ARG_05,
33298 class t_ARG_06,
33299 class t_ARG_07,
33300 class t_ARG_08>
33301 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33302 const t_ARG_01& arg_01,
33303 const t_ARG_02& arg_02,
33304 const t_ARG_03& arg_03,
33305 const t_ARG_04& arg_04,
33306 const t_ARG_05& arg_05,
33307 const t_ARG_06& arg_06,
33308 const t_ARG_07& arg_07,
33309 const t_ARG_08& arg_08);
33310
33311 template <size_t t_INDEX,
33312 class t_ARG_01,
33313 class t_ARG_02,
33314 class t_ARG_03,
33315 class t_ARG_04,
33316 class t_ARG_05,
33317 class t_ARG_06,
33318 class t_ARG_07,
33319 class t_ARG_08,
33320 class t_ARG_09>
33321 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33322 const t_ARG_01& arg_01,
33323 const t_ARG_02& arg_02,
33324 const t_ARG_03& arg_03,
33325 const t_ARG_04& arg_04,
33326 const t_ARG_05& arg_05,
33327 const t_ARG_06& arg_06,
33328 const t_ARG_07& arg_07,
33329 const t_ARG_08& arg_08,
33330 const t_ARG_09& arg_09);
33331
33332 template <size_t t_INDEX,
33333 class t_ARG_01,
33334 class t_ARG_02,
33335 class t_ARG_03,
33336 class t_ARG_04,
33337 class t_ARG_05,
33338 class t_ARG_06,
33339 class t_ARG_07,
33340 class t_ARG_08,
33341 class t_ARG_09,
33342 class t_ARG_10>
33343 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33344 const t_ARG_01& arg_01,
33345 const t_ARG_02& arg_02,
33346 const t_ARG_03& arg_03,
33347 const t_ARG_04& arg_04,
33348 const t_ARG_05& arg_05,
33349 const t_ARG_06& arg_06,
33350 const t_ARG_07& arg_07,
33351 const t_ARG_08& arg_08,
33352 const t_ARG_09& arg_09,
33353 const t_ARG_10& arg_10);
33354
33355 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
33356
33357 Variant_Base(bsl::allocator_arg_t,
33358 allocator_type allocator,
33359 const Variant& original);
33360 Variant_Base(bsl::allocator_arg_t,
33361 allocator_type allocator,
33362 BloombergLP::bslmf::MovableRef<Variant> original);
33363
33364 template <size_t t_INDEX>
33365 explicit Variant_Base(bsl::allocator_arg_t,
33366 allocator_type allocator,
33368
33369 template <size_t t_INDEX, class t_ARG_01>
33370 explicit Variant_Base(bsl::allocator_arg_t,
33371 allocator_type allocator,
33373 const t_ARG_01& arg_01);
33374
33375 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
33376 explicit Variant_Base(bsl::allocator_arg_t,
33377 allocator_type allocator,
33379 const t_ARG_01& arg_01,
33380 const t_ARG_02& arg_02);
33381
33382 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
33383 explicit Variant_Base(bsl::allocator_arg_t,
33384 allocator_type allocator,
33386 const t_ARG_01& arg_01,
33387 const t_ARG_02& arg_02,
33388 const t_ARG_03& arg_03);
33389
33390 template <size_t t_INDEX,
33391 class t_ARG_01,
33392 class t_ARG_02,
33393 class t_ARG_03,
33394 class t_ARG_04>
33395 explicit Variant_Base(bsl::allocator_arg_t,
33396 allocator_type allocator,
33398 const t_ARG_01& arg_01,
33399 const t_ARG_02& arg_02,
33400 const t_ARG_03& arg_03,
33401 const t_ARG_04& arg_04);
33402
33403 template <size_t t_INDEX,
33404 class t_ARG_01,
33405 class t_ARG_02,
33406 class t_ARG_03,
33407 class t_ARG_04,
33408 class t_ARG_05>
33409 explicit Variant_Base(bsl::allocator_arg_t,
33410 allocator_type allocator,
33412 const t_ARG_01& arg_01,
33413 const t_ARG_02& arg_02,
33414 const t_ARG_03& arg_03,
33415 const t_ARG_04& arg_04,
33416 const t_ARG_05& arg_05);
33417
33418 template <size_t t_INDEX,
33419 class t_ARG_01,
33420 class t_ARG_02,
33421 class t_ARG_03,
33422 class t_ARG_04,
33423 class t_ARG_05,
33424 class t_ARG_06>
33425 explicit Variant_Base(bsl::allocator_arg_t,
33426 allocator_type allocator,
33428 const t_ARG_01& arg_01,
33429 const t_ARG_02& arg_02,
33430 const t_ARG_03& arg_03,
33431 const t_ARG_04& arg_04,
33432 const t_ARG_05& arg_05,
33433 const t_ARG_06& arg_06);
33434
33435 template <size_t t_INDEX,
33436 class t_ARG_01,
33437 class t_ARG_02,
33438 class t_ARG_03,
33439 class t_ARG_04,
33440 class t_ARG_05,
33441 class t_ARG_06,
33442 class t_ARG_07>
33443 explicit Variant_Base(bsl::allocator_arg_t,
33444 allocator_type allocator,
33446 const t_ARG_01& arg_01,
33447 const t_ARG_02& arg_02,
33448 const t_ARG_03& arg_03,
33449 const t_ARG_04& arg_04,
33450 const t_ARG_05& arg_05,
33451 const t_ARG_06& arg_06,
33452 const t_ARG_07& arg_07);
33453
33454 template <size_t t_INDEX,
33455 class t_ARG_01,
33456 class t_ARG_02,
33457 class t_ARG_03,
33458 class t_ARG_04,
33459 class t_ARG_05,
33460 class t_ARG_06,
33461 class t_ARG_07,
33462 class t_ARG_08>
33463 explicit Variant_Base(bsl::allocator_arg_t,
33464 allocator_type allocator,
33466 const t_ARG_01& arg_01,
33467 const t_ARG_02& arg_02,
33468 const t_ARG_03& arg_03,
33469 const t_ARG_04& arg_04,
33470 const t_ARG_05& arg_05,
33471 const t_ARG_06& arg_06,
33472 const t_ARG_07& arg_07,
33473 const t_ARG_08& arg_08);
33474
33475 template <size_t t_INDEX,
33476 class t_ARG_01,
33477 class t_ARG_02,
33478 class t_ARG_03,
33479 class t_ARG_04,
33480 class t_ARG_05,
33481 class t_ARG_06,
33482 class t_ARG_07,
33483 class t_ARG_08,
33484 class t_ARG_09>
33485 explicit Variant_Base(bsl::allocator_arg_t,
33486 allocator_type allocator,
33488 const t_ARG_01& arg_01,
33489 const t_ARG_02& arg_02,
33490 const t_ARG_03& arg_03,
33491 const t_ARG_04& arg_04,
33492 const t_ARG_05& arg_05,
33493 const t_ARG_06& arg_06,
33494 const t_ARG_07& arg_07,
33495 const t_ARG_08& arg_08,
33496 const t_ARG_09& arg_09);
33497
33498 template <size_t t_INDEX,
33499 class t_ARG_01,
33500 class t_ARG_02,
33501 class t_ARG_03,
33502 class t_ARG_04,
33503 class t_ARG_05,
33504 class t_ARG_06,
33505 class t_ARG_07,
33506 class t_ARG_08,
33507 class t_ARG_09,
33508 class t_ARG_10>
33509 explicit Variant_Base(bsl::allocator_arg_t,
33510 allocator_type allocator,
33512 const t_ARG_01& arg_01,
33513 const t_ARG_02& arg_02,
33514 const t_ARG_03& arg_03,
33515 const t_ARG_04& arg_04,
33516 const t_ARG_05& arg_05,
33517 const t_ARG_06& arg_06,
33518 const t_ARG_07& arg_07,
33519 const t_ARG_08& arg_08,
33520 const t_ARG_09& arg_09,
33521 const t_ARG_10& arg_10);
33522
33523#endif
33524
33525 ~Variant_Base();
33526
33527#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
33528 template <size_t t_INDEX, class t_ARGS_01,
33529 class t_ARGS_02,
33530 class t_ARGS_03,
33531 class t_ARGS_04,
33532 class t_ARGS_05,
33533 class t_ARGS_06,
33534 class t_ARGS_07,
33535 class t_ARGS_08,
33536 class t_ARGS_09,
33537 class t_ARGS_10,
33538 class t_ARGS_11,
33539 class t_ARGS_12,
33540 class t_ARGS_13,
33541 class t_ARGS_14>
33542 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
33556#else
33557 template <size_t t_INDEX>
33558 void baseEmplace();
33559 template <size_t t_INDEX, class t_ARG_01>
33560 void baseEmplace(const t_ARG_01& arg_01);
33561
33562 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
33563 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
33564
33565 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
33566 void baseEmplace(const t_ARG_01& arg_01,
33567 const t_ARG_02& arg_02,
33568 const t_ARG_03& arg_03);
33569
33570 template <size_t t_INDEX,
33571 class t_ARG_01,
33572 class t_ARG_02,
33573 class t_ARG_03,
33574 class t_ARG_04>
33575 void baseEmplace(const t_ARG_01& arg_01,
33576 const t_ARG_02& arg_02,
33577 const t_ARG_03& arg_03,
33578 const t_ARG_04& arg_04);
33579
33580 template <size_t t_INDEX,
33581 class t_ARG_01,
33582 class t_ARG_02,
33583 class t_ARG_03,
33584 class t_ARG_04,
33585 class t_ARG_05>
33586 void baseEmplace(const t_ARG_01& arg_01,
33587 const t_ARG_02& arg_02,
33588 const t_ARG_03& arg_03,
33589 const t_ARG_04& arg_04,
33590 const t_ARG_05& arg_05);
33591
33592 template <size_t t_INDEX,
33593 class t_ARG_01,
33594 class t_ARG_02,
33595 class t_ARG_03,
33596 class t_ARG_04,
33597 class t_ARG_05,
33598 class t_ARG_06>
33599 void baseEmplace(const t_ARG_01& arg_01,
33600 const t_ARG_02& arg_02,
33601 const t_ARG_03& arg_03,
33602 const t_ARG_04& arg_04,
33603 const t_ARG_05& arg_05,
33604 const t_ARG_06& arg_06);
33605
33606 template <size_t t_INDEX,
33607 class t_ARG_01,
33608 class t_ARG_02,
33609 class t_ARG_03,
33610 class t_ARG_04,
33611 class t_ARG_05,
33612 class t_ARG_06,
33613 class t_ARG_07>
33614 void baseEmplace(const t_ARG_01& arg_01,
33615 const t_ARG_02& arg_02,
33616 const t_ARG_03& arg_03,
33617 const t_ARG_04& arg_04,
33618 const t_ARG_05& arg_05,
33619 const t_ARG_06& arg_06,
33620 const t_ARG_07& arg_07);
33621
33622 template <size_t t_INDEX,
33623 class t_ARG_01,
33624 class t_ARG_02,
33625 class t_ARG_03,
33626 class t_ARG_04,
33627 class t_ARG_05,
33628 class t_ARG_06,
33629 class t_ARG_07,
33630 class t_ARG_08>
33631 void baseEmplace(const t_ARG_01& arg_01,
33632 const t_ARG_02& arg_02,
33633 const t_ARG_03& arg_03,
33634 const t_ARG_04& arg_04,
33635 const t_ARG_05& arg_05,
33636 const t_ARG_06& arg_06,
33637 const t_ARG_07& arg_07,
33638 const t_ARG_08& arg_08);
33639
33640 template <size_t t_INDEX,
33641 class t_ARG_01,
33642 class t_ARG_02,
33643 class t_ARG_03,
33644 class t_ARG_04,
33645 class t_ARG_05,
33646 class t_ARG_06,
33647 class t_ARG_07,
33648 class t_ARG_08,
33649 class t_ARG_09>
33650 void baseEmplace(const t_ARG_01& arg_01,
33651 const t_ARG_02& arg_02,
33652 const t_ARG_03& arg_03,
33653 const t_ARG_04& arg_04,
33654 const t_ARG_05& arg_05,
33655 const t_ARG_06& arg_06,
33656 const t_ARG_07& arg_07,
33657 const t_ARG_08& arg_08,
33658 const t_ARG_09& arg_09);
33659
33660 template <size_t t_INDEX,
33661 class t_ARG_01,
33662 class t_ARG_02,
33663 class t_ARG_03,
33664 class t_ARG_04,
33665 class t_ARG_05,
33666 class t_ARG_06,
33667 class t_ARG_07,
33668 class t_ARG_08,
33669 class t_ARG_09,
33670 class t_ARG_10>
33671 void baseEmplace(const t_ARG_01& arg_01,
33672 const t_ARG_02& arg_02,
33673 const t_ARG_03& arg_03,
33674 const t_ARG_04& arg_04,
33675 const t_ARG_05& arg_05,
33676 const t_ARG_06& arg_06,
33677 const t_ARG_07& arg_07,
33678 const t_ARG_08& arg_08,
33679 const t_ARG_09& arg_09,
33680 const t_ARG_10& arg_10);
33681#endif
33682
33683 Variant_Base& operator=(const Variant_Base& rhs);
33684
33685 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
33686
33688};
33689#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 14
33690
33691#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 15
33692template <class t_HEAD, class t_TAIL_01,
33693 class t_TAIL_02,
33694 class t_TAIL_03,
33695 class t_TAIL_04,
33696 class t_TAIL_05,
33697 class t_TAIL_06,
33698 class t_TAIL_07,
33699 class t_TAIL_08,
33700 class t_TAIL_09,
33701 class t_TAIL_10,
33702 class t_TAIL_11,
33703 class t_TAIL_12,
33704 class t_TAIL_13,
33705 class t_TAIL_14,
33706 class t_TAIL_15>
33707struct Variant_Base<t_HEAD, t_TAIL_01,
33708 t_TAIL_02,
33709 t_TAIL_03,
33710 t_TAIL_04,
33711 t_TAIL_05,
33712 t_TAIL_06,
33713 t_TAIL_07,
33714 t_TAIL_08,
33715 t_TAIL_09,
33716 t_TAIL_10,
33717 t_TAIL_11,
33718 t_TAIL_12,
33719 t_TAIL_13,
33720 t_TAIL_14,
33721 t_TAIL_15>
33722: public BloombergLP::bslstl::Variant_AllocatorBase<
33723 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
33724 t_TAIL_01,
33725 t_TAIL_02,
33726 t_TAIL_03,
33727 t_TAIL_04,
33728 t_TAIL_05,
33729 t_TAIL_06,
33730 t_TAIL_07,
33731 t_TAIL_08,
33732 t_TAIL_09,
33733 t_TAIL_10,
33734 t_TAIL_11,
33735 t_TAIL_12,
33736 t_TAIL_13,
33737 t_TAIL_14,
33738 t_TAIL_15>::value> {
33739
33740 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
33741 typedef BloombergLP::bslstl::Variant_AllocatorBase<
33742 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
33743 t_TAIL_01,
33744 t_TAIL_02,
33745 t_TAIL_03,
33746 t_TAIL_04,
33747 t_TAIL_05,
33748 t_TAIL_06,
33749 t_TAIL_07,
33750 t_TAIL_08,
33751 t_TAIL_09,
33752 t_TAIL_10,
33753 t_TAIL_11,
33754 t_TAIL_12,
33755 t_TAIL_13,
33756 t_TAIL_14,
33757 t_TAIL_15>::value>
33758 AllocBase;
33759 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
33760 t_TAIL_02,
33761 t_TAIL_03,
33762 t_TAIL_04,
33763 t_TAIL_05,
33764 t_TAIL_06,
33765 t_TAIL_07,
33766 t_TAIL_08,
33767 t_TAIL_09,
33768 t_TAIL_10,
33769 t_TAIL_11,
33770 t_TAIL_12,
33771 t_TAIL_13,
33772 t_TAIL_14,
33773 t_TAIL_15>
33774 Variant_Union;
33775 typedef bsl::variant<t_HEAD, t_TAIL_01,
33776 t_TAIL_02,
33777 t_TAIL_03,
33778 t_TAIL_04,
33779 t_TAIL_05,
33780 t_TAIL_06,
33781 t_TAIL_07,
33782 t_TAIL_08,
33783 t_TAIL_09,
33784 t_TAIL_10,
33785 t_TAIL_11,
33786 t_TAIL_12,
33787 t_TAIL_13,
33788 t_TAIL_14,
33789 t_TAIL_15> Variant;
33790
33791 struct NoAlloc {
33792 };
33793
33794 typedef typename bsl::conditional<
33795 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
33796 t_TAIL_01,
33797 t_TAIL_02,
33798 t_TAIL_03,
33799 t_TAIL_04,
33800 t_TAIL_05,
33801 t_TAIL_06,
33802 t_TAIL_07,
33803 t_TAIL_08,
33804 t_TAIL_09,
33805 t_TAIL_10,
33806 t_TAIL_11,
33807 t_TAIL_12,
33808 t_TAIL_13,
33809 t_TAIL_14,
33810 t_TAIL_15>::value,
33812 NoAlloc>::type allocator_type;
33813
33814
33815 size_t d_type;
33816
33817 Variant_Union d_union;
33818
33820 Variant_Base,
33821 BloombergLP::bslma::UsesBslmaAllocator,
33822 (BloombergLP::bslstl::
33823 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
33824 t_TAIL_02,
33825 t_TAIL_03,
33826 t_TAIL_04,
33827 t_TAIL_05,
33828 t_TAIL_06,
33829 t_TAIL_07,
33830 t_TAIL_08,
33831 t_TAIL_09,
33832 t_TAIL_10,
33833 t_TAIL_11,
33834 t_TAIL_12,
33835 t_TAIL_13,
33836 t_TAIL_14,
33837 t_TAIL_15>::value));
33839 Variant_Base,
33840 BloombergLP::bslmf::UsesAllocatorArgT,
33841 (BloombergLP::bslstl::
33842 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
33843 t_TAIL_02,
33844 t_TAIL_03,
33845 t_TAIL_04,
33846 t_TAIL_05,
33847 t_TAIL_06,
33848 t_TAIL_07,
33849 t_TAIL_08,
33850 t_TAIL_09,
33851 t_TAIL_10,
33852 t_TAIL_11,
33853 t_TAIL_12,
33854 t_TAIL_13,
33855 t_TAIL_14,
33856 t_TAIL_15>::value));
33858 Variant_Base,
33859 BloombergLP::bslmf::IsBitwiseMoveable,
33860 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
33861 t_TAIL_01,
33862 t_TAIL_02,
33863 t_TAIL_03,
33864 t_TAIL_04,
33865 t_TAIL_05,
33866 t_TAIL_06,
33867 t_TAIL_07,
33868 t_TAIL_08,
33869 t_TAIL_09,
33870 t_TAIL_10,
33871 t_TAIL_11,
33872 t_TAIL_12,
33873 t_TAIL_13,
33874 t_TAIL_14,
33875 t_TAIL_15>::value));
33876
33877#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
33878 Variant_Base();
33879
33880 Variant_Base(const Variant_Base& original);
33881
33882 Variant_Base(Variant_Base&& original);
33883
33884#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
33885 Variant_Base(Variant_ConstructFromStdTag, size_t index);
33886#endif
33887
33888 template <size_t t_INDEX, class t_ARGS_01,
33889 class t_ARGS_02,
33890 class t_ARGS_03,
33891 class t_ARGS_04,
33892 class t_ARGS_05,
33893 class t_ARGS_06,
33894 class t_ARGS_07,
33895 class t_ARGS_08,
33896 class t_ARGS_09,
33897 class t_ARGS_10,
33898 class t_ARGS_11,
33899 class t_ARGS_12,
33900 class t_ARGS_13,
33901 class t_ARGS_14,
33902 class t_ARGS_15>
33903 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33904 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
33905 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
33906 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
33907 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
33908 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
33909 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
33910 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
33911 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
33912 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
33913 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
33914 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
33915 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
33916 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
33917 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
33918 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15);
33919
33920
33921 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
33922
33923 Variant_Base(bsl::allocator_arg_t,
33924 allocator_type allocator,
33925 const Variant& original);
33926 Variant_Base(bsl::allocator_arg_t,
33927 allocator_type allocator,
33928 Variant&& original);
33929
33930#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
33931 Variant_Base(bsl::allocator_arg_t,
33932 allocator_type allocator,
33933 Variant_ConstructFromStdTag,
33934 size_t index);
33935#endif
33936
33937 template <size_t t_INDEX, class t_ARGS_01,
33938 class t_ARGS_02,
33939 class t_ARGS_03,
33940 class t_ARGS_04,
33941 class t_ARGS_05,
33942 class t_ARGS_06,
33943 class t_ARGS_07,
33944 class t_ARGS_08,
33945 class t_ARGS_09,
33946 class t_ARGS_10,
33947 class t_ARGS_11,
33948 class t_ARGS_12,
33949 class t_ARGS_13,
33950 class t_ARGS_14,
33951 class t_ARGS_15>
33952 explicit Variant_Base(bsl::allocator_arg_t,
33953 allocator_type allocator,
33955 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
33956 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
33957 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
33958 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
33959 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
33960 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
33961 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
33962 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
33963 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
33964 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
33965 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
33966 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
33967 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
33968 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
33969 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15);
33970
33971#else
33972
33973 Variant_Base();
33974
33975 Variant_Base(const Variant& original);
33976
33977 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
33978
33979 template <size_t t_INDEX>
33980 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
33981
33982 template <size_t t_INDEX, class t_ARG_01>
33983 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33984 const t_ARG_01& arg_01);
33985
33986 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
33987 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33988 const t_ARG_01& arg_01,
33989 const t_ARG_02& arg_02);
33990
33991 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
33992 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
33993 const t_ARG_01& arg_01,
33994 const t_ARG_02& arg_02,
33995 const t_ARG_03& arg_03);
33996
33997 template <size_t t_INDEX,
33998 class t_ARG_01,
33999 class t_ARG_02,
34000 class t_ARG_03,
34001 class t_ARG_04>
34002 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34003 const t_ARG_01& arg_01,
34004 const t_ARG_02& arg_02,
34005 const t_ARG_03& arg_03,
34006 const t_ARG_04& arg_04);
34007
34008 template <size_t t_INDEX,
34009 class t_ARG_01,
34010 class t_ARG_02,
34011 class t_ARG_03,
34012 class t_ARG_04,
34013 class t_ARG_05>
34014 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34015 const t_ARG_01& arg_01,
34016 const t_ARG_02& arg_02,
34017 const t_ARG_03& arg_03,
34018 const t_ARG_04& arg_04,
34019 const t_ARG_05& arg_05);
34020
34021 template <size_t t_INDEX,
34022 class t_ARG_01,
34023 class t_ARG_02,
34024 class t_ARG_03,
34025 class t_ARG_04,
34026 class t_ARG_05,
34027 class t_ARG_06>
34028 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34029 const t_ARG_01& arg_01,
34030 const t_ARG_02& arg_02,
34031 const t_ARG_03& arg_03,
34032 const t_ARG_04& arg_04,
34033 const t_ARG_05& arg_05,
34034 const t_ARG_06& arg_06);
34035
34036 template <size_t t_INDEX,
34037 class t_ARG_01,
34038 class t_ARG_02,
34039 class t_ARG_03,
34040 class t_ARG_04,
34041 class t_ARG_05,
34042 class t_ARG_06,
34043 class t_ARG_07>
34044 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34045 const t_ARG_01& arg_01,
34046 const t_ARG_02& arg_02,
34047 const t_ARG_03& arg_03,
34048 const t_ARG_04& arg_04,
34049 const t_ARG_05& arg_05,
34050 const t_ARG_06& arg_06,
34051 const t_ARG_07& arg_07);
34052
34053 template <size_t t_INDEX,
34054 class t_ARG_01,
34055 class t_ARG_02,
34056 class t_ARG_03,
34057 class t_ARG_04,
34058 class t_ARG_05,
34059 class t_ARG_06,
34060 class t_ARG_07,
34061 class t_ARG_08>
34062 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34063 const t_ARG_01& arg_01,
34064 const t_ARG_02& arg_02,
34065 const t_ARG_03& arg_03,
34066 const t_ARG_04& arg_04,
34067 const t_ARG_05& arg_05,
34068 const t_ARG_06& arg_06,
34069 const t_ARG_07& arg_07,
34070 const t_ARG_08& arg_08);
34071
34072 template <size_t t_INDEX,
34073 class t_ARG_01,
34074 class t_ARG_02,
34075 class t_ARG_03,
34076 class t_ARG_04,
34077 class t_ARG_05,
34078 class t_ARG_06,
34079 class t_ARG_07,
34080 class t_ARG_08,
34081 class t_ARG_09>
34082 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34083 const t_ARG_01& arg_01,
34084 const t_ARG_02& arg_02,
34085 const t_ARG_03& arg_03,
34086 const t_ARG_04& arg_04,
34087 const t_ARG_05& arg_05,
34088 const t_ARG_06& arg_06,
34089 const t_ARG_07& arg_07,
34090 const t_ARG_08& arg_08,
34091 const t_ARG_09& arg_09);
34092
34093 template <size_t t_INDEX,
34094 class t_ARG_01,
34095 class t_ARG_02,
34096 class t_ARG_03,
34097 class t_ARG_04,
34098 class t_ARG_05,
34099 class t_ARG_06,
34100 class t_ARG_07,
34101 class t_ARG_08,
34102 class t_ARG_09,
34103 class t_ARG_10>
34104 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34105 const t_ARG_01& arg_01,
34106 const t_ARG_02& arg_02,
34107 const t_ARG_03& arg_03,
34108 const t_ARG_04& arg_04,
34109 const t_ARG_05& arg_05,
34110 const t_ARG_06& arg_06,
34111 const t_ARG_07& arg_07,
34112 const t_ARG_08& arg_08,
34113 const t_ARG_09& arg_09,
34114 const t_ARG_10& arg_10);
34115
34116 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
34117
34118 Variant_Base(bsl::allocator_arg_t,
34119 allocator_type allocator,
34120 const Variant& original);
34121 Variant_Base(bsl::allocator_arg_t,
34122 allocator_type allocator,
34123 BloombergLP::bslmf::MovableRef<Variant> original);
34124
34125 template <size_t t_INDEX>
34126 explicit Variant_Base(bsl::allocator_arg_t,
34127 allocator_type allocator,
34129
34130 template <size_t t_INDEX, class t_ARG_01>
34131 explicit Variant_Base(bsl::allocator_arg_t,
34132 allocator_type allocator,
34134 const t_ARG_01& arg_01);
34135
34136 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
34137 explicit Variant_Base(bsl::allocator_arg_t,
34138 allocator_type allocator,
34140 const t_ARG_01& arg_01,
34141 const t_ARG_02& arg_02);
34142
34143 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
34144 explicit Variant_Base(bsl::allocator_arg_t,
34145 allocator_type allocator,
34147 const t_ARG_01& arg_01,
34148 const t_ARG_02& arg_02,
34149 const t_ARG_03& arg_03);
34150
34151 template <size_t t_INDEX,
34152 class t_ARG_01,
34153 class t_ARG_02,
34154 class t_ARG_03,
34155 class t_ARG_04>
34156 explicit Variant_Base(bsl::allocator_arg_t,
34157 allocator_type allocator,
34159 const t_ARG_01& arg_01,
34160 const t_ARG_02& arg_02,
34161 const t_ARG_03& arg_03,
34162 const t_ARG_04& arg_04);
34163
34164 template <size_t t_INDEX,
34165 class t_ARG_01,
34166 class t_ARG_02,
34167 class t_ARG_03,
34168 class t_ARG_04,
34169 class t_ARG_05>
34170 explicit Variant_Base(bsl::allocator_arg_t,
34171 allocator_type allocator,
34173 const t_ARG_01& arg_01,
34174 const t_ARG_02& arg_02,
34175 const t_ARG_03& arg_03,
34176 const t_ARG_04& arg_04,
34177 const t_ARG_05& arg_05);
34178
34179 template <size_t t_INDEX,
34180 class t_ARG_01,
34181 class t_ARG_02,
34182 class t_ARG_03,
34183 class t_ARG_04,
34184 class t_ARG_05,
34185 class t_ARG_06>
34186 explicit Variant_Base(bsl::allocator_arg_t,
34187 allocator_type allocator,
34189 const t_ARG_01& arg_01,
34190 const t_ARG_02& arg_02,
34191 const t_ARG_03& arg_03,
34192 const t_ARG_04& arg_04,
34193 const t_ARG_05& arg_05,
34194 const t_ARG_06& arg_06);
34195
34196 template <size_t t_INDEX,
34197 class t_ARG_01,
34198 class t_ARG_02,
34199 class t_ARG_03,
34200 class t_ARG_04,
34201 class t_ARG_05,
34202 class t_ARG_06,
34203 class t_ARG_07>
34204 explicit Variant_Base(bsl::allocator_arg_t,
34205 allocator_type allocator,
34207 const t_ARG_01& arg_01,
34208 const t_ARG_02& arg_02,
34209 const t_ARG_03& arg_03,
34210 const t_ARG_04& arg_04,
34211 const t_ARG_05& arg_05,
34212 const t_ARG_06& arg_06,
34213 const t_ARG_07& arg_07);
34214
34215 template <size_t t_INDEX,
34216 class t_ARG_01,
34217 class t_ARG_02,
34218 class t_ARG_03,
34219 class t_ARG_04,
34220 class t_ARG_05,
34221 class t_ARG_06,
34222 class t_ARG_07,
34223 class t_ARG_08>
34224 explicit Variant_Base(bsl::allocator_arg_t,
34225 allocator_type allocator,
34227 const t_ARG_01& arg_01,
34228 const t_ARG_02& arg_02,
34229 const t_ARG_03& arg_03,
34230 const t_ARG_04& arg_04,
34231 const t_ARG_05& arg_05,
34232 const t_ARG_06& arg_06,
34233 const t_ARG_07& arg_07,
34234 const t_ARG_08& arg_08);
34235
34236 template <size_t t_INDEX,
34237 class t_ARG_01,
34238 class t_ARG_02,
34239 class t_ARG_03,
34240 class t_ARG_04,
34241 class t_ARG_05,
34242 class t_ARG_06,
34243 class t_ARG_07,
34244 class t_ARG_08,
34245 class t_ARG_09>
34246 explicit Variant_Base(bsl::allocator_arg_t,
34247 allocator_type allocator,
34249 const t_ARG_01& arg_01,
34250 const t_ARG_02& arg_02,
34251 const t_ARG_03& arg_03,
34252 const t_ARG_04& arg_04,
34253 const t_ARG_05& arg_05,
34254 const t_ARG_06& arg_06,
34255 const t_ARG_07& arg_07,
34256 const t_ARG_08& arg_08,
34257 const t_ARG_09& arg_09);
34258
34259 template <size_t t_INDEX,
34260 class t_ARG_01,
34261 class t_ARG_02,
34262 class t_ARG_03,
34263 class t_ARG_04,
34264 class t_ARG_05,
34265 class t_ARG_06,
34266 class t_ARG_07,
34267 class t_ARG_08,
34268 class t_ARG_09,
34269 class t_ARG_10>
34270 explicit Variant_Base(bsl::allocator_arg_t,
34271 allocator_type allocator,
34273 const t_ARG_01& arg_01,
34274 const t_ARG_02& arg_02,
34275 const t_ARG_03& arg_03,
34276 const t_ARG_04& arg_04,
34277 const t_ARG_05& arg_05,
34278 const t_ARG_06& arg_06,
34279 const t_ARG_07& arg_07,
34280 const t_ARG_08& arg_08,
34281 const t_ARG_09& arg_09,
34282 const t_ARG_10& arg_10);
34283
34284#endif
34285
34286 ~Variant_Base();
34287
34288#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
34289 template <size_t t_INDEX, class t_ARGS_01,
34290 class t_ARGS_02,
34291 class t_ARGS_03,
34292 class t_ARGS_04,
34293 class t_ARGS_05,
34294 class t_ARGS_06,
34295 class t_ARGS_07,
34296 class t_ARGS_08,
34297 class t_ARGS_09,
34298 class t_ARGS_10,
34299 class t_ARGS_11,
34300 class t_ARGS_12,
34301 class t_ARGS_13,
34302 class t_ARGS_14,
34303 class t_ARGS_15>
34304 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
34319#else
34320 template <size_t t_INDEX>
34321 void baseEmplace();
34322 template <size_t t_INDEX, class t_ARG_01>
34323 void baseEmplace(const t_ARG_01& arg_01);
34324
34325 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
34326 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
34327
34328 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
34329 void baseEmplace(const t_ARG_01& arg_01,
34330 const t_ARG_02& arg_02,
34331 const t_ARG_03& arg_03);
34332
34333 template <size_t t_INDEX,
34334 class t_ARG_01,
34335 class t_ARG_02,
34336 class t_ARG_03,
34337 class t_ARG_04>
34338 void baseEmplace(const t_ARG_01& arg_01,
34339 const t_ARG_02& arg_02,
34340 const t_ARG_03& arg_03,
34341 const t_ARG_04& arg_04);
34342
34343 template <size_t t_INDEX,
34344 class t_ARG_01,
34345 class t_ARG_02,
34346 class t_ARG_03,
34347 class t_ARG_04,
34348 class t_ARG_05>
34349 void baseEmplace(const t_ARG_01& arg_01,
34350 const t_ARG_02& arg_02,
34351 const t_ARG_03& arg_03,
34352 const t_ARG_04& arg_04,
34353 const t_ARG_05& arg_05);
34354
34355 template <size_t t_INDEX,
34356 class t_ARG_01,
34357 class t_ARG_02,
34358 class t_ARG_03,
34359 class t_ARG_04,
34360 class t_ARG_05,
34361 class t_ARG_06>
34362 void baseEmplace(const t_ARG_01& arg_01,
34363 const t_ARG_02& arg_02,
34364 const t_ARG_03& arg_03,
34365 const t_ARG_04& arg_04,
34366 const t_ARG_05& arg_05,
34367 const t_ARG_06& arg_06);
34368
34369 template <size_t t_INDEX,
34370 class t_ARG_01,
34371 class t_ARG_02,
34372 class t_ARG_03,
34373 class t_ARG_04,
34374 class t_ARG_05,
34375 class t_ARG_06,
34376 class t_ARG_07>
34377 void baseEmplace(const t_ARG_01& arg_01,
34378 const t_ARG_02& arg_02,
34379 const t_ARG_03& arg_03,
34380 const t_ARG_04& arg_04,
34381 const t_ARG_05& arg_05,
34382 const t_ARG_06& arg_06,
34383 const t_ARG_07& arg_07);
34384
34385 template <size_t t_INDEX,
34386 class t_ARG_01,
34387 class t_ARG_02,
34388 class t_ARG_03,
34389 class t_ARG_04,
34390 class t_ARG_05,
34391 class t_ARG_06,
34392 class t_ARG_07,
34393 class t_ARG_08>
34394 void baseEmplace(const t_ARG_01& arg_01,
34395 const t_ARG_02& arg_02,
34396 const t_ARG_03& arg_03,
34397 const t_ARG_04& arg_04,
34398 const t_ARG_05& arg_05,
34399 const t_ARG_06& arg_06,
34400 const t_ARG_07& arg_07,
34401 const t_ARG_08& arg_08);
34402
34403 template <size_t t_INDEX,
34404 class t_ARG_01,
34405 class t_ARG_02,
34406 class t_ARG_03,
34407 class t_ARG_04,
34408 class t_ARG_05,
34409 class t_ARG_06,
34410 class t_ARG_07,
34411 class t_ARG_08,
34412 class t_ARG_09>
34413 void baseEmplace(const t_ARG_01& arg_01,
34414 const t_ARG_02& arg_02,
34415 const t_ARG_03& arg_03,
34416 const t_ARG_04& arg_04,
34417 const t_ARG_05& arg_05,
34418 const t_ARG_06& arg_06,
34419 const t_ARG_07& arg_07,
34420 const t_ARG_08& arg_08,
34421 const t_ARG_09& arg_09);
34422
34423 template <size_t t_INDEX,
34424 class t_ARG_01,
34425 class t_ARG_02,
34426 class t_ARG_03,
34427 class t_ARG_04,
34428 class t_ARG_05,
34429 class t_ARG_06,
34430 class t_ARG_07,
34431 class t_ARG_08,
34432 class t_ARG_09,
34433 class t_ARG_10>
34434 void baseEmplace(const t_ARG_01& arg_01,
34435 const t_ARG_02& arg_02,
34436 const t_ARG_03& arg_03,
34437 const t_ARG_04& arg_04,
34438 const t_ARG_05& arg_05,
34439 const t_ARG_06& arg_06,
34440 const t_ARG_07& arg_07,
34441 const t_ARG_08& arg_08,
34442 const t_ARG_09& arg_09,
34443 const t_ARG_10& arg_10);
34444#endif
34445
34446 Variant_Base& operator=(const Variant_Base& rhs);
34447
34448 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
34449
34451};
34452#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 15
34453
34454#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 16
34455template <class t_HEAD, class t_TAIL_01,
34456 class t_TAIL_02,
34457 class t_TAIL_03,
34458 class t_TAIL_04,
34459 class t_TAIL_05,
34460 class t_TAIL_06,
34461 class t_TAIL_07,
34462 class t_TAIL_08,
34463 class t_TAIL_09,
34464 class t_TAIL_10,
34465 class t_TAIL_11,
34466 class t_TAIL_12,
34467 class t_TAIL_13,
34468 class t_TAIL_14,
34469 class t_TAIL_15,
34470 class t_TAIL_16>
34471struct Variant_Base<t_HEAD, t_TAIL_01,
34472 t_TAIL_02,
34473 t_TAIL_03,
34474 t_TAIL_04,
34475 t_TAIL_05,
34476 t_TAIL_06,
34477 t_TAIL_07,
34478 t_TAIL_08,
34479 t_TAIL_09,
34480 t_TAIL_10,
34481 t_TAIL_11,
34482 t_TAIL_12,
34483 t_TAIL_13,
34484 t_TAIL_14,
34485 t_TAIL_15,
34486 t_TAIL_16>
34487: public BloombergLP::bslstl::Variant_AllocatorBase<
34488 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
34489 t_TAIL_01,
34490 t_TAIL_02,
34491 t_TAIL_03,
34492 t_TAIL_04,
34493 t_TAIL_05,
34494 t_TAIL_06,
34495 t_TAIL_07,
34496 t_TAIL_08,
34497 t_TAIL_09,
34498 t_TAIL_10,
34499 t_TAIL_11,
34500 t_TAIL_12,
34501 t_TAIL_13,
34502 t_TAIL_14,
34503 t_TAIL_15,
34504 t_TAIL_16>::value> {
34505
34506 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
34507 typedef BloombergLP::bslstl::Variant_AllocatorBase<
34508 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
34509 t_TAIL_01,
34510 t_TAIL_02,
34511 t_TAIL_03,
34512 t_TAIL_04,
34513 t_TAIL_05,
34514 t_TAIL_06,
34515 t_TAIL_07,
34516 t_TAIL_08,
34517 t_TAIL_09,
34518 t_TAIL_10,
34519 t_TAIL_11,
34520 t_TAIL_12,
34521 t_TAIL_13,
34522 t_TAIL_14,
34523 t_TAIL_15,
34524 t_TAIL_16>::value>
34525 AllocBase;
34526 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
34527 t_TAIL_02,
34528 t_TAIL_03,
34529 t_TAIL_04,
34530 t_TAIL_05,
34531 t_TAIL_06,
34532 t_TAIL_07,
34533 t_TAIL_08,
34534 t_TAIL_09,
34535 t_TAIL_10,
34536 t_TAIL_11,
34537 t_TAIL_12,
34538 t_TAIL_13,
34539 t_TAIL_14,
34540 t_TAIL_15,
34541 t_TAIL_16>
34542 Variant_Union;
34543 typedef bsl::variant<t_HEAD, t_TAIL_01,
34544 t_TAIL_02,
34545 t_TAIL_03,
34546 t_TAIL_04,
34547 t_TAIL_05,
34548 t_TAIL_06,
34549 t_TAIL_07,
34550 t_TAIL_08,
34551 t_TAIL_09,
34552 t_TAIL_10,
34553 t_TAIL_11,
34554 t_TAIL_12,
34555 t_TAIL_13,
34556 t_TAIL_14,
34557 t_TAIL_15,
34558 t_TAIL_16> Variant;
34559
34560 struct NoAlloc {
34561 };
34562
34563 typedef typename bsl::conditional<
34564 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
34565 t_TAIL_01,
34566 t_TAIL_02,
34567 t_TAIL_03,
34568 t_TAIL_04,
34569 t_TAIL_05,
34570 t_TAIL_06,
34571 t_TAIL_07,
34572 t_TAIL_08,
34573 t_TAIL_09,
34574 t_TAIL_10,
34575 t_TAIL_11,
34576 t_TAIL_12,
34577 t_TAIL_13,
34578 t_TAIL_14,
34579 t_TAIL_15,
34580 t_TAIL_16>::value,
34582 NoAlloc>::type allocator_type;
34583
34584
34585 size_t d_type;
34586
34587 Variant_Union d_union;
34588
34590 Variant_Base,
34591 BloombergLP::bslma::UsesBslmaAllocator,
34592 (BloombergLP::bslstl::
34593 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
34594 t_TAIL_02,
34595 t_TAIL_03,
34596 t_TAIL_04,
34597 t_TAIL_05,
34598 t_TAIL_06,
34599 t_TAIL_07,
34600 t_TAIL_08,
34601 t_TAIL_09,
34602 t_TAIL_10,
34603 t_TAIL_11,
34604 t_TAIL_12,
34605 t_TAIL_13,
34606 t_TAIL_14,
34607 t_TAIL_15,
34608 t_TAIL_16>::value));
34610 Variant_Base,
34611 BloombergLP::bslmf::UsesAllocatorArgT,
34612 (BloombergLP::bslstl::
34613 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
34614 t_TAIL_02,
34615 t_TAIL_03,
34616 t_TAIL_04,
34617 t_TAIL_05,
34618 t_TAIL_06,
34619 t_TAIL_07,
34620 t_TAIL_08,
34621 t_TAIL_09,
34622 t_TAIL_10,
34623 t_TAIL_11,
34624 t_TAIL_12,
34625 t_TAIL_13,
34626 t_TAIL_14,
34627 t_TAIL_15,
34628 t_TAIL_16>::value));
34630 Variant_Base,
34631 BloombergLP::bslmf::IsBitwiseMoveable,
34632 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
34633 t_TAIL_01,
34634 t_TAIL_02,
34635 t_TAIL_03,
34636 t_TAIL_04,
34637 t_TAIL_05,
34638 t_TAIL_06,
34639 t_TAIL_07,
34640 t_TAIL_08,
34641 t_TAIL_09,
34642 t_TAIL_10,
34643 t_TAIL_11,
34644 t_TAIL_12,
34645 t_TAIL_13,
34646 t_TAIL_14,
34647 t_TAIL_15,
34648 t_TAIL_16>::value));
34649
34650#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
34651 Variant_Base();
34652
34653 Variant_Base(const Variant_Base& original);
34654
34655 Variant_Base(Variant_Base&& original);
34656
34657#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
34658 Variant_Base(Variant_ConstructFromStdTag, size_t index);
34659#endif
34660
34661 template <size_t t_INDEX, class t_ARGS_01,
34662 class t_ARGS_02,
34663 class t_ARGS_03,
34664 class t_ARGS_04,
34665 class t_ARGS_05,
34666 class t_ARGS_06,
34667 class t_ARGS_07,
34668 class t_ARGS_08,
34669 class t_ARGS_09,
34670 class t_ARGS_10,
34671 class t_ARGS_11,
34672 class t_ARGS_12,
34673 class t_ARGS_13,
34674 class t_ARGS_14,
34675 class t_ARGS_15,
34676 class t_ARGS_16>
34677 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34678 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
34679 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
34680 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
34681 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
34682 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
34683 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
34684 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
34685 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
34686 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
34687 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
34688 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
34689 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
34690 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
34691 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
34692 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
34693 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16);
34694
34695
34696 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
34697
34698 Variant_Base(bsl::allocator_arg_t,
34699 allocator_type allocator,
34700 const Variant& original);
34701 Variant_Base(bsl::allocator_arg_t,
34702 allocator_type allocator,
34703 Variant&& original);
34704
34705#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
34706 Variant_Base(bsl::allocator_arg_t,
34707 allocator_type allocator,
34708 Variant_ConstructFromStdTag,
34709 size_t index);
34710#endif
34711
34712 template <size_t t_INDEX, class t_ARGS_01,
34713 class t_ARGS_02,
34714 class t_ARGS_03,
34715 class t_ARGS_04,
34716 class t_ARGS_05,
34717 class t_ARGS_06,
34718 class t_ARGS_07,
34719 class t_ARGS_08,
34720 class t_ARGS_09,
34721 class t_ARGS_10,
34722 class t_ARGS_11,
34723 class t_ARGS_12,
34724 class t_ARGS_13,
34725 class t_ARGS_14,
34726 class t_ARGS_15,
34727 class t_ARGS_16>
34728 explicit Variant_Base(bsl::allocator_arg_t,
34729 allocator_type allocator,
34731 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
34732 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
34733 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
34734 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
34735 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
34736 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
34737 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
34738 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
34739 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
34740 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
34741 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
34742 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
34743 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
34744 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
34745 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
34746 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16);
34747
34748#else
34749
34750 Variant_Base();
34751
34752 Variant_Base(const Variant& original);
34753
34754 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
34755
34756 template <size_t t_INDEX>
34757 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
34758
34759 template <size_t t_INDEX, class t_ARG_01>
34760 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34761 const t_ARG_01& arg_01);
34762
34763 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
34764 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34765 const t_ARG_01& arg_01,
34766 const t_ARG_02& arg_02);
34767
34768 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
34769 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34770 const t_ARG_01& arg_01,
34771 const t_ARG_02& arg_02,
34772 const t_ARG_03& arg_03);
34773
34774 template <size_t t_INDEX,
34775 class t_ARG_01,
34776 class t_ARG_02,
34777 class t_ARG_03,
34778 class t_ARG_04>
34779 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34780 const t_ARG_01& arg_01,
34781 const t_ARG_02& arg_02,
34782 const t_ARG_03& arg_03,
34783 const t_ARG_04& arg_04);
34784
34785 template <size_t t_INDEX,
34786 class t_ARG_01,
34787 class t_ARG_02,
34788 class t_ARG_03,
34789 class t_ARG_04,
34790 class t_ARG_05>
34791 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34792 const t_ARG_01& arg_01,
34793 const t_ARG_02& arg_02,
34794 const t_ARG_03& arg_03,
34795 const t_ARG_04& arg_04,
34796 const t_ARG_05& arg_05);
34797
34798 template <size_t t_INDEX,
34799 class t_ARG_01,
34800 class t_ARG_02,
34801 class t_ARG_03,
34802 class t_ARG_04,
34803 class t_ARG_05,
34804 class t_ARG_06>
34805 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34806 const t_ARG_01& arg_01,
34807 const t_ARG_02& arg_02,
34808 const t_ARG_03& arg_03,
34809 const t_ARG_04& arg_04,
34810 const t_ARG_05& arg_05,
34811 const t_ARG_06& arg_06);
34812
34813 template <size_t t_INDEX,
34814 class t_ARG_01,
34815 class t_ARG_02,
34816 class t_ARG_03,
34817 class t_ARG_04,
34818 class t_ARG_05,
34819 class t_ARG_06,
34820 class t_ARG_07>
34821 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34822 const t_ARG_01& arg_01,
34823 const t_ARG_02& arg_02,
34824 const t_ARG_03& arg_03,
34825 const t_ARG_04& arg_04,
34826 const t_ARG_05& arg_05,
34827 const t_ARG_06& arg_06,
34828 const t_ARG_07& arg_07);
34829
34830 template <size_t t_INDEX,
34831 class t_ARG_01,
34832 class t_ARG_02,
34833 class t_ARG_03,
34834 class t_ARG_04,
34835 class t_ARG_05,
34836 class t_ARG_06,
34837 class t_ARG_07,
34838 class t_ARG_08>
34839 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34840 const t_ARG_01& arg_01,
34841 const t_ARG_02& arg_02,
34842 const t_ARG_03& arg_03,
34843 const t_ARG_04& arg_04,
34844 const t_ARG_05& arg_05,
34845 const t_ARG_06& arg_06,
34846 const t_ARG_07& arg_07,
34847 const t_ARG_08& arg_08);
34848
34849 template <size_t t_INDEX,
34850 class t_ARG_01,
34851 class t_ARG_02,
34852 class t_ARG_03,
34853 class t_ARG_04,
34854 class t_ARG_05,
34855 class t_ARG_06,
34856 class t_ARG_07,
34857 class t_ARG_08,
34858 class t_ARG_09>
34859 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34860 const t_ARG_01& arg_01,
34861 const t_ARG_02& arg_02,
34862 const t_ARG_03& arg_03,
34863 const t_ARG_04& arg_04,
34864 const t_ARG_05& arg_05,
34865 const t_ARG_06& arg_06,
34866 const t_ARG_07& arg_07,
34867 const t_ARG_08& arg_08,
34868 const t_ARG_09& arg_09);
34869
34870 template <size_t t_INDEX,
34871 class t_ARG_01,
34872 class t_ARG_02,
34873 class t_ARG_03,
34874 class t_ARG_04,
34875 class t_ARG_05,
34876 class t_ARG_06,
34877 class t_ARG_07,
34878 class t_ARG_08,
34879 class t_ARG_09,
34880 class t_ARG_10>
34881 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
34882 const t_ARG_01& arg_01,
34883 const t_ARG_02& arg_02,
34884 const t_ARG_03& arg_03,
34885 const t_ARG_04& arg_04,
34886 const t_ARG_05& arg_05,
34887 const t_ARG_06& arg_06,
34888 const t_ARG_07& arg_07,
34889 const t_ARG_08& arg_08,
34890 const t_ARG_09& arg_09,
34891 const t_ARG_10& arg_10);
34892
34893 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
34894
34895 Variant_Base(bsl::allocator_arg_t,
34896 allocator_type allocator,
34897 const Variant& original);
34898 Variant_Base(bsl::allocator_arg_t,
34899 allocator_type allocator,
34900 BloombergLP::bslmf::MovableRef<Variant> original);
34901
34902 template <size_t t_INDEX>
34903 explicit Variant_Base(bsl::allocator_arg_t,
34904 allocator_type allocator,
34906
34907 template <size_t t_INDEX, class t_ARG_01>
34908 explicit Variant_Base(bsl::allocator_arg_t,
34909 allocator_type allocator,
34911 const t_ARG_01& arg_01);
34912
34913 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
34914 explicit Variant_Base(bsl::allocator_arg_t,
34915 allocator_type allocator,
34917 const t_ARG_01& arg_01,
34918 const t_ARG_02& arg_02);
34919
34920 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
34921 explicit Variant_Base(bsl::allocator_arg_t,
34922 allocator_type allocator,
34924 const t_ARG_01& arg_01,
34925 const t_ARG_02& arg_02,
34926 const t_ARG_03& arg_03);
34927
34928 template <size_t t_INDEX,
34929 class t_ARG_01,
34930 class t_ARG_02,
34931 class t_ARG_03,
34932 class t_ARG_04>
34933 explicit Variant_Base(bsl::allocator_arg_t,
34934 allocator_type allocator,
34936 const t_ARG_01& arg_01,
34937 const t_ARG_02& arg_02,
34938 const t_ARG_03& arg_03,
34939 const t_ARG_04& arg_04);
34940
34941 template <size_t t_INDEX,
34942 class t_ARG_01,
34943 class t_ARG_02,
34944 class t_ARG_03,
34945 class t_ARG_04,
34946 class t_ARG_05>
34947 explicit Variant_Base(bsl::allocator_arg_t,
34948 allocator_type allocator,
34950 const t_ARG_01& arg_01,
34951 const t_ARG_02& arg_02,
34952 const t_ARG_03& arg_03,
34953 const t_ARG_04& arg_04,
34954 const t_ARG_05& arg_05);
34955
34956 template <size_t t_INDEX,
34957 class t_ARG_01,
34958 class t_ARG_02,
34959 class t_ARG_03,
34960 class t_ARG_04,
34961 class t_ARG_05,
34962 class t_ARG_06>
34963 explicit Variant_Base(bsl::allocator_arg_t,
34964 allocator_type allocator,
34966 const t_ARG_01& arg_01,
34967 const t_ARG_02& arg_02,
34968 const t_ARG_03& arg_03,
34969 const t_ARG_04& arg_04,
34970 const t_ARG_05& arg_05,
34971 const t_ARG_06& arg_06);
34972
34973 template <size_t t_INDEX,
34974 class t_ARG_01,
34975 class t_ARG_02,
34976 class t_ARG_03,
34977 class t_ARG_04,
34978 class t_ARG_05,
34979 class t_ARG_06,
34980 class t_ARG_07>
34981 explicit Variant_Base(bsl::allocator_arg_t,
34982 allocator_type allocator,
34984 const t_ARG_01& arg_01,
34985 const t_ARG_02& arg_02,
34986 const t_ARG_03& arg_03,
34987 const t_ARG_04& arg_04,
34988 const t_ARG_05& arg_05,
34989 const t_ARG_06& arg_06,
34990 const t_ARG_07& arg_07);
34991
34992 template <size_t t_INDEX,
34993 class t_ARG_01,
34994 class t_ARG_02,
34995 class t_ARG_03,
34996 class t_ARG_04,
34997 class t_ARG_05,
34998 class t_ARG_06,
34999 class t_ARG_07,
35000 class t_ARG_08>
35001 explicit Variant_Base(bsl::allocator_arg_t,
35002 allocator_type allocator,
35004 const t_ARG_01& arg_01,
35005 const t_ARG_02& arg_02,
35006 const t_ARG_03& arg_03,
35007 const t_ARG_04& arg_04,
35008 const t_ARG_05& arg_05,
35009 const t_ARG_06& arg_06,
35010 const t_ARG_07& arg_07,
35011 const t_ARG_08& arg_08);
35012
35013 template <size_t t_INDEX,
35014 class t_ARG_01,
35015 class t_ARG_02,
35016 class t_ARG_03,
35017 class t_ARG_04,
35018 class t_ARG_05,
35019 class t_ARG_06,
35020 class t_ARG_07,
35021 class t_ARG_08,
35022 class t_ARG_09>
35023 explicit Variant_Base(bsl::allocator_arg_t,
35024 allocator_type allocator,
35026 const t_ARG_01& arg_01,
35027 const t_ARG_02& arg_02,
35028 const t_ARG_03& arg_03,
35029 const t_ARG_04& arg_04,
35030 const t_ARG_05& arg_05,
35031 const t_ARG_06& arg_06,
35032 const t_ARG_07& arg_07,
35033 const t_ARG_08& arg_08,
35034 const t_ARG_09& arg_09);
35035
35036 template <size_t t_INDEX,
35037 class t_ARG_01,
35038 class t_ARG_02,
35039 class t_ARG_03,
35040 class t_ARG_04,
35041 class t_ARG_05,
35042 class t_ARG_06,
35043 class t_ARG_07,
35044 class t_ARG_08,
35045 class t_ARG_09,
35046 class t_ARG_10>
35047 explicit Variant_Base(bsl::allocator_arg_t,
35048 allocator_type allocator,
35050 const t_ARG_01& arg_01,
35051 const t_ARG_02& arg_02,
35052 const t_ARG_03& arg_03,
35053 const t_ARG_04& arg_04,
35054 const t_ARG_05& arg_05,
35055 const t_ARG_06& arg_06,
35056 const t_ARG_07& arg_07,
35057 const t_ARG_08& arg_08,
35058 const t_ARG_09& arg_09,
35059 const t_ARG_10& arg_10);
35060
35061#endif
35062
35063 ~Variant_Base();
35064
35065#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
35066 template <size_t t_INDEX, class t_ARGS_01,
35067 class t_ARGS_02,
35068 class t_ARGS_03,
35069 class t_ARGS_04,
35070 class t_ARGS_05,
35071 class t_ARGS_06,
35072 class t_ARGS_07,
35073 class t_ARGS_08,
35074 class t_ARGS_09,
35075 class t_ARGS_10,
35076 class t_ARGS_11,
35077 class t_ARGS_12,
35078 class t_ARGS_13,
35079 class t_ARGS_14,
35080 class t_ARGS_15,
35081 class t_ARGS_16>
35082 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
35098#else
35099 template <size_t t_INDEX>
35100 void baseEmplace();
35101 template <size_t t_INDEX, class t_ARG_01>
35102 void baseEmplace(const t_ARG_01& arg_01);
35103
35104 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
35105 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
35106
35107 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
35108 void baseEmplace(const t_ARG_01& arg_01,
35109 const t_ARG_02& arg_02,
35110 const t_ARG_03& arg_03);
35111
35112 template <size_t t_INDEX,
35113 class t_ARG_01,
35114 class t_ARG_02,
35115 class t_ARG_03,
35116 class t_ARG_04>
35117 void baseEmplace(const t_ARG_01& arg_01,
35118 const t_ARG_02& arg_02,
35119 const t_ARG_03& arg_03,
35120 const t_ARG_04& arg_04);
35121
35122 template <size_t t_INDEX,
35123 class t_ARG_01,
35124 class t_ARG_02,
35125 class t_ARG_03,
35126 class t_ARG_04,
35127 class t_ARG_05>
35128 void baseEmplace(const t_ARG_01& arg_01,
35129 const t_ARG_02& arg_02,
35130 const t_ARG_03& arg_03,
35131 const t_ARG_04& arg_04,
35132 const t_ARG_05& arg_05);
35133
35134 template <size_t t_INDEX,
35135 class t_ARG_01,
35136 class t_ARG_02,
35137 class t_ARG_03,
35138 class t_ARG_04,
35139 class t_ARG_05,
35140 class t_ARG_06>
35141 void baseEmplace(const t_ARG_01& arg_01,
35142 const t_ARG_02& arg_02,
35143 const t_ARG_03& arg_03,
35144 const t_ARG_04& arg_04,
35145 const t_ARG_05& arg_05,
35146 const t_ARG_06& arg_06);
35147
35148 template <size_t t_INDEX,
35149 class t_ARG_01,
35150 class t_ARG_02,
35151 class t_ARG_03,
35152 class t_ARG_04,
35153 class t_ARG_05,
35154 class t_ARG_06,
35155 class t_ARG_07>
35156 void baseEmplace(const t_ARG_01& arg_01,
35157 const t_ARG_02& arg_02,
35158 const t_ARG_03& arg_03,
35159 const t_ARG_04& arg_04,
35160 const t_ARG_05& arg_05,
35161 const t_ARG_06& arg_06,
35162 const t_ARG_07& arg_07);
35163
35164 template <size_t t_INDEX,
35165 class t_ARG_01,
35166 class t_ARG_02,
35167 class t_ARG_03,
35168 class t_ARG_04,
35169 class t_ARG_05,
35170 class t_ARG_06,
35171 class t_ARG_07,
35172 class t_ARG_08>
35173 void baseEmplace(const t_ARG_01& arg_01,
35174 const t_ARG_02& arg_02,
35175 const t_ARG_03& arg_03,
35176 const t_ARG_04& arg_04,
35177 const t_ARG_05& arg_05,
35178 const t_ARG_06& arg_06,
35179 const t_ARG_07& arg_07,
35180 const t_ARG_08& arg_08);
35181
35182 template <size_t t_INDEX,
35183 class t_ARG_01,
35184 class t_ARG_02,
35185 class t_ARG_03,
35186 class t_ARG_04,
35187 class t_ARG_05,
35188 class t_ARG_06,
35189 class t_ARG_07,
35190 class t_ARG_08,
35191 class t_ARG_09>
35192 void baseEmplace(const t_ARG_01& arg_01,
35193 const t_ARG_02& arg_02,
35194 const t_ARG_03& arg_03,
35195 const t_ARG_04& arg_04,
35196 const t_ARG_05& arg_05,
35197 const t_ARG_06& arg_06,
35198 const t_ARG_07& arg_07,
35199 const t_ARG_08& arg_08,
35200 const t_ARG_09& arg_09);
35201
35202 template <size_t t_INDEX,
35203 class t_ARG_01,
35204 class t_ARG_02,
35205 class t_ARG_03,
35206 class t_ARG_04,
35207 class t_ARG_05,
35208 class t_ARG_06,
35209 class t_ARG_07,
35210 class t_ARG_08,
35211 class t_ARG_09,
35212 class t_ARG_10>
35213 void baseEmplace(const t_ARG_01& arg_01,
35214 const t_ARG_02& arg_02,
35215 const t_ARG_03& arg_03,
35216 const t_ARG_04& arg_04,
35217 const t_ARG_05& arg_05,
35218 const t_ARG_06& arg_06,
35219 const t_ARG_07& arg_07,
35220 const t_ARG_08& arg_08,
35221 const t_ARG_09& arg_09,
35222 const t_ARG_10& arg_10);
35223#endif
35224
35225 Variant_Base& operator=(const Variant_Base& rhs);
35226
35227 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
35228
35230};
35231#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 16
35232
35233#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 17
35234template <class t_HEAD, class t_TAIL_01,
35235 class t_TAIL_02,
35236 class t_TAIL_03,
35237 class t_TAIL_04,
35238 class t_TAIL_05,
35239 class t_TAIL_06,
35240 class t_TAIL_07,
35241 class t_TAIL_08,
35242 class t_TAIL_09,
35243 class t_TAIL_10,
35244 class t_TAIL_11,
35245 class t_TAIL_12,
35246 class t_TAIL_13,
35247 class t_TAIL_14,
35248 class t_TAIL_15,
35249 class t_TAIL_16,
35250 class t_TAIL_17>
35251struct Variant_Base<t_HEAD, t_TAIL_01,
35252 t_TAIL_02,
35253 t_TAIL_03,
35254 t_TAIL_04,
35255 t_TAIL_05,
35256 t_TAIL_06,
35257 t_TAIL_07,
35258 t_TAIL_08,
35259 t_TAIL_09,
35260 t_TAIL_10,
35261 t_TAIL_11,
35262 t_TAIL_12,
35263 t_TAIL_13,
35264 t_TAIL_14,
35265 t_TAIL_15,
35266 t_TAIL_16,
35267 t_TAIL_17>
35268: public BloombergLP::bslstl::Variant_AllocatorBase<
35269 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
35270 t_TAIL_01,
35271 t_TAIL_02,
35272 t_TAIL_03,
35273 t_TAIL_04,
35274 t_TAIL_05,
35275 t_TAIL_06,
35276 t_TAIL_07,
35277 t_TAIL_08,
35278 t_TAIL_09,
35279 t_TAIL_10,
35280 t_TAIL_11,
35281 t_TAIL_12,
35282 t_TAIL_13,
35283 t_TAIL_14,
35284 t_TAIL_15,
35285 t_TAIL_16,
35286 t_TAIL_17>::value> {
35287
35288 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
35289 typedef BloombergLP::bslstl::Variant_AllocatorBase<
35290 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
35291 t_TAIL_01,
35292 t_TAIL_02,
35293 t_TAIL_03,
35294 t_TAIL_04,
35295 t_TAIL_05,
35296 t_TAIL_06,
35297 t_TAIL_07,
35298 t_TAIL_08,
35299 t_TAIL_09,
35300 t_TAIL_10,
35301 t_TAIL_11,
35302 t_TAIL_12,
35303 t_TAIL_13,
35304 t_TAIL_14,
35305 t_TAIL_15,
35306 t_TAIL_16,
35307 t_TAIL_17>::value>
35308 AllocBase;
35309 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
35310 t_TAIL_02,
35311 t_TAIL_03,
35312 t_TAIL_04,
35313 t_TAIL_05,
35314 t_TAIL_06,
35315 t_TAIL_07,
35316 t_TAIL_08,
35317 t_TAIL_09,
35318 t_TAIL_10,
35319 t_TAIL_11,
35320 t_TAIL_12,
35321 t_TAIL_13,
35322 t_TAIL_14,
35323 t_TAIL_15,
35324 t_TAIL_16,
35325 t_TAIL_17>
35326 Variant_Union;
35327 typedef bsl::variant<t_HEAD, t_TAIL_01,
35328 t_TAIL_02,
35329 t_TAIL_03,
35330 t_TAIL_04,
35331 t_TAIL_05,
35332 t_TAIL_06,
35333 t_TAIL_07,
35334 t_TAIL_08,
35335 t_TAIL_09,
35336 t_TAIL_10,
35337 t_TAIL_11,
35338 t_TAIL_12,
35339 t_TAIL_13,
35340 t_TAIL_14,
35341 t_TAIL_15,
35342 t_TAIL_16,
35343 t_TAIL_17> Variant;
35344
35345 struct NoAlloc {
35346 };
35347
35348 typedef typename bsl::conditional<
35349 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
35350 t_TAIL_01,
35351 t_TAIL_02,
35352 t_TAIL_03,
35353 t_TAIL_04,
35354 t_TAIL_05,
35355 t_TAIL_06,
35356 t_TAIL_07,
35357 t_TAIL_08,
35358 t_TAIL_09,
35359 t_TAIL_10,
35360 t_TAIL_11,
35361 t_TAIL_12,
35362 t_TAIL_13,
35363 t_TAIL_14,
35364 t_TAIL_15,
35365 t_TAIL_16,
35366 t_TAIL_17>::value,
35368 NoAlloc>::type allocator_type;
35369
35370
35371 size_t d_type;
35372
35373 Variant_Union d_union;
35374
35376 Variant_Base,
35377 BloombergLP::bslma::UsesBslmaAllocator,
35378 (BloombergLP::bslstl::
35379 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
35380 t_TAIL_02,
35381 t_TAIL_03,
35382 t_TAIL_04,
35383 t_TAIL_05,
35384 t_TAIL_06,
35385 t_TAIL_07,
35386 t_TAIL_08,
35387 t_TAIL_09,
35388 t_TAIL_10,
35389 t_TAIL_11,
35390 t_TAIL_12,
35391 t_TAIL_13,
35392 t_TAIL_14,
35393 t_TAIL_15,
35394 t_TAIL_16,
35395 t_TAIL_17>::value));
35397 Variant_Base,
35398 BloombergLP::bslmf::UsesAllocatorArgT,
35399 (BloombergLP::bslstl::
35400 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
35401 t_TAIL_02,
35402 t_TAIL_03,
35403 t_TAIL_04,
35404 t_TAIL_05,
35405 t_TAIL_06,
35406 t_TAIL_07,
35407 t_TAIL_08,
35408 t_TAIL_09,
35409 t_TAIL_10,
35410 t_TAIL_11,
35411 t_TAIL_12,
35412 t_TAIL_13,
35413 t_TAIL_14,
35414 t_TAIL_15,
35415 t_TAIL_16,
35416 t_TAIL_17>::value));
35418 Variant_Base,
35419 BloombergLP::bslmf::IsBitwiseMoveable,
35420 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
35421 t_TAIL_01,
35422 t_TAIL_02,
35423 t_TAIL_03,
35424 t_TAIL_04,
35425 t_TAIL_05,
35426 t_TAIL_06,
35427 t_TAIL_07,
35428 t_TAIL_08,
35429 t_TAIL_09,
35430 t_TAIL_10,
35431 t_TAIL_11,
35432 t_TAIL_12,
35433 t_TAIL_13,
35434 t_TAIL_14,
35435 t_TAIL_15,
35436 t_TAIL_16,
35437 t_TAIL_17>::value));
35438
35439#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
35440 Variant_Base();
35441
35442 Variant_Base(const Variant_Base& original);
35443
35444 Variant_Base(Variant_Base&& original);
35445
35446#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
35447 Variant_Base(Variant_ConstructFromStdTag, size_t index);
35448#endif
35449
35450 template <size_t t_INDEX, class t_ARGS_01,
35451 class t_ARGS_02,
35452 class t_ARGS_03,
35453 class t_ARGS_04,
35454 class t_ARGS_05,
35455 class t_ARGS_06,
35456 class t_ARGS_07,
35457 class t_ARGS_08,
35458 class t_ARGS_09,
35459 class t_ARGS_10,
35460 class t_ARGS_11,
35461 class t_ARGS_12,
35462 class t_ARGS_13,
35463 class t_ARGS_14,
35464 class t_ARGS_15,
35465 class t_ARGS_16,
35466 class t_ARGS_17>
35467 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35468 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
35469 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
35470 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
35471 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
35472 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
35473 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
35474 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
35475 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
35476 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
35477 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
35478 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
35479 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
35480 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
35481 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
35482 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
35483 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
35484 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17);
35485
35486
35487 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
35488
35489 Variant_Base(bsl::allocator_arg_t,
35490 allocator_type allocator,
35491 const Variant& original);
35492 Variant_Base(bsl::allocator_arg_t,
35493 allocator_type allocator,
35494 Variant&& original);
35495
35496#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
35497 Variant_Base(bsl::allocator_arg_t,
35498 allocator_type allocator,
35499 Variant_ConstructFromStdTag,
35500 size_t index);
35501#endif
35502
35503 template <size_t t_INDEX, class t_ARGS_01,
35504 class t_ARGS_02,
35505 class t_ARGS_03,
35506 class t_ARGS_04,
35507 class t_ARGS_05,
35508 class t_ARGS_06,
35509 class t_ARGS_07,
35510 class t_ARGS_08,
35511 class t_ARGS_09,
35512 class t_ARGS_10,
35513 class t_ARGS_11,
35514 class t_ARGS_12,
35515 class t_ARGS_13,
35516 class t_ARGS_14,
35517 class t_ARGS_15,
35518 class t_ARGS_16,
35519 class t_ARGS_17>
35520 explicit Variant_Base(bsl::allocator_arg_t,
35521 allocator_type allocator,
35523 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
35524 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
35525 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
35526 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
35527 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
35528 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
35529 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
35530 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
35531 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
35532 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
35533 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
35534 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
35535 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
35536 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
35537 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
35538 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
35539 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17);
35540
35541#else
35542
35543 Variant_Base();
35544
35545 Variant_Base(const Variant& original);
35546
35547 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
35548
35549 template <size_t t_INDEX>
35550 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
35551
35552 template <size_t t_INDEX, class t_ARG_01>
35553 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35554 const t_ARG_01& arg_01);
35555
35556 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
35557 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35558 const t_ARG_01& arg_01,
35559 const t_ARG_02& arg_02);
35560
35561 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
35562 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35563 const t_ARG_01& arg_01,
35564 const t_ARG_02& arg_02,
35565 const t_ARG_03& arg_03);
35566
35567 template <size_t t_INDEX,
35568 class t_ARG_01,
35569 class t_ARG_02,
35570 class t_ARG_03,
35571 class t_ARG_04>
35572 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35573 const t_ARG_01& arg_01,
35574 const t_ARG_02& arg_02,
35575 const t_ARG_03& arg_03,
35576 const t_ARG_04& arg_04);
35577
35578 template <size_t t_INDEX,
35579 class t_ARG_01,
35580 class t_ARG_02,
35581 class t_ARG_03,
35582 class t_ARG_04,
35583 class t_ARG_05>
35584 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35585 const t_ARG_01& arg_01,
35586 const t_ARG_02& arg_02,
35587 const t_ARG_03& arg_03,
35588 const t_ARG_04& arg_04,
35589 const t_ARG_05& arg_05);
35590
35591 template <size_t t_INDEX,
35592 class t_ARG_01,
35593 class t_ARG_02,
35594 class t_ARG_03,
35595 class t_ARG_04,
35596 class t_ARG_05,
35597 class t_ARG_06>
35598 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35599 const t_ARG_01& arg_01,
35600 const t_ARG_02& arg_02,
35601 const t_ARG_03& arg_03,
35602 const t_ARG_04& arg_04,
35603 const t_ARG_05& arg_05,
35604 const t_ARG_06& arg_06);
35605
35606 template <size_t t_INDEX,
35607 class t_ARG_01,
35608 class t_ARG_02,
35609 class t_ARG_03,
35610 class t_ARG_04,
35611 class t_ARG_05,
35612 class t_ARG_06,
35613 class t_ARG_07>
35614 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35615 const t_ARG_01& arg_01,
35616 const t_ARG_02& arg_02,
35617 const t_ARG_03& arg_03,
35618 const t_ARG_04& arg_04,
35619 const t_ARG_05& arg_05,
35620 const t_ARG_06& arg_06,
35621 const t_ARG_07& arg_07);
35622
35623 template <size_t t_INDEX,
35624 class t_ARG_01,
35625 class t_ARG_02,
35626 class t_ARG_03,
35627 class t_ARG_04,
35628 class t_ARG_05,
35629 class t_ARG_06,
35630 class t_ARG_07,
35631 class t_ARG_08>
35632 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35633 const t_ARG_01& arg_01,
35634 const t_ARG_02& arg_02,
35635 const t_ARG_03& arg_03,
35636 const t_ARG_04& arg_04,
35637 const t_ARG_05& arg_05,
35638 const t_ARG_06& arg_06,
35639 const t_ARG_07& arg_07,
35640 const t_ARG_08& arg_08);
35641
35642 template <size_t t_INDEX,
35643 class t_ARG_01,
35644 class t_ARG_02,
35645 class t_ARG_03,
35646 class t_ARG_04,
35647 class t_ARG_05,
35648 class t_ARG_06,
35649 class t_ARG_07,
35650 class t_ARG_08,
35651 class t_ARG_09>
35652 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35653 const t_ARG_01& arg_01,
35654 const t_ARG_02& arg_02,
35655 const t_ARG_03& arg_03,
35656 const t_ARG_04& arg_04,
35657 const t_ARG_05& arg_05,
35658 const t_ARG_06& arg_06,
35659 const t_ARG_07& arg_07,
35660 const t_ARG_08& arg_08,
35661 const t_ARG_09& arg_09);
35662
35663 template <size_t t_INDEX,
35664 class t_ARG_01,
35665 class t_ARG_02,
35666 class t_ARG_03,
35667 class t_ARG_04,
35668 class t_ARG_05,
35669 class t_ARG_06,
35670 class t_ARG_07,
35671 class t_ARG_08,
35672 class t_ARG_09,
35673 class t_ARG_10>
35674 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
35675 const t_ARG_01& arg_01,
35676 const t_ARG_02& arg_02,
35677 const t_ARG_03& arg_03,
35678 const t_ARG_04& arg_04,
35679 const t_ARG_05& arg_05,
35680 const t_ARG_06& arg_06,
35681 const t_ARG_07& arg_07,
35682 const t_ARG_08& arg_08,
35683 const t_ARG_09& arg_09,
35684 const t_ARG_10& arg_10);
35685
35686 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
35687
35688 Variant_Base(bsl::allocator_arg_t,
35689 allocator_type allocator,
35690 const Variant& original);
35691 Variant_Base(bsl::allocator_arg_t,
35692 allocator_type allocator,
35693 BloombergLP::bslmf::MovableRef<Variant> original);
35694
35695 template <size_t t_INDEX>
35696 explicit Variant_Base(bsl::allocator_arg_t,
35697 allocator_type allocator,
35699
35700 template <size_t t_INDEX, class t_ARG_01>
35701 explicit Variant_Base(bsl::allocator_arg_t,
35702 allocator_type allocator,
35704 const t_ARG_01& arg_01);
35705
35706 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
35707 explicit Variant_Base(bsl::allocator_arg_t,
35708 allocator_type allocator,
35710 const t_ARG_01& arg_01,
35711 const t_ARG_02& arg_02);
35712
35713 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
35714 explicit Variant_Base(bsl::allocator_arg_t,
35715 allocator_type allocator,
35717 const t_ARG_01& arg_01,
35718 const t_ARG_02& arg_02,
35719 const t_ARG_03& arg_03);
35720
35721 template <size_t t_INDEX,
35722 class t_ARG_01,
35723 class t_ARG_02,
35724 class t_ARG_03,
35725 class t_ARG_04>
35726 explicit Variant_Base(bsl::allocator_arg_t,
35727 allocator_type allocator,
35729 const t_ARG_01& arg_01,
35730 const t_ARG_02& arg_02,
35731 const t_ARG_03& arg_03,
35732 const t_ARG_04& arg_04);
35733
35734 template <size_t t_INDEX,
35735 class t_ARG_01,
35736 class t_ARG_02,
35737 class t_ARG_03,
35738 class t_ARG_04,
35739 class t_ARG_05>
35740 explicit Variant_Base(bsl::allocator_arg_t,
35741 allocator_type allocator,
35743 const t_ARG_01& arg_01,
35744 const t_ARG_02& arg_02,
35745 const t_ARG_03& arg_03,
35746 const t_ARG_04& arg_04,
35747 const t_ARG_05& arg_05);
35748
35749 template <size_t t_INDEX,
35750 class t_ARG_01,
35751 class t_ARG_02,
35752 class t_ARG_03,
35753 class t_ARG_04,
35754 class t_ARG_05,
35755 class t_ARG_06>
35756 explicit Variant_Base(bsl::allocator_arg_t,
35757 allocator_type allocator,
35759 const t_ARG_01& arg_01,
35760 const t_ARG_02& arg_02,
35761 const t_ARG_03& arg_03,
35762 const t_ARG_04& arg_04,
35763 const t_ARG_05& arg_05,
35764 const t_ARG_06& arg_06);
35765
35766 template <size_t t_INDEX,
35767 class t_ARG_01,
35768 class t_ARG_02,
35769 class t_ARG_03,
35770 class t_ARG_04,
35771 class t_ARG_05,
35772 class t_ARG_06,
35773 class t_ARG_07>
35774 explicit Variant_Base(bsl::allocator_arg_t,
35775 allocator_type allocator,
35777 const t_ARG_01& arg_01,
35778 const t_ARG_02& arg_02,
35779 const t_ARG_03& arg_03,
35780 const t_ARG_04& arg_04,
35781 const t_ARG_05& arg_05,
35782 const t_ARG_06& arg_06,
35783 const t_ARG_07& arg_07);
35784
35785 template <size_t t_INDEX,
35786 class t_ARG_01,
35787 class t_ARG_02,
35788 class t_ARG_03,
35789 class t_ARG_04,
35790 class t_ARG_05,
35791 class t_ARG_06,
35792 class t_ARG_07,
35793 class t_ARG_08>
35794 explicit Variant_Base(bsl::allocator_arg_t,
35795 allocator_type allocator,
35797 const t_ARG_01& arg_01,
35798 const t_ARG_02& arg_02,
35799 const t_ARG_03& arg_03,
35800 const t_ARG_04& arg_04,
35801 const t_ARG_05& arg_05,
35802 const t_ARG_06& arg_06,
35803 const t_ARG_07& arg_07,
35804 const t_ARG_08& arg_08);
35805
35806 template <size_t t_INDEX,
35807 class t_ARG_01,
35808 class t_ARG_02,
35809 class t_ARG_03,
35810 class t_ARG_04,
35811 class t_ARG_05,
35812 class t_ARG_06,
35813 class t_ARG_07,
35814 class t_ARG_08,
35815 class t_ARG_09>
35816 explicit Variant_Base(bsl::allocator_arg_t,
35817 allocator_type allocator,
35819 const t_ARG_01& arg_01,
35820 const t_ARG_02& arg_02,
35821 const t_ARG_03& arg_03,
35822 const t_ARG_04& arg_04,
35823 const t_ARG_05& arg_05,
35824 const t_ARG_06& arg_06,
35825 const t_ARG_07& arg_07,
35826 const t_ARG_08& arg_08,
35827 const t_ARG_09& arg_09);
35828
35829 template <size_t t_INDEX,
35830 class t_ARG_01,
35831 class t_ARG_02,
35832 class t_ARG_03,
35833 class t_ARG_04,
35834 class t_ARG_05,
35835 class t_ARG_06,
35836 class t_ARG_07,
35837 class t_ARG_08,
35838 class t_ARG_09,
35839 class t_ARG_10>
35840 explicit Variant_Base(bsl::allocator_arg_t,
35841 allocator_type allocator,
35843 const t_ARG_01& arg_01,
35844 const t_ARG_02& arg_02,
35845 const t_ARG_03& arg_03,
35846 const t_ARG_04& arg_04,
35847 const t_ARG_05& arg_05,
35848 const t_ARG_06& arg_06,
35849 const t_ARG_07& arg_07,
35850 const t_ARG_08& arg_08,
35851 const t_ARG_09& arg_09,
35852 const t_ARG_10& arg_10);
35853
35854#endif
35855
35856 ~Variant_Base();
35857
35858#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
35859 template <size_t t_INDEX, class t_ARGS_01,
35860 class t_ARGS_02,
35861 class t_ARGS_03,
35862 class t_ARGS_04,
35863 class t_ARGS_05,
35864 class t_ARGS_06,
35865 class t_ARGS_07,
35866 class t_ARGS_08,
35867 class t_ARGS_09,
35868 class t_ARGS_10,
35869 class t_ARGS_11,
35870 class t_ARGS_12,
35871 class t_ARGS_13,
35872 class t_ARGS_14,
35873 class t_ARGS_15,
35874 class t_ARGS_16,
35875 class t_ARGS_17>
35876 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
35893#else
35894 template <size_t t_INDEX>
35895 void baseEmplace();
35896 template <size_t t_INDEX, class t_ARG_01>
35897 void baseEmplace(const t_ARG_01& arg_01);
35898
35899 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
35900 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
35901
35902 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
35903 void baseEmplace(const t_ARG_01& arg_01,
35904 const t_ARG_02& arg_02,
35905 const t_ARG_03& arg_03);
35906
35907 template <size_t t_INDEX,
35908 class t_ARG_01,
35909 class t_ARG_02,
35910 class t_ARG_03,
35911 class t_ARG_04>
35912 void baseEmplace(const t_ARG_01& arg_01,
35913 const t_ARG_02& arg_02,
35914 const t_ARG_03& arg_03,
35915 const t_ARG_04& arg_04);
35916
35917 template <size_t t_INDEX,
35918 class t_ARG_01,
35919 class t_ARG_02,
35920 class t_ARG_03,
35921 class t_ARG_04,
35922 class t_ARG_05>
35923 void baseEmplace(const t_ARG_01& arg_01,
35924 const t_ARG_02& arg_02,
35925 const t_ARG_03& arg_03,
35926 const t_ARG_04& arg_04,
35927 const t_ARG_05& arg_05);
35928
35929 template <size_t t_INDEX,
35930 class t_ARG_01,
35931 class t_ARG_02,
35932 class t_ARG_03,
35933 class t_ARG_04,
35934 class t_ARG_05,
35935 class t_ARG_06>
35936 void baseEmplace(const t_ARG_01& arg_01,
35937 const t_ARG_02& arg_02,
35938 const t_ARG_03& arg_03,
35939 const t_ARG_04& arg_04,
35940 const t_ARG_05& arg_05,
35941 const t_ARG_06& arg_06);
35942
35943 template <size_t t_INDEX,
35944 class t_ARG_01,
35945 class t_ARG_02,
35946 class t_ARG_03,
35947 class t_ARG_04,
35948 class t_ARG_05,
35949 class t_ARG_06,
35950 class t_ARG_07>
35951 void baseEmplace(const t_ARG_01& arg_01,
35952 const t_ARG_02& arg_02,
35953 const t_ARG_03& arg_03,
35954 const t_ARG_04& arg_04,
35955 const t_ARG_05& arg_05,
35956 const t_ARG_06& arg_06,
35957 const t_ARG_07& arg_07);
35958
35959 template <size_t t_INDEX,
35960 class t_ARG_01,
35961 class t_ARG_02,
35962 class t_ARG_03,
35963 class t_ARG_04,
35964 class t_ARG_05,
35965 class t_ARG_06,
35966 class t_ARG_07,
35967 class t_ARG_08>
35968 void baseEmplace(const t_ARG_01& arg_01,
35969 const t_ARG_02& arg_02,
35970 const t_ARG_03& arg_03,
35971 const t_ARG_04& arg_04,
35972 const t_ARG_05& arg_05,
35973 const t_ARG_06& arg_06,
35974 const t_ARG_07& arg_07,
35975 const t_ARG_08& arg_08);
35976
35977 template <size_t t_INDEX,
35978 class t_ARG_01,
35979 class t_ARG_02,
35980 class t_ARG_03,
35981 class t_ARG_04,
35982 class t_ARG_05,
35983 class t_ARG_06,
35984 class t_ARG_07,
35985 class t_ARG_08,
35986 class t_ARG_09>
35987 void baseEmplace(const t_ARG_01& arg_01,
35988 const t_ARG_02& arg_02,
35989 const t_ARG_03& arg_03,
35990 const t_ARG_04& arg_04,
35991 const t_ARG_05& arg_05,
35992 const t_ARG_06& arg_06,
35993 const t_ARG_07& arg_07,
35994 const t_ARG_08& arg_08,
35995 const t_ARG_09& arg_09);
35996
35997 template <size_t t_INDEX,
35998 class t_ARG_01,
35999 class t_ARG_02,
36000 class t_ARG_03,
36001 class t_ARG_04,
36002 class t_ARG_05,
36003 class t_ARG_06,
36004 class t_ARG_07,
36005 class t_ARG_08,
36006 class t_ARG_09,
36007 class t_ARG_10>
36008 void baseEmplace(const t_ARG_01& arg_01,
36009 const t_ARG_02& arg_02,
36010 const t_ARG_03& arg_03,
36011 const t_ARG_04& arg_04,
36012 const t_ARG_05& arg_05,
36013 const t_ARG_06& arg_06,
36014 const t_ARG_07& arg_07,
36015 const t_ARG_08& arg_08,
36016 const t_ARG_09& arg_09,
36017 const t_ARG_10& arg_10);
36018#endif
36019
36020 Variant_Base& operator=(const Variant_Base& rhs);
36021
36022 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
36023
36025};
36026#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 17
36027
36028#if BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 18
36029template <class t_HEAD, class t_TAIL_01,
36030 class t_TAIL_02,
36031 class t_TAIL_03,
36032 class t_TAIL_04,
36033 class t_TAIL_05,
36034 class t_TAIL_06,
36035 class t_TAIL_07,
36036 class t_TAIL_08,
36037 class t_TAIL_09,
36038 class t_TAIL_10,
36039 class t_TAIL_11,
36040 class t_TAIL_12,
36041 class t_TAIL_13,
36042 class t_TAIL_14,
36043 class t_TAIL_15,
36044 class t_TAIL_16,
36045 class t_TAIL_17,
36046 class t_TAIL_18>
36047struct Variant_Base<t_HEAD, t_TAIL_01,
36048 t_TAIL_02,
36049 t_TAIL_03,
36050 t_TAIL_04,
36051 t_TAIL_05,
36052 t_TAIL_06,
36053 t_TAIL_07,
36054 t_TAIL_08,
36055 t_TAIL_09,
36056 t_TAIL_10,
36057 t_TAIL_11,
36058 t_TAIL_12,
36059 t_TAIL_13,
36060 t_TAIL_14,
36061 t_TAIL_15,
36062 t_TAIL_16,
36063 t_TAIL_17,
36064 t_TAIL_18>
36065: public BloombergLP::bslstl::Variant_AllocatorBase<
36066 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
36067 t_TAIL_01,
36068 t_TAIL_02,
36069 t_TAIL_03,
36070 t_TAIL_04,
36071 t_TAIL_05,
36072 t_TAIL_06,
36073 t_TAIL_07,
36074 t_TAIL_08,
36075 t_TAIL_09,
36076 t_TAIL_10,
36077 t_TAIL_11,
36078 t_TAIL_12,
36079 t_TAIL_13,
36080 t_TAIL_14,
36081 t_TAIL_15,
36082 t_TAIL_16,
36083 t_TAIL_17,
36084 t_TAIL_18>::value> {
36085
36086 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
36087 typedef BloombergLP::bslstl::Variant_AllocatorBase<
36088 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
36089 t_TAIL_01,
36090 t_TAIL_02,
36091 t_TAIL_03,
36092 t_TAIL_04,
36093 t_TAIL_05,
36094 t_TAIL_06,
36095 t_TAIL_07,
36096 t_TAIL_08,
36097 t_TAIL_09,
36098 t_TAIL_10,
36099 t_TAIL_11,
36100 t_TAIL_12,
36101 t_TAIL_13,
36102 t_TAIL_14,
36103 t_TAIL_15,
36104 t_TAIL_16,
36105 t_TAIL_17,
36106 t_TAIL_18>::value>
36107 AllocBase;
36108 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
36109 t_TAIL_02,
36110 t_TAIL_03,
36111 t_TAIL_04,
36112 t_TAIL_05,
36113 t_TAIL_06,
36114 t_TAIL_07,
36115 t_TAIL_08,
36116 t_TAIL_09,
36117 t_TAIL_10,
36118 t_TAIL_11,
36119 t_TAIL_12,
36120 t_TAIL_13,
36121 t_TAIL_14,
36122 t_TAIL_15,
36123 t_TAIL_16,
36124 t_TAIL_17,
36125 t_TAIL_18>
36126 Variant_Union;
36127 typedef bsl::variant<t_HEAD, t_TAIL_01,
36128 t_TAIL_02,
36129 t_TAIL_03,
36130 t_TAIL_04,
36131 t_TAIL_05,
36132 t_TAIL_06,
36133 t_TAIL_07,
36134 t_TAIL_08,
36135 t_TAIL_09,
36136 t_TAIL_10,
36137 t_TAIL_11,
36138 t_TAIL_12,
36139 t_TAIL_13,
36140 t_TAIL_14,
36141 t_TAIL_15,
36142 t_TAIL_16,
36143 t_TAIL_17,
36144 t_TAIL_18> Variant;
36145
36146 struct NoAlloc {
36147 };
36148
36149 typedef typename bsl::conditional<
36150 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
36151 t_TAIL_01,
36152 t_TAIL_02,
36153 t_TAIL_03,
36154 t_TAIL_04,
36155 t_TAIL_05,
36156 t_TAIL_06,
36157 t_TAIL_07,
36158 t_TAIL_08,
36159 t_TAIL_09,
36160 t_TAIL_10,
36161 t_TAIL_11,
36162 t_TAIL_12,
36163 t_TAIL_13,
36164 t_TAIL_14,
36165 t_TAIL_15,
36166 t_TAIL_16,
36167 t_TAIL_17,
36168 t_TAIL_18>::value,
36170 NoAlloc>::type allocator_type;
36171
36172
36173 size_t d_type;
36174
36175 Variant_Union d_union;
36176
36178 Variant_Base,
36179 BloombergLP::bslma::UsesBslmaAllocator,
36180 (BloombergLP::bslstl::
36181 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
36182 t_TAIL_02,
36183 t_TAIL_03,
36184 t_TAIL_04,
36185 t_TAIL_05,
36186 t_TAIL_06,
36187 t_TAIL_07,
36188 t_TAIL_08,
36189 t_TAIL_09,
36190 t_TAIL_10,
36191 t_TAIL_11,
36192 t_TAIL_12,
36193 t_TAIL_13,
36194 t_TAIL_14,
36195 t_TAIL_15,
36196 t_TAIL_16,
36197 t_TAIL_17,
36198 t_TAIL_18>::value));
36200 Variant_Base,
36201 BloombergLP::bslmf::UsesAllocatorArgT,
36202 (BloombergLP::bslstl::
36203 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
36204 t_TAIL_02,
36205 t_TAIL_03,
36206 t_TAIL_04,
36207 t_TAIL_05,
36208 t_TAIL_06,
36209 t_TAIL_07,
36210 t_TAIL_08,
36211 t_TAIL_09,
36212 t_TAIL_10,
36213 t_TAIL_11,
36214 t_TAIL_12,
36215 t_TAIL_13,
36216 t_TAIL_14,
36217 t_TAIL_15,
36218 t_TAIL_16,
36219 t_TAIL_17,
36220 t_TAIL_18>::value));
36222 Variant_Base,
36223 BloombergLP::bslmf::IsBitwiseMoveable,
36224 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
36225 t_TAIL_01,
36226 t_TAIL_02,
36227 t_TAIL_03,
36228 t_TAIL_04,
36229 t_TAIL_05,
36230 t_TAIL_06,
36231 t_TAIL_07,
36232 t_TAIL_08,
36233 t_TAIL_09,
36234 t_TAIL_10,
36235 t_TAIL_11,
36236 t_TAIL_12,
36237 t_TAIL_13,
36238 t_TAIL_14,
36239 t_TAIL_15,
36240 t_TAIL_16,
36241 t_TAIL_17,
36242 t_TAIL_18>::value));
36243
36244#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
36245 Variant_Base();
36246
36247 Variant_Base(const Variant_Base& original);
36248
36249 Variant_Base(Variant_Base&& original);
36250
36251#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
36252 Variant_Base(Variant_ConstructFromStdTag, size_t index);
36253#endif
36254
36255 template <size_t t_INDEX, class t_ARGS_01,
36256 class t_ARGS_02,
36257 class t_ARGS_03,
36258 class t_ARGS_04,
36259 class t_ARGS_05,
36260 class t_ARGS_06,
36261 class t_ARGS_07,
36262 class t_ARGS_08,
36263 class t_ARGS_09,
36264 class t_ARGS_10,
36265 class t_ARGS_11,
36266 class t_ARGS_12,
36267 class t_ARGS_13,
36268 class t_ARGS_14,
36269 class t_ARGS_15,
36270 class t_ARGS_16,
36271 class t_ARGS_17,
36272 class t_ARGS_18>
36273 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36274 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
36275 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
36276 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
36277 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
36278 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
36279 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
36280 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
36281 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
36282 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
36283 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
36284 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
36285 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
36286 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
36287 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
36288 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
36289 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
36290 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
36291 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18);
36292
36293
36294 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
36295
36296 Variant_Base(bsl::allocator_arg_t,
36297 allocator_type allocator,
36298 const Variant& original);
36299 Variant_Base(bsl::allocator_arg_t,
36300 allocator_type allocator,
36301 Variant&& original);
36302
36303#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
36304 Variant_Base(bsl::allocator_arg_t,
36305 allocator_type allocator,
36306 Variant_ConstructFromStdTag,
36307 size_t index);
36308#endif
36309
36310 template <size_t t_INDEX, class t_ARGS_01,
36311 class t_ARGS_02,
36312 class t_ARGS_03,
36313 class t_ARGS_04,
36314 class t_ARGS_05,
36315 class t_ARGS_06,
36316 class t_ARGS_07,
36317 class t_ARGS_08,
36318 class t_ARGS_09,
36319 class t_ARGS_10,
36320 class t_ARGS_11,
36321 class t_ARGS_12,
36322 class t_ARGS_13,
36323 class t_ARGS_14,
36324 class t_ARGS_15,
36325 class t_ARGS_16,
36326 class t_ARGS_17,
36327 class t_ARGS_18>
36328 explicit Variant_Base(bsl::allocator_arg_t,
36329 allocator_type allocator,
36331 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
36332 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
36333 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
36334 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
36335 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
36336 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
36337 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
36338 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
36339 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
36340 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
36341 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
36342 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
36343 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
36344 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
36345 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
36346 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
36347 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
36348 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18);
36349
36350#else
36351
36352 Variant_Base();
36353
36354 Variant_Base(const Variant& original);
36355
36356 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
36357
36358 template <size_t t_INDEX>
36359 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
36360
36361 template <size_t t_INDEX, class t_ARG_01>
36362 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36363 const t_ARG_01& arg_01);
36364
36365 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
36366 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36367 const t_ARG_01& arg_01,
36368 const t_ARG_02& arg_02);
36369
36370 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
36371 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36372 const t_ARG_01& arg_01,
36373 const t_ARG_02& arg_02,
36374 const t_ARG_03& arg_03);
36375
36376 template <size_t t_INDEX,
36377 class t_ARG_01,
36378 class t_ARG_02,
36379 class t_ARG_03,
36380 class t_ARG_04>
36381 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36382 const t_ARG_01& arg_01,
36383 const t_ARG_02& arg_02,
36384 const t_ARG_03& arg_03,
36385 const t_ARG_04& arg_04);
36386
36387 template <size_t t_INDEX,
36388 class t_ARG_01,
36389 class t_ARG_02,
36390 class t_ARG_03,
36391 class t_ARG_04,
36392 class t_ARG_05>
36393 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36394 const t_ARG_01& arg_01,
36395 const t_ARG_02& arg_02,
36396 const t_ARG_03& arg_03,
36397 const t_ARG_04& arg_04,
36398 const t_ARG_05& arg_05);
36399
36400 template <size_t t_INDEX,
36401 class t_ARG_01,
36402 class t_ARG_02,
36403 class t_ARG_03,
36404 class t_ARG_04,
36405 class t_ARG_05,
36406 class t_ARG_06>
36407 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36408 const t_ARG_01& arg_01,
36409 const t_ARG_02& arg_02,
36410 const t_ARG_03& arg_03,
36411 const t_ARG_04& arg_04,
36412 const t_ARG_05& arg_05,
36413 const t_ARG_06& arg_06);
36414
36415 template <size_t t_INDEX,
36416 class t_ARG_01,
36417 class t_ARG_02,
36418 class t_ARG_03,
36419 class t_ARG_04,
36420 class t_ARG_05,
36421 class t_ARG_06,
36422 class t_ARG_07>
36423 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36424 const t_ARG_01& arg_01,
36425 const t_ARG_02& arg_02,
36426 const t_ARG_03& arg_03,
36427 const t_ARG_04& arg_04,
36428 const t_ARG_05& arg_05,
36429 const t_ARG_06& arg_06,
36430 const t_ARG_07& arg_07);
36431
36432 template <size_t t_INDEX,
36433 class t_ARG_01,
36434 class t_ARG_02,
36435 class t_ARG_03,
36436 class t_ARG_04,
36437 class t_ARG_05,
36438 class t_ARG_06,
36439 class t_ARG_07,
36440 class t_ARG_08>
36441 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36442 const t_ARG_01& arg_01,
36443 const t_ARG_02& arg_02,
36444 const t_ARG_03& arg_03,
36445 const t_ARG_04& arg_04,
36446 const t_ARG_05& arg_05,
36447 const t_ARG_06& arg_06,
36448 const t_ARG_07& arg_07,
36449 const t_ARG_08& arg_08);
36450
36451 template <size_t t_INDEX,
36452 class t_ARG_01,
36453 class t_ARG_02,
36454 class t_ARG_03,
36455 class t_ARG_04,
36456 class t_ARG_05,
36457 class t_ARG_06,
36458 class t_ARG_07,
36459 class t_ARG_08,
36460 class t_ARG_09>
36461 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36462 const t_ARG_01& arg_01,
36463 const t_ARG_02& arg_02,
36464 const t_ARG_03& arg_03,
36465 const t_ARG_04& arg_04,
36466 const t_ARG_05& arg_05,
36467 const t_ARG_06& arg_06,
36468 const t_ARG_07& arg_07,
36469 const t_ARG_08& arg_08,
36470 const t_ARG_09& arg_09);
36471
36472 template <size_t t_INDEX,
36473 class t_ARG_01,
36474 class t_ARG_02,
36475 class t_ARG_03,
36476 class t_ARG_04,
36477 class t_ARG_05,
36478 class t_ARG_06,
36479 class t_ARG_07,
36480 class t_ARG_08,
36481 class t_ARG_09,
36482 class t_ARG_10>
36483 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36484 const t_ARG_01& arg_01,
36485 const t_ARG_02& arg_02,
36486 const t_ARG_03& arg_03,
36487 const t_ARG_04& arg_04,
36488 const t_ARG_05& arg_05,
36489 const t_ARG_06& arg_06,
36490 const t_ARG_07& arg_07,
36491 const t_ARG_08& arg_08,
36492 const t_ARG_09& arg_09,
36493 const t_ARG_10& arg_10);
36494
36495 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
36496
36497 Variant_Base(bsl::allocator_arg_t,
36498 allocator_type allocator,
36499 const Variant& original);
36500 Variant_Base(bsl::allocator_arg_t,
36501 allocator_type allocator,
36502 BloombergLP::bslmf::MovableRef<Variant> original);
36503
36504 template <size_t t_INDEX>
36505 explicit Variant_Base(bsl::allocator_arg_t,
36506 allocator_type allocator,
36508
36509 template <size_t t_INDEX, class t_ARG_01>
36510 explicit Variant_Base(bsl::allocator_arg_t,
36511 allocator_type allocator,
36513 const t_ARG_01& arg_01);
36514
36515 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
36516 explicit Variant_Base(bsl::allocator_arg_t,
36517 allocator_type allocator,
36519 const t_ARG_01& arg_01,
36520 const t_ARG_02& arg_02);
36521
36522 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
36523 explicit Variant_Base(bsl::allocator_arg_t,
36524 allocator_type allocator,
36526 const t_ARG_01& arg_01,
36527 const t_ARG_02& arg_02,
36528 const t_ARG_03& arg_03);
36529
36530 template <size_t t_INDEX,
36531 class t_ARG_01,
36532 class t_ARG_02,
36533 class t_ARG_03,
36534 class t_ARG_04>
36535 explicit Variant_Base(bsl::allocator_arg_t,
36536 allocator_type allocator,
36538 const t_ARG_01& arg_01,
36539 const t_ARG_02& arg_02,
36540 const t_ARG_03& arg_03,
36541 const t_ARG_04& arg_04);
36542
36543 template <size_t t_INDEX,
36544 class t_ARG_01,
36545 class t_ARG_02,
36546 class t_ARG_03,
36547 class t_ARG_04,
36548 class t_ARG_05>
36549 explicit Variant_Base(bsl::allocator_arg_t,
36550 allocator_type allocator,
36552 const t_ARG_01& arg_01,
36553 const t_ARG_02& arg_02,
36554 const t_ARG_03& arg_03,
36555 const t_ARG_04& arg_04,
36556 const t_ARG_05& arg_05);
36557
36558 template <size_t t_INDEX,
36559 class t_ARG_01,
36560 class t_ARG_02,
36561 class t_ARG_03,
36562 class t_ARG_04,
36563 class t_ARG_05,
36564 class t_ARG_06>
36565 explicit Variant_Base(bsl::allocator_arg_t,
36566 allocator_type allocator,
36568 const t_ARG_01& arg_01,
36569 const t_ARG_02& arg_02,
36570 const t_ARG_03& arg_03,
36571 const t_ARG_04& arg_04,
36572 const t_ARG_05& arg_05,
36573 const t_ARG_06& arg_06);
36574
36575 template <size_t t_INDEX,
36576 class t_ARG_01,
36577 class t_ARG_02,
36578 class t_ARG_03,
36579 class t_ARG_04,
36580 class t_ARG_05,
36581 class t_ARG_06,
36582 class t_ARG_07>
36583 explicit Variant_Base(bsl::allocator_arg_t,
36584 allocator_type allocator,
36586 const t_ARG_01& arg_01,
36587 const t_ARG_02& arg_02,
36588 const t_ARG_03& arg_03,
36589 const t_ARG_04& arg_04,
36590 const t_ARG_05& arg_05,
36591 const t_ARG_06& arg_06,
36592 const t_ARG_07& arg_07);
36593
36594 template <size_t t_INDEX,
36595 class t_ARG_01,
36596 class t_ARG_02,
36597 class t_ARG_03,
36598 class t_ARG_04,
36599 class t_ARG_05,
36600 class t_ARG_06,
36601 class t_ARG_07,
36602 class t_ARG_08>
36603 explicit Variant_Base(bsl::allocator_arg_t,
36604 allocator_type allocator,
36606 const t_ARG_01& arg_01,
36607 const t_ARG_02& arg_02,
36608 const t_ARG_03& arg_03,
36609 const t_ARG_04& arg_04,
36610 const t_ARG_05& arg_05,
36611 const t_ARG_06& arg_06,
36612 const t_ARG_07& arg_07,
36613 const t_ARG_08& arg_08);
36614
36615 template <size_t t_INDEX,
36616 class t_ARG_01,
36617 class t_ARG_02,
36618 class t_ARG_03,
36619 class t_ARG_04,
36620 class t_ARG_05,
36621 class t_ARG_06,
36622 class t_ARG_07,
36623 class t_ARG_08,
36624 class t_ARG_09>
36625 explicit Variant_Base(bsl::allocator_arg_t,
36626 allocator_type allocator,
36628 const t_ARG_01& arg_01,
36629 const t_ARG_02& arg_02,
36630 const t_ARG_03& arg_03,
36631 const t_ARG_04& arg_04,
36632 const t_ARG_05& arg_05,
36633 const t_ARG_06& arg_06,
36634 const t_ARG_07& arg_07,
36635 const t_ARG_08& arg_08,
36636 const t_ARG_09& arg_09);
36637
36638 template <size_t t_INDEX,
36639 class t_ARG_01,
36640 class t_ARG_02,
36641 class t_ARG_03,
36642 class t_ARG_04,
36643 class t_ARG_05,
36644 class t_ARG_06,
36645 class t_ARG_07,
36646 class t_ARG_08,
36647 class t_ARG_09,
36648 class t_ARG_10>
36649 explicit Variant_Base(bsl::allocator_arg_t,
36650 allocator_type allocator,
36652 const t_ARG_01& arg_01,
36653 const t_ARG_02& arg_02,
36654 const t_ARG_03& arg_03,
36655 const t_ARG_04& arg_04,
36656 const t_ARG_05& arg_05,
36657 const t_ARG_06& arg_06,
36658 const t_ARG_07& arg_07,
36659 const t_ARG_08& arg_08,
36660 const t_ARG_09& arg_09,
36661 const t_ARG_10& arg_10);
36662
36663#endif
36664
36665 ~Variant_Base();
36666
36667#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
36668 template <size_t t_INDEX, class t_ARGS_01,
36669 class t_ARGS_02,
36670 class t_ARGS_03,
36671 class t_ARGS_04,
36672 class t_ARGS_05,
36673 class t_ARGS_06,
36674 class t_ARGS_07,
36675 class t_ARGS_08,
36676 class t_ARGS_09,
36677 class t_ARGS_10,
36678 class t_ARGS_11,
36679 class t_ARGS_12,
36680 class t_ARGS_13,
36681 class t_ARGS_14,
36682 class t_ARGS_15,
36683 class t_ARGS_16,
36684 class t_ARGS_17,
36685 class t_ARGS_18>
36686 void baseEmplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01),
36704#else
36705 template <size_t t_INDEX>
36706 void baseEmplace();
36707 template <size_t t_INDEX, class t_ARG_01>
36708 void baseEmplace(const t_ARG_01& arg_01);
36709
36710 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
36711 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
36712
36713 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
36714 void baseEmplace(const t_ARG_01& arg_01,
36715 const t_ARG_02& arg_02,
36716 const t_ARG_03& arg_03);
36717
36718 template <size_t t_INDEX,
36719 class t_ARG_01,
36720 class t_ARG_02,
36721 class t_ARG_03,
36722 class t_ARG_04>
36723 void baseEmplace(const t_ARG_01& arg_01,
36724 const t_ARG_02& arg_02,
36725 const t_ARG_03& arg_03,
36726 const t_ARG_04& arg_04);
36727
36728 template <size_t t_INDEX,
36729 class t_ARG_01,
36730 class t_ARG_02,
36731 class t_ARG_03,
36732 class t_ARG_04,
36733 class t_ARG_05>
36734 void baseEmplace(const t_ARG_01& arg_01,
36735 const t_ARG_02& arg_02,
36736 const t_ARG_03& arg_03,
36737 const t_ARG_04& arg_04,
36738 const t_ARG_05& arg_05);
36739
36740 template <size_t t_INDEX,
36741 class t_ARG_01,
36742 class t_ARG_02,
36743 class t_ARG_03,
36744 class t_ARG_04,
36745 class t_ARG_05,
36746 class t_ARG_06>
36747 void baseEmplace(const t_ARG_01& arg_01,
36748 const t_ARG_02& arg_02,
36749 const t_ARG_03& arg_03,
36750 const t_ARG_04& arg_04,
36751 const t_ARG_05& arg_05,
36752 const t_ARG_06& arg_06);
36753
36754 template <size_t t_INDEX,
36755 class t_ARG_01,
36756 class t_ARG_02,
36757 class t_ARG_03,
36758 class t_ARG_04,
36759 class t_ARG_05,
36760 class t_ARG_06,
36761 class t_ARG_07>
36762 void baseEmplace(const t_ARG_01& arg_01,
36763 const t_ARG_02& arg_02,
36764 const t_ARG_03& arg_03,
36765 const t_ARG_04& arg_04,
36766 const t_ARG_05& arg_05,
36767 const t_ARG_06& arg_06,
36768 const t_ARG_07& arg_07);
36769
36770 template <size_t t_INDEX,
36771 class t_ARG_01,
36772 class t_ARG_02,
36773 class t_ARG_03,
36774 class t_ARG_04,
36775 class t_ARG_05,
36776 class t_ARG_06,
36777 class t_ARG_07,
36778 class t_ARG_08>
36779 void baseEmplace(const t_ARG_01& arg_01,
36780 const t_ARG_02& arg_02,
36781 const t_ARG_03& arg_03,
36782 const t_ARG_04& arg_04,
36783 const t_ARG_05& arg_05,
36784 const t_ARG_06& arg_06,
36785 const t_ARG_07& arg_07,
36786 const t_ARG_08& arg_08);
36787
36788 template <size_t t_INDEX,
36789 class t_ARG_01,
36790 class t_ARG_02,
36791 class t_ARG_03,
36792 class t_ARG_04,
36793 class t_ARG_05,
36794 class t_ARG_06,
36795 class t_ARG_07,
36796 class t_ARG_08,
36797 class t_ARG_09>
36798 void baseEmplace(const t_ARG_01& arg_01,
36799 const t_ARG_02& arg_02,
36800 const t_ARG_03& arg_03,
36801 const t_ARG_04& arg_04,
36802 const t_ARG_05& arg_05,
36803 const t_ARG_06& arg_06,
36804 const t_ARG_07& arg_07,
36805 const t_ARG_08& arg_08,
36806 const t_ARG_09& arg_09);
36807
36808 template <size_t t_INDEX,
36809 class t_ARG_01,
36810 class t_ARG_02,
36811 class t_ARG_03,
36812 class t_ARG_04,
36813 class t_ARG_05,
36814 class t_ARG_06,
36815 class t_ARG_07,
36816 class t_ARG_08,
36817 class t_ARG_09,
36818 class t_ARG_10>
36819 void baseEmplace(const t_ARG_01& arg_01,
36820 const t_ARG_02& arg_02,
36821 const t_ARG_03& arg_03,
36822 const t_ARG_04& arg_04,
36823 const t_ARG_05& arg_05,
36824 const t_ARG_06& arg_06,
36825 const t_ARG_07& arg_07,
36826 const t_ARG_08& arg_08,
36827 const t_ARG_09& arg_09,
36828 const t_ARG_10& arg_10);
36829#endif
36830
36831 Variant_Base& operator=(const Variant_Base& rhs);
36832
36833 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
36834
36836};
36837#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_J >= 18
36838
36839#else
36840// The generated code below is a workaround for the absence of perfect
36841// forwarding in some compilers.
36842template <class t_HEAD, class... t_TAIL>
36843struct Variant_Base
36844: public BloombergLP::bslstl::Variant_AllocatorBase<
36845 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
36846 t_TAIL...>::value> {
36847
36848 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
36849 typedef BloombergLP::bslstl::Variant_AllocatorBase<
36850 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
36851 t_TAIL...>::value>
36852 AllocBase;
36853 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL...>
36854 Variant_Union;
36855 typedef bsl::variant<t_HEAD, t_TAIL...> Variant;
36856
36857 struct NoAlloc {
36858 };
36859
36860 typedef typename bsl::conditional<
36861 BloombergLP::bslstl::Variant_UsesBslmaAllocatorAny<t_HEAD,
36862 t_TAIL...>::value,
36864 NoAlloc>::type allocator_type;
36865
36866
36867 size_t d_type;
36868
36869 Variant_Union d_union;
36870
36872 Variant_Base,
36873 BloombergLP::bslma::UsesBslmaAllocator,
36874 (BloombergLP::bslstl::
36875 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value));
36877 Variant_Base,
36878 BloombergLP::bslmf::UsesAllocatorArgT,
36879 (BloombergLP::bslstl::
36880 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value));
36882 Variant_Base,
36883 BloombergLP::bslmf::IsBitwiseMoveable,
36884 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
36885 t_TAIL...>::value));
36886
36887#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
36888 Variant_Base();
36889
36890 Variant_Base(const Variant_Base& original);
36891
36892 Variant_Base(Variant_Base&& original);
36893
36894#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
36895 Variant_Base(Variant_ConstructFromStdTag, size_t index);
36896#endif
36897
36898 template <size_t t_INDEX, class... t_ARGS>
36899 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>, t_ARGS&&... args);
36900
36901
36902 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
36903
36904 Variant_Base(bsl::allocator_arg_t,
36905 allocator_type allocator,
36906 const Variant& original);
36907 Variant_Base(bsl::allocator_arg_t,
36908 allocator_type allocator,
36909 Variant&& original);
36910
36911#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
36912 Variant_Base(bsl::allocator_arg_t,
36913 allocator_type allocator,
36914 Variant_ConstructFromStdTag,
36915 size_t index);
36916#endif
36917
36918 template <size_t t_INDEX, class... t_ARGS>
36919 explicit Variant_Base(bsl::allocator_arg_t,
36920 allocator_type allocator,
36922 t_ARGS&&... args);
36923
36924#else
36925
36926 Variant_Base();
36927
36928 Variant_Base(const Variant& original);
36929
36930 Variant_Base(BloombergLP::bslmf::MovableRef<Variant> original);
36931
36932 template <size_t t_INDEX>
36933 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>);
36934
36935 template <size_t t_INDEX, class t_ARG_01>
36936 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36937 const t_ARG_01& arg_01);
36938
36939 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
36940 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36941 const t_ARG_01& arg_01,
36942 const t_ARG_02& arg_02);
36943
36944 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
36945 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36946 const t_ARG_01& arg_01,
36947 const t_ARG_02& arg_02,
36948 const t_ARG_03& arg_03);
36949
36950 template <size_t t_INDEX,
36951 class t_ARG_01,
36952 class t_ARG_02,
36953 class t_ARG_03,
36954 class t_ARG_04>
36955 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36956 const t_ARG_01& arg_01,
36957 const t_ARG_02& arg_02,
36958 const t_ARG_03& arg_03,
36959 const t_ARG_04& arg_04);
36960
36961 template <size_t t_INDEX,
36962 class t_ARG_01,
36963 class t_ARG_02,
36964 class t_ARG_03,
36965 class t_ARG_04,
36966 class t_ARG_05>
36967 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36968 const t_ARG_01& arg_01,
36969 const t_ARG_02& arg_02,
36970 const t_ARG_03& arg_03,
36971 const t_ARG_04& arg_04,
36972 const t_ARG_05& arg_05);
36973
36974 template <size_t t_INDEX,
36975 class t_ARG_01,
36976 class t_ARG_02,
36977 class t_ARG_03,
36978 class t_ARG_04,
36979 class t_ARG_05,
36980 class t_ARG_06>
36981 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36982 const t_ARG_01& arg_01,
36983 const t_ARG_02& arg_02,
36984 const t_ARG_03& arg_03,
36985 const t_ARG_04& arg_04,
36986 const t_ARG_05& arg_05,
36987 const t_ARG_06& arg_06);
36988
36989 template <size_t t_INDEX,
36990 class t_ARG_01,
36991 class t_ARG_02,
36992 class t_ARG_03,
36993 class t_ARG_04,
36994 class t_ARG_05,
36995 class t_ARG_06,
36996 class t_ARG_07>
36997 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
36998 const t_ARG_01& arg_01,
36999 const t_ARG_02& arg_02,
37000 const t_ARG_03& arg_03,
37001 const t_ARG_04& arg_04,
37002 const t_ARG_05& arg_05,
37003 const t_ARG_06& arg_06,
37004 const t_ARG_07& arg_07);
37005
37006 template <size_t t_INDEX,
37007 class t_ARG_01,
37008 class t_ARG_02,
37009 class t_ARG_03,
37010 class t_ARG_04,
37011 class t_ARG_05,
37012 class t_ARG_06,
37013 class t_ARG_07,
37014 class t_ARG_08>
37015 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
37016 const t_ARG_01& arg_01,
37017 const t_ARG_02& arg_02,
37018 const t_ARG_03& arg_03,
37019 const t_ARG_04& arg_04,
37020 const t_ARG_05& arg_05,
37021 const t_ARG_06& arg_06,
37022 const t_ARG_07& arg_07,
37023 const t_ARG_08& arg_08);
37024
37025 template <size_t t_INDEX,
37026 class t_ARG_01,
37027 class t_ARG_02,
37028 class t_ARG_03,
37029 class t_ARG_04,
37030 class t_ARG_05,
37031 class t_ARG_06,
37032 class t_ARG_07,
37033 class t_ARG_08,
37034 class t_ARG_09>
37035 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
37036 const t_ARG_01& arg_01,
37037 const t_ARG_02& arg_02,
37038 const t_ARG_03& arg_03,
37039 const t_ARG_04& arg_04,
37040 const t_ARG_05& arg_05,
37041 const t_ARG_06& arg_06,
37042 const t_ARG_07& arg_07,
37043 const t_ARG_08& arg_08,
37044 const t_ARG_09& arg_09);
37045
37046 template <size_t t_INDEX,
37047 class t_ARG_01,
37048 class t_ARG_02,
37049 class t_ARG_03,
37050 class t_ARG_04,
37051 class t_ARG_05,
37052 class t_ARG_06,
37053 class t_ARG_07,
37054 class t_ARG_08,
37055 class t_ARG_09,
37056 class t_ARG_10>
37057 explicit Variant_Base(bsl::in_place_index_t<t_INDEX>,
37058 const t_ARG_01& arg_01,
37059 const t_ARG_02& arg_02,
37060 const t_ARG_03& arg_03,
37061 const t_ARG_04& arg_04,
37062 const t_ARG_05& arg_05,
37063 const t_ARG_06& arg_06,
37064 const t_ARG_07& arg_07,
37065 const t_ARG_08& arg_08,
37066 const t_ARG_09& arg_09,
37067 const t_ARG_10& arg_10);
37068
37069 Variant_Base(bsl::allocator_arg_t, allocator_type allocator);
37070
37071 Variant_Base(bsl::allocator_arg_t,
37072 allocator_type allocator,
37073 const Variant& original);
37074 Variant_Base(bsl::allocator_arg_t,
37075 allocator_type allocator,
37076 BloombergLP::bslmf::MovableRef<Variant> original);
37077
37078 template <size_t t_INDEX>
37079 explicit Variant_Base(bsl::allocator_arg_t,
37080 allocator_type allocator,
37082
37083 template <size_t t_INDEX, class t_ARG_01>
37084 explicit Variant_Base(bsl::allocator_arg_t,
37085 allocator_type allocator,
37087 const t_ARG_01& arg_01);
37088
37089 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
37090 explicit Variant_Base(bsl::allocator_arg_t,
37091 allocator_type allocator,
37093 const t_ARG_01& arg_01,
37094 const t_ARG_02& arg_02);
37095
37096 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
37097 explicit Variant_Base(bsl::allocator_arg_t,
37098 allocator_type allocator,
37100 const t_ARG_01& arg_01,
37101 const t_ARG_02& arg_02,
37102 const t_ARG_03& arg_03);
37103
37104 template <size_t t_INDEX,
37105 class t_ARG_01,
37106 class t_ARG_02,
37107 class t_ARG_03,
37108 class t_ARG_04>
37109 explicit Variant_Base(bsl::allocator_arg_t,
37110 allocator_type allocator,
37112 const t_ARG_01& arg_01,
37113 const t_ARG_02& arg_02,
37114 const t_ARG_03& arg_03,
37115 const t_ARG_04& arg_04);
37116
37117 template <size_t t_INDEX,
37118 class t_ARG_01,
37119 class t_ARG_02,
37120 class t_ARG_03,
37121 class t_ARG_04,
37122 class t_ARG_05>
37123 explicit Variant_Base(bsl::allocator_arg_t,
37124 allocator_type allocator,
37126 const t_ARG_01& arg_01,
37127 const t_ARG_02& arg_02,
37128 const t_ARG_03& arg_03,
37129 const t_ARG_04& arg_04,
37130 const t_ARG_05& arg_05);
37131
37132 template <size_t t_INDEX,
37133 class t_ARG_01,
37134 class t_ARG_02,
37135 class t_ARG_03,
37136 class t_ARG_04,
37137 class t_ARG_05,
37138 class t_ARG_06>
37139 explicit Variant_Base(bsl::allocator_arg_t,
37140 allocator_type allocator,
37142 const t_ARG_01& arg_01,
37143 const t_ARG_02& arg_02,
37144 const t_ARG_03& arg_03,
37145 const t_ARG_04& arg_04,
37146 const t_ARG_05& arg_05,
37147 const t_ARG_06& arg_06);
37148
37149 template <size_t t_INDEX,
37150 class t_ARG_01,
37151 class t_ARG_02,
37152 class t_ARG_03,
37153 class t_ARG_04,
37154 class t_ARG_05,
37155 class t_ARG_06,
37156 class t_ARG_07>
37157 explicit Variant_Base(bsl::allocator_arg_t,
37158 allocator_type allocator,
37160 const t_ARG_01& arg_01,
37161 const t_ARG_02& arg_02,
37162 const t_ARG_03& arg_03,
37163 const t_ARG_04& arg_04,
37164 const t_ARG_05& arg_05,
37165 const t_ARG_06& arg_06,
37166 const t_ARG_07& arg_07);
37167
37168 template <size_t t_INDEX,
37169 class t_ARG_01,
37170 class t_ARG_02,
37171 class t_ARG_03,
37172 class t_ARG_04,
37173 class t_ARG_05,
37174 class t_ARG_06,
37175 class t_ARG_07,
37176 class t_ARG_08>
37177 explicit Variant_Base(bsl::allocator_arg_t,
37178 allocator_type allocator,
37180 const t_ARG_01& arg_01,
37181 const t_ARG_02& arg_02,
37182 const t_ARG_03& arg_03,
37183 const t_ARG_04& arg_04,
37184 const t_ARG_05& arg_05,
37185 const t_ARG_06& arg_06,
37186 const t_ARG_07& arg_07,
37187 const t_ARG_08& arg_08);
37188
37189 template <size_t t_INDEX,
37190 class t_ARG_01,
37191 class t_ARG_02,
37192 class t_ARG_03,
37193 class t_ARG_04,
37194 class t_ARG_05,
37195 class t_ARG_06,
37196 class t_ARG_07,
37197 class t_ARG_08,
37198 class t_ARG_09>
37199 explicit Variant_Base(bsl::allocator_arg_t,
37200 allocator_type allocator,
37202 const t_ARG_01& arg_01,
37203 const t_ARG_02& arg_02,
37204 const t_ARG_03& arg_03,
37205 const t_ARG_04& arg_04,
37206 const t_ARG_05& arg_05,
37207 const t_ARG_06& arg_06,
37208 const t_ARG_07& arg_07,
37209 const t_ARG_08& arg_08,
37210 const t_ARG_09& arg_09);
37211
37212 template <size_t t_INDEX,
37213 class t_ARG_01,
37214 class t_ARG_02,
37215 class t_ARG_03,
37216 class t_ARG_04,
37217 class t_ARG_05,
37218 class t_ARG_06,
37219 class t_ARG_07,
37220 class t_ARG_08,
37221 class t_ARG_09,
37222 class t_ARG_10>
37223 explicit Variant_Base(bsl::allocator_arg_t,
37224 allocator_type allocator,
37226 const t_ARG_01& arg_01,
37227 const t_ARG_02& arg_02,
37228 const t_ARG_03& arg_03,
37229 const t_ARG_04& arg_04,
37230 const t_ARG_05& arg_05,
37231 const t_ARG_06& arg_06,
37232 const t_ARG_07& arg_07,
37233 const t_ARG_08& arg_08,
37234 const t_ARG_09& arg_09,
37235 const t_ARG_10& arg_10);
37236
37237#endif
37238
37239 ~Variant_Base();
37240
37241#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
37242 template <size_t t_INDEX, class... t_ARGS>
37243 void baseEmplace(t_ARGS&&...);
37244#else
37245 template <size_t t_INDEX>
37246 void baseEmplace();
37247 template <size_t t_INDEX, class t_ARG_01>
37248 void baseEmplace(const t_ARG_01& arg_01);
37249
37250 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
37251 void baseEmplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
37252
37253 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
37254 void baseEmplace(const t_ARG_01& arg_01,
37255 const t_ARG_02& arg_02,
37256 const t_ARG_03& arg_03);
37257
37258 template <size_t t_INDEX,
37259 class t_ARG_01,
37260 class t_ARG_02,
37261 class t_ARG_03,
37262 class t_ARG_04>
37263 void baseEmplace(const t_ARG_01& arg_01,
37264 const t_ARG_02& arg_02,
37265 const t_ARG_03& arg_03,
37266 const t_ARG_04& arg_04);
37267
37268 template <size_t t_INDEX,
37269 class t_ARG_01,
37270 class t_ARG_02,
37271 class t_ARG_03,
37272 class t_ARG_04,
37273 class t_ARG_05>
37274 void baseEmplace(const t_ARG_01& arg_01,
37275 const t_ARG_02& arg_02,
37276 const t_ARG_03& arg_03,
37277 const t_ARG_04& arg_04,
37278 const t_ARG_05& arg_05);
37279
37280 template <size_t t_INDEX,
37281 class t_ARG_01,
37282 class t_ARG_02,
37283 class t_ARG_03,
37284 class t_ARG_04,
37285 class t_ARG_05,
37286 class t_ARG_06>
37287 void baseEmplace(const t_ARG_01& arg_01,
37288 const t_ARG_02& arg_02,
37289 const t_ARG_03& arg_03,
37290 const t_ARG_04& arg_04,
37291 const t_ARG_05& arg_05,
37292 const t_ARG_06& arg_06);
37293
37294 template <size_t t_INDEX,
37295 class t_ARG_01,
37296 class t_ARG_02,
37297 class t_ARG_03,
37298 class t_ARG_04,
37299 class t_ARG_05,
37300 class t_ARG_06,
37301 class t_ARG_07>
37302 void baseEmplace(const t_ARG_01& arg_01,
37303 const t_ARG_02& arg_02,
37304 const t_ARG_03& arg_03,
37305 const t_ARG_04& arg_04,
37306 const t_ARG_05& arg_05,
37307 const t_ARG_06& arg_06,
37308 const t_ARG_07& arg_07);
37309
37310 template <size_t t_INDEX,
37311 class t_ARG_01,
37312 class t_ARG_02,
37313 class t_ARG_03,
37314 class t_ARG_04,
37315 class t_ARG_05,
37316 class t_ARG_06,
37317 class t_ARG_07,
37318 class t_ARG_08>
37319 void baseEmplace(const t_ARG_01& arg_01,
37320 const t_ARG_02& arg_02,
37321 const t_ARG_03& arg_03,
37322 const t_ARG_04& arg_04,
37323 const t_ARG_05& arg_05,
37324 const t_ARG_06& arg_06,
37325 const t_ARG_07& arg_07,
37326 const t_ARG_08& arg_08);
37327
37328 template <size_t t_INDEX,
37329 class t_ARG_01,
37330 class t_ARG_02,
37331 class t_ARG_03,
37332 class t_ARG_04,
37333 class t_ARG_05,
37334 class t_ARG_06,
37335 class t_ARG_07,
37336 class t_ARG_08,
37337 class t_ARG_09>
37338 void baseEmplace(const t_ARG_01& arg_01,
37339 const t_ARG_02& arg_02,
37340 const t_ARG_03& arg_03,
37341 const t_ARG_04& arg_04,
37342 const t_ARG_05& arg_05,
37343 const t_ARG_06& arg_06,
37344 const t_ARG_07& arg_07,
37345 const t_ARG_08& arg_08,
37346 const t_ARG_09& arg_09);
37347
37348 template <size_t t_INDEX,
37349 class t_ARG_01,
37350 class t_ARG_02,
37351 class t_ARG_03,
37352 class t_ARG_04,
37353 class t_ARG_05,
37354 class t_ARG_06,
37355 class t_ARG_07,
37356 class t_ARG_08,
37357 class t_ARG_09,
37358 class t_ARG_10>
37359 void baseEmplace(const t_ARG_01& arg_01,
37360 const t_ARG_02& arg_02,
37361 const t_ARG_03& arg_03,
37362 const t_ARG_04& arg_04,
37363 const t_ARG_05& arg_05,
37364 const t_ARG_06& arg_06,
37365 const t_ARG_07& arg_07,
37366 const t_ARG_08& arg_08,
37367 const t_ARG_09& arg_09,
37368 const t_ARG_10& arg_10);
37369#endif
37370
37371 Variant_Base& operator=(const Variant_Base& rhs);
37372
37373 Variant_Base& operator=(BloombergLP::bslmf::MovableRef<Variant_Base> rhs);
37374
37376};
37377// }}} END GENERATED CODE
37378#endif
37379
37380} // close package namespace
37381
37382
37383namespace bsl {
37384 // =============
37385 // class variant
37386 // =============
37387
37388#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
37389// {{{ BEGIN GENERATED CODE
37390// Command line: sim_cpp11_features.pl bslstl_variant.h
37391#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
37392#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
37393#endif
37394#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_K
37395#define BSLSTL_VARIANT_VARIADIC_LIMIT_K BSLSTL_VARIANT_VARIADIC_LIMIT
37396#endif
37397#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 0
37398template <class t_HEAD>
37399class variant<t_HEAD>
37400: private BloombergLP::bslstl::Variant_Base<t_HEAD>
37401#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
37402,
37403 private BloombergLP::bslstl::Variant_SMFBase<
37404 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD>::value,
37405 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD>::value,
37406 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD>::value &&
37407 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD>::value,
37408 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD>::value &&
37409 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD>::value>
37410#endif
37411{
37412 private:
37413 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
37414 typedef BloombergLP::bslstl::Variant_Base<t_HEAD> Variant_Base;
37415 typedef BloombergLP::bslstl::Variant_Union<t_HEAD>
37416 Variant_Union;
37417
37418 friend struct BloombergLP::bslstl::Variant_ImpUtil;
37419
37420 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD>;
37421
37422 public:
37424 variant,
37425 BloombergLP::bslma::UsesBslmaAllocator,
37426 (BloombergLP::bslstl::
37427 Variant_UsesBslmaAllocatorAny<t_HEAD>::value));
37429 variant,
37430 BloombergLP::bslmf::UsesAllocatorArgT,
37431 (BloombergLP::bslstl::
37432 Variant_UsesBslmaAllocatorAny<t_HEAD>::value));
37434 variant,
37435 BloombergLP::bslmf::IsBitwiseMoveable,
37436 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD>::value));
37437
37438
37439 typedef typename Variant_Base::allocator_type allocator_type;
37440
37441
37442#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
37443 template <class t_FIRST_ALT = t_HEAD,
37444 class = typename bsl::enable_if_t<
37445 std::is_default_constructible<t_FIRST_ALT>::value> >
37446 variant()
37447 : Variant_Base()
37448 {
37449 }
37450
37451 variant(const variant& original) = default;
37452
37453 variant(variant&& original) = default;
37454
37455#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
37456 template <class t_STD_VARIANT>
37457 explicit variant(
37458 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
37460 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
37461 original.index())
37462 {
37463 if (!valueless_by_exception()) {
37464 BloombergLP::bslstl::Variant_ImpUtil::
37465 ConstructFromStdVisitor<variant, decltype(original)>
37466 visitor(*this, original);
37467 BSLSTL_VARIANT_VISITID(void, visitor, *this);
37468 }
37469 }
37470#endif
37471
37472 template <class t_TYPE>
37473 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
37475
37476 template <class t_TYPE,
37477 class = typename bsl::enable_if_t<
37479 std::is_constructible<t_TYPE>::value> >
37480 explicit variant(bsl::in_place_type_t<t_TYPE>)
37481 : Variant_Base(
37482 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
37483 {
37484 }
37485
37486 template <class t_TYPE,
37487 class INIT_LIST_TYPE,
37488 class = typename bsl::enable_if_t<
37490 std::is_constructible<t_TYPE,
37491 std::initializer_list<INIT_LIST_TYPE>&
37492 >::value> >
37493 explicit variant(bsl::in_place_type_t<t_TYPE>,
37494 std::initializer_list<INIT_LIST_TYPE> il)
37495 : Variant_Base(
37496 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
37497 il)
37498 {
37499 }
37500
37501 template <size_t t_INDEX,
37502 class = typename bsl::enable_if_t<
37503 (t_INDEX < 1 + 0u) &&
37504 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX)
37505 >::value> >
37506 explicit variant(bsl::in_place_index_t<t_INDEX>)
37507 : Variant_Base(bsl::in_place_index_t<t_INDEX>())
37508 {
37509 }
37510
37511 template <size_t t_INDEX,
37512 class INIT_LIST_TYPE,
37513 class = typename bsl::enable_if_t<
37514 (t_INDEX < 1 + 0u) &&
37515 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
37516 std::initializer_list<INIT_LIST_TYPE>&
37517 >::value> >
37518 explicit variant(bsl::in_place_index_t<t_INDEX>,
37519 std::initializer_list<INIT_LIST_TYPE> il)
37520 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
37521 il)
37522 {
37523 }
37524
37525 template <class FIRST = t_HEAD,
37526 class = typename bsl::enable_if_t<
37527 std::is_default_constructible<FIRST>::value> >
37528 variant(bsl::allocator_arg_t, allocator_type allocator)
37529 : Variant_Base(bsl::allocator_arg_t(), allocator)
37530 {
37531 }
37532
37533 template <
37534 class FIRST = t_HEAD,
37535 class = typename bsl::enable_if_t<
37536 BloombergLP::bslstl::
37537 Variant_IsCopyConstructibleAll<FIRST>::value> >
37538 variant(bsl::allocator_arg_t,
37539 allocator_type allocator,
37540 const variant& original)
37541 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
37542 {
37543 }
37544 template <
37545 class FIRST = t_HEAD,
37546 class = typename bsl::enable_if_t<
37547 BloombergLP::bslstl::
37548 Variant_IsMoveConstructibleAll<FIRST>::value> >
37549 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
37550 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
37551 {
37552 }
37553
37554#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
37555 template <class t_STD_VARIANT>
37556 explicit variant(
37557 bsl::allocator_arg_t,
37558 allocator_type allocator,
37559 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
37561 : Variant_Base(bsl::allocator_arg_t(),
37562 allocator,
37563 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
37564 original.index())
37565 {
37566 if (!valueless_by_exception()) {
37567 BloombergLP::bslstl::Variant_ImpUtil::
37568 ConstructFromStdVisitor<variant, decltype(original)>
37569 visitor(*this, original);
37570 BSLSTL_VARIANT_VISITID(void, visitor, *this);
37571 }
37572 }
37573#endif
37574
37575 template <class t_TYPE>
37576 variant(
37577 bsl::allocator_arg_t,
37578 allocator_type allocator,
37581
37582 template <class t_TYPE,
37583 class = typename bsl::enable_if_t<
37585 std::is_constructible<t_TYPE>::value> >
37586 explicit variant(bsl::allocator_arg_t,
37587 allocator_type allocator,
37589 : Variant_Base(
37590 bsl::allocator_arg_t{}
37591,
37592 allocator,
37593 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
37594 {
37595 }
37596
37597 template <class t_TYPE,
37598 class INIT_LIST_TYPE,
37599 class = typename bsl::enable_if_t<
37601 std::is_constructible<t_TYPE,
37602 std::initializer_list<INIT_LIST_TYPE>&
37603 >::value> >
37604 explicit variant(bsl::allocator_arg_t,
37605 allocator_type allocator,
37607 std::initializer_list<INIT_LIST_TYPE> il)
37608 : Variant_Base(
37609 bsl::allocator_arg_t{}
37610,
37611 allocator,
37612 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
37613 il)
37614 {
37615 }
37616
37617 template <size_t t_INDEX,
37618 class = typename bsl::enable_if_t<
37619 (t_INDEX < 1 + 0u) &&
37620 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX)
37621 >::value> >
37622 explicit variant(bsl::allocator_arg_t,
37623 allocator_type allocator,
37625 : Variant_Base(bsl::allocator_arg_t{}
37626,
37627 allocator,
37628 bsl::in_place_index_t<t_INDEX>())
37629 {
37630 }
37631
37632 template <size_t t_INDEX,
37633 class INIT_LIST_TYPE,
37634 class = typename bsl::enable_if_t<
37635 (t_INDEX < 1 + 0u) &&
37636 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
37637 std::initializer_list<INIT_LIST_TYPE>&
37638 >::value> >
37639 explicit variant(bsl::allocator_arg_t,
37640 allocator_type allocator,
37642 std::initializer_list<INIT_LIST_TYPE> il)
37643 : Variant_Base(bsl::allocator_arg_t{}
37644,
37645 allocator,
37646 bsl::in_place_index_t<t_INDEX>(),
37647 il)
37648 {
37649 }
37650
37651#else
37652
37653 variant();
37654
37655 variant(const variant& original);
37656
37657 variant(BloombergLP::bslmf::MovableRef<variant> original);
37658
37659 template <class t_TYPE>
37660 variant(const t_TYPE& value,
37662
37663 template <class t_TYPE>
37664 explicit variant(bsl::in_place_type_t<t_TYPE>,
37666
37667 template <class t_TYPE, class t_ARG_01>
37668 explicit variant(bsl::in_place_type_t<t_TYPE>,
37669 const t_ARG_01& arg_01,
37671
37672 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
37673 explicit variant(bsl::in_place_type_t<t_TYPE>,
37674 const t_ARG_01& arg_01,
37675 const t_ARG_02& arg_02,
37677
37678 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
37679 explicit variant(bsl::in_place_type_t<t_TYPE>,
37680 const t_ARG_01& arg_01,
37681 const t_ARG_02& arg_02,
37682 const t_ARG_03& arg_03,
37684
37685 template <class t_TYPE,
37686 class t_ARG_01,
37687 class t_ARG_02,
37688 class t_ARG_03,
37689 class t_ARG_04>
37690 explicit variant(bsl::in_place_type_t<t_TYPE>,
37691 const t_ARG_01& arg_01,
37692 const t_ARG_02& arg_02,
37693 const t_ARG_03& arg_03,
37694 const t_ARG_04& arg_04,
37696
37697 template <class t_TYPE,
37698 class t_ARG_01,
37699 class t_ARG_02,
37700 class t_ARG_03,
37701 class t_ARG_04,
37702 class t_ARG_05>
37703 explicit variant(bsl::in_place_type_t<t_TYPE>,
37704 const t_ARG_01& arg_01,
37705 const t_ARG_02& arg_02,
37706 const t_ARG_03& arg_03,
37707 const t_ARG_04& arg_04,
37708 const t_ARG_05& arg_05,
37710
37711 template <class t_TYPE,
37712 class t_ARG_01,
37713 class t_ARG_02,
37714 class t_ARG_03,
37715 class t_ARG_04,
37716 class t_ARG_05,
37717 class t_ARG_06>
37718 explicit variant(bsl::in_place_type_t<t_TYPE>,
37719 const t_ARG_01& arg_01,
37720 const t_ARG_02& arg_02,
37721 const t_ARG_03& arg_03,
37722 const t_ARG_04& arg_04,
37723 const t_ARG_05& arg_05,
37724 const t_ARG_06& arg_06,
37726
37727 template <class t_TYPE,
37728 class t_ARG_01,
37729 class t_ARG_02,
37730 class t_ARG_03,
37731 class t_ARG_04,
37732 class t_ARG_05,
37733 class t_ARG_06,
37734 class t_ARG_07>
37735 explicit variant(bsl::in_place_type_t<t_TYPE>,
37736 const t_ARG_01& arg_01,
37737 const t_ARG_02& arg_02,
37738 const t_ARG_03& arg_03,
37739 const t_ARG_04& arg_04,
37740 const t_ARG_05& arg_05,
37741 const t_ARG_06& arg_06,
37742 const t_ARG_07& arg_07,
37744
37745 template <class t_TYPE,
37746 class t_ARG_01,
37747 class t_ARG_02,
37748 class t_ARG_03,
37749 class t_ARG_04,
37750 class t_ARG_05,
37751 class t_ARG_06,
37752 class t_ARG_07,
37753 class t_ARG_08>
37754 explicit variant(bsl::in_place_type_t<t_TYPE>,
37755 const t_ARG_01& arg_01,
37756 const t_ARG_02& arg_02,
37757 const t_ARG_03& arg_03,
37758 const t_ARG_04& arg_04,
37759 const t_ARG_05& arg_05,
37760 const t_ARG_06& arg_06,
37761 const t_ARG_07& arg_07,
37762 const t_ARG_08& arg_08,
37764
37765 template <class t_TYPE,
37766 class t_ARG_01,
37767 class t_ARG_02,
37768 class t_ARG_03,
37769 class t_ARG_04,
37770 class t_ARG_05,
37771 class t_ARG_06,
37772 class t_ARG_07,
37773 class t_ARG_08,
37774 class t_ARG_09>
37775 explicit variant(bsl::in_place_type_t<t_TYPE>,
37776 const t_ARG_01& arg_01,
37777 const t_ARG_02& arg_02,
37778 const t_ARG_03& arg_03,
37779 const t_ARG_04& arg_04,
37780 const t_ARG_05& arg_05,
37781 const t_ARG_06& arg_06,
37782 const t_ARG_07& arg_07,
37783 const t_ARG_08& arg_08,
37784 const t_ARG_09& arg_09,
37786
37787 template <class t_TYPE,
37788 class t_ARG_01,
37789 class t_ARG_02,
37790 class t_ARG_03,
37791 class t_ARG_04,
37792 class t_ARG_05,
37793 class t_ARG_06,
37794 class t_ARG_07,
37795 class t_ARG_08,
37796 class t_ARG_09,
37797 class t_ARG_10>
37798 explicit variant(bsl::in_place_type_t<t_TYPE>,
37799 const t_ARG_01& arg_01,
37800 const t_ARG_02& arg_02,
37801 const t_ARG_03& arg_03,
37802 const t_ARG_04& arg_04,
37803 const t_ARG_05& arg_05,
37804 const t_ARG_06& arg_06,
37805 const t_ARG_07& arg_07,
37806 const t_ARG_08& arg_08,
37807 const t_ARG_09& arg_09,
37808 const t_ARG_10& arg_10,
37810
37811 template <size_t t_INDEX>
37812 explicit variant(bsl::in_place_index_t<t_INDEX>);
37813
37814 template <size_t t_INDEX, class t_ARG_01>
37815 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
37816
37817 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
37818 explicit variant(bsl::in_place_index_t<t_INDEX>,
37819 const t_ARG_01& arg_01,
37820 const t_ARG_02& arg_02);
37821
37822 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
37823 explicit variant(bsl::in_place_index_t<t_INDEX>,
37824 const t_ARG_01& arg_01,
37825 const t_ARG_02& arg_02,
37826 const t_ARG_03& arg_03);
37827
37828 template <size_t t_INDEX,
37829 class t_ARG_01,
37830 class t_ARG_02,
37831 class t_ARG_03,
37832 class t_ARG_04>
37833 explicit variant(bsl::in_place_index_t<t_INDEX>,
37834 const t_ARG_01& arg_01,
37835 const t_ARG_02& arg_02,
37836 const t_ARG_03& arg_03,
37837 const t_ARG_04& arg_04);
37838
37839 template <size_t t_INDEX,
37840 class t_ARG_01,
37841 class t_ARG_02,
37842 class t_ARG_03,
37843 class t_ARG_04,
37844 class t_ARG_05>
37845 explicit variant(bsl::in_place_index_t<t_INDEX>,
37846 const t_ARG_01& arg_01,
37847 const t_ARG_02& arg_02,
37848 const t_ARG_03& arg_03,
37849 const t_ARG_04& arg_04,
37850 const t_ARG_05& arg_05);
37851
37852 template <size_t t_INDEX,
37853 class t_ARG_01,
37854 class t_ARG_02,
37855 class t_ARG_03,
37856 class t_ARG_04,
37857 class t_ARG_05,
37858 class t_ARG_06>
37859 explicit variant(bsl::in_place_index_t<t_INDEX>,
37860 const t_ARG_01& arg_01,
37861 const t_ARG_02& arg_02,
37862 const t_ARG_03& arg_03,
37863 const t_ARG_04& arg_04,
37864 const t_ARG_05& arg_05,
37865 const t_ARG_06& arg_06);
37866
37867 template <size_t t_INDEX,
37868 class t_ARG_01,
37869 class t_ARG_02,
37870 class t_ARG_03,
37871 class t_ARG_04,
37872 class t_ARG_05,
37873 class t_ARG_06,
37874 class t_ARG_07>
37875 explicit variant(bsl::in_place_index_t<t_INDEX>,
37876 const t_ARG_01& arg_01,
37877 const t_ARG_02& arg_02,
37878 const t_ARG_03& arg_03,
37879 const t_ARG_04& arg_04,
37880 const t_ARG_05& arg_05,
37881 const t_ARG_06& arg_06,
37882 const t_ARG_07& arg_07);
37883
37884 template <size_t t_INDEX,
37885 class t_ARG_01,
37886 class t_ARG_02,
37887 class t_ARG_03,
37888 class t_ARG_04,
37889 class t_ARG_05,
37890 class t_ARG_06,
37891 class t_ARG_07,
37892 class t_ARG_08>
37893 explicit variant(bsl::in_place_index_t<t_INDEX>,
37894 const t_ARG_01& arg_01,
37895 const t_ARG_02& arg_02,
37896 const t_ARG_03& arg_03,
37897 const t_ARG_04& arg_04,
37898 const t_ARG_05& arg_05,
37899 const t_ARG_06& arg_06,
37900 const t_ARG_07& arg_07,
37901 const t_ARG_08& arg_08);
37902
37903 template <size_t t_INDEX,
37904 class t_ARG_01,
37905 class t_ARG_02,
37906 class t_ARG_03,
37907 class t_ARG_04,
37908 class t_ARG_05,
37909 class t_ARG_06,
37910 class t_ARG_07,
37911 class t_ARG_08,
37912 class t_ARG_09>
37913 explicit variant(bsl::in_place_index_t<t_INDEX>,
37914 const t_ARG_01& arg_01,
37915 const t_ARG_02& arg_02,
37916 const t_ARG_03& arg_03,
37917 const t_ARG_04& arg_04,
37918 const t_ARG_05& arg_05,
37919 const t_ARG_06& arg_06,
37920 const t_ARG_07& arg_07,
37921 const t_ARG_08& arg_08,
37922 const t_ARG_09& arg_09);
37923
37924 template <size_t t_INDEX,
37925 class t_ARG_01,
37926 class t_ARG_02,
37927 class t_ARG_03,
37928 class t_ARG_04,
37929 class t_ARG_05,
37930 class t_ARG_06,
37931 class t_ARG_07,
37932 class t_ARG_08,
37933 class t_ARG_09,
37934 class t_ARG_10>
37935 explicit variant(bsl::in_place_index_t<t_INDEX>,
37936 const t_ARG_01& arg_01,
37937 const t_ARG_02& arg_02,
37938 const t_ARG_03& arg_03,
37939 const t_ARG_04& arg_04,
37940 const t_ARG_05& arg_05,
37941 const t_ARG_06& arg_06,
37942 const t_ARG_07& arg_07,
37943 const t_ARG_08& arg_08,
37944 const t_ARG_09& arg_09,
37945 const t_ARG_10& arg_10);
37946
37947 variant(bsl::allocator_arg_t, allocator_type allocator);
37948
37949 variant(bsl::allocator_arg_t,
37950 allocator_type allocator,
37951 const variant& original);
37952 variant(bsl::allocator_arg_t,
37953 allocator_type allocator,
37954 BloombergLP::bslmf::MovableRef<variant> original);
37955
37956 template <class t_TYPE>
37957 variant(
37958 bsl::allocator_arg_t,
37959 allocator_type allocator,
37960 const t_TYPE& value,
37962
37963 template <class t_TYPE>
37964 explicit variant(
37965 bsl::allocator_arg_t,
37966 allocator_type allocator,
37969
37970 template <class t_TYPE, class t_ARG_01>
37971 explicit variant(
37972 bsl::allocator_arg_t,
37973 allocator_type allocator,
37975 const t_ARG_01& arg_01,
37977
37978 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
37979 explicit variant(
37980 bsl::allocator_arg_t,
37981 allocator_type allocator,
37983 const t_ARG_01& arg_01,
37984 const t_ARG_02& arg_02,
37986
37987 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
37988 explicit variant(
37989 bsl::allocator_arg_t,
37990 allocator_type allocator,
37992 const t_ARG_01& arg_01,
37993 const t_ARG_02& arg_02,
37994 const t_ARG_03& arg_03,
37996
37997 template <class t_TYPE,
37998 class t_ARG_01,
37999 class t_ARG_02,
38000 class t_ARG_03,
38001 class t_ARG_04>
38002 explicit variant(bsl::allocator_arg_t,
38003 allocator_type allocator,
38005 const t_ARG_01& arg_01,
38006 const t_ARG_02& arg_02,
38007 const t_ARG_03& arg_03,
38008 const t_ARG_04& arg_04,
38010
38011 template <class t_TYPE,
38012 class t_ARG_01,
38013 class t_ARG_02,
38014 class t_ARG_03,
38015 class t_ARG_04,
38016 class t_ARG_05>
38017 explicit variant(bsl::allocator_arg_t,
38018 allocator_type allocator,
38020 const t_ARG_01& arg_01,
38021 const t_ARG_02& arg_02,
38022 const t_ARG_03& arg_03,
38023 const t_ARG_04& arg_04,
38024 const t_ARG_05& arg_05,
38026
38027 template <class t_TYPE,
38028 class t_ARG_01,
38029 class t_ARG_02,
38030 class t_ARG_03,
38031 class t_ARG_04,
38032 class t_ARG_05,
38033 class t_ARG_06>
38034 explicit variant(bsl::allocator_arg_t,
38035 allocator_type allocator,
38037 const t_ARG_01& arg_01,
38038 const t_ARG_02& arg_02,
38039 const t_ARG_03& arg_03,
38040 const t_ARG_04& arg_04,
38041 const t_ARG_05& arg_05,
38042 const t_ARG_06& arg_06,
38044
38045 template <class t_TYPE,
38046 class t_ARG_01,
38047 class t_ARG_02,
38048 class t_ARG_03,
38049 class t_ARG_04,
38050 class t_ARG_05,
38051 class t_ARG_06,
38052 class t_ARG_07>
38053 explicit variant(bsl::allocator_arg_t,
38054 allocator_type allocator,
38056 const t_ARG_01& arg_01,
38057 const t_ARG_02& arg_02,
38058 const t_ARG_03& arg_03,
38059 const t_ARG_04& arg_04,
38060 const t_ARG_05& arg_05,
38061 const t_ARG_06& arg_06,
38062 const t_ARG_07& arg_07,
38064
38065 template <class t_TYPE,
38066 class t_ARG_01,
38067 class t_ARG_02,
38068 class t_ARG_03,
38069 class t_ARG_04,
38070 class t_ARG_05,
38071 class t_ARG_06,
38072 class t_ARG_07,
38073 class t_ARG_08>
38074 explicit variant(bsl::allocator_arg_t,
38075 allocator_type allocator,
38077 const t_ARG_01& arg_01,
38078 const t_ARG_02& arg_02,
38079 const t_ARG_03& arg_03,
38080 const t_ARG_04& arg_04,
38081 const t_ARG_05& arg_05,
38082 const t_ARG_06& arg_06,
38083 const t_ARG_07& arg_07,
38084 const t_ARG_08& arg_08,
38086
38087 template <class t_TYPE,
38088 class t_ARG_01,
38089 class t_ARG_02,
38090 class t_ARG_03,
38091 class t_ARG_04,
38092 class t_ARG_05,
38093 class t_ARG_06,
38094 class t_ARG_07,
38095 class t_ARG_08,
38096 class t_ARG_09>
38097 explicit variant(bsl::allocator_arg_t,
38098 allocator_type allocator,
38100 const t_ARG_01& arg_01,
38101 const t_ARG_02& arg_02,
38102 const t_ARG_03& arg_03,
38103 const t_ARG_04& arg_04,
38104 const t_ARG_05& arg_05,
38105 const t_ARG_06& arg_06,
38106 const t_ARG_07& arg_07,
38107 const t_ARG_08& arg_08,
38108 const t_ARG_09& arg_09,
38110
38111 template <class t_TYPE,
38112 class t_ARG_01,
38113 class t_ARG_02,
38114 class t_ARG_03,
38115 class t_ARG_04,
38116 class t_ARG_05,
38117 class t_ARG_06,
38118 class t_ARG_07,
38119 class t_ARG_08,
38120 class t_ARG_09,
38121 class t_ARG_10>
38122 explicit variant(bsl::allocator_arg_t,
38123 allocator_type allocator,
38125 const t_ARG_01& arg_01,
38126 const t_ARG_02& arg_02,
38127 const t_ARG_03& arg_03,
38128 const t_ARG_04& arg_04,
38129 const t_ARG_05& arg_05,
38130 const t_ARG_06& arg_06,
38131 const t_ARG_07& arg_07,
38132 const t_ARG_08& arg_08,
38133 const t_ARG_09& arg_09,
38134 const t_ARG_10& arg_10,
38136
38137 template <size_t t_INDEX>
38138 explicit variant(bsl::allocator_arg_t,
38139 allocator_type allocator,
38141
38142 template <size_t t_INDEX, class t_ARG_01>
38143 explicit variant(bsl::allocator_arg_t,
38144 allocator_type allocator,
38146 const t_ARG_01& arg_01);
38147
38148 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
38149 explicit variant(bsl::allocator_arg_t,
38150 allocator_type allocator,
38152 const t_ARG_01& arg_01,
38153 const t_ARG_02& arg_02);
38154
38155 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
38156 explicit variant(bsl::allocator_arg_t,
38157 allocator_type allocator,
38159 const t_ARG_01& arg_01,
38160 const t_ARG_02& arg_02,
38161 const t_ARG_03& arg_03);
38162
38163 template <size_t t_INDEX,
38164 class t_ARG_01,
38165 class t_ARG_02,
38166 class t_ARG_03,
38167 class t_ARG_04>
38168 explicit variant(bsl::allocator_arg_t,
38169 allocator_type allocator,
38171 const t_ARG_01& arg_01,
38172 const t_ARG_02& arg_02,
38173 const t_ARG_03& arg_03,
38174 const t_ARG_04& arg_04);
38175
38176 template <size_t t_INDEX,
38177 class t_ARG_01,
38178 class t_ARG_02,
38179 class t_ARG_03,
38180 class t_ARG_04,
38181 class t_ARG_05>
38182 explicit variant(bsl::allocator_arg_t,
38183 allocator_type allocator,
38185 const t_ARG_01& arg_01,
38186 const t_ARG_02& arg_02,
38187 const t_ARG_03& arg_03,
38188 const t_ARG_04& arg_04,
38189 const t_ARG_05& arg_05);
38190
38191 template <size_t t_INDEX,
38192 class t_ARG_01,
38193 class t_ARG_02,
38194 class t_ARG_03,
38195 class t_ARG_04,
38196 class t_ARG_05,
38197 class t_ARG_06>
38198 explicit variant(bsl::allocator_arg_t,
38199 allocator_type allocator,
38201 const t_ARG_01& arg_01,
38202 const t_ARG_02& arg_02,
38203 const t_ARG_03& arg_03,
38204 const t_ARG_04& arg_04,
38205 const t_ARG_05& arg_05,
38206 const t_ARG_06& arg_06);
38207
38208 template <size_t t_INDEX,
38209 class t_ARG_01,
38210 class t_ARG_02,
38211 class t_ARG_03,
38212 class t_ARG_04,
38213 class t_ARG_05,
38214 class t_ARG_06,
38215 class t_ARG_07>
38216 explicit variant(bsl::allocator_arg_t,
38217 allocator_type allocator,
38219 const t_ARG_01& arg_01,
38220 const t_ARG_02& arg_02,
38221 const t_ARG_03& arg_03,
38222 const t_ARG_04& arg_04,
38223 const t_ARG_05& arg_05,
38224 const t_ARG_06& arg_06,
38225 const t_ARG_07& arg_07);
38226
38227 template <size_t t_INDEX,
38228 class t_ARG_01,
38229 class t_ARG_02,
38230 class t_ARG_03,
38231 class t_ARG_04,
38232 class t_ARG_05,
38233 class t_ARG_06,
38234 class t_ARG_07,
38235 class t_ARG_08>
38236 explicit variant(bsl::allocator_arg_t,
38237 allocator_type allocator,
38239 const t_ARG_01& arg_01,
38240 const t_ARG_02& arg_02,
38241 const t_ARG_03& arg_03,
38242 const t_ARG_04& arg_04,
38243 const t_ARG_05& arg_05,
38244 const t_ARG_06& arg_06,
38245 const t_ARG_07& arg_07,
38246 const t_ARG_08& arg_08);
38247
38248 template <size_t t_INDEX,
38249 class t_ARG_01,
38250 class t_ARG_02,
38251 class t_ARG_03,
38252 class t_ARG_04,
38253 class t_ARG_05,
38254 class t_ARG_06,
38255 class t_ARG_07,
38256 class t_ARG_08,
38257 class t_ARG_09>
38258 explicit variant(bsl::allocator_arg_t,
38259 allocator_type allocator,
38261 const t_ARG_01& arg_01,
38262 const t_ARG_02& arg_02,
38263 const t_ARG_03& arg_03,
38264 const t_ARG_04& arg_04,
38265 const t_ARG_05& arg_05,
38266 const t_ARG_06& arg_06,
38267 const t_ARG_07& arg_07,
38268 const t_ARG_08& arg_08,
38269 const t_ARG_09& arg_09);
38270
38271 template <size_t t_INDEX,
38272 class t_ARG_01,
38273 class t_ARG_02,
38274 class t_ARG_03,
38275 class t_ARG_04,
38276 class t_ARG_05,
38277 class t_ARG_06,
38278 class t_ARG_07,
38279 class t_ARG_08,
38280 class t_ARG_09,
38281 class t_ARG_10>
38282 explicit variant(bsl::allocator_arg_t,
38283 allocator_type allocator,
38285 const t_ARG_01& arg_01,
38286 const t_ARG_02& arg_02,
38287 const t_ARG_03& arg_03,
38288 const t_ARG_04& arg_04,
38289 const t_ARG_05& arg_05,
38290 const t_ARG_06& arg_06,
38291 const t_ARG_07& arg_07,
38292 const t_ARG_08& arg_08,
38293 const t_ARG_09& arg_09,
38294 const t_ARG_10& arg_10);
38295
38296#endif
38297
38298
38299#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
38300 template <class t_TYPE,
38301 class = typename bsl::enable_if_t<
38303 std::is_constructible<t_TYPE>::value> >
38304 t_TYPE& emplace()
38305 {
38306 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
38307 Variant_Base::template baseEmplace<index>(
38308 );
38309
38310 return bsl::get<index>(*this);
38311 }
38312
38313 template <class t_TYPE,
38314 class INIT_LIST_TYPE,
38315 class = typename bsl::enable_if_t<
38317 std::is_constructible<t_TYPE,
38318 std::initializer_list<INIT_LIST_TYPE>&
38319 >::value> >
38320 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il)
38321 {
38322 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
38323 Variant_Base::template baseEmplace<index>(
38324 il);
38325
38326 return bsl::get<index>(*this);
38327 }
38328
38329 template <size_t t_INDEX,
38330 class = typename bsl::enable_if_t<
38331 (t_INDEX < 1 + 0u) &&
38332 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX)
38333 >::value> >
38334 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38335 emplace()
38336 {
38337 Variant_Base::template baseEmplace<t_INDEX>(
38338 );
38339
38340 return bsl::get<t_INDEX>(*this);
38341 }
38342
38343 template <size_t t_INDEX,
38344 class INIT_LIST_TYPE,
38345 class = typename bsl::enable_if_t<
38346 (t_INDEX < 1 + 0u) &&
38347 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
38348 std::initializer_list<INIT_LIST_TYPE>&
38349 >::value> >
38350 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38351 emplace(std::initializer_list<INIT_LIST_TYPE> il)
38352 {
38353 Variant_Base::template baseEmplace<t_INDEX>(
38354 il);
38355
38356 return bsl::get<t_INDEX>(*this);
38357 }
38358
38359#else
38360
38361 template <class t_TYPE>
38362 typename bsl::enable_if<
38363 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38364 t_TYPE&>::type
38365 emplace();
38366
38367 template <class t_TYPE, class t_ARG_01>
38368 typename bsl::enable_if<
38369 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38370 t_TYPE&>::type
38371 emplace(const t_ARG_01& arg_01);
38372
38373 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
38374 typename bsl::enable_if<
38375 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38376 t_TYPE&>::type
38377 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
38378
38379 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
38380 typename bsl::enable_if<
38381 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38382 t_TYPE&>::type
38383 emplace(const t_ARG_01& arg_01,
38384 const t_ARG_02& arg_02,
38385 const t_ARG_03& arg_03);
38386
38387 template <class t_TYPE,
38388 class t_ARG_01,
38389 class t_ARG_02,
38390 class t_ARG_03,
38391 class t_ARG_04>
38392 typename bsl::enable_if<
38393 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38394 t_TYPE&>::type
38395 emplace(const t_ARG_01& arg_01,
38396 const t_ARG_02& arg_02,
38397 const t_ARG_03& arg_03,
38398 const t_ARG_04& arg_04);
38399
38400 template <class t_TYPE,
38401 class t_ARG_01,
38402 class t_ARG_02,
38403 class t_ARG_03,
38404 class t_ARG_04,
38405 class t_ARG_05>
38406 typename bsl::enable_if<
38407 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38408 t_TYPE&>::type
38409 emplace(const t_ARG_01& arg_01,
38410 const t_ARG_02& arg_02,
38411 const t_ARG_03& arg_03,
38412 const t_ARG_04& arg_04,
38413 const t_ARG_05& arg_05);
38414
38415 template <class t_TYPE,
38416 class t_ARG_01,
38417 class t_ARG_02,
38418 class t_ARG_03,
38419 class t_ARG_04,
38420 class t_ARG_05,
38421 class t_ARG_06>
38422 typename bsl::enable_if<
38423 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38424 t_TYPE&>::type
38425 emplace(const t_ARG_01& arg_01,
38426 const t_ARG_02& arg_02,
38427 const t_ARG_03& arg_03,
38428 const t_ARG_04& arg_04,
38429 const t_ARG_05& arg_05,
38430 const t_ARG_06& arg_06);
38431
38432 template <class t_TYPE,
38433 class t_ARG_01,
38434 class t_ARG_02,
38435 class t_ARG_03,
38436 class t_ARG_04,
38437 class t_ARG_05,
38438 class t_ARG_06,
38439 class t_ARG_07>
38440 typename bsl::enable_if<
38441 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38442 t_TYPE&>::type
38443 emplace(const t_ARG_01& arg_01,
38444 const t_ARG_02& arg_02,
38445 const t_ARG_03& arg_03,
38446 const t_ARG_04& arg_04,
38447 const t_ARG_05& arg_05,
38448 const t_ARG_06& arg_06,
38449 const t_ARG_07& arg_07);
38450
38451 template <class t_TYPE,
38452 class t_ARG_01,
38453 class t_ARG_02,
38454 class t_ARG_03,
38455 class t_ARG_04,
38456 class t_ARG_05,
38457 class t_ARG_06,
38458 class t_ARG_07,
38459 class t_ARG_08>
38460 typename bsl::enable_if<
38461 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38462 t_TYPE&>::type
38463 emplace(const t_ARG_01& arg_01,
38464 const t_ARG_02& arg_02,
38465 const t_ARG_03& arg_03,
38466 const t_ARG_04& arg_04,
38467 const t_ARG_05& arg_05,
38468 const t_ARG_06& arg_06,
38469 const t_ARG_07& arg_07,
38470 const t_ARG_08& arg_08);
38471
38472 template <class t_TYPE,
38473 class t_ARG_01,
38474 class t_ARG_02,
38475 class t_ARG_03,
38476 class t_ARG_04,
38477 class t_ARG_05,
38478 class t_ARG_06,
38479 class t_ARG_07,
38480 class t_ARG_08,
38481 class t_ARG_09>
38482 typename bsl::enable_if<
38483 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38484 t_TYPE&>::type
38485 emplace(const t_ARG_01& arg_01,
38486 const t_ARG_02& arg_02,
38487 const t_ARG_03& arg_03,
38488 const t_ARG_04& arg_04,
38489 const t_ARG_05& arg_05,
38490 const t_ARG_06& arg_06,
38491 const t_ARG_07& arg_07,
38492 const t_ARG_08& arg_08,
38493 const t_ARG_09& arg_09);
38494
38495 template <class t_TYPE,
38496 class t_ARG_01,
38497 class t_ARG_02,
38498 class t_ARG_03,
38499 class t_ARG_04,
38500 class t_ARG_05,
38501 class t_ARG_06,
38502 class t_ARG_07,
38503 class t_ARG_08,
38504 class t_ARG_09,
38505 class t_ARG_10>
38506 typename bsl::enable_if<
38507 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
38508 t_TYPE&>::type
38509 emplace(const t_ARG_01& arg_01,
38510 const t_ARG_02& arg_02,
38511 const t_ARG_03& arg_03,
38512 const t_ARG_04& arg_04,
38513 const t_ARG_05& arg_05,
38514 const t_ARG_06& arg_06,
38515 const t_ARG_07& arg_07,
38516 const t_ARG_08& arg_08,
38517 const t_ARG_09& arg_09,
38518 const t_ARG_10& arg_10);
38519
38520 template <size_t t_INDEX>
38521 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38522 emplace();
38523
38524 template <size_t t_INDEX, class t_ARG_01>
38525 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38526 emplace(const t_ARG_01& arg_01);
38527
38528 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
38529 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38530 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
38531
38532 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
38533 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38534 emplace(const t_ARG_01& arg_01,
38535 const t_ARG_02& arg_02,
38536 const t_ARG_03& arg_03);
38537
38538 template <size_t t_INDEX,
38539 class t_ARG_01,
38540 class t_ARG_02,
38541 class t_ARG_03,
38542 class t_ARG_04>
38543 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38544 emplace(const t_ARG_01& arg_01,
38545 const t_ARG_02& arg_02,
38546 const t_ARG_03& arg_03,
38547 const t_ARG_04& arg_04);
38548
38549 template <size_t t_INDEX,
38550 class t_ARG_01,
38551 class t_ARG_02,
38552 class t_ARG_03,
38553 class t_ARG_04,
38554 class t_ARG_05>
38555 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38556 emplace(const t_ARG_01& arg_01,
38557 const t_ARG_02& arg_02,
38558 const t_ARG_03& arg_03,
38559 const t_ARG_04& arg_04,
38560 const t_ARG_05& arg_05);
38561
38562 template <size_t t_INDEX,
38563 class t_ARG_01,
38564 class t_ARG_02,
38565 class t_ARG_03,
38566 class t_ARG_04,
38567 class t_ARG_05,
38568 class t_ARG_06>
38569 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38570 emplace(const t_ARG_01& arg_01,
38571 const t_ARG_02& arg_02,
38572 const t_ARG_03& arg_03,
38573 const t_ARG_04& arg_04,
38574 const t_ARG_05& arg_05,
38575 const t_ARG_06& arg_06);
38576
38577 template <size_t t_INDEX,
38578 class t_ARG_01,
38579 class t_ARG_02,
38580 class t_ARG_03,
38581 class t_ARG_04,
38582 class t_ARG_05,
38583 class t_ARG_06,
38584 class t_ARG_07>
38585 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38586 emplace(const t_ARG_01& arg_01,
38587 const t_ARG_02& arg_02,
38588 const t_ARG_03& arg_03,
38589 const t_ARG_04& arg_04,
38590 const t_ARG_05& arg_05,
38591 const t_ARG_06& arg_06,
38592 const t_ARG_07& arg_07);
38593
38594 template <size_t t_INDEX,
38595 class t_ARG_01,
38596 class t_ARG_02,
38597 class t_ARG_03,
38598 class t_ARG_04,
38599 class t_ARG_05,
38600 class t_ARG_06,
38601 class t_ARG_07,
38602 class t_ARG_08>
38603 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38604 emplace(const t_ARG_01& arg_01,
38605 const t_ARG_02& arg_02,
38606 const t_ARG_03& arg_03,
38607 const t_ARG_04& arg_04,
38608 const t_ARG_05& arg_05,
38609 const t_ARG_06& arg_06,
38610 const t_ARG_07& arg_07,
38611 const t_ARG_08& arg_08);
38612
38613 template <size_t t_INDEX,
38614 class t_ARG_01,
38615 class t_ARG_02,
38616 class t_ARG_03,
38617 class t_ARG_04,
38618 class t_ARG_05,
38619 class t_ARG_06,
38620 class t_ARG_07,
38621 class t_ARG_08,
38622 class t_ARG_09>
38623 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38624 emplace(const t_ARG_01& arg_01,
38625 const t_ARG_02& arg_02,
38626 const t_ARG_03& arg_03,
38627 const t_ARG_04& arg_04,
38628 const t_ARG_05& arg_05,
38629 const t_ARG_06& arg_06,
38630 const t_ARG_07& arg_07,
38631 const t_ARG_08& arg_08,
38632 const t_ARG_09& arg_09);
38633
38634 template <size_t t_INDEX,
38635 class t_ARG_01,
38636 class t_ARG_02,
38637 class t_ARG_03,
38638 class t_ARG_04,
38639 class t_ARG_05,
38640 class t_ARG_06,
38641 class t_ARG_07,
38642 class t_ARG_08,
38643 class t_ARG_09,
38644 class t_ARG_10>
38645 typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
38646 emplace(const t_ARG_01& arg_01,
38647 const t_ARG_02& arg_02,
38648 const t_ARG_03& arg_03,
38649 const t_ARG_04& arg_04,
38650 const t_ARG_05& arg_05,
38651 const t_ARG_06& arg_06,
38652 const t_ARG_07& arg_07,
38653 const t_ARG_08& arg_08,
38654 const t_ARG_09& arg_09,
38655 const t_ARG_10& arg_10);
38656#endif
38657
38658#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
38659 variant& operator=(const variant& rhs) = default;
38660
38661 variant& operator=(variant&& rhs) = default;
38662
38663 template <class t_TYPE>
38664 typename bsl::enable_if<
38665 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
38666 variant&>::type
38667 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
38668 {
38669 const size_t altIndex =
38670 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
38671
38672 if (index() == altIndex) {
38673 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
38674 value);
38675 }
38676 else {
38677 Variant_Base::template baseEmplace<altIndex>(
38678 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
38679 }
38680
38681 return *this;
38682 }
38683#else
38684 variant& operator=(const variant& rhs);
38685
38686 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
38687
38688 template <class t_TYPE>
38689 typename bsl::enable_if<
38690 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
38691 variant&>::type
38692 operator=(const t_TYPE& value);
38693
38694#endif
38695
38696 void swap(variant& other);
38697
38698#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
38699 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
38700 Variant_UsesBslmaAllocatorAny<t_HEAD>::value,
38701 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
38702#endif
38703 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
38704 {
38705 return allocator_type(Variant_Base::AllocBase::mechanism());
38706 }
38707
38708
38709 size_t index() const BSLS_KEYWORD_NOEXCEPT;
38710
38711 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
38712};
38713#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 0
38714
38715#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 1
38716template <class t_HEAD, class t_TAIL_01>
38717class variant<t_HEAD, t_TAIL_01>
38718: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01>
38719#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
38720,
38721 private BloombergLP::bslstl::Variant_SMFBase<
38722 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
38723 t_TAIL_01>::value,
38724 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
38725 t_TAIL_01>::value,
38726 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
38727 t_TAIL_01>::value &&
38728 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
38729 t_TAIL_01>::value,
38730 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
38731 t_TAIL_01>::value &&
38732 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
38733 t_TAIL_01>::value>
38734#endif
38735{
38736 private:
38737 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
38738 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01> Variant_Base;
38739 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01>
38740 Variant_Union;
38741
38742 friend struct BloombergLP::bslstl::Variant_ImpUtil;
38743
38744 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01>;
38745
38746 public:
38748 variant,
38749 BloombergLP::bslma::UsesBslmaAllocator,
38750 (BloombergLP::bslstl::
38751 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01>::value));
38753 variant,
38754 BloombergLP::bslmf::UsesAllocatorArgT,
38755 (BloombergLP::bslstl::
38756 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01>::value));
38758 variant,
38759 BloombergLP::bslmf::IsBitwiseMoveable,
38760 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
38761 t_TAIL_01>::value));
38762
38763
38764 typedef typename Variant_Base::allocator_type allocator_type;
38765
38766
38767#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
38768 template <class t_FIRST_ALT = t_HEAD,
38769 class = typename bsl::enable_if_t<
38770 std::is_default_constructible<t_FIRST_ALT>::value> >
38771 variant()
38772 : Variant_Base()
38773 {
38774 }
38775
38776 variant(const variant& original) = default;
38777
38778 variant(variant&& original) = default;
38779
38780#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
38781 template <class t_STD_VARIANT>
38782 explicit variant(
38783 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
38785 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
38786 original.index())
38787 {
38788 if (!valueless_by_exception()) {
38789 BloombergLP::bslstl::Variant_ImpUtil::
38790 ConstructFromStdVisitor<variant, decltype(original)>
38791 visitor(*this, original);
38792 BSLSTL_VARIANT_VISITID(void, visitor, *this);
38793 }
38794 }
38795#endif
38796
38797 template <class t_TYPE>
38798 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
38800
38801 template <class t_TYPE,
38802 class t_ARGS_01,
38803 class = typename bsl::enable_if_t<
38805 std::is_constructible<t_TYPE, t_ARGS_01>::value> >
38806 explicit variant(bsl::in_place_type_t<t_TYPE>,
38807 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38808 : Variant_Base(
38809 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
38810 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01))
38811 {
38812 }
38813
38814 template <class t_TYPE,
38815 class INIT_LIST_TYPE,
38816 class t_ARGS_01,
38817 class = typename bsl::enable_if_t<
38819 std::is_constructible<t_TYPE,
38820 std::initializer_list<INIT_LIST_TYPE>&,
38821 t_ARGS_01>::value> >
38822 explicit variant(bsl::in_place_type_t<t_TYPE>,
38823 std::initializer_list<INIT_LIST_TYPE> il,
38824 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38825 : Variant_Base(
38826 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
38827 il,
38828 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01))
38829 {
38830 }
38831
38832 template <size_t t_INDEX,
38833 class t_ARGS_01,
38834 class = typename bsl::enable_if_t<
38835 (t_INDEX < 1 + 1u) &&
38836 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
38837 t_ARGS_01>::value> >
38838 explicit variant(bsl::in_place_index_t<t_INDEX>,
38839 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38840 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
38841 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01))
38842 {
38843 }
38844
38845 template <size_t t_INDEX,
38846 class INIT_LIST_TYPE,
38847 class t_ARGS_01,
38848 class = typename bsl::enable_if_t<
38849 (t_INDEX < 1 + 1u) &&
38850 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
38851 std::initializer_list<INIT_LIST_TYPE>&,
38852 t_ARGS_01>::value> >
38853 explicit variant(bsl::in_place_index_t<t_INDEX>,
38854 std::initializer_list<INIT_LIST_TYPE> il,
38855 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38856 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
38857 il,
38858 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01))
38859 {
38860 }
38861
38862 template <class FIRST = t_HEAD,
38863 class = typename bsl::enable_if_t<
38864 std::is_default_constructible<FIRST>::value> >
38865 variant(bsl::allocator_arg_t, allocator_type allocator)
38866 : Variant_Base(bsl::allocator_arg_t(), allocator)
38867 {
38868 }
38869
38870 template <
38871 class FIRST = t_HEAD,
38872 class = typename bsl::enable_if_t<
38873 BloombergLP::bslstl::
38874 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01>::value> >
38875 variant(bsl::allocator_arg_t,
38876 allocator_type allocator,
38877 const variant& original)
38878 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
38879 {
38880 }
38881 template <
38882 class FIRST = t_HEAD,
38883 class = typename bsl::enable_if_t<
38884 BloombergLP::bslstl::
38885 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01>::value> >
38886 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
38887 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
38888 {
38889 }
38890
38891#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
38892 template <class t_STD_VARIANT>
38893 explicit variant(
38894 bsl::allocator_arg_t,
38895 allocator_type allocator,
38896 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
38898 : Variant_Base(bsl::allocator_arg_t(),
38899 allocator,
38900 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
38901 original.index())
38902 {
38903 if (!valueless_by_exception()) {
38904 BloombergLP::bslstl::Variant_ImpUtil::
38905 ConstructFromStdVisitor<variant, decltype(original)>
38906 visitor(*this, original);
38907 BSLSTL_VARIANT_VISITID(void, visitor, *this);
38908 }
38909 }
38910#endif
38911
38912 template <class t_TYPE>
38913 variant(
38914 bsl::allocator_arg_t,
38915 allocator_type allocator,
38918
38919 template <class t_TYPE,
38920 class t_ARGS_01,
38921 class = typename bsl::enable_if_t<
38923 std::is_constructible<t_TYPE, t_ARGS_01>::value> >
38924 explicit variant(bsl::allocator_arg_t,
38925 allocator_type allocator,
38927 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38928 : Variant_Base(
38929 bsl::allocator_arg_t{}
38930,
38931 allocator,
38932 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
38933 std::forward<t_ARGS_01>(args_01))
38934 {
38935 }
38936
38937 template <class t_TYPE,
38938 class INIT_LIST_TYPE,
38939 class t_ARGS_01,
38940 class = typename bsl::enable_if_t<
38942 std::is_constructible<t_TYPE,
38943 std::initializer_list<INIT_LIST_TYPE>&,
38944 t_ARGS_01>::value> >
38945 explicit variant(bsl::allocator_arg_t,
38946 allocator_type allocator,
38948 std::initializer_list<INIT_LIST_TYPE> il,
38949 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38950 : Variant_Base(
38951 bsl::allocator_arg_t{}
38952,
38953 allocator,
38954 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
38955 il,
38956 std::forward<t_ARGS_01>(args_01))
38957 {
38958 }
38959
38960 template <size_t t_INDEX,
38961 class t_ARGS_01,
38962 class = typename bsl::enable_if_t<
38963 (t_INDEX < 1 + 1u) &&
38964 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
38965 t_ARGS_01>::value> >
38966 explicit variant(bsl::allocator_arg_t,
38967 allocator_type allocator,
38969 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38970 : Variant_Base(bsl::allocator_arg_t{}
38971,
38972 allocator,
38973 bsl::in_place_index_t<t_INDEX>(),
38974 std::forward<t_ARGS_01>(args_01))
38975 {
38976 }
38977
38978 template <size_t t_INDEX,
38979 class INIT_LIST_TYPE,
38980 class t_ARGS_01,
38981 class = typename bsl::enable_if_t<
38982 (t_INDEX < 1 + 1u) &&
38983 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
38984 std::initializer_list<INIT_LIST_TYPE>&,
38985 t_ARGS_01>::value> >
38986 explicit variant(bsl::allocator_arg_t,
38987 allocator_type allocator,
38989 std::initializer_list<INIT_LIST_TYPE> il,
38990 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
38991 : Variant_Base(bsl::allocator_arg_t{}
38992,
38993 allocator,
38994 bsl::in_place_index_t<t_INDEX>(),
38995 il,
38996 std::forward<t_ARGS_01>(args_01))
38997 {
38998 }
38999
39000#else
39001
39002 variant();
39003
39004 variant(const variant& original);
39005
39006 variant(BloombergLP::bslmf::MovableRef<variant> original);
39007
39008 template <class t_TYPE>
39009 variant(const t_TYPE& value,
39011
39012 template <class t_TYPE>
39013 explicit variant(bsl::in_place_type_t<t_TYPE>,
39015
39016 template <class t_TYPE, class t_ARG_01>
39017 explicit variant(bsl::in_place_type_t<t_TYPE>,
39018 const t_ARG_01& arg_01,
39020
39021 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
39022 explicit variant(bsl::in_place_type_t<t_TYPE>,
39023 const t_ARG_01& arg_01,
39024 const t_ARG_02& arg_02,
39026
39027 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
39028 explicit variant(bsl::in_place_type_t<t_TYPE>,
39029 const t_ARG_01& arg_01,
39030 const t_ARG_02& arg_02,
39031 const t_ARG_03& arg_03,
39033
39034 template <class t_TYPE,
39035 class t_ARG_01,
39036 class t_ARG_02,
39037 class t_ARG_03,
39038 class t_ARG_04>
39039 explicit variant(bsl::in_place_type_t<t_TYPE>,
39040 const t_ARG_01& arg_01,
39041 const t_ARG_02& arg_02,
39042 const t_ARG_03& arg_03,
39043 const t_ARG_04& arg_04,
39045
39046 template <class t_TYPE,
39047 class t_ARG_01,
39048 class t_ARG_02,
39049 class t_ARG_03,
39050 class t_ARG_04,
39051 class t_ARG_05>
39052 explicit variant(bsl::in_place_type_t<t_TYPE>,
39053 const t_ARG_01& arg_01,
39054 const t_ARG_02& arg_02,
39055 const t_ARG_03& arg_03,
39056 const t_ARG_04& arg_04,
39057 const t_ARG_05& arg_05,
39059
39060 template <class t_TYPE,
39061 class t_ARG_01,
39062 class t_ARG_02,
39063 class t_ARG_03,
39064 class t_ARG_04,
39065 class t_ARG_05,
39066 class t_ARG_06>
39067 explicit variant(bsl::in_place_type_t<t_TYPE>,
39068 const t_ARG_01& arg_01,
39069 const t_ARG_02& arg_02,
39070 const t_ARG_03& arg_03,
39071 const t_ARG_04& arg_04,
39072 const t_ARG_05& arg_05,
39073 const t_ARG_06& arg_06,
39075
39076 template <class t_TYPE,
39077 class t_ARG_01,
39078 class t_ARG_02,
39079 class t_ARG_03,
39080 class t_ARG_04,
39081 class t_ARG_05,
39082 class t_ARG_06,
39083 class t_ARG_07>
39084 explicit variant(bsl::in_place_type_t<t_TYPE>,
39085 const t_ARG_01& arg_01,
39086 const t_ARG_02& arg_02,
39087 const t_ARG_03& arg_03,
39088 const t_ARG_04& arg_04,
39089 const t_ARG_05& arg_05,
39090 const t_ARG_06& arg_06,
39091 const t_ARG_07& arg_07,
39093
39094 template <class t_TYPE,
39095 class t_ARG_01,
39096 class t_ARG_02,
39097 class t_ARG_03,
39098 class t_ARG_04,
39099 class t_ARG_05,
39100 class t_ARG_06,
39101 class t_ARG_07,
39102 class t_ARG_08>
39103 explicit variant(bsl::in_place_type_t<t_TYPE>,
39104 const t_ARG_01& arg_01,
39105 const t_ARG_02& arg_02,
39106 const t_ARG_03& arg_03,
39107 const t_ARG_04& arg_04,
39108 const t_ARG_05& arg_05,
39109 const t_ARG_06& arg_06,
39110 const t_ARG_07& arg_07,
39111 const t_ARG_08& arg_08,
39113
39114 template <class t_TYPE,
39115 class t_ARG_01,
39116 class t_ARG_02,
39117 class t_ARG_03,
39118 class t_ARG_04,
39119 class t_ARG_05,
39120 class t_ARG_06,
39121 class t_ARG_07,
39122 class t_ARG_08,
39123 class t_ARG_09>
39124 explicit variant(bsl::in_place_type_t<t_TYPE>,
39125 const t_ARG_01& arg_01,
39126 const t_ARG_02& arg_02,
39127 const t_ARG_03& arg_03,
39128 const t_ARG_04& arg_04,
39129 const t_ARG_05& arg_05,
39130 const t_ARG_06& arg_06,
39131 const t_ARG_07& arg_07,
39132 const t_ARG_08& arg_08,
39133 const t_ARG_09& arg_09,
39135
39136 template <class t_TYPE,
39137 class t_ARG_01,
39138 class t_ARG_02,
39139 class t_ARG_03,
39140 class t_ARG_04,
39141 class t_ARG_05,
39142 class t_ARG_06,
39143 class t_ARG_07,
39144 class t_ARG_08,
39145 class t_ARG_09,
39146 class t_ARG_10>
39147 explicit variant(bsl::in_place_type_t<t_TYPE>,
39148 const t_ARG_01& arg_01,
39149 const t_ARG_02& arg_02,
39150 const t_ARG_03& arg_03,
39151 const t_ARG_04& arg_04,
39152 const t_ARG_05& arg_05,
39153 const t_ARG_06& arg_06,
39154 const t_ARG_07& arg_07,
39155 const t_ARG_08& arg_08,
39156 const t_ARG_09& arg_09,
39157 const t_ARG_10& arg_10,
39159
39160 template <size_t t_INDEX>
39161 explicit variant(bsl::in_place_index_t<t_INDEX>);
39162
39163 template <size_t t_INDEX, class t_ARG_01>
39164 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
39165
39166 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
39167 explicit variant(bsl::in_place_index_t<t_INDEX>,
39168 const t_ARG_01& arg_01,
39169 const t_ARG_02& arg_02);
39170
39171 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
39172 explicit variant(bsl::in_place_index_t<t_INDEX>,
39173 const t_ARG_01& arg_01,
39174 const t_ARG_02& arg_02,
39175 const t_ARG_03& arg_03);
39176
39177 template <size_t t_INDEX,
39178 class t_ARG_01,
39179 class t_ARG_02,
39180 class t_ARG_03,
39181 class t_ARG_04>
39182 explicit variant(bsl::in_place_index_t<t_INDEX>,
39183 const t_ARG_01& arg_01,
39184 const t_ARG_02& arg_02,
39185 const t_ARG_03& arg_03,
39186 const t_ARG_04& arg_04);
39187
39188 template <size_t t_INDEX,
39189 class t_ARG_01,
39190 class t_ARG_02,
39191 class t_ARG_03,
39192 class t_ARG_04,
39193 class t_ARG_05>
39194 explicit variant(bsl::in_place_index_t<t_INDEX>,
39195 const t_ARG_01& arg_01,
39196 const t_ARG_02& arg_02,
39197 const t_ARG_03& arg_03,
39198 const t_ARG_04& arg_04,
39199 const t_ARG_05& arg_05);
39200
39201 template <size_t t_INDEX,
39202 class t_ARG_01,
39203 class t_ARG_02,
39204 class t_ARG_03,
39205 class t_ARG_04,
39206 class t_ARG_05,
39207 class t_ARG_06>
39208 explicit variant(bsl::in_place_index_t<t_INDEX>,
39209 const t_ARG_01& arg_01,
39210 const t_ARG_02& arg_02,
39211 const t_ARG_03& arg_03,
39212 const t_ARG_04& arg_04,
39213 const t_ARG_05& arg_05,
39214 const t_ARG_06& arg_06);
39215
39216 template <size_t t_INDEX,
39217 class t_ARG_01,
39218 class t_ARG_02,
39219 class t_ARG_03,
39220 class t_ARG_04,
39221 class t_ARG_05,
39222 class t_ARG_06,
39223 class t_ARG_07>
39224 explicit variant(bsl::in_place_index_t<t_INDEX>,
39225 const t_ARG_01& arg_01,
39226 const t_ARG_02& arg_02,
39227 const t_ARG_03& arg_03,
39228 const t_ARG_04& arg_04,
39229 const t_ARG_05& arg_05,
39230 const t_ARG_06& arg_06,
39231 const t_ARG_07& arg_07);
39232
39233 template <size_t t_INDEX,
39234 class t_ARG_01,
39235 class t_ARG_02,
39236 class t_ARG_03,
39237 class t_ARG_04,
39238 class t_ARG_05,
39239 class t_ARG_06,
39240 class t_ARG_07,
39241 class t_ARG_08>
39242 explicit variant(bsl::in_place_index_t<t_INDEX>,
39243 const t_ARG_01& arg_01,
39244 const t_ARG_02& arg_02,
39245 const t_ARG_03& arg_03,
39246 const t_ARG_04& arg_04,
39247 const t_ARG_05& arg_05,
39248 const t_ARG_06& arg_06,
39249 const t_ARG_07& arg_07,
39250 const t_ARG_08& arg_08);
39251
39252 template <size_t t_INDEX,
39253 class t_ARG_01,
39254 class t_ARG_02,
39255 class t_ARG_03,
39256 class t_ARG_04,
39257 class t_ARG_05,
39258 class t_ARG_06,
39259 class t_ARG_07,
39260 class t_ARG_08,
39261 class t_ARG_09>
39262 explicit variant(bsl::in_place_index_t<t_INDEX>,
39263 const t_ARG_01& arg_01,
39264 const t_ARG_02& arg_02,
39265 const t_ARG_03& arg_03,
39266 const t_ARG_04& arg_04,
39267 const t_ARG_05& arg_05,
39268 const t_ARG_06& arg_06,
39269 const t_ARG_07& arg_07,
39270 const t_ARG_08& arg_08,
39271 const t_ARG_09& arg_09);
39272
39273 template <size_t t_INDEX,
39274 class t_ARG_01,
39275 class t_ARG_02,
39276 class t_ARG_03,
39277 class t_ARG_04,
39278 class t_ARG_05,
39279 class t_ARG_06,
39280 class t_ARG_07,
39281 class t_ARG_08,
39282 class t_ARG_09,
39283 class t_ARG_10>
39284 explicit variant(bsl::in_place_index_t<t_INDEX>,
39285 const t_ARG_01& arg_01,
39286 const t_ARG_02& arg_02,
39287 const t_ARG_03& arg_03,
39288 const t_ARG_04& arg_04,
39289 const t_ARG_05& arg_05,
39290 const t_ARG_06& arg_06,
39291 const t_ARG_07& arg_07,
39292 const t_ARG_08& arg_08,
39293 const t_ARG_09& arg_09,
39294 const t_ARG_10& arg_10);
39295
39296 variant(bsl::allocator_arg_t, allocator_type allocator);
39297
39298 variant(bsl::allocator_arg_t,
39299 allocator_type allocator,
39300 const variant& original);
39301 variant(bsl::allocator_arg_t,
39302 allocator_type allocator,
39303 BloombergLP::bslmf::MovableRef<variant> original);
39304
39305 template <class t_TYPE>
39306 variant(
39307 bsl::allocator_arg_t,
39308 allocator_type allocator,
39309 const t_TYPE& value,
39311
39312 template <class t_TYPE>
39313 explicit variant(
39314 bsl::allocator_arg_t,
39315 allocator_type allocator,
39318
39319 template <class t_TYPE, class t_ARG_01>
39320 explicit variant(
39321 bsl::allocator_arg_t,
39322 allocator_type allocator,
39324 const t_ARG_01& arg_01,
39326
39327 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
39328 explicit variant(
39329 bsl::allocator_arg_t,
39330 allocator_type allocator,
39332 const t_ARG_01& arg_01,
39333 const t_ARG_02& arg_02,
39335
39336 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
39337 explicit variant(
39338 bsl::allocator_arg_t,
39339 allocator_type allocator,
39341 const t_ARG_01& arg_01,
39342 const t_ARG_02& arg_02,
39343 const t_ARG_03& arg_03,
39345
39346 template <class t_TYPE,
39347 class t_ARG_01,
39348 class t_ARG_02,
39349 class t_ARG_03,
39350 class t_ARG_04>
39351 explicit variant(bsl::allocator_arg_t,
39352 allocator_type allocator,
39354 const t_ARG_01& arg_01,
39355 const t_ARG_02& arg_02,
39356 const t_ARG_03& arg_03,
39357 const t_ARG_04& arg_04,
39359
39360 template <class t_TYPE,
39361 class t_ARG_01,
39362 class t_ARG_02,
39363 class t_ARG_03,
39364 class t_ARG_04,
39365 class t_ARG_05>
39366 explicit variant(bsl::allocator_arg_t,
39367 allocator_type allocator,
39369 const t_ARG_01& arg_01,
39370 const t_ARG_02& arg_02,
39371 const t_ARG_03& arg_03,
39372 const t_ARG_04& arg_04,
39373 const t_ARG_05& arg_05,
39375
39376 template <class t_TYPE,
39377 class t_ARG_01,
39378 class t_ARG_02,
39379 class t_ARG_03,
39380 class t_ARG_04,
39381 class t_ARG_05,
39382 class t_ARG_06>
39383 explicit variant(bsl::allocator_arg_t,
39384 allocator_type allocator,
39386 const t_ARG_01& arg_01,
39387 const t_ARG_02& arg_02,
39388 const t_ARG_03& arg_03,
39389 const t_ARG_04& arg_04,
39390 const t_ARG_05& arg_05,
39391 const t_ARG_06& arg_06,
39393
39394 template <class t_TYPE,
39395 class t_ARG_01,
39396 class t_ARG_02,
39397 class t_ARG_03,
39398 class t_ARG_04,
39399 class t_ARG_05,
39400 class t_ARG_06,
39401 class t_ARG_07>
39402 explicit variant(bsl::allocator_arg_t,
39403 allocator_type allocator,
39405 const t_ARG_01& arg_01,
39406 const t_ARG_02& arg_02,
39407 const t_ARG_03& arg_03,
39408 const t_ARG_04& arg_04,
39409 const t_ARG_05& arg_05,
39410 const t_ARG_06& arg_06,
39411 const t_ARG_07& arg_07,
39413
39414 template <class t_TYPE,
39415 class t_ARG_01,
39416 class t_ARG_02,
39417 class t_ARG_03,
39418 class t_ARG_04,
39419 class t_ARG_05,
39420 class t_ARG_06,
39421 class t_ARG_07,
39422 class t_ARG_08>
39423 explicit variant(bsl::allocator_arg_t,
39424 allocator_type allocator,
39426 const t_ARG_01& arg_01,
39427 const t_ARG_02& arg_02,
39428 const t_ARG_03& arg_03,
39429 const t_ARG_04& arg_04,
39430 const t_ARG_05& arg_05,
39431 const t_ARG_06& arg_06,
39432 const t_ARG_07& arg_07,
39433 const t_ARG_08& arg_08,
39435
39436 template <class t_TYPE,
39437 class t_ARG_01,
39438 class t_ARG_02,
39439 class t_ARG_03,
39440 class t_ARG_04,
39441 class t_ARG_05,
39442 class t_ARG_06,
39443 class t_ARG_07,
39444 class t_ARG_08,
39445 class t_ARG_09>
39446 explicit variant(bsl::allocator_arg_t,
39447 allocator_type allocator,
39449 const t_ARG_01& arg_01,
39450 const t_ARG_02& arg_02,
39451 const t_ARG_03& arg_03,
39452 const t_ARG_04& arg_04,
39453 const t_ARG_05& arg_05,
39454 const t_ARG_06& arg_06,
39455 const t_ARG_07& arg_07,
39456 const t_ARG_08& arg_08,
39457 const t_ARG_09& arg_09,
39459
39460 template <class t_TYPE,
39461 class t_ARG_01,
39462 class t_ARG_02,
39463 class t_ARG_03,
39464 class t_ARG_04,
39465 class t_ARG_05,
39466 class t_ARG_06,
39467 class t_ARG_07,
39468 class t_ARG_08,
39469 class t_ARG_09,
39470 class t_ARG_10>
39471 explicit variant(bsl::allocator_arg_t,
39472 allocator_type allocator,
39474 const t_ARG_01& arg_01,
39475 const t_ARG_02& arg_02,
39476 const t_ARG_03& arg_03,
39477 const t_ARG_04& arg_04,
39478 const t_ARG_05& arg_05,
39479 const t_ARG_06& arg_06,
39480 const t_ARG_07& arg_07,
39481 const t_ARG_08& arg_08,
39482 const t_ARG_09& arg_09,
39483 const t_ARG_10& arg_10,
39485
39486 template <size_t t_INDEX>
39487 explicit variant(bsl::allocator_arg_t,
39488 allocator_type allocator,
39490
39491 template <size_t t_INDEX, class t_ARG_01>
39492 explicit variant(bsl::allocator_arg_t,
39493 allocator_type allocator,
39495 const t_ARG_01& arg_01);
39496
39497 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
39498 explicit variant(bsl::allocator_arg_t,
39499 allocator_type allocator,
39501 const t_ARG_01& arg_01,
39502 const t_ARG_02& arg_02);
39503
39504 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
39505 explicit variant(bsl::allocator_arg_t,
39506 allocator_type allocator,
39508 const t_ARG_01& arg_01,
39509 const t_ARG_02& arg_02,
39510 const t_ARG_03& arg_03);
39511
39512 template <size_t t_INDEX,
39513 class t_ARG_01,
39514 class t_ARG_02,
39515 class t_ARG_03,
39516 class t_ARG_04>
39517 explicit variant(bsl::allocator_arg_t,
39518 allocator_type allocator,
39520 const t_ARG_01& arg_01,
39521 const t_ARG_02& arg_02,
39522 const t_ARG_03& arg_03,
39523 const t_ARG_04& arg_04);
39524
39525 template <size_t t_INDEX,
39526 class t_ARG_01,
39527 class t_ARG_02,
39528 class t_ARG_03,
39529 class t_ARG_04,
39530 class t_ARG_05>
39531 explicit variant(bsl::allocator_arg_t,
39532 allocator_type allocator,
39534 const t_ARG_01& arg_01,
39535 const t_ARG_02& arg_02,
39536 const t_ARG_03& arg_03,
39537 const t_ARG_04& arg_04,
39538 const t_ARG_05& arg_05);
39539
39540 template <size_t t_INDEX,
39541 class t_ARG_01,
39542 class t_ARG_02,
39543 class t_ARG_03,
39544 class t_ARG_04,
39545 class t_ARG_05,
39546 class t_ARG_06>
39547 explicit variant(bsl::allocator_arg_t,
39548 allocator_type allocator,
39550 const t_ARG_01& arg_01,
39551 const t_ARG_02& arg_02,
39552 const t_ARG_03& arg_03,
39553 const t_ARG_04& arg_04,
39554 const t_ARG_05& arg_05,
39555 const t_ARG_06& arg_06);
39556
39557 template <size_t t_INDEX,
39558 class t_ARG_01,
39559 class t_ARG_02,
39560 class t_ARG_03,
39561 class t_ARG_04,
39562 class t_ARG_05,
39563 class t_ARG_06,
39564 class t_ARG_07>
39565 explicit variant(bsl::allocator_arg_t,
39566 allocator_type allocator,
39568 const t_ARG_01& arg_01,
39569 const t_ARG_02& arg_02,
39570 const t_ARG_03& arg_03,
39571 const t_ARG_04& arg_04,
39572 const t_ARG_05& arg_05,
39573 const t_ARG_06& arg_06,
39574 const t_ARG_07& arg_07);
39575
39576 template <size_t t_INDEX,
39577 class t_ARG_01,
39578 class t_ARG_02,
39579 class t_ARG_03,
39580 class t_ARG_04,
39581 class t_ARG_05,
39582 class t_ARG_06,
39583 class t_ARG_07,
39584 class t_ARG_08>
39585 explicit variant(bsl::allocator_arg_t,
39586 allocator_type allocator,
39588 const t_ARG_01& arg_01,
39589 const t_ARG_02& arg_02,
39590 const t_ARG_03& arg_03,
39591 const t_ARG_04& arg_04,
39592 const t_ARG_05& arg_05,
39593 const t_ARG_06& arg_06,
39594 const t_ARG_07& arg_07,
39595 const t_ARG_08& arg_08);
39596
39597 template <size_t t_INDEX,
39598 class t_ARG_01,
39599 class t_ARG_02,
39600 class t_ARG_03,
39601 class t_ARG_04,
39602 class t_ARG_05,
39603 class t_ARG_06,
39604 class t_ARG_07,
39605 class t_ARG_08,
39606 class t_ARG_09>
39607 explicit variant(bsl::allocator_arg_t,
39608 allocator_type allocator,
39610 const t_ARG_01& arg_01,
39611 const t_ARG_02& arg_02,
39612 const t_ARG_03& arg_03,
39613 const t_ARG_04& arg_04,
39614 const t_ARG_05& arg_05,
39615 const t_ARG_06& arg_06,
39616 const t_ARG_07& arg_07,
39617 const t_ARG_08& arg_08,
39618 const t_ARG_09& arg_09);
39619
39620 template <size_t t_INDEX,
39621 class t_ARG_01,
39622 class t_ARG_02,
39623 class t_ARG_03,
39624 class t_ARG_04,
39625 class t_ARG_05,
39626 class t_ARG_06,
39627 class t_ARG_07,
39628 class t_ARG_08,
39629 class t_ARG_09,
39630 class t_ARG_10>
39631 explicit variant(bsl::allocator_arg_t,
39632 allocator_type allocator,
39634 const t_ARG_01& arg_01,
39635 const t_ARG_02& arg_02,
39636 const t_ARG_03& arg_03,
39637 const t_ARG_04& arg_04,
39638 const t_ARG_05& arg_05,
39639 const t_ARG_06& arg_06,
39640 const t_ARG_07& arg_07,
39641 const t_ARG_08& arg_08,
39642 const t_ARG_09& arg_09,
39643 const t_ARG_10& arg_10);
39644
39645#endif
39646
39647
39648#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
39649 template <class t_TYPE,
39650 class t_ARGS_01,
39651 class = typename bsl::enable_if_t<
39653 std::is_constructible<t_TYPE, t_ARGS_01>::value> >
39654 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
39655 {
39656 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
39657 Variant_Base::template baseEmplace<index>(
39658 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01));
39659
39660 return bsl::get<index>(*this);
39661 }
39662
39663 template <class t_TYPE,
39664 class INIT_LIST_TYPE,
39665 class t_ARGS_01,
39666 class = typename bsl::enable_if_t<
39668 std::is_constructible<t_TYPE,
39669 std::initializer_list<INIT_LIST_TYPE>&,
39670 t_ARGS_01>::value> >
39671 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
39672 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
39673 {
39674 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
39675 Variant_Base::template baseEmplace<index>(
39676 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01));
39677
39678 return bsl::get<index>(*this);
39679 }
39680
39681 template <size_t t_INDEX,
39682 class t_ARGS_01,
39683 class = typename bsl::enable_if_t<
39684 (t_INDEX < 1 + 1u) &&
39685 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
39686 t_ARGS_01>::value> >
39687 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39688 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
39689 {
39690 Variant_Base::template baseEmplace<t_INDEX>(
39691 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01));
39692
39693 return bsl::get<t_INDEX>(*this);
39694 }
39695
39696 template <size_t t_INDEX,
39697 class INIT_LIST_TYPE,
39698 class t_ARGS_01,
39699 class = typename bsl::enable_if_t<
39700 (t_INDEX < 1 + 1u) &&
39701 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
39702 std::initializer_list<INIT_LIST_TYPE>&,
39703 t_ARGS_01>::value> >
39704 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39705 emplace(std::initializer_list<INIT_LIST_TYPE> il,
39706 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01)
39707 {
39708 Variant_Base::template baseEmplace<t_INDEX>(
39709 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01));
39710
39711 return bsl::get<t_INDEX>(*this);
39712 }
39713
39714#else
39715
39716 template <class t_TYPE>
39717 typename bsl::enable_if<
39718 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39719 t_TYPE&>::type
39720 emplace();
39721
39722 template <class t_TYPE, class t_ARG_01>
39723 typename bsl::enable_if<
39724 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39725 t_TYPE&>::type
39726 emplace(const t_ARG_01& arg_01);
39727
39728 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
39729 typename bsl::enable_if<
39730 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39731 t_TYPE&>::type
39732 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
39733
39734 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
39735 typename bsl::enable_if<
39736 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39737 t_TYPE&>::type
39738 emplace(const t_ARG_01& arg_01,
39739 const t_ARG_02& arg_02,
39740 const t_ARG_03& arg_03);
39741
39742 template <class t_TYPE,
39743 class t_ARG_01,
39744 class t_ARG_02,
39745 class t_ARG_03,
39746 class t_ARG_04>
39747 typename bsl::enable_if<
39748 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39749 t_TYPE&>::type
39750 emplace(const t_ARG_01& arg_01,
39751 const t_ARG_02& arg_02,
39752 const t_ARG_03& arg_03,
39753 const t_ARG_04& arg_04);
39754
39755 template <class t_TYPE,
39756 class t_ARG_01,
39757 class t_ARG_02,
39758 class t_ARG_03,
39759 class t_ARG_04,
39760 class t_ARG_05>
39761 typename bsl::enable_if<
39762 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39763 t_TYPE&>::type
39764 emplace(const t_ARG_01& arg_01,
39765 const t_ARG_02& arg_02,
39766 const t_ARG_03& arg_03,
39767 const t_ARG_04& arg_04,
39768 const t_ARG_05& arg_05);
39769
39770 template <class t_TYPE,
39771 class t_ARG_01,
39772 class t_ARG_02,
39773 class t_ARG_03,
39774 class t_ARG_04,
39775 class t_ARG_05,
39776 class t_ARG_06>
39777 typename bsl::enable_if<
39778 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39779 t_TYPE&>::type
39780 emplace(const t_ARG_01& arg_01,
39781 const t_ARG_02& arg_02,
39782 const t_ARG_03& arg_03,
39783 const t_ARG_04& arg_04,
39784 const t_ARG_05& arg_05,
39785 const t_ARG_06& arg_06);
39786
39787 template <class t_TYPE,
39788 class t_ARG_01,
39789 class t_ARG_02,
39790 class t_ARG_03,
39791 class t_ARG_04,
39792 class t_ARG_05,
39793 class t_ARG_06,
39794 class t_ARG_07>
39795 typename bsl::enable_if<
39796 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39797 t_TYPE&>::type
39798 emplace(const t_ARG_01& arg_01,
39799 const t_ARG_02& arg_02,
39800 const t_ARG_03& arg_03,
39801 const t_ARG_04& arg_04,
39802 const t_ARG_05& arg_05,
39803 const t_ARG_06& arg_06,
39804 const t_ARG_07& arg_07);
39805
39806 template <class t_TYPE,
39807 class t_ARG_01,
39808 class t_ARG_02,
39809 class t_ARG_03,
39810 class t_ARG_04,
39811 class t_ARG_05,
39812 class t_ARG_06,
39813 class t_ARG_07,
39814 class t_ARG_08>
39815 typename bsl::enable_if<
39816 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39817 t_TYPE&>::type
39818 emplace(const t_ARG_01& arg_01,
39819 const t_ARG_02& arg_02,
39820 const t_ARG_03& arg_03,
39821 const t_ARG_04& arg_04,
39822 const t_ARG_05& arg_05,
39823 const t_ARG_06& arg_06,
39824 const t_ARG_07& arg_07,
39825 const t_ARG_08& arg_08);
39826
39827 template <class t_TYPE,
39828 class t_ARG_01,
39829 class t_ARG_02,
39830 class t_ARG_03,
39831 class t_ARG_04,
39832 class t_ARG_05,
39833 class t_ARG_06,
39834 class t_ARG_07,
39835 class t_ARG_08,
39836 class t_ARG_09>
39837 typename bsl::enable_if<
39838 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39839 t_TYPE&>::type
39840 emplace(const t_ARG_01& arg_01,
39841 const t_ARG_02& arg_02,
39842 const t_ARG_03& arg_03,
39843 const t_ARG_04& arg_04,
39844 const t_ARG_05& arg_05,
39845 const t_ARG_06& arg_06,
39846 const t_ARG_07& arg_07,
39847 const t_ARG_08& arg_08,
39848 const t_ARG_09& arg_09);
39849
39850 template <class t_TYPE,
39851 class t_ARG_01,
39852 class t_ARG_02,
39853 class t_ARG_03,
39854 class t_ARG_04,
39855 class t_ARG_05,
39856 class t_ARG_06,
39857 class t_ARG_07,
39858 class t_ARG_08,
39859 class t_ARG_09,
39860 class t_ARG_10>
39861 typename bsl::enable_if<
39862 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
39863 t_TYPE&>::type
39864 emplace(const t_ARG_01& arg_01,
39865 const t_ARG_02& arg_02,
39866 const t_ARG_03& arg_03,
39867 const t_ARG_04& arg_04,
39868 const t_ARG_05& arg_05,
39869 const t_ARG_06& arg_06,
39870 const t_ARG_07& arg_07,
39871 const t_ARG_08& arg_08,
39872 const t_ARG_09& arg_09,
39873 const t_ARG_10& arg_10);
39874
39875 template <size_t t_INDEX>
39876 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39877 emplace();
39878
39879 template <size_t t_INDEX, class t_ARG_01>
39880 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39881 emplace(const t_ARG_01& arg_01);
39882
39883 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
39884 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39885 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
39886
39887 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
39888 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39889 emplace(const t_ARG_01& arg_01,
39890 const t_ARG_02& arg_02,
39891 const t_ARG_03& arg_03);
39892
39893 template <size_t t_INDEX,
39894 class t_ARG_01,
39895 class t_ARG_02,
39896 class t_ARG_03,
39897 class t_ARG_04>
39898 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39899 emplace(const t_ARG_01& arg_01,
39900 const t_ARG_02& arg_02,
39901 const t_ARG_03& arg_03,
39902 const t_ARG_04& arg_04);
39903
39904 template <size_t t_INDEX,
39905 class t_ARG_01,
39906 class t_ARG_02,
39907 class t_ARG_03,
39908 class t_ARG_04,
39909 class t_ARG_05>
39910 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39911 emplace(const t_ARG_01& arg_01,
39912 const t_ARG_02& arg_02,
39913 const t_ARG_03& arg_03,
39914 const t_ARG_04& arg_04,
39915 const t_ARG_05& arg_05);
39916
39917 template <size_t t_INDEX,
39918 class t_ARG_01,
39919 class t_ARG_02,
39920 class t_ARG_03,
39921 class t_ARG_04,
39922 class t_ARG_05,
39923 class t_ARG_06>
39924 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39925 emplace(const t_ARG_01& arg_01,
39926 const t_ARG_02& arg_02,
39927 const t_ARG_03& arg_03,
39928 const t_ARG_04& arg_04,
39929 const t_ARG_05& arg_05,
39930 const t_ARG_06& arg_06);
39931
39932 template <size_t t_INDEX,
39933 class t_ARG_01,
39934 class t_ARG_02,
39935 class t_ARG_03,
39936 class t_ARG_04,
39937 class t_ARG_05,
39938 class t_ARG_06,
39939 class t_ARG_07>
39940 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39941 emplace(const t_ARG_01& arg_01,
39942 const t_ARG_02& arg_02,
39943 const t_ARG_03& arg_03,
39944 const t_ARG_04& arg_04,
39945 const t_ARG_05& arg_05,
39946 const t_ARG_06& arg_06,
39947 const t_ARG_07& arg_07);
39948
39949 template <size_t t_INDEX,
39950 class t_ARG_01,
39951 class t_ARG_02,
39952 class t_ARG_03,
39953 class t_ARG_04,
39954 class t_ARG_05,
39955 class t_ARG_06,
39956 class t_ARG_07,
39957 class t_ARG_08>
39958 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39959 emplace(const t_ARG_01& arg_01,
39960 const t_ARG_02& arg_02,
39961 const t_ARG_03& arg_03,
39962 const t_ARG_04& arg_04,
39963 const t_ARG_05& arg_05,
39964 const t_ARG_06& arg_06,
39965 const t_ARG_07& arg_07,
39966 const t_ARG_08& arg_08);
39967
39968 template <size_t t_INDEX,
39969 class t_ARG_01,
39970 class t_ARG_02,
39971 class t_ARG_03,
39972 class t_ARG_04,
39973 class t_ARG_05,
39974 class t_ARG_06,
39975 class t_ARG_07,
39976 class t_ARG_08,
39977 class t_ARG_09>
39978 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
39979 emplace(const t_ARG_01& arg_01,
39980 const t_ARG_02& arg_02,
39981 const t_ARG_03& arg_03,
39982 const t_ARG_04& arg_04,
39983 const t_ARG_05& arg_05,
39984 const t_ARG_06& arg_06,
39985 const t_ARG_07& arg_07,
39986 const t_ARG_08& arg_08,
39987 const t_ARG_09& arg_09);
39988
39989 template <size_t t_INDEX,
39990 class t_ARG_01,
39991 class t_ARG_02,
39992 class t_ARG_03,
39993 class t_ARG_04,
39994 class t_ARG_05,
39995 class t_ARG_06,
39996 class t_ARG_07,
39997 class t_ARG_08,
39998 class t_ARG_09,
39999 class t_ARG_10>
40000 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
40001 emplace(const t_ARG_01& arg_01,
40002 const t_ARG_02& arg_02,
40003 const t_ARG_03& arg_03,
40004 const t_ARG_04& arg_04,
40005 const t_ARG_05& arg_05,
40006 const t_ARG_06& arg_06,
40007 const t_ARG_07& arg_07,
40008 const t_ARG_08& arg_08,
40009 const t_ARG_09& arg_09,
40010 const t_ARG_10& arg_10);
40011#endif
40012
40013#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
40014 variant& operator=(const variant& rhs) = default;
40015
40016 variant& operator=(variant&& rhs) = default;
40017
40018 template <class t_TYPE>
40019 typename bsl::enable_if<
40020 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
40021 variant&>::type
40022 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
40023 {
40024 const size_t altIndex =
40025 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
40026
40027 if (index() == altIndex) {
40028 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
40029 value);
40030 }
40031 else {
40032 Variant_Base::template baseEmplace<altIndex>(
40033 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
40034 }
40035
40036 return *this;
40037 }
40038#else
40039 variant& operator=(const variant& rhs);
40040
40041 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
40042
40043 template <class t_TYPE>
40044 typename bsl::enable_if<
40045 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
40046 variant&>::type
40047 operator=(const t_TYPE& value);
40048
40049#endif
40050
40051 void swap(variant& other);
40052
40053#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
40054 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
40055 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01>::value,
40056 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
40057#endif
40058 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
40059 {
40060 return allocator_type(Variant_Base::AllocBase::mechanism());
40061 }
40062
40063
40064 size_t index() const BSLS_KEYWORD_NOEXCEPT;
40065
40066 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
40067};
40068#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 1
40069
40070#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 2
40071template <class t_HEAD, class t_TAIL_01,
40072 class t_TAIL_02>
40073class variant<t_HEAD, t_TAIL_01,
40074 t_TAIL_02>
40075: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
40076 t_TAIL_02>
40077#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
40078,
40079 private BloombergLP::bslstl::Variant_SMFBase<
40080 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
40081 t_TAIL_01,
40082 t_TAIL_02>::value,
40083 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
40084 t_TAIL_01,
40085 t_TAIL_02>::value,
40086 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
40087 t_TAIL_01,
40088 t_TAIL_02>::value &&
40089 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
40090 t_TAIL_01,
40091 t_TAIL_02>::value,
40092 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
40093 t_TAIL_01,
40094 t_TAIL_02>::value &&
40095 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
40096 t_TAIL_01,
40097 t_TAIL_02>::value>
40098#endif
40099{
40100 private:
40101 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
40102 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
40103 t_TAIL_02> Variant_Base;
40104 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
40105 t_TAIL_02>
40106 Variant_Union;
40107
40108 friend struct BloombergLP::bslstl::Variant_ImpUtil;
40109
40110 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
40111 t_TAIL_02>;
40112
40113 public:
40115 variant,
40116 BloombergLP::bslma::UsesBslmaAllocator,
40117 (BloombergLP::bslstl::
40118 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
40119 t_TAIL_02>::value));
40121 variant,
40122 BloombergLP::bslmf::UsesAllocatorArgT,
40123 (BloombergLP::bslstl::
40124 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
40125 t_TAIL_02>::value));
40127 variant,
40128 BloombergLP::bslmf::IsBitwiseMoveable,
40129 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
40130 t_TAIL_01,
40131 t_TAIL_02>::value));
40132
40133
40134 typedef typename Variant_Base::allocator_type allocator_type;
40135
40136
40137#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
40138 template <class t_FIRST_ALT = t_HEAD,
40139 class = typename bsl::enable_if_t<
40140 std::is_default_constructible<t_FIRST_ALT>::value> >
40141 variant()
40142 : Variant_Base()
40143 {
40144 }
40145
40146 variant(const variant& original) = default;
40147
40148 variant(variant&& original) = default;
40149
40150#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
40151 template <class t_STD_VARIANT>
40152 explicit variant(
40153 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
40155 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
40156 original.index())
40157 {
40158 if (!valueless_by_exception()) {
40159 BloombergLP::bslstl::Variant_ImpUtil::
40160 ConstructFromStdVisitor<variant, decltype(original)>
40161 visitor(*this, original);
40162 BSLSTL_VARIANT_VISITID(void, visitor, *this);
40163 }
40164 }
40165#endif
40166
40167 template <class t_TYPE>
40168 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
40170
40171 template <class t_TYPE,
40172 class t_ARGS_01,
40173 class t_ARGS_02,
40174 class = typename bsl::enable_if_t<
40176 std::is_constructible<t_TYPE, t_ARGS_01,
40177 t_ARGS_02>::value> >
40178 explicit variant(bsl::in_place_type_t<t_TYPE>,
40179 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40180 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40181 : Variant_Base(
40182 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
40183 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
40184 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02))
40185 {
40186 }
40187
40188 template <class t_TYPE,
40189 class INIT_LIST_TYPE,
40190 class t_ARGS_01,
40191 class t_ARGS_02,
40192 class = typename bsl::enable_if_t<
40194 std::is_constructible<t_TYPE,
40195 std::initializer_list<INIT_LIST_TYPE>&,
40196 t_ARGS_01,
40197 t_ARGS_02>::value> >
40198 explicit variant(bsl::in_place_type_t<t_TYPE>,
40199 std::initializer_list<INIT_LIST_TYPE> il,
40200 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40201 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40202 : Variant_Base(
40203 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
40204 il,
40205 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
40206 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02))
40207 {
40208 }
40209
40210 template <size_t t_INDEX,
40211 class t_ARGS_01,
40212 class t_ARGS_02,
40213 class = typename bsl::enable_if_t<
40214 (t_INDEX < 1 + 2u) &&
40215 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
40216 t_ARGS_01,
40217 t_ARGS_02>::value> >
40218 explicit variant(bsl::in_place_index_t<t_INDEX>,
40219 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40220 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40221 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
40222 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
40223 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02))
40224 {
40225 }
40226
40227 template <size_t t_INDEX,
40228 class INIT_LIST_TYPE,
40229 class t_ARGS_01,
40230 class t_ARGS_02,
40231 class = typename bsl::enable_if_t<
40232 (t_INDEX < 1 + 2u) &&
40233 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
40234 std::initializer_list<INIT_LIST_TYPE>&,
40235 t_ARGS_01,
40236 t_ARGS_02>::value> >
40237 explicit variant(bsl::in_place_index_t<t_INDEX>,
40238 std::initializer_list<INIT_LIST_TYPE> il,
40239 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40240 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40241 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
40242 il,
40243 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
40244 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02))
40245 {
40246 }
40247
40248 template <class FIRST = t_HEAD,
40249 class = typename bsl::enable_if_t<
40250 std::is_default_constructible<FIRST>::value> >
40251 variant(bsl::allocator_arg_t, allocator_type allocator)
40252 : Variant_Base(bsl::allocator_arg_t(), allocator)
40253 {
40254 }
40255
40256 template <
40257 class FIRST = t_HEAD,
40258 class = typename bsl::enable_if_t<
40259 BloombergLP::bslstl::
40260 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
40261 t_TAIL_02>::value> >
40262 variant(bsl::allocator_arg_t,
40263 allocator_type allocator,
40264 const variant& original)
40265 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
40266 {
40267 }
40268 template <
40269 class FIRST = t_HEAD,
40270 class = typename bsl::enable_if_t<
40271 BloombergLP::bslstl::
40272 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
40273 t_TAIL_02>::value> >
40274 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
40275 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
40276 {
40277 }
40278
40279#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
40280 template <class t_STD_VARIANT>
40281 explicit variant(
40282 bsl::allocator_arg_t,
40283 allocator_type allocator,
40284 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
40286 : Variant_Base(bsl::allocator_arg_t(),
40287 allocator,
40288 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
40289 original.index())
40290 {
40291 if (!valueless_by_exception()) {
40292 BloombergLP::bslstl::Variant_ImpUtil::
40293 ConstructFromStdVisitor<variant, decltype(original)>
40294 visitor(*this, original);
40295 BSLSTL_VARIANT_VISITID(void, visitor, *this);
40296 }
40297 }
40298#endif
40299
40300 template <class t_TYPE>
40301 variant(
40302 bsl::allocator_arg_t,
40303 allocator_type allocator,
40306
40307 template <class t_TYPE,
40308 class t_ARGS_01,
40309 class t_ARGS_02,
40310 class = typename bsl::enable_if_t<
40312 std::is_constructible<t_TYPE, t_ARGS_01,
40313 t_ARGS_02>::value> >
40314 explicit variant(bsl::allocator_arg_t,
40315 allocator_type allocator,
40317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40319 : Variant_Base(
40320 bsl::allocator_arg_t{}
40321,
40322 allocator,
40323 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
40324 std::forward<t_ARGS_01>(args_01),
40325 std::forward<t_ARGS_02>(args_02))
40326 {
40327 }
40328
40329 template <class t_TYPE,
40330 class INIT_LIST_TYPE,
40331 class t_ARGS_01,
40332 class t_ARGS_02,
40333 class = typename bsl::enable_if_t<
40335 std::is_constructible<t_TYPE,
40336 std::initializer_list<INIT_LIST_TYPE>&,
40337 t_ARGS_01,
40338 t_ARGS_02>::value> >
40339 explicit variant(bsl::allocator_arg_t,
40340 allocator_type allocator,
40342 std::initializer_list<INIT_LIST_TYPE> il,
40343 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40344 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40345 : Variant_Base(
40346 bsl::allocator_arg_t{}
40347,
40348 allocator,
40349 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
40350 il,
40351 std::forward<t_ARGS_01>(args_01),
40352 std::forward<t_ARGS_02>(args_02))
40353 {
40354 }
40355
40356 template <size_t t_INDEX,
40357 class t_ARGS_01,
40358 class t_ARGS_02,
40359 class = typename bsl::enable_if_t<
40360 (t_INDEX < 1 + 2u) &&
40361 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
40362 t_ARGS_01,
40363 t_ARGS_02>::value> >
40364 explicit variant(bsl::allocator_arg_t,
40365 allocator_type allocator,
40367 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40368 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40369 : Variant_Base(bsl::allocator_arg_t{}
40370,
40371 allocator,
40372 bsl::in_place_index_t<t_INDEX>(),
40373 std::forward<t_ARGS_01>(args_01),
40374 std::forward<t_ARGS_02>(args_02))
40375 {
40376 }
40377
40378 template <size_t t_INDEX,
40379 class INIT_LIST_TYPE,
40380 class t_ARGS_01,
40381 class t_ARGS_02,
40382 class = typename bsl::enable_if_t<
40383 (t_INDEX < 1 + 2u) &&
40384 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
40385 std::initializer_list<INIT_LIST_TYPE>&,
40386 t_ARGS_01,
40387 t_ARGS_02>::value> >
40388 explicit variant(bsl::allocator_arg_t,
40389 allocator_type allocator,
40391 std::initializer_list<INIT_LIST_TYPE> il,
40392 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
40393 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
40394 : Variant_Base(bsl::allocator_arg_t{}
40395,
40396 allocator,
40397 bsl::in_place_index_t<t_INDEX>(),
40398 il,
40399 std::forward<t_ARGS_01>(args_01),
40400 std::forward<t_ARGS_02>(args_02))
40401 {
40402 }
40403
40404#else
40405
40406 variant();
40407
40408 variant(const variant& original);
40409
40410 variant(BloombergLP::bslmf::MovableRef<variant> original);
40411
40412 template <class t_TYPE>
40413 variant(const t_TYPE& value,
40415
40416 template <class t_TYPE>
40417 explicit variant(bsl::in_place_type_t<t_TYPE>,
40419
40420 template <class t_TYPE, class t_ARG_01>
40421 explicit variant(bsl::in_place_type_t<t_TYPE>,
40422 const t_ARG_01& arg_01,
40424
40425 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
40426 explicit variant(bsl::in_place_type_t<t_TYPE>,
40427 const t_ARG_01& arg_01,
40428 const t_ARG_02& arg_02,
40430
40431 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
40432 explicit variant(bsl::in_place_type_t<t_TYPE>,
40433 const t_ARG_01& arg_01,
40434 const t_ARG_02& arg_02,
40435 const t_ARG_03& arg_03,
40437
40438 template <class t_TYPE,
40439 class t_ARG_01,
40440 class t_ARG_02,
40441 class t_ARG_03,
40442 class t_ARG_04>
40443 explicit variant(bsl::in_place_type_t<t_TYPE>,
40444 const t_ARG_01& arg_01,
40445 const t_ARG_02& arg_02,
40446 const t_ARG_03& arg_03,
40447 const t_ARG_04& arg_04,
40449
40450 template <class t_TYPE,
40451 class t_ARG_01,
40452 class t_ARG_02,
40453 class t_ARG_03,
40454 class t_ARG_04,
40455 class t_ARG_05>
40456 explicit variant(bsl::in_place_type_t<t_TYPE>,
40457 const t_ARG_01& arg_01,
40458 const t_ARG_02& arg_02,
40459 const t_ARG_03& arg_03,
40460 const t_ARG_04& arg_04,
40461 const t_ARG_05& arg_05,
40463
40464 template <class t_TYPE,
40465 class t_ARG_01,
40466 class t_ARG_02,
40467 class t_ARG_03,
40468 class t_ARG_04,
40469 class t_ARG_05,
40470 class t_ARG_06>
40471 explicit variant(bsl::in_place_type_t<t_TYPE>,
40472 const t_ARG_01& arg_01,
40473 const t_ARG_02& arg_02,
40474 const t_ARG_03& arg_03,
40475 const t_ARG_04& arg_04,
40476 const t_ARG_05& arg_05,
40477 const t_ARG_06& arg_06,
40479
40480 template <class t_TYPE,
40481 class t_ARG_01,
40482 class t_ARG_02,
40483 class t_ARG_03,
40484 class t_ARG_04,
40485 class t_ARG_05,
40486 class t_ARG_06,
40487 class t_ARG_07>
40488 explicit variant(bsl::in_place_type_t<t_TYPE>,
40489 const t_ARG_01& arg_01,
40490 const t_ARG_02& arg_02,
40491 const t_ARG_03& arg_03,
40492 const t_ARG_04& arg_04,
40493 const t_ARG_05& arg_05,
40494 const t_ARG_06& arg_06,
40495 const t_ARG_07& arg_07,
40497
40498 template <class t_TYPE,
40499 class t_ARG_01,
40500 class t_ARG_02,
40501 class t_ARG_03,
40502 class t_ARG_04,
40503 class t_ARG_05,
40504 class t_ARG_06,
40505 class t_ARG_07,
40506 class t_ARG_08>
40507 explicit variant(bsl::in_place_type_t<t_TYPE>,
40508 const t_ARG_01& arg_01,
40509 const t_ARG_02& arg_02,
40510 const t_ARG_03& arg_03,
40511 const t_ARG_04& arg_04,
40512 const t_ARG_05& arg_05,
40513 const t_ARG_06& arg_06,
40514 const t_ARG_07& arg_07,
40515 const t_ARG_08& arg_08,
40517
40518 template <class t_TYPE,
40519 class t_ARG_01,
40520 class t_ARG_02,
40521 class t_ARG_03,
40522 class t_ARG_04,
40523 class t_ARG_05,
40524 class t_ARG_06,
40525 class t_ARG_07,
40526 class t_ARG_08,
40527 class t_ARG_09>
40528 explicit variant(bsl::in_place_type_t<t_TYPE>,
40529 const t_ARG_01& arg_01,
40530 const t_ARG_02& arg_02,
40531 const t_ARG_03& arg_03,
40532 const t_ARG_04& arg_04,
40533 const t_ARG_05& arg_05,
40534 const t_ARG_06& arg_06,
40535 const t_ARG_07& arg_07,
40536 const t_ARG_08& arg_08,
40537 const t_ARG_09& arg_09,
40539
40540 template <class t_TYPE,
40541 class t_ARG_01,
40542 class t_ARG_02,
40543 class t_ARG_03,
40544 class t_ARG_04,
40545 class t_ARG_05,
40546 class t_ARG_06,
40547 class t_ARG_07,
40548 class t_ARG_08,
40549 class t_ARG_09,
40550 class t_ARG_10>
40551 explicit variant(bsl::in_place_type_t<t_TYPE>,
40552 const t_ARG_01& arg_01,
40553 const t_ARG_02& arg_02,
40554 const t_ARG_03& arg_03,
40555 const t_ARG_04& arg_04,
40556 const t_ARG_05& arg_05,
40557 const t_ARG_06& arg_06,
40558 const t_ARG_07& arg_07,
40559 const t_ARG_08& arg_08,
40560 const t_ARG_09& arg_09,
40561 const t_ARG_10& arg_10,
40563
40564 template <size_t t_INDEX>
40565 explicit variant(bsl::in_place_index_t<t_INDEX>);
40566
40567 template <size_t t_INDEX, class t_ARG_01>
40568 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
40569
40570 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
40571 explicit variant(bsl::in_place_index_t<t_INDEX>,
40572 const t_ARG_01& arg_01,
40573 const t_ARG_02& arg_02);
40574
40575 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
40576 explicit variant(bsl::in_place_index_t<t_INDEX>,
40577 const t_ARG_01& arg_01,
40578 const t_ARG_02& arg_02,
40579 const t_ARG_03& arg_03);
40580
40581 template <size_t t_INDEX,
40582 class t_ARG_01,
40583 class t_ARG_02,
40584 class t_ARG_03,
40585 class t_ARG_04>
40586 explicit variant(bsl::in_place_index_t<t_INDEX>,
40587 const t_ARG_01& arg_01,
40588 const t_ARG_02& arg_02,
40589 const t_ARG_03& arg_03,
40590 const t_ARG_04& arg_04);
40591
40592 template <size_t t_INDEX,
40593 class t_ARG_01,
40594 class t_ARG_02,
40595 class t_ARG_03,
40596 class t_ARG_04,
40597 class t_ARG_05>
40598 explicit variant(bsl::in_place_index_t<t_INDEX>,
40599 const t_ARG_01& arg_01,
40600 const t_ARG_02& arg_02,
40601 const t_ARG_03& arg_03,
40602 const t_ARG_04& arg_04,
40603 const t_ARG_05& arg_05);
40604
40605 template <size_t t_INDEX,
40606 class t_ARG_01,
40607 class t_ARG_02,
40608 class t_ARG_03,
40609 class t_ARG_04,
40610 class t_ARG_05,
40611 class t_ARG_06>
40612 explicit variant(bsl::in_place_index_t<t_INDEX>,
40613 const t_ARG_01& arg_01,
40614 const t_ARG_02& arg_02,
40615 const t_ARG_03& arg_03,
40616 const t_ARG_04& arg_04,
40617 const t_ARG_05& arg_05,
40618 const t_ARG_06& arg_06);
40619
40620 template <size_t t_INDEX,
40621 class t_ARG_01,
40622 class t_ARG_02,
40623 class t_ARG_03,
40624 class t_ARG_04,
40625 class t_ARG_05,
40626 class t_ARG_06,
40627 class t_ARG_07>
40628 explicit variant(bsl::in_place_index_t<t_INDEX>,
40629 const t_ARG_01& arg_01,
40630 const t_ARG_02& arg_02,
40631 const t_ARG_03& arg_03,
40632 const t_ARG_04& arg_04,
40633 const t_ARG_05& arg_05,
40634 const t_ARG_06& arg_06,
40635 const t_ARG_07& arg_07);
40636
40637 template <size_t t_INDEX,
40638 class t_ARG_01,
40639 class t_ARG_02,
40640 class t_ARG_03,
40641 class t_ARG_04,
40642 class t_ARG_05,
40643 class t_ARG_06,
40644 class t_ARG_07,
40645 class t_ARG_08>
40646 explicit variant(bsl::in_place_index_t<t_INDEX>,
40647 const t_ARG_01& arg_01,
40648 const t_ARG_02& arg_02,
40649 const t_ARG_03& arg_03,
40650 const t_ARG_04& arg_04,
40651 const t_ARG_05& arg_05,
40652 const t_ARG_06& arg_06,
40653 const t_ARG_07& arg_07,
40654 const t_ARG_08& arg_08);
40655
40656 template <size_t t_INDEX,
40657 class t_ARG_01,
40658 class t_ARG_02,
40659 class t_ARG_03,
40660 class t_ARG_04,
40661 class t_ARG_05,
40662 class t_ARG_06,
40663 class t_ARG_07,
40664 class t_ARG_08,
40665 class t_ARG_09>
40666 explicit variant(bsl::in_place_index_t<t_INDEX>,
40667 const t_ARG_01& arg_01,
40668 const t_ARG_02& arg_02,
40669 const t_ARG_03& arg_03,
40670 const t_ARG_04& arg_04,
40671 const t_ARG_05& arg_05,
40672 const t_ARG_06& arg_06,
40673 const t_ARG_07& arg_07,
40674 const t_ARG_08& arg_08,
40675 const t_ARG_09& arg_09);
40676
40677 template <size_t t_INDEX,
40678 class t_ARG_01,
40679 class t_ARG_02,
40680 class t_ARG_03,
40681 class t_ARG_04,
40682 class t_ARG_05,
40683 class t_ARG_06,
40684 class t_ARG_07,
40685 class t_ARG_08,
40686 class t_ARG_09,
40687 class t_ARG_10>
40688 explicit variant(bsl::in_place_index_t<t_INDEX>,
40689 const t_ARG_01& arg_01,
40690 const t_ARG_02& arg_02,
40691 const t_ARG_03& arg_03,
40692 const t_ARG_04& arg_04,
40693 const t_ARG_05& arg_05,
40694 const t_ARG_06& arg_06,
40695 const t_ARG_07& arg_07,
40696 const t_ARG_08& arg_08,
40697 const t_ARG_09& arg_09,
40698 const t_ARG_10& arg_10);
40699
40700 variant(bsl::allocator_arg_t, allocator_type allocator);
40701
40702 variant(bsl::allocator_arg_t,
40703 allocator_type allocator,
40704 const variant& original);
40705 variant(bsl::allocator_arg_t,
40706 allocator_type allocator,
40707 BloombergLP::bslmf::MovableRef<variant> original);
40708
40709 template <class t_TYPE>
40710 variant(
40711 bsl::allocator_arg_t,
40712 allocator_type allocator,
40713 const t_TYPE& value,
40715
40716 template <class t_TYPE>
40717 explicit variant(
40718 bsl::allocator_arg_t,
40719 allocator_type allocator,
40722
40723 template <class t_TYPE, class t_ARG_01>
40724 explicit variant(
40725 bsl::allocator_arg_t,
40726 allocator_type allocator,
40728 const t_ARG_01& arg_01,
40730
40731 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
40732 explicit variant(
40733 bsl::allocator_arg_t,
40734 allocator_type allocator,
40736 const t_ARG_01& arg_01,
40737 const t_ARG_02& arg_02,
40739
40740 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
40741 explicit variant(
40742 bsl::allocator_arg_t,
40743 allocator_type allocator,
40745 const t_ARG_01& arg_01,
40746 const t_ARG_02& arg_02,
40747 const t_ARG_03& arg_03,
40749
40750 template <class t_TYPE,
40751 class t_ARG_01,
40752 class t_ARG_02,
40753 class t_ARG_03,
40754 class t_ARG_04>
40755 explicit variant(bsl::allocator_arg_t,
40756 allocator_type allocator,
40758 const t_ARG_01& arg_01,
40759 const t_ARG_02& arg_02,
40760 const t_ARG_03& arg_03,
40761 const t_ARG_04& arg_04,
40763
40764 template <class t_TYPE,
40765 class t_ARG_01,
40766 class t_ARG_02,
40767 class t_ARG_03,
40768 class t_ARG_04,
40769 class t_ARG_05>
40770 explicit variant(bsl::allocator_arg_t,
40771 allocator_type allocator,
40773 const t_ARG_01& arg_01,
40774 const t_ARG_02& arg_02,
40775 const t_ARG_03& arg_03,
40776 const t_ARG_04& arg_04,
40777 const t_ARG_05& arg_05,
40779
40780 template <class t_TYPE,
40781 class t_ARG_01,
40782 class t_ARG_02,
40783 class t_ARG_03,
40784 class t_ARG_04,
40785 class t_ARG_05,
40786 class t_ARG_06>
40787 explicit variant(bsl::allocator_arg_t,
40788 allocator_type allocator,
40790 const t_ARG_01& arg_01,
40791 const t_ARG_02& arg_02,
40792 const t_ARG_03& arg_03,
40793 const t_ARG_04& arg_04,
40794 const t_ARG_05& arg_05,
40795 const t_ARG_06& arg_06,
40797
40798 template <class t_TYPE,
40799 class t_ARG_01,
40800 class t_ARG_02,
40801 class t_ARG_03,
40802 class t_ARG_04,
40803 class t_ARG_05,
40804 class t_ARG_06,
40805 class t_ARG_07>
40806 explicit variant(bsl::allocator_arg_t,
40807 allocator_type allocator,
40809 const t_ARG_01& arg_01,
40810 const t_ARG_02& arg_02,
40811 const t_ARG_03& arg_03,
40812 const t_ARG_04& arg_04,
40813 const t_ARG_05& arg_05,
40814 const t_ARG_06& arg_06,
40815 const t_ARG_07& arg_07,
40817
40818 template <class t_TYPE,
40819 class t_ARG_01,
40820 class t_ARG_02,
40821 class t_ARG_03,
40822 class t_ARG_04,
40823 class t_ARG_05,
40824 class t_ARG_06,
40825 class t_ARG_07,
40826 class t_ARG_08>
40827 explicit variant(bsl::allocator_arg_t,
40828 allocator_type allocator,
40830 const t_ARG_01& arg_01,
40831 const t_ARG_02& arg_02,
40832 const t_ARG_03& arg_03,
40833 const t_ARG_04& arg_04,
40834 const t_ARG_05& arg_05,
40835 const t_ARG_06& arg_06,
40836 const t_ARG_07& arg_07,
40837 const t_ARG_08& arg_08,
40839
40840 template <class t_TYPE,
40841 class t_ARG_01,
40842 class t_ARG_02,
40843 class t_ARG_03,
40844 class t_ARG_04,
40845 class t_ARG_05,
40846 class t_ARG_06,
40847 class t_ARG_07,
40848 class t_ARG_08,
40849 class t_ARG_09>
40850 explicit variant(bsl::allocator_arg_t,
40851 allocator_type allocator,
40853 const t_ARG_01& arg_01,
40854 const t_ARG_02& arg_02,
40855 const t_ARG_03& arg_03,
40856 const t_ARG_04& arg_04,
40857 const t_ARG_05& arg_05,
40858 const t_ARG_06& arg_06,
40859 const t_ARG_07& arg_07,
40860 const t_ARG_08& arg_08,
40861 const t_ARG_09& arg_09,
40863
40864 template <class t_TYPE,
40865 class t_ARG_01,
40866 class t_ARG_02,
40867 class t_ARG_03,
40868 class t_ARG_04,
40869 class t_ARG_05,
40870 class t_ARG_06,
40871 class t_ARG_07,
40872 class t_ARG_08,
40873 class t_ARG_09,
40874 class t_ARG_10>
40875 explicit variant(bsl::allocator_arg_t,
40876 allocator_type allocator,
40878 const t_ARG_01& arg_01,
40879 const t_ARG_02& arg_02,
40880 const t_ARG_03& arg_03,
40881 const t_ARG_04& arg_04,
40882 const t_ARG_05& arg_05,
40883 const t_ARG_06& arg_06,
40884 const t_ARG_07& arg_07,
40885 const t_ARG_08& arg_08,
40886 const t_ARG_09& arg_09,
40887 const t_ARG_10& arg_10,
40889
40890 template <size_t t_INDEX>
40891 explicit variant(bsl::allocator_arg_t,
40892 allocator_type allocator,
40894
40895 template <size_t t_INDEX, class t_ARG_01>
40896 explicit variant(bsl::allocator_arg_t,
40897 allocator_type allocator,
40899 const t_ARG_01& arg_01);
40900
40901 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
40902 explicit variant(bsl::allocator_arg_t,
40903 allocator_type allocator,
40905 const t_ARG_01& arg_01,
40906 const t_ARG_02& arg_02);
40907
40908 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
40909 explicit variant(bsl::allocator_arg_t,
40910 allocator_type allocator,
40912 const t_ARG_01& arg_01,
40913 const t_ARG_02& arg_02,
40914 const t_ARG_03& arg_03);
40915
40916 template <size_t t_INDEX,
40917 class t_ARG_01,
40918 class t_ARG_02,
40919 class t_ARG_03,
40920 class t_ARG_04>
40921 explicit variant(bsl::allocator_arg_t,
40922 allocator_type allocator,
40924 const t_ARG_01& arg_01,
40925 const t_ARG_02& arg_02,
40926 const t_ARG_03& arg_03,
40927 const t_ARG_04& arg_04);
40928
40929 template <size_t t_INDEX,
40930 class t_ARG_01,
40931 class t_ARG_02,
40932 class t_ARG_03,
40933 class t_ARG_04,
40934 class t_ARG_05>
40935 explicit variant(bsl::allocator_arg_t,
40936 allocator_type allocator,
40938 const t_ARG_01& arg_01,
40939 const t_ARG_02& arg_02,
40940 const t_ARG_03& arg_03,
40941 const t_ARG_04& arg_04,
40942 const t_ARG_05& arg_05);
40943
40944 template <size_t t_INDEX,
40945 class t_ARG_01,
40946 class t_ARG_02,
40947 class t_ARG_03,
40948 class t_ARG_04,
40949 class t_ARG_05,
40950 class t_ARG_06>
40951 explicit variant(bsl::allocator_arg_t,
40952 allocator_type allocator,
40954 const t_ARG_01& arg_01,
40955 const t_ARG_02& arg_02,
40956 const t_ARG_03& arg_03,
40957 const t_ARG_04& arg_04,
40958 const t_ARG_05& arg_05,
40959 const t_ARG_06& arg_06);
40960
40961 template <size_t t_INDEX,
40962 class t_ARG_01,
40963 class t_ARG_02,
40964 class t_ARG_03,
40965 class t_ARG_04,
40966 class t_ARG_05,
40967 class t_ARG_06,
40968 class t_ARG_07>
40969 explicit variant(bsl::allocator_arg_t,
40970 allocator_type allocator,
40972 const t_ARG_01& arg_01,
40973 const t_ARG_02& arg_02,
40974 const t_ARG_03& arg_03,
40975 const t_ARG_04& arg_04,
40976 const t_ARG_05& arg_05,
40977 const t_ARG_06& arg_06,
40978 const t_ARG_07& arg_07);
40979
40980 template <size_t t_INDEX,
40981 class t_ARG_01,
40982 class t_ARG_02,
40983 class t_ARG_03,
40984 class t_ARG_04,
40985 class t_ARG_05,
40986 class t_ARG_06,
40987 class t_ARG_07,
40988 class t_ARG_08>
40989 explicit variant(bsl::allocator_arg_t,
40990 allocator_type allocator,
40992 const t_ARG_01& arg_01,
40993 const t_ARG_02& arg_02,
40994 const t_ARG_03& arg_03,
40995 const t_ARG_04& arg_04,
40996 const t_ARG_05& arg_05,
40997 const t_ARG_06& arg_06,
40998 const t_ARG_07& arg_07,
40999 const t_ARG_08& arg_08);
41000
41001 template <size_t t_INDEX,
41002 class t_ARG_01,
41003 class t_ARG_02,
41004 class t_ARG_03,
41005 class t_ARG_04,
41006 class t_ARG_05,
41007 class t_ARG_06,
41008 class t_ARG_07,
41009 class t_ARG_08,
41010 class t_ARG_09>
41011 explicit variant(bsl::allocator_arg_t,
41012 allocator_type allocator,
41014 const t_ARG_01& arg_01,
41015 const t_ARG_02& arg_02,
41016 const t_ARG_03& arg_03,
41017 const t_ARG_04& arg_04,
41018 const t_ARG_05& arg_05,
41019 const t_ARG_06& arg_06,
41020 const t_ARG_07& arg_07,
41021 const t_ARG_08& arg_08,
41022 const t_ARG_09& arg_09);
41023
41024 template <size_t t_INDEX,
41025 class t_ARG_01,
41026 class t_ARG_02,
41027 class t_ARG_03,
41028 class t_ARG_04,
41029 class t_ARG_05,
41030 class t_ARG_06,
41031 class t_ARG_07,
41032 class t_ARG_08,
41033 class t_ARG_09,
41034 class t_ARG_10>
41035 explicit variant(bsl::allocator_arg_t,
41036 allocator_type allocator,
41038 const t_ARG_01& arg_01,
41039 const t_ARG_02& arg_02,
41040 const t_ARG_03& arg_03,
41041 const t_ARG_04& arg_04,
41042 const t_ARG_05& arg_05,
41043 const t_ARG_06& arg_06,
41044 const t_ARG_07& arg_07,
41045 const t_ARG_08& arg_08,
41046 const t_ARG_09& arg_09,
41047 const t_ARG_10& arg_10);
41048
41049#endif
41050
41051
41052#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
41053 template <class t_TYPE,
41054 class t_ARGS_01,
41055 class t_ARGS_02,
41056 class = typename bsl::enable_if_t<
41058 std::is_constructible<t_TYPE, t_ARGS_01,
41059 t_ARGS_02>::value> >
41060 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41061 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
41062 {
41063 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
41064 Variant_Base::template baseEmplace<index>(
41065 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41066 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02));
41067
41068 return bsl::get<index>(*this);
41069 }
41070
41071 template <class t_TYPE,
41072 class INIT_LIST_TYPE,
41073 class t_ARGS_01,
41074 class t_ARGS_02,
41075 class = typename bsl::enable_if_t<
41077 std::is_constructible<t_TYPE,
41078 std::initializer_list<INIT_LIST_TYPE>&,
41079 t_ARGS_01,
41080 t_ARGS_02>::value> >
41081 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
41082 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41083 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
41084 {
41085 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
41086 Variant_Base::template baseEmplace<index>(
41087 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41088 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02));
41089
41090 return bsl::get<index>(*this);
41091 }
41092
41093 template <size_t t_INDEX,
41094 class t_ARGS_01,
41095 class t_ARGS_02,
41096 class = typename bsl::enable_if_t<
41097 (t_INDEX < 1 + 2u) &&
41098 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
41099 t_ARGS_01,
41100 t_ARGS_02>::value> >
41101 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41102 t_TAIL_02> >::type&
41103 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41104 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
41105 {
41106 Variant_Base::template baseEmplace<t_INDEX>(
41107 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41108 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02));
41109
41110 return bsl::get<t_INDEX>(*this);
41111 }
41112
41113 template <size_t t_INDEX,
41114 class INIT_LIST_TYPE,
41115 class t_ARGS_01,
41116 class t_ARGS_02,
41117 class = typename bsl::enable_if_t<
41118 (t_INDEX < 1 + 2u) &&
41119 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
41120 std::initializer_list<INIT_LIST_TYPE>&,
41121 t_ARGS_01,
41122 t_ARGS_02>::value> >
41123 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41124 t_TAIL_02> >::type&
41125 emplace(std::initializer_list<INIT_LIST_TYPE> il,
41126 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41127 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02)
41128 {
41129 Variant_Base::template baseEmplace<t_INDEX>(
41130 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41131 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02));
41132
41133 return bsl::get<t_INDEX>(*this);
41134 }
41135
41136#else
41137
41138 template <class t_TYPE>
41139 typename bsl::enable_if<
41140 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41141 t_TYPE&>::type
41142 emplace();
41143
41144 template <class t_TYPE, class t_ARG_01>
41145 typename bsl::enable_if<
41146 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41147 t_TYPE&>::type
41148 emplace(const t_ARG_01& arg_01);
41149
41150 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
41151 typename bsl::enable_if<
41152 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41153 t_TYPE&>::type
41154 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
41155
41156 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
41157 typename bsl::enable_if<
41158 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41159 t_TYPE&>::type
41160 emplace(const t_ARG_01& arg_01,
41161 const t_ARG_02& arg_02,
41162 const t_ARG_03& arg_03);
41163
41164 template <class t_TYPE,
41165 class t_ARG_01,
41166 class t_ARG_02,
41167 class t_ARG_03,
41168 class t_ARG_04>
41169 typename bsl::enable_if<
41170 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41171 t_TYPE&>::type
41172 emplace(const t_ARG_01& arg_01,
41173 const t_ARG_02& arg_02,
41174 const t_ARG_03& arg_03,
41175 const t_ARG_04& arg_04);
41176
41177 template <class t_TYPE,
41178 class t_ARG_01,
41179 class t_ARG_02,
41180 class t_ARG_03,
41181 class t_ARG_04,
41182 class t_ARG_05>
41183 typename bsl::enable_if<
41184 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41185 t_TYPE&>::type
41186 emplace(const t_ARG_01& arg_01,
41187 const t_ARG_02& arg_02,
41188 const t_ARG_03& arg_03,
41189 const t_ARG_04& arg_04,
41190 const t_ARG_05& arg_05);
41191
41192 template <class t_TYPE,
41193 class t_ARG_01,
41194 class t_ARG_02,
41195 class t_ARG_03,
41196 class t_ARG_04,
41197 class t_ARG_05,
41198 class t_ARG_06>
41199 typename bsl::enable_if<
41200 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41201 t_TYPE&>::type
41202 emplace(const t_ARG_01& arg_01,
41203 const t_ARG_02& arg_02,
41204 const t_ARG_03& arg_03,
41205 const t_ARG_04& arg_04,
41206 const t_ARG_05& arg_05,
41207 const t_ARG_06& arg_06);
41208
41209 template <class t_TYPE,
41210 class t_ARG_01,
41211 class t_ARG_02,
41212 class t_ARG_03,
41213 class t_ARG_04,
41214 class t_ARG_05,
41215 class t_ARG_06,
41216 class t_ARG_07>
41217 typename bsl::enable_if<
41218 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41219 t_TYPE&>::type
41220 emplace(const t_ARG_01& arg_01,
41221 const t_ARG_02& arg_02,
41222 const t_ARG_03& arg_03,
41223 const t_ARG_04& arg_04,
41224 const t_ARG_05& arg_05,
41225 const t_ARG_06& arg_06,
41226 const t_ARG_07& arg_07);
41227
41228 template <class t_TYPE,
41229 class t_ARG_01,
41230 class t_ARG_02,
41231 class t_ARG_03,
41232 class t_ARG_04,
41233 class t_ARG_05,
41234 class t_ARG_06,
41235 class t_ARG_07,
41236 class t_ARG_08>
41237 typename bsl::enable_if<
41238 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41239 t_TYPE&>::type
41240 emplace(const t_ARG_01& arg_01,
41241 const t_ARG_02& arg_02,
41242 const t_ARG_03& arg_03,
41243 const t_ARG_04& arg_04,
41244 const t_ARG_05& arg_05,
41245 const t_ARG_06& arg_06,
41246 const t_ARG_07& arg_07,
41247 const t_ARG_08& arg_08);
41248
41249 template <class t_TYPE,
41250 class t_ARG_01,
41251 class t_ARG_02,
41252 class t_ARG_03,
41253 class t_ARG_04,
41254 class t_ARG_05,
41255 class t_ARG_06,
41256 class t_ARG_07,
41257 class t_ARG_08,
41258 class t_ARG_09>
41259 typename bsl::enable_if<
41260 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41261 t_TYPE&>::type
41262 emplace(const t_ARG_01& arg_01,
41263 const t_ARG_02& arg_02,
41264 const t_ARG_03& arg_03,
41265 const t_ARG_04& arg_04,
41266 const t_ARG_05& arg_05,
41267 const t_ARG_06& arg_06,
41268 const t_ARG_07& arg_07,
41269 const t_ARG_08& arg_08,
41270 const t_ARG_09& arg_09);
41271
41272 template <class t_TYPE,
41273 class t_ARG_01,
41274 class t_ARG_02,
41275 class t_ARG_03,
41276 class t_ARG_04,
41277 class t_ARG_05,
41278 class t_ARG_06,
41279 class t_ARG_07,
41280 class t_ARG_08,
41281 class t_ARG_09,
41282 class t_ARG_10>
41283 typename bsl::enable_if<
41284 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
41285 t_TYPE&>::type
41286 emplace(const t_ARG_01& arg_01,
41287 const t_ARG_02& arg_02,
41288 const t_ARG_03& arg_03,
41289 const t_ARG_04& arg_04,
41290 const t_ARG_05& arg_05,
41291 const t_ARG_06& arg_06,
41292 const t_ARG_07& arg_07,
41293 const t_ARG_08& arg_08,
41294 const t_ARG_09& arg_09,
41295 const t_ARG_10& arg_10);
41296
41297 template <size_t t_INDEX>
41298 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41299 t_TAIL_02> >::type&
41300 emplace();
41301
41302 template <size_t t_INDEX, class t_ARG_01>
41303 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41304 t_TAIL_02> >::type&
41305 emplace(const t_ARG_01& arg_01);
41306
41307 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
41308 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41309 t_TAIL_02> >::type&
41310 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
41311
41312 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
41313 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41314 t_TAIL_02> >::type&
41315 emplace(const t_ARG_01& arg_01,
41316 const t_ARG_02& arg_02,
41317 const t_ARG_03& arg_03);
41318
41319 template <size_t t_INDEX,
41320 class t_ARG_01,
41321 class t_ARG_02,
41322 class t_ARG_03,
41323 class t_ARG_04>
41324 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41325 t_TAIL_02> >::type&
41326 emplace(const t_ARG_01& arg_01,
41327 const t_ARG_02& arg_02,
41328 const t_ARG_03& arg_03,
41329 const t_ARG_04& arg_04);
41330
41331 template <size_t t_INDEX,
41332 class t_ARG_01,
41333 class t_ARG_02,
41334 class t_ARG_03,
41335 class t_ARG_04,
41336 class t_ARG_05>
41337 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41338 t_TAIL_02> >::type&
41339 emplace(const t_ARG_01& arg_01,
41340 const t_ARG_02& arg_02,
41341 const t_ARG_03& arg_03,
41342 const t_ARG_04& arg_04,
41343 const t_ARG_05& arg_05);
41344
41345 template <size_t t_INDEX,
41346 class t_ARG_01,
41347 class t_ARG_02,
41348 class t_ARG_03,
41349 class t_ARG_04,
41350 class t_ARG_05,
41351 class t_ARG_06>
41352 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41353 t_TAIL_02> >::type&
41354 emplace(const t_ARG_01& arg_01,
41355 const t_ARG_02& arg_02,
41356 const t_ARG_03& arg_03,
41357 const t_ARG_04& arg_04,
41358 const t_ARG_05& arg_05,
41359 const t_ARG_06& arg_06);
41360
41361 template <size_t t_INDEX,
41362 class t_ARG_01,
41363 class t_ARG_02,
41364 class t_ARG_03,
41365 class t_ARG_04,
41366 class t_ARG_05,
41367 class t_ARG_06,
41368 class t_ARG_07>
41369 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41370 t_TAIL_02> >::type&
41371 emplace(const t_ARG_01& arg_01,
41372 const t_ARG_02& arg_02,
41373 const t_ARG_03& arg_03,
41374 const t_ARG_04& arg_04,
41375 const t_ARG_05& arg_05,
41376 const t_ARG_06& arg_06,
41377 const t_ARG_07& arg_07);
41378
41379 template <size_t t_INDEX,
41380 class t_ARG_01,
41381 class t_ARG_02,
41382 class t_ARG_03,
41383 class t_ARG_04,
41384 class t_ARG_05,
41385 class t_ARG_06,
41386 class t_ARG_07,
41387 class t_ARG_08>
41388 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41389 t_TAIL_02> >::type&
41390 emplace(const t_ARG_01& arg_01,
41391 const t_ARG_02& arg_02,
41392 const t_ARG_03& arg_03,
41393 const t_ARG_04& arg_04,
41394 const t_ARG_05& arg_05,
41395 const t_ARG_06& arg_06,
41396 const t_ARG_07& arg_07,
41397 const t_ARG_08& arg_08);
41398
41399 template <size_t t_INDEX,
41400 class t_ARG_01,
41401 class t_ARG_02,
41402 class t_ARG_03,
41403 class t_ARG_04,
41404 class t_ARG_05,
41405 class t_ARG_06,
41406 class t_ARG_07,
41407 class t_ARG_08,
41408 class t_ARG_09>
41409 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41410 t_TAIL_02> >::type&
41411 emplace(const t_ARG_01& arg_01,
41412 const t_ARG_02& arg_02,
41413 const t_ARG_03& arg_03,
41414 const t_ARG_04& arg_04,
41415 const t_ARG_05& arg_05,
41416 const t_ARG_06& arg_06,
41417 const t_ARG_07& arg_07,
41418 const t_ARG_08& arg_08,
41419 const t_ARG_09& arg_09);
41420
41421 template <size_t t_INDEX,
41422 class t_ARG_01,
41423 class t_ARG_02,
41424 class t_ARG_03,
41425 class t_ARG_04,
41426 class t_ARG_05,
41427 class t_ARG_06,
41428 class t_ARG_07,
41429 class t_ARG_08,
41430 class t_ARG_09,
41431 class t_ARG_10>
41432 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
41433 t_TAIL_02> >::type&
41434 emplace(const t_ARG_01& arg_01,
41435 const t_ARG_02& arg_02,
41436 const t_ARG_03& arg_03,
41437 const t_ARG_04& arg_04,
41438 const t_ARG_05& arg_05,
41439 const t_ARG_06& arg_06,
41440 const t_ARG_07& arg_07,
41441 const t_ARG_08& arg_08,
41442 const t_ARG_09& arg_09,
41443 const t_ARG_10& arg_10);
41444#endif
41445
41446#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
41447 variant& operator=(const variant& rhs) = default;
41448
41449 variant& operator=(variant&& rhs) = default;
41450
41451 template <class t_TYPE>
41452 typename bsl::enable_if<
41453 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
41454 variant&>::type
41455 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
41456 {
41457 const size_t altIndex =
41458 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
41459
41460 if (index() == altIndex) {
41461 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
41462 value);
41463 }
41464 else {
41465 Variant_Base::template baseEmplace<altIndex>(
41466 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
41467 }
41468
41469 return *this;
41470 }
41471#else
41472 variant& operator=(const variant& rhs);
41473
41474 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
41475
41476 template <class t_TYPE>
41477 typename bsl::enable_if<
41478 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
41479 variant&>::type
41480 operator=(const t_TYPE& value);
41481
41482#endif
41483
41484 void swap(variant& other);
41485
41486#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
41487 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
41488 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
41489 t_TAIL_02>::value,
41490 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
41491#endif
41492 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
41493 {
41494 return allocator_type(Variant_Base::AllocBase::mechanism());
41495 }
41496
41497
41498 size_t index() const BSLS_KEYWORD_NOEXCEPT;
41499
41500 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
41501};
41502#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 2
41503
41504#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 3
41505template <class t_HEAD, class t_TAIL_01,
41506 class t_TAIL_02,
41507 class t_TAIL_03>
41508class variant<t_HEAD, t_TAIL_01,
41509 t_TAIL_02,
41510 t_TAIL_03>
41511: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
41512 t_TAIL_02,
41513 t_TAIL_03>
41514#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
41515,
41516 private BloombergLP::bslstl::Variant_SMFBase<
41517 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
41518 t_TAIL_01,
41519 t_TAIL_02,
41520 t_TAIL_03>::value,
41521 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
41522 t_TAIL_01,
41523 t_TAIL_02,
41524 t_TAIL_03>::value,
41525 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
41526 t_TAIL_01,
41527 t_TAIL_02,
41528 t_TAIL_03>::value &&
41529 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
41530 t_TAIL_01,
41531 t_TAIL_02,
41532 t_TAIL_03>::value,
41533 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
41534 t_TAIL_01,
41535 t_TAIL_02,
41536 t_TAIL_03>::value &&
41537 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
41538 t_TAIL_01,
41539 t_TAIL_02,
41540 t_TAIL_03>::value>
41541#endif
41542{
41543 private:
41544 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
41545 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
41546 t_TAIL_02,
41547 t_TAIL_03> Variant_Base;
41548 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
41549 t_TAIL_02,
41550 t_TAIL_03>
41551 Variant_Union;
41552
41553 friend struct BloombergLP::bslstl::Variant_ImpUtil;
41554
41555 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
41556 t_TAIL_02,
41557 t_TAIL_03>;
41558
41559 public:
41561 variant,
41562 BloombergLP::bslma::UsesBslmaAllocator,
41563 (BloombergLP::bslstl::
41564 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
41565 t_TAIL_02,
41566 t_TAIL_03>::value));
41568 variant,
41569 BloombergLP::bslmf::UsesAllocatorArgT,
41570 (BloombergLP::bslstl::
41571 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
41572 t_TAIL_02,
41573 t_TAIL_03>::value));
41575 variant,
41576 BloombergLP::bslmf::IsBitwiseMoveable,
41577 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
41578 t_TAIL_01,
41579 t_TAIL_02,
41580 t_TAIL_03>::value));
41581
41582
41583 typedef typename Variant_Base::allocator_type allocator_type;
41584
41585
41586#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
41587 template <class t_FIRST_ALT = t_HEAD,
41588 class = typename bsl::enable_if_t<
41589 std::is_default_constructible<t_FIRST_ALT>::value> >
41590 variant()
41591 : Variant_Base()
41592 {
41593 }
41594
41595 variant(const variant& original) = default;
41596
41597 variant(variant&& original) = default;
41598
41599#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
41600 template <class t_STD_VARIANT>
41601 explicit variant(
41602 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
41604 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
41605 original.index())
41606 {
41607 if (!valueless_by_exception()) {
41608 BloombergLP::bslstl::Variant_ImpUtil::
41609 ConstructFromStdVisitor<variant, decltype(original)>
41610 visitor(*this, original);
41611 BSLSTL_VARIANT_VISITID(void, visitor, *this);
41612 }
41613 }
41614#endif
41615
41616 template <class t_TYPE>
41617 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
41619
41620 template <class t_TYPE,
41621 class t_ARGS_01,
41622 class t_ARGS_02,
41623 class t_ARGS_03,
41624 class = typename bsl::enable_if_t<
41626 std::is_constructible<t_TYPE, t_ARGS_01,
41627 t_ARGS_02,
41628 t_ARGS_03>::value> >
41629 explicit variant(bsl::in_place_type_t<t_TYPE>,
41630 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41631 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41632 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41633 : Variant_Base(
41634 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
41635 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41636 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
41637 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03))
41638 {
41639 }
41640
41641 template <class t_TYPE,
41642 class INIT_LIST_TYPE,
41643 class t_ARGS_01,
41644 class t_ARGS_02,
41645 class t_ARGS_03,
41646 class = typename bsl::enable_if_t<
41648 std::is_constructible<t_TYPE,
41649 std::initializer_list<INIT_LIST_TYPE>&,
41650 t_ARGS_01,
41651 t_ARGS_02,
41652 t_ARGS_03>::value> >
41653 explicit variant(bsl::in_place_type_t<t_TYPE>,
41654 std::initializer_list<INIT_LIST_TYPE> il,
41655 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41656 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41657 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41658 : Variant_Base(
41659 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
41660 il,
41661 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41662 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
41663 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03))
41664 {
41665 }
41666
41667 template <size_t t_INDEX,
41668 class t_ARGS_01,
41669 class t_ARGS_02,
41670 class t_ARGS_03,
41671 class = typename bsl::enable_if_t<
41672 (t_INDEX < 1 + 3u) &&
41673 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
41674 t_ARGS_01,
41675 t_ARGS_02,
41676 t_ARGS_03>::value> >
41677 explicit variant(bsl::in_place_index_t<t_INDEX>,
41678 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41679 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41680 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41681 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
41682 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41683 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
41684 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03))
41685 {
41686 }
41687
41688 template <size_t t_INDEX,
41689 class INIT_LIST_TYPE,
41690 class t_ARGS_01,
41691 class t_ARGS_02,
41692 class t_ARGS_03,
41693 class = typename bsl::enable_if_t<
41694 (t_INDEX < 1 + 3u) &&
41695 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
41696 std::initializer_list<INIT_LIST_TYPE>&,
41697 t_ARGS_01,
41698 t_ARGS_02,
41699 t_ARGS_03>::value> >
41700 explicit variant(bsl::in_place_index_t<t_INDEX>,
41701 std::initializer_list<INIT_LIST_TYPE> il,
41702 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41703 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41704 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41705 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
41706 il,
41707 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
41708 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
41709 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03))
41710 {
41711 }
41712
41713 template <class FIRST = t_HEAD,
41714 class = typename bsl::enable_if_t<
41715 std::is_default_constructible<FIRST>::value> >
41716 variant(bsl::allocator_arg_t, allocator_type allocator)
41717 : Variant_Base(bsl::allocator_arg_t(), allocator)
41718 {
41719 }
41720
41721 template <
41722 class FIRST = t_HEAD,
41723 class = typename bsl::enable_if_t<
41724 BloombergLP::bslstl::
41725 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
41726 t_TAIL_02,
41727 t_TAIL_03>::value> >
41728 variant(bsl::allocator_arg_t,
41729 allocator_type allocator,
41730 const variant& original)
41731 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
41732 {
41733 }
41734 template <
41735 class FIRST = t_HEAD,
41736 class = typename bsl::enable_if_t<
41737 BloombergLP::bslstl::
41738 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
41739 t_TAIL_02,
41740 t_TAIL_03>::value> >
41741 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
41742 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
41743 {
41744 }
41745
41746#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
41747 template <class t_STD_VARIANT>
41748 explicit variant(
41749 bsl::allocator_arg_t,
41750 allocator_type allocator,
41751 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
41753 : Variant_Base(bsl::allocator_arg_t(),
41754 allocator,
41755 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
41756 original.index())
41757 {
41758 if (!valueless_by_exception()) {
41759 BloombergLP::bslstl::Variant_ImpUtil::
41760 ConstructFromStdVisitor<variant, decltype(original)>
41761 visitor(*this, original);
41762 BSLSTL_VARIANT_VISITID(void, visitor, *this);
41763 }
41764 }
41765#endif
41766
41767 template <class t_TYPE>
41768 variant(
41769 bsl::allocator_arg_t,
41770 allocator_type allocator,
41773
41774 template <class t_TYPE,
41775 class t_ARGS_01,
41776 class t_ARGS_02,
41777 class t_ARGS_03,
41778 class = typename bsl::enable_if_t<
41780 std::is_constructible<t_TYPE, t_ARGS_01,
41781 t_ARGS_02,
41782 t_ARGS_03>::value> >
41783 explicit variant(bsl::allocator_arg_t,
41784 allocator_type allocator,
41786 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41787 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41788 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41789 : Variant_Base(
41790 bsl::allocator_arg_t{}
41791,
41792 allocator,
41793 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
41794 std::forward<t_ARGS_01>(args_01),
41795 std::forward<t_ARGS_02>(args_02),
41796 std::forward<t_ARGS_03>(args_03))
41797 {
41798 }
41799
41800 template <class t_TYPE,
41801 class INIT_LIST_TYPE,
41802 class t_ARGS_01,
41803 class t_ARGS_02,
41804 class t_ARGS_03,
41805 class = typename bsl::enable_if_t<
41807 std::is_constructible<t_TYPE,
41808 std::initializer_list<INIT_LIST_TYPE>&,
41809 t_ARGS_01,
41810 t_ARGS_02,
41811 t_ARGS_03>::value> >
41812 explicit variant(bsl::allocator_arg_t,
41813 allocator_type allocator,
41815 std::initializer_list<INIT_LIST_TYPE> il,
41816 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41817 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41818 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41819 : Variant_Base(
41820 bsl::allocator_arg_t{}
41821,
41822 allocator,
41823 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
41824 il,
41825 std::forward<t_ARGS_01>(args_01),
41826 std::forward<t_ARGS_02>(args_02),
41827 std::forward<t_ARGS_03>(args_03))
41828 {
41829 }
41830
41831 template <size_t t_INDEX,
41832 class t_ARGS_01,
41833 class t_ARGS_02,
41834 class t_ARGS_03,
41835 class = typename bsl::enable_if_t<
41836 (t_INDEX < 1 + 3u) &&
41837 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
41838 t_ARGS_01,
41839 t_ARGS_02,
41840 t_ARGS_03>::value> >
41841 explicit variant(bsl::allocator_arg_t,
41842 allocator_type allocator,
41844 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41845 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41846 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41847 : Variant_Base(bsl::allocator_arg_t{}
41848,
41849 allocator,
41850 bsl::in_place_index_t<t_INDEX>(),
41851 std::forward<t_ARGS_01>(args_01),
41852 std::forward<t_ARGS_02>(args_02),
41853 std::forward<t_ARGS_03>(args_03))
41854 {
41855 }
41856
41857 template <size_t t_INDEX,
41858 class INIT_LIST_TYPE,
41859 class t_ARGS_01,
41860 class t_ARGS_02,
41861 class t_ARGS_03,
41862 class = typename bsl::enable_if_t<
41863 (t_INDEX < 1 + 3u) &&
41864 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
41865 std::initializer_list<INIT_LIST_TYPE>&,
41866 t_ARGS_01,
41867 t_ARGS_02,
41868 t_ARGS_03>::value> >
41869 explicit variant(bsl::allocator_arg_t,
41870 allocator_type allocator,
41872 std::initializer_list<INIT_LIST_TYPE> il,
41873 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
41874 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
41875 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
41876 : Variant_Base(bsl::allocator_arg_t{}
41877,
41878 allocator,
41879 bsl::in_place_index_t<t_INDEX>(),
41880 il,
41881 std::forward<t_ARGS_01>(args_01),
41882 std::forward<t_ARGS_02>(args_02),
41883 std::forward<t_ARGS_03>(args_03))
41884 {
41885 }
41886
41887#else
41888
41889 variant();
41890
41891 variant(const variant& original);
41892
41893 variant(BloombergLP::bslmf::MovableRef<variant> original);
41894
41895 template <class t_TYPE>
41896 variant(const t_TYPE& value,
41898
41899 template <class t_TYPE>
41900 explicit variant(bsl::in_place_type_t<t_TYPE>,
41902
41903 template <class t_TYPE, class t_ARG_01>
41904 explicit variant(bsl::in_place_type_t<t_TYPE>,
41905 const t_ARG_01& arg_01,
41907
41908 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
41909 explicit variant(bsl::in_place_type_t<t_TYPE>,
41910 const t_ARG_01& arg_01,
41911 const t_ARG_02& arg_02,
41913
41914 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
41915 explicit variant(bsl::in_place_type_t<t_TYPE>,
41916 const t_ARG_01& arg_01,
41917 const t_ARG_02& arg_02,
41918 const t_ARG_03& arg_03,
41920
41921 template <class t_TYPE,
41922 class t_ARG_01,
41923 class t_ARG_02,
41924 class t_ARG_03,
41925 class t_ARG_04>
41926 explicit variant(bsl::in_place_type_t<t_TYPE>,
41927 const t_ARG_01& arg_01,
41928 const t_ARG_02& arg_02,
41929 const t_ARG_03& arg_03,
41930 const t_ARG_04& arg_04,
41932
41933 template <class t_TYPE,
41934 class t_ARG_01,
41935 class t_ARG_02,
41936 class t_ARG_03,
41937 class t_ARG_04,
41938 class t_ARG_05>
41939 explicit variant(bsl::in_place_type_t<t_TYPE>,
41940 const t_ARG_01& arg_01,
41941 const t_ARG_02& arg_02,
41942 const t_ARG_03& arg_03,
41943 const t_ARG_04& arg_04,
41944 const t_ARG_05& arg_05,
41946
41947 template <class t_TYPE,
41948 class t_ARG_01,
41949 class t_ARG_02,
41950 class t_ARG_03,
41951 class t_ARG_04,
41952 class t_ARG_05,
41953 class t_ARG_06>
41954 explicit variant(bsl::in_place_type_t<t_TYPE>,
41955 const t_ARG_01& arg_01,
41956 const t_ARG_02& arg_02,
41957 const t_ARG_03& arg_03,
41958 const t_ARG_04& arg_04,
41959 const t_ARG_05& arg_05,
41960 const t_ARG_06& arg_06,
41962
41963 template <class t_TYPE,
41964 class t_ARG_01,
41965 class t_ARG_02,
41966 class t_ARG_03,
41967 class t_ARG_04,
41968 class t_ARG_05,
41969 class t_ARG_06,
41970 class t_ARG_07>
41971 explicit variant(bsl::in_place_type_t<t_TYPE>,
41972 const t_ARG_01& arg_01,
41973 const t_ARG_02& arg_02,
41974 const t_ARG_03& arg_03,
41975 const t_ARG_04& arg_04,
41976 const t_ARG_05& arg_05,
41977 const t_ARG_06& arg_06,
41978 const t_ARG_07& arg_07,
41980
41981 template <class t_TYPE,
41982 class t_ARG_01,
41983 class t_ARG_02,
41984 class t_ARG_03,
41985 class t_ARG_04,
41986 class t_ARG_05,
41987 class t_ARG_06,
41988 class t_ARG_07,
41989 class t_ARG_08>
41990 explicit variant(bsl::in_place_type_t<t_TYPE>,
41991 const t_ARG_01& arg_01,
41992 const t_ARG_02& arg_02,
41993 const t_ARG_03& arg_03,
41994 const t_ARG_04& arg_04,
41995 const t_ARG_05& arg_05,
41996 const t_ARG_06& arg_06,
41997 const t_ARG_07& arg_07,
41998 const t_ARG_08& arg_08,
42000
42001 template <class t_TYPE,
42002 class t_ARG_01,
42003 class t_ARG_02,
42004 class t_ARG_03,
42005 class t_ARG_04,
42006 class t_ARG_05,
42007 class t_ARG_06,
42008 class t_ARG_07,
42009 class t_ARG_08,
42010 class t_ARG_09>
42011 explicit variant(bsl::in_place_type_t<t_TYPE>,
42012 const t_ARG_01& arg_01,
42013 const t_ARG_02& arg_02,
42014 const t_ARG_03& arg_03,
42015 const t_ARG_04& arg_04,
42016 const t_ARG_05& arg_05,
42017 const t_ARG_06& arg_06,
42018 const t_ARG_07& arg_07,
42019 const t_ARG_08& arg_08,
42020 const t_ARG_09& arg_09,
42022
42023 template <class t_TYPE,
42024 class t_ARG_01,
42025 class t_ARG_02,
42026 class t_ARG_03,
42027 class t_ARG_04,
42028 class t_ARG_05,
42029 class t_ARG_06,
42030 class t_ARG_07,
42031 class t_ARG_08,
42032 class t_ARG_09,
42033 class t_ARG_10>
42034 explicit variant(bsl::in_place_type_t<t_TYPE>,
42035 const t_ARG_01& arg_01,
42036 const t_ARG_02& arg_02,
42037 const t_ARG_03& arg_03,
42038 const t_ARG_04& arg_04,
42039 const t_ARG_05& arg_05,
42040 const t_ARG_06& arg_06,
42041 const t_ARG_07& arg_07,
42042 const t_ARG_08& arg_08,
42043 const t_ARG_09& arg_09,
42044 const t_ARG_10& arg_10,
42046
42047 template <size_t t_INDEX>
42048 explicit variant(bsl::in_place_index_t<t_INDEX>);
42049
42050 template <size_t t_INDEX, class t_ARG_01>
42051 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
42052
42053 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
42054 explicit variant(bsl::in_place_index_t<t_INDEX>,
42055 const t_ARG_01& arg_01,
42056 const t_ARG_02& arg_02);
42057
42058 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
42059 explicit variant(bsl::in_place_index_t<t_INDEX>,
42060 const t_ARG_01& arg_01,
42061 const t_ARG_02& arg_02,
42062 const t_ARG_03& arg_03);
42063
42064 template <size_t t_INDEX,
42065 class t_ARG_01,
42066 class t_ARG_02,
42067 class t_ARG_03,
42068 class t_ARG_04>
42069 explicit variant(bsl::in_place_index_t<t_INDEX>,
42070 const t_ARG_01& arg_01,
42071 const t_ARG_02& arg_02,
42072 const t_ARG_03& arg_03,
42073 const t_ARG_04& arg_04);
42074
42075 template <size_t t_INDEX,
42076 class t_ARG_01,
42077 class t_ARG_02,
42078 class t_ARG_03,
42079 class t_ARG_04,
42080 class t_ARG_05>
42081 explicit variant(bsl::in_place_index_t<t_INDEX>,
42082 const t_ARG_01& arg_01,
42083 const t_ARG_02& arg_02,
42084 const t_ARG_03& arg_03,
42085 const t_ARG_04& arg_04,
42086 const t_ARG_05& arg_05);
42087
42088 template <size_t t_INDEX,
42089 class t_ARG_01,
42090 class t_ARG_02,
42091 class t_ARG_03,
42092 class t_ARG_04,
42093 class t_ARG_05,
42094 class t_ARG_06>
42095 explicit variant(bsl::in_place_index_t<t_INDEX>,
42096 const t_ARG_01& arg_01,
42097 const t_ARG_02& arg_02,
42098 const t_ARG_03& arg_03,
42099 const t_ARG_04& arg_04,
42100 const t_ARG_05& arg_05,
42101 const t_ARG_06& arg_06);
42102
42103 template <size_t t_INDEX,
42104 class t_ARG_01,
42105 class t_ARG_02,
42106 class t_ARG_03,
42107 class t_ARG_04,
42108 class t_ARG_05,
42109 class t_ARG_06,
42110 class t_ARG_07>
42111 explicit variant(bsl::in_place_index_t<t_INDEX>,
42112 const t_ARG_01& arg_01,
42113 const t_ARG_02& arg_02,
42114 const t_ARG_03& arg_03,
42115 const t_ARG_04& arg_04,
42116 const t_ARG_05& arg_05,
42117 const t_ARG_06& arg_06,
42118 const t_ARG_07& arg_07);
42119
42120 template <size_t t_INDEX,
42121 class t_ARG_01,
42122 class t_ARG_02,
42123 class t_ARG_03,
42124 class t_ARG_04,
42125 class t_ARG_05,
42126 class t_ARG_06,
42127 class t_ARG_07,
42128 class t_ARG_08>
42129 explicit variant(bsl::in_place_index_t<t_INDEX>,
42130 const t_ARG_01& arg_01,
42131 const t_ARG_02& arg_02,
42132 const t_ARG_03& arg_03,
42133 const t_ARG_04& arg_04,
42134 const t_ARG_05& arg_05,
42135 const t_ARG_06& arg_06,
42136 const t_ARG_07& arg_07,
42137 const t_ARG_08& arg_08);
42138
42139 template <size_t t_INDEX,
42140 class t_ARG_01,
42141 class t_ARG_02,
42142 class t_ARG_03,
42143 class t_ARG_04,
42144 class t_ARG_05,
42145 class t_ARG_06,
42146 class t_ARG_07,
42147 class t_ARG_08,
42148 class t_ARG_09>
42149 explicit variant(bsl::in_place_index_t<t_INDEX>,
42150 const t_ARG_01& arg_01,
42151 const t_ARG_02& arg_02,
42152 const t_ARG_03& arg_03,
42153 const t_ARG_04& arg_04,
42154 const t_ARG_05& arg_05,
42155 const t_ARG_06& arg_06,
42156 const t_ARG_07& arg_07,
42157 const t_ARG_08& arg_08,
42158 const t_ARG_09& arg_09);
42159
42160 template <size_t t_INDEX,
42161 class t_ARG_01,
42162 class t_ARG_02,
42163 class t_ARG_03,
42164 class t_ARG_04,
42165 class t_ARG_05,
42166 class t_ARG_06,
42167 class t_ARG_07,
42168 class t_ARG_08,
42169 class t_ARG_09,
42170 class t_ARG_10>
42171 explicit variant(bsl::in_place_index_t<t_INDEX>,
42172 const t_ARG_01& arg_01,
42173 const t_ARG_02& arg_02,
42174 const t_ARG_03& arg_03,
42175 const t_ARG_04& arg_04,
42176 const t_ARG_05& arg_05,
42177 const t_ARG_06& arg_06,
42178 const t_ARG_07& arg_07,
42179 const t_ARG_08& arg_08,
42180 const t_ARG_09& arg_09,
42181 const t_ARG_10& arg_10);
42182
42183 variant(bsl::allocator_arg_t, allocator_type allocator);
42184
42185 variant(bsl::allocator_arg_t,
42186 allocator_type allocator,
42187 const variant& original);
42188 variant(bsl::allocator_arg_t,
42189 allocator_type allocator,
42190 BloombergLP::bslmf::MovableRef<variant> original);
42191
42192 template <class t_TYPE>
42193 variant(
42194 bsl::allocator_arg_t,
42195 allocator_type allocator,
42196 const t_TYPE& value,
42198
42199 template <class t_TYPE>
42200 explicit variant(
42201 bsl::allocator_arg_t,
42202 allocator_type allocator,
42205
42206 template <class t_TYPE, class t_ARG_01>
42207 explicit variant(
42208 bsl::allocator_arg_t,
42209 allocator_type allocator,
42211 const t_ARG_01& arg_01,
42213
42214 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
42215 explicit variant(
42216 bsl::allocator_arg_t,
42217 allocator_type allocator,
42219 const t_ARG_01& arg_01,
42220 const t_ARG_02& arg_02,
42222
42223 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
42224 explicit variant(
42225 bsl::allocator_arg_t,
42226 allocator_type allocator,
42228 const t_ARG_01& arg_01,
42229 const t_ARG_02& arg_02,
42230 const t_ARG_03& arg_03,
42232
42233 template <class t_TYPE,
42234 class t_ARG_01,
42235 class t_ARG_02,
42236 class t_ARG_03,
42237 class t_ARG_04>
42238 explicit variant(bsl::allocator_arg_t,
42239 allocator_type allocator,
42241 const t_ARG_01& arg_01,
42242 const t_ARG_02& arg_02,
42243 const t_ARG_03& arg_03,
42244 const t_ARG_04& arg_04,
42246
42247 template <class t_TYPE,
42248 class t_ARG_01,
42249 class t_ARG_02,
42250 class t_ARG_03,
42251 class t_ARG_04,
42252 class t_ARG_05>
42253 explicit variant(bsl::allocator_arg_t,
42254 allocator_type allocator,
42256 const t_ARG_01& arg_01,
42257 const t_ARG_02& arg_02,
42258 const t_ARG_03& arg_03,
42259 const t_ARG_04& arg_04,
42260 const t_ARG_05& arg_05,
42262
42263 template <class t_TYPE,
42264 class t_ARG_01,
42265 class t_ARG_02,
42266 class t_ARG_03,
42267 class t_ARG_04,
42268 class t_ARG_05,
42269 class t_ARG_06>
42270 explicit variant(bsl::allocator_arg_t,
42271 allocator_type allocator,
42273 const t_ARG_01& arg_01,
42274 const t_ARG_02& arg_02,
42275 const t_ARG_03& arg_03,
42276 const t_ARG_04& arg_04,
42277 const t_ARG_05& arg_05,
42278 const t_ARG_06& arg_06,
42280
42281 template <class t_TYPE,
42282 class t_ARG_01,
42283 class t_ARG_02,
42284 class t_ARG_03,
42285 class t_ARG_04,
42286 class t_ARG_05,
42287 class t_ARG_06,
42288 class t_ARG_07>
42289 explicit variant(bsl::allocator_arg_t,
42290 allocator_type allocator,
42292 const t_ARG_01& arg_01,
42293 const t_ARG_02& arg_02,
42294 const t_ARG_03& arg_03,
42295 const t_ARG_04& arg_04,
42296 const t_ARG_05& arg_05,
42297 const t_ARG_06& arg_06,
42298 const t_ARG_07& arg_07,
42300
42301 template <class t_TYPE,
42302 class t_ARG_01,
42303 class t_ARG_02,
42304 class t_ARG_03,
42305 class t_ARG_04,
42306 class t_ARG_05,
42307 class t_ARG_06,
42308 class t_ARG_07,
42309 class t_ARG_08>
42310 explicit variant(bsl::allocator_arg_t,
42311 allocator_type allocator,
42313 const t_ARG_01& arg_01,
42314 const t_ARG_02& arg_02,
42315 const t_ARG_03& arg_03,
42316 const t_ARG_04& arg_04,
42317 const t_ARG_05& arg_05,
42318 const t_ARG_06& arg_06,
42319 const t_ARG_07& arg_07,
42320 const t_ARG_08& arg_08,
42322
42323 template <class t_TYPE,
42324 class t_ARG_01,
42325 class t_ARG_02,
42326 class t_ARG_03,
42327 class t_ARG_04,
42328 class t_ARG_05,
42329 class t_ARG_06,
42330 class t_ARG_07,
42331 class t_ARG_08,
42332 class t_ARG_09>
42333 explicit variant(bsl::allocator_arg_t,
42334 allocator_type allocator,
42336 const t_ARG_01& arg_01,
42337 const t_ARG_02& arg_02,
42338 const t_ARG_03& arg_03,
42339 const t_ARG_04& arg_04,
42340 const t_ARG_05& arg_05,
42341 const t_ARG_06& arg_06,
42342 const t_ARG_07& arg_07,
42343 const t_ARG_08& arg_08,
42344 const t_ARG_09& arg_09,
42346
42347 template <class t_TYPE,
42348 class t_ARG_01,
42349 class t_ARG_02,
42350 class t_ARG_03,
42351 class t_ARG_04,
42352 class t_ARG_05,
42353 class t_ARG_06,
42354 class t_ARG_07,
42355 class t_ARG_08,
42356 class t_ARG_09,
42357 class t_ARG_10>
42358 explicit variant(bsl::allocator_arg_t,
42359 allocator_type allocator,
42361 const t_ARG_01& arg_01,
42362 const t_ARG_02& arg_02,
42363 const t_ARG_03& arg_03,
42364 const t_ARG_04& arg_04,
42365 const t_ARG_05& arg_05,
42366 const t_ARG_06& arg_06,
42367 const t_ARG_07& arg_07,
42368 const t_ARG_08& arg_08,
42369 const t_ARG_09& arg_09,
42370 const t_ARG_10& arg_10,
42372
42373 template <size_t t_INDEX>
42374 explicit variant(bsl::allocator_arg_t,
42375 allocator_type allocator,
42377
42378 template <size_t t_INDEX, class t_ARG_01>
42379 explicit variant(bsl::allocator_arg_t,
42380 allocator_type allocator,
42382 const t_ARG_01& arg_01);
42383
42384 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
42385 explicit variant(bsl::allocator_arg_t,
42386 allocator_type allocator,
42388 const t_ARG_01& arg_01,
42389 const t_ARG_02& arg_02);
42390
42391 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
42392 explicit variant(bsl::allocator_arg_t,
42393 allocator_type allocator,
42395 const t_ARG_01& arg_01,
42396 const t_ARG_02& arg_02,
42397 const t_ARG_03& arg_03);
42398
42399 template <size_t t_INDEX,
42400 class t_ARG_01,
42401 class t_ARG_02,
42402 class t_ARG_03,
42403 class t_ARG_04>
42404 explicit variant(bsl::allocator_arg_t,
42405 allocator_type allocator,
42407 const t_ARG_01& arg_01,
42408 const t_ARG_02& arg_02,
42409 const t_ARG_03& arg_03,
42410 const t_ARG_04& arg_04);
42411
42412 template <size_t t_INDEX,
42413 class t_ARG_01,
42414 class t_ARG_02,
42415 class t_ARG_03,
42416 class t_ARG_04,
42417 class t_ARG_05>
42418 explicit variant(bsl::allocator_arg_t,
42419 allocator_type allocator,
42421 const t_ARG_01& arg_01,
42422 const t_ARG_02& arg_02,
42423 const t_ARG_03& arg_03,
42424 const t_ARG_04& arg_04,
42425 const t_ARG_05& arg_05);
42426
42427 template <size_t t_INDEX,
42428 class t_ARG_01,
42429 class t_ARG_02,
42430 class t_ARG_03,
42431 class t_ARG_04,
42432 class t_ARG_05,
42433 class t_ARG_06>
42434 explicit variant(bsl::allocator_arg_t,
42435 allocator_type allocator,
42437 const t_ARG_01& arg_01,
42438 const t_ARG_02& arg_02,
42439 const t_ARG_03& arg_03,
42440 const t_ARG_04& arg_04,
42441 const t_ARG_05& arg_05,
42442 const t_ARG_06& arg_06);
42443
42444 template <size_t t_INDEX,
42445 class t_ARG_01,
42446 class t_ARG_02,
42447 class t_ARG_03,
42448 class t_ARG_04,
42449 class t_ARG_05,
42450 class t_ARG_06,
42451 class t_ARG_07>
42452 explicit variant(bsl::allocator_arg_t,
42453 allocator_type allocator,
42455 const t_ARG_01& arg_01,
42456 const t_ARG_02& arg_02,
42457 const t_ARG_03& arg_03,
42458 const t_ARG_04& arg_04,
42459 const t_ARG_05& arg_05,
42460 const t_ARG_06& arg_06,
42461 const t_ARG_07& arg_07);
42462
42463 template <size_t t_INDEX,
42464 class t_ARG_01,
42465 class t_ARG_02,
42466 class t_ARG_03,
42467 class t_ARG_04,
42468 class t_ARG_05,
42469 class t_ARG_06,
42470 class t_ARG_07,
42471 class t_ARG_08>
42472 explicit variant(bsl::allocator_arg_t,
42473 allocator_type allocator,
42475 const t_ARG_01& arg_01,
42476 const t_ARG_02& arg_02,
42477 const t_ARG_03& arg_03,
42478 const t_ARG_04& arg_04,
42479 const t_ARG_05& arg_05,
42480 const t_ARG_06& arg_06,
42481 const t_ARG_07& arg_07,
42482 const t_ARG_08& arg_08);
42483
42484 template <size_t t_INDEX,
42485 class t_ARG_01,
42486 class t_ARG_02,
42487 class t_ARG_03,
42488 class t_ARG_04,
42489 class t_ARG_05,
42490 class t_ARG_06,
42491 class t_ARG_07,
42492 class t_ARG_08,
42493 class t_ARG_09>
42494 explicit variant(bsl::allocator_arg_t,
42495 allocator_type allocator,
42497 const t_ARG_01& arg_01,
42498 const t_ARG_02& arg_02,
42499 const t_ARG_03& arg_03,
42500 const t_ARG_04& arg_04,
42501 const t_ARG_05& arg_05,
42502 const t_ARG_06& arg_06,
42503 const t_ARG_07& arg_07,
42504 const t_ARG_08& arg_08,
42505 const t_ARG_09& arg_09);
42506
42507 template <size_t t_INDEX,
42508 class t_ARG_01,
42509 class t_ARG_02,
42510 class t_ARG_03,
42511 class t_ARG_04,
42512 class t_ARG_05,
42513 class t_ARG_06,
42514 class t_ARG_07,
42515 class t_ARG_08,
42516 class t_ARG_09,
42517 class t_ARG_10>
42518 explicit variant(bsl::allocator_arg_t,
42519 allocator_type allocator,
42521 const t_ARG_01& arg_01,
42522 const t_ARG_02& arg_02,
42523 const t_ARG_03& arg_03,
42524 const t_ARG_04& arg_04,
42525 const t_ARG_05& arg_05,
42526 const t_ARG_06& arg_06,
42527 const t_ARG_07& arg_07,
42528 const t_ARG_08& arg_08,
42529 const t_ARG_09& arg_09,
42530 const t_ARG_10& arg_10);
42531
42532#endif
42533
42534
42535#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
42536 template <class t_TYPE,
42537 class t_ARGS_01,
42538 class t_ARGS_02,
42539 class t_ARGS_03,
42540 class = typename bsl::enable_if_t<
42542 std::is_constructible<t_TYPE, t_ARGS_01,
42543 t_ARGS_02,
42544 t_ARGS_03>::value> >
42545 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
42546 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
42547 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
42548 {
42549 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
42550 Variant_Base::template baseEmplace<index>(
42551 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
42552 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
42553 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03));
42554
42555 return bsl::get<index>(*this);
42556 }
42557
42558 template <class t_TYPE,
42559 class INIT_LIST_TYPE,
42560 class t_ARGS_01,
42561 class t_ARGS_02,
42562 class t_ARGS_03,
42563 class = typename bsl::enable_if_t<
42565 std::is_constructible<t_TYPE,
42566 std::initializer_list<INIT_LIST_TYPE>&,
42567 t_ARGS_01,
42568 t_ARGS_02,
42569 t_ARGS_03>::value> >
42570 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
42571 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
42572 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
42573 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
42574 {
42575 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
42576 Variant_Base::template baseEmplace<index>(
42577 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
42578 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
42579 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03));
42580
42581 return bsl::get<index>(*this);
42582 }
42583
42584 template <size_t t_INDEX,
42585 class t_ARGS_01,
42586 class t_ARGS_02,
42587 class t_ARGS_03,
42588 class = typename bsl::enable_if_t<
42589 (t_INDEX < 1 + 3u) &&
42590 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
42591 t_ARGS_01,
42592 t_ARGS_02,
42593 t_ARGS_03>::value> >
42594 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42595 t_TAIL_02,
42596 t_TAIL_03> >::type&
42597 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
42598 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
42599 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
42600 {
42601 Variant_Base::template baseEmplace<t_INDEX>(
42602 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
42603 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
42604 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03));
42605
42606 return bsl::get<t_INDEX>(*this);
42607 }
42608
42609 template <size_t t_INDEX,
42610 class INIT_LIST_TYPE,
42611 class t_ARGS_01,
42612 class t_ARGS_02,
42613 class t_ARGS_03,
42614 class = typename bsl::enable_if_t<
42615 (t_INDEX < 1 + 3u) &&
42616 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
42617 std::initializer_list<INIT_LIST_TYPE>&,
42618 t_ARGS_01,
42619 t_ARGS_02,
42620 t_ARGS_03>::value> >
42621 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42622 t_TAIL_02,
42623 t_TAIL_03> >::type&
42624 emplace(std::initializer_list<INIT_LIST_TYPE> il,
42625 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
42626 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
42627 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03)
42628 {
42629 Variant_Base::template baseEmplace<t_INDEX>(
42630 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
42631 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
42632 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03));
42633
42634 return bsl::get<t_INDEX>(*this);
42635 }
42636
42637#else
42638
42639 template <class t_TYPE>
42640 typename bsl::enable_if<
42641 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42642 t_TYPE&>::type
42643 emplace();
42644
42645 template <class t_TYPE, class t_ARG_01>
42646 typename bsl::enable_if<
42647 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42648 t_TYPE&>::type
42649 emplace(const t_ARG_01& arg_01);
42650
42651 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
42652 typename bsl::enable_if<
42653 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42654 t_TYPE&>::type
42655 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
42656
42657 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
42658 typename bsl::enable_if<
42659 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42660 t_TYPE&>::type
42661 emplace(const t_ARG_01& arg_01,
42662 const t_ARG_02& arg_02,
42663 const t_ARG_03& arg_03);
42664
42665 template <class t_TYPE,
42666 class t_ARG_01,
42667 class t_ARG_02,
42668 class t_ARG_03,
42669 class t_ARG_04>
42670 typename bsl::enable_if<
42671 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42672 t_TYPE&>::type
42673 emplace(const t_ARG_01& arg_01,
42674 const t_ARG_02& arg_02,
42675 const t_ARG_03& arg_03,
42676 const t_ARG_04& arg_04);
42677
42678 template <class t_TYPE,
42679 class t_ARG_01,
42680 class t_ARG_02,
42681 class t_ARG_03,
42682 class t_ARG_04,
42683 class t_ARG_05>
42684 typename bsl::enable_if<
42685 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42686 t_TYPE&>::type
42687 emplace(const t_ARG_01& arg_01,
42688 const t_ARG_02& arg_02,
42689 const t_ARG_03& arg_03,
42690 const t_ARG_04& arg_04,
42691 const t_ARG_05& arg_05);
42692
42693 template <class t_TYPE,
42694 class t_ARG_01,
42695 class t_ARG_02,
42696 class t_ARG_03,
42697 class t_ARG_04,
42698 class t_ARG_05,
42699 class t_ARG_06>
42700 typename bsl::enable_if<
42701 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42702 t_TYPE&>::type
42703 emplace(const t_ARG_01& arg_01,
42704 const t_ARG_02& arg_02,
42705 const t_ARG_03& arg_03,
42706 const t_ARG_04& arg_04,
42707 const t_ARG_05& arg_05,
42708 const t_ARG_06& arg_06);
42709
42710 template <class t_TYPE,
42711 class t_ARG_01,
42712 class t_ARG_02,
42713 class t_ARG_03,
42714 class t_ARG_04,
42715 class t_ARG_05,
42716 class t_ARG_06,
42717 class t_ARG_07>
42718 typename bsl::enable_if<
42719 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42720 t_TYPE&>::type
42721 emplace(const t_ARG_01& arg_01,
42722 const t_ARG_02& arg_02,
42723 const t_ARG_03& arg_03,
42724 const t_ARG_04& arg_04,
42725 const t_ARG_05& arg_05,
42726 const t_ARG_06& arg_06,
42727 const t_ARG_07& arg_07);
42728
42729 template <class t_TYPE,
42730 class t_ARG_01,
42731 class t_ARG_02,
42732 class t_ARG_03,
42733 class t_ARG_04,
42734 class t_ARG_05,
42735 class t_ARG_06,
42736 class t_ARG_07,
42737 class t_ARG_08>
42738 typename bsl::enable_if<
42739 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42740 t_TYPE&>::type
42741 emplace(const t_ARG_01& arg_01,
42742 const t_ARG_02& arg_02,
42743 const t_ARG_03& arg_03,
42744 const t_ARG_04& arg_04,
42745 const t_ARG_05& arg_05,
42746 const t_ARG_06& arg_06,
42747 const t_ARG_07& arg_07,
42748 const t_ARG_08& arg_08);
42749
42750 template <class t_TYPE,
42751 class t_ARG_01,
42752 class t_ARG_02,
42753 class t_ARG_03,
42754 class t_ARG_04,
42755 class t_ARG_05,
42756 class t_ARG_06,
42757 class t_ARG_07,
42758 class t_ARG_08,
42759 class t_ARG_09>
42760 typename bsl::enable_if<
42761 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42762 t_TYPE&>::type
42763 emplace(const t_ARG_01& arg_01,
42764 const t_ARG_02& arg_02,
42765 const t_ARG_03& arg_03,
42766 const t_ARG_04& arg_04,
42767 const t_ARG_05& arg_05,
42768 const t_ARG_06& arg_06,
42769 const t_ARG_07& arg_07,
42770 const t_ARG_08& arg_08,
42771 const t_ARG_09& arg_09);
42772
42773 template <class t_TYPE,
42774 class t_ARG_01,
42775 class t_ARG_02,
42776 class t_ARG_03,
42777 class t_ARG_04,
42778 class t_ARG_05,
42779 class t_ARG_06,
42780 class t_ARG_07,
42781 class t_ARG_08,
42782 class t_ARG_09,
42783 class t_ARG_10>
42784 typename bsl::enable_if<
42785 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
42786 t_TYPE&>::type
42787 emplace(const t_ARG_01& arg_01,
42788 const t_ARG_02& arg_02,
42789 const t_ARG_03& arg_03,
42790 const t_ARG_04& arg_04,
42791 const t_ARG_05& arg_05,
42792 const t_ARG_06& arg_06,
42793 const t_ARG_07& arg_07,
42794 const t_ARG_08& arg_08,
42795 const t_ARG_09& arg_09,
42796 const t_ARG_10& arg_10);
42797
42798 template <size_t t_INDEX>
42799 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42800 t_TAIL_02,
42801 t_TAIL_03> >::type&
42802 emplace();
42803
42804 template <size_t t_INDEX, class t_ARG_01>
42805 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42806 t_TAIL_02,
42807 t_TAIL_03> >::type&
42808 emplace(const t_ARG_01& arg_01);
42809
42810 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
42811 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42812 t_TAIL_02,
42813 t_TAIL_03> >::type&
42814 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
42815
42816 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
42817 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42818 t_TAIL_02,
42819 t_TAIL_03> >::type&
42820 emplace(const t_ARG_01& arg_01,
42821 const t_ARG_02& arg_02,
42822 const t_ARG_03& arg_03);
42823
42824 template <size_t t_INDEX,
42825 class t_ARG_01,
42826 class t_ARG_02,
42827 class t_ARG_03,
42828 class t_ARG_04>
42829 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42830 t_TAIL_02,
42831 t_TAIL_03> >::type&
42832 emplace(const t_ARG_01& arg_01,
42833 const t_ARG_02& arg_02,
42834 const t_ARG_03& arg_03,
42835 const t_ARG_04& arg_04);
42836
42837 template <size_t t_INDEX,
42838 class t_ARG_01,
42839 class t_ARG_02,
42840 class t_ARG_03,
42841 class t_ARG_04,
42842 class t_ARG_05>
42843 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42844 t_TAIL_02,
42845 t_TAIL_03> >::type&
42846 emplace(const t_ARG_01& arg_01,
42847 const t_ARG_02& arg_02,
42848 const t_ARG_03& arg_03,
42849 const t_ARG_04& arg_04,
42850 const t_ARG_05& arg_05);
42851
42852 template <size_t t_INDEX,
42853 class t_ARG_01,
42854 class t_ARG_02,
42855 class t_ARG_03,
42856 class t_ARG_04,
42857 class t_ARG_05,
42858 class t_ARG_06>
42859 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42860 t_TAIL_02,
42861 t_TAIL_03> >::type&
42862 emplace(const t_ARG_01& arg_01,
42863 const t_ARG_02& arg_02,
42864 const t_ARG_03& arg_03,
42865 const t_ARG_04& arg_04,
42866 const t_ARG_05& arg_05,
42867 const t_ARG_06& arg_06);
42868
42869 template <size_t t_INDEX,
42870 class t_ARG_01,
42871 class t_ARG_02,
42872 class t_ARG_03,
42873 class t_ARG_04,
42874 class t_ARG_05,
42875 class t_ARG_06,
42876 class t_ARG_07>
42877 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42878 t_TAIL_02,
42879 t_TAIL_03> >::type&
42880 emplace(const t_ARG_01& arg_01,
42881 const t_ARG_02& arg_02,
42882 const t_ARG_03& arg_03,
42883 const t_ARG_04& arg_04,
42884 const t_ARG_05& arg_05,
42885 const t_ARG_06& arg_06,
42886 const t_ARG_07& arg_07);
42887
42888 template <size_t t_INDEX,
42889 class t_ARG_01,
42890 class t_ARG_02,
42891 class t_ARG_03,
42892 class t_ARG_04,
42893 class t_ARG_05,
42894 class t_ARG_06,
42895 class t_ARG_07,
42896 class t_ARG_08>
42897 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42898 t_TAIL_02,
42899 t_TAIL_03> >::type&
42900 emplace(const t_ARG_01& arg_01,
42901 const t_ARG_02& arg_02,
42902 const t_ARG_03& arg_03,
42903 const t_ARG_04& arg_04,
42904 const t_ARG_05& arg_05,
42905 const t_ARG_06& arg_06,
42906 const t_ARG_07& arg_07,
42907 const t_ARG_08& arg_08);
42908
42909 template <size_t t_INDEX,
42910 class t_ARG_01,
42911 class t_ARG_02,
42912 class t_ARG_03,
42913 class t_ARG_04,
42914 class t_ARG_05,
42915 class t_ARG_06,
42916 class t_ARG_07,
42917 class t_ARG_08,
42918 class t_ARG_09>
42919 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42920 t_TAIL_02,
42921 t_TAIL_03> >::type&
42922 emplace(const t_ARG_01& arg_01,
42923 const t_ARG_02& arg_02,
42924 const t_ARG_03& arg_03,
42925 const t_ARG_04& arg_04,
42926 const t_ARG_05& arg_05,
42927 const t_ARG_06& arg_06,
42928 const t_ARG_07& arg_07,
42929 const t_ARG_08& arg_08,
42930 const t_ARG_09& arg_09);
42931
42932 template <size_t t_INDEX,
42933 class t_ARG_01,
42934 class t_ARG_02,
42935 class t_ARG_03,
42936 class t_ARG_04,
42937 class t_ARG_05,
42938 class t_ARG_06,
42939 class t_ARG_07,
42940 class t_ARG_08,
42941 class t_ARG_09,
42942 class t_ARG_10>
42943 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
42944 t_TAIL_02,
42945 t_TAIL_03> >::type&
42946 emplace(const t_ARG_01& arg_01,
42947 const t_ARG_02& arg_02,
42948 const t_ARG_03& arg_03,
42949 const t_ARG_04& arg_04,
42950 const t_ARG_05& arg_05,
42951 const t_ARG_06& arg_06,
42952 const t_ARG_07& arg_07,
42953 const t_ARG_08& arg_08,
42954 const t_ARG_09& arg_09,
42955 const t_ARG_10& arg_10);
42956#endif
42957
42958#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
42959 variant& operator=(const variant& rhs) = default;
42960
42961 variant& operator=(variant&& rhs) = default;
42962
42963 template <class t_TYPE>
42964 typename bsl::enable_if<
42965 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
42966 variant&>::type
42967 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
42968 {
42969 const size_t altIndex =
42970 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
42971
42972 if (index() == altIndex) {
42973 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
42974 value);
42975 }
42976 else {
42977 Variant_Base::template baseEmplace<altIndex>(
42978 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
42979 }
42980
42981 return *this;
42982 }
42983#else
42984 variant& operator=(const variant& rhs);
42985
42986 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
42987
42988 template <class t_TYPE>
42989 typename bsl::enable_if<
42990 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
42991 variant&>::type
42992 operator=(const t_TYPE& value);
42993
42994#endif
42995
42996 void swap(variant& other);
42997
42998#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
42999 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
43000 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
43001 t_TAIL_02,
43002 t_TAIL_03>::value,
43003 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
43004#endif
43005 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
43006 {
43007 return allocator_type(Variant_Base::AllocBase::mechanism());
43008 }
43009
43010
43011 size_t index() const BSLS_KEYWORD_NOEXCEPT;
43012
43013 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
43014};
43015#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 3
43016
43017#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 4
43018template <class t_HEAD, class t_TAIL_01,
43019 class t_TAIL_02,
43020 class t_TAIL_03,
43021 class t_TAIL_04>
43022class variant<t_HEAD, t_TAIL_01,
43023 t_TAIL_02,
43024 t_TAIL_03,
43025 t_TAIL_04>
43026: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
43027 t_TAIL_02,
43028 t_TAIL_03,
43029 t_TAIL_04>
43030#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
43031,
43032 private BloombergLP::bslstl::Variant_SMFBase<
43033 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
43034 t_TAIL_01,
43035 t_TAIL_02,
43036 t_TAIL_03,
43037 t_TAIL_04>::value,
43038 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
43039 t_TAIL_01,
43040 t_TAIL_02,
43041 t_TAIL_03,
43042 t_TAIL_04>::value,
43043 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
43044 t_TAIL_01,
43045 t_TAIL_02,
43046 t_TAIL_03,
43047 t_TAIL_04>::value &&
43048 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
43049 t_TAIL_01,
43050 t_TAIL_02,
43051 t_TAIL_03,
43052 t_TAIL_04>::value,
43053 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
43054 t_TAIL_01,
43055 t_TAIL_02,
43056 t_TAIL_03,
43057 t_TAIL_04>::value &&
43058 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
43059 t_TAIL_01,
43060 t_TAIL_02,
43061 t_TAIL_03,
43062 t_TAIL_04>::value>
43063#endif
43064{
43065 private:
43066 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
43067 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
43068 t_TAIL_02,
43069 t_TAIL_03,
43070 t_TAIL_04> Variant_Base;
43071 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
43072 t_TAIL_02,
43073 t_TAIL_03,
43074 t_TAIL_04>
43075 Variant_Union;
43076
43077 friend struct BloombergLP::bslstl::Variant_ImpUtil;
43078
43079 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
43080 t_TAIL_02,
43081 t_TAIL_03,
43082 t_TAIL_04>;
43083
43084 public:
43086 variant,
43087 BloombergLP::bslma::UsesBslmaAllocator,
43088 (BloombergLP::bslstl::
43089 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
43090 t_TAIL_02,
43091 t_TAIL_03,
43092 t_TAIL_04>::value));
43094 variant,
43095 BloombergLP::bslmf::UsesAllocatorArgT,
43096 (BloombergLP::bslstl::
43097 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
43098 t_TAIL_02,
43099 t_TAIL_03,
43100 t_TAIL_04>::value));
43102 variant,
43103 BloombergLP::bslmf::IsBitwiseMoveable,
43104 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
43105 t_TAIL_01,
43106 t_TAIL_02,
43107 t_TAIL_03,
43108 t_TAIL_04>::value));
43109
43110
43111 typedef typename Variant_Base::allocator_type allocator_type;
43112
43113
43114#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
43115 template <class t_FIRST_ALT = t_HEAD,
43116 class = typename bsl::enable_if_t<
43117 std::is_default_constructible<t_FIRST_ALT>::value> >
43118 variant()
43119 : Variant_Base()
43120 {
43121 }
43122
43123 variant(const variant& original) = default;
43124
43125 variant(variant&& original) = default;
43126
43127#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
43128 template <class t_STD_VARIANT>
43129 explicit variant(
43130 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
43132 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
43133 original.index())
43134 {
43135 if (!valueless_by_exception()) {
43136 BloombergLP::bslstl::Variant_ImpUtil::
43137 ConstructFromStdVisitor<variant, decltype(original)>
43138 visitor(*this, original);
43139 BSLSTL_VARIANT_VISITID(void, visitor, *this);
43140 }
43141 }
43142#endif
43143
43144 template <class t_TYPE>
43145 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
43147
43148 template <class t_TYPE,
43149 class t_ARGS_01,
43150 class t_ARGS_02,
43151 class t_ARGS_03,
43152 class t_ARGS_04,
43153 class = typename bsl::enable_if_t<
43155 std::is_constructible<t_TYPE, t_ARGS_01,
43156 t_ARGS_02,
43157 t_ARGS_03,
43158 t_ARGS_04>::value> >
43159 explicit variant(bsl::in_place_type_t<t_TYPE>,
43160 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43161 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43162 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43163 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43164 : Variant_Base(
43165 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
43166 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
43167 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
43168 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
43169 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04))
43170 {
43171 }
43172
43173 template <class t_TYPE,
43174 class INIT_LIST_TYPE,
43175 class t_ARGS_01,
43176 class t_ARGS_02,
43177 class t_ARGS_03,
43178 class t_ARGS_04,
43179 class = typename bsl::enable_if_t<
43181 std::is_constructible<t_TYPE,
43182 std::initializer_list<INIT_LIST_TYPE>&,
43183 t_ARGS_01,
43184 t_ARGS_02,
43185 t_ARGS_03,
43186 t_ARGS_04>::value> >
43187 explicit variant(bsl::in_place_type_t<t_TYPE>,
43188 std::initializer_list<INIT_LIST_TYPE> il,
43189 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43190 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43191 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43192 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43193 : Variant_Base(
43194 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
43195 il,
43196 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
43197 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
43198 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
43199 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04))
43200 {
43201 }
43202
43203 template <size_t t_INDEX,
43204 class t_ARGS_01,
43205 class t_ARGS_02,
43206 class t_ARGS_03,
43207 class t_ARGS_04,
43208 class = typename bsl::enable_if_t<
43209 (t_INDEX < 1 + 4u) &&
43210 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
43211 t_ARGS_01,
43212 t_ARGS_02,
43213 t_ARGS_03,
43214 t_ARGS_04>::value> >
43215 explicit variant(bsl::in_place_index_t<t_INDEX>,
43216 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43217 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43218 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43219 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43220 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
43221 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
43222 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
43223 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
43224 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04))
43225 {
43226 }
43227
43228 template <size_t t_INDEX,
43229 class INIT_LIST_TYPE,
43230 class t_ARGS_01,
43231 class t_ARGS_02,
43232 class t_ARGS_03,
43233 class t_ARGS_04,
43234 class = typename bsl::enable_if_t<
43235 (t_INDEX < 1 + 4u) &&
43236 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
43237 std::initializer_list<INIT_LIST_TYPE>&,
43238 t_ARGS_01,
43239 t_ARGS_02,
43240 t_ARGS_03,
43241 t_ARGS_04>::value> >
43242 explicit variant(bsl::in_place_index_t<t_INDEX>,
43243 std::initializer_list<INIT_LIST_TYPE> il,
43244 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43245 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43246 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43247 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43248 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
43249 il,
43250 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
43251 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
43252 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
43253 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04))
43254 {
43255 }
43256
43257 template <class FIRST = t_HEAD,
43258 class = typename bsl::enable_if_t<
43259 std::is_default_constructible<FIRST>::value> >
43260 variant(bsl::allocator_arg_t, allocator_type allocator)
43261 : Variant_Base(bsl::allocator_arg_t(), allocator)
43262 {
43263 }
43264
43265 template <
43266 class FIRST = t_HEAD,
43267 class = typename bsl::enable_if_t<
43268 BloombergLP::bslstl::
43269 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
43270 t_TAIL_02,
43271 t_TAIL_03,
43272 t_TAIL_04>::value> >
43273 variant(bsl::allocator_arg_t,
43274 allocator_type allocator,
43275 const variant& original)
43276 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
43277 {
43278 }
43279 template <
43280 class FIRST = t_HEAD,
43281 class = typename bsl::enable_if_t<
43282 BloombergLP::bslstl::
43283 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
43284 t_TAIL_02,
43285 t_TAIL_03,
43286 t_TAIL_04>::value> >
43287 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
43288 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
43289 {
43290 }
43291
43292#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
43293 template <class t_STD_VARIANT>
43294 explicit variant(
43295 bsl::allocator_arg_t,
43296 allocator_type allocator,
43297 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
43299 : Variant_Base(bsl::allocator_arg_t(),
43300 allocator,
43301 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
43302 original.index())
43303 {
43304 if (!valueless_by_exception()) {
43305 BloombergLP::bslstl::Variant_ImpUtil::
43306 ConstructFromStdVisitor<variant, decltype(original)>
43307 visitor(*this, original);
43308 BSLSTL_VARIANT_VISITID(void, visitor, *this);
43309 }
43310 }
43311#endif
43312
43313 template <class t_TYPE>
43314 variant(
43315 bsl::allocator_arg_t,
43316 allocator_type allocator,
43319
43320 template <class t_TYPE,
43321 class t_ARGS_01,
43322 class t_ARGS_02,
43323 class t_ARGS_03,
43324 class t_ARGS_04,
43325 class = typename bsl::enable_if_t<
43327 std::is_constructible<t_TYPE, t_ARGS_01,
43328 t_ARGS_02,
43329 t_ARGS_03,
43330 t_ARGS_04>::value> >
43331 explicit variant(bsl::allocator_arg_t,
43332 allocator_type allocator,
43334 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43335 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43336 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43337 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43338 : Variant_Base(
43339 bsl::allocator_arg_t{}
43340,
43341 allocator,
43342 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
43343 std::forward<t_ARGS_01>(args_01),
43344 std::forward<t_ARGS_02>(args_02),
43345 std::forward<t_ARGS_03>(args_03),
43346 std::forward<t_ARGS_04>(args_04))
43347 {
43348 }
43349
43350 template <class t_TYPE,
43351 class INIT_LIST_TYPE,
43352 class t_ARGS_01,
43353 class t_ARGS_02,
43354 class t_ARGS_03,
43355 class t_ARGS_04,
43356 class = typename bsl::enable_if_t<
43358 std::is_constructible<t_TYPE,
43359 std::initializer_list<INIT_LIST_TYPE>&,
43360 t_ARGS_01,
43361 t_ARGS_02,
43362 t_ARGS_03,
43363 t_ARGS_04>::value> >
43364 explicit variant(bsl::allocator_arg_t,
43365 allocator_type allocator,
43367 std::initializer_list<INIT_LIST_TYPE> il,
43368 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43369 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43370 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43371 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43372 : Variant_Base(
43373 bsl::allocator_arg_t{}
43374,
43375 allocator,
43376 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
43377 il,
43378 std::forward<t_ARGS_01>(args_01),
43379 std::forward<t_ARGS_02>(args_02),
43380 std::forward<t_ARGS_03>(args_03),
43381 std::forward<t_ARGS_04>(args_04))
43382 {
43383 }
43384
43385 template <size_t t_INDEX,
43386 class t_ARGS_01,
43387 class t_ARGS_02,
43388 class t_ARGS_03,
43389 class t_ARGS_04,
43390 class = typename bsl::enable_if_t<
43391 (t_INDEX < 1 + 4u) &&
43392 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
43393 t_ARGS_01,
43394 t_ARGS_02,
43395 t_ARGS_03,
43396 t_ARGS_04>::value> >
43397 explicit variant(bsl::allocator_arg_t,
43398 allocator_type allocator,
43400 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43401 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43402 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43403 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43404 : Variant_Base(bsl::allocator_arg_t{}
43405,
43406 allocator,
43407 bsl::in_place_index_t<t_INDEX>(),
43408 std::forward<t_ARGS_01>(args_01),
43409 std::forward<t_ARGS_02>(args_02),
43410 std::forward<t_ARGS_03>(args_03),
43411 std::forward<t_ARGS_04>(args_04))
43412 {
43413 }
43414
43415 template <size_t t_INDEX,
43416 class INIT_LIST_TYPE,
43417 class t_ARGS_01,
43418 class t_ARGS_02,
43419 class t_ARGS_03,
43420 class t_ARGS_04,
43421 class = typename bsl::enable_if_t<
43422 (t_INDEX < 1 + 4u) &&
43423 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
43424 std::initializer_list<INIT_LIST_TYPE>&,
43425 t_ARGS_01,
43426 t_ARGS_02,
43427 t_ARGS_03,
43428 t_ARGS_04>::value> >
43429 explicit variant(bsl::allocator_arg_t,
43430 allocator_type allocator,
43432 std::initializer_list<INIT_LIST_TYPE> il,
43433 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
43434 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
43435 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
43436 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
43437 : Variant_Base(bsl::allocator_arg_t{}
43438,
43439 allocator,
43440 bsl::in_place_index_t<t_INDEX>(),
43441 il,
43442 std::forward<t_ARGS_01>(args_01),
43443 std::forward<t_ARGS_02>(args_02),
43444 std::forward<t_ARGS_03>(args_03),
43445 std::forward<t_ARGS_04>(args_04))
43446 {
43447 }
43448
43449#else
43450
43451 variant();
43452
43453 variant(const variant& original);
43454
43455 variant(BloombergLP::bslmf::MovableRef<variant> original);
43456
43457 template <class t_TYPE>
43458 variant(const t_TYPE& value,
43460
43461 template <class t_TYPE>
43462 explicit variant(bsl::in_place_type_t<t_TYPE>,
43464
43465 template <class t_TYPE, class t_ARG_01>
43466 explicit variant(bsl::in_place_type_t<t_TYPE>,
43467 const t_ARG_01& arg_01,
43469
43470 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
43471 explicit variant(bsl::in_place_type_t<t_TYPE>,
43472 const t_ARG_01& arg_01,
43473 const t_ARG_02& arg_02,
43475
43476 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
43477 explicit variant(bsl::in_place_type_t<t_TYPE>,
43478 const t_ARG_01& arg_01,
43479 const t_ARG_02& arg_02,
43480 const t_ARG_03& arg_03,
43482
43483 template <class t_TYPE,
43484 class t_ARG_01,
43485 class t_ARG_02,
43486 class t_ARG_03,
43487 class t_ARG_04>
43488 explicit variant(bsl::in_place_type_t<t_TYPE>,
43489 const t_ARG_01& arg_01,
43490 const t_ARG_02& arg_02,
43491 const t_ARG_03& arg_03,
43492 const t_ARG_04& arg_04,
43494
43495 template <class t_TYPE,
43496 class t_ARG_01,
43497 class t_ARG_02,
43498 class t_ARG_03,
43499 class t_ARG_04,
43500 class t_ARG_05>
43501 explicit variant(bsl::in_place_type_t<t_TYPE>,
43502 const t_ARG_01& arg_01,
43503 const t_ARG_02& arg_02,
43504 const t_ARG_03& arg_03,
43505 const t_ARG_04& arg_04,
43506 const t_ARG_05& arg_05,
43508
43509 template <class t_TYPE,
43510 class t_ARG_01,
43511 class t_ARG_02,
43512 class t_ARG_03,
43513 class t_ARG_04,
43514 class t_ARG_05,
43515 class t_ARG_06>
43516 explicit variant(bsl::in_place_type_t<t_TYPE>,
43517 const t_ARG_01& arg_01,
43518 const t_ARG_02& arg_02,
43519 const t_ARG_03& arg_03,
43520 const t_ARG_04& arg_04,
43521 const t_ARG_05& arg_05,
43522 const t_ARG_06& arg_06,
43524
43525 template <class t_TYPE,
43526 class t_ARG_01,
43527 class t_ARG_02,
43528 class t_ARG_03,
43529 class t_ARG_04,
43530 class t_ARG_05,
43531 class t_ARG_06,
43532 class t_ARG_07>
43533 explicit variant(bsl::in_place_type_t<t_TYPE>,
43534 const t_ARG_01& arg_01,
43535 const t_ARG_02& arg_02,
43536 const t_ARG_03& arg_03,
43537 const t_ARG_04& arg_04,
43538 const t_ARG_05& arg_05,
43539 const t_ARG_06& arg_06,
43540 const t_ARG_07& arg_07,
43542
43543 template <class t_TYPE,
43544 class t_ARG_01,
43545 class t_ARG_02,
43546 class t_ARG_03,
43547 class t_ARG_04,
43548 class t_ARG_05,
43549 class t_ARG_06,
43550 class t_ARG_07,
43551 class t_ARG_08>
43552 explicit variant(bsl::in_place_type_t<t_TYPE>,
43553 const t_ARG_01& arg_01,
43554 const t_ARG_02& arg_02,
43555 const t_ARG_03& arg_03,
43556 const t_ARG_04& arg_04,
43557 const t_ARG_05& arg_05,
43558 const t_ARG_06& arg_06,
43559 const t_ARG_07& arg_07,
43560 const t_ARG_08& arg_08,
43562
43563 template <class t_TYPE,
43564 class t_ARG_01,
43565 class t_ARG_02,
43566 class t_ARG_03,
43567 class t_ARG_04,
43568 class t_ARG_05,
43569 class t_ARG_06,
43570 class t_ARG_07,
43571 class t_ARG_08,
43572 class t_ARG_09>
43573 explicit variant(bsl::in_place_type_t<t_TYPE>,
43574 const t_ARG_01& arg_01,
43575 const t_ARG_02& arg_02,
43576 const t_ARG_03& arg_03,
43577 const t_ARG_04& arg_04,
43578 const t_ARG_05& arg_05,
43579 const t_ARG_06& arg_06,
43580 const t_ARG_07& arg_07,
43581 const t_ARG_08& arg_08,
43582 const t_ARG_09& arg_09,
43584
43585 template <class t_TYPE,
43586 class t_ARG_01,
43587 class t_ARG_02,
43588 class t_ARG_03,
43589 class t_ARG_04,
43590 class t_ARG_05,
43591 class t_ARG_06,
43592 class t_ARG_07,
43593 class t_ARG_08,
43594 class t_ARG_09,
43595 class t_ARG_10>
43596 explicit variant(bsl::in_place_type_t<t_TYPE>,
43597 const t_ARG_01& arg_01,
43598 const t_ARG_02& arg_02,
43599 const t_ARG_03& arg_03,
43600 const t_ARG_04& arg_04,
43601 const t_ARG_05& arg_05,
43602 const t_ARG_06& arg_06,
43603 const t_ARG_07& arg_07,
43604 const t_ARG_08& arg_08,
43605 const t_ARG_09& arg_09,
43606 const t_ARG_10& arg_10,
43608
43609 template <size_t t_INDEX>
43610 explicit variant(bsl::in_place_index_t<t_INDEX>);
43611
43612 template <size_t t_INDEX, class t_ARG_01>
43613 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
43614
43615 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
43616 explicit variant(bsl::in_place_index_t<t_INDEX>,
43617 const t_ARG_01& arg_01,
43618 const t_ARG_02& arg_02);
43619
43620 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
43621 explicit variant(bsl::in_place_index_t<t_INDEX>,
43622 const t_ARG_01& arg_01,
43623 const t_ARG_02& arg_02,
43624 const t_ARG_03& arg_03);
43625
43626 template <size_t t_INDEX,
43627 class t_ARG_01,
43628 class t_ARG_02,
43629 class t_ARG_03,
43630 class t_ARG_04>
43631 explicit variant(bsl::in_place_index_t<t_INDEX>,
43632 const t_ARG_01& arg_01,
43633 const t_ARG_02& arg_02,
43634 const t_ARG_03& arg_03,
43635 const t_ARG_04& arg_04);
43636
43637 template <size_t t_INDEX,
43638 class t_ARG_01,
43639 class t_ARG_02,
43640 class t_ARG_03,
43641 class t_ARG_04,
43642 class t_ARG_05>
43643 explicit variant(bsl::in_place_index_t<t_INDEX>,
43644 const t_ARG_01& arg_01,
43645 const t_ARG_02& arg_02,
43646 const t_ARG_03& arg_03,
43647 const t_ARG_04& arg_04,
43648 const t_ARG_05& arg_05);
43649
43650 template <size_t t_INDEX,
43651 class t_ARG_01,
43652 class t_ARG_02,
43653 class t_ARG_03,
43654 class t_ARG_04,
43655 class t_ARG_05,
43656 class t_ARG_06>
43657 explicit variant(bsl::in_place_index_t<t_INDEX>,
43658 const t_ARG_01& arg_01,
43659 const t_ARG_02& arg_02,
43660 const t_ARG_03& arg_03,
43661 const t_ARG_04& arg_04,
43662 const t_ARG_05& arg_05,
43663 const t_ARG_06& arg_06);
43664
43665 template <size_t t_INDEX,
43666 class t_ARG_01,
43667 class t_ARG_02,
43668 class t_ARG_03,
43669 class t_ARG_04,
43670 class t_ARG_05,
43671 class t_ARG_06,
43672 class t_ARG_07>
43673 explicit variant(bsl::in_place_index_t<t_INDEX>,
43674 const t_ARG_01& arg_01,
43675 const t_ARG_02& arg_02,
43676 const t_ARG_03& arg_03,
43677 const t_ARG_04& arg_04,
43678 const t_ARG_05& arg_05,
43679 const t_ARG_06& arg_06,
43680 const t_ARG_07& arg_07);
43681
43682 template <size_t t_INDEX,
43683 class t_ARG_01,
43684 class t_ARG_02,
43685 class t_ARG_03,
43686 class t_ARG_04,
43687 class t_ARG_05,
43688 class t_ARG_06,
43689 class t_ARG_07,
43690 class t_ARG_08>
43691 explicit variant(bsl::in_place_index_t<t_INDEX>,
43692 const t_ARG_01& arg_01,
43693 const t_ARG_02& arg_02,
43694 const t_ARG_03& arg_03,
43695 const t_ARG_04& arg_04,
43696 const t_ARG_05& arg_05,
43697 const t_ARG_06& arg_06,
43698 const t_ARG_07& arg_07,
43699 const t_ARG_08& arg_08);
43700
43701 template <size_t t_INDEX,
43702 class t_ARG_01,
43703 class t_ARG_02,
43704 class t_ARG_03,
43705 class t_ARG_04,
43706 class t_ARG_05,
43707 class t_ARG_06,
43708 class t_ARG_07,
43709 class t_ARG_08,
43710 class t_ARG_09>
43711 explicit variant(bsl::in_place_index_t<t_INDEX>,
43712 const t_ARG_01& arg_01,
43713 const t_ARG_02& arg_02,
43714 const t_ARG_03& arg_03,
43715 const t_ARG_04& arg_04,
43716 const t_ARG_05& arg_05,
43717 const t_ARG_06& arg_06,
43718 const t_ARG_07& arg_07,
43719 const t_ARG_08& arg_08,
43720 const t_ARG_09& arg_09);
43721
43722 template <size_t t_INDEX,
43723 class t_ARG_01,
43724 class t_ARG_02,
43725 class t_ARG_03,
43726 class t_ARG_04,
43727 class t_ARG_05,
43728 class t_ARG_06,
43729 class t_ARG_07,
43730 class t_ARG_08,
43731 class t_ARG_09,
43732 class t_ARG_10>
43733 explicit variant(bsl::in_place_index_t<t_INDEX>,
43734 const t_ARG_01& arg_01,
43735 const t_ARG_02& arg_02,
43736 const t_ARG_03& arg_03,
43737 const t_ARG_04& arg_04,
43738 const t_ARG_05& arg_05,
43739 const t_ARG_06& arg_06,
43740 const t_ARG_07& arg_07,
43741 const t_ARG_08& arg_08,
43742 const t_ARG_09& arg_09,
43743 const t_ARG_10& arg_10);
43744
43745 variant(bsl::allocator_arg_t, allocator_type allocator);
43746
43747 variant(bsl::allocator_arg_t,
43748 allocator_type allocator,
43749 const variant& original);
43750 variant(bsl::allocator_arg_t,
43751 allocator_type allocator,
43752 BloombergLP::bslmf::MovableRef<variant> original);
43753
43754 template <class t_TYPE>
43755 variant(
43756 bsl::allocator_arg_t,
43757 allocator_type allocator,
43758 const t_TYPE& value,
43760
43761 template <class t_TYPE>
43762 explicit variant(
43763 bsl::allocator_arg_t,
43764 allocator_type allocator,
43767
43768 template <class t_TYPE, class t_ARG_01>
43769 explicit variant(
43770 bsl::allocator_arg_t,
43771 allocator_type allocator,
43773 const t_ARG_01& arg_01,
43775
43776 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
43777 explicit variant(
43778 bsl::allocator_arg_t,
43779 allocator_type allocator,
43781 const t_ARG_01& arg_01,
43782 const t_ARG_02& arg_02,
43784
43785 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
43786 explicit variant(
43787 bsl::allocator_arg_t,
43788 allocator_type allocator,
43790 const t_ARG_01& arg_01,
43791 const t_ARG_02& arg_02,
43792 const t_ARG_03& arg_03,
43794
43795 template <class t_TYPE,
43796 class t_ARG_01,
43797 class t_ARG_02,
43798 class t_ARG_03,
43799 class t_ARG_04>
43800 explicit variant(bsl::allocator_arg_t,
43801 allocator_type allocator,
43803 const t_ARG_01& arg_01,
43804 const t_ARG_02& arg_02,
43805 const t_ARG_03& arg_03,
43806 const t_ARG_04& arg_04,
43808
43809 template <class t_TYPE,
43810 class t_ARG_01,
43811 class t_ARG_02,
43812 class t_ARG_03,
43813 class t_ARG_04,
43814 class t_ARG_05>
43815 explicit variant(bsl::allocator_arg_t,
43816 allocator_type allocator,
43818 const t_ARG_01& arg_01,
43819 const t_ARG_02& arg_02,
43820 const t_ARG_03& arg_03,
43821 const t_ARG_04& arg_04,
43822 const t_ARG_05& arg_05,
43824
43825 template <class t_TYPE,
43826 class t_ARG_01,
43827 class t_ARG_02,
43828 class t_ARG_03,
43829 class t_ARG_04,
43830 class t_ARG_05,
43831 class t_ARG_06>
43832 explicit variant(bsl::allocator_arg_t,
43833 allocator_type allocator,
43835 const t_ARG_01& arg_01,
43836 const t_ARG_02& arg_02,
43837 const t_ARG_03& arg_03,
43838 const t_ARG_04& arg_04,
43839 const t_ARG_05& arg_05,
43840 const t_ARG_06& arg_06,
43842
43843 template <class t_TYPE,
43844 class t_ARG_01,
43845 class t_ARG_02,
43846 class t_ARG_03,
43847 class t_ARG_04,
43848 class t_ARG_05,
43849 class t_ARG_06,
43850 class t_ARG_07>
43851 explicit variant(bsl::allocator_arg_t,
43852 allocator_type allocator,
43854 const t_ARG_01& arg_01,
43855 const t_ARG_02& arg_02,
43856 const t_ARG_03& arg_03,
43857 const t_ARG_04& arg_04,
43858 const t_ARG_05& arg_05,
43859 const t_ARG_06& arg_06,
43860 const t_ARG_07& arg_07,
43862
43863 template <class t_TYPE,
43864 class t_ARG_01,
43865 class t_ARG_02,
43866 class t_ARG_03,
43867 class t_ARG_04,
43868 class t_ARG_05,
43869 class t_ARG_06,
43870 class t_ARG_07,
43871 class t_ARG_08>
43872 explicit variant(bsl::allocator_arg_t,
43873 allocator_type allocator,
43875 const t_ARG_01& arg_01,
43876 const t_ARG_02& arg_02,
43877 const t_ARG_03& arg_03,
43878 const t_ARG_04& arg_04,
43879 const t_ARG_05& arg_05,
43880 const t_ARG_06& arg_06,
43881 const t_ARG_07& arg_07,
43882 const t_ARG_08& arg_08,
43884
43885 template <class t_TYPE,
43886 class t_ARG_01,
43887 class t_ARG_02,
43888 class t_ARG_03,
43889 class t_ARG_04,
43890 class t_ARG_05,
43891 class t_ARG_06,
43892 class t_ARG_07,
43893 class t_ARG_08,
43894 class t_ARG_09>
43895 explicit variant(bsl::allocator_arg_t,
43896 allocator_type allocator,
43898 const t_ARG_01& arg_01,
43899 const t_ARG_02& arg_02,
43900 const t_ARG_03& arg_03,
43901 const t_ARG_04& arg_04,
43902 const t_ARG_05& arg_05,
43903 const t_ARG_06& arg_06,
43904 const t_ARG_07& arg_07,
43905 const t_ARG_08& arg_08,
43906 const t_ARG_09& arg_09,
43908
43909 template <class t_TYPE,
43910 class t_ARG_01,
43911 class t_ARG_02,
43912 class t_ARG_03,
43913 class t_ARG_04,
43914 class t_ARG_05,
43915 class t_ARG_06,
43916 class t_ARG_07,
43917 class t_ARG_08,
43918 class t_ARG_09,
43919 class t_ARG_10>
43920 explicit variant(bsl::allocator_arg_t,
43921 allocator_type allocator,
43923 const t_ARG_01& arg_01,
43924 const t_ARG_02& arg_02,
43925 const t_ARG_03& arg_03,
43926 const t_ARG_04& arg_04,
43927 const t_ARG_05& arg_05,
43928 const t_ARG_06& arg_06,
43929 const t_ARG_07& arg_07,
43930 const t_ARG_08& arg_08,
43931 const t_ARG_09& arg_09,
43932 const t_ARG_10& arg_10,
43934
43935 template <size_t t_INDEX>
43936 explicit variant(bsl::allocator_arg_t,
43937 allocator_type allocator,
43939
43940 template <size_t t_INDEX, class t_ARG_01>
43941 explicit variant(bsl::allocator_arg_t,
43942 allocator_type allocator,
43944 const t_ARG_01& arg_01);
43945
43946 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
43947 explicit variant(bsl::allocator_arg_t,
43948 allocator_type allocator,
43950 const t_ARG_01& arg_01,
43951 const t_ARG_02& arg_02);
43952
43953 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
43954 explicit variant(bsl::allocator_arg_t,
43955 allocator_type allocator,
43957 const t_ARG_01& arg_01,
43958 const t_ARG_02& arg_02,
43959 const t_ARG_03& arg_03);
43960
43961 template <size_t t_INDEX,
43962 class t_ARG_01,
43963 class t_ARG_02,
43964 class t_ARG_03,
43965 class t_ARG_04>
43966 explicit variant(bsl::allocator_arg_t,
43967 allocator_type allocator,
43969 const t_ARG_01& arg_01,
43970 const t_ARG_02& arg_02,
43971 const t_ARG_03& arg_03,
43972 const t_ARG_04& arg_04);
43973
43974 template <size_t t_INDEX,
43975 class t_ARG_01,
43976 class t_ARG_02,
43977 class t_ARG_03,
43978 class t_ARG_04,
43979 class t_ARG_05>
43980 explicit variant(bsl::allocator_arg_t,
43981 allocator_type allocator,
43983 const t_ARG_01& arg_01,
43984 const t_ARG_02& arg_02,
43985 const t_ARG_03& arg_03,
43986 const t_ARG_04& arg_04,
43987 const t_ARG_05& arg_05);
43988
43989 template <size_t t_INDEX,
43990 class t_ARG_01,
43991 class t_ARG_02,
43992 class t_ARG_03,
43993 class t_ARG_04,
43994 class t_ARG_05,
43995 class t_ARG_06>
43996 explicit variant(bsl::allocator_arg_t,
43997 allocator_type allocator,
43999 const t_ARG_01& arg_01,
44000 const t_ARG_02& arg_02,
44001 const t_ARG_03& arg_03,
44002 const t_ARG_04& arg_04,
44003 const t_ARG_05& arg_05,
44004 const t_ARG_06& arg_06);
44005
44006 template <size_t t_INDEX,
44007 class t_ARG_01,
44008 class t_ARG_02,
44009 class t_ARG_03,
44010 class t_ARG_04,
44011 class t_ARG_05,
44012 class t_ARG_06,
44013 class t_ARG_07>
44014 explicit variant(bsl::allocator_arg_t,
44015 allocator_type allocator,
44017 const t_ARG_01& arg_01,
44018 const t_ARG_02& arg_02,
44019 const t_ARG_03& arg_03,
44020 const t_ARG_04& arg_04,
44021 const t_ARG_05& arg_05,
44022 const t_ARG_06& arg_06,
44023 const t_ARG_07& arg_07);
44024
44025 template <size_t t_INDEX,
44026 class t_ARG_01,
44027 class t_ARG_02,
44028 class t_ARG_03,
44029 class t_ARG_04,
44030 class t_ARG_05,
44031 class t_ARG_06,
44032 class t_ARG_07,
44033 class t_ARG_08>
44034 explicit variant(bsl::allocator_arg_t,
44035 allocator_type allocator,
44037 const t_ARG_01& arg_01,
44038 const t_ARG_02& arg_02,
44039 const t_ARG_03& arg_03,
44040 const t_ARG_04& arg_04,
44041 const t_ARG_05& arg_05,
44042 const t_ARG_06& arg_06,
44043 const t_ARG_07& arg_07,
44044 const t_ARG_08& arg_08);
44045
44046 template <size_t t_INDEX,
44047 class t_ARG_01,
44048 class t_ARG_02,
44049 class t_ARG_03,
44050 class t_ARG_04,
44051 class t_ARG_05,
44052 class t_ARG_06,
44053 class t_ARG_07,
44054 class t_ARG_08,
44055 class t_ARG_09>
44056 explicit variant(bsl::allocator_arg_t,
44057 allocator_type allocator,
44059 const t_ARG_01& arg_01,
44060 const t_ARG_02& arg_02,
44061 const t_ARG_03& arg_03,
44062 const t_ARG_04& arg_04,
44063 const t_ARG_05& arg_05,
44064 const t_ARG_06& arg_06,
44065 const t_ARG_07& arg_07,
44066 const t_ARG_08& arg_08,
44067 const t_ARG_09& arg_09);
44068
44069 template <size_t t_INDEX,
44070 class t_ARG_01,
44071 class t_ARG_02,
44072 class t_ARG_03,
44073 class t_ARG_04,
44074 class t_ARG_05,
44075 class t_ARG_06,
44076 class t_ARG_07,
44077 class t_ARG_08,
44078 class t_ARG_09,
44079 class t_ARG_10>
44080 explicit variant(bsl::allocator_arg_t,
44081 allocator_type allocator,
44083 const t_ARG_01& arg_01,
44084 const t_ARG_02& arg_02,
44085 const t_ARG_03& arg_03,
44086 const t_ARG_04& arg_04,
44087 const t_ARG_05& arg_05,
44088 const t_ARG_06& arg_06,
44089 const t_ARG_07& arg_07,
44090 const t_ARG_08& arg_08,
44091 const t_ARG_09& arg_09,
44092 const t_ARG_10& arg_10);
44093
44094#endif
44095
44096
44097#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
44098 template <class t_TYPE,
44099 class t_ARGS_01,
44100 class t_ARGS_02,
44101 class t_ARGS_03,
44102 class t_ARGS_04,
44103 class = typename bsl::enable_if_t<
44105 std::is_constructible<t_TYPE, t_ARGS_01,
44106 t_ARGS_02,
44107 t_ARGS_03,
44108 t_ARGS_04>::value> >
44109 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44110 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44111 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44112 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
44113 {
44114 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
44115 Variant_Base::template baseEmplace<index>(
44116 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44117 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44118 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44119 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04));
44120
44121 return bsl::get<index>(*this);
44122 }
44123
44124 template <class t_TYPE,
44125 class INIT_LIST_TYPE,
44126 class t_ARGS_01,
44127 class t_ARGS_02,
44128 class t_ARGS_03,
44129 class t_ARGS_04,
44130 class = typename bsl::enable_if_t<
44132 std::is_constructible<t_TYPE,
44133 std::initializer_list<INIT_LIST_TYPE>&,
44134 t_ARGS_01,
44135 t_ARGS_02,
44136 t_ARGS_03,
44137 t_ARGS_04>::value> >
44138 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
44139 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44140 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44141 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44142 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
44143 {
44144 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
44145 Variant_Base::template baseEmplace<index>(
44146 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44147 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44148 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44149 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04));
44150
44151 return bsl::get<index>(*this);
44152 }
44153
44154 template <size_t t_INDEX,
44155 class t_ARGS_01,
44156 class t_ARGS_02,
44157 class t_ARGS_03,
44158 class t_ARGS_04,
44159 class = typename bsl::enable_if_t<
44160 (t_INDEX < 1 + 4u) &&
44161 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
44162 t_ARGS_01,
44163 t_ARGS_02,
44164 t_ARGS_03,
44165 t_ARGS_04>::value> >
44166 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44167 t_TAIL_02,
44168 t_TAIL_03,
44169 t_TAIL_04> >::type&
44170 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44171 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44172 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44173 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
44174 {
44175 Variant_Base::template baseEmplace<t_INDEX>(
44176 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44177 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44178 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44179 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04));
44180
44181 return bsl::get<t_INDEX>(*this);
44182 }
44183
44184 template <size_t t_INDEX,
44185 class INIT_LIST_TYPE,
44186 class t_ARGS_01,
44187 class t_ARGS_02,
44188 class t_ARGS_03,
44189 class t_ARGS_04,
44190 class = typename bsl::enable_if_t<
44191 (t_INDEX < 1 + 4u) &&
44192 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
44193 std::initializer_list<INIT_LIST_TYPE>&,
44194 t_ARGS_01,
44195 t_ARGS_02,
44196 t_ARGS_03,
44197 t_ARGS_04>::value> >
44198 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44199 t_TAIL_02,
44200 t_TAIL_03,
44201 t_TAIL_04> >::type&
44202 emplace(std::initializer_list<INIT_LIST_TYPE> il,
44203 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44204 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44205 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44206 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04)
44207 {
44208 Variant_Base::template baseEmplace<t_INDEX>(
44209 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44210 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44211 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44212 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04));
44213
44214 return bsl::get<t_INDEX>(*this);
44215 }
44216
44217#else
44218
44219 template <class t_TYPE>
44220 typename bsl::enable_if<
44221 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44222 t_TYPE&>::type
44223 emplace();
44224
44225 template <class t_TYPE, class t_ARG_01>
44226 typename bsl::enable_if<
44227 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44228 t_TYPE&>::type
44229 emplace(const t_ARG_01& arg_01);
44230
44231 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
44232 typename bsl::enable_if<
44233 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44234 t_TYPE&>::type
44235 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
44236
44237 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
44238 typename bsl::enable_if<
44239 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44240 t_TYPE&>::type
44241 emplace(const t_ARG_01& arg_01,
44242 const t_ARG_02& arg_02,
44243 const t_ARG_03& arg_03);
44244
44245 template <class t_TYPE,
44246 class t_ARG_01,
44247 class t_ARG_02,
44248 class t_ARG_03,
44249 class t_ARG_04>
44250 typename bsl::enable_if<
44251 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44252 t_TYPE&>::type
44253 emplace(const t_ARG_01& arg_01,
44254 const t_ARG_02& arg_02,
44255 const t_ARG_03& arg_03,
44256 const t_ARG_04& arg_04);
44257
44258 template <class t_TYPE,
44259 class t_ARG_01,
44260 class t_ARG_02,
44261 class t_ARG_03,
44262 class t_ARG_04,
44263 class t_ARG_05>
44264 typename bsl::enable_if<
44265 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44266 t_TYPE&>::type
44267 emplace(const t_ARG_01& arg_01,
44268 const t_ARG_02& arg_02,
44269 const t_ARG_03& arg_03,
44270 const t_ARG_04& arg_04,
44271 const t_ARG_05& arg_05);
44272
44273 template <class t_TYPE,
44274 class t_ARG_01,
44275 class t_ARG_02,
44276 class t_ARG_03,
44277 class t_ARG_04,
44278 class t_ARG_05,
44279 class t_ARG_06>
44280 typename bsl::enable_if<
44281 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44282 t_TYPE&>::type
44283 emplace(const t_ARG_01& arg_01,
44284 const t_ARG_02& arg_02,
44285 const t_ARG_03& arg_03,
44286 const t_ARG_04& arg_04,
44287 const t_ARG_05& arg_05,
44288 const t_ARG_06& arg_06);
44289
44290 template <class t_TYPE,
44291 class t_ARG_01,
44292 class t_ARG_02,
44293 class t_ARG_03,
44294 class t_ARG_04,
44295 class t_ARG_05,
44296 class t_ARG_06,
44297 class t_ARG_07>
44298 typename bsl::enable_if<
44299 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44300 t_TYPE&>::type
44301 emplace(const t_ARG_01& arg_01,
44302 const t_ARG_02& arg_02,
44303 const t_ARG_03& arg_03,
44304 const t_ARG_04& arg_04,
44305 const t_ARG_05& arg_05,
44306 const t_ARG_06& arg_06,
44307 const t_ARG_07& arg_07);
44308
44309 template <class t_TYPE,
44310 class t_ARG_01,
44311 class t_ARG_02,
44312 class t_ARG_03,
44313 class t_ARG_04,
44314 class t_ARG_05,
44315 class t_ARG_06,
44316 class t_ARG_07,
44317 class t_ARG_08>
44318 typename bsl::enable_if<
44319 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44320 t_TYPE&>::type
44321 emplace(const t_ARG_01& arg_01,
44322 const t_ARG_02& arg_02,
44323 const t_ARG_03& arg_03,
44324 const t_ARG_04& arg_04,
44325 const t_ARG_05& arg_05,
44326 const t_ARG_06& arg_06,
44327 const t_ARG_07& arg_07,
44328 const t_ARG_08& arg_08);
44329
44330 template <class t_TYPE,
44331 class t_ARG_01,
44332 class t_ARG_02,
44333 class t_ARG_03,
44334 class t_ARG_04,
44335 class t_ARG_05,
44336 class t_ARG_06,
44337 class t_ARG_07,
44338 class t_ARG_08,
44339 class t_ARG_09>
44340 typename bsl::enable_if<
44341 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44342 t_TYPE&>::type
44343 emplace(const t_ARG_01& arg_01,
44344 const t_ARG_02& arg_02,
44345 const t_ARG_03& arg_03,
44346 const t_ARG_04& arg_04,
44347 const t_ARG_05& arg_05,
44348 const t_ARG_06& arg_06,
44349 const t_ARG_07& arg_07,
44350 const t_ARG_08& arg_08,
44351 const t_ARG_09& arg_09);
44352
44353 template <class t_TYPE,
44354 class t_ARG_01,
44355 class t_ARG_02,
44356 class t_ARG_03,
44357 class t_ARG_04,
44358 class t_ARG_05,
44359 class t_ARG_06,
44360 class t_ARG_07,
44361 class t_ARG_08,
44362 class t_ARG_09,
44363 class t_ARG_10>
44364 typename bsl::enable_if<
44365 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
44366 t_TYPE&>::type
44367 emplace(const t_ARG_01& arg_01,
44368 const t_ARG_02& arg_02,
44369 const t_ARG_03& arg_03,
44370 const t_ARG_04& arg_04,
44371 const t_ARG_05& arg_05,
44372 const t_ARG_06& arg_06,
44373 const t_ARG_07& arg_07,
44374 const t_ARG_08& arg_08,
44375 const t_ARG_09& arg_09,
44376 const t_ARG_10& arg_10);
44377
44378 template <size_t t_INDEX>
44379 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44380 t_TAIL_02,
44381 t_TAIL_03,
44382 t_TAIL_04> >::type&
44383 emplace();
44384
44385 template <size_t t_INDEX, class t_ARG_01>
44386 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44387 t_TAIL_02,
44388 t_TAIL_03,
44389 t_TAIL_04> >::type&
44390 emplace(const t_ARG_01& arg_01);
44391
44392 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
44393 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44394 t_TAIL_02,
44395 t_TAIL_03,
44396 t_TAIL_04> >::type&
44397 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
44398
44399 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
44400 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44401 t_TAIL_02,
44402 t_TAIL_03,
44403 t_TAIL_04> >::type&
44404 emplace(const t_ARG_01& arg_01,
44405 const t_ARG_02& arg_02,
44406 const t_ARG_03& arg_03);
44407
44408 template <size_t t_INDEX,
44409 class t_ARG_01,
44410 class t_ARG_02,
44411 class t_ARG_03,
44412 class t_ARG_04>
44413 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44414 t_TAIL_02,
44415 t_TAIL_03,
44416 t_TAIL_04> >::type&
44417 emplace(const t_ARG_01& arg_01,
44418 const t_ARG_02& arg_02,
44419 const t_ARG_03& arg_03,
44420 const t_ARG_04& arg_04);
44421
44422 template <size_t t_INDEX,
44423 class t_ARG_01,
44424 class t_ARG_02,
44425 class t_ARG_03,
44426 class t_ARG_04,
44427 class t_ARG_05>
44428 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44429 t_TAIL_02,
44430 t_TAIL_03,
44431 t_TAIL_04> >::type&
44432 emplace(const t_ARG_01& arg_01,
44433 const t_ARG_02& arg_02,
44434 const t_ARG_03& arg_03,
44435 const t_ARG_04& arg_04,
44436 const t_ARG_05& arg_05);
44437
44438 template <size_t t_INDEX,
44439 class t_ARG_01,
44440 class t_ARG_02,
44441 class t_ARG_03,
44442 class t_ARG_04,
44443 class t_ARG_05,
44444 class t_ARG_06>
44445 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44446 t_TAIL_02,
44447 t_TAIL_03,
44448 t_TAIL_04> >::type&
44449 emplace(const t_ARG_01& arg_01,
44450 const t_ARG_02& arg_02,
44451 const t_ARG_03& arg_03,
44452 const t_ARG_04& arg_04,
44453 const t_ARG_05& arg_05,
44454 const t_ARG_06& arg_06);
44455
44456 template <size_t t_INDEX,
44457 class t_ARG_01,
44458 class t_ARG_02,
44459 class t_ARG_03,
44460 class t_ARG_04,
44461 class t_ARG_05,
44462 class t_ARG_06,
44463 class t_ARG_07>
44464 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44465 t_TAIL_02,
44466 t_TAIL_03,
44467 t_TAIL_04> >::type&
44468 emplace(const t_ARG_01& arg_01,
44469 const t_ARG_02& arg_02,
44470 const t_ARG_03& arg_03,
44471 const t_ARG_04& arg_04,
44472 const t_ARG_05& arg_05,
44473 const t_ARG_06& arg_06,
44474 const t_ARG_07& arg_07);
44475
44476 template <size_t t_INDEX,
44477 class t_ARG_01,
44478 class t_ARG_02,
44479 class t_ARG_03,
44480 class t_ARG_04,
44481 class t_ARG_05,
44482 class t_ARG_06,
44483 class t_ARG_07,
44484 class t_ARG_08>
44485 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44486 t_TAIL_02,
44487 t_TAIL_03,
44488 t_TAIL_04> >::type&
44489 emplace(const t_ARG_01& arg_01,
44490 const t_ARG_02& arg_02,
44491 const t_ARG_03& arg_03,
44492 const t_ARG_04& arg_04,
44493 const t_ARG_05& arg_05,
44494 const t_ARG_06& arg_06,
44495 const t_ARG_07& arg_07,
44496 const t_ARG_08& arg_08);
44497
44498 template <size_t t_INDEX,
44499 class t_ARG_01,
44500 class t_ARG_02,
44501 class t_ARG_03,
44502 class t_ARG_04,
44503 class t_ARG_05,
44504 class t_ARG_06,
44505 class t_ARG_07,
44506 class t_ARG_08,
44507 class t_ARG_09>
44508 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44509 t_TAIL_02,
44510 t_TAIL_03,
44511 t_TAIL_04> >::type&
44512 emplace(const t_ARG_01& arg_01,
44513 const t_ARG_02& arg_02,
44514 const t_ARG_03& arg_03,
44515 const t_ARG_04& arg_04,
44516 const t_ARG_05& arg_05,
44517 const t_ARG_06& arg_06,
44518 const t_ARG_07& arg_07,
44519 const t_ARG_08& arg_08,
44520 const t_ARG_09& arg_09);
44521
44522 template <size_t t_INDEX,
44523 class t_ARG_01,
44524 class t_ARG_02,
44525 class t_ARG_03,
44526 class t_ARG_04,
44527 class t_ARG_05,
44528 class t_ARG_06,
44529 class t_ARG_07,
44530 class t_ARG_08,
44531 class t_ARG_09,
44532 class t_ARG_10>
44533 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
44534 t_TAIL_02,
44535 t_TAIL_03,
44536 t_TAIL_04> >::type&
44537 emplace(const t_ARG_01& arg_01,
44538 const t_ARG_02& arg_02,
44539 const t_ARG_03& arg_03,
44540 const t_ARG_04& arg_04,
44541 const t_ARG_05& arg_05,
44542 const t_ARG_06& arg_06,
44543 const t_ARG_07& arg_07,
44544 const t_ARG_08& arg_08,
44545 const t_ARG_09& arg_09,
44546 const t_ARG_10& arg_10);
44547#endif
44548
44549#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
44550 variant& operator=(const variant& rhs) = default;
44551
44552 variant& operator=(variant&& rhs) = default;
44553
44554 template <class t_TYPE>
44555 typename bsl::enable_if<
44556 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
44557 variant&>::type
44558 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
44559 {
44560 const size_t altIndex =
44561 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
44562
44563 if (index() == altIndex) {
44564 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
44565 value);
44566 }
44567 else {
44568 Variant_Base::template baseEmplace<altIndex>(
44569 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
44570 }
44571
44572 return *this;
44573 }
44574#else
44575 variant& operator=(const variant& rhs);
44576
44577 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
44578
44579 template <class t_TYPE>
44580 typename bsl::enable_if<
44581 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
44582 variant&>::type
44583 operator=(const t_TYPE& value);
44584
44585#endif
44586
44587 void swap(variant& other);
44588
44589#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
44590 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
44591 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
44592 t_TAIL_02,
44593 t_TAIL_03,
44594 t_TAIL_04>::value,
44595 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
44596#endif
44597 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
44598 {
44599 return allocator_type(Variant_Base::AllocBase::mechanism());
44600 }
44601
44602
44603 size_t index() const BSLS_KEYWORD_NOEXCEPT;
44604
44605 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
44606};
44607#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 4
44608
44609#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 5
44610template <class t_HEAD, class t_TAIL_01,
44611 class t_TAIL_02,
44612 class t_TAIL_03,
44613 class t_TAIL_04,
44614 class t_TAIL_05>
44615class variant<t_HEAD, t_TAIL_01,
44616 t_TAIL_02,
44617 t_TAIL_03,
44618 t_TAIL_04,
44619 t_TAIL_05>
44620: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
44621 t_TAIL_02,
44622 t_TAIL_03,
44623 t_TAIL_04,
44624 t_TAIL_05>
44625#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
44626,
44627 private BloombergLP::bslstl::Variant_SMFBase<
44628 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
44629 t_TAIL_01,
44630 t_TAIL_02,
44631 t_TAIL_03,
44632 t_TAIL_04,
44633 t_TAIL_05>::value,
44634 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
44635 t_TAIL_01,
44636 t_TAIL_02,
44637 t_TAIL_03,
44638 t_TAIL_04,
44639 t_TAIL_05>::value,
44640 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
44641 t_TAIL_01,
44642 t_TAIL_02,
44643 t_TAIL_03,
44644 t_TAIL_04,
44645 t_TAIL_05>::value &&
44646 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
44647 t_TAIL_01,
44648 t_TAIL_02,
44649 t_TAIL_03,
44650 t_TAIL_04,
44651 t_TAIL_05>::value,
44652 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
44653 t_TAIL_01,
44654 t_TAIL_02,
44655 t_TAIL_03,
44656 t_TAIL_04,
44657 t_TAIL_05>::value &&
44658 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
44659 t_TAIL_01,
44660 t_TAIL_02,
44661 t_TAIL_03,
44662 t_TAIL_04,
44663 t_TAIL_05>::value>
44664#endif
44665{
44666 private:
44667 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
44668 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
44669 t_TAIL_02,
44670 t_TAIL_03,
44671 t_TAIL_04,
44672 t_TAIL_05> Variant_Base;
44673 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
44674 t_TAIL_02,
44675 t_TAIL_03,
44676 t_TAIL_04,
44677 t_TAIL_05>
44678 Variant_Union;
44679
44680 friend struct BloombergLP::bslstl::Variant_ImpUtil;
44681
44682 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
44683 t_TAIL_02,
44684 t_TAIL_03,
44685 t_TAIL_04,
44686 t_TAIL_05>;
44687
44688 public:
44690 variant,
44691 BloombergLP::bslma::UsesBslmaAllocator,
44692 (BloombergLP::bslstl::
44693 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
44694 t_TAIL_02,
44695 t_TAIL_03,
44696 t_TAIL_04,
44697 t_TAIL_05>::value));
44699 variant,
44700 BloombergLP::bslmf::UsesAllocatorArgT,
44701 (BloombergLP::bslstl::
44702 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
44703 t_TAIL_02,
44704 t_TAIL_03,
44705 t_TAIL_04,
44706 t_TAIL_05>::value));
44708 variant,
44709 BloombergLP::bslmf::IsBitwiseMoveable,
44710 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
44711 t_TAIL_01,
44712 t_TAIL_02,
44713 t_TAIL_03,
44714 t_TAIL_04,
44715 t_TAIL_05>::value));
44716
44717
44718 typedef typename Variant_Base::allocator_type allocator_type;
44719
44720
44721#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
44722 template <class t_FIRST_ALT = t_HEAD,
44723 class = typename bsl::enable_if_t<
44724 std::is_default_constructible<t_FIRST_ALT>::value> >
44725 variant()
44726 : Variant_Base()
44727 {
44728 }
44729
44730 variant(const variant& original) = default;
44731
44732 variant(variant&& original) = default;
44733
44734#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
44735 template <class t_STD_VARIANT>
44736 explicit variant(
44737 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
44739 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
44740 original.index())
44741 {
44742 if (!valueless_by_exception()) {
44743 BloombergLP::bslstl::Variant_ImpUtil::
44744 ConstructFromStdVisitor<variant, decltype(original)>
44745 visitor(*this, original);
44746 BSLSTL_VARIANT_VISITID(void, visitor, *this);
44747 }
44748 }
44749#endif
44750
44751 template <class t_TYPE>
44752 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
44754
44755 template <class t_TYPE,
44756 class t_ARGS_01,
44757 class t_ARGS_02,
44758 class t_ARGS_03,
44759 class t_ARGS_04,
44760 class t_ARGS_05,
44761 class = typename bsl::enable_if_t<
44763 std::is_constructible<t_TYPE, t_ARGS_01,
44764 t_ARGS_02,
44765 t_ARGS_03,
44766 t_ARGS_04,
44767 t_ARGS_05>::value> >
44768 explicit variant(bsl::in_place_type_t<t_TYPE>,
44769 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44770 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44771 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44772 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
44773 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
44774 : Variant_Base(
44775 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
44776 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44777 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44778 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44779 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
44780 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05))
44781 {
44782 }
44783
44784 template <class t_TYPE,
44785 class INIT_LIST_TYPE,
44786 class t_ARGS_01,
44787 class t_ARGS_02,
44788 class t_ARGS_03,
44789 class t_ARGS_04,
44790 class t_ARGS_05,
44791 class = typename bsl::enable_if_t<
44793 std::is_constructible<t_TYPE,
44794 std::initializer_list<INIT_LIST_TYPE>&,
44795 t_ARGS_01,
44796 t_ARGS_02,
44797 t_ARGS_03,
44798 t_ARGS_04,
44799 t_ARGS_05>::value> >
44800 explicit variant(bsl::in_place_type_t<t_TYPE>,
44801 std::initializer_list<INIT_LIST_TYPE> il,
44802 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44803 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44804 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44805 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
44806 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
44807 : Variant_Base(
44808 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
44809 il,
44810 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44811 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44812 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44813 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
44814 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05))
44815 {
44816 }
44817
44818 template <size_t t_INDEX,
44819 class t_ARGS_01,
44820 class t_ARGS_02,
44821 class t_ARGS_03,
44822 class t_ARGS_04,
44823 class t_ARGS_05,
44824 class = typename bsl::enable_if_t<
44825 (t_INDEX < 1 + 5u) &&
44826 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
44827 t_ARGS_01,
44828 t_ARGS_02,
44829 t_ARGS_03,
44830 t_ARGS_04,
44831 t_ARGS_05>::value> >
44832 explicit variant(bsl::in_place_index_t<t_INDEX>,
44833 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44834 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44835 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44836 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
44837 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
44838 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
44839 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44840 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44841 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44842 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
44843 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05))
44844 {
44845 }
44846
44847 template <size_t t_INDEX,
44848 class INIT_LIST_TYPE,
44849 class t_ARGS_01,
44850 class t_ARGS_02,
44851 class t_ARGS_03,
44852 class t_ARGS_04,
44853 class t_ARGS_05,
44854 class = typename bsl::enable_if_t<
44855 (t_INDEX < 1 + 5u) &&
44856 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
44857 std::initializer_list<INIT_LIST_TYPE>&,
44858 t_ARGS_01,
44859 t_ARGS_02,
44860 t_ARGS_03,
44861 t_ARGS_04,
44862 t_ARGS_05>::value> >
44863 explicit variant(bsl::in_place_index_t<t_INDEX>,
44864 std::initializer_list<INIT_LIST_TYPE> il,
44865 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44866 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44867 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44868 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
44869 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
44870 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
44871 il,
44872 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
44873 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
44874 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
44875 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
44876 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05))
44877 {
44878 }
44879
44880 template <class FIRST = t_HEAD,
44881 class = typename bsl::enable_if_t<
44882 std::is_default_constructible<FIRST>::value> >
44883 variant(bsl::allocator_arg_t, allocator_type allocator)
44884 : Variant_Base(bsl::allocator_arg_t(), allocator)
44885 {
44886 }
44887
44888 template <
44889 class FIRST = t_HEAD,
44890 class = typename bsl::enable_if_t<
44891 BloombergLP::bslstl::
44892 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
44893 t_TAIL_02,
44894 t_TAIL_03,
44895 t_TAIL_04,
44896 t_TAIL_05>::value> >
44897 variant(bsl::allocator_arg_t,
44898 allocator_type allocator,
44899 const variant& original)
44900 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
44901 {
44902 }
44903 template <
44904 class FIRST = t_HEAD,
44905 class = typename bsl::enable_if_t<
44906 BloombergLP::bslstl::
44907 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
44908 t_TAIL_02,
44909 t_TAIL_03,
44910 t_TAIL_04,
44911 t_TAIL_05>::value> >
44912 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
44913 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
44914 {
44915 }
44916
44917#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
44918 template <class t_STD_VARIANT>
44919 explicit variant(
44920 bsl::allocator_arg_t,
44921 allocator_type allocator,
44922 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
44924 : Variant_Base(bsl::allocator_arg_t(),
44925 allocator,
44926 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
44927 original.index())
44928 {
44929 if (!valueless_by_exception()) {
44930 BloombergLP::bslstl::Variant_ImpUtil::
44931 ConstructFromStdVisitor<variant, decltype(original)>
44932 visitor(*this, original);
44933 BSLSTL_VARIANT_VISITID(void, visitor, *this);
44934 }
44935 }
44936#endif
44937
44938 template <class t_TYPE>
44939 variant(
44940 bsl::allocator_arg_t,
44941 allocator_type allocator,
44944
44945 template <class t_TYPE,
44946 class t_ARGS_01,
44947 class t_ARGS_02,
44948 class t_ARGS_03,
44949 class t_ARGS_04,
44950 class t_ARGS_05,
44951 class = typename bsl::enable_if_t<
44953 std::is_constructible<t_TYPE, t_ARGS_01,
44954 t_ARGS_02,
44955 t_ARGS_03,
44956 t_ARGS_04,
44957 t_ARGS_05>::value> >
44958 explicit variant(bsl::allocator_arg_t,
44959 allocator_type allocator,
44961 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
44962 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
44963 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
44964 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
44965 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
44966 : Variant_Base(
44967 bsl::allocator_arg_t{}
44968,
44969 allocator,
44970 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
44971 std::forward<t_ARGS_01>(args_01),
44972 std::forward<t_ARGS_02>(args_02),
44973 std::forward<t_ARGS_03>(args_03),
44974 std::forward<t_ARGS_04>(args_04),
44975 std::forward<t_ARGS_05>(args_05))
44976 {
44977 }
44978
44979 template <class t_TYPE,
44980 class INIT_LIST_TYPE,
44981 class t_ARGS_01,
44982 class t_ARGS_02,
44983 class t_ARGS_03,
44984 class t_ARGS_04,
44985 class t_ARGS_05,
44986 class = typename bsl::enable_if_t<
44988 std::is_constructible<t_TYPE,
44989 std::initializer_list<INIT_LIST_TYPE>&,
44990 t_ARGS_01,
44991 t_ARGS_02,
44992 t_ARGS_03,
44993 t_ARGS_04,
44994 t_ARGS_05>::value> >
44995 explicit variant(bsl::allocator_arg_t,
44996 allocator_type allocator,
44998 std::initializer_list<INIT_LIST_TYPE> il,
44999 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
45000 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
45001 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
45002 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
45003 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
45004 : Variant_Base(
45005 bsl::allocator_arg_t{}
45006,
45007 allocator,
45008 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
45009 il,
45010 std::forward<t_ARGS_01>(args_01),
45011 std::forward<t_ARGS_02>(args_02),
45012 std::forward<t_ARGS_03>(args_03),
45013 std::forward<t_ARGS_04>(args_04),
45014 std::forward<t_ARGS_05>(args_05))
45015 {
45016 }
45017
45018 template <size_t t_INDEX,
45019 class t_ARGS_01,
45020 class t_ARGS_02,
45021 class t_ARGS_03,
45022 class t_ARGS_04,
45023 class t_ARGS_05,
45024 class = typename bsl::enable_if_t<
45025 (t_INDEX < 1 + 5u) &&
45026 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
45027 t_ARGS_01,
45028 t_ARGS_02,
45029 t_ARGS_03,
45030 t_ARGS_04,
45031 t_ARGS_05>::value> >
45032 explicit variant(bsl::allocator_arg_t,
45033 allocator_type allocator,
45035 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
45036 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
45037 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
45038 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
45039 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
45040 : Variant_Base(bsl::allocator_arg_t{}
45041,
45042 allocator,
45043 bsl::in_place_index_t<t_INDEX>(),
45044 std::forward<t_ARGS_01>(args_01),
45045 std::forward<t_ARGS_02>(args_02),
45046 std::forward<t_ARGS_03>(args_03),
45047 std::forward<t_ARGS_04>(args_04),
45048 std::forward<t_ARGS_05>(args_05))
45049 {
45050 }
45051
45052 template <size_t t_INDEX,
45053 class INIT_LIST_TYPE,
45054 class t_ARGS_01,
45055 class t_ARGS_02,
45056 class t_ARGS_03,
45057 class t_ARGS_04,
45058 class t_ARGS_05,
45059 class = typename bsl::enable_if_t<
45060 (t_INDEX < 1 + 5u) &&
45061 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
45062 std::initializer_list<INIT_LIST_TYPE>&,
45063 t_ARGS_01,
45064 t_ARGS_02,
45065 t_ARGS_03,
45066 t_ARGS_04,
45067 t_ARGS_05>::value> >
45068 explicit variant(bsl::allocator_arg_t,
45069 allocator_type allocator,
45071 std::initializer_list<INIT_LIST_TYPE> il,
45072 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
45073 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
45074 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
45075 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
45076 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
45077 : Variant_Base(bsl::allocator_arg_t{}
45078,
45079 allocator,
45080 bsl::in_place_index_t<t_INDEX>(),
45081 il,
45082 std::forward<t_ARGS_01>(args_01),
45083 std::forward<t_ARGS_02>(args_02),
45084 std::forward<t_ARGS_03>(args_03),
45085 std::forward<t_ARGS_04>(args_04),
45086 std::forward<t_ARGS_05>(args_05))
45087 {
45088 }
45089
45090#else
45091
45092 variant();
45093
45094 variant(const variant& original);
45095
45096 variant(BloombergLP::bslmf::MovableRef<variant> original);
45097
45098 template <class t_TYPE>
45099 variant(const t_TYPE& value,
45101
45102 template <class t_TYPE>
45103 explicit variant(bsl::in_place_type_t<t_TYPE>,
45105
45106 template <class t_TYPE, class t_ARG_01>
45107 explicit variant(bsl::in_place_type_t<t_TYPE>,
45108 const t_ARG_01& arg_01,
45110
45111 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
45112 explicit variant(bsl::in_place_type_t<t_TYPE>,
45113 const t_ARG_01& arg_01,
45114 const t_ARG_02& arg_02,
45116
45117 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
45118 explicit variant(bsl::in_place_type_t<t_TYPE>,
45119 const t_ARG_01& arg_01,
45120 const t_ARG_02& arg_02,
45121 const t_ARG_03& arg_03,
45123
45124 template <class t_TYPE,
45125 class t_ARG_01,
45126 class t_ARG_02,
45127 class t_ARG_03,
45128 class t_ARG_04>
45129 explicit variant(bsl::in_place_type_t<t_TYPE>,
45130 const t_ARG_01& arg_01,
45131 const t_ARG_02& arg_02,
45132 const t_ARG_03& arg_03,
45133 const t_ARG_04& arg_04,
45135
45136 template <class t_TYPE,
45137 class t_ARG_01,
45138 class t_ARG_02,
45139 class t_ARG_03,
45140 class t_ARG_04,
45141 class t_ARG_05>
45142 explicit variant(bsl::in_place_type_t<t_TYPE>,
45143 const t_ARG_01& arg_01,
45144 const t_ARG_02& arg_02,
45145 const t_ARG_03& arg_03,
45146 const t_ARG_04& arg_04,
45147 const t_ARG_05& arg_05,
45149
45150 template <class t_TYPE,
45151 class t_ARG_01,
45152 class t_ARG_02,
45153 class t_ARG_03,
45154 class t_ARG_04,
45155 class t_ARG_05,
45156 class t_ARG_06>
45157 explicit variant(bsl::in_place_type_t<t_TYPE>,
45158 const t_ARG_01& arg_01,
45159 const t_ARG_02& arg_02,
45160 const t_ARG_03& arg_03,
45161 const t_ARG_04& arg_04,
45162 const t_ARG_05& arg_05,
45163 const t_ARG_06& arg_06,
45165
45166 template <class t_TYPE,
45167 class t_ARG_01,
45168 class t_ARG_02,
45169 class t_ARG_03,
45170 class t_ARG_04,
45171 class t_ARG_05,
45172 class t_ARG_06,
45173 class t_ARG_07>
45174 explicit variant(bsl::in_place_type_t<t_TYPE>,
45175 const t_ARG_01& arg_01,
45176 const t_ARG_02& arg_02,
45177 const t_ARG_03& arg_03,
45178 const t_ARG_04& arg_04,
45179 const t_ARG_05& arg_05,
45180 const t_ARG_06& arg_06,
45181 const t_ARG_07& arg_07,
45183
45184 template <class t_TYPE,
45185 class t_ARG_01,
45186 class t_ARG_02,
45187 class t_ARG_03,
45188 class t_ARG_04,
45189 class t_ARG_05,
45190 class t_ARG_06,
45191 class t_ARG_07,
45192 class t_ARG_08>
45193 explicit variant(bsl::in_place_type_t<t_TYPE>,
45194 const t_ARG_01& arg_01,
45195 const t_ARG_02& arg_02,
45196 const t_ARG_03& arg_03,
45197 const t_ARG_04& arg_04,
45198 const t_ARG_05& arg_05,
45199 const t_ARG_06& arg_06,
45200 const t_ARG_07& arg_07,
45201 const t_ARG_08& arg_08,
45203
45204 template <class t_TYPE,
45205 class t_ARG_01,
45206 class t_ARG_02,
45207 class t_ARG_03,
45208 class t_ARG_04,
45209 class t_ARG_05,
45210 class t_ARG_06,
45211 class t_ARG_07,
45212 class t_ARG_08,
45213 class t_ARG_09>
45214 explicit variant(bsl::in_place_type_t<t_TYPE>,
45215 const t_ARG_01& arg_01,
45216 const t_ARG_02& arg_02,
45217 const t_ARG_03& arg_03,
45218 const t_ARG_04& arg_04,
45219 const t_ARG_05& arg_05,
45220 const t_ARG_06& arg_06,
45221 const t_ARG_07& arg_07,
45222 const t_ARG_08& arg_08,
45223 const t_ARG_09& arg_09,
45225
45226 template <class t_TYPE,
45227 class t_ARG_01,
45228 class t_ARG_02,
45229 class t_ARG_03,
45230 class t_ARG_04,
45231 class t_ARG_05,
45232 class t_ARG_06,
45233 class t_ARG_07,
45234 class t_ARG_08,
45235 class t_ARG_09,
45236 class t_ARG_10>
45237 explicit variant(bsl::in_place_type_t<t_TYPE>,
45238 const t_ARG_01& arg_01,
45239 const t_ARG_02& arg_02,
45240 const t_ARG_03& arg_03,
45241 const t_ARG_04& arg_04,
45242 const t_ARG_05& arg_05,
45243 const t_ARG_06& arg_06,
45244 const t_ARG_07& arg_07,
45245 const t_ARG_08& arg_08,
45246 const t_ARG_09& arg_09,
45247 const t_ARG_10& arg_10,
45249
45250 template <size_t t_INDEX>
45251 explicit variant(bsl::in_place_index_t<t_INDEX>);
45252
45253 template <size_t t_INDEX, class t_ARG_01>
45254 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
45255
45256 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
45257 explicit variant(bsl::in_place_index_t<t_INDEX>,
45258 const t_ARG_01& arg_01,
45259 const t_ARG_02& arg_02);
45260
45261 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
45262 explicit variant(bsl::in_place_index_t<t_INDEX>,
45263 const t_ARG_01& arg_01,
45264 const t_ARG_02& arg_02,
45265 const t_ARG_03& arg_03);
45266
45267 template <size_t t_INDEX,
45268 class t_ARG_01,
45269 class t_ARG_02,
45270 class t_ARG_03,
45271 class t_ARG_04>
45272 explicit variant(bsl::in_place_index_t<t_INDEX>,
45273 const t_ARG_01& arg_01,
45274 const t_ARG_02& arg_02,
45275 const t_ARG_03& arg_03,
45276 const t_ARG_04& arg_04);
45277
45278 template <size_t t_INDEX,
45279 class t_ARG_01,
45280 class t_ARG_02,
45281 class t_ARG_03,
45282 class t_ARG_04,
45283 class t_ARG_05>
45284 explicit variant(bsl::in_place_index_t<t_INDEX>,
45285 const t_ARG_01& arg_01,
45286 const t_ARG_02& arg_02,
45287 const t_ARG_03& arg_03,
45288 const t_ARG_04& arg_04,
45289 const t_ARG_05& arg_05);
45290
45291 template <size_t t_INDEX,
45292 class t_ARG_01,
45293 class t_ARG_02,
45294 class t_ARG_03,
45295 class t_ARG_04,
45296 class t_ARG_05,
45297 class t_ARG_06>
45298 explicit variant(bsl::in_place_index_t<t_INDEX>,
45299 const t_ARG_01& arg_01,
45300 const t_ARG_02& arg_02,
45301 const t_ARG_03& arg_03,
45302 const t_ARG_04& arg_04,
45303 const t_ARG_05& arg_05,
45304 const t_ARG_06& arg_06);
45305
45306 template <size_t t_INDEX,
45307 class t_ARG_01,
45308 class t_ARG_02,
45309 class t_ARG_03,
45310 class t_ARG_04,
45311 class t_ARG_05,
45312 class t_ARG_06,
45313 class t_ARG_07>
45314 explicit variant(bsl::in_place_index_t<t_INDEX>,
45315 const t_ARG_01& arg_01,
45316 const t_ARG_02& arg_02,
45317 const t_ARG_03& arg_03,
45318 const t_ARG_04& arg_04,
45319 const t_ARG_05& arg_05,
45320 const t_ARG_06& arg_06,
45321 const t_ARG_07& arg_07);
45322
45323 template <size_t t_INDEX,
45324 class t_ARG_01,
45325 class t_ARG_02,
45326 class t_ARG_03,
45327 class t_ARG_04,
45328 class t_ARG_05,
45329 class t_ARG_06,
45330 class t_ARG_07,
45331 class t_ARG_08>
45332 explicit variant(bsl::in_place_index_t<t_INDEX>,
45333 const t_ARG_01& arg_01,
45334 const t_ARG_02& arg_02,
45335 const t_ARG_03& arg_03,
45336 const t_ARG_04& arg_04,
45337 const t_ARG_05& arg_05,
45338 const t_ARG_06& arg_06,
45339 const t_ARG_07& arg_07,
45340 const t_ARG_08& arg_08);
45341
45342 template <size_t t_INDEX,
45343 class t_ARG_01,
45344 class t_ARG_02,
45345 class t_ARG_03,
45346 class t_ARG_04,
45347 class t_ARG_05,
45348 class t_ARG_06,
45349 class t_ARG_07,
45350 class t_ARG_08,
45351 class t_ARG_09>
45352 explicit variant(bsl::in_place_index_t<t_INDEX>,
45353 const t_ARG_01& arg_01,
45354 const t_ARG_02& arg_02,
45355 const t_ARG_03& arg_03,
45356 const t_ARG_04& arg_04,
45357 const t_ARG_05& arg_05,
45358 const t_ARG_06& arg_06,
45359 const t_ARG_07& arg_07,
45360 const t_ARG_08& arg_08,
45361 const t_ARG_09& arg_09);
45362
45363 template <size_t t_INDEX,
45364 class t_ARG_01,
45365 class t_ARG_02,
45366 class t_ARG_03,
45367 class t_ARG_04,
45368 class t_ARG_05,
45369 class t_ARG_06,
45370 class t_ARG_07,
45371 class t_ARG_08,
45372 class t_ARG_09,
45373 class t_ARG_10>
45374 explicit variant(bsl::in_place_index_t<t_INDEX>,
45375 const t_ARG_01& arg_01,
45376 const t_ARG_02& arg_02,
45377 const t_ARG_03& arg_03,
45378 const t_ARG_04& arg_04,
45379 const t_ARG_05& arg_05,
45380 const t_ARG_06& arg_06,
45381 const t_ARG_07& arg_07,
45382 const t_ARG_08& arg_08,
45383 const t_ARG_09& arg_09,
45384 const t_ARG_10& arg_10);
45385
45386 variant(bsl::allocator_arg_t, allocator_type allocator);
45387
45388 variant(bsl::allocator_arg_t,
45389 allocator_type allocator,
45390 const variant& original);
45391 variant(bsl::allocator_arg_t,
45392 allocator_type allocator,
45393 BloombergLP::bslmf::MovableRef<variant> original);
45394
45395 template <class t_TYPE>
45396 variant(
45397 bsl::allocator_arg_t,
45398 allocator_type allocator,
45399 const t_TYPE& value,
45401
45402 template <class t_TYPE>
45403 explicit variant(
45404 bsl::allocator_arg_t,
45405 allocator_type allocator,
45408
45409 template <class t_TYPE, class t_ARG_01>
45410 explicit variant(
45411 bsl::allocator_arg_t,
45412 allocator_type allocator,
45414 const t_ARG_01& arg_01,
45416
45417 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
45418 explicit variant(
45419 bsl::allocator_arg_t,
45420 allocator_type allocator,
45422 const t_ARG_01& arg_01,
45423 const t_ARG_02& arg_02,
45425
45426 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
45427 explicit variant(
45428 bsl::allocator_arg_t,
45429 allocator_type allocator,
45431 const t_ARG_01& arg_01,
45432 const t_ARG_02& arg_02,
45433 const t_ARG_03& arg_03,
45435
45436 template <class t_TYPE,
45437 class t_ARG_01,
45438 class t_ARG_02,
45439 class t_ARG_03,
45440 class t_ARG_04>
45441 explicit variant(bsl::allocator_arg_t,
45442 allocator_type allocator,
45444 const t_ARG_01& arg_01,
45445 const t_ARG_02& arg_02,
45446 const t_ARG_03& arg_03,
45447 const t_ARG_04& arg_04,
45449
45450 template <class t_TYPE,
45451 class t_ARG_01,
45452 class t_ARG_02,
45453 class t_ARG_03,
45454 class t_ARG_04,
45455 class t_ARG_05>
45456 explicit variant(bsl::allocator_arg_t,
45457 allocator_type allocator,
45459 const t_ARG_01& arg_01,
45460 const t_ARG_02& arg_02,
45461 const t_ARG_03& arg_03,
45462 const t_ARG_04& arg_04,
45463 const t_ARG_05& arg_05,
45465
45466 template <class t_TYPE,
45467 class t_ARG_01,
45468 class t_ARG_02,
45469 class t_ARG_03,
45470 class t_ARG_04,
45471 class t_ARG_05,
45472 class t_ARG_06>
45473 explicit variant(bsl::allocator_arg_t,
45474 allocator_type allocator,
45476 const t_ARG_01& arg_01,
45477 const t_ARG_02& arg_02,
45478 const t_ARG_03& arg_03,
45479 const t_ARG_04& arg_04,
45480 const t_ARG_05& arg_05,
45481 const t_ARG_06& arg_06,
45483
45484 template <class t_TYPE,
45485 class t_ARG_01,
45486 class t_ARG_02,
45487 class t_ARG_03,
45488 class t_ARG_04,
45489 class t_ARG_05,
45490 class t_ARG_06,
45491 class t_ARG_07>
45492 explicit variant(bsl::allocator_arg_t,
45493 allocator_type allocator,
45495 const t_ARG_01& arg_01,
45496 const t_ARG_02& arg_02,
45497 const t_ARG_03& arg_03,
45498 const t_ARG_04& arg_04,
45499 const t_ARG_05& arg_05,
45500 const t_ARG_06& arg_06,
45501 const t_ARG_07& arg_07,
45503
45504 template <class t_TYPE,
45505 class t_ARG_01,
45506 class t_ARG_02,
45507 class t_ARG_03,
45508 class t_ARG_04,
45509 class t_ARG_05,
45510 class t_ARG_06,
45511 class t_ARG_07,
45512 class t_ARG_08>
45513 explicit variant(bsl::allocator_arg_t,
45514 allocator_type allocator,
45516 const t_ARG_01& arg_01,
45517 const t_ARG_02& arg_02,
45518 const t_ARG_03& arg_03,
45519 const t_ARG_04& arg_04,
45520 const t_ARG_05& arg_05,
45521 const t_ARG_06& arg_06,
45522 const t_ARG_07& arg_07,
45523 const t_ARG_08& arg_08,
45525
45526 template <class t_TYPE,
45527 class t_ARG_01,
45528 class t_ARG_02,
45529 class t_ARG_03,
45530 class t_ARG_04,
45531 class t_ARG_05,
45532 class t_ARG_06,
45533 class t_ARG_07,
45534 class t_ARG_08,
45535 class t_ARG_09>
45536 explicit variant(bsl::allocator_arg_t,
45537 allocator_type allocator,
45539 const t_ARG_01& arg_01,
45540 const t_ARG_02& arg_02,
45541 const t_ARG_03& arg_03,
45542 const t_ARG_04& arg_04,
45543 const t_ARG_05& arg_05,
45544 const t_ARG_06& arg_06,
45545 const t_ARG_07& arg_07,
45546 const t_ARG_08& arg_08,
45547 const t_ARG_09& arg_09,
45549
45550 template <class t_TYPE,
45551 class t_ARG_01,
45552 class t_ARG_02,
45553 class t_ARG_03,
45554 class t_ARG_04,
45555 class t_ARG_05,
45556 class t_ARG_06,
45557 class t_ARG_07,
45558 class t_ARG_08,
45559 class t_ARG_09,
45560 class t_ARG_10>
45561 explicit variant(bsl::allocator_arg_t,
45562 allocator_type allocator,
45564 const t_ARG_01& arg_01,
45565 const t_ARG_02& arg_02,
45566 const t_ARG_03& arg_03,
45567 const t_ARG_04& arg_04,
45568 const t_ARG_05& arg_05,
45569 const t_ARG_06& arg_06,
45570 const t_ARG_07& arg_07,
45571 const t_ARG_08& arg_08,
45572 const t_ARG_09& arg_09,
45573 const t_ARG_10& arg_10,
45575
45576 template <size_t t_INDEX>
45577 explicit variant(bsl::allocator_arg_t,
45578 allocator_type allocator,
45580
45581 template <size_t t_INDEX, class t_ARG_01>
45582 explicit variant(bsl::allocator_arg_t,
45583 allocator_type allocator,
45585 const t_ARG_01& arg_01);
45586
45587 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
45588 explicit variant(bsl::allocator_arg_t,
45589 allocator_type allocator,
45591 const t_ARG_01& arg_01,
45592 const t_ARG_02& arg_02);
45593
45594 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
45595 explicit variant(bsl::allocator_arg_t,
45596 allocator_type allocator,
45598 const t_ARG_01& arg_01,
45599 const t_ARG_02& arg_02,
45600 const t_ARG_03& arg_03);
45601
45602 template <size_t t_INDEX,
45603 class t_ARG_01,
45604 class t_ARG_02,
45605 class t_ARG_03,
45606 class t_ARG_04>
45607 explicit variant(bsl::allocator_arg_t,
45608 allocator_type allocator,
45610 const t_ARG_01& arg_01,
45611 const t_ARG_02& arg_02,
45612 const t_ARG_03& arg_03,
45613 const t_ARG_04& arg_04);
45614
45615 template <size_t t_INDEX,
45616 class t_ARG_01,
45617 class t_ARG_02,
45618 class t_ARG_03,
45619 class t_ARG_04,
45620 class t_ARG_05>
45621 explicit variant(bsl::allocator_arg_t,
45622 allocator_type allocator,
45624 const t_ARG_01& arg_01,
45625 const t_ARG_02& arg_02,
45626 const t_ARG_03& arg_03,
45627 const t_ARG_04& arg_04,
45628 const t_ARG_05& arg_05);
45629
45630 template <size_t t_INDEX,
45631 class t_ARG_01,
45632 class t_ARG_02,
45633 class t_ARG_03,
45634 class t_ARG_04,
45635 class t_ARG_05,
45636 class t_ARG_06>
45637 explicit variant(bsl::allocator_arg_t,
45638 allocator_type allocator,
45640 const t_ARG_01& arg_01,
45641 const t_ARG_02& arg_02,
45642 const t_ARG_03& arg_03,
45643 const t_ARG_04& arg_04,
45644 const t_ARG_05& arg_05,
45645 const t_ARG_06& arg_06);
45646
45647 template <size_t t_INDEX,
45648 class t_ARG_01,
45649 class t_ARG_02,
45650 class t_ARG_03,
45651 class t_ARG_04,
45652 class t_ARG_05,
45653 class t_ARG_06,
45654 class t_ARG_07>
45655 explicit variant(bsl::allocator_arg_t,
45656 allocator_type allocator,
45658 const t_ARG_01& arg_01,
45659 const t_ARG_02& arg_02,
45660 const t_ARG_03& arg_03,
45661 const t_ARG_04& arg_04,
45662 const t_ARG_05& arg_05,
45663 const t_ARG_06& arg_06,
45664 const t_ARG_07& arg_07);
45665
45666 template <size_t t_INDEX,
45667 class t_ARG_01,
45668 class t_ARG_02,
45669 class t_ARG_03,
45670 class t_ARG_04,
45671 class t_ARG_05,
45672 class t_ARG_06,
45673 class t_ARG_07,
45674 class t_ARG_08>
45675 explicit variant(bsl::allocator_arg_t,
45676 allocator_type allocator,
45678 const t_ARG_01& arg_01,
45679 const t_ARG_02& arg_02,
45680 const t_ARG_03& arg_03,
45681 const t_ARG_04& arg_04,
45682 const t_ARG_05& arg_05,
45683 const t_ARG_06& arg_06,
45684 const t_ARG_07& arg_07,
45685 const t_ARG_08& arg_08);
45686
45687 template <size_t t_INDEX,
45688 class t_ARG_01,
45689 class t_ARG_02,
45690 class t_ARG_03,
45691 class t_ARG_04,
45692 class t_ARG_05,
45693 class t_ARG_06,
45694 class t_ARG_07,
45695 class t_ARG_08,
45696 class t_ARG_09>
45697 explicit variant(bsl::allocator_arg_t,
45698 allocator_type allocator,
45700 const t_ARG_01& arg_01,
45701 const t_ARG_02& arg_02,
45702 const t_ARG_03& arg_03,
45703 const t_ARG_04& arg_04,
45704 const t_ARG_05& arg_05,
45705 const t_ARG_06& arg_06,
45706 const t_ARG_07& arg_07,
45707 const t_ARG_08& arg_08,
45708 const t_ARG_09& arg_09);
45709
45710 template <size_t t_INDEX,
45711 class t_ARG_01,
45712 class t_ARG_02,
45713 class t_ARG_03,
45714 class t_ARG_04,
45715 class t_ARG_05,
45716 class t_ARG_06,
45717 class t_ARG_07,
45718 class t_ARG_08,
45719 class t_ARG_09,
45720 class t_ARG_10>
45721 explicit variant(bsl::allocator_arg_t,
45722 allocator_type allocator,
45724 const t_ARG_01& arg_01,
45725 const t_ARG_02& arg_02,
45726 const t_ARG_03& arg_03,
45727 const t_ARG_04& arg_04,
45728 const t_ARG_05& arg_05,
45729 const t_ARG_06& arg_06,
45730 const t_ARG_07& arg_07,
45731 const t_ARG_08& arg_08,
45732 const t_ARG_09& arg_09,
45733 const t_ARG_10& arg_10);
45734
45735#endif
45736
45737
45738#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
45739 template <class t_TYPE,
45740 class t_ARGS_01,
45741 class t_ARGS_02,
45742 class t_ARGS_03,
45743 class t_ARGS_04,
45744 class t_ARGS_05,
45745 class = typename bsl::enable_if_t<
45747 std::is_constructible<t_TYPE, t_ARGS_01,
45748 t_ARGS_02,
45749 t_ARGS_03,
45750 t_ARGS_04,
45751 t_ARGS_05>::value> >
45752 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
45753 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
45754 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
45755 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
45756 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
45757 {
45758 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
45759 Variant_Base::template baseEmplace<index>(
45760 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
45761 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
45762 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
45763 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
45764 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05));
45765
45766 return bsl::get<index>(*this);
45767 }
45768
45769 template <class t_TYPE,
45770 class INIT_LIST_TYPE,
45771 class t_ARGS_01,
45772 class t_ARGS_02,
45773 class t_ARGS_03,
45774 class t_ARGS_04,
45775 class t_ARGS_05,
45776 class = typename bsl::enable_if_t<
45778 std::is_constructible<t_TYPE,
45779 std::initializer_list<INIT_LIST_TYPE>&,
45780 t_ARGS_01,
45781 t_ARGS_02,
45782 t_ARGS_03,
45783 t_ARGS_04,
45784 t_ARGS_05>::value> >
45785 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
45786 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
45787 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
45788 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
45789 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
45790 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
45791 {
45792 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
45793 Variant_Base::template baseEmplace<index>(
45794 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
45795 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
45796 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
45797 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
45798 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05));
45799
45800 return bsl::get<index>(*this);
45801 }
45802
45803 template <size_t t_INDEX,
45804 class t_ARGS_01,
45805 class t_ARGS_02,
45806 class t_ARGS_03,
45807 class t_ARGS_04,
45808 class t_ARGS_05,
45809 class = typename bsl::enable_if_t<
45810 (t_INDEX < 1 + 5u) &&
45811 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
45812 t_ARGS_01,
45813 t_ARGS_02,
45814 t_ARGS_03,
45815 t_ARGS_04,
45816 t_ARGS_05>::value> >
45817 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
45818 t_TAIL_02,
45819 t_TAIL_03,
45820 t_TAIL_04,
45821 t_TAIL_05> >::type&
45822 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
45823 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
45824 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
45825 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
45826 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
45827 {
45828 Variant_Base::template baseEmplace<t_INDEX>(
45829 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
45830 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
45831 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
45832 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
45833 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05));
45834
45835 return bsl::get<t_INDEX>(*this);
45836 }
45837
45838 template <size_t t_INDEX,
45839 class INIT_LIST_TYPE,
45840 class t_ARGS_01,
45841 class t_ARGS_02,
45842 class t_ARGS_03,
45843 class t_ARGS_04,
45844 class t_ARGS_05,
45845 class = typename bsl::enable_if_t<
45846 (t_INDEX < 1 + 5u) &&
45847 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
45848 std::initializer_list<INIT_LIST_TYPE>&,
45849 t_ARGS_01,
45850 t_ARGS_02,
45851 t_ARGS_03,
45852 t_ARGS_04,
45853 t_ARGS_05>::value> >
45854 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
45855 t_TAIL_02,
45856 t_TAIL_03,
45857 t_TAIL_04,
45858 t_TAIL_05> >::type&
45859 emplace(std::initializer_list<INIT_LIST_TYPE> il,
45860 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
45861 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
45862 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
45863 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
45864 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05)
45865 {
45866 Variant_Base::template baseEmplace<t_INDEX>(
45867 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
45868 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
45869 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
45870 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
45871 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05));
45872
45873 return bsl::get<t_INDEX>(*this);
45874 }
45875
45876#else
45877
45878 template <class t_TYPE>
45879 typename bsl::enable_if<
45880 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45881 t_TYPE&>::type
45882 emplace();
45883
45884 template <class t_TYPE, class t_ARG_01>
45885 typename bsl::enable_if<
45886 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45887 t_TYPE&>::type
45888 emplace(const t_ARG_01& arg_01);
45889
45890 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
45891 typename bsl::enable_if<
45892 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45893 t_TYPE&>::type
45894 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
45895
45896 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
45897 typename bsl::enable_if<
45898 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45899 t_TYPE&>::type
45900 emplace(const t_ARG_01& arg_01,
45901 const t_ARG_02& arg_02,
45902 const t_ARG_03& arg_03);
45903
45904 template <class t_TYPE,
45905 class t_ARG_01,
45906 class t_ARG_02,
45907 class t_ARG_03,
45908 class t_ARG_04>
45909 typename bsl::enable_if<
45910 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45911 t_TYPE&>::type
45912 emplace(const t_ARG_01& arg_01,
45913 const t_ARG_02& arg_02,
45914 const t_ARG_03& arg_03,
45915 const t_ARG_04& arg_04);
45916
45917 template <class t_TYPE,
45918 class t_ARG_01,
45919 class t_ARG_02,
45920 class t_ARG_03,
45921 class t_ARG_04,
45922 class t_ARG_05>
45923 typename bsl::enable_if<
45924 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45925 t_TYPE&>::type
45926 emplace(const t_ARG_01& arg_01,
45927 const t_ARG_02& arg_02,
45928 const t_ARG_03& arg_03,
45929 const t_ARG_04& arg_04,
45930 const t_ARG_05& arg_05);
45931
45932 template <class t_TYPE,
45933 class t_ARG_01,
45934 class t_ARG_02,
45935 class t_ARG_03,
45936 class t_ARG_04,
45937 class t_ARG_05,
45938 class t_ARG_06>
45939 typename bsl::enable_if<
45940 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45941 t_TYPE&>::type
45942 emplace(const t_ARG_01& arg_01,
45943 const t_ARG_02& arg_02,
45944 const t_ARG_03& arg_03,
45945 const t_ARG_04& arg_04,
45946 const t_ARG_05& arg_05,
45947 const t_ARG_06& arg_06);
45948
45949 template <class t_TYPE,
45950 class t_ARG_01,
45951 class t_ARG_02,
45952 class t_ARG_03,
45953 class t_ARG_04,
45954 class t_ARG_05,
45955 class t_ARG_06,
45956 class t_ARG_07>
45957 typename bsl::enable_if<
45958 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45959 t_TYPE&>::type
45960 emplace(const t_ARG_01& arg_01,
45961 const t_ARG_02& arg_02,
45962 const t_ARG_03& arg_03,
45963 const t_ARG_04& arg_04,
45964 const t_ARG_05& arg_05,
45965 const t_ARG_06& arg_06,
45966 const t_ARG_07& arg_07);
45967
45968 template <class t_TYPE,
45969 class t_ARG_01,
45970 class t_ARG_02,
45971 class t_ARG_03,
45972 class t_ARG_04,
45973 class t_ARG_05,
45974 class t_ARG_06,
45975 class t_ARG_07,
45976 class t_ARG_08>
45977 typename bsl::enable_if<
45978 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
45979 t_TYPE&>::type
45980 emplace(const t_ARG_01& arg_01,
45981 const t_ARG_02& arg_02,
45982 const t_ARG_03& arg_03,
45983 const t_ARG_04& arg_04,
45984 const t_ARG_05& arg_05,
45985 const t_ARG_06& arg_06,
45986 const t_ARG_07& arg_07,
45987 const t_ARG_08& arg_08);
45988
45989 template <class t_TYPE,
45990 class t_ARG_01,
45991 class t_ARG_02,
45992 class t_ARG_03,
45993 class t_ARG_04,
45994 class t_ARG_05,
45995 class t_ARG_06,
45996 class t_ARG_07,
45997 class t_ARG_08,
45998 class t_ARG_09>
45999 typename bsl::enable_if<
46000 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
46001 t_TYPE&>::type
46002 emplace(const t_ARG_01& arg_01,
46003 const t_ARG_02& arg_02,
46004 const t_ARG_03& arg_03,
46005 const t_ARG_04& arg_04,
46006 const t_ARG_05& arg_05,
46007 const t_ARG_06& arg_06,
46008 const t_ARG_07& arg_07,
46009 const t_ARG_08& arg_08,
46010 const t_ARG_09& arg_09);
46011
46012 template <class t_TYPE,
46013 class t_ARG_01,
46014 class t_ARG_02,
46015 class t_ARG_03,
46016 class t_ARG_04,
46017 class t_ARG_05,
46018 class t_ARG_06,
46019 class t_ARG_07,
46020 class t_ARG_08,
46021 class t_ARG_09,
46022 class t_ARG_10>
46023 typename bsl::enable_if<
46024 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
46025 t_TYPE&>::type
46026 emplace(const t_ARG_01& arg_01,
46027 const t_ARG_02& arg_02,
46028 const t_ARG_03& arg_03,
46029 const t_ARG_04& arg_04,
46030 const t_ARG_05& arg_05,
46031 const t_ARG_06& arg_06,
46032 const t_ARG_07& arg_07,
46033 const t_ARG_08& arg_08,
46034 const t_ARG_09& arg_09,
46035 const t_ARG_10& arg_10);
46036
46037 template <size_t t_INDEX>
46038 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46039 t_TAIL_02,
46040 t_TAIL_03,
46041 t_TAIL_04,
46042 t_TAIL_05> >::type&
46043 emplace();
46044
46045 template <size_t t_INDEX, class t_ARG_01>
46046 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46047 t_TAIL_02,
46048 t_TAIL_03,
46049 t_TAIL_04,
46050 t_TAIL_05> >::type&
46051 emplace(const t_ARG_01& arg_01);
46052
46053 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
46054 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46055 t_TAIL_02,
46056 t_TAIL_03,
46057 t_TAIL_04,
46058 t_TAIL_05> >::type&
46059 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
46060
46061 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
46062 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46063 t_TAIL_02,
46064 t_TAIL_03,
46065 t_TAIL_04,
46066 t_TAIL_05> >::type&
46067 emplace(const t_ARG_01& arg_01,
46068 const t_ARG_02& arg_02,
46069 const t_ARG_03& arg_03);
46070
46071 template <size_t t_INDEX,
46072 class t_ARG_01,
46073 class t_ARG_02,
46074 class t_ARG_03,
46075 class t_ARG_04>
46076 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46077 t_TAIL_02,
46078 t_TAIL_03,
46079 t_TAIL_04,
46080 t_TAIL_05> >::type&
46081 emplace(const t_ARG_01& arg_01,
46082 const t_ARG_02& arg_02,
46083 const t_ARG_03& arg_03,
46084 const t_ARG_04& arg_04);
46085
46086 template <size_t t_INDEX,
46087 class t_ARG_01,
46088 class t_ARG_02,
46089 class t_ARG_03,
46090 class t_ARG_04,
46091 class t_ARG_05>
46092 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46093 t_TAIL_02,
46094 t_TAIL_03,
46095 t_TAIL_04,
46096 t_TAIL_05> >::type&
46097 emplace(const t_ARG_01& arg_01,
46098 const t_ARG_02& arg_02,
46099 const t_ARG_03& arg_03,
46100 const t_ARG_04& arg_04,
46101 const t_ARG_05& arg_05);
46102
46103 template <size_t t_INDEX,
46104 class t_ARG_01,
46105 class t_ARG_02,
46106 class t_ARG_03,
46107 class t_ARG_04,
46108 class t_ARG_05,
46109 class t_ARG_06>
46110 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46111 t_TAIL_02,
46112 t_TAIL_03,
46113 t_TAIL_04,
46114 t_TAIL_05> >::type&
46115 emplace(const t_ARG_01& arg_01,
46116 const t_ARG_02& arg_02,
46117 const t_ARG_03& arg_03,
46118 const t_ARG_04& arg_04,
46119 const t_ARG_05& arg_05,
46120 const t_ARG_06& arg_06);
46121
46122 template <size_t t_INDEX,
46123 class t_ARG_01,
46124 class t_ARG_02,
46125 class t_ARG_03,
46126 class t_ARG_04,
46127 class t_ARG_05,
46128 class t_ARG_06,
46129 class t_ARG_07>
46130 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46131 t_TAIL_02,
46132 t_TAIL_03,
46133 t_TAIL_04,
46134 t_TAIL_05> >::type&
46135 emplace(const t_ARG_01& arg_01,
46136 const t_ARG_02& arg_02,
46137 const t_ARG_03& arg_03,
46138 const t_ARG_04& arg_04,
46139 const t_ARG_05& arg_05,
46140 const t_ARG_06& arg_06,
46141 const t_ARG_07& arg_07);
46142
46143 template <size_t t_INDEX,
46144 class t_ARG_01,
46145 class t_ARG_02,
46146 class t_ARG_03,
46147 class t_ARG_04,
46148 class t_ARG_05,
46149 class t_ARG_06,
46150 class t_ARG_07,
46151 class t_ARG_08>
46152 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46153 t_TAIL_02,
46154 t_TAIL_03,
46155 t_TAIL_04,
46156 t_TAIL_05> >::type&
46157 emplace(const t_ARG_01& arg_01,
46158 const t_ARG_02& arg_02,
46159 const t_ARG_03& arg_03,
46160 const t_ARG_04& arg_04,
46161 const t_ARG_05& arg_05,
46162 const t_ARG_06& arg_06,
46163 const t_ARG_07& arg_07,
46164 const t_ARG_08& arg_08);
46165
46166 template <size_t t_INDEX,
46167 class t_ARG_01,
46168 class t_ARG_02,
46169 class t_ARG_03,
46170 class t_ARG_04,
46171 class t_ARG_05,
46172 class t_ARG_06,
46173 class t_ARG_07,
46174 class t_ARG_08,
46175 class t_ARG_09>
46176 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46177 t_TAIL_02,
46178 t_TAIL_03,
46179 t_TAIL_04,
46180 t_TAIL_05> >::type&
46181 emplace(const t_ARG_01& arg_01,
46182 const t_ARG_02& arg_02,
46183 const t_ARG_03& arg_03,
46184 const t_ARG_04& arg_04,
46185 const t_ARG_05& arg_05,
46186 const t_ARG_06& arg_06,
46187 const t_ARG_07& arg_07,
46188 const t_ARG_08& arg_08,
46189 const t_ARG_09& arg_09);
46190
46191 template <size_t t_INDEX,
46192 class t_ARG_01,
46193 class t_ARG_02,
46194 class t_ARG_03,
46195 class t_ARG_04,
46196 class t_ARG_05,
46197 class t_ARG_06,
46198 class t_ARG_07,
46199 class t_ARG_08,
46200 class t_ARG_09,
46201 class t_ARG_10>
46202 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
46203 t_TAIL_02,
46204 t_TAIL_03,
46205 t_TAIL_04,
46206 t_TAIL_05> >::type&
46207 emplace(const t_ARG_01& arg_01,
46208 const t_ARG_02& arg_02,
46209 const t_ARG_03& arg_03,
46210 const t_ARG_04& arg_04,
46211 const t_ARG_05& arg_05,
46212 const t_ARG_06& arg_06,
46213 const t_ARG_07& arg_07,
46214 const t_ARG_08& arg_08,
46215 const t_ARG_09& arg_09,
46216 const t_ARG_10& arg_10);
46217#endif
46218
46219#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
46220 variant& operator=(const variant& rhs) = default;
46221
46222 variant& operator=(variant&& rhs) = default;
46223
46224 template <class t_TYPE>
46225 typename bsl::enable_if<
46226 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
46227 variant&>::type
46228 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
46229 {
46230 const size_t altIndex =
46231 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
46232
46233 if (index() == altIndex) {
46234 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
46235 value);
46236 }
46237 else {
46238 Variant_Base::template baseEmplace<altIndex>(
46239 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
46240 }
46241
46242 return *this;
46243 }
46244#else
46245 variant& operator=(const variant& rhs);
46246
46247 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
46248
46249 template <class t_TYPE>
46250 typename bsl::enable_if<
46251 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
46252 variant&>::type
46253 operator=(const t_TYPE& value);
46254
46255#endif
46256
46257 void swap(variant& other);
46258
46259#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
46260 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
46261 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
46262 t_TAIL_02,
46263 t_TAIL_03,
46264 t_TAIL_04,
46265 t_TAIL_05>::value,
46266 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
46267#endif
46268 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
46269 {
46270 return allocator_type(Variant_Base::AllocBase::mechanism());
46271 }
46272
46273
46274 size_t index() const BSLS_KEYWORD_NOEXCEPT;
46275
46276 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
46277};
46278#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 5
46279
46280#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 6
46281template <class t_HEAD, class t_TAIL_01,
46282 class t_TAIL_02,
46283 class t_TAIL_03,
46284 class t_TAIL_04,
46285 class t_TAIL_05,
46286 class t_TAIL_06>
46287class variant<t_HEAD, t_TAIL_01,
46288 t_TAIL_02,
46289 t_TAIL_03,
46290 t_TAIL_04,
46291 t_TAIL_05,
46292 t_TAIL_06>
46293: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
46294 t_TAIL_02,
46295 t_TAIL_03,
46296 t_TAIL_04,
46297 t_TAIL_05,
46298 t_TAIL_06>
46299#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
46300,
46301 private BloombergLP::bslstl::Variant_SMFBase<
46302 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
46303 t_TAIL_01,
46304 t_TAIL_02,
46305 t_TAIL_03,
46306 t_TAIL_04,
46307 t_TAIL_05,
46308 t_TAIL_06>::value,
46309 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
46310 t_TAIL_01,
46311 t_TAIL_02,
46312 t_TAIL_03,
46313 t_TAIL_04,
46314 t_TAIL_05,
46315 t_TAIL_06>::value,
46316 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
46317 t_TAIL_01,
46318 t_TAIL_02,
46319 t_TAIL_03,
46320 t_TAIL_04,
46321 t_TAIL_05,
46322 t_TAIL_06>::value &&
46323 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
46324 t_TAIL_01,
46325 t_TAIL_02,
46326 t_TAIL_03,
46327 t_TAIL_04,
46328 t_TAIL_05,
46329 t_TAIL_06>::value,
46330 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
46331 t_TAIL_01,
46332 t_TAIL_02,
46333 t_TAIL_03,
46334 t_TAIL_04,
46335 t_TAIL_05,
46336 t_TAIL_06>::value &&
46337 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
46338 t_TAIL_01,
46339 t_TAIL_02,
46340 t_TAIL_03,
46341 t_TAIL_04,
46342 t_TAIL_05,
46343 t_TAIL_06>::value>
46344#endif
46345{
46346 private:
46347 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
46348 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
46349 t_TAIL_02,
46350 t_TAIL_03,
46351 t_TAIL_04,
46352 t_TAIL_05,
46353 t_TAIL_06> Variant_Base;
46354 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
46355 t_TAIL_02,
46356 t_TAIL_03,
46357 t_TAIL_04,
46358 t_TAIL_05,
46359 t_TAIL_06>
46360 Variant_Union;
46361
46362 friend struct BloombergLP::bslstl::Variant_ImpUtil;
46363
46364 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
46365 t_TAIL_02,
46366 t_TAIL_03,
46367 t_TAIL_04,
46368 t_TAIL_05,
46369 t_TAIL_06>;
46370
46371 public:
46373 variant,
46374 BloombergLP::bslma::UsesBslmaAllocator,
46375 (BloombergLP::bslstl::
46376 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
46377 t_TAIL_02,
46378 t_TAIL_03,
46379 t_TAIL_04,
46380 t_TAIL_05,
46381 t_TAIL_06>::value));
46383 variant,
46384 BloombergLP::bslmf::UsesAllocatorArgT,
46385 (BloombergLP::bslstl::
46386 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
46387 t_TAIL_02,
46388 t_TAIL_03,
46389 t_TAIL_04,
46390 t_TAIL_05,
46391 t_TAIL_06>::value));
46393 variant,
46394 BloombergLP::bslmf::IsBitwiseMoveable,
46395 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
46396 t_TAIL_01,
46397 t_TAIL_02,
46398 t_TAIL_03,
46399 t_TAIL_04,
46400 t_TAIL_05,
46401 t_TAIL_06>::value));
46402
46403
46404 typedef typename Variant_Base::allocator_type allocator_type;
46405
46406
46407#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
46408 template <class t_FIRST_ALT = t_HEAD,
46409 class = typename bsl::enable_if_t<
46410 std::is_default_constructible<t_FIRST_ALT>::value> >
46411 variant()
46412 : Variant_Base()
46413 {
46414 }
46415
46416 variant(const variant& original) = default;
46417
46418 variant(variant&& original) = default;
46419
46420#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
46421 template <class t_STD_VARIANT>
46422 explicit variant(
46423 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
46425 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
46426 original.index())
46427 {
46428 if (!valueless_by_exception()) {
46429 BloombergLP::bslstl::Variant_ImpUtil::
46430 ConstructFromStdVisitor<variant, decltype(original)>
46431 visitor(*this, original);
46432 BSLSTL_VARIANT_VISITID(void, visitor, *this);
46433 }
46434 }
46435#endif
46436
46437 template <class t_TYPE>
46438 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
46440
46441 template <class t_TYPE,
46442 class t_ARGS_01,
46443 class t_ARGS_02,
46444 class t_ARGS_03,
46445 class t_ARGS_04,
46446 class t_ARGS_05,
46447 class t_ARGS_06,
46448 class = typename bsl::enable_if_t<
46450 std::is_constructible<t_TYPE, t_ARGS_01,
46451 t_ARGS_02,
46452 t_ARGS_03,
46453 t_ARGS_04,
46454 t_ARGS_05,
46455 t_ARGS_06>::value> >
46456 explicit variant(bsl::in_place_type_t<t_TYPE>,
46457 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46458 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46459 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46460 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46461 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46462 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46463 : Variant_Base(
46464 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
46465 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
46466 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
46467 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
46468 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
46469 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
46470 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06))
46471 {
46472 }
46473
46474 template <class t_TYPE,
46475 class INIT_LIST_TYPE,
46476 class t_ARGS_01,
46477 class t_ARGS_02,
46478 class t_ARGS_03,
46479 class t_ARGS_04,
46480 class t_ARGS_05,
46481 class t_ARGS_06,
46482 class = typename bsl::enable_if_t<
46484 std::is_constructible<t_TYPE,
46485 std::initializer_list<INIT_LIST_TYPE>&,
46486 t_ARGS_01,
46487 t_ARGS_02,
46488 t_ARGS_03,
46489 t_ARGS_04,
46490 t_ARGS_05,
46491 t_ARGS_06>::value> >
46492 explicit variant(bsl::in_place_type_t<t_TYPE>,
46493 std::initializer_list<INIT_LIST_TYPE> il,
46494 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46495 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46496 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46497 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46498 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46499 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46500 : Variant_Base(
46501 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
46502 il,
46503 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
46504 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
46505 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
46506 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
46507 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
46508 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06))
46509 {
46510 }
46511
46512 template <size_t t_INDEX,
46513 class t_ARGS_01,
46514 class t_ARGS_02,
46515 class t_ARGS_03,
46516 class t_ARGS_04,
46517 class t_ARGS_05,
46518 class t_ARGS_06,
46519 class = typename bsl::enable_if_t<
46520 (t_INDEX < 1 + 6u) &&
46521 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
46522 t_ARGS_01,
46523 t_ARGS_02,
46524 t_ARGS_03,
46525 t_ARGS_04,
46526 t_ARGS_05,
46527 t_ARGS_06>::value> >
46528 explicit variant(bsl::in_place_index_t<t_INDEX>,
46529 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46530 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46531 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46532 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46533 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46534 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46535 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
46536 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
46537 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
46538 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
46539 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
46540 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
46541 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06))
46542 {
46543 }
46544
46545 template <size_t t_INDEX,
46546 class INIT_LIST_TYPE,
46547 class t_ARGS_01,
46548 class t_ARGS_02,
46549 class t_ARGS_03,
46550 class t_ARGS_04,
46551 class t_ARGS_05,
46552 class t_ARGS_06,
46553 class = typename bsl::enable_if_t<
46554 (t_INDEX < 1 + 6u) &&
46555 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
46556 std::initializer_list<INIT_LIST_TYPE>&,
46557 t_ARGS_01,
46558 t_ARGS_02,
46559 t_ARGS_03,
46560 t_ARGS_04,
46561 t_ARGS_05,
46562 t_ARGS_06>::value> >
46563 explicit variant(bsl::in_place_index_t<t_INDEX>,
46564 std::initializer_list<INIT_LIST_TYPE> il,
46565 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46566 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46567 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46568 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46569 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46570 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46571 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
46572 il,
46573 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
46574 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
46575 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
46576 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
46577 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
46578 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06))
46579 {
46580 }
46581
46582 template <class FIRST = t_HEAD,
46583 class = typename bsl::enable_if_t<
46584 std::is_default_constructible<FIRST>::value> >
46585 variant(bsl::allocator_arg_t, allocator_type allocator)
46586 : Variant_Base(bsl::allocator_arg_t(), allocator)
46587 {
46588 }
46589
46590 template <
46591 class FIRST = t_HEAD,
46592 class = typename bsl::enable_if_t<
46593 BloombergLP::bslstl::
46594 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
46595 t_TAIL_02,
46596 t_TAIL_03,
46597 t_TAIL_04,
46598 t_TAIL_05,
46599 t_TAIL_06>::value> >
46600 variant(bsl::allocator_arg_t,
46601 allocator_type allocator,
46602 const variant& original)
46603 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
46604 {
46605 }
46606 template <
46607 class FIRST = t_HEAD,
46608 class = typename bsl::enable_if_t<
46609 BloombergLP::bslstl::
46610 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
46611 t_TAIL_02,
46612 t_TAIL_03,
46613 t_TAIL_04,
46614 t_TAIL_05,
46615 t_TAIL_06>::value> >
46616 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
46617 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
46618 {
46619 }
46620
46621#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
46622 template <class t_STD_VARIANT>
46623 explicit variant(
46624 bsl::allocator_arg_t,
46625 allocator_type allocator,
46626 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
46628 : Variant_Base(bsl::allocator_arg_t(),
46629 allocator,
46630 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
46631 original.index())
46632 {
46633 if (!valueless_by_exception()) {
46634 BloombergLP::bslstl::Variant_ImpUtil::
46635 ConstructFromStdVisitor<variant, decltype(original)>
46636 visitor(*this, original);
46637 BSLSTL_VARIANT_VISITID(void, visitor, *this);
46638 }
46639 }
46640#endif
46641
46642 template <class t_TYPE>
46643 variant(
46644 bsl::allocator_arg_t,
46645 allocator_type allocator,
46648
46649 template <class t_TYPE,
46650 class t_ARGS_01,
46651 class t_ARGS_02,
46652 class t_ARGS_03,
46653 class t_ARGS_04,
46654 class t_ARGS_05,
46655 class t_ARGS_06,
46656 class = typename bsl::enable_if_t<
46658 std::is_constructible<t_TYPE, t_ARGS_01,
46659 t_ARGS_02,
46660 t_ARGS_03,
46661 t_ARGS_04,
46662 t_ARGS_05,
46663 t_ARGS_06>::value> >
46664 explicit variant(bsl::allocator_arg_t,
46665 allocator_type allocator,
46667 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46668 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46669 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46670 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46671 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46672 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46673 : Variant_Base(
46674 bsl::allocator_arg_t{}
46675,
46676 allocator,
46677 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
46678 std::forward<t_ARGS_01>(args_01),
46679 std::forward<t_ARGS_02>(args_02),
46680 std::forward<t_ARGS_03>(args_03),
46681 std::forward<t_ARGS_04>(args_04),
46682 std::forward<t_ARGS_05>(args_05),
46683 std::forward<t_ARGS_06>(args_06))
46684 {
46685 }
46686
46687 template <class t_TYPE,
46688 class INIT_LIST_TYPE,
46689 class t_ARGS_01,
46690 class t_ARGS_02,
46691 class t_ARGS_03,
46692 class t_ARGS_04,
46693 class t_ARGS_05,
46694 class t_ARGS_06,
46695 class = typename bsl::enable_if_t<
46697 std::is_constructible<t_TYPE,
46698 std::initializer_list<INIT_LIST_TYPE>&,
46699 t_ARGS_01,
46700 t_ARGS_02,
46701 t_ARGS_03,
46702 t_ARGS_04,
46703 t_ARGS_05,
46704 t_ARGS_06>::value> >
46705 explicit variant(bsl::allocator_arg_t,
46706 allocator_type allocator,
46708 std::initializer_list<INIT_LIST_TYPE> il,
46709 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46710 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46711 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46712 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46713 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46714 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46715 : Variant_Base(
46716 bsl::allocator_arg_t{}
46717,
46718 allocator,
46719 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
46720 il,
46721 std::forward<t_ARGS_01>(args_01),
46722 std::forward<t_ARGS_02>(args_02),
46723 std::forward<t_ARGS_03>(args_03),
46724 std::forward<t_ARGS_04>(args_04),
46725 std::forward<t_ARGS_05>(args_05),
46726 std::forward<t_ARGS_06>(args_06))
46727 {
46728 }
46729
46730 template <size_t t_INDEX,
46731 class t_ARGS_01,
46732 class t_ARGS_02,
46733 class t_ARGS_03,
46734 class t_ARGS_04,
46735 class t_ARGS_05,
46736 class t_ARGS_06,
46737 class = typename bsl::enable_if_t<
46738 (t_INDEX < 1 + 6u) &&
46739 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
46740 t_ARGS_01,
46741 t_ARGS_02,
46742 t_ARGS_03,
46743 t_ARGS_04,
46744 t_ARGS_05,
46745 t_ARGS_06>::value> >
46746 explicit variant(bsl::allocator_arg_t,
46747 allocator_type allocator,
46749 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46750 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46751 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46752 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46753 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46754 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46755 : Variant_Base(bsl::allocator_arg_t{}
46756,
46757 allocator,
46758 bsl::in_place_index_t<t_INDEX>(),
46759 std::forward<t_ARGS_01>(args_01),
46760 std::forward<t_ARGS_02>(args_02),
46761 std::forward<t_ARGS_03>(args_03),
46762 std::forward<t_ARGS_04>(args_04),
46763 std::forward<t_ARGS_05>(args_05),
46764 std::forward<t_ARGS_06>(args_06))
46765 {
46766 }
46767
46768 template <size_t t_INDEX,
46769 class INIT_LIST_TYPE,
46770 class t_ARGS_01,
46771 class t_ARGS_02,
46772 class t_ARGS_03,
46773 class t_ARGS_04,
46774 class t_ARGS_05,
46775 class t_ARGS_06,
46776 class = typename bsl::enable_if_t<
46777 (t_INDEX < 1 + 6u) &&
46778 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
46779 std::initializer_list<INIT_LIST_TYPE>&,
46780 t_ARGS_01,
46781 t_ARGS_02,
46782 t_ARGS_03,
46783 t_ARGS_04,
46784 t_ARGS_05,
46785 t_ARGS_06>::value> >
46786 explicit variant(bsl::allocator_arg_t,
46787 allocator_type allocator,
46789 std::initializer_list<INIT_LIST_TYPE> il,
46790 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
46791 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
46792 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
46793 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
46794 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
46795 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
46796 : Variant_Base(bsl::allocator_arg_t{}
46797,
46798 allocator,
46799 bsl::in_place_index_t<t_INDEX>(),
46800 il,
46801 std::forward<t_ARGS_01>(args_01),
46802 std::forward<t_ARGS_02>(args_02),
46803 std::forward<t_ARGS_03>(args_03),
46804 std::forward<t_ARGS_04>(args_04),
46805 std::forward<t_ARGS_05>(args_05),
46806 std::forward<t_ARGS_06>(args_06))
46807 {
46808 }
46809
46810#else
46811
46812 variant();
46813
46814 variant(const variant& original);
46815
46816 variant(BloombergLP::bslmf::MovableRef<variant> original);
46817
46818 template <class t_TYPE>
46819 variant(const t_TYPE& value,
46821
46822 template <class t_TYPE>
46823 explicit variant(bsl::in_place_type_t<t_TYPE>,
46825
46826 template <class t_TYPE, class t_ARG_01>
46827 explicit variant(bsl::in_place_type_t<t_TYPE>,
46828 const t_ARG_01& arg_01,
46830
46831 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
46832 explicit variant(bsl::in_place_type_t<t_TYPE>,
46833 const t_ARG_01& arg_01,
46834 const t_ARG_02& arg_02,
46836
46837 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
46838 explicit variant(bsl::in_place_type_t<t_TYPE>,
46839 const t_ARG_01& arg_01,
46840 const t_ARG_02& arg_02,
46841 const t_ARG_03& arg_03,
46843
46844 template <class t_TYPE,
46845 class t_ARG_01,
46846 class t_ARG_02,
46847 class t_ARG_03,
46848 class t_ARG_04>
46849 explicit variant(bsl::in_place_type_t<t_TYPE>,
46850 const t_ARG_01& arg_01,
46851 const t_ARG_02& arg_02,
46852 const t_ARG_03& arg_03,
46853 const t_ARG_04& arg_04,
46855
46856 template <class t_TYPE,
46857 class t_ARG_01,
46858 class t_ARG_02,
46859 class t_ARG_03,
46860 class t_ARG_04,
46861 class t_ARG_05>
46862 explicit variant(bsl::in_place_type_t<t_TYPE>,
46863 const t_ARG_01& arg_01,
46864 const t_ARG_02& arg_02,
46865 const t_ARG_03& arg_03,
46866 const t_ARG_04& arg_04,
46867 const t_ARG_05& arg_05,
46869
46870 template <class t_TYPE,
46871 class t_ARG_01,
46872 class t_ARG_02,
46873 class t_ARG_03,
46874 class t_ARG_04,
46875 class t_ARG_05,
46876 class t_ARG_06>
46877 explicit variant(bsl::in_place_type_t<t_TYPE>,
46878 const t_ARG_01& arg_01,
46879 const t_ARG_02& arg_02,
46880 const t_ARG_03& arg_03,
46881 const t_ARG_04& arg_04,
46882 const t_ARG_05& arg_05,
46883 const t_ARG_06& arg_06,
46885
46886 template <class t_TYPE,
46887 class t_ARG_01,
46888 class t_ARG_02,
46889 class t_ARG_03,
46890 class t_ARG_04,
46891 class t_ARG_05,
46892 class t_ARG_06,
46893 class t_ARG_07>
46894 explicit variant(bsl::in_place_type_t<t_TYPE>,
46895 const t_ARG_01& arg_01,
46896 const t_ARG_02& arg_02,
46897 const t_ARG_03& arg_03,
46898 const t_ARG_04& arg_04,
46899 const t_ARG_05& arg_05,
46900 const t_ARG_06& arg_06,
46901 const t_ARG_07& arg_07,
46903
46904 template <class t_TYPE,
46905 class t_ARG_01,
46906 class t_ARG_02,
46907 class t_ARG_03,
46908 class t_ARG_04,
46909 class t_ARG_05,
46910 class t_ARG_06,
46911 class t_ARG_07,
46912 class t_ARG_08>
46913 explicit variant(bsl::in_place_type_t<t_TYPE>,
46914 const t_ARG_01& arg_01,
46915 const t_ARG_02& arg_02,
46916 const t_ARG_03& arg_03,
46917 const t_ARG_04& arg_04,
46918 const t_ARG_05& arg_05,
46919 const t_ARG_06& arg_06,
46920 const t_ARG_07& arg_07,
46921 const t_ARG_08& arg_08,
46923
46924 template <class t_TYPE,
46925 class t_ARG_01,
46926 class t_ARG_02,
46927 class t_ARG_03,
46928 class t_ARG_04,
46929 class t_ARG_05,
46930 class t_ARG_06,
46931 class t_ARG_07,
46932 class t_ARG_08,
46933 class t_ARG_09>
46934 explicit variant(bsl::in_place_type_t<t_TYPE>,
46935 const t_ARG_01& arg_01,
46936 const t_ARG_02& arg_02,
46937 const t_ARG_03& arg_03,
46938 const t_ARG_04& arg_04,
46939 const t_ARG_05& arg_05,
46940 const t_ARG_06& arg_06,
46941 const t_ARG_07& arg_07,
46942 const t_ARG_08& arg_08,
46943 const t_ARG_09& arg_09,
46945
46946 template <class t_TYPE,
46947 class t_ARG_01,
46948 class t_ARG_02,
46949 class t_ARG_03,
46950 class t_ARG_04,
46951 class t_ARG_05,
46952 class t_ARG_06,
46953 class t_ARG_07,
46954 class t_ARG_08,
46955 class t_ARG_09,
46956 class t_ARG_10>
46957 explicit variant(bsl::in_place_type_t<t_TYPE>,
46958 const t_ARG_01& arg_01,
46959 const t_ARG_02& arg_02,
46960 const t_ARG_03& arg_03,
46961 const t_ARG_04& arg_04,
46962 const t_ARG_05& arg_05,
46963 const t_ARG_06& arg_06,
46964 const t_ARG_07& arg_07,
46965 const t_ARG_08& arg_08,
46966 const t_ARG_09& arg_09,
46967 const t_ARG_10& arg_10,
46969
46970 template <size_t t_INDEX>
46971 explicit variant(bsl::in_place_index_t<t_INDEX>);
46972
46973 template <size_t t_INDEX, class t_ARG_01>
46974 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
46975
46976 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
46977 explicit variant(bsl::in_place_index_t<t_INDEX>,
46978 const t_ARG_01& arg_01,
46979 const t_ARG_02& arg_02);
46980
46981 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
46982 explicit variant(bsl::in_place_index_t<t_INDEX>,
46983 const t_ARG_01& arg_01,
46984 const t_ARG_02& arg_02,
46985 const t_ARG_03& arg_03);
46986
46987 template <size_t t_INDEX,
46988 class t_ARG_01,
46989 class t_ARG_02,
46990 class t_ARG_03,
46991 class t_ARG_04>
46992 explicit variant(bsl::in_place_index_t<t_INDEX>,
46993 const t_ARG_01& arg_01,
46994 const t_ARG_02& arg_02,
46995 const t_ARG_03& arg_03,
46996 const t_ARG_04& arg_04);
46997
46998 template <size_t t_INDEX,
46999 class t_ARG_01,
47000 class t_ARG_02,
47001 class t_ARG_03,
47002 class t_ARG_04,
47003 class t_ARG_05>
47004 explicit variant(bsl::in_place_index_t<t_INDEX>,
47005 const t_ARG_01& arg_01,
47006 const t_ARG_02& arg_02,
47007 const t_ARG_03& arg_03,
47008 const t_ARG_04& arg_04,
47009 const t_ARG_05& arg_05);
47010
47011 template <size_t t_INDEX,
47012 class t_ARG_01,
47013 class t_ARG_02,
47014 class t_ARG_03,
47015 class t_ARG_04,
47016 class t_ARG_05,
47017 class t_ARG_06>
47018 explicit variant(bsl::in_place_index_t<t_INDEX>,
47019 const t_ARG_01& arg_01,
47020 const t_ARG_02& arg_02,
47021 const t_ARG_03& arg_03,
47022 const t_ARG_04& arg_04,
47023 const t_ARG_05& arg_05,
47024 const t_ARG_06& arg_06);
47025
47026 template <size_t t_INDEX,
47027 class t_ARG_01,
47028 class t_ARG_02,
47029 class t_ARG_03,
47030 class t_ARG_04,
47031 class t_ARG_05,
47032 class t_ARG_06,
47033 class t_ARG_07>
47034 explicit variant(bsl::in_place_index_t<t_INDEX>,
47035 const t_ARG_01& arg_01,
47036 const t_ARG_02& arg_02,
47037 const t_ARG_03& arg_03,
47038 const t_ARG_04& arg_04,
47039 const t_ARG_05& arg_05,
47040 const t_ARG_06& arg_06,
47041 const t_ARG_07& arg_07);
47042
47043 template <size_t t_INDEX,
47044 class t_ARG_01,
47045 class t_ARG_02,
47046 class t_ARG_03,
47047 class t_ARG_04,
47048 class t_ARG_05,
47049 class t_ARG_06,
47050 class t_ARG_07,
47051 class t_ARG_08>
47052 explicit variant(bsl::in_place_index_t<t_INDEX>,
47053 const t_ARG_01& arg_01,
47054 const t_ARG_02& arg_02,
47055 const t_ARG_03& arg_03,
47056 const t_ARG_04& arg_04,
47057 const t_ARG_05& arg_05,
47058 const t_ARG_06& arg_06,
47059 const t_ARG_07& arg_07,
47060 const t_ARG_08& arg_08);
47061
47062 template <size_t t_INDEX,
47063 class t_ARG_01,
47064 class t_ARG_02,
47065 class t_ARG_03,
47066 class t_ARG_04,
47067 class t_ARG_05,
47068 class t_ARG_06,
47069 class t_ARG_07,
47070 class t_ARG_08,
47071 class t_ARG_09>
47072 explicit variant(bsl::in_place_index_t<t_INDEX>,
47073 const t_ARG_01& arg_01,
47074 const t_ARG_02& arg_02,
47075 const t_ARG_03& arg_03,
47076 const t_ARG_04& arg_04,
47077 const t_ARG_05& arg_05,
47078 const t_ARG_06& arg_06,
47079 const t_ARG_07& arg_07,
47080 const t_ARG_08& arg_08,
47081 const t_ARG_09& arg_09);
47082
47083 template <size_t t_INDEX,
47084 class t_ARG_01,
47085 class t_ARG_02,
47086 class t_ARG_03,
47087 class t_ARG_04,
47088 class t_ARG_05,
47089 class t_ARG_06,
47090 class t_ARG_07,
47091 class t_ARG_08,
47092 class t_ARG_09,
47093 class t_ARG_10>
47094 explicit variant(bsl::in_place_index_t<t_INDEX>,
47095 const t_ARG_01& arg_01,
47096 const t_ARG_02& arg_02,
47097 const t_ARG_03& arg_03,
47098 const t_ARG_04& arg_04,
47099 const t_ARG_05& arg_05,
47100 const t_ARG_06& arg_06,
47101 const t_ARG_07& arg_07,
47102 const t_ARG_08& arg_08,
47103 const t_ARG_09& arg_09,
47104 const t_ARG_10& arg_10);
47105
47106 variant(bsl::allocator_arg_t, allocator_type allocator);
47107
47108 variant(bsl::allocator_arg_t,
47109 allocator_type allocator,
47110 const variant& original);
47111 variant(bsl::allocator_arg_t,
47112 allocator_type allocator,
47113 BloombergLP::bslmf::MovableRef<variant> original);
47114
47115 template <class t_TYPE>
47116 variant(
47117 bsl::allocator_arg_t,
47118 allocator_type allocator,
47119 const t_TYPE& value,
47121
47122 template <class t_TYPE>
47123 explicit variant(
47124 bsl::allocator_arg_t,
47125 allocator_type allocator,
47128
47129 template <class t_TYPE, class t_ARG_01>
47130 explicit variant(
47131 bsl::allocator_arg_t,
47132 allocator_type allocator,
47134 const t_ARG_01& arg_01,
47136
47137 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
47138 explicit variant(
47139 bsl::allocator_arg_t,
47140 allocator_type allocator,
47142 const t_ARG_01& arg_01,
47143 const t_ARG_02& arg_02,
47145
47146 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
47147 explicit variant(
47148 bsl::allocator_arg_t,
47149 allocator_type allocator,
47151 const t_ARG_01& arg_01,
47152 const t_ARG_02& arg_02,
47153 const t_ARG_03& arg_03,
47155
47156 template <class t_TYPE,
47157 class t_ARG_01,
47158 class t_ARG_02,
47159 class t_ARG_03,
47160 class t_ARG_04>
47161 explicit variant(bsl::allocator_arg_t,
47162 allocator_type allocator,
47164 const t_ARG_01& arg_01,
47165 const t_ARG_02& arg_02,
47166 const t_ARG_03& arg_03,
47167 const t_ARG_04& arg_04,
47169
47170 template <class t_TYPE,
47171 class t_ARG_01,
47172 class t_ARG_02,
47173 class t_ARG_03,
47174 class t_ARG_04,
47175 class t_ARG_05>
47176 explicit variant(bsl::allocator_arg_t,
47177 allocator_type allocator,
47179 const t_ARG_01& arg_01,
47180 const t_ARG_02& arg_02,
47181 const t_ARG_03& arg_03,
47182 const t_ARG_04& arg_04,
47183 const t_ARG_05& arg_05,
47185
47186 template <class t_TYPE,
47187 class t_ARG_01,
47188 class t_ARG_02,
47189 class t_ARG_03,
47190 class t_ARG_04,
47191 class t_ARG_05,
47192 class t_ARG_06>
47193 explicit variant(bsl::allocator_arg_t,
47194 allocator_type allocator,
47196 const t_ARG_01& arg_01,
47197 const t_ARG_02& arg_02,
47198 const t_ARG_03& arg_03,
47199 const t_ARG_04& arg_04,
47200 const t_ARG_05& arg_05,
47201 const t_ARG_06& arg_06,
47203
47204 template <class t_TYPE,
47205 class t_ARG_01,
47206 class t_ARG_02,
47207 class t_ARG_03,
47208 class t_ARG_04,
47209 class t_ARG_05,
47210 class t_ARG_06,
47211 class t_ARG_07>
47212 explicit variant(bsl::allocator_arg_t,
47213 allocator_type allocator,
47215 const t_ARG_01& arg_01,
47216 const t_ARG_02& arg_02,
47217 const t_ARG_03& arg_03,
47218 const t_ARG_04& arg_04,
47219 const t_ARG_05& arg_05,
47220 const t_ARG_06& arg_06,
47221 const t_ARG_07& arg_07,
47223
47224 template <class t_TYPE,
47225 class t_ARG_01,
47226 class t_ARG_02,
47227 class t_ARG_03,
47228 class t_ARG_04,
47229 class t_ARG_05,
47230 class t_ARG_06,
47231 class t_ARG_07,
47232 class t_ARG_08>
47233 explicit variant(bsl::allocator_arg_t,
47234 allocator_type allocator,
47236 const t_ARG_01& arg_01,
47237 const t_ARG_02& arg_02,
47238 const t_ARG_03& arg_03,
47239 const t_ARG_04& arg_04,
47240 const t_ARG_05& arg_05,
47241 const t_ARG_06& arg_06,
47242 const t_ARG_07& arg_07,
47243 const t_ARG_08& arg_08,
47245
47246 template <class t_TYPE,
47247 class t_ARG_01,
47248 class t_ARG_02,
47249 class t_ARG_03,
47250 class t_ARG_04,
47251 class t_ARG_05,
47252 class t_ARG_06,
47253 class t_ARG_07,
47254 class t_ARG_08,
47255 class t_ARG_09>
47256 explicit variant(bsl::allocator_arg_t,
47257 allocator_type allocator,
47259 const t_ARG_01& arg_01,
47260 const t_ARG_02& arg_02,
47261 const t_ARG_03& arg_03,
47262 const t_ARG_04& arg_04,
47263 const t_ARG_05& arg_05,
47264 const t_ARG_06& arg_06,
47265 const t_ARG_07& arg_07,
47266 const t_ARG_08& arg_08,
47267 const t_ARG_09& arg_09,
47269
47270 template <class t_TYPE,
47271 class t_ARG_01,
47272 class t_ARG_02,
47273 class t_ARG_03,
47274 class t_ARG_04,
47275 class t_ARG_05,
47276 class t_ARG_06,
47277 class t_ARG_07,
47278 class t_ARG_08,
47279 class t_ARG_09,
47280 class t_ARG_10>
47281 explicit variant(bsl::allocator_arg_t,
47282 allocator_type allocator,
47284 const t_ARG_01& arg_01,
47285 const t_ARG_02& arg_02,
47286 const t_ARG_03& arg_03,
47287 const t_ARG_04& arg_04,
47288 const t_ARG_05& arg_05,
47289 const t_ARG_06& arg_06,
47290 const t_ARG_07& arg_07,
47291 const t_ARG_08& arg_08,
47292 const t_ARG_09& arg_09,
47293 const t_ARG_10& arg_10,
47295
47296 template <size_t t_INDEX>
47297 explicit variant(bsl::allocator_arg_t,
47298 allocator_type allocator,
47300
47301 template <size_t t_INDEX, class t_ARG_01>
47302 explicit variant(bsl::allocator_arg_t,
47303 allocator_type allocator,
47305 const t_ARG_01& arg_01);
47306
47307 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
47308 explicit variant(bsl::allocator_arg_t,
47309 allocator_type allocator,
47311 const t_ARG_01& arg_01,
47312 const t_ARG_02& arg_02);
47313
47314 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
47315 explicit variant(bsl::allocator_arg_t,
47316 allocator_type allocator,
47318 const t_ARG_01& arg_01,
47319 const t_ARG_02& arg_02,
47320 const t_ARG_03& arg_03);
47321
47322 template <size_t t_INDEX,
47323 class t_ARG_01,
47324 class t_ARG_02,
47325 class t_ARG_03,
47326 class t_ARG_04>
47327 explicit variant(bsl::allocator_arg_t,
47328 allocator_type allocator,
47330 const t_ARG_01& arg_01,
47331 const t_ARG_02& arg_02,
47332 const t_ARG_03& arg_03,
47333 const t_ARG_04& arg_04);
47334
47335 template <size_t t_INDEX,
47336 class t_ARG_01,
47337 class t_ARG_02,
47338 class t_ARG_03,
47339 class t_ARG_04,
47340 class t_ARG_05>
47341 explicit variant(bsl::allocator_arg_t,
47342 allocator_type allocator,
47344 const t_ARG_01& arg_01,
47345 const t_ARG_02& arg_02,
47346 const t_ARG_03& arg_03,
47347 const t_ARG_04& arg_04,
47348 const t_ARG_05& arg_05);
47349
47350 template <size_t t_INDEX,
47351 class t_ARG_01,
47352 class t_ARG_02,
47353 class t_ARG_03,
47354 class t_ARG_04,
47355 class t_ARG_05,
47356 class t_ARG_06>
47357 explicit variant(bsl::allocator_arg_t,
47358 allocator_type allocator,
47360 const t_ARG_01& arg_01,
47361 const t_ARG_02& arg_02,
47362 const t_ARG_03& arg_03,
47363 const t_ARG_04& arg_04,
47364 const t_ARG_05& arg_05,
47365 const t_ARG_06& arg_06);
47366
47367 template <size_t t_INDEX,
47368 class t_ARG_01,
47369 class t_ARG_02,
47370 class t_ARG_03,
47371 class t_ARG_04,
47372 class t_ARG_05,
47373 class t_ARG_06,
47374 class t_ARG_07>
47375 explicit variant(bsl::allocator_arg_t,
47376 allocator_type allocator,
47378 const t_ARG_01& arg_01,
47379 const t_ARG_02& arg_02,
47380 const t_ARG_03& arg_03,
47381 const t_ARG_04& arg_04,
47382 const t_ARG_05& arg_05,
47383 const t_ARG_06& arg_06,
47384 const t_ARG_07& arg_07);
47385
47386 template <size_t t_INDEX,
47387 class t_ARG_01,
47388 class t_ARG_02,
47389 class t_ARG_03,
47390 class t_ARG_04,
47391 class t_ARG_05,
47392 class t_ARG_06,
47393 class t_ARG_07,
47394 class t_ARG_08>
47395 explicit variant(bsl::allocator_arg_t,
47396 allocator_type allocator,
47398 const t_ARG_01& arg_01,
47399 const t_ARG_02& arg_02,
47400 const t_ARG_03& arg_03,
47401 const t_ARG_04& arg_04,
47402 const t_ARG_05& arg_05,
47403 const t_ARG_06& arg_06,
47404 const t_ARG_07& arg_07,
47405 const t_ARG_08& arg_08);
47406
47407 template <size_t t_INDEX,
47408 class t_ARG_01,
47409 class t_ARG_02,
47410 class t_ARG_03,
47411 class t_ARG_04,
47412 class t_ARG_05,
47413 class t_ARG_06,
47414 class t_ARG_07,
47415 class t_ARG_08,
47416 class t_ARG_09>
47417 explicit variant(bsl::allocator_arg_t,
47418 allocator_type allocator,
47420 const t_ARG_01& arg_01,
47421 const t_ARG_02& arg_02,
47422 const t_ARG_03& arg_03,
47423 const t_ARG_04& arg_04,
47424 const t_ARG_05& arg_05,
47425 const t_ARG_06& arg_06,
47426 const t_ARG_07& arg_07,
47427 const t_ARG_08& arg_08,
47428 const t_ARG_09& arg_09);
47429
47430 template <size_t t_INDEX,
47431 class t_ARG_01,
47432 class t_ARG_02,
47433 class t_ARG_03,
47434 class t_ARG_04,
47435 class t_ARG_05,
47436 class t_ARG_06,
47437 class t_ARG_07,
47438 class t_ARG_08,
47439 class t_ARG_09,
47440 class t_ARG_10>
47441 explicit variant(bsl::allocator_arg_t,
47442 allocator_type allocator,
47444 const t_ARG_01& arg_01,
47445 const t_ARG_02& arg_02,
47446 const t_ARG_03& arg_03,
47447 const t_ARG_04& arg_04,
47448 const t_ARG_05& arg_05,
47449 const t_ARG_06& arg_06,
47450 const t_ARG_07& arg_07,
47451 const t_ARG_08& arg_08,
47452 const t_ARG_09& arg_09,
47453 const t_ARG_10& arg_10);
47454
47455#endif
47456
47457
47458#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
47459 template <class t_TYPE,
47460 class t_ARGS_01,
47461 class t_ARGS_02,
47462 class t_ARGS_03,
47463 class t_ARGS_04,
47464 class t_ARGS_05,
47465 class t_ARGS_06,
47466 class = typename bsl::enable_if_t<
47468 std::is_constructible<t_TYPE, t_ARGS_01,
47469 t_ARGS_02,
47470 t_ARGS_03,
47471 t_ARGS_04,
47472 t_ARGS_05,
47473 t_ARGS_06>::value> >
47474 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
47475 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
47476 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
47477 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
47478 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
47479 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
47480 {
47481 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
47482 Variant_Base::template baseEmplace<index>(
47483 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
47484 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
47485 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
47486 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
47487 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
47488 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06));
47489
47490 return bsl::get<index>(*this);
47491 }
47492
47493 template <class t_TYPE,
47494 class INIT_LIST_TYPE,
47495 class t_ARGS_01,
47496 class t_ARGS_02,
47497 class t_ARGS_03,
47498 class t_ARGS_04,
47499 class t_ARGS_05,
47500 class t_ARGS_06,
47501 class = typename bsl::enable_if_t<
47503 std::is_constructible<t_TYPE,
47504 std::initializer_list<INIT_LIST_TYPE>&,
47505 t_ARGS_01,
47506 t_ARGS_02,
47507 t_ARGS_03,
47508 t_ARGS_04,
47509 t_ARGS_05,
47510 t_ARGS_06>::value> >
47511 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
47512 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
47513 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
47514 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
47515 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
47516 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
47517 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
47518 {
47519 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
47520 Variant_Base::template baseEmplace<index>(
47521 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
47522 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
47523 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
47524 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
47525 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
47526 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06));
47527
47528 return bsl::get<index>(*this);
47529 }
47530
47531 template <size_t t_INDEX,
47532 class t_ARGS_01,
47533 class t_ARGS_02,
47534 class t_ARGS_03,
47535 class t_ARGS_04,
47536 class t_ARGS_05,
47537 class t_ARGS_06,
47538 class = typename bsl::enable_if_t<
47539 (t_INDEX < 1 + 6u) &&
47540 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
47541 t_ARGS_01,
47542 t_ARGS_02,
47543 t_ARGS_03,
47544 t_ARGS_04,
47545 t_ARGS_05,
47546 t_ARGS_06>::value> >
47547 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47548 t_TAIL_02,
47549 t_TAIL_03,
47550 t_TAIL_04,
47551 t_TAIL_05,
47552 t_TAIL_06> >::type&
47553 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
47554 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
47555 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
47556 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
47557 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
47558 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
47559 {
47560 Variant_Base::template baseEmplace<t_INDEX>(
47561 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
47562 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
47563 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
47564 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
47565 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
47566 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06));
47567
47568 return bsl::get<t_INDEX>(*this);
47569 }
47570
47571 template <size_t t_INDEX,
47572 class INIT_LIST_TYPE,
47573 class t_ARGS_01,
47574 class t_ARGS_02,
47575 class t_ARGS_03,
47576 class t_ARGS_04,
47577 class t_ARGS_05,
47578 class t_ARGS_06,
47579 class = typename bsl::enable_if_t<
47580 (t_INDEX < 1 + 6u) &&
47581 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
47582 std::initializer_list<INIT_LIST_TYPE>&,
47583 t_ARGS_01,
47584 t_ARGS_02,
47585 t_ARGS_03,
47586 t_ARGS_04,
47587 t_ARGS_05,
47588 t_ARGS_06>::value> >
47589 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47590 t_TAIL_02,
47591 t_TAIL_03,
47592 t_TAIL_04,
47593 t_TAIL_05,
47594 t_TAIL_06> >::type&
47595 emplace(std::initializer_list<INIT_LIST_TYPE> il,
47596 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
47597 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
47598 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
47599 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
47600 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
47601 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06)
47602 {
47603 Variant_Base::template baseEmplace<t_INDEX>(
47604 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
47605 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
47606 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
47607 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
47608 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
47609 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06));
47610
47611 return bsl::get<t_INDEX>(*this);
47612 }
47613
47614#else
47615
47616 template <class t_TYPE>
47617 typename bsl::enable_if<
47618 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47619 t_TYPE&>::type
47620 emplace();
47621
47622 template <class t_TYPE, class t_ARG_01>
47623 typename bsl::enable_if<
47624 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47625 t_TYPE&>::type
47626 emplace(const t_ARG_01& arg_01);
47627
47628 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
47629 typename bsl::enable_if<
47630 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47631 t_TYPE&>::type
47632 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
47633
47634 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
47635 typename bsl::enable_if<
47636 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47637 t_TYPE&>::type
47638 emplace(const t_ARG_01& arg_01,
47639 const t_ARG_02& arg_02,
47640 const t_ARG_03& arg_03);
47641
47642 template <class t_TYPE,
47643 class t_ARG_01,
47644 class t_ARG_02,
47645 class t_ARG_03,
47646 class t_ARG_04>
47647 typename bsl::enable_if<
47648 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47649 t_TYPE&>::type
47650 emplace(const t_ARG_01& arg_01,
47651 const t_ARG_02& arg_02,
47652 const t_ARG_03& arg_03,
47653 const t_ARG_04& arg_04);
47654
47655 template <class t_TYPE,
47656 class t_ARG_01,
47657 class t_ARG_02,
47658 class t_ARG_03,
47659 class t_ARG_04,
47660 class t_ARG_05>
47661 typename bsl::enable_if<
47662 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47663 t_TYPE&>::type
47664 emplace(const t_ARG_01& arg_01,
47665 const t_ARG_02& arg_02,
47666 const t_ARG_03& arg_03,
47667 const t_ARG_04& arg_04,
47668 const t_ARG_05& arg_05);
47669
47670 template <class t_TYPE,
47671 class t_ARG_01,
47672 class t_ARG_02,
47673 class t_ARG_03,
47674 class t_ARG_04,
47675 class t_ARG_05,
47676 class t_ARG_06>
47677 typename bsl::enable_if<
47678 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47679 t_TYPE&>::type
47680 emplace(const t_ARG_01& arg_01,
47681 const t_ARG_02& arg_02,
47682 const t_ARG_03& arg_03,
47683 const t_ARG_04& arg_04,
47684 const t_ARG_05& arg_05,
47685 const t_ARG_06& arg_06);
47686
47687 template <class t_TYPE,
47688 class t_ARG_01,
47689 class t_ARG_02,
47690 class t_ARG_03,
47691 class t_ARG_04,
47692 class t_ARG_05,
47693 class t_ARG_06,
47694 class t_ARG_07>
47695 typename bsl::enable_if<
47696 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47697 t_TYPE&>::type
47698 emplace(const t_ARG_01& arg_01,
47699 const t_ARG_02& arg_02,
47700 const t_ARG_03& arg_03,
47701 const t_ARG_04& arg_04,
47702 const t_ARG_05& arg_05,
47703 const t_ARG_06& arg_06,
47704 const t_ARG_07& arg_07);
47705
47706 template <class t_TYPE,
47707 class t_ARG_01,
47708 class t_ARG_02,
47709 class t_ARG_03,
47710 class t_ARG_04,
47711 class t_ARG_05,
47712 class t_ARG_06,
47713 class t_ARG_07,
47714 class t_ARG_08>
47715 typename bsl::enable_if<
47716 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47717 t_TYPE&>::type
47718 emplace(const t_ARG_01& arg_01,
47719 const t_ARG_02& arg_02,
47720 const t_ARG_03& arg_03,
47721 const t_ARG_04& arg_04,
47722 const t_ARG_05& arg_05,
47723 const t_ARG_06& arg_06,
47724 const t_ARG_07& arg_07,
47725 const t_ARG_08& arg_08);
47726
47727 template <class t_TYPE,
47728 class t_ARG_01,
47729 class t_ARG_02,
47730 class t_ARG_03,
47731 class t_ARG_04,
47732 class t_ARG_05,
47733 class t_ARG_06,
47734 class t_ARG_07,
47735 class t_ARG_08,
47736 class t_ARG_09>
47737 typename bsl::enable_if<
47738 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47739 t_TYPE&>::type
47740 emplace(const t_ARG_01& arg_01,
47741 const t_ARG_02& arg_02,
47742 const t_ARG_03& arg_03,
47743 const t_ARG_04& arg_04,
47744 const t_ARG_05& arg_05,
47745 const t_ARG_06& arg_06,
47746 const t_ARG_07& arg_07,
47747 const t_ARG_08& arg_08,
47748 const t_ARG_09& arg_09);
47749
47750 template <class t_TYPE,
47751 class t_ARG_01,
47752 class t_ARG_02,
47753 class t_ARG_03,
47754 class t_ARG_04,
47755 class t_ARG_05,
47756 class t_ARG_06,
47757 class t_ARG_07,
47758 class t_ARG_08,
47759 class t_ARG_09,
47760 class t_ARG_10>
47761 typename bsl::enable_if<
47762 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
47763 t_TYPE&>::type
47764 emplace(const t_ARG_01& arg_01,
47765 const t_ARG_02& arg_02,
47766 const t_ARG_03& arg_03,
47767 const t_ARG_04& arg_04,
47768 const t_ARG_05& arg_05,
47769 const t_ARG_06& arg_06,
47770 const t_ARG_07& arg_07,
47771 const t_ARG_08& arg_08,
47772 const t_ARG_09& arg_09,
47773 const t_ARG_10& arg_10);
47774
47775 template <size_t t_INDEX>
47776 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47777 t_TAIL_02,
47778 t_TAIL_03,
47779 t_TAIL_04,
47780 t_TAIL_05,
47781 t_TAIL_06> >::type&
47782 emplace();
47783
47784 template <size_t t_INDEX, class t_ARG_01>
47785 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47786 t_TAIL_02,
47787 t_TAIL_03,
47788 t_TAIL_04,
47789 t_TAIL_05,
47790 t_TAIL_06> >::type&
47791 emplace(const t_ARG_01& arg_01);
47792
47793 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
47794 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47795 t_TAIL_02,
47796 t_TAIL_03,
47797 t_TAIL_04,
47798 t_TAIL_05,
47799 t_TAIL_06> >::type&
47800 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
47801
47802 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
47803 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47804 t_TAIL_02,
47805 t_TAIL_03,
47806 t_TAIL_04,
47807 t_TAIL_05,
47808 t_TAIL_06> >::type&
47809 emplace(const t_ARG_01& arg_01,
47810 const t_ARG_02& arg_02,
47811 const t_ARG_03& arg_03);
47812
47813 template <size_t t_INDEX,
47814 class t_ARG_01,
47815 class t_ARG_02,
47816 class t_ARG_03,
47817 class t_ARG_04>
47818 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47819 t_TAIL_02,
47820 t_TAIL_03,
47821 t_TAIL_04,
47822 t_TAIL_05,
47823 t_TAIL_06> >::type&
47824 emplace(const t_ARG_01& arg_01,
47825 const t_ARG_02& arg_02,
47826 const t_ARG_03& arg_03,
47827 const t_ARG_04& arg_04);
47828
47829 template <size_t t_INDEX,
47830 class t_ARG_01,
47831 class t_ARG_02,
47832 class t_ARG_03,
47833 class t_ARG_04,
47834 class t_ARG_05>
47835 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47836 t_TAIL_02,
47837 t_TAIL_03,
47838 t_TAIL_04,
47839 t_TAIL_05,
47840 t_TAIL_06> >::type&
47841 emplace(const t_ARG_01& arg_01,
47842 const t_ARG_02& arg_02,
47843 const t_ARG_03& arg_03,
47844 const t_ARG_04& arg_04,
47845 const t_ARG_05& arg_05);
47846
47847 template <size_t t_INDEX,
47848 class t_ARG_01,
47849 class t_ARG_02,
47850 class t_ARG_03,
47851 class t_ARG_04,
47852 class t_ARG_05,
47853 class t_ARG_06>
47854 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47855 t_TAIL_02,
47856 t_TAIL_03,
47857 t_TAIL_04,
47858 t_TAIL_05,
47859 t_TAIL_06> >::type&
47860 emplace(const t_ARG_01& arg_01,
47861 const t_ARG_02& arg_02,
47862 const t_ARG_03& arg_03,
47863 const t_ARG_04& arg_04,
47864 const t_ARG_05& arg_05,
47865 const t_ARG_06& arg_06);
47866
47867 template <size_t t_INDEX,
47868 class t_ARG_01,
47869 class t_ARG_02,
47870 class t_ARG_03,
47871 class t_ARG_04,
47872 class t_ARG_05,
47873 class t_ARG_06,
47874 class t_ARG_07>
47875 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47876 t_TAIL_02,
47877 t_TAIL_03,
47878 t_TAIL_04,
47879 t_TAIL_05,
47880 t_TAIL_06> >::type&
47881 emplace(const t_ARG_01& arg_01,
47882 const t_ARG_02& arg_02,
47883 const t_ARG_03& arg_03,
47884 const t_ARG_04& arg_04,
47885 const t_ARG_05& arg_05,
47886 const t_ARG_06& arg_06,
47887 const t_ARG_07& arg_07);
47888
47889 template <size_t t_INDEX,
47890 class t_ARG_01,
47891 class t_ARG_02,
47892 class t_ARG_03,
47893 class t_ARG_04,
47894 class t_ARG_05,
47895 class t_ARG_06,
47896 class t_ARG_07,
47897 class t_ARG_08>
47898 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47899 t_TAIL_02,
47900 t_TAIL_03,
47901 t_TAIL_04,
47902 t_TAIL_05,
47903 t_TAIL_06> >::type&
47904 emplace(const t_ARG_01& arg_01,
47905 const t_ARG_02& arg_02,
47906 const t_ARG_03& arg_03,
47907 const t_ARG_04& arg_04,
47908 const t_ARG_05& arg_05,
47909 const t_ARG_06& arg_06,
47910 const t_ARG_07& arg_07,
47911 const t_ARG_08& arg_08);
47912
47913 template <size_t t_INDEX,
47914 class t_ARG_01,
47915 class t_ARG_02,
47916 class t_ARG_03,
47917 class t_ARG_04,
47918 class t_ARG_05,
47919 class t_ARG_06,
47920 class t_ARG_07,
47921 class t_ARG_08,
47922 class t_ARG_09>
47923 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47924 t_TAIL_02,
47925 t_TAIL_03,
47926 t_TAIL_04,
47927 t_TAIL_05,
47928 t_TAIL_06> >::type&
47929 emplace(const t_ARG_01& arg_01,
47930 const t_ARG_02& arg_02,
47931 const t_ARG_03& arg_03,
47932 const t_ARG_04& arg_04,
47933 const t_ARG_05& arg_05,
47934 const t_ARG_06& arg_06,
47935 const t_ARG_07& arg_07,
47936 const t_ARG_08& arg_08,
47937 const t_ARG_09& arg_09);
47938
47939 template <size_t t_INDEX,
47940 class t_ARG_01,
47941 class t_ARG_02,
47942 class t_ARG_03,
47943 class t_ARG_04,
47944 class t_ARG_05,
47945 class t_ARG_06,
47946 class t_ARG_07,
47947 class t_ARG_08,
47948 class t_ARG_09,
47949 class t_ARG_10>
47950 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
47951 t_TAIL_02,
47952 t_TAIL_03,
47953 t_TAIL_04,
47954 t_TAIL_05,
47955 t_TAIL_06> >::type&
47956 emplace(const t_ARG_01& arg_01,
47957 const t_ARG_02& arg_02,
47958 const t_ARG_03& arg_03,
47959 const t_ARG_04& arg_04,
47960 const t_ARG_05& arg_05,
47961 const t_ARG_06& arg_06,
47962 const t_ARG_07& arg_07,
47963 const t_ARG_08& arg_08,
47964 const t_ARG_09& arg_09,
47965 const t_ARG_10& arg_10);
47966#endif
47967
47968#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
47969 variant& operator=(const variant& rhs) = default;
47970
47971 variant& operator=(variant&& rhs) = default;
47972
47973 template <class t_TYPE>
47974 typename bsl::enable_if<
47975 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
47976 variant&>::type
47977 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
47978 {
47979 const size_t altIndex =
47980 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
47981
47982 if (index() == altIndex) {
47983 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
47984 value);
47985 }
47986 else {
47987 Variant_Base::template baseEmplace<altIndex>(
47988 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
47989 }
47990
47991 return *this;
47992 }
47993#else
47994 variant& operator=(const variant& rhs);
47995
47996 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
47997
47998 template <class t_TYPE>
47999 typename bsl::enable_if<
48000 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
48001 variant&>::type
48002 operator=(const t_TYPE& value);
48003
48004#endif
48005
48006 void swap(variant& other);
48007
48008#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
48009 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
48010 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
48011 t_TAIL_02,
48012 t_TAIL_03,
48013 t_TAIL_04,
48014 t_TAIL_05,
48015 t_TAIL_06>::value,
48016 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
48017#endif
48018 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
48019 {
48020 return allocator_type(Variant_Base::AllocBase::mechanism());
48021 }
48022
48023
48024 size_t index() const BSLS_KEYWORD_NOEXCEPT;
48025
48026 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
48027};
48028#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 6
48029
48030#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 7
48031template <class t_HEAD, class t_TAIL_01,
48032 class t_TAIL_02,
48033 class t_TAIL_03,
48034 class t_TAIL_04,
48035 class t_TAIL_05,
48036 class t_TAIL_06,
48037 class t_TAIL_07>
48038class variant<t_HEAD, t_TAIL_01,
48039 t_TAIL_02,
48040 t_TAIL_03,
48041 t_TAIL_04,
48042 t_TAIL_05,
48043 t_TAIL_06,
48044 t_TAIL_07>
48045: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
48046 t_TAIL_02,
48047 t_TAIL_03,
48048 t_TAIL_04,
48049 t_TAIL_05,
48050 t_TAIL_06,
48051 t_TAIL_07>
48052#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
48053,
48054 private BloombergLP::bslstl::Variant_SMFBase<
48055 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
48056 t_TAIL_01,
48057 t_TAIL_02,
48058 t_TAIL_03,
48059 t_TAIL_04,
48060 t_TAIL_05,
48061 t_TAIL_06,
48062 t_TAIL_07>::value,
48063 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
48064 t_TAIL_01,
48065 t_TAIL_02,
48066 t_TAIL_03,
48067 t_TAIL_04,
48068 t_TAIL_05,
48069 t_TAIL_06,
48070 t_TAIL_07>::value,
48071 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
48072 t_TAIL_01,
48073 t_TAIL_02,
48074 t_TAIL_03,
48075 t_TAIL_04,
48076 t_TAIL_05,
48077 t_TAIL_06,
48078 t_TAIL_07>::value &&
48079 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
48080 t_TAIL_01,
48081 t_TAIL_02,
48082 t_TAIL_03,
48083 t_TAIL_04,
48084 t_TAIL_05,
48085 t_TAIL_06,
48086 t_TAIL_07>::value,
48087 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
48088 t_TAIL_01,
48089 t_TAIL_02,
48090 t_TAIL_03,
48091 t_TAIL_04,
48092 t_TAIL_05,
48093 t_TAIL_06,
48094 t_TAIL_07>::value &&
48095 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
48096 t_TAIL_01,
48097 t_TAIL_02,
48098 t_TAIL_03,
48099 t_TAIL_04,
48100 t_TAIL_05,
48101 t_TAIL_06,
48102 t_TAIL_07>::value>
48103#endif
48104{
48105 private:
48106 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
48107 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
48108 t_TAIL_02,
48109 t_TAIL_03,
48110 t_TAIL_04,
48111 t_TAIL_05,
48112 t_TAIL_06,
48113 t_TAIL_07> Variant_Base;
48114 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
48115 t_TAIL_02,
48116 t_TAIL_03,
48117 t_TAIL_04,
48118 t_TAIL_05,
48119 t_TAIL_06,
48120 t_TAIL_07>
48121 Variant_Union;
48122
48123 friend struct BloombergLP::bslstl::Variant_ImpUtil;
48124
48125 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
48126 t_TAIL_02,
48127 t_TAIL_03,
48128 t_TAIL_04,
48129 t_TAIL_05,
48130 t_TAIL_06,
48131 t_TAIL_07>;
48132
48133 public:
48135 variant,
48136 BloombergLP::bslma::UsesBslmaAllocator,
48137 (BloombergLP::bslstl::
48138 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
48139 t_TAIL_02,
48140 t_TAIL_03,
48141 t_TAIL_04,
48142 t_TAIL_05,
48143 t_TAIL_06,
48144 t_TAIL_07>::value));
48146 variant,
48147 BloombergLP::bslmf::UsesAllocatorArgT,
48148 (BloombergLP::bslstl::
48149 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
48150 t_TAIL_02,
48151 t_TAIL_03,
48152 t_TAIL_04,
48153 t_TAIL_05,
48154 t_TAIL_06,
48155 t_TAIL_07>::value));
48157 variant,
48158 BloombergLP::bslmf::IsBitwiseMoveable,
48159 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
48160 t_TAIL_01,
48161 t_TAIL_02,
48162 t_TAIL_03,
48163 t_TAIL_04,
48164 t_TAIL_05,
48165 t_TAIL_06,
48166 t_TAIL_07>::value));
48167
48168
48169 typedef typename Variant_Base::allocator_type allocator_type;
48170
48171
48172#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
48173 template <class t_FIRST_ALT = t_HEAD,
48174 class = typename bsl::enable_if_t<
48175 std::is_default_constructible<t_FIRST_ALT>::value> >
48176 variant()
48177 : Variant_Base()
48178 {
48179 }
48180
48181 variant(const variant& original) = default;
48182
48183 variant(variant&& original) = default;
48184
48185#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
48186 template <class t_STD_VARIANT>
48187 explicit variant(
48188 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
48190 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
48191 original.index())
48192 {
48193 if (!valueless_by_exception()) {
48194 BloombergLP::bslstl::Variant_ImpUtil::
48195 ConstructFromStdVisitor<variant, decltype(original)>
48196 visitor(*this, original);
48197 BSLSTL_VARIANT_VISITID(void, visitor, *this);
48198 }
48199 }
48200#endif
48201
48202 template <class t_TYPE>
48203 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
48205
48206 template <class t_TYPE,
48207 class t_ARGS_01,
48208 class t_ARGS_02,
48209 class t_ARGS_03,
48210 class t_ARGS_04,
48211 class t_ARGS_05,
48212 class t_ARGS_06,
48213 class t_ARGS_07,
48214 class = typename bsl::enable_if_t<
48216 std::is_constructible<t_TYPE, t_ARGS_01,
48217 t_ARGS_02,
48218 t_ARGS_03,
48219 t_ARGS_04,
48220 t_ARGS_05,
48221 t_ARGS_06,
48222 t_ARGS_07>::value> >
48223 explicit variant(bsl::in_place_type_t<t_TYPE>,
48224 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48225 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48226 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48227 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48228 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48229 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48230 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48231 : Variant_Base(
48232 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
48233 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
48234 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
48235 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
48236 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
48237 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
48238 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
48239 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07))
48240 {
48241 }
48242
48243 template <class t_TYPE,
48244 class INIT_LIST_TYPE,
48245 class t_ARGS_01,
48246 class t_ARGS_02,
48247 class t_ARGS_03,
48248 class t_ARGS_04,
48249 class t_ARGS_05,
48250 class t_ARGS_06,
48251 class t_ARGS_07,
48252 class = typename bsl::enable_if_t<
48254 std::is_constructible<t_TYPE,
48255 std::initializer_list<INIT_LIST_TYPE>&,
48256 t_ARGS_01,
48257 t_ARGS_02,
48258 t_ARGS_03,
48259 t_ARGS_04,
48260 t_ARGS_05,
48261 t_ARGS_06,
48262 t_ARGS_07>::value> >
48263 explicit variant(bsl::in_place_type_t<t_TYPE>,
48264 std::initializer_list<INIT_LIST_TYPE> il,
48265 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48266 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48267 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48268 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48269 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48270 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48271 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48272 : Variant_Base(
48273 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
48274 il,
48275 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
48276 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
48277 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
48278 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
48279 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
48280 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
48281 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07))
48282 {
48283 }
48284
48285 template <size_t t_INDEX,
48286 class t_ARGS_01,
48287 class t_ARGS_02,
48288 class t_ARGS_03,
48289 class t_ARGS_04,
48290 class t_ARGS_05,
48291 class t_ARGS_06,
48292 class t_ARGS_07,
48293 class = typename bsl::enable_if_t<
48294 (t_INDEX < 1 + 7u) &&
48295 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
48296 t_ARGS_01,
48297 t_ARGS_02,
48298 t_ARGS_03,
48299 t_ARGS_04,
48300 t_ARGS_05,
48301 t_ARGS_06,
48302 t_ARGS_07>::value> >
48303 explicit variant(bsl::in_place_index_t<t_INDEX>,
48304 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48305 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48306 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48307 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48308 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48309 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48310 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48311 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
48312 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
48313 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
48314 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
48315 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
48316 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
48317 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
48318 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07))
48319 {
48320 }
48321
48322 template <size_t t_INDEX,
48323 class INIT_LIST_TYPE,
48324 class t_ARGS_01,
48325 class t_ARGS_02,
48326 class t_ARGS_03,
48327 class t_ARGS_04,
48328 class t_ARGS_05,
48329 class t_ARGS_06,
48330 class t_ARGS_07,
48331 class = typename bsl::enable_if_t<
48332 (t_INDEX < 1 + 7u) &&
48333 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
48334 std::initializer_list<INIT_LIST_TYPE>&,
48335 t_ARGS_01,
48336 t_ARGS_02,
48337 t_ARGS_03,
48338 t_ARGS_04,
48339 t_ARGS_05,
48340 t_ARGS_06,
48341 t_ARGS_07>::value> >
48342 explicit variant(bsl::in_place_index_t<t_INDEX>,
48343 std::initializer_list<INIT_LIST_TYPE> il,
48344 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48345 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48346 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48347 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48348 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48349 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48350 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48351 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
48352 il,
48353 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
48354 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
48355 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
48356 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
48357 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
48358 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
48359 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07))
48360 {
48361 }
48362
48363 template <class FIRST = t_HEAD,
48364 class = typename bsl::enable_if_t<
48365 std::is_default_constructible<FIRST>::value> >
48366 variant(bsl::allocator_arg_t, allocator_type allocator)
48367 : Variant_Base(bsl::allocator_arg_t(), allocator)
48368 {
48369 }
48370
48371 template <
48372 class FIRST = t_HEAD,
48373 class = typename bsl::enable_if_t<
48374 BloombergLP::bslstl::
48375 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
48376 t_TAIL_02,
48377 t_TAIL_03,
48378 t_TAIL_04,
48379 t_TAIL_05,
48380 t_TAIL_06,
48381 t_TAIL_07>::value> >
48382 variant(bsl::allocator_arg_t,
48383 allocator_type allocator,
48384 const variant& original)
48385 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
48386 {
48387 }
48388 template <
48389 class FIRST = t_HEAD,
48390 class = typename bsl::enable_if_t<
48391 BloombergLP::bslstl::
48392 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
48393 t_TAIL_02,
48394 t_TAIL_03,
48395 t_TAIL_04,
48396 t_TAIL_05,
48397 t_TAIL_06,
48398 t_TAIL_07>::value> >
48399 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
48400 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
48401 {
48402 }
48403
48404#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
48405 template <class t_STD_VARIANT>
48406 explicit variant(
48407 bsl::allocator_arg_t,
48408 allocator_type allocator,
48409 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
48411 : Variant_Base(bsl::allocator_arg_t(),
48412 allocator,
48413 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
48414 original.index())
48415 {
48416 if (!valueless_by_exception()) {
48417 BloombergLP::bslstl::Variant_ImpUtil::
48418 ConstructFromStdVisitor<variant, decltype(original)>
48419 visitor(*this, original);
48420 BSLSTL_VARIANT_VISITID(void, visitor, *this);
48421 }
48422 }
48423#endif
48424
48425 template <class t_TYPE>
48426 variant(
48427 bsl::allocator_arg_t,
48428 allocator_type allocator,
48431
48432 template <class t_TYPE,
48433 class t_ARGS_01,
48434 class t_ARGS_02,
48435 class t_ARGS_03,
48436 class t_ARGS_04,
48437 class t_ARGS_05,
48438 class t_ARGS_06,
48439 class t_ARGS_07,
48440 class = typename bsl::enable_if_t<
48442 std::is_constructible<t_TYPE, t_ARGS_01,
48443 t_ARGS_02,
48444 t_ARGS_03,
48445 t_ARGS_04,
48446 t_ARGS_05,
48447 t_ARGS_06,
48448 t_ARGS_07>::value> >
48449 explicit variant(bsl::allocator_arg_t,
48450 allocator_type allocator,
48452 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48453 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48454 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48455 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48456 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48457 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48458 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48459 : Variant_Base(
48460 bsl::allocator_arg_t{}
48461,
48462 allocator,
48463 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
48464 std::forward<t_ARGS_01>(args_01),
48465 std::forward<t_ARGS_02>(args_02),
48466 std::forward<t_ARGS_03>(args_03),
48467 std::forward<t_ARGS_04>(args_04),
48468 std::forward<t_ARGS_05>(args_05),
48469 std::forward<t_ARGS_06>(args_06),
48470 std::forward<t_ARGS_07>(args_07))
48471 {
48472 }
48473
48474 template <class t_TYPE,
48475 class INIT_LIST_TYPE,
48476 class t_ARGS_01,
48477 class t_ARGS_02,
48478 class t_ARGS_03,
48479 class t_ARGS_04,
48480 class t_ARGS_05,
48481 class t_ARGS_06,
48482 class t_ARGS_07,
48483 class = typename bsl::enable_if_t<
48485 std::is_constructible<t_TYPE,
48486 std::initializer_list<INIT_LIST_TYPE>&,
48487 t_ARGS_01,
48488 t_ARGS_02,
48489 t_ARGS_03,
48490 t_ARGS_04,
48491 t_ARGS_05,
48492 t_ARGS_06,
48493 t_ARGS_07>::value> >
48494 explicit variant(bsl::allocator_arg_t,
48495 allocator_type allocator,
48497 std::initializer_list<INIT_LIST_TYPE> il,
48498 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48499 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48500 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48501 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48502 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48503 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48504 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48505 : Variant_Base(
48506 bsl::allocator_arg_t{}
48507,
48508 allocator,
48509 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
48510 il,
48511 std::forward<t_ARGS_01>(args_01),
48512 std::forward<t_ARGS_02>(args_02),
48513 std::forward<t_ARGS_03>(args_03),
48514 std::forward<t_ARGS_04>(args_04),
48515 std::forward<t_ARGS_05>(args_05),
48516 std::forward<t_ARGS_06>(args_06),
48517 std::forward<t_ARGS_07>(args_07))
48518 {
48519 }
48520
48521 template <size_t t_INDEX,
48522 class t_ARGS_01,
48523 class t_ARGS_02,
48524 class t_ARGS_03,
48525 class t_ARGS_04,
48526 class t_ARGS_05,
48527 class t_ARGS_06,
48528 class t_ARGS_07,
48529 class = typename bsl::enable_if_t<
48530 (t_INDEX < 1 + 7u) &&
48531 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
48532 t_ARGS_01,
48533 t_ARGS_02,
48534 t_ARGS_03,
48535 t_ARGS_04,
48536 t_ARGS_05,
48537 t_ARGS_06,
48538 t_ARGS_07>::value> >
48539 explicit variant(bsl::allocator_arg_t,
48540 allocator_type allocator,
48542 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48543 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48544 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48545 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48546 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48547 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48548 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48549 : Variant_Base(bsl::allocator_arg_t{}
48550,
48551 allocator,
48552 bsl::in_place_index_t<t_INDEX>(),
48553 std::forward<t_ARGS_01>(args_01),
48554 std::forward<t_ARGS_02>(args_02),
48555 std::forward<t_ARGS_03>(args_03),
48556 std::forward<t_ARGS_04>(args_04),
48557 std::forward<t_ARGS_05>(args_05),
48558 std::forward<t_ARGS_06>(args_06),
48559 std::forward<t_ARGS_07>(args_07))
48560 {
48561 }
48562
48563 template <size_t t_INDEX,
48564 class INIT_LIST_TYPE,
48565 class t_ARGS_01,
48566 class t_ARGS_02,
48567 class t_ARGS_03,
48568 class t_ARGS_04,
48569 class t_ARGS_05,
48570 class t_ARGS_06,
48571 class t_ARGS_07,
48572 class = typename bsl::enable_if_t<
48573 (t_INDEX < 1 + 7u) &&
48574 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
48575 std::initializer_list<INIT_LIST_TYPE>&,
48576 t_ARGS_01,
48577 t_ARGS_02,
48578 t_ARGS_03,
48579 t_ARGS_04,
48580 t_ARGS_05,
48581 t_ARGS_06,
48582 t_ARGS_07>::value> >
48583 explicit variant(bsl::allocator_arg_t,
48584 allocator_type allocator,
48586 std::initializer_list<INIT_LIST_TYPE> il,
48587 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
48588 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
48589 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
48590 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
48591 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
48592 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
48593 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
48594 : Variant_Base(bsl::allocator_arg_t{}
48595,
48596 allocator,
48597 bsl::in_place_index_t<t_INDEX>(),
48598 il,
48599 std::forward<t_ARGS_01>(args_01),
48600 std::forward<t_ARGS_02>(args_02),
48601 std::forward<t_ARGS_03>(args_03),
48602 std::forward<t_ARGS_04>(args_04),
48603 std::forward<t_ARGS_05>(args_05),
48604 std::forward<t_ARGS_06>(args_06),
48605 std::forward<t_ARGS_07>(args_07))
48606 {
48607 }
48608
48609#else
48610
48611 variant();
48612
48613 variant(const variant& original);
48614
48615 variant(BloombergLP::bslmf::MovableRef<variant> original);
48616
48617 template <class t_TYPE>
48618 variant(const t_TYPE& value,
48620
48621 template <class t_TYPE>
48622 explicit variant(bsl::in_place_type_t<t_TYPE>,
48624
48625 template <class t_TYPE, class t_ARG_01>
48626 explicit variant(bsl::in_place_type_t<t_TYPE>,
48627 const t_ARG_01& arg_01,
48629
48630 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
48631 explicit variant(bsl::in_place_type_t<t_TYPE>,
48632 const t_ARG_01& arg_01,
48633 const t_ARG_02& arg_02,
48635
48636 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
48637 explicit variant(bsl::in_place_type_t<t_TYPE>,
48638 const t_ARG_01& arg_01,
48639 const t_ARG_02& arg_02,
48640 const t_ARG_03& arg_03,
48642
48643 template <class t_TYPE,
48644 class t_ARG_01,
48645 class t_ARG_02,
48646 class t_ARG_03,
48647 class t_ARG_04>
48648 explicit variant(bsl::in_place_type_t<t_TYPE>,
48649 const t_ARG_01& arg_01,
48650 const t_ARG_02& arg_02,
48651 const t_ARG_03& arg_03,
48652 const t_ARG_04& arg_04,
48654
48655 template <class t_TYPE,
48656 class t_ARG_01,
48657 class t_ARG_02,
48658 class t_ARG_03,
48659 class t_ARG_04,
48660 class t_ARG_05>
48661 explicit variant(bsl::in_place_type_t<t_TYPE>,
48662 const t_ARG_01& arg_01,
48663 const t_ARG_02& arg_02,
48664 const t_ARG_03& arg_03,
48665 const t_ARG_04& arg_04,
48666 const t_ARG_05& arg_05,
48668
48669 template <class t_TYPE,
48670 class t_ARG_01,
48671 class t_ARG_02,
48672 class t_ARG_03,
48673 class t_ARG_04,
48674 class t_ARG_05,
48675 class t_ARG_06>
48676 explicit variant(bsl::in_place_type_t<t_TYPE>,
48677 const t_ARG_01& arg_01,
48678 const t_ARG_02& arg_02,
48679 const t_ARG_03& arg_03,
48680 const t_ARG_04& arg_04,
48681 const t_ARG_05& arg_05,
48682 const t_ARG_06& arg_06,
48684
48685 template <class t_TYPE,
48686 class t_ARG_01,
48687 class t_ARG_02,
48688 class t_ARG_03,
48689 class t_ARG_04,
48690 class t_ARG_05,
48691 class t_ARG_06,
48692 class t_ARG_07>
48693 explicit variant(bsl::in_place_type_t<t_TYPE>,
48694 const t_ARG_01& arg_01,
48695 const t_ARG_02& arg_02,
48696 const t_ARG_03& arg_03,
48697 const t_ARG_04& arg_04,
48698 const t_ARG_05& arg_05,
48699 const t_ARG_06& arg_06,
48700 const t_ARG_07& arg_07,
48702
48703 template <class t_TYPE,
48704 class t_ARG_01,
48705 class t_ARG_02,
48706 class t_ARG_03,
48707 class t_ARG_04,
48708 class t_ARG_05,
48709 class t_ARG_06,
48710 class t_ARG_07,
48711 class t_ARG_08>
48712 explicit variant(bsl::in_place_type_t<t_TYPE>,
48713 const t_ARG_01& arg_01,
48714 const t_ARG_02& arg_02,
48715 const t_ARG_03& arg_03,
48716 const t_ARG_04& arg_04,
48717 const t_ARG_05& arg_05,
48718 const t_ARG_06& arg_06,
48719 const t_ARG_07& arg_07,
48720 const t_ARG_08& arg_08,
48722
48723 template <class t_TYPE,
48724 class t_ARG_01,
48725 class t_ARG_02,
48726 class t_ARG_03,
48727 class t_ARG_04,
48728 class t_ARG_05,
48729 class t_ARG_06,
48730 class t_ARG_07,
48731 class t_ARG_08,
48732 class t_ARG_09>
48733 explicit variant(bsl::in_place_type_t<t_TYPE>,
48734 const t_ARG_01& arg_01,
48735 const t_ARG_02& arg_02,
48736 const t_ARG_03& arg_03,
48737 const t_ARG_04& arg_04,
48738 const t_ARG_05& arg_05,
48739 const t_ARG_06& arg_06,
48740 const t_ARG_07& arg_07,
48741 const t_ARG_08& arg_08,
48742 const t_ARG_09& arg_09,
48744
48745 template <class t_TYPE,
48746 class t_ARG_01,
48747 class t_ARG_02,
48748 class t_ARG_03,
48749 class t_ARG_04,
48750 class t_ARG_05,
48751 class t_ARG_06,
48752 class t_ARG_07,
48753 class t_ARG_08,
48754 class t_ARG_09,
48755 class t_ARG_10>
48756 explicit variant(bsl::in_place_type_t<t_TYPE>,
48757 const t_ARG_01& arg_01,
48758 const t_ARG_02& arg_02,
48759 const t_ARG_03& arg_03,
48760 const t_ARG_04& arg_04,
48761 const t_ARG_05& arg_05,
48762 const t_ARG_06& arg_06,
48763 const t_ARG_07& arg_07,
48764 const t_ARG_08& arg_08,
48765 const t_ARG_09& arg_09,
48766 const t_ARG_10& arg_10,
48768
48769 template <size_t t_INDEX>
48770 explicit variant(bsl::in_place_index_t<t_INDEX>);
48771
48772 template <size_t t_INDEX, class t_ARG_01>
48773 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
48774
48775 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
48776 explicit variant(bsl::in_place_index_t<t_INDEX>,
48777 const t_ARG_01& arg_01,
48778 const t_ARG_02& arg_02);
48779
48780 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
48781 explicit variant(bsl::in_place_index_t<t_INDEX>,
48782 const t_ARG_01& arg_01,
48783 const t_ARG_02& arg_02,
48784 const t_ARG_03& arg_03);
48785
48786 template <size_t t_INDEX,
48787 class t_ARG_01,
48788 class t_ARG_02,
48789 class t_ARG_03,
48790 class t_ARG_04>
48791 explicit variant(bsl::in_place_index_t<t_INDEX>,
48792 const t_ARG_01& arg_01,
48793 const t_ARG_02& arg_02,
48794 const t_ARG_03& arg_03,
48795 const t_ARG_04& arg_04);
48796
48797 template <size_t t_INDEX,
48798 class t_ARG_01,
48799 class t_ARG_02,
48800 class t_ARG_03,
48801 class t_ARG_04,
48802 class t_ARG_05>
48803 explicit variant(bsl::in_place_index_t<t_INDEX>,
48804 const t_ARG_01& arg_01,
48805 const t_ARG_02& arg_02,
48806 const t_ARG_03& arg_03,
48807 const t_ARG_04& arg_04,
48808 const t_ARG_05& arg_05);
48809
48810 template <size_t t_INDEX,
48811 class t_ARG_01,
48812 class t_ARG_02,
48813 class t_ARG_03,
48814 class t_ARG_04,
48815 class t_ARG_05,
48816 class t_ARG_06>
48817 explicit variant(bsl::in_place_index_t<t_INDEX>,
48818 const t_ARG_01& arg_01,
48819 const t_ARG_02& arg_02,
48820 const t_ARG_03& arg_03,
48821 const t_ARG_04& arg_04,
48822 const t_ARG_05& arg_05,
48823 const t_ARG_06& arg_06);
48824
48825 template <size_t t_INDEX,
48826 class t_ARG_01,
48827 class t_ARG_02,
48828 class t_ARG_03,
48829 class t_ARG_04,
48830 class t_ARG_05,
48831 class t_ARG_06,
48832 class t_ARG_07>
48833 explicit variant(bsl::in_place_index_t<t_INDEX>,
48834 const t_ARG_01& arg_01,
48835 const t_ARG_02& arg_02,
48836 const t_ARG_03& arg_03,
48837 const t_ARG_04& arg_04,
48838 const t_ARG_05& arg_05,
48839 const t_ARG_06& arg_06,
48840 const t_ARG_07& arg_07);
48841
48842 template <size_t t_INDEX,
48843 class t_ARG_01,
48844 class t_ARG_02,
48845 class t_ARG_03,
48846 class t_ARG_04,
48847 class t_ARG_05,
48848 class t_ARG_06,
48849 class t_ARG_07,
48850 class t_ARG_08>
48851 explicit variant(bsl::in_place_index_t<t_INDEX>,
48852 const t_ARG_01& arg_01,
48853 const t_ARG_02& arg_02,
48854 const t_ARG_03& arg_03,
48855 const t_ARG_04& arg_04,
48856 const t_ARG_05& arg_05,
48857 const t_ARG_06& arg_06,
48858 const t_ARG_07& arg_07,
48859 const t_ARG_08& arg_08);
48860
48861 template <size_t t_INDEX,
48862 class t_ARG_01,
48863 class t_ARG_02,
48864 class t_ARG_03,
48865 class t_ARG_04,
48866 class t_ARG_05,
48867 class t_ARG_06,
48868 class t_ARG_07,
48869 class t_ARG_08,
48870 class t_ARG_09>
48871 explicit variant(bsl::in_place_index_t<t_INDEX>,
48872 const t_ARG_01& arg_01,
48873 const t_ARG_02& arg_02,
48874 const t_ARG_03& arg_03,
48875 const t_ARG_04& arg_04,
48876 const t_ARG_05& arg_05,
48877 const t_ARG_06& arg_06,
48878 const t_ARG_07& arg_07,
48879 const t_ARG_08& arg_08,
48880 const t_ARG_09& arg_09);
48881
48882 template <size_t t_INDEX,
48883 class t_ARG_01,
48884 class t_ARG_02,
48885 class t_ARG_03,
48886 class t_ARG_04,
48887 class t_ARG_05,
48888 class t_ARG_06,
48889 class t_ARG_07,
48890 class t_ARG_08,
48891 class t_ARG_09,
48892 class t_ARG_10>
48893 explicit variant(bsl::in_place_index_t<t_INDEX>,
48894 const t_ARG_01& arg_01,
48895 const t_ARG_02& arg_02,
48896 const t_ARG_03& arg_03,
48897 const t_ARG_04& arg_04,
48898 const t_ARG_05& arg_05,
48899 const t_ARG_06& arg_06,
48900 const t_ARG_07& arg_07,
48901 const t_ARG_08& arg_08,
48902 const t_ARG_09& arg_09,
48903 const t_ARG_10& arg_10);
48904
48905 variant(bsl::allocator_arg_t, allocator_type allocator);
48906
48907 variant(bsl::allocator_arg_t,
48908 allocator_type allocator,
48909 const variant& original);
48910 variant(bsl::allocator_arg_t,
48911 allocator_type allocator,
48912 BloombergLP::bslmf::MovableRef<variant> original);
48913
48914 template <class t_TYPE>
48915 variant(
48916 bsl::allocator_arg_t,
48917 allocator_type allocator,
48918 const t_TYPE& value,
48920
48921 template <class t_TYPE>
48922 explicit variant(
48923 bsl::allocator_arg_t,
48924 allocator_type allocator,
48927
48928 template <class t_TYPE, class t_ARG_01>
48929 explicit variant(
48930 bsl::allocator_arg_t,
48931 allocator_type allocator,
48933 const t_ARG_01& arg_01,
48935
48936 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
48937 explicit variant(
48938 bsl::allocator_arg_t,
48939 allocator_type allocator,
48941 const t_ARG_01& arg_01,
48942 const t_ARG_02& arg_02,
48944
48945 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
48946 explicit variant(
48947 bsl::allocator_arg_t,
48948 allocator_type allocator,
48950 const t_ARG_01& arg_01,
48951 const t_ARG_02& arg_02,
48952 const t_ARG_03& arg_03,
48954
48955 template <class t_TYPE,
48956 class t_ARG_01,
48957 class t_ARG_02,
48958 class t_ARG_03,
48959 class t_ARG_04>
48960 explicit variant(bsl::allocator_arg_t,
48961 allocator_type allocator,
48963 const t_ARG_01& arg_01,
48964 const t_ARG_02& arg_02,
48965 const t_ARG_03& arg_03,
48966 const t_ARG_04& arg_04,
48968
48969 template <class t_TYPE,
48970 class t_ARG_01,
48971 class t_ARG_02,
48972 class t_ARG_03,
48973 class t_ARG_04,
48974 class t_ARG_05>
48975 explicit variant(bsl::allocator_arg_t,
48976 allocator_type allocator,
48978 const t_ARG_01& arg_01,
48979 const t_ARG_02& arg_02,
48980 const t_ARG_03& arg_03,
48981 const t_ARG_04& arg_04,
48982 const t_ARG_05& arg_05,
48984
48985 template <class t_TYPE,
48986 class t_ARG_01,
48987 class t_ARG_02,
48988 class t_ARG_03,
48989 class t_ARG_04,
48990 class t_ARG_05,
48991 class t_ARG_06>
48992 explicit variant(bsl::allocator_arg_t,
48993 allocator_type allocator,
48995 const t_ARG_01& arg_01,
48996 const t_ARG_02& arg_02,
48997 const t_ARG_03& arg_03,
48998 const t_ARG_04& arg_04,
48999 const t_ARG_05& arg_05,
49000 const t_ARG_06& arg_06,
49002
49003 template <class t_TYPE,
49004 class t_ARG_01,
49005 class t_ARG_02,
49006 class t_ARG_03,
49007 class t_ARG_04,
49008 class t_ARG_05,
49009 class t_ARG_06,
49010 class t_ARG_07>
49011 explicit variant(bsl::allocator_arg_t,
49012 allocator_type allocator,
49014 const t_ARG_01& arg_01,
49015 const t_ARG_02& arg_02,
49016 const t_ARG_03& arg_03,
49017 const t_ARG_04& arg_04,
49018 const t_ARG_05& arg_05,
49019 const t_ARG_06& arg_06,
49020 const t_ARG_07& arg_07,
49022
49023 template <class t_TYPE,
49024 class t_ARG_01,
49025 class t_ARG_02,
49026 class t_ARG_03,
49027 class t_ARG_04,
49028 class t_ARG_05,
49029 class t_ARG_06,
49030 class t_ARG_07,
49031 class t_ARG_08>
49032 explicit variant(bsl::allocator_arg_t,
49033 allocator_type allocator,
49035 const t_ARG_01& arg_01,
49036 const t_ARG_02& arg_02,
49037 const t_ARG_03& arg_03,
49038 const t_ARG_04& arg_04,
49039 const t_ARG_05& arg_05,
49040 const t_ARG_06& arg_06,
49041 const t_ARG_07& arg_07,
49042 const t_ARG_08& arg_08,
49044
49045 template <class t_TYPE,
49046 class t_ARG_01,
49047 class t_ARG_02,
49048 class t_ARG_03,
49049 class t_ARG_04,
49050 class t_ARG_05,
49051 class t_ARG_06,
49052 class t_ARG_07,
49053 class t_ARG_08,
49054 class t_ARG_09>
49055 explicit variant(bsl::allocator_arg_t,
49056 allocator_type allocator,
49058 const t_ARG_01& arg_01,
49059 const t_ARG_02& arg_02,
49060 const t_ARG_03& arg_03,
49061 const t_ARG_04& arg_04,
49062 const t_ARG_05& arg_05,
49063 const t_ARG_06& arg_06,
49064 const t_ARG_07& arg_07,
49065 const t_ARG_08& arg_08,
49066 const t_ARG_09& arg_09,
49068
49069 template <class t_TYPE,
49070 class t_ARG_01,
49071 class t_ARG_02,
49072 class t_ARG_03,
49073 class t_ARG_04,
49074 class t_ARG_05,
49075 class t_ARG_06,
49076 class t_ARG_07,
49077 class t_ARG_08,
49078 class t_ARG_09,
49079 class t_ARG_10>
49080 explicit variant(bsl::allocator_arg_t,
49081 allocator_type allocator,
49083 const t_ARG_01& arg_01,
49084 const t_ARG_02& arg_02,
49085 const t_ARG_03& arg_03,
49086 const t_ARG_04& arg_04,
49087 const t_ARG_05& arg_05,
49088 const t_ARG_06& arg_06,
49089 const t_ARG_07& arg_07,
49090 const t_ARG_08& arg_08,
49091 const t_ARG_09& arg_09,
49092 const t_ARG_10& arg_10,
49094
49095 template <size_t t_INDEX>
49096 explicit variant(bsl::allocator_arg_t,
49097 allocator_type allocator,
49099
49100 template <size_t t_INDEX, class t_ARG_01>
49101 explicit variant(bsl::allocator_arg_t,
49102 allocator_type allocator,
49104 const t_ARG_01& arg_01);
49105
49106 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
49107 explicit variant(bsl::allocator_arg_t,
49108 allocator_type allocator,
49110 const t_ARG_01& arg_01,
49111 const t_ARG_02& arg_02);
49112
49113 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
49114 explicit variant(bsl::allocator_arg_t,
49115 allocator_type allocator,
49117 const t_ARG_01& arg_01,
49118 const t_ARG_02& arg_02,
49119 const t_ARG_03& arg_03);
49120
49121 template <size_t t_INDEX,
49122 class t_ARG_01,
49123 class t_ARG_02,
49124 class t_ARG_03,
49125 class t_ARG_04>
49126 explicit variant(bsl::allocator_arg_t,
49127 allocator_type allocator,
49129 const t_ARG_01& arg_01,
49130 const t_ARG_02& arg_02,
49131 const t_ARG_03& arg_03,
49132 const t_ARG_04& arg_04);
49133
49134 template <size_t t_INDEX,
49135 class t_ARG_01,
49136 class t_ARG_02,
49137 class t_ARG_03,
49138 class t_ARG_04,
49139 class t_ARG_05>
49140 explicit variant(bsl::allocator_arg_t,
49141 allocator_type allocator,
49143 const t_ARG_01& arg_01,
49144 const t_ARG_02& arg_02,
49145 const t_ARG_03& arg_03,
49146 const t_ARG_04& arg_04,
49147 const t_ARG_05& arg_05);
49148
49149 template <size_t t_INDEX,
49150 class t_ARG_01,
49151 class t_ARG_02,
49152 class t_ARG_03,
49153 class t_ARG_04,
49154 class t_ARG_05,
49155 class t_ARG_06>
49156 explicit variant(bsl::allocator_arg_t,
49157 allocator_type allocator,
49159 const t_ARG_01& arg_01,
49160 const t_ARG_02& arg_02,
49161 const t_ARG_03& arg_03,
49162 const t_ARG_04& arg_04,
49163 const t_ARG_05& arg_05,
49164 const t_ARG_06& arg_06);
49165
49166 template <size_t t_INDEX,
49167 class t_ARG_01,
49168 class t_ARG_02,
49169 class t_ARG_03,
49170 class t_ARG_04,
49171 class t_ARG_05,
49172 class t_ARG_06,
49173 class t_ARG_07>
49174 explicit variant(bsl::allocator_arg_t,
49175 allocator_type allocator,
49177 const t_ARG_01& arg_01,
49178 const t_ARG_02& arg_02,
49179 const t_ARG_03& arg_03,
49180 const t_ARG_04& arg_04,
49181 const t_ARG_05& arg_05,
49182 const t_ARG_06& arg_06,
49183 const t_ARG_07& arg_07);
49184
49185 template <size_t t_INDEX,
49186 class t_ARG_01,
49187 class t_ARG_02,
49188 class t_ARG_03,
49189 class t_ARG_04,
49190 class t_ARG_05,
49191 class t_ARG_06,
49192 class t_ARG_07,
49193 class t_ARG_08>
49194 explicit variant(bsl::allocator_arg_t,
49195 allocator_type allocator,
49197 const t_ARG_01& arg_01,
49198 const t_ARG_02& arg_02,
49199 const t_ARG_03& arg_03,
49200 const t_ARG_04& arg_04,
49201 const t_ARG_05& arg_05,
49202 const t_ARG_06& arg_06,
49203 const t_ARG_07& arg_07,
49204 const t_ARG_08& arg_08);
49205
49206 template <size_t t_INDEX,
49207 class t_ARG_01,
49208 class t_ARG_02,
49209 class t_ARG_03,
49210 class t_ARG_04,
49211 class t_ARG_05,
49212 class t_ARG_06,
49213 class t_ARG_07,
49214 class t_ARG_08,
49215 class t_ARG_09>
49216 explicit variant(bsl::allocator_arg_t,
49217 allocator_type allocator,
49219 const t_ARG_01& arg_01,
49220 const t_ARG_02& arg_02,
49221 const t_ARG_03& arg_03,
49222 const t_ARG_04& arg_04,
49223 const t_ARG_05& arg_05,
49224 const t_ARG_06& arg_06,
49225 const t_ARG_07& arg_07,
49226 const t_ARG_08& arg_08,
49227 const t_ARG_09& arg_09);
49228
49229 template <size_t t_INDEX,
49230 class t_ARG_01,
49231 class t_ARG_02,
49232 class t_ARG_03,
49233 class t_ARG_04,
49234 class t_ARG_05,
49235 class t_ARG_06,
49236 class t_ARG_07,
49237 class t_ARG_08,
49238 class t_ARG_09,
49239 class t_ARG_10>
49240 explicit variant(bsl::allocator_arg_t,
49241 allocator_type allocator,
49243 const t_ARG_01& arg_01,
49244 const t_ARG_02& arg_02,
49245 const t_ARG_03& arg_03,
49246 const t_ARG_04& arg_04,
49247 const t_ARG_05& arg_05,
49248 const t_ARG_06& arg_06,
49249 const t_ARG_07& arg_07,
49250 const t_ARG_08& arg_08,
49251 const t_ARG_09& arg_09,
49252 const t_ARG_10& arg_10);
49253
49254#endif
49255
49256
49257#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
49258 template <class t_TYPE,
49259 class t_ARGS_01,
49260 class t_ARGS_02,
49261 class t_ARGS_03,
49262 class t_ARGS_04,
49263 class t_ARGS_05,
49264 class t_ARGS_06,
49265 class t_ARGS_07,
49266 class = typename bsl::enable_if_t<
49268 std::is_constructible<t_TYPE, t_ARGS_01,
49269 t_ARGS_02,
49270 t_ARGS_03,
49271 t_ARGS_04,
49272 t_ARGS_05,
49273 t_ARGS_06,
49274 t_ARGS_07>::value> >
49275 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
49276 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
49277 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
49278 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
49279 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
49280 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
49281 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
49282 {
49283 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
49284 Variant_Base::template baseEmplace<index>(
49285 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
49286 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
49287 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
49288 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
49289 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
49290 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
49291 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07));
49292
49293 return bsl::get<index>(*this);
49294 }
49295
49296 template <class t_TYPE,
49297 class INIT_LIST_TYPE,
49298 class t_ARGS_01,
49299 class t_ARGS_02,
49300 class t_ARGS_03,
49301 class t_ARGS_04,
49302 class t_ARGS_05,
49303 class t_ARGS_06,
49304 class t_ARGS_07,
49305 class = typename bsl::enable_if_t<
49307 std::is_constructible<t_TYPE,
49308 std::initializer_list<INIT_LIST_TYPE>&,
49309 t_ARGS_01,
49310 t_ARGS_02,
49311 t_ARGS_03,
49312 t_ARGS_04,
49313 t_ARGS_05,
49314 t_ARGS_06,
49315 t_ARGS_07>::value> >
49316 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
49317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
49318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
49319 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
49320 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
49321 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
49322 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
49323 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
49324 {
49325 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
49326 Variant_Base::template baseEmplace<index>(
49327 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
49328 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
49329 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
49330 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
49331 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
49332 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
49333 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07));
49334
49335 return bsl::get<index>(*this);
49336 }
49337
49338 template <size_t t_INDEX,
49339 class t_ARGS_01,
49340 class t_ARGS_02,
49341 class t_ARGS_03,
49342 class t_ARGS_04,
49343 class t_ARGS_05,
49344 class t_ARGS_06,
49345 class t_ARGS_07,
49346 class = typename bsl::enable_if_t<
49347 (t_INDEX < 1 + 7u) &&
49348 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
49349 t_ARGS_01,
49350 t_ARGS_02,
49351 t_ARGS_03,
49352 t_ARGS_04,
49353 t_ARGS_05,
49354 t_ARGS_06,
49355 t_ARGS_07>::value> >
49356 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49357 t_TAIL_02,
49358 t_TAIL_03,
49359 t_TAIL_04,
49360 t_TAIL_05,
49361 t_TAIL_06,
49362 t_TAIL_07> >::type&
49363 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
49364 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
49365 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
49366 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
49367 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
49368 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
49369 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
49370 {
49371 Variant_Base::template baseEmplace<t_INDEX>(
49372 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
49373 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
49374 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
49375 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
49376 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
49377 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
49378 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07));
49379
49380 return bsl::get<t_INDEX>(*this);
49381 }
49382
49383 template <size_t t_INDEX,
49384 class INIT_LIST_TYPE,
49385 class t_ARGS_01,
49386 class t_ARGS_02,
49387 class t_ARGS_03,
49388 class t_ARGS_04,
49389 class t_ARGS_05,
49390 class t_ARGS_06,
49391 class t_ARGS_07,
49392 class = typename bsl::enable_if_t<
49393 (t_INDEX < 1 + 7u) &&
49394 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
49395 std::initializer_list<INIT_LIST_TYPE>&,
49396 t_ARGS_01,
49397 t_ARGS_02,
49398 t_ARGS_03,
49399 t_ARGS_04,
49400 t_ARGS_05,
49401 t_ARGS_06,
49402 t_ARGS_07>::value> >
49403 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49404 t_TAIL_02,
49405 t_TAIL_03,
49406 t_TAIL_04,
49407 t_TAIL_05,
49408 t_TAIL_06,
49409 t_TAIL_07> >::type&
49410 emplace(std::initializer_list<INIT_LIST_TYPE> il,
49411 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
49412 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
49413 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
49414 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
49415 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
49416 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
49417 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07)
49418 {
49419 Variant_Base::template baseEmplace<t_INDEX>(
49420 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
49421 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
49422 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
49423 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
49424 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
49425 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
49426 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07));
49427
49428 return bsl::get<t_INDEX>(*this);
49429 }
49430
49431#else
49432
49433 template <class t_TYPE>
49434 typename bsl::enable_if<
49435 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49436 t_TYPE&>::type
49437 emplace();
49438
49439 template <class t_TYPE, class t_ARG_01>
49440 typename bsl::enable_if<
49441 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49442 t_TYPE&>::type
49443 emplace(const t_ARG_01& arg_01);
49444
49445 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
49446 typename bsl::enable_if<
49447 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49448 t_TYPE&>::type
49449 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
49450
49451 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
49452 typename bsl::enable_if<
49453 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49454 t_TYPE&>::type
49455 emplace(const t_ARG_01& arg_01,
49456 const t_ARG_02& arg_02,
49457 const t_ARG_03& arg_03);
49458
49459 template <class t_TYPE,
49460 class t_ARG_01,
49461 class t_ARG_02,
49462 class t_ARG_03,
49463 class t_ARG_04>
49464 typename bsl::enable_if<
49465 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49466 t_TYPE&>::type
49467 emplace(const t_ARG_01& arg_01,
49468 const t_ARG_02& arg_02,
49469 const t_ARG_03& arg_03,
49470 const t_ARG_04& arg_04);
49471
49472 template <class t_TYPE,
49473 class t_ARG_01,
49474 class t_ARG_02,
49475 class t_ARG_03,
49476 class t_ARG_04,
49477 class t_ARG_05>
49478 typename bsl::enable_if<
49479 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49480 t_TYPE&>::type
49481 emplace(const t_ARG_01& arg_01,
49482 const t_ARG_02& arg_02,
49483 const t_ARG_03& arg_03,
49484 const t_ARG_04& arg_04,
49485 const t_ARG_05& arg_05);
49486
49487 template <class t_TYPE,
49488 class t_ARG_01,
49489 class t_ARG_02,
49490 class t_ARG_03,
49491 class t_ARG_04,
49492 class t_ARG_05,
49493 class t_ARG_06>
49494 typename bsl::enable_if<
49495 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49496 t_TYPE&>::type
49497 emplace(const t_ARG_01& arg_01,
49498 const t_ARG_02& arg_02,
49499 const t_ARG_03& arg_03,
49500 const t_ARG_04& arg_04,
49501 const t_ARG_05& arg_05,
49502 const t_ARG_06& arg_06);
49503
49504 template <class t_TYPE,
49505 class t_ARG_01,
49506 class t_ARG_02,
49507 class t_ARG_03,
49508 class t_ARG_04,
49509 class t_ARG_05,
49510 class t_ARG_06,
49511 class t_ARG_07>
49512 typename bsl::enable_if<
49513 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49514 t_TYPE&>::type
49515 emplace(const t_ARG_01& arg_01,
49516 const t_ARG_02& arg_02,
49517 const t_ARG_03& arg_03,
49518 const t_ARG_04& arg_04,
49519 const t_ARG_05& arg_05,
49520 const t_ARG_06& arg_06,
49521 const t_ARG_07& arg_07);
49522
49523 template <class t_TYPE,
49524 class t_ARG_01,
49525 class t_ARG_02,
49526 class t_ARG_03,
49527 class t_ARG_04,
49528 class t_ARG_05,
49529 class t_ARG_06,
49530 class t_ARG_07,
49531 class t_ARG_08>
49532 typename bsl::enable_if<
49533 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49534 t_TYPE&>::type
49535 emplace(const t_ARG_01& arg_01,
49536 const t_ARG_02& arg_02,
49537 const t_ARG_03& arg_03,
49538 const t_ARG_04& arg_04,
49539 const t_ARG_05& arg_05,
49540 const t_ARG_06& arg_06,
49541 const t_ARG_07& arg_07,
49542 const t_ARG_08& arg_08);
49543
49544 template <class t_TYPE,
49545 class t_ARG_01,
49546 class t_ARG_02,
49547 class t_ARG_03,
49548 class t_ARG_04,
49549 class t_ARG_05,
49550 class t_ARG_06,
49551 class t_ARG_07,
49552 class t_ARG_08,
49553 class t_ARG_09>
49554 typename bsl::enable_if<
49555 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49556 t_TYPE&>::type
49557 emplace(const t_ARG_01& arg_01,
49558 const t_ARG_02& arg_02,
49559 const t_ARG_03& arg_03,
49560 const t_ARG_04& arg_04,
49561 const t_ARG_05& arg_05,
49562 const t_ARG_06& arg_06,
49563 const t_ARG_07& arg_07,
49564 const t_ARG_08& arg_08,
49565 const t_ARG_09& arg_09);
49566
49567 template <class t_TYPE,
49568 class t_ARG_01,
49569 class t_ARG_02,
49570 class t_ARG_03,
49571 class t_ARG_04,
49572 class t_ARG_05,
49573 class t_ARG_06,
49574 class t_ARG_07,
49575 class t_ARG_08,
49576 class t_ARG_09,
49577 class t_ARG_10>
49578 typename bsl::enable_if<
49579 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
49580 t_TYPE&>::type
49581 emplace(const t_ARG_01& arg_01,
49582 const t_ARG_02& arg_02,
49583 const t_ARG_03& arg_03,
49584 const t_ARG_04& arg_04,
49585 const t_ARG_05& arg_05,
49586 const t_ARG_06& arg_06,
49587 const t_ARG_07& arg_07,
49588 const t_ARG_08& arg_08,
49589 const t_ARG_09& arg_09,
49590 const t_ARG_10& arg_10);
49591
49592 template <size_t t_INDEX>
49593 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49594 t_TAIL_02,
49595 t_TAIL_03,
49596 t_TAIL_04,
49597 t_TAIL_05,
49598 t_TAIL_06,
49599 t_TAIL_07> >::type&
49600 emplace();
49601
49602 template <size_t t_INDEX, class t_ARG_01>
49603 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49604 t_TAIL_02,
49605 t_TAIL_03,
49606 t_TAIL_04,
49607 t_TAIL_05,
49608 t_TAIL_06,
49609 t_TAIL_07> >::type&
49610 emplace(const t_ARG_01& arg_01);
49611
49612 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
49613 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49614 t_TAIL_02,
49615 t_TAIL_03,
49616 t_TAIL_04,
49617 t_TAIL_05,
49618 t_TAIL_06,
49619 t_TAIL_07> >::type&
49620 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
49621
49622 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
49623 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49624 t_TAIL_02,
49625 t_TAIL_03,
49626 t_TAIL_04,
49627 t_TAIL_05,
49628 t_TAIL_06,
49629 t_TAIL_07> >::type&
49630 emplace(const t_ARG_01& arg_01,
49631 const t_ARG_02& arg_02,
49632 const t_ARG_03& arg_03);
49633
49634 template <size_t t_INDEX,
49635 class t_ARG_01,
49636 class t_ARG_02,
49637 class t_ARG_03,
49638 class t_ARG_04>
49639 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49640 t_TAIL_02,
49641 t_TAIL_03,
49642 t_TAIL_04,
49643 t_TAIL_05,
49644 t_TAIL_06,
49645 t_TAIL_07> >::type&
49646 emplace(const t_ARG_01& arg_01,
49647 const t_ARG_02& arg_02,
49648 const t_ARG_03& arg_03,
49649 const t_ARG_04& arg_04);
49650
49651 template <size_t t_INDEX,
49652 class t_ARG_01,
49653 class t_ARG_02,
49654 class t_ARG_03,
49655 class t_ARG_04,
49656 class t_ARG_05>
49657 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49658 t_TAIL_02,
49659 t_TAIL_03,
49660 t_TAIL_04,
49661 t_TAIL_05,
49662 t_TAIL_06,
49663 t_TAIL_07> >::type&
49664 emplace(const t_ARG_01& arg_01,
49665 const t_ARG_02& arg_02,
49666 const t_ARG_03& arg_03,
49667 const t_ARG_04& arg_04,
49668 const t_ARG_05& arg_05);
49669
49670 template <size_t t_INDEX,
49671 class t_ARG_01,
49672 class t_ARG_02,
49673 class t_ARG_03,
49674 class t_ARG_04,
49675 class t_ARG_05,
49676 class t_ARG_06>
49677 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49678 t_TAIL_02,
49679 t_TAIL_03,
49680 t_TAIL_04,
49681 t_TAIL_05,
49682 t_TAIL_06,
49683 t_TAIL_07> >::type&
49684 emplace(const t_ARG_01& arg_01,
49685 const t_ARG_02& arg_02,
49686 const t_ARG_03& arg_03,
49687 const t_ARG_04& arg_04,
49688 const t_ARG_05& arg_05,
49689 const t_ARG_06& arg_06);
49690
49691 template <size_t t_INDEX,
49692 class t_ARG_01,
49693 class t_ARG_02,
49694 class t_ARG_03,
49695 class t_ARG_04,
49696 class t_ARG_05,
49697 class t_ARG_06,
49698 class t_ARG_07>
49699 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49700 t_TAIL_02,
49701 t_TAIL_03,
49702 t_TAIL_04,
49703 t_TAIL_05,
49704 t_TAIL_06,
49705 t_TAIL_07> >::type&
49706 emplace(const t_ARG_01& arg_01,
49707 const t_ARG_02& arg_02,
49708 const t_ARG_03& arg_03,
49709 const t_ARG_04& arg_04,
49710 const t_ARG_05& arg_05,
49711 const t_ARG_06& arg_06,
49712 const t_ARG_07& arg_07);
49713
49714 template <size_t t_INDEX,
49715 class t_ARG_01,
49716 class t_ARG_02,
49717 class t_ARG_03,
49718 class t_ARG_04,
49719 class t_ARG_05,
49720 class t_ARG_06,
49721 class t_ARG_07,
49722 class t_ARG_08>
49723 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49724 t_TAIL_02,
49725 t_TAIL_03,
49726 t_TAIL_04,
49727 t_TAIL_05,
49728 t_TAIL_06,
49729 t_TAIL_07> >::type&
49730 emplace(const t_ARG_01& arg_01,
49731 const t_ARG_02& arg_02,
49732 const t_ARG_03& arg_03,
49733 const t_ARG_04& arg_04,
49734 const t_ARG_05& arg_05,
49735 const t_ARG_06& arg_06,
49736 const t_ARG_07& arg_07,
49737 const t_ARG_08& arg_08);
49738
49739 template <size_t t_INDEX,
49740 class t_ARG_01,
49741 class t_ARG_02,
49742 class t_ARG_03,
49743 class t_ARG_04,
49744 class t_ARG_05,
49745 class t_ARG_06,
49746 class t_ARG_07,
49747 class t_ARG_08,
49748 class t_ARG_09>
49749 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49750 t_TAIL_02,
49751 t_TAIL_03,
49752 t_TAIL_04,
49753 t_TAIL_05,
49754 t_TAIL_06,
49755 t_TAIL_07> >::type&
49756 emplace(const t_ARG_01& arg_01,
49757 const t_ARG_02& arg_02,
49758 const t_ARG_03& arg_03,
49759 const t_ARG_04& arg_04,
49760 const t_ARG_05& arg_05,
49761 const t_ARG_06& arg_06,
49762 const t_ARG_07& arg_07,
49763 const t_ARG_08& arg_08,
49764 const t_ARG_09& arg_09);
49765
49766 template <size_t t_INDEX,
49767 class t_ARG_01,
49768 class t_ARG_02,
49769 class t_ARG_03,
49770 class t_ARG_04,
49771 class t_ARG_05,
49772 class t_ARG_06,
49773 class t_ARG_07,
49774 class t_ARG_08,
49775 class t_ARG_09,
49776 class t_ARG_10>
49777 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
49778 t_TAIL_02,
49779 t_TAIL_03,
49780 t_TAIL_04,
49781 t_TAIL_05,
49782 t_TAIL_06,
49783 t_TAIL_07> >::type&
49784 emplace(const t_ARG_01& arg_01,
49785 const t_ARG_02& arg_02,
49786 const t_ARG_03& arg_03,
49787 const t_ARG_04& arg_04,
49788 const t_ARG_05& arg_05,
49789 const t_ARG_06& arg_06,
49790 const t_ARG_07& arg_07,
49791 const t_ARG_08& arg_08,
49792 const t_ARG_09& arg_09,
49793 const t_ARG_10& arg_10);
49794#endif
49795
49796#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
49797 variant& operator=(const variant& rhs) = default;
49798
49799 variant& operator=(variant&& rhs) = default;
49800
49801 template <class t_TYPE>
49802 typename bsl::enable_if<
49803 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
49804 variant&>::type
49805 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
49806 {
49807 const size_t altIndex =
49808 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
49809
49810 if (index() == altIndex) {
49811 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
49812 value);
49813 }
49814 else {
49815 Variant_Base::template baseEmplace<altIndex>(
49816 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
49817 }
49818
49819 return *this;
49820 }
49821#else
49822 variant& operator=(const variant& rhs);
49823
49824 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
49825
49826 template <class t_TYPE>
49827 typename bsl::enable_if<
49828 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
49829 variant&>::type
49830 operator=(const t_TYPE& value);
49831
49832#endif
49833
49834 void swap(variant& other);
49835
49836#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
49837 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
49838 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
49839 t_TAIL_02,
49840 t_TAIL_03,
49841 t_TAIL_04,
49842 t_TAIL_05,
49843 t_TAIL_06,
49844 t_TAIL_07>::value,
49845 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
49846#endif
49847 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
49848 {
49849 return allocator_type(Variant_Base::AllocBase::mechanism());
49850 }
49851
49852
49853 size_t index() const BSLS_KEYWORD_NOEXCEPT;
49854
49855 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
49856};
49857#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 7
49858
49859#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 8
49860template <class t_HEAD, class t_TAIL_01,
49861 class t_TAIL_02,
49862 class t_TAIL_03,
49863 class t_TAIL_04,
49864 class t_TAIL_05,
49865 class t_TAIL_06,
49866 class t_TAIL_07,
49867 class t_TAIL_08>
49868class variant<t_HEAD, t_TAIL_01,
49869 t_TAIL_02,
49870 t_TAIL_03,
49871 t_TAIL_04,
49872 t_TAIL_05,
49873 t_TAIL_06,
49874 t_TAIL_07,
49875 t_TAIL_08>
49876: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
49877 t_TAIL_02,
49878 t_TAIL_03,
49879 t_TAIL_04,
49880 t_TAIL_05,
49881 t_TAIL_06,
49882 t_TAIL_07,
49883 t_TAIL_08>
49884#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
49885,
49886 private BloombergLP::bslstl::Variant_SMFBase<
49887 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
49888 t_TAIL_01,
49889 t_TAIL_02,
49890 t_TAIL_03,
49891 t_TAIL_04,
49892 t_TAIL_05,
49893 t_TAIL_06,
49894 t_TAIL_07,
49895 t_TAIL_08>::value,
49896 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
49897 t_TAIL_01,
49898 t_TAIL_02,
49899 t_TAIL_03,
49900 t_TAIL_04,
49901 t_TAIL_05,
49902 t_TAIL_06,
49903 t_TAIL_07,
49904 t_TAIL_08>::value,
49905 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
49906 t_TAIL_01,
49907 t_TAIL_02,
49908 t_TAIL_03,
49909 t_TAIL_04,
49910 t_TAIL_05,
49911 t_TAIL_06,
49912 t_TAIL_07,
49913 t_TAIL_08>::value &&
49914 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
49915 t_TAIL_01,
49916 t_TAIL_02,
49917 t_TAIL_03,
49918 t_TAIL_04,
49919 t_TAIL_05,
49920 t_TAIL_06,
49921 t_TAIL_07,
49922 t_TAIL_08>::value,
49923 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
49924 t_TAIL_01,
49925 t_TAIL_02,
49926 t_TAIL_03,
49927 t_TAIL_04,
49928 t_TAIL_05,
49929 t_TAIL_06,
49930 t_TAIL_07,
49931 t_TAIL_08>::value &&
49932 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
49933 t_TAIL_01,
49934 t_TAIL_02,
49935 t_TAIL_03,
49936 t_TAIL_04,
49937 t_TAIL_05,
49938 t_TAIL_06,
49939 t_TAIL_07,
49940 t_TAIL_08>::value>
49941#endif
49942{
49943 private:
49944 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
49945 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
49946 t_TAIL_02,
49947 t_TAIL_03,
49948 t_TAIL_04,
49949 t_TAIL_05,
49950 t_TAIL_06,
49951 t_TAIL_07,
49952 t_TAIL_08> Variant_Base;
49953 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
49954 t_TAIL_02,
49955 t_TAIL_03,
49956 t_TAIL_04,
49957 t_TAIL_05,
49958 t_TAIL_06,
49959 t_TAIL_07,
49960 t_TAIL_08>
49961 Variant_Union;
49962
49963 friend struct BloombergLP::bslstl::Variant_ImpUtil;
49964
49965 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
49966 t_TAIL_02,
49967 t_TAIL_03,
49968 t_TAIL_04,
49969 t_TAIL_05,
49970 t_TAIL_06,
49971 t_TAIL_07,
49972 t_TAIL_08>;
49973
49974 public:
49976 variant,
49977 BloombergLP::bslma::UsesBslmaAllocator,
49978 (BloombergLP::bslstl::
49979 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
49980 t_TAIL_02,
49981 t_TAIL_03,
49982 t_TAIL_04,
49983 t_TAIL_05,
49984 t_TAIL_06,
49985 t_TAIL_07,
49986 t_TAIL_08>::value));
49988 variant,
49989 BloombergLP::bslmf::UsesAllocatorArgT,
49990 (BloombergLP::bslstl::
49991 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
49992 t_TAIL_02,
49993 t_TAIL_03,
49994 t_TAIL_04,
49995 t_TAIL_05,
49996 t_TAIL_06,
49997 t_TAIL_07,
49998 t_TAIL_08>::value));
50000 variant,
50001 BloombergLP::bslmf::IsBitwiseMoveable,
50002 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
50003 t_TAIL_01,
50004 t_TAIL_02,
50005 t_TAIL_03,
50006 t_TAIL_04,
50007 t_TAIL_05,
50008 t_TAIL_06,
50009 t_TAIL_07,
50010 t_TAIL_08>::value));
50011
50012
50013 typedef typename Variant_Base::allocator_type allocator_type;
50014
50015
50016#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
50017 template <class t_FIRST_ALT = t_HEAD,
50018 class = typename bsl::enable_if_t<
50019 std::is_default_constructible<t_FIRST_ALT>::value> >
50020 variant()
50021 : Variant_Base()
50022 {
50023 }
50024
50025 variant(const variant& original) = default;
50026
50027 variant(variant&& original) = default;
50028
50029#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
50030 template <class t_STD_VARIANT>
50031 explicit variant(
50032 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
50034 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
50035 original.index())
50036 {
50037 if (!valueless_by_exception()) {
50038 BloombergLP::bslstl::Variant_ImpUtil::
50039 ConstructFromStdVisitor<variant, decltype(original)>
50040 visitor(*this, original);
50041 BSLSTL_VARIANT_VISITID(void, visitor, *this);
50042 }
50043 }
50044#endif
50045
50046 template <class t_TYPE>
50047 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
50049
50050 template <class t_TYPE,
50051 class t_ARGS_01,
50052 class t_ARGS_02,
50053 class t_ARGS_03,
50054 class t_ARGS_04,
50055 class t_ARGS_05,
50056 class t_ARGS_06,
50057 class t_ARGS_07,
50058 class t_ARGS_08,
50059 class = typename bsl::enable_if_t<
50061 std::is_constructible<t_TYPE, t_ARGS_01,
50062 t_ARGS_02,
50063 t_ARGS_03,
50064 t_ARGS_04,
50065 t_ARGS_05,
50066 t_ARGS_06,
50067 t_ARGS_07,
50068 t_ARGS_08>::value> >
50069 explicit variant(bsl::in_place_type_t<t_TYPE>,
50070 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50071 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50072 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50073 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50074 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50075 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50076 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50077 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50078 : Variant_Base(
50079 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
50080 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
50081 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
50082 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
50083 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
50084 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
50085 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
50086 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
50087 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08))
50088 {
50089 }
50090
50091 template <class t_TYPE,
50092 class INIT_LIST_TYPE,
50093 class t_ARGS_01,
50094 class t_ARGS_02,
50095 class t_ARGS_03,
50096 class t_ARGS_04,
50097 class t_ARGS_05,
50098 class t_ARGS_06,
50099 class t_ARGS_07,
50100 class t_ARGS_08,
50101 class = typename bsl::enable_if_t<
50103 std::is_constructible<t_TYPE,
50104 std::initializer_list<INIT_LIST_TYPE>&,
50105 t_ARGS_01,
50106 t_ARGS_02,
50107 t_ARGS_03,
50108 t_ARGS_04,
50109 t_ARGS_05,
50110 t_ARGS_06,
50111 t_ARGS_07,
50112 t_ARGS_08>::value> >
50113 explicit variant(bsl::in_place_type_t<t_TYPE>,
50114 std::initializer_list<INIT_LIST_TYPE> il,
50115 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50116 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50117 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50118 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50119 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50120 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50121 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50122 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50123 : Variant_Base(
50124 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
50125 il,
50126 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
50127 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
50128 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
50129 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
50130 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
50131 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
50132 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
50133 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08))
50134 {
50135 }
50136
50137 template <size_t t_INDEX,
50138 class t_ARGS_01,
50139 class t_ARGS_02,
50140 class t_ARGS_03,
50141 class t_ARGS_04,
50142 class t_ARGS_05,
50143 class t_ARGS_06,
50144 class t_ARGS_07,
50145 class t_ARGS_08,
50146 class = typename bsl::enable_if_t<
50147 (t_INDEX < 1 + 8u) &&
50148 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
50149 t_ARGS_01,
50150 t_ARGS_02,
50151 t_ARGS_03,
50152 t_ARGS_04,
50153 t_ARGS_05,
50154 t_ARGS_06,
50155 t_ARGS_07,
50156 t_ARGS_08>::value> >
50157 explicit variant(bsl::in_place_index_t<t_INDEX>,
50158 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50159 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50160 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50161 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50162 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50163 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50164 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50165 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50166 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
50167 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
50168 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
50169 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
50170 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
50171 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
50172 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
50173 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
50174 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08))
50175 {
50176 }
50177
50178 template <size_t t_INDEX,
50179 class INIT_LIST_TYPE,
50180 class t_ARGS_01,
50181 class t_ARGS_02,
50182 class t_ARGS_03,
50183 class t_ARGS_04,
50184 class t_ARGS_05,
50185 class t_ARGS_06,
50186 class t_ARGS_07,
50187 class t_ARGS_08,
50188 class = typename bsl::enable_if_t<
50189 (t_INDEX < 1 + 8u) &&
50190 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
50191 std::initializer_list<INIT_LIST_TYPE>&,
50192 t_ARGS_01,
50193 t_ARGS_02,
50194 t_ARGS_03,
50195 t_ARGS_04,
50196 t_ARGS_05,
50197 t_ARGS_06,
50198 t_ARGS_07,
50199 t_ARGS_08>::value> >
50200 explicit variant(bsl::in_place_index_t<t_INDEX>,
50201 std::initializer_list<INIT_LIST_TYPE> il,
50202 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50203 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50204 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50205 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50206 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50207 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50208 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50209 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50210 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
50211 il,
50212 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
50213 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
50214 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
50215 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
50216 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
50217 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
50218 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
50219 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08))
50220 {
50221 }
50222
50223 template <class FIRST = t_HEAD,
50224 class = typename bsl::enable_if_t<
50225 std::is_default_constructible<FIRST>::value> >
50226 variant(bsl::allocator_arg_t, allocator_type allocator)
50227 : Variant_Base(bsl::allocator_arg_t(), allocator)
50228 {
50229 }
50230
50231 template <
50232 class FIRST = t_HEAD,
50233 class = typename bsl::enable_if_t<
50234 BloombergLP::bslstl::
50235 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
50236 t_TAIL_02,
50237 t_TAIL_03,
50238 t_TAIL_04,
50239 t_TAIL_05,
50240 t_TAIL_06,
50241 t_TAIL_07,
50242 t_TAIL_08>::value> >
50243 variant(bsl::allocator_arg_t,
50244 allocator_type allocator,
50245 const variant& original)
50246 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
50247 {
50248 }
50249 template <
50250 class FIRST = t_HEAD,
50251 class = typename bsl::enable_if_t<
50252 BloombergLP::bslstl::
50253 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
50254 t_TAIL_02,
50255 t_TAIL_03,
50256 t_TAIL_04,
50257 t_TAIL_05,
50258 t_TAIL_06,
50259 t_TAIL_07,
50260 t_TAIL_08>::value> >
50261 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
50262 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
50263 {
50264 }
50265
50266#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
50267 template <class t_STD_VARIANT>
50268 explicit variant(
50269 bsl::allocator_arg_t,
50270 allocator_type allocator,
50271 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
50273 : Variant_Base(bsl::allocator_arg_t(),
50274 allocator,
50275 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
50276 original.index())
50277 {
50278 if (!valueless_by_exception()) {
50279 BloombergLP::bslstl::Variant_ImpUtil::
50280 ConstructFromStdVisitor<variant, decltype(original)>
50281 visitor(*this, original);
50282 BSLSTL_VARIANT_VISITID(void, visitor, *this);
50283 }
50284 }
50285#endif
50286
50287 template <class t_TYPE>
50288 variant(
50289 bsl::allocator_arg_t,
50290 allocator_type allocator,
50293
50294 template <class t_TYPE,
50295 class t_ARGS_01,
50296 class t_ARGS_02,
50297 class t_ARGS_03,
50298 class t_ARGS_04,
50299 class t_ARGS_05,
50300 class t_ARGS_06,
50301 class t_ARGS_07,
50302 class t_ARGS_08,
50303 class = typename bsl::enable_if_t<
50305 std::is_constructible<t_TYPE, t_ARGS_01,
50306 t_ARGS_02,
50307 t_ARGS_03,
50308 t_ARGS_04,
50309 t_ARGS_05,
50310 t_ARGS_06,
50311 t_ARGS_07,
50312 t_ARGS_08>::value> >
50313 explicit variant(bsl::allocator_arg_t,
50314 allocator_type allocator,
50316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50319 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50320 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50321 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50322 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50323 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50324 : Variant_Base(
50325 bsl::allocator_arg_t{}
50326,
50327 allocator,
50328 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
50329 std::forward<t_ARGS_01>(args_01),
50330 std::forward<t_ARGS_02>(args_02),
50331 std::forward<t_ARGS_03>(args_03),
50332 std::forward<t_ARGS_04>(args_04),
50333 std::forward<t_ARGS_05>(args_05),
50334 std::forward<t_ARGS_06>(args_06),
50335 std::forward<t_ARGS_07>(args_07),
50336 std::forward<t_ARGS_08>(args_08))
50337 {
50338 }
50339
50340 template <class t_TYPE,
50341 class INIT_LIST_TYPE,
50342 class t_ARGS_01,
50343 class t_ARGS_02,
50344 class t_ARGS_03,
50345 class t_ARGS_04,
50346 class t_ARGS_05,
50347 class t_ARGS_06,
50348 class t_ARGS_07,
50349 class t_ARGS_08,
50350 class = typename bsl::enable_if_t<
50352 std::is_constructible<t_TYPE,
50353 std::initializer_list<INIT_LIST_TYPE>&,
50354 t_ARGS_01,
50355 t_ARGS_02,
50356 t_ARGS_03,
50357 t_ARGS_04,
50358 t_ARGS_05,
50359 t_ARGS_06,
50360 t_ARGS_07,
50361 t_ARGS_08>::value> >
50362 explicit variant(bsl::allocator_arg_t,
50363 allocator_type allocator,
50365 std::initializer_list<INIT_LIST_TYPE> il,
50366 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50367 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50368 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50369 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50370 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50371 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50372 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50373 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50374 : Variant_Base(
50375 bsl::allocator_arg_t{}
50376,
50377 allocator,
50378 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
50379 il,
50380 std::forward<t_ARGS_01>(args_01),
50381 std::forward<t_ARGS_02>(args_02),
50382 std::forward<t_ARGS_03>(args_03),
50383 std::forward<t_ARGS_04>(args_04),
50384 std::forward<t_ARGS_05>(args_05),
50385 std::forward<t_ARGS_06>(args_06),
50386 std::forward<t_ARGS_07>(args_07),
50387 std::forward<t_ARGS_08>(args_08))
50388 {
50389 }
50390
50391 template <size_t t_INDEX,
50392 class t_ARGS_01,
50393 class t_ARGS_02,
50394 class t_ARGS_03,
50395 class t_ARGS_04,
50396 class t_ARGS_05,
50397 class t_ARGS_06,
50398 class t_ARGS_07,
50399 class t_ARGS_08,
50400 class = typename bsl::enable_if_t<
50401 (t_INDEX < 1 + 8u) &&
50402 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
50403 t_ARGS_01,
50404 t_ARGS_02,
50405 t_ARGS_03,
50406 t_ARGS_04,
50407 t_ARGS_05,
50408 t_ARGS_06,
50409 t_ARGS_07,
50410 t_ARGS_08>::value> >
50411 explicit variant(bsl::allocator_arg_t,
50412 allocator_type allocator,
50414 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50415 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50416 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50417 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50418 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50419 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50420 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50421 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50422 : Variant_Base(bsl::allocator_arg_t{}
50423,
50424 allocator,
50425 bsl::in_place_index_t<t_INDEX>(),
50426 std::forward<t_ARGS_01>(args_01),
50427 std::forward<t_ARGS_02>(args_02),
50428 std::forward<t_ARGS_03>(args_03),
50429 std::forward<t_ARGS_04>(args_04),
50430 std::forward<t_ARGS_05>(args_05),
50431 std::forward<t_ARGS_06>(args_06),
50432 std::forward<t_ARGS_07>(args_07),
50433 std::forward<t_ARGS_08>(args_08))
50434 {
50435 }
50436
50437 template <size_t t_INDEX,
50438 class INIT_LIST_TYPE,
50439 class t_ARGS_01,
50440 class t_ARGS_02,
50441 class t_ARGS_03,
50442 class t_ARGS_04,
50443 class t_ARGS_05,
50444 class t_ARGS_06,
50445 class t_ARGS_07,
50446 class t_ARGS_08,
50447 class = typename bsl::enable_if_t<
50448 (t_INDEX < 1 + 8u) &&
50449 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
50450 std::initializer_list<INIT_LIST_TYPE>&,
50451 t_ARGS_01,
50452 t_ARGS_02,
50453 t_ARGS_03,
50454 t_ARGS_04,
50455 t_ARGS_05,
50456 t_ARGS_06,
50457 t_ARGS_07,
50458 t_ARGS_08>::value> >
50459 explicit variant(bsl::allocator_arg_t,
50460 allocator_type allocator,
50462 std::initializer_list<INIT_LIST_TYPE> il,
50463 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
50464 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
50465 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
50466 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
50467 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
50468 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
50469 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
50470 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
50471 : Variant_Base(bsl::allocator_arg_t{}
50472,
50473 allocator,
50474 bsl::in_place_index_t<t_INDEX>(),
50475 il,
50476 std::forward<t_ARGS_01>(args_01),
50477 std::forward<t_ARGS_02>(args_02),
50478 std::forward<t_ARGS_03>(args_03),
50479 std::forward<t_ARGS_04>(args_04),
50480 std::forward<t_ARGS_05>(args_05),
50481 std::forward<t_ARGS_06>(args_06),
50482 std::forward<t_ARGS_07>(args_07),
50483 std::forward<t_ARGS_08>(args_08))
50484 {
50485 }
50486
50487#else
50488
50489 variant();
50490
50491 variant(const variant& original);
50492
50493 variant(BloombergLP::bslmf::MovableRef<variant> original);
50494
50495 template <class t_TYPE>
50496 variant(const t_TYPE& value,
50498
50499 template <class t_TYPE>
50500 explicit variant(bsl::in_place_type_t<t_TYPE>,
50502
50503 template <class t_TYPE, class t_ARG_01>
50504 explicit variant(bsl::in_place_type_t<t_TYPE>,
50505 const t_ARG_01& arg_01,
50507
50508 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
50509 explicit variant(bsl::in_place_type_t<t_TYPE>,
50510 const t_ARG_01& arg_01,
50511 const t_ARG_02& arg_02,
50513
50514 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
50515 explicit variant(bsl::in_place_type_t<t_TYPE>,
50516 const t_ARG_01& arg_01,
50517 const t_ARG_02& arg_02,
50518 const t_ARG_03& arg_03,
50520
50521 template <class t_TYPE,
50522 class t_ARG_01,
50523 class t_ARG_02,
50524 class t_ARG_03,
50525 class t_ARG_04>
50526 explicit variant(bsl::in_place_type_t<t_TYPE>,
50527 const t_ARG_01& arg_01,
50528 const t_ARG_02& arg_02,
50529 const t_ARG_03& arg_03,
50530 const t_ARG_04& arg_04,
50532
50533 template <class t_TYPE,
50534 class t_ARG_01,
50535 class t_ARG_02,
50536 class t_ARG_03,
50537 class t_ARG_04,
50538 class t_ARG_05>
50539 explicit variant(bsl::in_place_type_t<t_TYPE>,
50540 const t_ARG_01& arg_01,
50541 const t_ARG_02& arg_02,
50542 const t_ARG_03& arg_03,
50543 const t_ARG_04& arg_04,
50544 const t_ARG_05& arg_05,
50546
50547 template <class t_TYPE,
50548 class t_ARG_01,
50549 class t_ARG_02,
50550 class t_ARG_03,
50551 class t_ARG_04,
50552 class t_ARG_05,
50553 class t_ARG_06>
50554 explicit variant(bsl::in_place_type_t<t_TYPE>,
50555 const t_ARG_01& arg_01,
50556 const t_ARG_02& arg_02,
50557 const t_ARG_03& arg_03,
50558 const t_ARG_04& arg_04,
50559 const t_ARG_05& arg_05,
50560 const t_ARG_06& arg_06,
50562
50563 template <class t_TYPE,
50564 class t_ARG_01,
50565 class t_ARG_02,
50566 class t_ARG_03,
50567 class t_ARG_04,
50568 class t_ARG_05,
50569 class t_ARG_06,
50570 class t_ARG_07>
50571 explicit variant(bsl::in_place_type_t<t_TYPE>,
50572 const t_ARG_01& arg_01,
50573 const t_ARG_02& arg_02,
50574 const t_ARG_03& arg_03,
50575 const t_ARG_04& arg_04,
50576 const t_ARG_05& arg_05,
50577 const t_ARG_06& arg_06,
50578 const t_ARG_07& arg_07,
50580
50581 template <class t_TYPE,
50582 class t_ARG_01,
50583 class t_ARG_02,
50584 class t_ARG_03,
50585 class t_ARG_04,
50586 class t_ARG_05,
50587 class t_ARG_06,
50588 class t_ARG_07,
50589 class t_ARG_08>
50590 explicit variant(bsl::in_place_type_t<t_TYPE>,
50591 const t_ARG_01& arg_01,
50592 const t_ARG_02& arg_02,
50593 const t_ARG_03& arg_03,
50594 const t_ARG_04& arg_04,
50595 const t_ARG_05& arg_05,
50596 const t_ARG_06& arg_06,
50597 const t_ARG_07& arg_07,
50598 const t_ARG_08& arg_08,
50600
50601 template <class t_TYPE,
50602 class t_ARG_01,
50603 class t_ARG_02,
50604 class t_ARG_03,
50605 class t_ARG_04,
50606 class t_ARG_05,
50607 class t_ARG_06,
50608 class t_ARG_07,
50609 class t_ARG_08,
50610 class t_ARG_09>
50611 explicit variant(bsl::in_place_type_t<t_TYPE>,
50612 const t_ARG_01& arg_01,
50613 const t_ARG_02& arg_02,
50614 const t_ARG_03& arg_03,
50615 const t_ARG_04& arg_04,
50616 const t_ARG_05& arg_05,
50617 const t_ARG_06& arg_06,
50618 const t_ARG_07& arg_07,
50619 const t_ARG_08& arg_08,
50620 const t_ARG_09& arg_09,
50622
50623 template <class t_TYPE,
50624 class t_ARG_01,
50625 class t_ARG_02,
50626 class t_ARG_03,
50627 class t_ARG_04,
50628 class t_ARG_05,
50629 class t_ARG_06,
50630 class t_ARG_07,
50631 class t_ARG_08,
50632 class t_ARG_09,
50633 class t_ARG_10>
50634 explicit variant(bsl::in_place_type_t<t_TYPE>,
50635 const t_ARG_01& arg_01,
50636 const t_ARG_02& arg_02,
50637 const t_ARG_03& arg_03,
50638 const t_ARG_04& arg_04,
50639 const t_ARG_05& arg_05,
50640 const t_ARG_06& arg_06,
50641 const t_ARG_07& arg_07,
50642 const t_ARG_08& arg_08,
50643 const t_ARG_09& arg_09,
50644 const t_ARG_10& arg_10,
50646
50647 template <size_t t_INDEX>
50648 explicit variant(bsl::in_place_index_t<t_INDEX>);
50649
50650 template <size_t t_INDEX, class t_ARG_01>
50651 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
50652
50653 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
50654 explicit variant(bsl::in_place_index_t<t_INDEX>,
50655 const t_ARG_01& arg_01,
50656 const t_ARG_02& arg_02);
50657
50658 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
50659 explicit variant(bsl::in_place_index_t<t_INDEX>,
50660 const t_ARG_01& arg_01,
50661 const t_ARG_02& arg_02,
50662 const t_ARG_03& arg_03);
50663
50664 template <size_t t_INDEX,
50665 class t_ARG_01,
50666 class t_ARG_02,
50667 class t_ARG_03,
50668 class t_ARG_04>
50669 explicit variant(bsl::in_place_index_t<t_INDEX>,
50670 const t_ARG_01& arg_01,
50671 const t_ARG_02& arg_02,
50672 const t_ARG_03& arg_03,
50673 const t_ARG_04& arg_04);
50674
50675 template <size_t t_INDEX,
50676 class t_ARG_01,
50677 class t_ARG_02,
50678 class t_ARG_03,
50679 class t_ARG_04,
50680 class t_ARG_05>
50681 explicit variant(bsl::in_place_index_t<t_INDEX>,
50682 const t_ARG_01& arg_01,
50683 const t_ARG_02& arg_02,
50684 const t_ARG_03& arg_03,
50685 const t_ARG_04& arg_04,
50686 const t_ARG_05& arg_05);
50687
50688 template <size_t t_INDEX,
50689 class t_ARG_01,
50690 class t_ARG_02,
50691 class t_ARG_03,
50692 class t_ARG_04,
50693 class t_ARG_05,
50694 class t_ARG_06>
50695 explicit variant(bsl::in_place_index_t<t_INDEX>,
50696 const t_ARG_01& arg_01,
50697 const t_ARG_02& arg_02,
50698 const t_ARG_03& arg_03,
50699 const t_ARG_04& arg_04,
50700 const t_ARG_05& arg_05,
50701 const t_ARG_06& arg_06);
50702
50703 template <size_t t_INDEX,
50704 class t_ARG_01,
50705 class t_ARG_02,
50706 class t_ARG_03,
50707 class t_ARG_04,
50708 class t_ARG_05,
50709 class t_ARG_06,
50710 class t_ARG_07>
50711 explicit variant(bsl::in_place_index_t<t_INDEX>,
50712 const t_ARG_01& arg_01,
50713 const t_ARG_02& arg_02,
50714 const t_ARG_03& arg_03,
50715 const t_ARG_04& arg_04,
50716 const t_ARG_05& arg_05,
50717 const t_ARG_06& arg_06,
50718 const t_ARG_07& arg_07);
50719
50720 template <size_t t_INDEX,
50721 class t_ARG_01,
50722 class t_ARG_02,
50723 class t_ARG_03,
50724 class t_ARG_04,
50725 class t_ARG_05,
50726 class t_ARG_06,
50727 class t_ARG_07,
50728 class t_ARG_08>
50729 explicit variant(bsl::in_place_index_t<t_INDEX>,
50730 const t_ARG_01& arg_01,
50731 const t_ARG_02& arg_02,
50732 const t_ARG_03& arg_03,
50733 const t_ARG_04& arg_04,
50734 const t_ARG_05& arg_05,
50735 const t_ARG_06& arg_06,
50736 const t_ARG_07& arg_07,
50737 const t_ARG_08& arg_08);
50738
50739 template <size_t t_INDEX,
50740 class t_ARG_01,
50741 class t_ARG_02,
50742 class t_ARG_03,
50743 class t_ARG_04,
50744 class t_ARG_05,
50745 class t_ARG_06,
50746 class t_ARG_07,
50747 class t_ARG_08,
50748 class t_ARG_09>
50749 explicit variant(bsl::in_place_index_t<t_INDEX>,
50750 const t_ARG_01& arg_01,
50751 const t_ARG_02& arg_02,
50752 const t_ARG_03& arg_03,
50753 const t_ARG_04& arg_04,
50754 const t_ARG_05& arg_05,
50755 const t_ARG_06& arg_06,
50756 const t_ARG_07& arg_07,
50757 const t_ARG_08& arg_08,
50758 const t_ARG_09& arg_09);
50759
50760 template <size_t t_INDEX,
50761 class t_ARG_01,
50762 class t_ARG_02,
50763 class t_ARG_03,
50764 class t_ARG_04,
50765 class t_ARG_05,
50766 class t_ARG_06,
50767 class t_ARG_07,
50768 class t_ARG_08,
50769 class t_ARG_09,
50770 class t_ARG_10>
50771 explicit variant(bsl::in_place_index_t<t_INDEX>,
50772 const t_ARG_01& arg_01,
50773 const t_ARG_02& arg_02,
50774 const t_ARG_03& arg_03,
50775 const t_ARG_04& arg_04,
50776 const t_ARG_05& arg_05,
50777 const t_ARG_06& arg_06,
50778 const t_ARG_07& arg_07,
50779 const t_ARG_08& arg_08,
50780 const t_ARG_09& arg_09,
50781 const t_ARG_10& arg_10);
50782
50783 variant(bsl::allocator_arg_t, allocator_type allocator);
50784
50785 variant(bsl::allocator_arg_t,
50786 allocator_type allocator,
50787 const variant& original);
50788 variant(bsl::allocator_arg_t,
50789 allocator_type allocator,
50790 BloombergLP::bslmf::MovableRef<variant> original);
50791
50792 template <class t_TYPE>
50793 variant(
50794 bsl::allocator_arg_t,
50795 allocator_type allocator,
50796 const t_TYPE& value,
50798
50799 template <class t_TYPE>
50800 explicit variant(
50801 bsl::allocator_arg_t,
50802 allocator_type allocator,
50805
50806 template <class t_TYPE, class t_ARG_01>
50807 explicit variant(
50808 bsl::allocator_arg_t,
50809 allocator_type allocator,
50811 const t_ARG_01& arg_01,
50813
50814 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
50815 explicit variant(
50816 bsl::allocator_arg_t,
50817 allocator_type allocator,
50819 const t_ARG_01& arg_01,
50820 const t_ARG_02& arg_02,
50822
50823 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
50824 explicit variant(
50825 bsl::allocator_arg_t,
50826 allocator_type allocator,
50828 const t_ARG_01& arg_01,
50829 const t_ARG_02& arg_02,
50830 const t_ARG_03& arg_03,
50832
50833 template <class t_TYPE,
50834 class t_ARG_01,
50835 class t_ARG_02,
50836 class t_ARG_03,
50837 class t_ARG_04>
50838 explicit variant(bsl::allocator_arg_t,
50839 allocator_type allocator,
50841 const t_ARG_01& arg_01,
50842 const t_ARG_02& arg_02,
50843 const t_ARG_03& arg_03,
50844 const t_ARG_04& arg_04,
50846
50847 template <class t_TYPE,
50848 class t_ARG_01,
50849 class t_ARG_02,
50850 class t_ARG_03,
50851 class t_ARG_04,
50852 class t_ARG_05>
50853 explicit variant(bsl::allocator_arg_t,
50854 allocator_type allocator,
50856 const t_ARG_01& arg_01,
50857 const t_ARG_02& arg_02,
50858 const t_ARG_03& arg_03,
50859 const t_ARG_04& arg_04,
50860 const t_ARG_05& arg_05,
50862
50863 template <class t_TYPE,
50864 class t_ARG_01,
50865 class t_ARG_02,
50866 class t_ARG_03,
50867 class t_ARG_04,
50868 class t_ARG_05,
50869 class t_ARG_06>
50870 explicit variant(bsl::allocator_arg_t,
50871 allocator_type allocator,
50873 const t_ARG_01& arg_01,
50874 const t_ARG_02& arg_02,
50875 const t_ARG_03& arg_03,
50876 const t_ARG_04& arg_04,
50877 const t_ARG_05& arg_05,
50878 const t_ARG_06& arg_06,
50880
50881 template <class t_TYPE,
50882 class t_ARG_01,
50883 class t_ARG_02,
50884 class t_ARG_03,
50885 class t_ARG_04,
50886 class t_ARG_05,
50887 class t_ARG_06,
50888 class t_ARG_07>
50889 explicit variant(bsl::allocator_arg_t,
50890 allocator_type allocator,
50892 const t_ARG_01& arg_01,
50893 const t_ARG_02& arg_02,
50894 const t_ARG_03& arg_03,
50895 const t_ARG_04& arg_04,
50896 const t_ARG_05& arg_05,
50897 const t_ARG_06& arg_06,
50898 const t_ARG_07& arg_07,
50900
50901 template <class t_TYPE,
50902 class t_ARG_01,
50903 class t_ARG_02,
50904 class t_ARG_03,
50905 class t_ARG_04,
50906 class t_ARG_05,
50907 class t_ARG_06,
50908 class t_ARG_07,
50909 class t_ARG_08>
50910 explicit variant(bsl::allocator_arg_t,
50911 allocator_type allocator,
50913 const t_ARG_01& arg_01,
50914 const t_ARG_02& arg_02,
50915 const t_ARG_03& arg_03,
50916 const t_ARG_04& arg_04,
50917 const t_ARG_05& arg_05,
50918 const t_ARG_06& arg_06,
50919 const t_ARG_07& arg_07,
50920 const t_ARG_08& arg_08,
50922
50923 template <class t_TYPE,
50924 class t_ARG_01,
50925 class t_ARG_02,
50926 class t_ARG_03,
50927 class t_ARG_04,
50928 class t_ARG_05,
50929 class t_ARG_06,
50930 class t_ARG_07,
50931 class t_ARG_08,
50932 class t_ARG_09>
50933 explicit variant(bsl::allocator_arg_t,
50934 allocator_type allocator,
50936 const t_ARG_01& arg_01,
50937 const t_ARG_02& arg_02,
50938 const t_ARG_03& arg_03,
50939 const t_ARG_04& arg_04,
50940 const t_ARG_05& arg_05,
50941 const t_ARG_06& arg_06,
50942 const t_ARG_07& arg_07,
50943 const t_ARG_08& arg_08,
50944 const t_ARG_09& arg_09,
50946
50947 template <class t_TYPE,
50948 class t_ARG_01,
50949 class t_ARG_02,
50950 class t_ARG_03,
50951 class t_ARG_04,
50952 class t_ARG_05,
50953 class t_ARG_06,
50954 class t_ARG_07,
50955 class t_ARG_08,
50956 class t_ARG_09,
50957 class t_ARG_10>
50958 explicit variant(bsl::allocator_arg_t,
50959 allocator_type allocator,
50961 const t_ARG_01& arg_01,
50962 const t_ARG_02& arg_02,
50963 const t_ARG_03& arg_03,
50964 const t_ARG_04& arg_04,
50965 const t_ARG_05& arg_05,
50966 const t_ARG_06& arg_06,
50967 const t_ARG_07& arg_07,
50968 const t_ARG_08& arg_08,
50969 const t_ARG_09& arg_09,
50970 const t_ARG_10& arg_10,
50972
50973 template <size_t t_INDEX>
50974 explicit variant(bsl::allocator_arg_t,
50975 allocator_type allocator,
50977
50978 template <size_t t_INDEX, class t_ARG_01>
50979 explicit variant(bsl::allocator_arg_t,
50980 allocator_type allocator,
50982 const t_ARG_01& arg_01);
50983
50984 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
50985 explicit variant(bsl::allocator_arg_t,
50986 allocator_type allocator,
50988 const t_ARG_01& arg_01,
50989 const t_ARG_02& arg_02);
50990
50991 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
50992 explicit variant(bsl::allocator_arg_t,
50993 allocator_type allocator,
50995 const t_ARG_01& arg_01,
50996 const t_ARG_02& arg_02,
50997 const t_ARG_03& arg_03);
50998
50999 template <size_t t_INDEX,
51000 class t_ARG_01,
51001 class t_ARG_02,
51002 class t_ARG_03,
51003 class t_ARG_04>
51004 explicit variant(bsl::allocator_arg_t,
51005 allocator_type allocator,
51007 const t_ARG_01& arg_01,
51008 const t_ARG_02& arg_02,
51009 const t_ARG_03& arg_03,
51010 const t_ARG_04& arg_04);
51011
51012 template <size_t t_INDEX,
51013 class t_ARG_01,
51014 class t_ARG_02,
51015 class t_ARG_03,
51016 class t_ARG_04,
51017 class t_ARG_05>
51018 explicit variant(bsl::allocator_arg_t,
51019 allocator_type allocator,
51021 const t_ARG_01& arg_01,
51022 const t_ARG_02& arg_02,
51023 const t_ARG_03& arg_03,
51024 const t_ARG_04& arg_04,
51025 const t_ARG_05& arg_05);
51026
51027 template <size_t t_INDEX,
51028 class t_ARG_01,
51029 class t_ARG_02,
51030 class t_ARG_03,
51031 class t_ARG_04,
51032 class t_ARG_05,
51033 class t_ARG_06>
51034 explicit variant(bsl::allocator_arg_t,
51035 allocator_type allocator,
51037 const t_ARG_01& arg_01,
51038 const t_ARG_02& arg_02,
51039 const t_ARG_03& arg_03,
51040 const t_ARG_04& arg_04,
51041 const t_ARG_05& arg_05,
51042 const t_ARG_06& arg_06);
51043
51044 template <size_t t_INDEX,
51045 class t_ARG_01,
51046 class t_ARG_02,
51047 class t_ARG_03,
51048 class t_ARG_04,
51049 class t_ARG_05,
51050 class t_ARG_06,
51051 class t_ARG_07>
51052 explicit variant(bsl::allocator_arg_t,
51053 allocator_type allocator,
51055 const t_ARG_01& arg_01,
51056 const t_ARG_02& arg_02,
51057 const t_ARG_03& arg_03,
51058 const t_ARG_04& arg_04,
51059 const t_ARG_05& arg_05,
51060 const t_ARG_06& arg_06,
51061 const t_ARG_07& arg_07);
51062
51063 template <size_t t_INDEX,
51064 class t_ARG_01,
51065 class t_ARG_02,
51066 class t_ARG_03,
51067 class t_ARG_04,
51068 class t_ARG_05,
51069 class t_ARG_06,
51070 class t_ARG_07,
51071 class t_ARG_08>
51072 explicit variant(bsl::allocator_arg_t,
51073 allocator_type allocator,
51075 const t_ARG_01& arg_01,
51076 const t_ARG_02& arg_02,
51077 const t_ARG_03& arg_03,
51078 const t_ARG_04& arg_04,
51079 const t_ARG_05& arg_05,
51080 const t_ARG_06& arg_06,
51081 const t_ARG_07& arg_07,
51082 const t_ARG_08& arg_08);
51083
51084 template <size_t t_INDEX,
51085 class t_ARG_01,
51086 class t_ARG_02,
51087 class t_ARG_03,
51088 class t_ARG_04,
51089 class t_ARG_05,
51090 class t_ARG_06,
51091 class t_ARG_07,
51092 class t_ARG_08,
51093 class t_ARG_09>
51094 explicit variant(bsl::allocator_arg_t,
51095 allocator_type allocator,
51097 const t_ARG_01& arg_01,
51098 const t_ARG_02& arg_02,
51099 const t_ARG_03& arg_03,
51100 const t_ARG_04& arg_04,
51101 const t_ARG_05& arg_05,
51102 const t_ARG_06& arg_06,
51103 const t_ARG_07& arg_07,
51104 const t_ARG_08& arg_08,
51105 const t_ARG_09& arg_09);
51106
51107 template <size_t t_INDEX,
51108 class t_ARG_01,
51109 class t_ARG_02,
51110 class t_ARG_03,
51111 class t_ARG_04,
51112 class t_ARG_05,
51113 class t_ARG_06,
51114 class t_ARG_07,
51115 class t_ARG_08,
51116 class t_ARG_09,
51117 class t_ARG_10>
51118 explicit variant(bsl::allocator_arg_t,
51119 allocator_type allocator,
51121 const t_ARG_01& arg_01,
51122 const t_ARG_02& arg_02,
51123 const t_ARG_03& arg_03,
51124 const t_ARG_04& arg_04,
51125 const t_ARG_05& arg_05,
51126 const t_ARG_06& arg_06,
51127 const t_ARG_07& arg_07,
51128 const t_ARG_08& arg_08,
51129 const t_ARG_09& arg_09,
51130 const t_ARG_10& arg_10);
51131
51132#endif
51133
51134
51135#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
51136 template <class t_TYPE,
51137 class t_ARGS_01,
51138 class t_ARGS_02,
51139 class t_ARGS_03,
51140 class t_ARGS_04,
51141 class t_ARGS_05,
51142 class t_ARGS_06,
51143 class t_ARGS_07,
51144 class t_ARGS_08,
51145 class = typename bsl::enable_if_t<
51147 std::is_constructible<t_TYPE, t_ARGS_01,
51148 t_ARGS_02,
51149 t_ARGS_03,
51150 t_ARGS_04,
51151 t_ARGS_05,
51152 t_ARGS_06,
51153 t_ARGS_07,
51154 t_ARGS_08>::value> >
51155 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
51156 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
51157 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
51158 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
51159 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
51160 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
51161 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
51162 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
51163 {
51164 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
51165 Variant_Base::template baseEmplace<index>(
51166 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
51167 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
51168 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
51169 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
51170 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
51171 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
51172 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
51173 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08));
51174
51175 return bsl::get<index>(*this);
51176 }
51177
51178 template <class t_TYPE,
51179 class INIT_LIST_TYPE,
51180 class t_ARGS_01,
51181 class t_ARGS_02,
51182 class t_ARGS_03,
51183 class t_ARGS_04,
51184 class t_ARGS_05,
51185 class t_ARGS_06,
51186 class t_ARGS_07,
51187 class t_ARGS_08,
51188 class = typename bsl::enable_if_t<
51190 std::is_constructible<t_TYPE,
51191 std::initializer_list<INIT_LIST_TYPE>&,
51192 t_ARGS_01,
51193 t_ARGS_02,
51194 t_ARGS_03,
51195 t_ARGS_04,
51196 t_ARGS_05,
51197 t_ARGS_06,
51198 t_ARGS_07,
51199 t_ARGS_08>::value> >
51200 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
51201 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
51202 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
51203 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
51204 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
51205 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
51206 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
51207 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
51208 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
51209 {
51210 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
51211 Variant_Base::template baseEmplace<index>(
51212 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
51213 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
51214 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
51215 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
51216 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
51217 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
51218 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
51219 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08));
51220
51221 return bsl::get<index>(*this);
51222 }
51223
51224 template <size_t t_INDEX,
51225 class t_ARGS_01,
51226 class t_ARGS_02,
51227 class t_ARGS_03,
51228 class t_ARGS_04,
51229 class t_ARGS_05,
51230 class t_ARGS_06,
51231 class t_ARGS_07,
51232 class t_ARGS_08,
51233 class = typename bsl::enable_if_t<
51234 (t_INDEX < 1 + 8u) &&
51235 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
51236 t_ARGS_01,
51237 t_ARGS_02,
51238 t_ARGS_03,
51239 t_ARGS_04,
51240 t_ARGS_05,
51241 t_ARGS_06,
51242 t_ARGS_07,
51243 t_ARGS_08>::value> >
51244 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51245 t_TAIL_02,
51246 t_TAIL_03,
51247 t_TAIL_04,
51248 t_TAIL_05,
51249 t_TAIL_06,
51250 t_TAIL_07,
51251 t_TAIL_08> >::type&
51252 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
51253 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
51254 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
51255 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
51256 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
51257 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
51258 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
51259 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
51260 {
51261 Variant_Base::template baseEmplace<t_INDEX>(
51262 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
51263 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
51264 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
51265 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
51266 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
51267 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
51268 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
51269 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08));
51270
51271 return bsl::get<t_INDEX>(*this);
51272 }
51273
51274 template <size_t t_INDEX,
51275 class INIT_LIST_TYPE,
51276 class t_ARGS_01,
51277 class t_ARGS_02,
51278 class t_ARGS_03,
51279 class t_ARGS_04,
51280 class t_ARGS_05,
51281 class t_ARGS_06,
51282 class t_ARGS_07,
51283 class t_ARGS_08,
51284 class = typename bsl::enable_if_t<
51285 (t_INDEX < 1 + 8u) &&
51286 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
51287 std::initializer_list<INIT_LIST_TYPE>&,
51288 t_ARGS_01,
51289 t_ARGS_02,
51290 t_ARGS_03,
51291 t_ARGS_04,
51292 t_ARGS_05,
51293 t_ARGS_06,
51294 t_ARGS_07,
51295 t_ARGS_08>::value> >
51296 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51297 t_TAIL_02,
51298 t_TAIL_03,
51299 t_TAIL_04,
51300 t_TAIL_05,
51301 t_TAIL_06,
51302 t_TAIL_07,
51303 t_TAIL_08> >::type&
51304 emplace(std::initializer_list<INIT_LIST_TYPE> il,
51305 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
51306 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
51307 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
51308 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
51309 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
51310 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
51311 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
51312 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08)
51313 {
51314 Variant_Base::template baseEmplace<t_INDEX>(
51315 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
51316 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
51317 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
51318 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
51319 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
51320 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
51321 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
51322 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08));
51323
51324 return bsl::get<t_INDEX>(*this);
51325 }
51326
51327#else
51328
51329 template <class t_TYPE>
51330 typename bsl::enable_if<
51331 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51332 t_TYPE&>::type
51333 emplace();
51334
51335 template <class t_TYPE, class t_ARG_01>
51336 typename bsl::enable_if<
51337 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51338 t_TYPE&>::type
51339 emplace(const t_ARG_01& arg_01);
51340
51341 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
51342 typename bsl::enable_if<
51343 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51344 t_TYPE&>::type
51345 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
51346
51347 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
51348 typename bsl::enable_if<
51349 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51350 t_TYPE&>::type
51351 emplace(const t_ARG_01& arg_01,
51352 const t_ARG_02& arg_02,
51353 const t_ARG_03& arg_03);
51354
51355 template <class t_TYPE,
51356 class t_ARG_01,
51357 class t_ARG_02,
51358 class t_ARG_03,
51359 class t_ARG_04>
51360 typename bsl::enable_if<
51361 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51362 t_TYPE&>::type
51363 emplace(const t_ARG_01& arg_01,
51364 const t_ARG_02& arg_02,
51365 const t_ARG_03& arg_03,
51366 const t_ARG_04& arg_04);
51367
51368 template <class t_TYPE,
51369 class t_ARG_01,
51370 class t_ARG_02,
51371 class t_ARG_03,
51372 class t_ARG_04,
51373 class t_ARG_05>
51374 typename bsl::enable_if<
51375 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51376 t_TYPE&>::type
51377 emplace(const t_ARG_01& arg_01,
51378 const t_ARG_02& arg_02,
51379 const t_ARG_03& arg_03,
51380 const t_ARG_04& arg_04,
51381 const t_ARG_05& arg_05);
51382
51383 template <class t_TYPE,
51384 class t_ARG_01,
51385 class t_ARG_02,
51386 class t_ARG_03,
51387 class t_ARG_04,
51388 class t_ARG_05,
51389 class t_ARG_06>
51390 typename bsl::enable_if<
51391 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51392 t_TYPE&>::type
51393 emplace(const t_ARG_01& arg_01,
51394 const t_ARG_02& arg_02,
51395 const t_ARG_03& arg_03,
51396 const t_ARG_04& arg_04,
51397 const t_ARG_05& arg_05,
51398 const t_ARG_06& arg_06);
51399
51400 template <class t_TYPE,
51401 class t_ARG_01,
51402 class t_ARG_02,
51403 class t_ARG_03,
51404 class t_ARG_04,
51405 class t_ARG_05,
51406 class t_ARG_06,
51407 class t_ARG_07>
51408 typename bsl::enable_if<
51409 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51410 t_TYPE&>::type
51411 emplace(const t_ARG_01& arg_01,
51412 const t_ARG_02& arg_02,
51413 const t_ARG_03& arg_03,
51414 const t_ARG_04& arg_04,
51415 const t_ARG_05& arg_05,
51416 const t_ARG_06& arg_06,
51417 const t_ARG_07& arg_07);
51418
51419 template <class t_TYPE,
51420 class t_ARG_01,
51421 class t_ARG_02,
51422 class t_ARG_03,
51423 class t_ARG_04,
51424 class t_ARG_05,
51425 class t_ARG_06,
51426 class t_ARG_07,
51427 class t_ARG_08>
51428 typename bsl::enable_if<
51429 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51430 t_TYPE&>::type
51431 emplace(const t_ARG_01& arg_01,
51432 const t_ARG_02& arg_02,
51433 const t_ARG_03& arg_03,
51434 const t_ARG_04& arg_04,
51435 const t_ARG_05& arg_05,
51436 const t_ARG_06& arg_06,
51437 const t_ARG_07& arg_07,
51438 const t_ARG_08& arg_08);
51439
51440 template <class t_TYPE,
51441 class t_ARG_01,
51442 class t_ARG_02,
51443 class t_ARG_03,
51444 class t_ARG_04,
51445 class t_ARG_05,
51446 class t_ARG_06,
51447 class t_ARG_07,
51448 class t_ARG_08,
51449 class t_ARG_09>
51450 typename bsl::enable_if<
51451 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51452 t_TYPE&>::type
51453 emplace(const t_ARG_01& arg_01,
51454 const t_ARG_02& arg_02,
51455 const t_ARG_03& arg_03,
51456 const t_ARG_04& arg_04,
51457 const t_ARG_05& arg_05,
51458 const t_ARG_06& arg_06,
51459 const t_ARG_07& arg_07,
51460 const t_ARG_08& arg_08,
51461 const t_ARG_09& arg_09);
51462
51463 template <class t_TYPE,
51464 class t_ARG_01,
51465 class t_ARG_02,
51466 class t_ARG_03,
51467 class t_ARG_04,
51468 class t_ARG_05,
51469 class t_ARG_06,
51470 class t_ARG_07,
51471 class t_ARG_08,
51472 class t_ARG_09,
51473 class t_ARG_10>
51474 typename bsl::enable_if<
51475 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
51476 t_TYPE&>::type
51477 emplace(const t_ARG_01& arg_01,
51478 const t_ARG_02& arg_02,
51479 const t_ARG_03& arg_03,
51480 const t_ARG_04& arg_04,
51481 const t_ARG_05& arg_05,
51482 const t_ARG_06& arg_06,
51483 const t_ARG_07& arg_07,
51484 const t_ARG_08& arg_08,
51485 const t_ARG_09& arg_09,
51486 const t_ARG_10& arg_10);
51487
51488 template <size_t t_INDEX>
51489 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51490 t_TAIL_02,
51491 t_TAIL_03,
51492 t_TAIL_04,
51493 t_TAIL_05,
51494 t_TAIL_06,
51495 t_TAIL_07,
51496 t_TAIL_08> >::type&
51497 emplace();
51498
51499 template <size_t t_INDEX, class t_ARG_01>
51500 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51501 t_TAIL_02,
51502 t_TAIL_03,
51503 t_TAIL_04,
51504 t_TAIL_05,
51505 t_TAIL_06,
51506 t_TAIL_07,
51507 t_TAIL_08> >::type&
51508 emplace(const t_ARG_01& arg_01);
51509
51510 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
51511 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51512 t_TAIL_02,
51513 t_TAIL_03,
51514 t_TAIL_04,
51515 t_TAIL_05,
51516 t_TAIL_06,
51517 t_TAIL_07,
51518 t_TAIL_08> >::type&
51519 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
51520
51521 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
51522 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51523 t_TAIL_02,
51524 t_TAIL_03,
51525 t_TAIL_04,
51526 t_TAIL_05,
51527 t_TAIL_06,
51528 t_TAIL_07,
51529 t_TAIL_08> >::type&
51530 emplace(const t_ARG_01& arg_01,
51531 const t_ARG_02& arg_02,
51532 const t_ARG_03& arg_03);
51533
51534 template <size_t t_INDEX,
51535 class t_ARG_01,
51536 class t_ARG_02,
51537 class t_ARG_03,
51538 class t_ARG_04>
51539 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51540 t_TAIL_02,
51541 t_TAIL_03,
51542 t_TAIL_04,
51543 t_TAIL_05,
51544 t_TAIL_06,
51545 t_TAIL_07,
51546 t_TAIL_08> >::type&
51547 emplace(const t_ARG_01& arg_01,
51548 const t_ARG_02& arg_02,
51549 const t_ARG_03& arg_03,
51550 const t_ARG_04& arg_04);
51551
51552 template <size_t t_INDEX,
51553 class t_ARG_01,
51554 class t_ARG_02,
51555 class t_ARG_03,
51556 class t_ARG_04,
51557 class t_ARG_05>
51558 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51559 t_TAIL_02,
51560 t_TAIL_03,
51561 t_TAIL_04,
51562 t_TAIL_05,
51563 t_TAIL_06,
51564 t_TAIL_07,
51565 t_TAIL_08> >::type&
51566 emplace(const t_ARG_01& arg_01,
51567 const t_ARG_02& arg_02,
51568 const t_ARG_03& arg_03,
51569 const t_ARG_04& arg_04,
51570 const t_ARG_05& arg_05);
51571
51572 template <size_t t_INDEX,
51573 class t_ARG_01,
51574 class t_ARG_02,
51575 class t_ARG_03,
51576 class t_ARG_04,
51577 class t_ARG_05,
51578 class t_ARG_06>
51579 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51580 t_TAIL_02,
51581 t_TAIL_03,
51582 t_TAIL_04,
51583 t_TAIL_05,
51584 t_TAIL_06,
51585 t_TAIL_07,
51586 t_TAIL_08> >::type&
51587 emplace(const t_ARG_01& arg_01,
51588 const t_ARG_02& arg_02,
51589 const t_ARG_03& arg_03,
51590 const t_ARG_04& arg_04,
51591 const t_ARG_05& arg_05,
51592 const t_ARG_06& arg_06);
51593
51594 template <size_t t_INDEX,
51595 class t_ARG_01,
51596 class t_ARG_02,
51597 class t_ARG_03,
51598 class t_ARG_04,
51599 class t_ARG_05,
51600 class t_ARG_06,
51601 class t_ARG_07>
51602 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51603 t_TAIL_02,
51604 t_TAIL_03,
51605 t_TAIL_04,
51606 t_TAIL_05,
51607 t_TAIL_06,
51608 t_TAIL_07,
51609 t_TAIL_08> >::type&
51610 emplace(const t_ARG_01& arg_01,
51611 const t_ARG_02& arg_02,
51612 const t_ARG_03& arg_03,
51613 const t_ARG_04& arg_04,
51614 const t_ARG_05& arg_05,
51615 const t_ARG_06& arg_06,
51616 const t_ARG_07& arg_07);
51617
51618 template <size_t t_INDEX,
51619 class t_ARG_01,
51620 class t_ARG_02,
51621 class t_ARG_03,
51622 class t_ARG_04,
51623 class t_ARG_05,
51624 class t_ARG_06,
51625 class t_ARG_07,
51626 class t_ARG_08>
51627 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51628 t_TAIL_02,
51629 t_TAIL_03,
51630 t_TAIL_04,
51631 t_TAIL_05,
51632 t_TAIL_06,
51633 t_TAIL_07,
51634 t_TAIL_08> >::type&
51635 emplace(const t_ARG_01& arg_01,
51636 const t_ARG_02& arg_02,
51637 const t_ARG_03& arg_03,
51638 const t_ARG_04& arg_04,
51639 const t_ARG_05& arg_05,
51640 const t_ARG_06& arg_06,
51641 const t_ARG_07& arg_07,
51642 const t_ARG_08& arg_08);
51643
51644 template <size_t t_INDEX,
51645 class t_ARG_01,
51646 class t_ARG_02,
51647 class t_ARG_03,
51648 class t_ARG_04,
51649 class t_ARG_05,
51650 class t_ARG_06,
51651 class t_ARG_07,
51652 class t_ARG_08,
51653 class t_ARG_09>
51654 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51655 t_TAIL_02,
51656 t_TAIL_03,
51657 t_TAIL_04,
51658 t_TAIL_05,
51659 t_TAIL_06,
51660 t_TAIL_07,
51661 t_TAIL_08> >::type&
51662 emplace(const t_ARG_01& arg_01,
51663 const t_ARG_02& arg_02,
51664 const t_ARG_03& arg_03,
51665 const t_ARG_04& arg_04,
51666 const t_ARG_05& arg_05,
51667 const t_ARG_06& arg_06,
51668 const t_ARG_07& arg_07,
51669 const t_ARG_08& arg_08,
51670 const t_ARG_09& arg_09);
51671
51672 template <size_t t_INDEX,
51673 class t_ARG_01,
51674 class t_ARG_02,
51675 class t_ARG_03,
51676 class t_ARG_04,
51677 class t_ARG_05,
51678 class t_ARG_06,
51679 class t_ARG_07,
51680 class t_ARG_08,
51681 class t_ARG_09,
51682 class t_ARG_10>
51683 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
51684 t_TAIL_02,
51685 t_TAIL_03,
51686 t_TAIL_04,
51687 t_TAIL_05,
51688 t_TAIL_06,
51689 t_TAIL_07,
51690 t_TAIL_08> >::type&
51691 emplace(const t_ARG_01& arg_01,
51692 const t_ARG_02& arg_02,
51693 const t_ARG_03& arg_03,
51694 const t_ARG_04& arg_04,
51695 const t_ARG_05& arg_05,
51696 const t_ARG_06& arg_06,
51697 const t_ARG_07& arg_07,
51698 const t_ARG_08& arg_08,
51699 const t_ARG_09& arg_09,
51700 const t_ARG_10& arg_10);
51701#endif
51702
51703#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
51704 variant& operator=(const variant& rhs) = default;
51705
51706 variant& operator=(variant&& rhs) = default;
51707
51708 template <class t_TYPE>
51709 typename bsl::enable_if<
51710 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
51711 variant&>::type
51712 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
51713 {
51714 const size_t altIndex =
51715 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
51716
51717 if (index() == altIndex) {
51718 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
51719 value);
51720 }
51721 else {
51722 Variant_Base::template baseEmplace<altIndex>(
51723 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
51724 }
51725
51726 return *this;
51727 }
51728#else
51729 variant& operator=(const variant& rhs);
51730
51731 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
51732
51733 template <class t_TYPE>
51734 typename bsl::enable_if<
51735 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
51736 variant&>::type
51737 operator=(const t_TYPE& value);
51738
51739#endif
51740
51741 void swap(variant& other);
51742
51743#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
51744 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
51745 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
51746 t_TAIL_02,
51747 t_TAIL_03,
51748 t_TAIL_04,
51749 t_TAIL_05,
51750 t_TAIL_06,
51751 t_TAIL_07,
51752 t_TAIL_08>::value,
51753 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
51754#endif
51755 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
51756 {
51757 return allocator_type(Variant_Base::AllocBase::mechanism());
51758 }
51759
51760
51761 size_t index() const BSLS_KEYWORD_NOEXCEPT;
51762
51763 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
51764};
51765#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 8
51766
51767#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 9
51768template <class t_HEAD, class t_TAIL_01,
51769 class t_TAIL_02,
51770 class t_TAIL_03,
51771 class t_TAIL_04,
51772 class t_TAIL_05,
51773 class t_TAIL_06,
51774 class t_TAIL_07,
51775 class t_TAIL_08,
51776 class t_TAIL_09>
51777class variant<t_HEAD, t_TAIL_01,
51778 t_TAIL_02,
51779 t_TAIL_03,
51780 t_TAIL_04,
51781 t_TAIL_05,
51782 t_TAIL_06,
51783 t_TAIL_07,
51784 t_TAIL_08,
51785 t_TAIL_09>
51786: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
51787 t_TAIL_02,
51788 t_TAIL_03,
51789 t_TAIL_04,
51790 t_TAIL_05,
51791 t_TAIL_06,
51792 t_TAIL_07,
51793 t_TAIL_08,
51794 t_TAIL_09>
51795#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
51796,
51797 private BloombergLP::bslstl::Variant_SMFBase<
51798 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
51799 t_TAIL_01,
51800 t_TAIL_02,
51801 t_TAIL_03,
51802 t_TAIL_04,
51803 t_TAIL_05,
51804 t_TAIL_06,
51805 t_TAIL_07,
51806 t_TAIL_08,
51807 t_TAIL_09>::value,
51808 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
51809 t_TAIL_01,
51810 t_TAIL_02,
51811 t_TAIL_03,
51812 t_TAIL_04,
51813 t_TAIL_05,
51814 t_TAIL_06,
51815 t_TAIL_07,
51816 t_TAIL_08,
51817 t_TAIL_09>::value,
51818 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
51819 t_TAIL_01,
51820 t_TAIL_02,
51821 t_TAIL_03,
51822 t_TAIL_04,
51823 t_TAIL_05,
51824 t_TAIL_06,
51825 t_TAIL_07,
51826 t_TAIL_08,
51827 t_TAIL_09>::value &&
51828 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
51829 t_TAIL_01,
51830 t_TAIL_02,
51831 t_TAIL_03,
51832 t_TAIL_04,
51833 t_TAIL_05,
51834 t_TAIL_06,
51835 t_TAIL_07,
51836 t_TAIL_08,
51837 t_TAIL_09>::value,
51838 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
51839 t_TAIL_01,
51840 t_TAIL_02,
51841 t_TAIL_03,
51842 t_TAIL_04,
51843 t_TAIL_05,
51844 t_TAIL_06,
51845 t_TAIL_07,
51846 t_TAIL_08,
51847 t_TAIL_09>::value &&
51848 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
51849 t_TAIL_01,
51850 t_TAIL_02,
51851 t_TAIL_03,
51852 t_TAIL_04,
51853 t_TAIL_05,
51854 t_TAIL_06,
51855 t_TAIL_07,
51856 t_TAIL_08,
51857 t_TAIL_09>::value>
51858#endif
51859{
51860 private:
51861 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
51862 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
51863 t_TAIL_02,
51864 t_TAIL_03,
51865 t_TAIL_04,
51866 t_TAIL_05,
51867 t_TAIL_06,
51868 t_TAIL_07,
51869 t_TAIL_08,
51870 t_TAIL_09> Variant_Base;
51871 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
51872 t_TAIL_02,
51873 t_TAIL_03,
51874 t_TAIL_04,
51875 t_TAIL_05,
51876 t_TAIL_06,
51877 t_TAIL_07,
51878 t_TAIL_08,
51879 t_TAIL_09>
51880 Variant_Union;
51881
51882 friend struct BloombergLP::bslstl::Variant_ImpUtil;
51883
51884 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
51885 t_TAIL_02,
51886 t_TAIL_03,
51887 t_TAIL_04,
51888 t_TAIL_05,
51889 t_TAIL_06,
51890 t_TAIL_07,
51891 t_TAIL_08,
51892 t_TAIL_09>;
51893
51894 public:
51896 variant,
51897 BloombergLP::bslma::UsesBslmaAllocator,
51898 (BloombergLP::bslstl::
51899 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
51900 t_TAIL_02,
51901 t_TAIL_03,
51902 t_TAIL_04,
51903 t_TAIL_05,
51904 t_TAIL_06,
51905 t_TAIL_07,
51906 t_TAIL_08,
51907 t_TAIL_09>::value));
51909 variant,
51910 BloombergLP::bslmf::UsesAllocatorArgT,
51911 (BloombergLP::bslstl::
51912 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
51913 t_TAIL_02,
51914 t_TAIL_03,
51915 t_TAIL_04,
51916 t_TAIL_05,
51917 t_TAIL_06,
51918 t_TAIL_07,
51919 t_TAIL_08,
51920 t_TAIL_09>::value));
51922 variant,
51923 BloombergLP::bslmf::IsBitwiseMoveable,
51924 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
51925 t_TAIL_01,
51926 t_TAIL_02,
51927 t_TAIL_03,
51928 t_TAIL_04,
51929 t_TAIL_05,
51930 t_TAIL_06,
51931 t_TAIL_07,
51932 t_TAIL_08,
51933 t_TAIL_09>::value));
51934
51935
51936 typedef typename Variant_Base::allocator_type allocator_type;
51937
51938
51939#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
51940 template <class t_FIRST_ALT = t_HEAD,
51941 class = typename bsl::enable_if_t<
51942 std::is_default_constructible<t_FIRST_ALT>::value> >
51943 variant()
51944 : Variant_Base()
51945 {
51946 }
51947
51948 variant(const variant& original) = default;
51949
51950 variant(variant&& original) = default;
51951
51952#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
51953 template <class t_STD_VARIANT>
51954 explicit variant(
51955 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
51957 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
51958 original.index())
51959 {
51960 if (!valueless_by_exception()) {
51961 BloombergLP::bslstl::Variant_ImpUtil::
51962 ConstructFromStdVisitor<variant, decltype(original)>
51963 visitor(*this, original);
51964 BSLSTL_VARIANT_VISITID(void, visitor, *this);
51965 }
51966 }
51967#endif
51968
51969 template <class t_TYPE>
51970 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
51972
51973 template <class t_TYPE,
51974 class t_ARGS_01,
51975 class t_ARGS_02,
51976 class t_ARGS_03,
51977 class t_ARGS_04,
51978 class t_ARGS_05,
51979 class t_ARGS_06,
51980 class t_ARGS_07,
51981 class t_ARGS_08,
51982 class t_ARGS_09,
51983 class = typename bsl::enable_if_t<
51985 std::is_constructible<t_TYPE, t_ARGS_01,
51986 t_ARGS_02,
51987 t_ARGS_03,
51988 t_ARGS_04,
51989 t_ARGS_05,
51990 t_ARGS_06,
51991 t_ARGS_07,
51992 t_ARGS_08,
51993 t_ARGS_09>::value> >
51994 explicit variant(bsl::in_place_type_t<t_TYPE>,
51995 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
51996 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
51997 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
51998 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
51999 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52000 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52001 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52002 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52003 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52004 : Variant_Base(
52005 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
52006 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
52007 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
52008 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
52009 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
52010 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
52011 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
52012 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
52013 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
52014 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09))
52015 {
52016 }
52017
52018 template <class t_TYPE,
52019 class INIT_LIST_TYPE,
52020 class t_ARGS_01,
52021 class t_ARGS_02,
52022 class t_ARGS_03,
52023 class t_ARGS_04,
52024 class t_ARGS_05,
52025 class t_ARGS_06,
52026 class t_ARGS_07,
52027 class t_ARGS_08,
52028 class t_ARGS_09,
52029 class = typename bsl::enable_if_t<
52031 std::is_constructible<t_TYPE,
52032 std::initializer_list<INIT_LIST_TYPE>&,
52033 t_ARGS_01,
52034 t_ARGS_02,
52035 t_ARGS_03,
52036 t_ARGS_04,
52037 t_ARGS_05,
52038 t_ARGS_06,
52039 t_ARGS_07,
52040 t_ARGS_08,
52041 t_ARGS_09>::value> >
52042 explicit variant(bsl::in_place_type_t<t_TYPE>,
52043 std::initializer_list<INIT_LIST_TYPE> il,
52044 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
52045 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
52046 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
52047 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
52048 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52049 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52050 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52051 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52052 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52053 : Variant_Base(
52054 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
52055 il,
52056 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
52057 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
52058 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
52059 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
52060 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
52061 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
52062 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
52063 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
52064 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09))
52065 {
52066 }
52067
52068 template <size_t t_INDEX,
52069 class t_ARGS_01,
52070 class t_ARGS_02,
52071 class t_ARGS_03,
52072 class t_ARGS_04,
52073 class t_ARGS_05,
52074 class t_ARGS_06,
52075 class t_ARGS_07,
52076 class t_ARGS_08,
52077 class t_ARGS_09,
52078 class = typename bsl::enable_if_t<
52079 (t_INDEX < 1 + 9u) &&
52080 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
52081 t_ARGS_01,
52082 t_ARGS_02,
52083 t_ARGS_03,
52084 t_ARGS_04,
52085 t_ARGS_05,
52086 t_ARGS_06,
52087 t_ARGS_07,
52088 t_ARGS_08,
52089 t_ARGS_09>::value> >
52090 explicit variant(bsl::in_place_index_t<t_INDEX>,
52091 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
52092 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
52093 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
52094 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
52095 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52096 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52097 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52098 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52099 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52100 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
52101 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
52102 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
52103 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
52104 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
52105 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
52106 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
52107 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
52108 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
52109 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09))
52110 {
52111 }
52112
52113 template <size_t t_INDEX,
52114 class INIT_LIST_TYPE,
52115 class t_ARGS_01,
52116 class t_ARGS_02,
52117 class t_ARGS_03,
52118 class t_ARGS_04,
52119 class t_ARGS_05,
52120 class t_ARGS_06,
52121 class t_ARGS_07,
52122 class t_ARGS_08,
52123 class t_ARGS_09,
52124 class = typename bsl::enable_if_t<
52125 (t_INDEX < 1 + 9u) &&
52126 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
52127 std::initializer_list<INIT_LIST_TYPE>&,
52128 t_ARGS_01,
52129 t_ARGS_02,
52130 t_ARGS_03,
52131 t_ARGS_04,
52132 t_ARGS_05,
52133 t_ARGS_06,
52134 t_ARGS_07,
52135 t_ARGS_08,
52136 t_ARGS_09>::value> >
52137 explicit variant(bsl::in_place_index_t<t_INDEX>,
52138 std::initializer_list<INIT_LIST_TYPE> il,
52139 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
52140 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
52141 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
52142 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
52143 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52144 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52145 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52146 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52147 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52148 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
52149 il,
52150 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
52151 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
52152 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
52153 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
52154 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
52155 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
52156 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
52157 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
52158 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09))
52159 {
52160 }
52161
52162 template <class FIRST = t_HEAD,
52163 class = typename bsl::enable_if_t<
52164 std::is_default_constructible<FIRST>::value> >
52165 variant(bsl::allocator_arg_t, allocator_type allocator)
52166 : Variant_Base(bsl::allocator_arg_t(), allocator)
52167 {
52168 }
52169
52170 template <
52171 class FIRST = t_HEAD,
52172 class = typename bsl::enable_if_t<
52173 BloombergLP::bslstl::
52174 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
52175 t_TAIL_02,
52176 t_TAIL_03,
52177 t_TAIL_04,
52178 t_TAIL_05,
52179 t_TAIL_06,
52180 t_TAIL_07,
52181 t_TAIL_08,
52182 t_TAIL_09>::value> >
52183 variant(bsl::allocator_arg_t,
52184 allocator_type allocator,
52185 const variant& original)
52186 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
52187 {
52188 }
52189 template <
52190 class FIRST = t_HEAD,
52191 class = typename bsl::enable_if_t<
52192 BloombergLP::bslstl::
52193 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
52194 t_TAIL_02,
52195 t_TAIL_03,
52196 t_TAIL_04,
52197 t_TAIL_05,
52198 t_TAIL_06,
52199 t_TAIL_07,
52200 t_TAIL_08,
52201 t_TAIL_09>::value> >
52202 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
52203 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
52204 {
52205 }
52206
52207#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
52208 template <class t_STD_VARIANT>
52209 explicit variant(
52210 bsl::allocator_arg_t,
52211 allocator_type allocator,
52212 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
52214 : Variant_Base(bsl::allocator_arg_t(),
52215 allocator,
52216 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
52217 original.index())
52218 {
52219 if (!valueless_by_exception()) {
52220 BloombergLP::bslstl::Variant_ImpUtil::
52221 ConstructFromStdVisitor<variant, decltype(original)>
52222 visitor(*this, original);
52223 BSLSTL_VARIANT_VISITID(void, visitor, *this);
52224 }
52225 }
52226#endif
52227
52228 template <class t_TYPE>
52229 variant(
52230 bsl::allocator_arg_t,
52231 allocator_type allocator,
52234
52235 template <class t_TYPE,
52236 class t_ARGS_01,
52237 class t_ARGS_02,
52238 class t_ARGS_03,
52239 class t_ARGS_04,
52240 class t_ARGS_05,
52241 class t_ARGS_06,
52242 class t_ARGS_07,
52243 class t_ARGS_08,
52244 class t_ARGS_09,
52245 class = typename bsl::enable_if_t<
52247 std::is_constructible<t_TYPE, t_ARGS_01,
52248 t_ARGS_02,
52249 t_ARGS_03,
52250 t_ARGS_04,
52251 t_ARGS_05,
52252 t_ARGS_06,
52253 t_ARGS_07,
52254 t_ARGS_08,
52255 t_ARGS_09>::value> >
52256 explicit variant(bsl::allocator_arg_t,
52257 allocator_type allocator,
52259 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
52260 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
52261 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
52262 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
52263 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52264 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52265 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52266 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52267 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52268 : Variant_Base(
52269 bsl::allocator_arg_t{}
52270,
52271 allocator,
52272 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
52273 std::forward<t_ARGS_01>(args_01),
52274 std::forward<t_ARGS_02>(args_02),
52275 std::forward<t_ARGS_03>(args_03),
52276 std::forward<t_ARGS_04>(args_04),
52277 std::forward<t_ARGS_05>(args_05),
52278 std::forward<t_ARGS_06>(args_06),
52279 std::forward<t_ARGS_07>(args_07),
52280 std::forward<t_ARGS_08>(args_08),
52281 std::forward<t_ARGS_09>(args_09))
52282 {
52283 }
52284
52285 template <class t_TYPE,
52286 class INIT_LIST_TYPE,
52287 class t_ARGS_01,
52288 class t_ARGS_02,
52289 class t_ARGS_03,
52290 class t_ARGS_04,
52291 class t_ARGS_05,
52292 class t_ARGS_06,
52293 class t_ARGS_07,
52294 class t_ARGS_08,
52295 class t_ARGS_09,
52296 class = typename bsl::enable_if_t<
52298 std::is_constructible<t_TYPE,
52299 std::initializer_list<INIT_LIST_TYPE>&,
52300 t_ARGS_01,
52301 t_ARGS_02,
52302 t_ARGS_03,
52303 t_ARGS_04,
52304 t_ARGS_05,
52305 t_ARGS_06,
52306 t_ARGS_07,
52307 t_ARGS_08,
52308 t_ARGS_09>::value> >
52309 explicit variant(bsl::allocator_arg_t,
52310 allocator_type allocator,
52312 std::initializer_list<INIT_LIST_TYPE> il,
52313 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
52314 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
52315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
52316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
52317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52319 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52320 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52321 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52322 : Variant_Base(
52323 bsl::allocator_arg_t{}
52324,
52325 allocator,
52326 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
52327 il,
52328 std::forward<t_ARGS_01>(args_01),
52329 std::forward<t_ARGS_02>(args_02),
52330 std::forward<t_ARGS_03>(args_03),
52331 std::forward<t_ARGS_04>(args_04),
52332 std::forward<t_ARGS_05>(args_05),
52333 std::forward<t_ARGS_06>(args_06),
52334 std::forward<t_ARGS_07>(args_07),
52335 std::forward<t_ARGS_08>(args_08),
52336 std::forward<t_ARGS_09>(args_09))
52337 {
52338 }
52339
52340 template <size_t t_INDEX,
52341 class t_ARGS_01,
52342 class t_ARGS_02,
52343 class t_ARGS_03,
52344 class t_ARGS_04,
52345 class t_ARGS_05,
52346 class t_ARGS_06,
52347 class t_ARGS_07,
52348 class t_ARGS_08,
52349 class t_ARGS_09,
52350 class = typename bsl::enable_if_t<
52351 (t_INDEX < 1 + 9u) &&
52352 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
52353 t_ARGS_01,
52354 t_ARGS_02,
52355 t_ARGS_03,
52356 t_ARGS_04,
52357 t_ARGS_05,
52358 t_ARGS_06,
52359 t_ARGS_07,
52360 t_ARGS_08,
52361 t_ARGS_09>::value> >
52362 explicit variant(bsl::allocator_arg_t,
52363 allocator_type allocator,
52365 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
52366 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
52367 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
52368 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
52369 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52370 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52371 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52372 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52373 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52374 : Variant_Base(bsl::allocator_arg_t{}
52375,
52376 allocator,
52377 bsl::in_place_index_t<t_INDEX>(),
52378 std::forward<t_ARGS_01>(args_01),
52379 std::forward<t_ARGS_02>(args_02),
52380 std::forward<t_ARGS_03>(args_03),
52381 std::forward<t_ARGS_04>(args_04),
52382 std::forward<t_ARGS_05>(args_05),
52383 std::forward<t_ARGS_06>(args_06),
52384 std::forward<t_ARGS_07>(args_07),
52385 std::forward<t_ARGS_08>(args_08),
52386 std::forward<t_ARGS_09>(args_09))
52387 {
52388 }
52389
52390 template <size_t t_INDEX,
52391 class INIT_LIST_TYPE,
52392 class t_ARGS_01,
52393 class t_ARGS_02,
52394 class t_ARGS_03,
52395 class t_ARGS_04,
52396 class t_ARGS_05,
52397 class t_ARGS_06,
52398 class t_ARGS_07,
52399 class t_ARGS_08,
52400 class t_ARGS_09,
52401 class = typename bsl::enable_if_t<
52402 (t_INDEX < 1 + 9u) &&
52403 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
52404 std::initializer_list<INIT_LIST_TYPE>&,
52405 t_ARGS_01,
52406 t_ARGS_02,
52407 t_ARGS_03,
52408 t_ARGS_04,
52409 t_ARGS_05,
52410 t_ARGS_06,
52411 t_ARGS_07,
52412 t_ARGS_08,
52413 t_ARGS_09>::value> >
52414 explicit variant(bsl::allocator_arg_t,
52415 allocator_type allocator,
52417 std::initializer_list<INIT_LIST_TYPE> il,
52418 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
52419 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
52420 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
52421 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
52422 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
52423 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
52424 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
52425 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
52426 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
52427 : Variant_Base(bsl::allocator_arg_t{}
52428,
52429 allocator,
52430 bsl::in_place_index_t<t_INDEX>(),
52431 il,
52432 std::forward<t_ARGS_01>(args_01),
52433 std::forward<t_ARGS_02>(args_02),
52434 std::forward<t_ARGS_03>(args_03),
52435 std::forward<t_ARGS_04>(args_04),
52436 std::forward<t_ARGS_05>(args_05),
52437 std::forward<t_ARGS_06>(args_06),
52438 std::forward<t_ARGS_07>(args_07),
52439 std::forward<t_ARGS_08>(args_08),
52440 std::forward<t_ARGS_09>(args_09))
52441 {
52442 }
52443
52444#else
52445
52446 variant();
52447
52448 variant(const variant& original);
52449
52450 variant(BloombergLP::bslmf::MovableRef<variant> original);
52451
52452 template <class t_TYPE>
52453 variant(const t_TYPE& value,
52455
52456 template <class t_TYPE>
52457 explicit variant(bsl::in_place_type_t<t_TYPE>,
52459
52460 template <class t_TYPE, class t_ARG_01>
52461 explicit variant(bsl::in_place_type_t<t_TYPE>,
52462 const t_ARG_01& arg_01,
52464
52465 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
52466 explicit variant(bsl::in_place_type_t<t_TYPE>,
52467 const t_ARG_01& arg_01,
52468 const t_ARG_02& arg_02,
52470
52471 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
52472 explicit variant(bsl::in_place_type_t<t_TYPE>,
52473 const t_ARG_01& arg_01,
52474 const t_ARG_02& arg_02,
52475 const t_ARG_03& arg_03,
52477
52478 template <class t_TYPE,
52479 class t_ARG_01,
52480 class t_ARG_02,
52481 class t_ARG_03,
52482 class t_ARG_04>
52483 explicit variant(bsl::in_place_type_t<t_TYPE>,
52484 const t_ARG_01& arg_01,
52485 const t_ARG_02& arg_02,
52486 const t_ARG_03& arg_03,
52487 const t_ARG_04& arg_04,
52489
52490 template <class t_TYPE,
52491 class t_ARG_01,
52492 class t_ARG_02,
52493 class t_ARG_03,
52494 class t_ARG_04,
52495 class t_ARG_05>
52496 explicit variant(bsl::in_place_type_t<t_TYPE>,
52497 const t_ARG_01& arg_01,
52498 const t_ARG_02& arg_02,
52499 const t_ARG_03& arg_03,
52500 const t_ARG_04& arg_04,
52501 const t_ARG_05& arg_05,
52503
52504 template <class t_TYPE,
52505 class t_ARG_01,
52506 class t_ARG_02,
52507 class t_ARG_03,
52508 class t_ARG_04,
52509 class t_ARG_05,
52510 class t_ARG_06>
52511 explicit variant(bsl::in_place_type_t<t_TYPE>,
52512 const t_ARG_01& arg_01,
52513 const t_ARG_02& arg_02,
52514 const t_ARG_03& arg_03,
52515 const t_ARG_04& arg_04,
52516 const t_ARG_05& arg_05,
52517 const t_ARG_06& arg_06,
52519
52520 template <class t_TYPE,
52521 class t_ARG_01,
52522 class t_ARG_02,
52523 class t_ARG_03,
52524 class t_ARG_04,
52525 class t_ARG_05,
52526 class t_ARG_06,
52527 class t_ARG_07>
52528 explicit variant(bsl::in_place_type_t<t_TYPE>,
52529 const t_ARG_01& arg_01,
52530 const t_ARG_02& arg_02,
52531 const t_ARG_03& arg_03,
52532 const t_ARG_04& arg_04,
52533 const t_ARG_05& arg_05,
52534 const t_ARG_06& arg_06,
52535 const t_ARG_07& arg_07,
52537
52538 template <class t_TYPE,
52539 class t_ARG_01,
52540 class t_ARG_02,
52541 class t_ARG_03,
52542 class t_ARG_04,
52543 class t_ARG_05,
52544 class t_ARG_06,
52545 class t_ARG_07,
52546 class t_ARG_08>
52547 explicit variant(bsl::in_place_type_t<t_TYPE>,
52548 const t_ARG_01& arg_01,
52549 const t_ARG_02& arg_02,
52550 const t_ARG_03& arg_03,
52551 const t_ARG_04& arg_04,
52552 const t_ARG_05& arg_05,
52553 const t_ARG_06& arg_06,
52554 const t_ARG_07& arg_07,
52555 const t_ARG_08& arg_08,
52557
52558 template <class t_TYPE,
52559 class t_ARG_01,
52560 class t_ARG_02,
52561 class t_ARG_03,
52562 class t_ARG_04,
52563 class t_ARG_05,
52564 class t_ARG_06,
52565 class t_ARG_07,
52566 class t_ARG_08,
52567 class t_ARG_09>
52568 explicit variant(bsl::in_place_type_t<t_TYPE>,
52569 const t_ARG_01& arg_01,
52570 const t_ARG_02& arg_02,
52571 const t_ARG_03& arg_03,
52572 const t_ARG_04& arg_04,
52573 const t_ARG_05& arg_05,
52574 const t_ARG_06& arg_06,
52575 const t_ARG_07& arg_07,
52576 const t_ARG_08& arg_08,
52577 const t_ARG_09& arg_09,
52579
52580 template <class t_TYPE,
52581 class t_ARG_01,
52582 class t_ARG_02,
52583 class t_ARG_03,
52584 class t_ARG_04,
52585 class t_ARG_05,
52586 class t_ARG_06,
52587 class t_ARG_07,
52588 class t_ARG_08,
52589 class t_ARG_09,
52590 class t_ARG_10>
52591 explicit variant(bsl::in_place_type_t<t_TYPE>,
52592 const t_ARG_01& arg_01,
52593 const t_ARG_02& arg_02,
52594 const t_ARG_03& arg_03,
52595 const t_ARG_04& arg_04,
52596 const t_ARG_05& arg_05,
52597 const t_ARG_06& arg_06,
52598 const t_ARG_07& arg_07,
52599 const t_ARG_08& arg_08,
52600 const t_ARG_09& arg_09,
52601 const t_ARG_10& arg_10,
52603
52604 template <size_t t_INDEX>
52605 explicit variant(bsl::in_place_index_t<t_INDEX>);
52606
52607 template <size_t t_INDEX, class t_ARG_01>
52608 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
52609
52610 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
52611 explicit variant(bsl::in_place_index_t<t_INDEX>,
52612 const t_ARG_01& arg_01,
52613 const t_ARG_02& arg_02);
52614
52615 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
52616 explicit variant(bsl::in_place_index_t<t_INDEX>,
52617 const t_ARG_01& arg_01,
52618 const t_ARG_02& arg_02,
52619 const t_ARG_03& arg_03);
52620
52621 template <size_t t_INDEX,
52622 class t_ARG_01,
52623 class t_ARG_02,
52624 class t_ARG_03,
52625 class t_ARG_04>
52626 explicit variant(bsl::in_place_index_t<t_INDEX>,
52627 const t_ARG_01& arg_01,
52628 const t_ARG_02& arg_02,
52629 const t_ARG_03& arg_03,
52630 const t_ARG_04& arg_04);
52631
52632 template <size_t t_INDEX,
52633 class t_ARG_01,
52634 class t_ARG_02,
52635 class t_ARG_03,
52636 class t_ARG_04,
52637 class t_ARG_05>
52638 explicit variant(bsl::in_place_index_t<t_INDEX>,
52639 const t_ARG_01& arg_01,
52640 const t_ARG_02& arg_02,
52641 const t_ARG_03& arg_03,
52642 const t_ARG_04& arg_04,
52643 const t_ARG_05& arg_05);
52644
52645 template <size_t t_INDEX,
52646 class t_ARG_01,
52647 class t_ARG_02,
52648 class t_ARG_03,
52649 class t_ARG_04,
52650 class t_ARG_05,
52651 class t_ARG_06>
52652 explicit variant(bsl::in_place_index_t<t_INDEX>,
52653 const t_ARG_01& arg_01,
52654 const t_ARG_02& arg_02,
52655 const t_ARG_03& arg_03,
52656 const t_ARG_04& arg_04,
52657 const t_ARG_05& arg_05,
52658 const t_ARG_06& arg_06);
52659
52660 template <size_t t_INDEX,
52661 class t_ARG_01,
52662 class t_ARG_02,
52663 class t_ARG_03,
52664 class t_ARG_04,
52665 class t_ARG_05,
52666 class t_ARG_06,
52667 class t_ARG_07>
52668 explicit variant(bsl::in_place_index_t<t_INDEX>,
52669 const t_ARG_01& arg_01,
52670 const t_ARG_02& arg_02,
52671 const t_ARG_03& arg_03,
52672 const t_ARG_04& arg_04,
52673 const t_ARG_05& arg_05,
52674 const t_ARG_06& arg_06,
52675 const t_ARG_07& arg_07);
52676
52677 template <size_t t_INDEX,
52678 class t_ARG_01,
52679 class t_ARG_02,
52680 class t_ARG_03,
52681 class t_ARG_04,
52682 class t_ARG_05,
52683 class t_ARG_06,
52684 class t_ARG_07,
52685 class t_ARG_08>
52686 explicit variant(bsl::in_place_index_t<t_INDEX>,
52687 const t_ARG_01& arg_01,
52688 const t_ARG_02& arg_02,
52689 const t_ARG_03& arg_03,
52690 const t_ARG_04& arg_04,
52691 const t_ARG_05& arg_05,
52692 const t_ARG_06& arg_06,
52693 const t_ARG_07& arg_07,
52694 const t_ARG_08& arg_08);
52695
52696 template <size_t t_INDEX,
52697 class t_ARG_01,
52698 class t_ARG_02,
52699 class t_ARG_03,
52700 class t_ARG_04,
52701 class t_ARG_05,
52702 class t_ARG_06,
52703 class t_ARG_07,
52704 class t_ARG_08,
52705 class t_ARG_09>
52706 explicit variant(bsl::in_place_index_t<t_INDEX>,
52707 const t_ARG_01& arg_01,
52708 const t_ARG_02& arg_02,
52709 const t_ARG_03& arg_03,
52710 const t_ARG_04& arg_04,
52711 const t_ARG_05& arg_05,
52712 const t_ARG_06& arg_06,
52713 const t_ARG_07& arg_07,
52714 const t_ARG_08& arg_08,
52715 const t_ARG_09& arg_09);
52716
52717 template <size_t t_INDEX,
52718 class t_ARG_01,
52719 class t_ARG_02,
52720 class t_ARG_03,
52721 class t_ARG_04,
52722 class t_ARG_05,
52723 class t_ARG_06,
52724 class t_ARG_07,
52725 class t_ARG_08,
52726 class t_ARG_09,
52727 class t_ARG_10>
52728 explicit variant(bsl::in_place_index_t<t_INDEX>,
52729 const t_ARG_01& arg_01,
52730 const t_ARG_02& arg_02,
52731 const t_ARG_03& arg_03,
52732 const t_ARG_04& arg_04,
52733 const t_ARG_05& arg_05,
52734 const t_ARG_06& arg_06,
52735 const t_ARG_07& arg_07,
52736 const t_ARG_08& arg_08,
52737 const t_ARG_09& arg_09,
52738 const t_ARG_10& arg_10);
52739
52740 variant(bsl::allocator_arg_t, allocator_type allocator);
52741
52742 variant(bsl::allocator_arg_t,
52743 allocator_type allocator,
52744 const variant& original);
52745 variant(bsl::allocator_arg_t,
52746 allocator_type allocator,
52747 BloombergLP::bslmf::MovableRef<variant> original);
52748
52749 template <class t_TYPE>
52750 variant(
52751 bsl::allocator_arg_t,
52752 allocator_type allocator,
52753 const t_TYPE& value,
52755
52756 template <class t_TYPE>
52757 explicit variant(
52758 bsl::allocator_arg_t,
52759 allocator_type allocator,
52762
52763 template <class t_TYPE, class t_ARG_01>
52764 explicit variant(
52765 bsl::allocator_arg_t,
52766 allocator_type allocator,
52768 const t_ARG_01& arg_01,
52770
52771 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
52772 explicit variant(
52773 bsl::allocator_arg_t,
52774 allocator_type allocator,
52776 const t_ARG_01& arg_01,
52777 const t_ARG_02& arg_02,
52779
52780 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
52781 explicit variant(
52782 bsl::allocator_arg_t,
52783 allocator_type allocator,
52785 const t_ARG_01& arg_01,
52786 const t_ARG_02& arg_02,
52787 const t_ARG_03& arg_03,
52789
52790 template <class t_TYPE,
52791 class t_ARG_01,
52792 class t_ARG_02,
52793 class t_ARG_03,
52794 class t_ARG_04>
52795 explicit variant(bsl::allocator_arg_t,
52796 allocator_type allocator,
52798 const t_ARG_01& arg_01,
52799 const t_ARG_02& arg_02,
52800 const t_ARG_03& arg_03,
52801 const t_ARG_04& arg_04,
52803
52804 template <class t_TYPE,
52805 class t_ARG_01,
52806 class t_ARG_02,
52807 class t_ARG_03,
52808 class t_ARG_04,
52809 class t_ARG_05>
52810 explicit variant(bsl::allocator_arg_t,
52811 allocator_type allocator,
52813 const t_ARG_01& arg_01,
52814 const t_ARG_02& arg_02,
52815 const t_ARG_03& arg_03,
52816 const t_ARG_04& arg_04,
52817 const t_ARG_05& arg_05,
52819
52820 template <class t_TYPE,
52821 class t_ARG_01,
52822 class t_ARG_02,
52823 class t_ARG_03,
52824 class t_ARG_04,
52825 class t_ARG_05,
52826 class t_ARG_06>
52827 explicit variant(bsl::allocator_arg_t,
52828 allocator_type allocator,
52830 const t_ARG_01& arg_01,
52831 const t_ARG_02& arg_02,
52832 const t_ARG_03& arg_03,
52833 const t_ARG_04& arg_04,
52834 const t_ARG_05& arg_05,
52835 const t_ARG_06& arg_06,
52837
52838 template <class t_TYPE,
52839 class t_ARG_01,
52840 class t_ARG_02,
52841 class t_ARG_03,
52842 class t_ARG_04,
52843 class t_ARG_05,
52844 class t_ARG_06,
52845 class t_ARG_07>
52846 explicit variant(bsl::allocator_arg_t,
52847 allocator_type allocator,
52849 const t_ARG_01& arg_01,
52850 const t_ARG_02& arg_02,
52851 const t_ARG_03& arg_03,
52852 const t_ARG_04& arg_04,
52853 const t_ARG_05& arg_05,
52854 const t_ARG_06& arg_06,
52855 const t_ARG_07& arg_07,
52857
52858 template <class t_TYPE,
52859 class t_ARG_01,
52860 class t_ARG_02,
52861 class t_ARG_03,
52862 class t_ARG_04,
52863 class t_ARG_05,
52864 class t_ARG_06,
52865 class t_ARG_07,
52866 class t_ARG_08>
52867 explicit variant(bsl::allocator_arg_t,
52868 allocator_type allocator,
52870 const t_ARG_01& arg_01,
52871 const t_ARG_02& arg_02,
52872 const t_ARG_03& arg_03,
52873 const t_ARG_04& arg_04,
52874 const t_ARG_05& arg_05,
52875 const t_ARG_06& arg_06,
52876 const t_ARG_07& arg_07,
52877 const t_ARG_08& arg_08,
52879
52880 template <class t_TYPE,
52881 class t_ARG_01,
52882 class t_ARG_02,
52883 class t_ARG_03,
52884 class t_ARG_04,
52885 class t_ARG_05,
52886 class t_ARG_06,
52887 class t_ARG_07,
52888 class t_ARG_08,
52889 class t_ARG_09>
52890 explicit variant(bsl::allocator_arg_t,
52891 allocator_type allocator,
52893 const t_ARG_01& arg_01,
52894 const t_ARG_02& arg_02,
52895 const t_ARG_03& arg_03,
52896 const t_ARG_04& arg_04,
52897 const t_ARG_05& arg_05,
52898 const t_ARG_06& arg_06,
52899 const t_ARG_07& arg_07,
52900 const t_ARG_08& arg_08,
52901 const t_ARG_09& arg_09,
52903
52904 template <class t_TYPE,
52905 class t_ARG_01,
52906 class t_ARG_02,
52907 class t_ARG_03,
52908 class t_ARG_04,
52909 class t_ARG_05,
52910 class t_ARG_06,
52911 class t_ARG_07,
52912 class t_ARG_08,
52913 class t_ARG_09,
52914 class t_ARG_10>
52915 explicit variant(bsl::allocator_arg_t,
52916 allocator_type allocator,
52918 const t_ARG_01& arg_01,
52919 const t_ARG_02& arg_02,
52920 const t_ARG_03& arg_03,
52921 const t_ARG_04& arg_04,
52922 const t_ARG_05& arg_05,
52923 const t_ARG_06& arg_06,
52924 const t_ARG_07& arg_07,
52925 const t_ARG_08& arg_08,
52926 const t_ARG_09& arg_09,
52927 const t_ARG_10& arg_10,
52929
52930 template <size_t t_INDEX>
52931 explicit variant(bsl::allocator_arg_t,
52932 allocator_type allocator,
52934
52935 template <size_t t_INDEX, class t_ARG_01>
52936 explicit variant(bsl::allocator_arg_t,
52937 allocator_type allocator,
52939 const t_ARG_01& arg_01);
52940
52941 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
52942 explicit variant(bsl::allocator_arg_t,
52943 allocator_type allocator,
52945 const t_ARG_01& arg_01,
52946 const t_ARG_02& arg_02);
52947
52948 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
52949 explicit variant(bsl::allocator_arg_t,
52950 allocator_type allocator,
52952 const t_ARG_01& arg_01,
52953 const t_ARG_02& arg_02,
52954 const t_ARG_03& arg_03);
52955
52956 template <size_t t_INDEX,
52957 class t_ARG_01,
52958 class t_ARG_02,
52959 class t_ARG_03,
52960 class t_ARG_04>
52961 explicit variant(bsl::allocator_arg_t,
52962 allocator_type allocator,
52964 const t_ARG_01& arg_01,
52965 const t_ARG_02& arg_02,
52966 const t_ARG_03& arg_03,
52967 const t_ARG_04& arg_04);
52968
52969 template <size_t t_INDEX,
52970 class t_ARG_01,
52971 class t_ARG_02,
52972 class t_ARG_03,
52973 class t_ARG_04,
52974 class t_ARG_05>
52975 explicit variant(bsl::allocator_arg_t,
52976 allocator_type allocator,
52978 const t_ARG_01& arg_01,
52979 const t_ARG_02& arg_02,
52980 const t_ARG_03& arg_03,
52981 const t_ARG_04& arg_04,
52982 const t_ARG_05& arg_05);
52983
52984 template <size_t t_INDEX,
52985 class t_ARG_01,
52986 class t_ARG_02,
52987 class t_ARG_03,
52988 class t_ARG_04,
52989 class t_ARG_05,
52990 class t_ARG_06>
52991 explicit variant(bsl::allocator_arg_t,
52992 allocator_type allocator,
52994 const t_ARG_01& arg_01,
52995 const t_ARG_02& arg_02,
52996 const t_ARG_03& arg_03,
52997 const t_ARG_04& arg_04,
52998 const t_ARG_05& arg_05,
52999 const t_ARG_06& arg_06);
53000
53001 template <size_t t_INDEX,
53002 class t_ARG_01,
53003 class t_ARG_02,
53004 class t_ARG_03,
53005 class t_ARG_04,
53006 class t_ARG_05,
53007 class t_ARG_06,
53008 class t_ARG_07>
53009 explicit variant(bsl::allocator_arg_t,
53010 allocator_type allocator,
53012 const t_ARG_01& arg_01,
53013 const t_ARG_02& arg_02,
53014 const t_ARG_03& arg_03,
53015 const t_ARG_04& arg_04,
53016 const t_ARG_05& arg_05,
53017 const t_ARG_06& arg_06,
53018 const t_ARG_07& arg_07);
53019
53020 template <size_t t_INDEX,
53021 class t_ARG_01,
53022 class t_ARG_02,
53023 class t_ARG_03,
53024 class t_ARG_04,
53025 class t_ARG_05,
53026 class t_ARG_06,
53027 class t_ARG_07,
53028 class t_ARG_08>
53029 explicit variant(bsl::allocator_arg_t,
53030 allocator_type allocator,
53032 const t_ARG_01& arg_01,
53033 const t_ARG_02& arg_02,
53034 const t_ARG_03& arg_03,
53035 const t_ARG_04& arg_04,
53036 const t_ARG_05& arg_05,
53037 const t_ARG_06& arg_06,
53038 const t_ARG_07& arg_07,
53039 const t_ARG_08& arg_08);
53040
53041 template <size_t t_INDEX,
53042 class t_ARG_01,
53043 class t_ARG_02,
53044 class t_ARG_03,
53045 class t_ARG_04,
53046 class t_ARG_05,
53047 class t_ARG_06,
53048 class t_ARG_07,
53049 class t_ARG_08,
53050 class t_ARG_09>
53051 explicit variant(bsl::allocator_arg_t,
53052 allocator_type allocator,
53054 const t_ARG_01& arg_01,
53055 const t_ARG_02& arg_02,
53056 const t_ARG_03& arg_03,
53057 const t_ARG_04& arg_04,
53058 const t_ARG_05& arg_05,
53059 const t_ARG_06& arg_06,
53060 const t_ARG_07& arg_07,
53061 const t_ARG_08& arg_08,
53062 const t_ARG_09& arg_09);
53063
53064 template <size_t t_INDEX,
53065 class t_ARG_01,
53066 class t_ARG_02,
53067 class t_ARG_03,
53068 class t_ARG_04,
53069 class t_ARG_05,
53070 class t_ARG_06,
53071 class t_ARG_07,
53072 class t_ARG_08,
53073 class t_ARG_09,
53074 class t_ARG_10>
53075 explicit variant(bsl::allocator_arg_t,
53076 allocator_type allocator,
53078 const t_ARG_01& arg_01,
53079 const t_ARG_02& arg_02,
53080 const t_ARG_03& arg_03,
53081 const t_ARG_04& arg_04,
53082 const t_ARG_05& arg_05,
53083 const t_ARG_06& arg_06,
53084 const t_ARG_07& arg_07,
53085 const t_ARG_08& arg_08,
53086 const t_ARG_09& arg_09,
53087 const t_ARG_10& arg_10);
53088
53089#endif
53090
53091
53092#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
53093 template <class t_TYPE,
53094 class t_ARGS_01,
53095 class t_ARGS_02,
53096 class t_ARGS_03,
53097 class t_ARGS_04,
53098 class t_ARGS_05,
53099 class t_ARGS_06,
53100 class t_ARGS_07,
53101 class t_ARGS_08,
53102 class t_ARGS_09,
53103 class = typename bsl::enable_if_t<
53105 std::is_constructible<t_TYPE, t_ARGS_01,
53106 t_ARGS_02,
53107 t_ARGS_03,
53108 t_ARGS_04,
53109 t_ARGS_05,
53110 t_ARGS_06,
53111 t_ARGS_07,
53112 t_ARGS_08,
53113 t_ARGS_09>::value> >
53114 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
53115 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
53116 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
53117 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
53118 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
53119 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
53120 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
53121 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
53122 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
53123 {
53124 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
53125 Variant_Base::template baseEmplace<index>(
53126 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
53127 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
53128 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
53129 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
53130 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
53131 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
53132 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
53133 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
53134 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09));
53135
53136 return bsl::get<index>(*this);
53137 }
53138
53139 template <class t_TYPE,
53140 class INIT_LIST_TYPE,
53141 class t_ARGS_01,
53142 class t_ARGS_02,
53143 class t_ARGS_03,
53144 class t_ARGS_04,
53145 class t_ARGS_05,
53146 class t_ARGS_06,
53147 class t_ARGS_07,
53148 class t_ARGS_08,
53149 class t_ARGS_09,
53150 class = typename bsl::enable_if_t<
53152 std::is_constructible<t_TYPE,
53153 std::initializer_list<INIT_LIST_TYPE>&,
53154 t_ARGS_01,
53155 t_ARGS_02,
53156 t_ARGS_03,
53157 t_ARGS_04,
53158 t_ARGS_05,
53159 t_ARGS_06,
53160 t_ARGS_07,
53161 t_ARGS_08,
53162 t_ARGS_09>::value> >
53163 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
53164 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
53165 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
53166 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
53167 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
53168 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
53169 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
53170 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
53171 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
53172 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
53173 {
53174 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
53175 Variant_Base::template baseEmplace<index>(
53176 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
53177 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
53178 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
53179 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
53180 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
53181 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
53182 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
53183 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
53184 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09));
53185
53186 return bsl::get<index>(*this);
53187 }
53188
53189 template <size_t t_INDEX,
53190 class t_ARGS_01,
53191 class t_ARGS_02,
53192 class t_ARGS_03,
53193 class t_ARGS_04,
53194 class t_ARGS_05,
53195 class t_ARGS_06,
53196 class t_ARGS_07,
53197 class t_ARGS_08,
53198 class t_ARGS_09,
53199 class = typename bsl::enable_if_t<
53200 (t_INDEX < 1 + 9u) &&
53201 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
53202 t_ARGS_01,
53203 t_ARGS_02,
53204 t_ARGS_03,
53205 t_ARGS_04,
53206 t_ARGS_05,
53207 t_ARGS_06,
53208 t_ARGS_07,
53209 t_ARGS_08,
53210 t_ARGS_09>::value> >
53211 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53212 t_TAIL_02,
53213 t_TAIL_03,
53214 t_TAIL_04,
53215 t_TAIL_05,
53216 t_TAIL_06,
53217 t_TAIL_07,
53218 t_TAIL_08,
53219 t_TAIL_09> >::type&
53220 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
53221 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
53222 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
53223 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
53224 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
53225 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
53226 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
53227 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
53228 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
53229 {
53230 Variant_Base::template baseEmplace<t_INDEX>(
53231 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
53232 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
53233 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
53234 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
53235 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
53236 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
53237 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
53238 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
53239 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09));
53240
53241 return bsl::get<t_INDEX>(*this);
53242 }
53243
53244 template <size_t t_INDEX,
53245 class INIT_LIST_TYPE,
53246 class t_ARGS_01,
53247 class t_ARGS_02,
53248 class t_ARGS_03,
53249 class t_ARGS_04,
53250 class t_ARGS_05,
53251 class t_ARGS_06,
53252 class t_ARGS_07,
53253 class t_ARGS_08,
53254 class t_ARGS_09,
53255 class = typename bsl::enable_if_t<
53256 (t_INDEX < 1 + 9u) &&
53257 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
53258 std::initializer_list<INIT_LIST_TYPE>&,
53259 t_ARGS_01,
53260 t_ARGS_02,
53261 t_ARGS_03,
53262 t_ARGS_04,
53263 t_ARGS_05,
53264 t_ARGS_06,
53265 t_ARGS_07,
53266 t_ARGS_08,
53267 t_ARGS_09>::value> >
53268 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53269 t_TAIL_02,
53270 t_TAIL_03,
53271 t_TAIL_04,
53272 t_TAIL_05,
53273 t_TAIL_06,
53274 t_TAIL_07,
53275 t_TAIL_08,
53276 t_TAIL_09> >::type&
53277 emplace(std::initializer_list<INIT_LIST_TYPE> il,
53278 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
53279 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
53280 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
53281 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
53282 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
53283 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
53284 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
53285 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
53286 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09)
53287 {
53288 Variant_Base::template baseEmplace<t_INDEX>(
53289 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
53290 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
53291 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
53292 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
53293 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
53294 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
53295 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
53296 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
53297 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09));
53298
53299 return bsl::get<t_INDEX>(*this);
53300 }
53301
53302#else
53303
53304 template <class t_TYPE>
53305 typename bsl::enable_if<
53306 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53307 t_TYPE&>::type
53308 emplace();
53309
53310 template <class t_TYPE, class t_ARG_01>
53311 typename bsl::enable_if<
53312 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53313 t_TYPE&>::type
53314 emplace(const t_ARG_01& arg_01);
53315
53316 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
53317 typename bsl::enable_if<
53318 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53319 t_TYPE&>::type
53320 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
53321
53322 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
53323 typename bsl::enable_if<
53324 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53325 t_TYPE&>::type
53326 emplace(const t_ARG_01& arg_01,
53327 const t_ARG_02& arg_02,
53328 const t_ARG_03& arg_03);
53329
53330 template <class t_TYPE,
53331 class t_ARG_01,
53332 class t_ARG_02,
53333 class t_ARG_03,
53334 class t_ARG_04>
53335 typename bsl::enable_if<
53336 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53337 t_TYPE&>::type
53338 emplace(const t_ARG_01& arg_01,
53339 const t_ARG_02& arg_02,
53340 const t_ARG_03& arg_03,
53341 const t_ARG_04& arg_04);
53342
53343 template <class t_TYPE,
53344 class t_ARG_01,
53345 class t_ARG_02,
53346 class t_ARG_03,
53347 class t_ARG_04,
53348 class t_ARG_05>
53349 typename bsl::enable_if<
53350 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53351 t_TYPE&>::type
53352 emplace(const t_ARG_01& arg_01,
53353 const t_ARG_02& arg_02,
53354 const t_ARG_03& arg_03,
53355 const t_ARG_04& arg_04,
53356 const t_ARG_05& arg_05);
53357
53358 template <class t_TYPE,
53359 class t_ARG_01,
53360 class t_ARG_02,
53361 class t_ARG_03,
53362 class t_ARG_04,
53363 class t_ARG_05,
53364 class t_ARG_06>
53365 typename bsl::enable_if<
53366 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53367 t_TYPE&>::type
53368 emplace(const t_ARG_01& arg_01,
53369 const t_ARG_02& arg_02,
53370 const t_ARG_03& arg_03,
53371 const t_ARG_04& arg_04,
53372 const t_ARG_05& arg_05,
53373 const t_ARG_06& arg_06);
53374
53375 template <class t_TYPE,
53376 class t_ARG_01,
53377 class t_ARG_02,
53378 class t_ARG_03,
53379 class t_ARG_04,
53380 class t_ARG_05,
53381 class t_ARG_06,
53382 class t_ARG_07>
53383 typename bsl::enable_if<
53384 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53385 t_TYPE&>::type
53386 emplace(const t_ARG_01& arg_01,
53387 const t_ARG_02& arg_02,
53388 const t_ARG_03& arg_03,
53389 const t_ARG_04& arg_04,
53390 const t_ARG_05& arg_05,
53391 const t_ARG_06& arg_06,
53392 const t_ARG_07& arg_07);
53393
53394 template <class t_TYPE,
53395 class t_ARG_01,
53396 class t_ARG_02,
53397 class t_ARG_03,
53398 class t_ARG_04,
53399 class t_ARG_05,
53400 class t_ARG_06,
53401 class t_ARG_07,
53402 class t_ARG_08>
53403 typename bsl::enable_if<
53404 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53405 t_TYPE&>::type
53406 emplace(const t_ARG_01& arg_01,
53407 const t_ARG_02& arg_02,
53408 const t_ARG_03& arg_03,
53409 const t_ARG_04& arg_04,
53410 const t_ARG_05& arg_05,
53411 const t_ARG_06& arg_06,
53412 const t_ARG_07& arg_07,
53413 const t_ARG_08& arg_08);
53414
53415 template <class t_TYPE,
53416 class t_ARG_01,
53417 class t_ARG_02,
53418 class t_ARG_03,
53419 class t_ARG_04,
53420 class t_ARG_05,
53421 class t_ARG_06,
53422 class t_ARG_07,
53423 class t_ARG_08,
53424 class t_ARG_09>
53425 typename bsl::enable_if<
53426 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53427 t_TYPE&>::type
53428 emplace(const t_ARG_01& arg_01,
53429 const t_ARG_02& arg_02,
53430 const t_ARG_03& arg_03,
53431 const t_ARG_04& arg_04,
53432 const t_ARG_05& arg_05,
53433 const t_ARG_06& arg_06,
53434 const t_ARG_07& arg_07,
53435 const t_ARG_08& arg_08,
53436 const t_ARG_09& arg_09);
53437
53438 template <class t_TYPE,
53439 class t_ARG_01,
53440 class t_ARG_02,
53441 class t_ARG_03,
53442 class t_ARG_04,
53443 class t_ARG_05,
53444 class t_ARG_06,
53445 class t_ARG_07,
53446 class t_ARG_08,
53447 class t_ARG_09,
53448 class t_ARG_10>
53449 typename bsl::enable_if<
53450 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
53451 t_TYPE&>::type
53452 emplace(const t_ARG_01& arg_01,
53453 const t_ARG_02& arg_02,
53454 const t_ARG_03& arg_03,
53455 const t_ARG_04& arg_04,
53456 const t_ARG_05& arg_05,
53457 const t_ARG_06& arg_06,
53458 const t_ARG_07& arg_07,
53459 const t_ARG_08& arg_08,
53460 const t_ARG_09& arg_09,
53461 const t_ARG_10& arg_10);
53462
53463 template <size_t t_INDEX>
53464 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53465 t_TAIL_02,
53466 t_TAIL_03,
53467 t_TAIL_04,
53468 t_TAIL_05,
53469 t_TAIL_06,
53470 t_TAIL_07,
53471 t_TAIL_08,
53472 t_TAIL_09> >::type&
53473 emplace();
53474
53475 template <size_t t_INDEX, class t_ARG_01>
53476 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53477 t_TAIL_02,
53478 t_TAIL_03,
53479 t_TAIL_04,
53480 t_TAIL_05,
53481 t_TAIL_06,
53482 t_TAIL_07,
53483 t_TAIL_08,
53484 t_TAIL_09> >::type&
53485 emplace(const t_ARG_01& arg_01);
53486
53487 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
53488 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53489 t_TAIL_02,
53490 t_TAIL_03,
53491 t_TAIL_04,
53492 t_TAIL_05,
53493 t_TAIL_06,
53494 t_TAIL_07,
53495 t_TAIL_08,
53496 t_TAIL_09> >::type&
53497 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
53498
53499 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
53500 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53501 t_TAIL_02,
53502 t_TAIL_03,
53503 t_TAIL_04,
53504 t_TAIL_05,
53505 t_TAIL_06,
53506 t_TAIL_07,
53507 t_TAIL_08,
53508 t_TAIL_09> >::type&
53509 emplace(const t_ARG_01& arg_01,
53510 const t_ARG_02& arg_02,
53511 const t_ARG_03& arg_03);
53512
53513 template <size_t t_INDEX,
53514 class t_ARG_01,
53515 class t_ARG_02,
53516 class t_ARG_03,
53517 class t_ARG_04>
53518 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53519 t_TAIL_02,
53520 t_TAIL_03,
53521 t_TAIL_04,
53522 t_TAIL_05,
53523 t_TAIL_06,
53524 t_TAIL_07,
53525 t_TAIL_08,
53526 t_TAIL_09> >::type&
53527 emplace(const t_ARG_01& arg_01,
53528 const t_ARG_02& arg_02,
53529 const t_ARG_03& arg_03,
53530 const t_ARG_04& arg_04);
53531
53532 template <size_t t_INDEX,
53533 class t_ARG_01,
53534 class t_ARG_02,
53535 class t_ARG_03,
53536 class t_ARG_04,
53537 class t_ARG_05>
53538 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53539 t_TAIL_02,
53540 t_TAIL_03,
53541 t_TAIL_04,
53542 t_TAIL_05,
53543 t_TAIL_06,
53544 t_TAIL_07,
53545 t_TAIL_08,
53546 t_TAIL_09> >::type&
53547 emplace(const t_ARG_01& arg_01,
53548 const t_ARG_02& arg_02,
53549 const t_ARG_03& arg_03,
53550 const t_ARG_04& arg_04,
53551 const t_ARG_05& arg_05);
53552
53553 template <size_t t_INDEX,
53554 class t_ARG_01,
53555 class t_ARG_02,
53556 class t_ARG_03,
53557 class t_ARG_04,
53558 class t_ARG_05,
53559 class t_ARG_06>
53560 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53561 t_TAIL_02,
53562 t_TAIL_03,
53563 t_TAIL_04,
53564 t_TAIL_05,
53565 t_TAIL_06,
53566 t_TAIL_07,
53567 t_TAIL_08,
53568 t_TAIL_09> >::type&
53569 emplace(const t_ARG_01& arg_01,
53570 const t_ARG_02& arg_02,
53571 const t_ARG_03& arg_03,
53572 const t_ARG_04& arg_04,
53573 const t_ARG_05& arg_05,
53574 const t_ARG_06& arg_06);
53575
53576 template <size_t t_INDEX,
53577 class t_ARG_01,
53578 class t_ARG_02,
53579 class t_ARG_03,
53580 class t_ARG_04,
53581 class t_ARG_05,
53582 class t_ARG_06,
53583 class t_ARG_07>
53584 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53585 t_TAIL_02,
53586 t_TAIL_03,
53587 t_TAIL_04,
53588 t_TAIL_05,
53589 t_TAIL_06,
53590 t_TAIL_07,
53591 t_TAIL_08,
53592 t_TAIL_09> >::type&
53593 emplace(const t_ARG_01& arg_01,
53594 const t_ARG_02& arg_02,
53595 const t_ARG_03& arg_03,
53596 const t_ARG_04& arg_04,
53597 const t_ARG_05& arg_05,
53598 const t_ARG_06& arg_06,
53599 const t_ARG_07& arg_07);
53600
53601 template <size_t t_INDEX,
53602 class t_ARG_01,
53603 class t_ARG_02,
53604 class t_ARG_03,
53605 class t_ARG_04,
53606 class t_ARG_05,
53607 class t_ARG_06,
53608 class t_ARG_07,
53609 class t_ARG_08>
53610 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53611 t_TAIL_02,
53612 t_TAIL_03,
53613 t_TAIL_04,
53614 t_TAIL_05,
53615 t_TAIL_06,
53616 t_TAIL_07,
53617 t_TAIL_08,
53618 t_TAIL_09> >::type&
53619 emplace(const t_ARG_01& arg_01,
53620 const t_ARG_02& arg_02,
53621 const t_ARG_03& arg_03,
53622 const t_ARG_04& arg_04,
53623 const t_ARG_05& arg_05,
53624 const t_ARG_06& arg_06,
53625 const t_ARG_07& arg_07,
53626 const t_ARG_08& arg_08);
53627
53628 template <size_t t_INDEX,
53629 class t_ARG_01,
53630 class t_ARG_02,
53631 class t_ARG_03,
53632 class t_ARG_04,
53633 class t_ARG_05,
53634 class t_ARG_06,
53635 class t_ARG_07,
53636 class t_ARG_08,
53637 class t_ARG_09>
53638 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53639 t_TAIL_02,
53640 t_TAIL_03,
53641 t_TAIL_04,
53642 t_TAIL_05,
53643 t_TAIL_06,
53644 t_TAIL_07,
53645 t_TAIL_08,
53646 t_TAIL_09> >::type&
53647 emplace(const t_ARG_01& arg_01,
53648 const t_ARG_02& arg_02,
53649 const t_ARG_03& arg_03,
53650 const t_ARG_04& arg_04,
53651 const t_ARG_05& arg_05,
53652 const t_ARG_06& arg_06,
53653 const t_ARG_07& arg_07,
53654 const t_ARG_08& arg_08,
53655 const t_ARG_09& arg_09);
53656
53657 template <size_t t_INDEX,
53658 class t_ARG_01,
53659 class t_ARG_02,
53660 class t_ARG_03,
53661 class t_ARG_04,
53662 class t_ARG_05,
53663 class t_ARG_06,
53664 class t_ARG_07,
53665 class t_ARG_08,
53666 class t_ARG_09,
53667 class t_ARG_10>
53668 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
53669 t_TAIL_02,
53670 t_TAIL_03,
53671 t_TAIL_04,
53672 t_TAIL_05,
53673 t_TAIL_06,
53674 t_TAIL_07,
53675 t_TAIL_08,
53676 t_TAIL_09> >::type&
53677 emplace(const t_ARG_01& arg_01,
53678 const t_ARG_02& arg_02,
53679 const t_ARG_03& arg_03,
53680 const t_ARG_04& arg_04,
53681 const t_ARG_05& arg_05,
53682 const t_ARG_06& arg_06,
53683 const t_ARG_07& arg_07,
53684 const t_ARG_08& arg_08,
53685 const t_ARG_09& arg_09,
53686 const t_ARG_10& arg_10);
53687#endif
53688
53689#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
53690 variant& operator=(const variant& rhs) = default;
53691
53692 variant& operator=(variant&& rhs) = default;
53693
53694 template <class t_TYPE>
53695 typename bsl::enable_if<
53696 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
53697 variant&>::type
53698 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
53699 {
53700 const size_t altIndex =
53701 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
53702
53703 if (index() == altIndex) {
53704 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
53705 value);
53706 }
53707 else {
53708 Variant_Base::template baseEmplace<altIndex>(
53709 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
53710 }
53711
53712 return *this;
53713 }
53714#else
53715 variant& operator=(const variant& rhs);
53716
53717 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
53718
53719 template <class t_TYPE>
53720 typename bsl::enable_if<
53721 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
53722 variant&>::type
53723 operator=(const t_TYPE& value);
53724
53725#endif
53726
53727 void swap(variant& other);
53728
53729#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
53730 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
53731 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
53732 t_TAIL_02,
53733 t_TAIL_03,
53734 t_TAIL_04,
53735 t_TAIL_05,
53736 t_TAIL_06,
53737 t_TAIL_07,
53738 t_TAIL_08,
53739 t_TAIL_09>::value,
53740 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
53741#endif
53742 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
53743 {
53744 return allocator_type(Variant_Base::AllocBase::mechanism());
53745 }
53746
53747
53748 size_t index() const BSLS_KEYWORD_NOEXCEPT;
53749
53750 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
53751};
53752#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 9
53753
53754#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 10
53755template <class t_HEAD, class t_TAIL_01,
53756 class t_TAIL_02,
53757 class t_TAIL_03,
53758 class t_TAIL_04,
53759 class t_TAIL_05,
53760 class t_TAIL_06,
53761 class t_TAIL_07,
53762 class t_TAIL_08,
53763 class t_TAIL_09,
53764 class t_TAIL_10>
53765class variant<t_HEAD, t_TAIL_01,
53766 t_TAIL_02,
53767 t_TAIL_03,
53768 t_TAIL_04,
53769 t_TAIL_05,
53770 t_TAIL_06,
53771 t_TAIL_07,
53772 t_TAIL_08,
53773 t_TAIL_09,
53774 t_TAIL_10>
53775: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
53776 t_TAIL_02,
53777 t_TAIL_03,
53778 t_TAIL_04,
53779 t_TAIL_05,
53780 t_TAIL_06,
53781 t_TAIL_07,
53782 t_TAIL_08,
53783 t_TAIL_09,
53784 t_TAIL_10>
53785#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
53786,
53787 private BloombergLP::bslstl::Variant_SMFBase<
53788 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
53789 t_TAIL_01,
53790 t_TAIL_02,
53791 t_TAIL_03,
53792 t_TAIL_04,
53793 t_TAIL_05,
53794 t_TAIL_06,
53795 t_TAIL_07,
53796 t_TAIL_08,
53797 t_TAIL_09,
53798 t_TAIL_10>::value,
53799 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
53800 t_TAIL_01,
53801 t_TAIL_02,
53802 t_TAIL_03,
53803 t_TAIL_04,
53804 t_TAIL_05,
53805 t_TAIL_06,
53806 t_TAIL_07,
53807 t_TAIL_08,
53808 t_TAIL_09,
53809 t_TAIL_10>::value,
53810 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
53811 t_TAIL_01,
53812 t_TAIL_02,
53813 t_TAIL_03,
53814 t_TAIL_04,
53815 t_TAIL_05,
53816 t_TAIL_06,
53817 t_TAIL_07,
53818 t_TAIL_08,
53819 t_TAIL_09,
53820 t_TAIL_10>::value &&
53821 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
53822 t_TAIL_01,
53823 t_TAIL_02,
53824 t_TAIL_03,
53825 t_TAIL_04,
53826 t_TAIL_05,
53827 t_TAIL_06,
53828 t_TAIL_07,
53829 t_TAIL_08,
53830 t_TAIL_09,
53831 t_TAIL_10>::value,
53832 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
53833 t_TAIL_01,
53834 t_TAIL_02,
53835 t_TAIL_03,
53836 t_TAIL_04,
53837 t_TAIL_05,
53838 t_TAIL_06,
53839 t_TAIL_07,
53840 t_TAIL_08,
53841 t_TAIL_09,
53842 t_TAIL_10>::value &&
53843 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
53844 t_TAIL_01,
53845 t_TAIL_02,
53846 t_TAIL_03,
53847 t_TAIL_04,
53848 t_TAIL_05,
53849 t_TAIL_06,
53850 t_TAIL_07,
53851 t_TAIL_08,
53852 t_TAIL_09,
53853 t_TAIL_10>::value>
53854#endif
53855{
53856 private:
53857 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
53858 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
53859 t_TAIL_02,
53860 t_TAIL_03,
53861 t_TAIL_04,
53862 t_TAIL_05,
53863 t_TAIL_06,
53864 t_TAIL_07,
53865 t_TAIL_08,
53866 t_TAIL_09,
53867 t_TAIL_10> Variant_Base;
53868 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
53869 t_TAIL_02,
53870 t_TAIL_03,
53871 t_TAIL_04,
53872 t_TAIL_05,
53873 t_TAIL_06,
53874 t_TAIL_07,
53875 t_TAIL_08,
53876 t_TAIL_09,
53877 t_TAIL_10>
53878 Variant_Union;
53879
53880 friend struct BloombergLP::bslstl::Variant_ImpUtil;
53881
53882 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
53883 t_TAIL_02,
53884 t_TAIL_03,
53885 t_TAIL_04,
53886 t_TAIL_05,
53887 t_TAIL_06,
53888 t_TAIL_07,
53889 t_TAIL_08,
53890 t_TAIL_09,
53891 t_TAIL_10>;
53892
53893 public:
53895 variant,
53896 BloombergLP::bslma::UsesBslmaAllocator,
53897 (BloombergLP::bslstl::
53898 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
53899 t_TAIL_02,
53900 t_TAIL_03,
53901 t_TAIL_04,
53902 t_TAIL_05,
53903 t_TAIL_06,
53904 t_TAIL_07,
53905 t_TAIL_08,
53906 t_TAIL_09,
53907 t_TAIL_10>::value));
53909 variant,
53910 BloombergLP::bslmf::UsesAllocatorArgT,
53911 (BloombergLP::bslstl::
53912 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
53913 t_TAIL_02,
53914 t_TAIL_03,
53915 t_TAIL_04,
53916 t_TAIL_05,
53917 t_TAIL_06,
53918 t_TAIL_07,
53919 t_TAIL_08,
53920 t_TAIL_09,
53921 t_TAIL_10>::value));
53923 variant,
53924 BloombergLP::bslmf::IsBitwiseMoveable,
53925 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
53926 t_TAIL_01,
53927 t_TAIL_02,
53928 t_TAIL_03,
53929 t_TAIL_04,
53930 t_TAIL_05,
53931 t_TAIL_06,
53932 t_TAIL_07,
53933 t_TAIL_08,
53934 t_TAIL_09,
53935 t_TAIL_10>::value));
53936
53937
53938 typedef typename Variant_Base::allocator_type allocator_type;
53939
53940
53941#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
53942 template <class t_FIRST_ALT = t_HEAD,
53943 class = typename bsl::enable_if_t<
53944 std::is_default_constructible<t_FIRST_ALT>::value> >
53945 variant()
53946 : Variant_Base()
53947 {
53948 }
53949
53950 variant(const variant& original) = default;
53951
53952 variant(variant&& original) = default;
53953
53954#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
53955 template <class t_STD_VARIANT>
53956 explicit variant(
53957 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
53959 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
53960 original.index())
53961 {
53962 if (!valueless_by_exception()) {
53963 BloombergLP::bslstl::Variant_ImpUtil::
53964 ConstructFromStdVisitor<variant, decltype(original)>
53965 visitor(*this, original);
53966 BSLSTL_VARIANT_VISITID(void, visitor, *this);
53967 }
53968 }
53969#endif
53970
53971 template <class t_TYPE>
53972 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
53974
53975 template <class t_TYPE,
53976 class t_ARGS_01,
53977 class t_ARGS_02,
53978 class t_ARGS_03,
53979 class t_ARGS_04,
53980 class t_ARGS_05,
53981 class t_ARGS_06,
53982 class t_ARGS_07,
53983 class t_ARGS_08,
53984 class t_ARGS_09,
53985 class t_ARGS_10,
53986 class = typename bsl::enable_if_t<
53988 std::is_constructible<t_TYPE, t_ARGS_01,
53989 t_ARGS_02,
53990 t_ARGS_03,
53991 t_ARGS_04,
53992 t_ARGS_05,
53993 t_ARGS_06,
53994 t_ARGS_07,
53995 t_ARGS_08,
53996 t_ARGS_09,
53997 t_ARGS_10>::value> >
53998 explicit variant(bsl::in_place_type_t<t_TYPE>,
53999 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54000 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54001 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54002 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54003 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54004 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54005 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54006 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54007 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54008 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54009 : Variant_Base(
54010 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
54011 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
54012 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
54013 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
54014 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
54015 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
54016 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
54017 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
54018 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
54019 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
54020 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10))
54021 {
54022 }
54023
54024 template <class t_TYPE,
54025 class INIT_LIST_TYPE,
54026 class t_ARGS_01,
54027 class t_ARGS_02,
54028 class t_ARGS_03,
54029 class t_ARGS_04,
54030 class t_ARGS_05,
54031 class t_ARGS_06,
54032 class t_ARGS_07,
54033 class t_ARGS_08,
54034 class t_ARGS_09,
54035 class t_ARGS_10,
54036 class = typename bsl::enable_if_t<
54038 std::is_constructible<t_TYPE,
54039 std::initializer_list<INIT_LIST_TYPE>&,
54040 t_ARGS_01,
54041 t_ARGS_02,
54042 t_ARGS_03,
54043 t_ARGS_04,
54044 t_ARGS_05,
54045 t_ARGS_06,
54046 t_ARGS_07,
54047 t_ARGS_08,
54048 t_ARGS_09,
54049 t_ARGS_10>::value> >
54050 explicit variant(bsl::in_place_type_t<t_TYPE>,
54051 std::initializer_list<INIT_LIST_TYPE> il,
54052 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54053 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54054 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54055 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54056 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54057 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54058 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54059 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54060 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54061 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54062 : Variant_Base(
54063 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
54064 il,
54065 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
54066 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
54067 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
54068 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
54069 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
54070 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
54071 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
54072 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
54073 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
54074 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10))
54075 {
54076 }
54077
54078 template <size_t t_INDEX,
54079 class t_ARGS_01,
54080 class t_ARGS_02,
54081 class t_ARGS_03,
54082 class t_ARGS_04,
54083 class t_ARGS_05,
54084 class t_ARGS_06,
54085 class t_ARGS_07,
54086 class t_ARGS_08,
54087 class t_ARGS_09,
54088 class t_ARGS_10,
54089 class = typename bsl::enable_if_t<
54090 (t_INDEX < 1 + 10u) &&
54091 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
54092 t_ARGS_01,
54093 t_ARGS_02,
54094 t_ARGS_03,
54095 t_ARGS_04,
54096 t_ARGS_05,
54097 t_ARGS_06,
54098 t_ARGS_07,
54099 t_ARGS_08,
54100 t_ARGS_09,
54101 t_ARGS_10>::value> >
54102 explicit variant(bsl::in_place_index_t<t_INDEX>,
54103 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54104 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54105 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54106 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54107 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54108 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54109 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54110 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54111 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54112 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54113 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
54114 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
54115 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
54116 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
54117 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
54118 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
54119 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
54120 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
54121 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
54122 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
54123 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10))
54124 {
54125 }
54126
54127 template <size_t t_INDEX,
54128 class INIT_LIST_TYPE,
54129 class t_ARGS_01,
54130 class t_ARGS_02,
54131 class t_ARGS_03,
54132 class t_ARGS_04,
54133 class t_ARGS_05,
54134 class t_ARGS_06,
54135 class t_ARGS_07,
54136 class t_ARGS_08,
54137 class t_ARGS_09,
54138 class t_ARGS_10,
54139 class = typename bsl::enable_if_t<
54140 (t_INDEX < 1 + 10u) &&
54141 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
54142 std::initializer_list<INIT_LIST_TYPE>&,
54143 t_ARGS_01,
54144 t_ARGS_02,
54145 t_ARGS_03,
54146 t_ARGS_04,
54147 t_ARGS_05,
54148 t_ARGS_06,
54149 t_ARGS_07,
54150 t_ARGS_08,
54151 t_ARGS_09,
54152 t_ARGS_10>::value> >
54153 explicit variant(bsl::in_place_index_t<t_INDEX>,
54154 std::initializer_list<INIT_LIST_TYPE> il,
54155 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54156 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54157 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54158 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54159 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54160 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54161 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54162 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54163 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54164 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54165 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
54166 il,
54167 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
54168 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
54169 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
54170 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
54171 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
54172 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
54173 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
54174 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
54175 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
54176 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10))
54177 {
54178 }
54179
54180 template <class FIRST = t_HEAD,
54181 class = typename bsl::enable_if_t<
54182 std::is_default_constructible<FIRST>::value> >
54183 variant(bsl::allocator_arg_t, allocator_type allocator)
54184 : Variant_Base(bsl::allocator_arg_t(), allocator)
54185 {
54186 }
54187
54188 template <
54189 class FIRST = t_HEAD,
54190 class = typename bsl::enable_if_t<
54191 BloombergLP::bslstl::
54192 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
54193 t_TAIL_02,
54194 t_TAIL_03,
54195 t_TAIL_04,
54196 t_TAIL_05,
54197 t_TAIL_06,
54198 t_TAIL_07,
54199 t_TAIL_08,
54200 t_TAIL_09,
54201 t_TAIL_10>::value> >
54202 variant(bsl::allocator_arg_t,
54203 allocator_type allocator,
54204 const variant& original)
54205 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
54206 {
54207 }
54208 template <
54209 class FIRST = t_HEAD,
54210 class = typename bsl::enable_if_t<
54211 BloombergLP::bslstl::
54212 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
54213 t_TAIL_02,
54214 t_TAIL_03,
54215 t_TAIL_04,
54216 t_TAIL_05,
54217 t_TAIL_06,
54218 t_TAIL_07,
54219 t_TAIL_08,
54220 t_TAIL_09,
54221 t_TAIL_10>::value> >
54222 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
54223 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
54224 {
54225 }
54226
54227#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
54228 template <class t_STD_VARIANT>
54229 explicit variant(
54230 bsl::allocator_arg_t,
54231 allocator_type allocator,
54232 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
54234 : Variant_Base(bsl::allocator_arg_t(),
54235 allocator,
54236 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
54237 original.index())
54238 {
54239 if (!valueless_by_exception()) {
54240 BloombergLP::bslstl::Variant_ImpUtil::
54241 ConstructFromStdVisitor<variant, decltype(original)>
54242 visitor(*this, original);
54243 BSLSTL_VARIANT_VISITID(void, visitor, *this);
54244 }
54245 }
54246#endif
54247
54248 template <class t_TYPE>
54249 variant(
54250 bsl::allocator_arg_t,
54251 allocator_type allocator,
54254
54255 template <class t_TYPE,
54256 class t_ARGS_01,
54257 class t_ARGS_02,
54258 class t_ARGS_03,
54259 class t_ARGS_04,
54260 class t_ARGS_05,
54261 class t_ARGS_06,
54262 class t_ARGS_07,
54263 class t_ARGS_08,
54264 class t_ARGS_09,
54265 class t_ARGS_10,
54266 class = typename bsl::enable_if_t<
54268 std::is_constructible<t_TYPE, t_ARGS_01,
54269 t_ARGS_02,
54270 t_ARGS_03,
54271 t_ARGS_04,
54272 t_ARGS_05,
54273 t_ARGS_06,
54274 t_ARGS_07,
54275 t_ARGS_08,
54276 t_ARGS_09,
54277 t_ARGS_10>::value> >
54278 explicit variant(bsl::allocator_arg_t,
54279 allocator_type allocator,
54281 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54282 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54283 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54284 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54285 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54286 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54287 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54288 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54289 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54290 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54291 : Variant_Base(
54292 bsl::allocator_arg_t{}
54293,
54294 allocator,
54295 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
54296 std::forward<t_ARGS_01>(args_01),
54297 std::forward<t_ARGS_02>(args_02),
54298 std::forward<t_ARGS_03>(args_03),
54299 std::forward<t_ARGS_04>(args_04),
54300 std::forward<t_ARGS_05>(args_05),
54301 std::forward<t_ARGS_06>(args_06),
54302 std::forward<t_ARGS_07>(args_07),
54303 std::forward<t_ARGS_08>(args_08),
54304 std::forward<t_ARGS_09>(args_09),
54305 std::forward<t_ARGS_10>(args_10))
54306 {
54307 }
54308
54309 template <class t_TYPE,
54310 class INIT_LIST_TYPE,
54311 class t_ARGS_01,
54312 class t_ARGS_02,
54313 class t_ARGS_03,
54314 class t_ARGS_04,
54315 class t_ARGS_05,
54316 class t_ARGS_06,
54317 class t_ARGS_07,
54318 class t_ARGS_08,
54319 class t_ARGS_09,
54320 class t_ARGS_10,
54321 class = typename bsl::enable_if_t<
54323 std::is_constructible<t_TYPE,
54324 std::initializer_list<INIT_LIST_TYPE>&,
54325 t_ARGS_01,
54326 t_ARGS_02,
54327 t_ARGS_03,
54328 t_ARGS_04,
54329 t_ARGS_05,
54330 t_ARGS_06,
54331 t_ARGS_07,
54332 t_ARGS_08,
54333 t_ARGS_09,
54334 t_ARGS_10>::value> >
54335 explicit variant(bsl::allocator_arg_t,
54336 allocator_type allocator,
54338 std::initializer_list<INIT_LIST_TYPE> il,
54339 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54340 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54341 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54342 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54343 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54344 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54345 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54346 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54347 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54348 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54349 : Variant_Base(
54350 bsl::allocator_arg_t{}
54351,
54352 allocator,
54353 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
54354 il,
54355 std::forward<t_ARGS_01>(args_01),
54356 std::forward<t_ARGS_02>(args_02),
54357 std::forward<t_ARGS_03>(args_03),
54358 std::forward<t_ARGS_04>(args_04),
54359 std::forward<t_ARGS_05>(args_05),
54360 std::forward<t_ARGS_06>(args_06),
54361 std::forward<t_ARGS_07>(args_07),
54362 std::forward<t_ARGS_08>(args_08),
54363 std::forward<t_ARGS_09>(args_09),
54364 std::forward<t_ARGS_10>(args_10))
54365 {
54366 }
54367
54368 template <size_t t_INDEX,
54369 class t_ARGS_01,
54370 class t_ARGS_02,
54371 class t_ARGS_03,
54372 class t_ARGS_04,
54373 class t_ARGS_05,
54374 class t_ARGS_06,
54375 class t_ARGS_07,
54376 class t_ARGS_08,
54377 class t_ARGS_09,
54378 class t_ARGS_10,
54379 class = typename bsl::enable_if_t<
54380 (t_INDEX < 1 + 10u) &&
54381 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
54382 t_ARGS_01,
54383 t_ARGS_02,
54384 t_ARGS_03,
54385 t_ARGS_04,
54386 t_ARGS_05,
54387 t_ARGS_06,
54388 t_ARGS_07,
54389 t_ARGS_08,
54390 t_ARGS_09,
54391 t_ARGS_10>::value> >
54392 explicit variant(bsl::allocator_arg_t,
54393 allocator_type allocator,
54395 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54396 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54397 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54398 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54399 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54400 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54401 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54402 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54403 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54404 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54405 : Variant_Base(bsl::allocator_arg_t{}
54406,
54407 allocator,
54408 bsl::in_place_index_t<t_INDEX>(),
54409 std::forward<t_ARGS_01>(args_01),
54410 std::forward<t_ARGS_02>(args_02),
54411 std::forward<t_ARGS_03>(args_03),
54412 std::forward<t_ARGS_04>(args_04),
54413 std::forward<t_ARGS_05>(args_05),
54414 std::forward<t_ARGS_06>(args_06),
54415 std::forward<t_ARGS_07>(args_07),
54416 std::forward<t_ARGS_08>(args_08),
54417 std::forward<t_ARGS_09>(args_09),
54418 std::forward<t_ARGS_10>(args_10))
54419 {
54420 }
54421
54422 template <size_t t_INDEX,
54423 class INIT_LIST_TYPE,
54424 class t_ARGS_01,
54425 class t_ARGS_02,
54426 class t_ARGS_03,
54427 class t_ARGS_04,
54428 class t_ARGS_05,
54429 class t_ARGS_06,
54430 class t_ARGS_07,
54431 class t_ARGS_08,
54432 class t_ARGS_09,
54433 class t_ARGS_10,
54434 class = typename bsl::enable_if_t<
54435 (t_INDEX < 1 + 10u) &&
54436 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
54437 std::initializer_list<INIT_LIST_TYPE>&,
54438 t_ARGS_01,
54439 t_ARGS_02,
54440 t_ARGS_03,
54441 t_ARGS_04,
54442 t_ARGS_05,
54443 t_ARGS_06,
54444 t_ARGS_07,
54445 t_ARGS_08,
54446 t_ARGS_09,
54447 t_ARGS_10>::value> >
54448 explicit variant(bsl::allocator_arg_t,
54449 allocator_type allocator,
54451 std::initializer_list<INIT_LIST_TYPE> il,
54452 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
54453 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
54454 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
54455 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
54456 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
54457 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
54458 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
54459 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
54460 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
54461 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
54462 : Variant_Base(bsl::allocator_arg_t{}
54463,
54464 allocator,
54465 bsl::in_place_index_t<t_INDEX>(),
54466 il,
54467 std::forward<t_ARGS_01>(args_01),
54468 std::forward<t_ARGS_02>(args_02),
54469 std::forward<t_ARGS_03>(args_03),
54470 std::forward<t_ARGS_04>(args_04),
54471 std::forward<t_ARGS_05>(args_05),
54472 std::forward<t_ARGS_06>(args_06),
54473 std::forward<t_ARGS_07>(args_07),
54474 std::forward<t_ARGS_08>(args_08),
54475 std::forward<t_ARGS_09>(args_09),
54476 std::forward<t_ARGS_10>(args_10))
54477 {
54478 }
54479
54480#else
54481
54482 variant();
54483
54484 variant(const variant& original);
54485
54486 variant(BloombergLP::bslmf::MovableRef<variant> original);
54487
54488 template <class t_TYPE>
54489 variant(const t_TYPE& value,
54491
54492 template <class t_TYPE>
54493 explicit variant(bsl::in_place_type_t<t_TYPE>,
54495
54496 template <class t_TYPE, class t_ARG_01>
54497 explicit variant(bsl::in_place_type_t<t_TYPE>,
54498 const t_ARG_01& arg_01,
54500
54501 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
54502 explicit variant(bsl::in_place_type_t<t_TYPE>,
54503 const t_ARG_01& arg_01,
54504 const t_ARG_02& arg_02,
54506
54507 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
54508 explicit variant(bsl::in_place_type_t<t_TYPE>,
54509 const t_ARG_01& arg_01,
54510 const t_ARG_02& arg_02,
54511 const t_ARG_03& arg_03,
54513
54514 template <class t_TYPE,
54515 class t_ARG_01,
54516 class t_ARG_02,
54517 class t_ARG_03,
54518 class t_ARG_04>
54519 explicit variant(bsl::in_place_type_t<t_TYPE>,
54520 const t_ARG_01& arg_01,
54521 const t_ARG_02& arg_02,
54522 const t_ARG_03& arg_03,
54523 const t_ARG_04& arg_04,
54525
54526 template <class t_TYPE,
54527 class t_ARG_01,
54528 class t_ARG_02,
54529 class t_ARG_03,
54530 class t_ARG_04,
54531 class t_ARG_05>
54532 explicit variant(bsl::in_place_type_t<t_TYPE>,
54533 const t_ARG_01& arg_01,
54534 const t_ARG_02& arg_02,
54535 const t_ARG_03& arg_03,
54536 const t_ARG_04& arg_04,
54537 const t_ARG_05& arg_05,
54539
54540 template <class t_TYPE,
54541 class t_ARG_01,
54542 class t_ARG_02,
54543 class t_ARG_03,
54544 class t_ARG_04,
54545 class t_ARG_05,
54546 class t_ARG_06>
54547 explicit variant(bsl::in_place_type_t<t_TYPE>,
54548 const t_ARG_01& arg_01,
54549 const t_ARG_02& arg_02,
54550 const t_ARG_03& arg_03,
54551 const t_ARG_04& arg_04,
54552 const t_ARG_05& arg_05,
54553 const t_ARG_06& arg_06,
54555
54556 template <class t_TYPE,
54557 class t_ARG_01,
54558 class t_ARG_02,
54559 class t_ARG_03,
54560 class t_ARG_04,
54561 class t_ARG_05,
54562 class t_ARG_06,
54563 class t_ARG_07>
54564 explicit variant(bsl::in_place_type_t<t_TYPE>,
54565 const t_ARG_01& arg_01,
54566 const t_ARG_02& arg_02,
54567 const t_ARG_03& arg_03,
54568 const t_ARG_04& arg_04,
54569 const t_ARG_05& arg_05,
54570 const t_ARG_06& arg_06,
54571 const t_ARG_07& arg_07,
54573
54574 template <class t_TYPE,
54575 class t_ARG_01,
54576 class t_ARG_02,
54577 class t_ARG_03,
54578 class t_ARG_04,
54579 class t_ARG_05,
54580 class t_ARG_06,
54581 class t_ARG_07,
54582 class t_ARG_08>
54583 explicit variant(bsl::in_place_type_t<t_TYPE>,
54584 const t_ARG_01& arg_01,
54585 const t_ARG_02& arg_02,
54586 const t_ARG_03& arg_03,
54587 const t_ARG_04& arg_04,
54588 const t_ARG_05& arg_05,
54589 const t_ARG_06& arg_06,
54590 const t_ARG_07& arg_07,
54591 const t_ARG_08& arg_08,
54593
54594 template <class t_TYPE,
54595 class t_ARG_01,
54596 class t_ARG_02,
54597 class t_ARG_03,
54598 class t_ARG_04,
54599 class t_ARG_05,
54600 class t_ARG_06,
54601 class t_ARG_07,
54602 class t_ARG_08,
54603 class t_ARG_09>
54604 explicit variant(bsl::in_place_type_t<t_TYPE>,
54605 const t_ARG_01& arg_01,
54606 const t_ARG_02& arg_02,
54607 const t_ARG_03& arg_03,
54608 const t_ARG_04& arg_04,
54609 const t_ARG_05& arg_05,
54610 const t_ARG_06& arg_06,
54611 const t_ARG_07& arg_07,
54612 const t_ARG_08& arg_08,
54613 const t_ARG_09& arg_09,
54615
54616 template <class t_TYPE,
54617 class t_ARG_01,
54618 class t_ARG_02,
54619 class t_ARG_03,
54620 class t_ARG_04,
54621 class t_ARG_05,
54622 class t_ARG_06,
54623 class t_ARG_07,
54624 class t_ARG_08,
54625 class t_ARG_09,
54626 class t_ARG_10>
54627 explicit variant(bsl::in_place_type_t<t_TYPE>,
54628 const t_ARG_01& arg_01,
54629 const t_ARG_02& arg_02,
54630 const t_ARG_03& arg_03,
54631 const t_ARG_04& arg_04,
54632 const t_ARG_05& arg_05,
54633 const t_ARG_06& arg_06,
54634 const t_ARG_07& arg_07,
54635 const t_ARG_08& arg_08,
54636 const t_ARG_09& arg_09,
54637 const t_ARG_10& arg_10,
54639
54640 template <size_t t_INDEX>
54641 explicit variant(bsl::in_place_index_t<t_INDEX>);
54642
54643 template <size_t t_INDEX, class t_ARG_01>
54644 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
54645
54646 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
54647 explicit variant(bsl::in_place_index_t<t_INDEX>,
54648 const t_ARG_01& arg_01,
54649 const t_ARG_02& arg_02);
54650
54651 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
54652 explicit variant(bsl::in_place_index_t<t_INDEX>,
54653 const t_ARG_01& arg_01,
54654 const t_ARG_02& arg_02,
54655 const t_ARG_03& arg_03);
54656
54657 template <size_t t_INDEX,
54658 class t_ARG_01,
54659 class t_ARG_02,
54660 class t_ARG_03,
54661 class t_ARG_04>
54662 explicit variant(bsl::in_place_index_t<t_INDEX>,
54663 const t_ARG_01& arg_01,
54664 const t_ARG_02& arg_02,
54665 const t_ARG_03& arg_03,
54666 const t_ARG_04& arg_04);
54667
54668 template <size_t t_INDEX,
54669 class t_ARG_01,
54670 class t_ARG_02,
54671 class t_ARG_03,
54672 class t_ARG_04,
54673 class t_ARG_05>
54674 explicit variant(bsl::in_place_index_t<t_INDEX>,
54675 const t_ARG_01& arg_01,
54676 const t_ARG_02& arg_02,
54677 const t_ARG_03& arg_03,
54678 const t_ARG_04& arg_04,
54679 const t_ARG_05& arg_05);
54680
54681 template <size_t t_INDEX,
54682 class t_ARG_01,
54683 class t_ARG_02,
54684 class t_ARG_03,
54685 class t_ARG_04,
54686 class t_ARG_05,
54687 class t_ARG_06>
54688 explicit variant(bsl::in_place_index_t<t_INDEX>,
54689 const t_ARG_01& arg_01,
54690 const t_ARG_02& arg_02,
54691 const t_ARG_03& arg_03,
54692 const t_ARG_04& arg_04,
54693 const t_ARG_05& arg_05,
54694 const t_ARG_06& arg_06);
54695
54696 template <size_t t_INDEX,
54697 class t_ARG_01,
54698 class t_ARG_02,
54699 class t_ARG_03,
54700 class t_ARG_04,
54701 class t_ARG_05,
54702 class t_ARG_06,
54703 class t_ARG_07>
54704 explicit variant(bsl::in_place_index_t<t_INDEX>,
54705 const t_ARG_01& arg_01,
54706 const t_ARG_02& arg_02,
54707 const t_ARG_03& arg_03,
54708 const t_ARG_04& arg_04,
54709 const t_ARG_05& arg_05,
54710 const t_ARG_06& arg_06,
54711 const t_ARG_07& arg_07);
54712
54713 template <size_t t_INDEX,
54714 class t_ARG_01,
54715 class t_ARG_02,
54716 class t_ARG_03,
54717 class t_ARG_04,
54718 class t_ARG_05,
54719 class t_ARG_06,
54720 class t_ARG_07,
54721 class t_ARG_08>
54722 explicit variant(bsl::in_place_index_t<t_INDEX>,
54723 const t_ARG_01& arg_01,
54724 const t_ARG_02& arg_02,
54725 const t_ARG_03& arg_03,
54726 const t_ARG_04& arg_04,
54727 const t_ARG_05& arg_05,
54728 const t_ARG_06& arg_06,
54729 const t_ARG_07& arg_07,
54730 const t_ARG_08& arg_08);
54731
54732 template <size_t t_INDEX,
54733 class t_ARG_01,
54734 class t_ARG_02,
54735 class t_ARG_03,
54736 class t_ARG_04,
54737 class t_ARG_05,
54738 class t_ARG_06,
54739 class t_ARG_07,
54740 class t_ARG_08,
54741 class t_ARG_09>
54742 explicit variant(bsl::in_place_index_t<t_INDEX>,
54743 const t_ARG_01& arg_01,
54744 const t_ARG_02& arg_02,
54745 const t_ARG_03& arg_03,
54746 const t_ARG_04& arg_04,
54747 const t_ARG_05& arg_05,
54748 const t_ARG_06& arg_06,
54749 const t_ARG_07& arg_07,
54750 const t_ARG_08& arg_08,
54751 const t_ARG_09& arg_09);
54752
54753 template <size_t t_INDEX,
54754 class t_ARG_01,
54755 class t_ARG_02,
54756 class t_ARG_03,
54757 class t_ARG_04,
54758 class t_ARG_05,
54759 class t_ARG_06,
54760 class t_ARG_07,
54761 class t_ARG_08,
54762 class t_ARG_09,
54763 class t_ARG_10>
54764 explicit variant(bsl::in_place_index_t<t_INDEX>,
54765 const t_ARG_01& arg_01,
54766 const t_ARG_02& arg_02,
54767 const t_ARG_03& arg_03,
54768 const t_ARG_04& arg_04,
54769 const t_ARG_05& arg_05,
54770 const t_ARG_06& arg_06,
54771 const t_ARG_07& arg_07,
54772 const t_ARG_08& arg_08,
54773 const t_ARG_09& arg_09,
54774 const t_ARG_10& arg_10);
54775
54776 variant(bsl::allocator_arg_t, allocator_type allocator);
54777
54778 variant(bsl::allocator_arg_t,
54779 allocator_type allocator,
54780 const variant& original);
54781 variant(bsl::allocator_arg_t,
54782 allocator_type allocator,
54783 BloombergLP::bslmf::MovableRef<variant> original);
54784
54785 template <class t_TYPE>
54786 variant(
54787 bsl::allocator_arg_t,
54788 allocator_type allocator,
54789 const t_TYPE& value,
54791
54792 template <class t_TYPE>
54793 explicit variant(
54794 bsl::allocator_arg_t,
54795 allocator_type allocator,
54798
54799 template <class t_TYPE, class t_ARG_01>
54800 explicit variant(
54801 bsl::allocator_arg_t,
54802 allocator_type allocator,
54804 const t_ARG_01& arg_01,
54806
54807 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
54808 explicit variant(
54809 bsl::allocator_arg_t,
54810 allocator_type allocator,
54812 const t_ARG_01& arg_01,
54813 const t_ARG_02& arg_02,
54815
54816 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
54817 explicit variant(
54818 bsl::allocator_arg_t,
54819 allocator_type allocator,
54821 const t_ARG_01& arg_01,
54822 const t_ARG_02& arg_02,
54823 const t_ARG_03& arg_03,
54825
54826 template <class t_TYPE,
54827 class t_ARG_01,
54828 class t_ARG_02,
54829 class t_ARG_03,
54830 class t_ARG_04>
54831 explicit variant(bsl::allocator_arg_t,
54832 allocator_type allocator,
54834 const t_ARG_01& arg_01,
54835 const t_ARG_02& arg_02,
54836 const t_ARG_03& arg_03,
54837 const t_ARG_04& arg_04,
54839
54840 template <class t_TYPE,
54841 class t_ARG_01,
54842 class t_ARG_02,
54843 class t_ARG_03,
54844 class t_ARG_04,
54845 class t_ARG_05>
54846 explicit variant(bsl::allocator_arg_t,
54847 allocator_type allocator,
54849 const t_ARG_01& arg_01,
54850 const t_ARG_02& arg_02,
54851 const t_ARG_03& arg_03,
54852 const t_ARG_04& arg_04,
54853 const t_ARG_05& arg_05,
54855
54856 template <class t_TYPE,
54857 class t_ARG_01,
54858 class t_ARG_02,
54859 class t_ARG_03,
54860 class t_ARG_04,
54861 class t_ARG_05,
54862 class t_ARG_06>
54863 explicit variant(bsl::allocator_arg_t,
54864 allocator_type allocator,
54866 const t_ARG_01& arg_01,
54867 const t_ARG_02& arg_02,
54868 const t_ARG_03& arg_03,
54869 const t_ARG_04& arg_04,
54870 const t_ARG_05& arg_05,
54871 const t_ARG_06& arg_06,
54873
54874 template <class t_TYPE,
54875 class t_ARG_01,
54876 class t_ARG_02,
54877 class t_ARG_03,
54878 class t_ARG_04,
54879 class t_ARG_05,
54880 class t_ARG_06,
54881 class t_ARG_07>
54882 explicit variant(bsl::allocator_arg_t,
54883 allocator_type allocator,
54885 const t_ARG_01& arg_01,
54886 const t_ARG_02& arg_02,
54887 const t_ARG_03& arg_03,
54888 const t_ARG_04& arg_04,
54889 const t_ARG_05& arg_05,
54890 const t_ARG_06& arg_06,
54891 const t_ARG_07& arg_07,
54893
54894 template <class t_TYPE,
54895 class t_ARG_01,
54896 class t_ARG_02,
54897 class t_ARG_03,
54898 class t_ARG_04,
54899 class t_ARG_05,
54900 class t_ARG_06,
54901 class t_ARG_07,
54902 class t_ARG_08>
54903 explicit variant(bsl::allocator_arg_t,
54904 allocator_type allocator,
54906 const t_ARG_01& arg_01,
54907 const t_ARG_02& arg_02,
54908 const t_ARG_03& arg_03,
54909 const t_ARG_04& arg_04,
54910 const t_ARG_05& arg_05,
54911 const t_ARG_06& arg_06,
54912 const t_ARG_07& arg_07,
54913 const t_ARG_08& arg_08,
54915
54916 template <class t_TYPE,
54917 class t_ARG_01,
54918 class t_ARG_02,
54919 class t_ARG_03,
54920 class t_ARG_04,
54921 class t_ARG_05,
54922 class t_ARG_06,
54923 class t_ARG_07,
54924 class t_ARG_08,
54925 class t_ARG_09>
54926 explicit variant(bsl::allocator_arg_t,
54927 allocator_type allocator,
54929 const t_ARG_01& arg_01,
54930 const t_ARG_02& arg_02,
54931 const t_ARG_03& arg_03,
54932 const t_ARG_04& arg_04,
54933 const t_ARG_05& arg_05,
54934 const t_ARG_06& arg_06,
54935 const t_ARG_07& arg_07,
54936 const t_ARG_08& arg_08,
54937 const t_ARG_09& arg_09,
54939
54940 template <class t_TYPE,
54941 class t_ARG_01,
54942 class t_ARG_02,
54943 class t_ARG_03,
54944 class t_ARG_04,
54945 class t_ARG_05,
54946 class t_ARG_06,
54947 class t_ARG_07,
54948 class t_ARG_08,
54949 class t_ARG_09,
54950 class t_ARG_10>
54951 explicit variant(bsl::allocator_arg_t,
54952 allocator_type allocator,
54954 const t_ARG_01& arg_01,
54955 const t_ARG_02& arg_02,
54956 const t_ARG_03& arg_03,
54957 const t_ARG_04& arg_04,
54958 const t_ARG_05& arg_05,
54959 const t_ARG_06& arg_06,
54960 const t_ARG_07& arg_07,
54961 const t_ARG_08& arg_08,
54962 const t_ARG_09& arg_09,
54963 const t_ARG_10& arg_10,
54965
54966 template <size_t t_INDEX>
54967 explicit variant(bsl::allocator_arg_t,
54968 allocator_type allocator,
54970
54971 template <size_t t_INDEX, class t_ARG_01>
54972 explicit variant(bsl::allocator_arg_t,
54973 allocator_type allocator,
54975 const t_ARG_01& arg_01);
54976
54977 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
54978 explicit variant(bsl::allocator_arg_t,
54979 allocator_type allocator,
54981 const t_ARG_01& arg_01,
54982 const t_ARG_02& arg_02);
54983
54984 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
54985 explicit variant(bsl::allocator_arg_t,
54986 allocator_type allocator,
54988 const t_ARG_01& arg_01,
54989 const t_ARG_02& arg_02,
54990 const t_ARG_03& arg_03);
54991
54992 template <size_t t_INDEX,
54993 class t_ARG_01,
54994 class t_ARG_02,
54995 class t_ARG_03,
54996 class t_ARG_04>
54997 explicit variant(bsl::allocator_arg_t,
54998 allocator_type allocator,
55000 const t_ARG_01& arg_01,
55001 const t_ARG_02& arg_02,
55002 const t_ARG_03& arg_03,
55003 const t_ARG_04& arg_04);
55004
55005 template <size_t t_INDEX,
55006 class t_ARG_01,
55007 class t_ARG_02,
55008 class t_ARG_03,
55009 class t_ARG_04,
55010 class t_ARG_05>
55011 explicit variant(bsl::allocator_arg_t,
55012 allocator_type allocator,
55014 const t_ARG_01& arg_01,
55015 const t_ARG_02& arg_02,
55016 const t_ARG_03& arg_03,
55017 const t_ARG_04& arg_04,
55018 const t_ARG_05& arg_05);
55019
55020 template <size_t t_INDEX,
55021 class t_ARG_01,
55022 class t_ARG_02,
55023 class t_ARG_03,
55024 class t_ARG_04,
55025 class t_ARG_05,
55026 class t_ARG_06>
55027 explicit variant(bsl::allocator_arg_t,
55028 allocator_type allocator,
55030 const t_ARG_01& arg_01,
55031 const t_ARG_02& arg_02,
55032 const t_ARG_03& arg_03,
55033 const t_ARG_04& arg_04,
55034 const t_ARG_05& arg_05,
55035 const t_ARG_06& arg_06);
55036
55037 template <size_t t_INDEX,
55038 class t_ARG_01,
55039 class t_ARG_02,
55040 class t_ARG_03,
55041 class t_ARG_04,
55042 class t_ARG_05,
55043 class t_ARG_06,
55044 class t_ARG_07>
55045 explicit variant(bsl::allocator_arg_t,
55046 allocator_type allocator,
55048 const t_ARG_01& arg_01,
55049 const t_ARG_02& arg_02,
55050 const t_ARG_03& arg_03,
55051 const t_ARG_04& arg_04,
55052 const t_ARG_05& arg_05,
55053 const t_ARG_06& arg_06,
55054 const t_ARG_07& arg_07);
55055
55056 template <size_t t_INDEX,
55057 class t_ARG_01,
55058 class t_ARG_02,
55059 class t_ARG_03,
55060 class t_ARG_04,
55061 class t_ARG_05,
55062 class t_ARG_06,
55063 class t_ARG_07,
55064 class t_ARG_08>
55065 explicit variant(bsl::allocator_arg_t,
55066 allocator_type allocator,
55068 const t_ARG_01& arg_01,
55069 const t_ARG_02& arg_02,
55070 const t_ARG_03& arg_03,
55071 const t_ARG_04& arg_04,
55072 const t_ARG_05& arg_05,
55073 const t_ARG_06& arg_06,
55074 const t_ARG_07& arg_07,
55075 const t_ARG_08& arg_08);
55076
55077 template <size_t t_INDEX,
55078 class t_ARG_01,
55079 class t_ARG_02,
55080 class t_ARG_03,
55081 class t_ARG_04,
55082 class t_ARG_05,
55083 class t_ARG_06,
55084 class t_ARG_07,
55085 class t_ARG_08,
55086 class t_ARG_09>
55087 explicit variant(bsl::allocator_arg_t,
55088 allocator_type allocator,
55090 const t_ARG_01& arg_01,
55091 const t_ARG_02& arg_02,
55092 const t_ARG_03& arg_03,
55093 const t_ARG_04& arg_04,
55094 const t_ARG_05& arg_05,
55095 const t_ARG_06& arg_06,
55096 const t_ARG_07& arg_07,
55097 const t_ARG_08& arg_08,
55098 const t_ARG_09& arg_09);
55099
55100 template <size_t t_INDEX,
55101 class t_ARG_01,
55102 class t_ARG_02,
55103 class t_ARG_03,
55104 class t_ARG_04,
55105 class t_ARG_05,
55106 class t_ARG_06,
55107 class t_ARG_07,
55108 class t_ARG_08,
55109 class t_ARG_09,
55110 class t_ARG_10>
55111 explicit variant(bsl::allocator_arg_t,
55112 allocator_type allocator,
55114 const t_ARG_01& arg_01,
55115 const t_ARG_02& arg_02,
55116 const t_ARG_03& arg_03,
55117 const t_ARG_04& arg_04,
55118 const t_ARG_05& arg_05,
55119 const t_ARG_06& arg_06,
55120 const t_ARG_07& arg_07,
55121 const t_ARG_08& arg_08,
55122 const t_ARG_09& arg_09,
55123 const t_ARG_10& arg_10);
55124
55125#endif
55126
55127
55128#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
55129 template <class t_TYPE,
55130 class t_ARGS_01,
55131 class t_ARGS_02,
55132 class t_ARGS_03,
55133 class t_ARGS_04,
55134 class t_ARGS_05,
55135 class t_ARGS_06,
55136 class t_ARGS_07,
55137 class t_ARGS_08,
55138 class t_ARGS_09,
55139 class t_ARGS_10,
55140 class = typename bsl::enable_if_t<
55142 std::is_constructible<t_TYPE, t_ARGS_01,
55143 t_ARGS_02,
55144 t_ARGS_03,
55145 t_ARGS_04,
55146 t_ARGS_05,
55147 t_ARGS_06,
55148 t_ARGS_07,
55149 t_ARGS_08,
55150 t_ARGS_09,
55151 t_ARGS_10>::value> >
55152 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
55153 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
55154 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
55155 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
55156 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
55157 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
55158 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
55159 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
55160 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
55161 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
55162 {
55163 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
55164 Variant_Base::template baseEmplace<index>(
55165 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
55166 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
55167 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
55168 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
55169 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
55170 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
55171 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
55172 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
55173 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
55174 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10));
55175
55176 return bsl::get<index>(*this);
55177 }
55178
55179 template <class t_TYPE,
55180 class INIT_LIST_TYPE,
55181 class t_ARGS_01,
55182 class t_ARGS_02,
55183 class t_ARGS_03,
55184 class t_ARGS_04,
55185 class t_ARGS_05,
55186 class t_ARGS_06,
55187 class t_ARGS_07,
55188 class t_ARGS_08,
55189 class t_ARGS_09,
55190 class t_ARGS_10,
55191 class = typename bsl::enable_if_t<
55193 std::is_constructible<t_TYPE,
55194 std::initializer_list<INIT_LIST_TYPE>&,
55195 t_ARGS_01,
55196 t_ARGS_02,
55197 t_ARGS_03,
55198 t_ARGS_04,
55199 t_ARGS_05,
55200 t_ARGS_06,
55201 t_ARGS_07,
55202 t_ARGS_08,
55203 t_ARGS_09,
55204 t_ARGS_10>::value> >
55205 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
55206 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
55207 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
55208 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
55209 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
55210 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
55211 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
55212 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
55213 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
55214 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
55215 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
55216 {
55217 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
55218 Variant_Base::template baseEmplace<index>(
55219 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
55220 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
55221 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
55222 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
55223 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
55224 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
55225 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
55226 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
55227 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
55228 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10));
55229
55230 return bsl::get<index>(*this);
55231 }
55232
55233 template <size_t t_INDEX,
55234 class t_ARGS_01,
55235 class t_ARGS_02,
55236 class t_ARGS_03,
55237 class t_ARGS_04,
55238 class t_ARGS_05,
55239 class t_ARGS_06,
55240 class t_ARGS_07,
55241 class t_ARGS_08,
55242 class t_ARGS_09,
55243 class t_ARGS_10,
55244 class = typename bsl::enable_if_t<
55245 (t_INDEX < 1 + 10u) &&
55246 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
55247 t_ARGS_01,
55248 t_ARGS_02,
55249 t_ARGS_03,
55250 t_ARGS_04,
55251 t_ARGS_05,
55252 t_ARGS_06,
55253 t_ARGS_07,
55254 t_ARGS_08,
55255 t_ARGS_09,
55256 t_ARGS_10>::value> >
55257 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55258 t_TAIL_02,
55259 t_TAIL_03,
55260 t_TAIL_04,
55261 t_TAIL_05,
55262 t_TAIL_06,
55263 t_TAIL_07,
55264 t_TAIL_08,
55265 t_TAIL_09,
55266 t_TAIL_10> >::type&
55267 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
55268 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
55269 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
55270 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
55271 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
55272 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
55273 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
55274 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
55275 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
55276 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
55277 {
55278 Variant_Base::template baseEmplace<t_INDEX>(
55279 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
55280 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
55281 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
55282 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
55283 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
55284 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
55285 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
55286 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
55287 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
55288 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10));
55289
55290 return bsl::get<t_INDEX>(*this);
55291 }
55292
55293 template <size_t t_INDEX,
55294 class INIT_LIST_TYPE,
55295 class t_ARGS_01,
55296 class t_ARGS_02,
55297 class t_ARGS_03,
55298 class t_ARGS_04,
55299 class t_ARGS_05,
55300 class t_ARGS_06,
55301 class t_ARGS_07,
55302 class t_ARGS_08,
55303 class t_ARGS_09,
55304 class t_ARGS_10,
55305 class = typename bsl::enable_if_t<
55306 (t_INDEX < 1 + 10u) &&
55307 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
55308 std::initializer_list<INIT_LIST_TYPE>&,
55309 t_ARGS_01,
55310 t_ARGS_02,
55311 t_ARGS_03,
55312 t_ARGS_04,
55313 t_ARGS_05,
55314 t_ARGS_06,
55315 t_ARGS_07,
55316 t_ARGS_08,
55317 t_ARGS_09,
55318 t_ARGS_10>::value> >
55319 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55320 t_TAIL_02,
55321 t_TAIL_03,
55322 t_TAIL_04,
55323 t_TAIL_05,
55324 t_TAIL_06,
55325 t_TAIL_07,
55326 t_TAIL_08,
55327 t_TAIL_09,
55328 t_TAIL_10> >::type&
55329 emplace(std::initializer_list<INIT_LIST_TYPE> il,
55330 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
55331 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
55332 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
55333 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
55334 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
55335 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
55336 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
55337 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
55338 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
55339 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10)
55340 {
55341 Variant_Base::template baseEmplace<t_INDEX>(
55342 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
55343 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
55344 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
55345 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
55346 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
55347 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
55348 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
55349 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
55350 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
55351 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10));
55352
55353 return bsl::get<t_INDEX>(*this);
55354 }
55355
55356#else
55357
55358 template <class t_TYPE>
55359 typename bsl::enable_if<
55360 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55361 t_TYPE&>::type
55362 emplace();
55363
55364 template <class t_TYPE, class t_ARG_01>
55365 typename bsl::enable_if<
55366 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55367 t_TYPE&>::type
55368 emplace(const t_ARG_01& arg_01);
55369
55370 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
55371 typename bsl::enable_if<
55372 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55373 t_TYPE&>::type
55374 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
55375
55376 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
55377 typename bsl::enable_if<
55378 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55379 t_TYPE&>::type
55380 emplace(const t_ARG_01& arg_01,
55381 const t_ARG_02& arg_02,
55382 const t_ARG_03& arg_03);
55383
55384 template <class t_TYPE,
55385 class t_ARG_01,
55386 class t_ARG_02,
55387 class t_ARG_03,
55388 class t_ARG_04>
55389 typename bsl::enable_if<
55390 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55391 t_TYPE&>::type
55392 emplace(const t_ARG_01& arg_01,
55393 const t_ARG_02& arg_02,
55394 const t_ARG_03& arg_03,
55395 const t_ARG_04& arg_04);
55396
55397 template <class t_TYPE,
55398 class t_ARG_01,
55399 class t_ARG_02,
55400 class t_ARG_03,
55401 class t_ARG_04,
55402 class t_ARG_05>
55403 typename bsl::enable_if<
55404 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55405 t_TYPE&>::type
55406 emplace(const t_ARG_01& arg_01,
55407 const t_ARG_02& arg_02,
55408 const t_ARG_03& arg_03,
55409 const t_ARG_04& arg_04,
55410 const t_ARG_05& arg_05);
55411
55412 template <class t_TYPE,
55413 class t_ARG_01,
55414 class t_ARG_02,
55415 class t_ARG_03,
55416 class t_ARG_04,
55417 class t_ARG_05,
55418 class t_ARG_06>
55419 typename bsl::enable_if<
55420 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55421 t_TYPE&>::type
55422 emplace(const t_ARG_01& arg_01,
55423 const t_ARG_02& arg_02,
55424 const t_ARG_03& arg_03,
55425 const t_ARG_04& arg_04,
55426 const t_ARG_05& arg_05,
55427 const t_ARG_06& arg_06);
55428
55429 template <class t_TYPE,
55430 class t_ARG_01,
55431 class t_ARG_02,
55432 class t_ARG_03,
55433 class t_ARG_04,
55434 class t_ARG_05,
55435 class t_ARG_06,
55436 class t_ARG_07>
55437 typename bsl::enable_if<
55438 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55439 t_TYPE&>::type
55440 emplace(const t_ARG_01& arg_01,
55441 const t_ARG_02& arg_02,
55442 const t_ARG_03& arg_03,
55443 const t_ARG_04& arg_04,
55444 const t_ARG_05& arg_05,
55445 const t_ARG_06& arg_06,
55446 const t_ARG_07& arg_07);
55447
55448 template <class t_TYPE,
55449 class t_ARG_01,
55450 class t_ARG_02,
55451 class t_ARG_03,
55452 class t_ARG_04,
55453 class t_ARG_05,
55454 class t_ARG_06,
55455 class t_ARG_07,
55456 class t_ARG_08>
55457 typename bsl::enable_if<
55458 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55459 t_TYPE&>::type
55460 emplace(const t_ARG_01& arg_01,
55461 const t_ARG_02& arg_02,
55462 const t_ARG_03& arg_03,
55463 const t_ARG_04& arg_04,
55464 const t_ARG_05& arg_05,
55465 const t_ARG_06& arg_06,
55466 const t_ARG_07& arg_07,
55467 const t_ARG_08& arg_08);
55468
55469 template <class t_TYPE,
55470 class t_ARG_01,
55471 class t_ARG_02,
55472 class t_ARG_03,
55473 class t_ARG_04,
55474 class t_ARG_05,
55475 class t_ARG_06,
55476 class t_ARG_07,
55477 class t_ARG_08,
55478 class t_ARG_09>
55479 typename bsl::enable_if<
55480 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55481 t_TYPE&>::type
55482 emplace(const t_ARG_01& arg_01,
55483 const t_ARG_02& arg_02,
55484 const t_ARG_03& arg_03,
55485 const t_ARG_04& arg_04,
55486 const t_ARG_05& arg_05,
55487 const t_ARG_06& arg_06,
55488 const t_ARG_07& arg_07,
55489 const t_ARG_08& arg_08,
55490 const t_ARG_09& arg_09);
55491
55492 template <class t_TYPE,
55493 class t_ARG_01,
55494 class t_ARG_02,
55495 class t_ARG_03,
55496 class t_ARG_04,
55497 class t_ARG_05,
55498 class t_ARG_06,
55499 class t_ARG_07,
55500 class t_ARG_08,
55501 class t_ARG_09,
55502 class t_ARG_10>
55503 typename bsl::enable_if<
55504 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
55505 t_TYPE&>::type
55506 emplace(const t_ARG_01& arg_01,
55507 const t_ARG_02& arg_02,
55508 const t_ARG_03& arg_03,
55509 const t_ARG_04& arg_04,
55510 const t_ARG_05& arg_05,
55511 const t_ARG_06& arg_06,
55512 const t_ARG_07& arg_07,
55513 const t_ARG_08& arg_08,
55514 const t_ARG_09& arg_09,
55515 const t_ARG_10& arg_10);
55516
55517 template <size_t t_INDEX>
55518 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55519 t_TAIL_02,
55520 t_TAIL_03,
55521 t_TAIL_04,
55522 t_TAIL_05,
55523 t_TAIL_06,
55524 t_TAIL_07,
55525 t_TAIL_08,
55526 t_TAIL_09,
55527 t_TAIL_10> >::type&
55528 emplace();
55529
55530 template <size_t t_INDEX, class t_ARG_01>
55531 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55532 t_TAIL_02,
55533 t_TAIL_03,
55534 t_TAIL_04,
55535 t_TAIL_05,
55536 t_TAIL_06,
55537 t_TAIL_07,
55538 t_TAIL_08,
55539 t_TAIL_09,
55540 t_TAIL_10> >::type&
55541 emplace(const t_ARG_01& arg_01);
55542
55543 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
55544 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55545 t_TAIL_02,
55546 t_TAIL_03,
55547 t_TAIL_04,
55548 t_TAIL_05,
55549 t_TAIL_06,
55550 t_TAIL_07,
55551 t_TAIL_08,
55552 t_TAIL_09,
55553 t_TAIL_10> >::type&
55554 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
55555
55556 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
55557 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55558 t_TAIL_02,
55559 t_TAIL_03,
55560 t_TAIL_04,
55561 t_TAIL_05,
55562 t_TAIL_06,
55563 t_TAIL_07,
55564 t_TAIL_08,
55565 t_TAIL_09,
55566 t_TAIL_10> >::type&
55567 emplace(const t_ARG_01& arg_01,
55568 const t_ARG_02& arg_02,
55569 const t_ARG_03& arg_03);
55570
55571 template <size_t t_INDEX,
55572 class t_ARG_01,
55573 class t_ARG_02,
55574 class t_ARG_03,
55575 class t_ARG_04>
55576 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55577 t_TAIL_02,
55578 t_TAIL_03,
55579 t_TAIL_04,
55580 t_TAIL_05,
55581 t_TAIL_06,
55582 t_TAIL_07,
55583 t_TAIL_08,
55584 t_TAIL_09,
55585 t_TAIL_10> >::type&
55586 emplace(const t_ARG_01& arg_01,
55587 const t_ARG_02& arg_02,
55588 const t_ARG_03& arg_03,
55589 const t_ARG_04& arg_04);
55590
55591 template <size_t t_INDEX,
55592 class t_ARG_01,
55593 class t_ARG_02,
55594 class t_ARG_03,
55595 class t_ARG_04,
55596 class t_ARG_05>
55597 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55598 t_TAIL_02,
55599 t_TAIL_03,
55600 t_TAIL_04,
55601 t_TAIL_05,
55602 t_TAIL_06,
55603 t_TAIL_07,
55604 t_TAIL_08,
55605 t_TAIL_09,
55606 t_TAIL_10> >::type&
55607 emplace(const t_ARG_01& arg_01,
55608 const t_ARG_02& arg_02,
55609 const t_ARG_03& arg_03,
55610 const t_ARG_04& arg_04,
55611 const t_ARG_05& arg_05);
55612
55613 template <size_t t_INDEX,
55614 class t_ARG_01,
55615 class t_ARG_02,
55616 class t_ARG_03,
55617 class t_ARG_04,
55618 class t_ARG_05,
55619 class t_ARG_06>
55620 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55621 t_TAIL_02,
55622 t_TAIL_03,
55623 t_TAIL_04,
55624 t_TAIL_05,
55625 t_TAIL_06,
55626 t_TAIL_07,
55627 t_TAIL_08,
55628 t_TAIL_09,
55629 t_TAIL_10> >::type&
55630 emplace(const t_ARG_01& arg_01,
55631 const t_ARG_02& arg_02,
55632 const t_ARG_03& arg_03,
55633 const t_ARG_04& arg_04,
55634 const t_ARG_05& arg_05,
55635 const t_ARG_06& arg_06);
55636
55637 template <size_t t_INDEX,
55638 class t_ARG_01,
55639 class t_ARG_02,
55640 class t_ARG_03,
55641 class t_ARG_04,
55642 class t_ARG_05,
55643 class t_ARG_06,
55644 class t_ARG_07>
55645 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55646 t_TAIL_02,
55647 t_TAIL_03,
55648 t_TAIL_04,
55649 t_TAIL_05,
55650 t_TAIL_06,
55651 t_TAIL_07,
55652 t_TAIL_08,
55653 t_TAIL_09,
55654 t_TAIL_10> >::type&
55655 emplace(const t_ARG_01& arg_01,
55656 const t_ARG_02& arg_02,
55657 const t_ARG_03& arg_03,
55658 const t_ARG_04& arg_04,
55659 const t_ARG_05& arg_05,
55660 const t_ARG_06& arg_06,
55661 const t_ARG_07& arg_07);
55662
55663 template <size_t t_INDEX,
55664 class t_ARG_01,
55665 class t_ARG_02,
55666 class t_ARG_03,
55667 class t_ARG_04,
55668 class t_ARG_05,
55669 class t_ARG_06,
55670 class t_ARG_07,
55671 class t_ARG_08>
55672 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55673 t_TAIL_02,
55674 t_TAIL_03,
55675 t_TAIL_04,
55676 t_TAIL_05,
55677 t_TAIL_06,
55678 t_TAIL_07,
55679 t_TAIL_08,
55680 t_TAIL_09,
55681 t_TAIL_10> >::type&
55682 emplace(const t_ARG_01& arg_01,
55683 const t_ARG_02& arg_02,
55684 const t_ARG_03& arg_03,
55685 const t_ARG_04& arg_04,
55686 const t_ARG_05& arg_05,
55687 const t_ARG_06& arg_06,
55688 const t_ARG_07& arg_07,
55689 const t_ARG_08& arg_08);
55690
55691 template <size_t t_INDEX,
55692 class t_ARG_01,
55693 class t_ARG_02,
55694 class t_ARG_03,
55695 class t_ARG_04,
55696 class t_ARG_05,
55697 class t_ARG_06,
55698 class t_ARG_07,
55699 class t_ARG_08,
55700 class t_ARG_09>
55701 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55702 t_TAIL_02,
55703 t_TAIL_03,
55704 t_TAIL_04,
55705 t_TAIL_05,
55706 t_TAIL_06,
55707 t_TAIL_07,
55708 t_TAIL_08,
55709 t_TAIL_09,
55710 t_TAIL_10> >::type&
55711 emplace(const t_ARG_01& arg_01,
55712 const t_ARG_02& arg_02,
55713 const t_ARG_03& arg_03,
55714 const t_ARG_04& arg_04,
55715 const t_ARG_05& arg_05,
55716 const t_ARG_06& arg_06,
55717 const t_ARG_07& arg_07,
55718 const t_ARG_08& arg_08,
55719 const t_ARG_09& arg_09);
55720
55721 template <size_t t_INDEX,
55722 class t_ARG_01,
55723 class t_ARG_02,
55724 class t_ARG_03,
55725 class t_ARG_04,
55726 class t_ARG_05,
55727 class t_ARG_06,
55728 class t_ARG_07,
55729 class t_ARG_08,
55730 class t_ARG_09,
55731 class t_ARG_10>
55732 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
55733 t_TAIL_02,
55734 t_TAIL_03,
55735 t_TAIL_04,
55736 t_TAIL_05,
55737 t_TAIL_06,
55738 t_TAIL_07,
55739 t_TAIL_08,
55740 t_TAIL_09,
55741 t_TAIL_10> >::type&
55742 emplace(const t_ARG_01& arg_01,
55743 const t_ARG_02& arg_02,
55744 const t_ARG_03& arg_03,
55745 const t_ARG_04& arg_04,
55746 const t_ARG_05& arg_05,
55747 const t_ARG_06& arg_06,
55748 const t_ARG_07& arg_07,
55749 const t_ARG_08& arg_08,
55750 const t_ARG_09& arg_09,
55751 const t_ARG_10& arg_10);
55752#endif
55753
55754#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
55755 variant& operator=(const variant& rhs) = default;
55756
55757 variant& operator=(variant&& rhs) = default;
55758
55759 template <class t_TYPE>
55760 typename bsl::enable_if<
55761 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
55762 variant&>::type
55763 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
55764 {
55765 const size_t altIndex =
55766 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
55767
55768 if (index() == altIndex) {
55769 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
55770 value);
55771 }
55772 else {
55773 Variant_Base::template baseEmplace<altIndex>(
55774 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
55775 }
55776
55777 return *this;
55778 }
55779#else
55780 variant& operator=(const variant& rhs);
55781
55782 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
55783
55784 template <class t_TYPE>
55785 typename bsl::enable_if<
55786 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
55787 variant&>::type
55788 operator=(const t_TYPE& value);
55789
55790#endif
55791
55792 void swap(variant& other);
55793
55794#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
55795 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
55796 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
55797 t_TAIL_02,
55798 t_TAIL_03,
55799 t_TAIL_04,
55800 t_TAIL_05,
55801 t_TAIL_06,
55802 t_TAIL_07,
55803 t_TAIL_08,
55804 t_TAIL_09,
55805 t_TAIL_10>::value,
55806 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
55807#endif
55808 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
55809 {
55810 return allocator_type(Variant_Base::AllocBase::mechanism());
55811 }
55812
55813
55814 size_t index() const BSLS_KEYWORD_NOEXCEPT;
55815
55816 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
55817};
55818#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 10
55819
55820#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 11
55821template <class t_HEAD, class t_TAIL_01,
55822 class t_TAIL_02,
55823 class t_TAIL_03,
55824 class t_TAIL_04,
55825 class t_TAIL_05,
55826 class t_TAIL_06,
55827 class t_TAIL_07,
55828 class t_TAIL_08,
55829 class t_TAIL_09,
55830 class t_TAIL_10,
55831 class t_TAIL_11>
55832class variant<t_HEAD, t_TAIL_01,
55833 t_TAIL_02,
55834 t_TAIL_03,
55835 t_TAIL_04,
55836 t_TAIL_05,
55837 t_TAIL_06,
55838 t_TAIL_07,
55839 t_TAIL_08,
55840 t_TAIL_09,
55841 t_TAIL_10,
55842 t_TAIL_11>
55843: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
55844 t_TAIL_02,
55845 t_TAIL_03,
55846 t_TAIL_04,
55847 t_TAIL_05,
55848 t_TAIL_06,
55849 t_TAIL_07,
55850 t_TAIL_08,
55851 t_TAIL_09,
55852 t_TAIL_10,
55853 t_TAIL_11>
55854#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
55855,
55856 private BloombergLP::bslstl::Variant_SMFBase<
55857 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
55858 t_TAIL_01,
55859 t_TAIL_02,
55860 t_TAIL_03,
55861 t_TAIL_04,
55862 t_TAIL_05,
55863 t_TAIL_06,
55864 t_TAIL_07,
55865 t_TAIL_08,
55866 t_TAIL_09,
55867 t_TAIL_10,
55868 t_TAIL_11>::value,
55869 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
55870 t_TAIL_01,
55871 t_TAIL_02,
55872 t_TAIL_03,
55873 t_TAIL_04,
55874 t_TAIL_05,
55875 t_TAIL_06,
55876 t_TAIL_07,
55877 t_TAIL_08,
55878 t_TAIL_09,
55879 t_TAIL_10,
55880 t_TAIL_11>::value,
55881 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
55882 t_TAIL_01,
55883 t_TAIL_02,
55884 t_TAIL_03,
55885 t_TAIL_04,
55886 t_TAIL_05,
55887 t_TAIL_06,
55888 t_TAIL_07,
55889 t_TAIL_08,
55890 t_TAIL_09,
55891 t_TAIL_10,
55892 t_TAIL_11>::value &&
55893 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
55894 t_TAIL_01,
55895 t_TAIL_02,
55896 t_TAIL_03,
55897 t_TAIL_04,
55898 t_TAIL_05,
55899 t_TAIL_06,
55900 t_TAIL_07,
55901 t_TAIL_08,
55902 t_TAIL_09,
55903 t_TAIL_10,
55904 t_TAIL_11>::value,
55905 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
55906 t_TAIL_01,
55907 t_TAIL_02,
55908 t_TAIL_03,
55909 t_TAIL_04,
55910 t_TAIL_05,
55911 t_TAIL_06,
55912 t_TAIL_07,
55913 t_TAIL_08,
55914 t_TAIL_09,
55915 t_TAIL_10,
55916 t_TAIL_11>::value &&
55917 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
55918 t_TAIL_01,
55919 t_TAIL_02,
55920 t_TAIL_03,
55921 t_TAIL_04,
55922 t_TAIL_05,
55923 t_TAIL_06,
55924 t_TAIL_07,
55925 t_TAIL_08,
55926 t_TAIL_09,
55927 t_TAIL_10,
55928 t_TAIL_11>::value>
55929#endif
55930{
55931 private:
55932 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
55933 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
55934 t_TAIL_02,
55935 t_TAIL_03,
55936 t_TAIL_04,
55937 t_TAIL_05,
55938 t_TAIL_06,
55939 t_TAIL_07,
55940 t_TAIL_08,
55941 t_TAIL_09,
55942 t_TAIL_10,
55943 t_TAIL_11> Variant_Base;
55944 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
55945 t_TAIL_02,
55946 t_TAIL_03,
55947 t_TAIL_04,
55948 t_TAIL_05,
55949 t_TAIL_06,
55950 t_TAIL_07,
55951 t_TAIL_08,
55952 t_TAIL_09,
55953 t_TAIL_10,
55954 t_TAIL_11>
55955 Variant_Union;
55956
55957 friend struct BloombergLP::bslstl::Variant_ImpUtil;
55958
55959 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
55960 t_TAIL_02,
55961 t_TAIL_03,
55962 t_TAIL_04,
55963 t_TAIL_05,
55964 t_TAIL_06,
55965 t_TAIL_07,
55966 t_TAIL_08,
55967 t_TAIL_09,
55968 t_TAIL_10,
55969 t_TAIL_11>;
55970
55971 public:
55973 variant,
55974 BloombergLP::bslma::UsesBslmaAllocator,
55975 (BloombergLP::bslstl::
55976 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
55977 t_TAIL_02,
55978 t_TAIL_03,
55979 t_TAIL_04,
55980 t_TAIL_05,
55981 t_TAIL_06,
55982 t_TAIL_07,
55983 t_TAIL_08,
55984 t_TAIL_09,
55985 t_TAIL_10,
55986 t_TAIL_11>::value));
55988 variant,
55989 BloombergLP::bslmf::UsesAllocatorArgT,
55990 (BloombergLP::bslstl::
55991 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
55992 t_TAIL_02,
55993 t_TAIL_03,
55994 t_TAIL_04,
55995 t_TAIL_05,
55996 t_TAIL_06,
55997 t_TAIL_07,
55998 t_TAIL_08,
55999 t_TAIL_09,
56000 t_TAIL_10,
56001 t_TAIL_11>::value));
56003 variant,
56004 BloombergLP::bslmf::IsBitwiseMoveable,
56005 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
56006 t_TAIL_01,
56007 t_TAIL_02,
56008 t_TAIL_03,
56009 t_TAIL_04,
56010 t_TAIL_05,
56011 t_TAIL_06,
56012 t_TAIL_07,
56013 t_TAIL_08,
56014 t_TAIL_09,
56015 t_TAIL_10,
56016 t_TAIL_11>::value));
56017
56018
56019 typedef typename Variant_Base::allocator_type allocator_type;
56020
56021
56022#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
56023 template <class t_FIRST_ALT = t_HEAD,
56024 class = typename bsl::enable_if_t<
56025 std::is_default_constructible<t_FIRST_ALT>::value> >
56026 variant()
56027 : Variant_Base()
56028 {
56029 }
56030
56031 variant(const variant& original) = default;
56032
56033 variant(variant&& original) = default;
56034
56035#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
56036 template <class t_STD_VARIANT>
56037 explicit variant(
56038 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
56040 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
56041 original.index())
56042 {
56043 if (!valueless_by_exception()) {
56044 BloombergLP::bslstl::Variant_ImpUtil::
56045 ConstructFromStdVisitor<variant, decltype(original)>
56046 visitor(*this, original);
56047 BSLSTL_VARIANT_VISITID(void, visitor, *this);
56048 }
56049 }
56050#endif
56051
56052 template <class t_TYPE>
56053 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
56055
56056 template <class t_TYPE,
56057 class t_ARGS_01,
56058 class t_ARGS_02,
56059 class t_ARGS_03,
56060 class t_ARGS_04,
56061 class t_ARGS_05,
56062 class t_ARGS_06,
56063 class t_ARGS_07,
56064 class t_ARGS_08,
56065 class t_ARGS_09,
56066 class t_ARGS_10,
56067 class t_ARGS_11,
56068 class = typename bsl::enable_if_t<
56070 std::is_constructible<t_TYPE, t_ARGS_01,
56071 t_ARGS_02,
56072 t_ARGS_03,
56073 t_ARGS_04,
56074 t_ARGS_05,
56075 t_ARGS_06,
56076 t_ARGS_07,
56077 t_ARGS_08,
56078 t_ARGS_09,
56079 t_ARGS_10,
56080 t_ARGS_11>::value> >
56081 explicit variant(bsl::in_place_type_t<t_TYPE>,
56082 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56083 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56084 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56085 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56086 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56087 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56088 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56089 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56090 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56091 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56092 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56093 : Variant_Base(
56094 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
56095 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
56096 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
56097 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
56098 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
56099 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
56100 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
56101 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
56102 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
56103 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
56104 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
56105 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11))
56106 {
56107 }
56108
56109 template <class t_TYPE,
56110 class INIT_LIST_TYPE,
56111 class t_ARGS_01,
56112 class t_ARGS_02,
56113 class t_ARGS_03,
56114 class t_ARGS_04,
56115 class t_ARGS_05,
56116 class t_ARGS_06,
56117 class t_ARGS_07,
56118 class t_ARGS_08,
56119 class t_ARGS_09,
56120 class t_ARGS_10,
56121 class t_ARGS_11,
56122 class = typename bsl::enable_if_t<
56124 std::is_constructible<t_TYPE,
56125 std::initializer_list<INIT_LIST_TYPE>&,
56126 t_ARGS_01,
56127 t_ARGS_02,
56128 t_ARGS_03,
56129 t_ARGS_04,
56130 t_ARGS_05,
56131 t_ARGS_06,
56132 t_ARGS_07,
56133 t_ARGS_08,
56134 t_ARGS_09,
56135 t_ARGS_10,
56136 t_ARGS_11>::value> >
56137 explicit variant(bsl::in_place_type_t<t_TYPE>,
56138 std::initializer_list<INIT_LIST_TYPE> il,
56139 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56140 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56141 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56142 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56143 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56144 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56145 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56146 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56147 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56148 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56149 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56150 : Variant_Base(
56151 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
56152 il,
56153 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
56154 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
56155 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
56156 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
56157 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
56158 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
56159 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
56160 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
56161 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
56162 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
56163 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11))
56164 {
56165 }
56166
56167 template <size_t t_INDEX,
56168 class t_ARGS_01,
56169 class t_ARGS_02,
56170 class t_ARGS_03,
56171 class t_ARGS_04,
56172 class t_ARGS_05,
56173 class t_ARGS_06,
56174 class t_ARGS_07,
56175 class t_ARGS_08,
56176 class t_ARGS_09,
56177 class t_ARGS_10,
56178 class t_ARGS_11,
56179 class = typename bsl::enable_if_t<
56180 (t_INDEX < 1 + 11u) &&
56181 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
56182 t_ARGS_01,
56183 t_ARGS_02,
56184 t_ARGS_03,
56185 t_ARGS_04,
56186 t_ARGS_05,
56187 t_ARGS_06,
56188 t_ARGS_07,
56189 t_ARGS_08,
56190 t_ARGS_09,
56191 t_ARGS_10,
56192 t_ARGS_11>::value> >
56193 explicit variant(bsl::in_place_index_t<t_INDEX>,
56194 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56195 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56196 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56197 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56198 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56199 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56200 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56201 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56202 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56203 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56204 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56205 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
56206 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
56207 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
56208 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
56209 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
56210 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
56211 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
56212 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
56213 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
56214 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
56215 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
56216 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11))
56217 {
56218 }
56219
56220 template <size_t t_INDEX,
56221 class INIT_LIST_TYPE,
56222 class t_ARGS_01,
56223 class t_ARGS_02,
56224 class t_ARGS_03,
56225 class t_ARGS_04,
56226 class t_ARGS_05,
56227 class t_ARGS_06,
56228 class t_ARGS_07,
56229 class t_ARGS_08,
56230 class t_ARGS_09,
56231 class t_ARGS_10,
56232 class t_ARGS_11,
56233 class = typename bsl::enable_if_t<
56234 (t_INDEX < 1 + 11u) &&
56235 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
56236 std::initializer_list<INIT_LIST_TYPE>&,
56237 t_ARGS_01,
56238 t_ARGS_02,
56239 t_ARGS_03,
56240 t_ARGS_04,
56241 t_ARGS_05,
56242 t_ARGS_06,
56243 t_ARGS_07,
56244 t_ARGS_08,
56245 t_ARGS_09,
56246 t_ARGS_10,
56247 t_ARGS_11>::value> >
56248 explicit variant(bsl::in_place_index_t<t_INDEX>,
56249 std::initializer_list<INIT_LIST_TYPE> il,
56250 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56251 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56252 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56253 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56254 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56255 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56256 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56257 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56258 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56259 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56260 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56261 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
56262 il,
56263 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
56264 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
56265 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
56266 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
56267 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
56268 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
56269 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
56270 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
56271 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
56272 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
56273 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11))
56274 {
56275 }
56276
56277 template <class FIRST = t_HEAD,
56278 class = typename bsl::enable_if_t<
56279 std::is_default_constructible<FIRST>::value> >
56280 variant(bsl::allocator_arg_t, allocator_type allocator)
56281 : Variant_Base(bsl::allocator_arg_t(), allocator)
56282 {
56283 }
56284
56285 template <
56286 class FIRST = t_HEAD,
56287 class = typename bsl::enable_if_t<
56288 BloombergLP::bslstl::
56289 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
56290 t_TAIL_02,
56291 t_TAIL_03,
56292 t_TAIL_04,
56293 t_TAIL_05,
56294 t_TAIL_06,
56295 t_TAIL_07,
56296 t_TAIL_08,
56297 t_TAIL_09,
56298 t_TAIL_10,
56299 t_TAIL_11>::value> >
56300 variant(bsl::allocator_arg_t,
56301 allocator_type allocator,
56302 const variant& original)
56303 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
56304 {
56305 }
56306 template <
56307 class FIRST = t_HEAD,
56308 class = typename bsl::enable_if_t<
56309 BloombergLP::bslstl::
56310 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
56311 t_TAIL_02,
56312 t_TAIL_03,
56313 t_TAIL_04,
56314 t_TAIL_05,
56315 t_TAIL_06,
56316 t_TAIL_07,
56317 t_TAIL_08,
56318 t_TAIL_09,
56319 t_TAIL_10,
56320 t_TAIL_11>::value> >
56321 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
56322 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
56323 {
56324 }
56325
56326#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
56327 template <class t_STD_VARIANT>
56328 explicit variant(
56329 bsl::allocator_arg_t,
56330 allocator_type allocator,
56331 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
56333 : Variant_Base(bsl::allocator_arg_t(),
56334 allocator,
56335 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
56336 original.index())
56337 {
56338 if (!valueless_by_exception()) {
56339 BloombergLP::bslstl::Variant_ImpUtil::
56340 ConstructFromStdVisitor<variant, decltype(original)>
56341 visitor(*this, original);
56342 BSLSTL_VARIANT_VISITID(void, visitor, *this);
56343 }
56344 }
56345#endif
56346
56347 template <class t_TYPE>
56348 variant(
56349 bsl::allocator_arg_t,
56350 allocator_type allocator,
56353
56354 template <class t_TYPE,
56355 class t_ARGS_01,
56356 class t_ARGS_02,
56357 class t_ARGS_03,
56358 class t_ARGS_04,
56359 class t_ARGS_05,
56360 class t_ARGS_06,
56361 class t_ARGS_07,
56362 class t_ARGS_08,
56363 class t_ARGS_09,
56364 class t_ARGS_10,
56365 class t_ARGS_11,
56366 class = typename bsl::enable_if_t<
56368 std::is_constructible<t_TYPE, t_ARGS_01,
56369 t_ARGS_02,
56370 t_ARGS_03,
56371 t_ARGS_04,
56372 t_ARGS_05,
56373 t_ARGS_06,
56374 t_ARGS_07,
56375 t_ARGS_08,
56376 t_ARGS_09,
56377 t_ARGS_10,
56378 t_ARGS_11>::value> >
56379 explicit variant(bsl::allocator_arg_t,
56380 allocator_type allocator,
56382 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56383 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56384 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56385 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56386 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56387 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56388 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56389 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56390 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56391 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56392 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56393 : Variant_Base(
56394 bsl::allocator_arg_t{}
56395,
56396 allocator,
56397 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
56398 std::forward<t_ARGS_01>(args_01),
56399 std::forward<t_ARGS_02>(args_02),
56400 std::forward<t_ARGS_03>(args_03),
56401 std::forward<t_ARGS_04>(args_04),
56402 std::forward<t_ARGS_05>(args_05),
56403 std::forward<t_ARGS_06>(args_06),
56404 std::forward<t_ARGS_07>(args_07),
56405 std::forward<t_ARGS_08>(args_08),
56406 std::forward<t_ARGS_09>(args_09),
56407 std::forward<t_ARGS_10>(args_10),
56408 std::forward<t_ARGS_11>(args_11))
56409 {
56410 }
56411
56412 template <class t_TYPE,
56413 class INIT_LIST_TYPE,
56414 class t_ARGS_01,
56415 class t_ARGS_02,
56416 class t_ARGS_03,
56417 class t_ARGS_04,
56418 class t_ARGS_05,
56419 class t_ARGS_06,
56420 class t_ARGS_07,
56421 class t_ARGS_08,
56422 class t_ARGS_09,
56423 class t_ARGS_10,
56424 class t_ARGS_11,
56425 class = typename bsl::enable_if_t<
56427 std::is_constructible<t_TYPE,
56428 std::initializer_list<INIT_LIST_TYPE>&,
56429 t_ARGS_01,
56430 t_ARGS_02,
56431 t_ARGS_03,
56432 t_ARGS_04,
56433 t_ARGS_05,
56434 t_ARGS_06,
56435 t_ARGS_07,
56436 t_ARGS_08,
56437 t_ARGS_09,
56438 t_ARGS_10,
56439 t_ARGS_11>::value> >
56440 explicit variant(bsl::allocator_arg_t,
56441 allocator_type allocator,
56443 std::initializer_list<INIT_LIST_TYPE> il,
56444 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56445 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56446 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56447 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56448 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56449 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56450 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56451 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56452 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56453 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56454 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56455 : Variant_Base(
56456 bsl::allocator_arg_t{}
56457,
56458 allocator,
56459 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
56460 il,
56461 std::forward<t_ARGS_01>(args_01),
56462 std::forward<t_ARGS_02>(args_02),
56463 std::forward<t_ARGS_03>(args_03),
56464 std::forward<t_ARGS_04>(args_04),
56465 std::forward<t_ARGS_05>(args_05),
56466 std::forward<t_ARGS_06>(args_06),
56467 std::forward<t_ARGS_07>(args_07),
56468 std::forward<t_ARGS_08>(args_08),
56469 std::forward<t_ARGS_09>(args_09),
56470 std::forward<t_ARGS_10>(args_10),
56471 std::forward<t_ARGS_11>(args_11))
56472 {
56473 }
56474
56475 template <size_t t_INDEX,
56476 class t_ARGS_01,
56477 class t_ARGS_02,
56478 class t_ARGS_03,
56479 class t_ARGS_04,
56480 class t_ARGS_05,
56481 class t_ARGS_06,
56482 class t_ARGS_07,
56483 class t_ARGS_08,
56484 class t_ARGS_09,
56485 class t_ARGS_10,
56486 class t_ARGS_11,
56487 class = typename bsl::enable_if_t<
56488 (t_INDEX < 1 + 11u) &&
56489 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
56490 t_ARGS_01,
56491 t_ARGS_02,
56492 t_ARGS_03,
56493 t_ARGS_04,
56494 t_ARGS_05,
56495 t_ARGS_06,
56496 t_ARGS_07,
56497 t_ARGS_08,
56498 t_ARGS_09,
56499 t_ARGS_10,
56500 t_ARGS_11>::value> >
56501 explicit variant(bsl::allocator_arg_t,
56502 allocator_type allocator,
56504 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56505 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56506 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56507 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56508 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56509 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56510 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56511 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56512 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56513 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56514 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56515 : Variant_Base(bsl::allocator_arg_t{}
56516,
56517 allocator,
56518 bsl::in_place_index_t<t_INDEX>(),
56519 std::forward<t_ARGS_01>(args_01),
56520 std::forward<t_ARGS_02>(args_02),
56521 std::forward<t_ARGS_03>(args_03),
56522 std::forward<t_ARGS_04>(args_04),
56523 std::forward<t_ARGS_05>(args_05),
56524 std::forward<t_ARGS_06>(args_06),
56525 std::forward<t_ARGS_07>(args_07),
56526 std::forward<t_ARGS_08>(args_08),
56527 std::forward<t_ARGS_09>(args_09),
56528 std::forward<t_ARGS_10>(args_10),
56529 std::forward<t_ARGS_11>(args_11))
56530 {
56531 }
56532
56533 template <size_t t_INDEX,
56534 class INIT_LIST_TYPE,
56535 class t_ARGS_01,
56536 class t_ARGS_02,
56537 class t_ARGS_03,
56538 class t_ARGS_04,
56539 class t_ARGS_05,
56540 class t_ARGS_06,
56541 class t_ARGS_07,
56542 class t_ARGS_08,
56543 class t_ARGS_09,
56544 class t_ARGS_10,
56545 class t_ARGS_11,
56546 class = typename bsl::enable_if_t<
56547 (t_INDEX < 1 + 11u) &&
56548 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
56549 std::initializer_list<INIT_LIST_TYPE>&,
56550 t_ARGS_01,
56551 t_ARGS_02,
56552 t_ARGS_03,
56553 t_ARGS_04,
56554 t_ARGS_05,
56555 t_ARGS_06,
56556 t_ARGS_07,
56557 t_ARGS_08,
56558 t_ARGS_09,
56559 t_ARGS_10,
56560 t_ARGS_11>::value> >
56561 explicit variant(bsl::allocator_arg_t,
56562 allocator_type allocator,
56564 std::initializer_list<INIT_LIST_TYPE> il,
56565 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
56566 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
56567 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
56568 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
56569 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
56570 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
56571 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
56572 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
56573 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
56574 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
56575 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
56576 : Variant_Base(bsl::allocator_arg_t{}
56577,
56578 allocator,
56579 bsl::in_place_index_t<t_INDEX>(),
56580 il,
56581 std::forward<t_ARGS_01>(args_01),
56582 std::forward<t_ARGS_02>(args_02),
56583 std::forward<t_ARGS_03>(args_03),
56584 std::forward<t_ARGS_04>(args_04),
56585 std::forward<t_ARGS_05>(args_05),
56586 std::forward<t_ARGS_06>(args_06),
56587 std::forward<t_ARGS_07>(args_07),
56588 std::forward<t_ARGS_08>(args_08),
56589 std::forward<t_ARGS_09>(args_09),
56590 std::forward<t_ARGS_10>(args_10),
56591 std::forward<t_ARGS_11>(args_11))
56592 {
56593 }
56594
56595#else
56596
56597 variant();
56598
56599 variant(const variant& original);
56600
56601 variant(BloombergLP::bslmf::MovableRef<variant> original);
56602
56603 template <class t_TYPE>
56604 variant(const t_TYPE& value,
56606
56607 template <class t_TYPE>
56608 explicit variant(bsl::in_place_type_t<t_TYPE>,
56610
56611 template <class t_TYPE, class t_ARG_01>
56612 explicit variant(bsl::in_place_type_t<t_TYPE>,
56613 const t_ARG_01& arg_01,
56615
56616 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
56617 explicit variant(bsl::in_place_type_t<t_TYPE>,
56618 const t_ARG_01& arg_01,
56619 const t_ARG_02& arg_02,
56621
56622 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
56623 explicit variant(bsl::in_place_type_t<t_TYPE>,
56624 const t_ARG_01& arg_01,
56625 const t_ARG_02& arg_02,
56626 const t_ARG_03& arg_03,
56628
56629 template <class t_TYPE,
56630 class t_ARG_01,
56631 class t_ARG_02,
56632 class t_ARG_03,
56633 class t_ARG_04>
56634 explicit variant(bsl::in_place_type_t<t_TYPE>,
56635 const t_ARG_01& arg_01,
56636 const t_ARG_02& arg_02,
56637 const t_ARG_03& arg_03,
56638 const t_ARG_04& arg_04,
56640
56641 template <class t_TYPE,
56642 class t_ARG_01,
56643 class t_ARG_02,
56644 class t_ARG_03,
56645 class t_ARG_04,
56646 class t_ARG_05>
56647 explicit variant(bsl::in_place_type_t<t_TYPE>,
56648 const t_ARG_01& arg_01,
56649 const t_ARG_02& arg_02,
56650 const t_ARG_03& arg_03,
56651 const t_ARG_04& arg_04,
56652 const t_ARG_05& arg_05,
56654
56655 template <class t_TYPE,
56656 class t_ARG_01,
56657 class t_ARG_02,
56658 class t_ARG_03,
56659 class t_ARG_04,
56660 class t_ARG_05,
56661 class t_ARG_06>
56662 explicit variant(bsl::in_place_type_t<t_TYPE>,
56663 const t_ARG_01& arg_01,
56664 const t_ARG_02& arg_02,
56665 const t_ARG_03& arg_03,
56666 const t_ARG_04& arg_04,
56667 const t_ARG_05& arg_05,
56668 const t_ARG_06& arg_06,
56670
56671 template <class t_TYPE,
56672 class t_ARG_01,
56673 class t_ARG_02,
56674 class t_ARG_03,
56675 class t_ARG_04,
56676 class t_ARG_05,
56677 class t_ARG_06,
56678 class t_ARG_07>
56679 explicit variant(bsl::in_place_type_t<t_TYPE>,
56680 const t_ARG_01& arg_01,
56681 const t_ARG_02& arg_02,
56682 const t_ARG_03& arg_03,
56683 const t_ARG_04& arg_04,
56684 const t_ARG_05& arg_05,
56685 const t_ARG_06& arg_06,
56686 const t_ARG_07& arg_07,
56688
56689 template <class t_TYPE,
56690 class t_ARG_01,
56691 class t_ARG_02,
56692 class t_ARG_03,
56693 class t_ARG_04,
56694 class t_ARG_05,
56695 class t_ARG_06,
56696 class t_ARG_07,
56697 class t_ARG_08>
56698 explicit variant(bsl::in_place_type_t<t_TYPE>,
56699 const t_ARG_01& arg_01,
56700 const t_ARG_02& arg_02,
56701 const t_ARG_03& arg_03,
56702 const t_ARG_04& arg_04,
56703 const t_ARG_05& arg_05,
56704 const t_ARG_06& arg_06,
56705 const t_ARG_07& arg_07,
56706 const t_ARG_08& arg_08,
56708
56709 template <class t_TYPE,
56710 class t_ARG_01,
56711 class t_ARG_02,
56712 class t_ARG_03,
56713 class t_ARG_04,
56714 class t_ARG_05,
56715 class t_ARG_06,
56716 class t_ARG_07,
56717 class t_ARG_08,
56718 class t_ARG_09>
56719 explicit variant(bsl::in_place_type_t<t_TYPE>,
56720 const t_ARG_01& arg_01,
56721 const t_ARG_02& arg_02,
56722 const t_ARG_03& arg_03,
56723 const t_ARG_04& arg_04,
56724 const t_ARG_05& arg_05,
56725 const t_ARG_06& arg_06,
56726 const t_ARG_07& arg_07,
56727 const t_ARG_08& arg_08,
56728 const t_ARG_09& arg_09,
56730
56731 template <class t_TYPE,
56732 class t_ARG_01,
56733 class t_ARG_02,
56734 class t_ARG_03,
56735 class t_ARG_04,
56736 class t_ARG_05,
56737 class t_ARG_06,
56738 class t_ARG_07,
56739 class t_ARG_08,
56740 class t_ARG_09,
56741 class t_ARG_10>
56742 explicit variant(bsl::in_place_type_t<t_TYPE>,
56743 const t_ARG_01& arg_01,
56744 const t_ARG_02& arg_02,
56745 const t_ARG_03& arg_03,
56746 const t_ARG_04& arg_04,
56747 const t_ARG_05& arg_05,
56748 const t_ARG_06& arg_06,
56749 const t_ARG_07& arg_07,
56750 const t_ARG_08& arg_08,
56751 const t_ARG_09& arg_09,
56752 const t_ARG_10& arg_10,
56754
56755 template <size_t t_INDEX>
56756 explicit variant(bsl::in_place_index_t<t_INDEX>);
56757
56758 template <size_t t_INDEX, class t_ARG_01>
56759 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
56760
56761 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
56762 explicit variant(bsl::in_place_index_t<t_INDEX>,
56763 const t_ARG_01& arg_01,
56764 const t_ARG_02& arg_02);
56765
56766 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
56767 explicit variant(bsl::in_place_index_t<t_INDEX>,
56768 const t_ARG_01& arg_01,
56769 const t_ARG_02& arg_02,
56770 const t_ARG_03& arg_03);
56771
56772 template <size_t t_INDEX,
56773 class t_ARG_01,
56774 class t_ARG_02,
56775 class t_ARG_03,
56776 class t_ARG_04>
56777 explicit variant(bsl::in_place_index_t<t_INDEX>,
56778 const t_ARG_01& arg_01,
56779 const t_ARG_02& arg_02,
56780 const t_ARG_03& arg_03,
56781 const t_ARG_04& arg_04);
56782
56783 template <size_t t_INDEX,
56784 class t_ARG_01,
56785 class t_ARG_02,
56786 class t_ARG_03,
56787 class t_ARG_04,
56788 class t_ARG_05>
56789 explicit variant(bsl::in_place_index_t<t_INDEX>,
56790 const t_ARG_01& arg_01,
56791 const t_ARG_02& arg_02,
56792 const t_ARG_03& arg_03,
56793 const t_ARG_04& arg_04,
56794 const t_ARG_05& arg_05);
56795
56796 template <size_t t_INDEX,
56797 class t_ARG_01,
56798 class t_ARG_02,
56799 class t_ARG_03,
56800 class t_ARG_04,
56801 class t_ARG_05,
56802 class t_ARG_06>
56803 explicit variant(bsl::in_place_index_t<t_INDEX>,
56804 const t_ARG_01& arg_01,
56805 const t_ARG_02& arg_02,
56806 const t_ARG_03& arg_03,
56807 const t_ARG_04& arg_04,
56808 const t_ARG_05& arg_05,
56809 const t_ARG_06& arg_06);
56810
56811 template <size_t t_INDEX,
56812 class t_ARG_01,
56813 class t_ARG_02,
56814 class t_ARG_03,
56815 class t_ARG_04,
56816 class t_ARG_05,
56817 class t_ARG_06,
56818 class t_ARG_07>
56819 explicit variant(bsl::in_place_index_t<t_INDEX>,
56820 const t_ARG_01& arg_01,
56821 const t_ARG_02& arg_02,
56822 const t_ARG_03& arg_03,
56823 const t_ARG_04& arg_04,
56824 const t_ARG_05& arg_05,
56825 const t_ARG_06& arg_06,
56826 const t_ARG_07& arg_07);
56827
56828 template <size_t t_INDEX,
56829 class t_ARG_01,
56830 class t_ARG_02,
56831 class t_ARG_03,
56832 class t_ARG_04,
56833 class t_ARG_05,
56834 class t_ARG_06,
56835 class t_ARG_07,
56836 class t_ARG_08>
56837 explicit variant(bsl::in_place_index_t<t_INDEX>,
56838 const t_ARG_01& arg_01,
56839 const t_ARG_02& arg_02,
56840 const t_ARG_03& arg_03,
56841 const t_ARG_04& arg_04,
56842 const t_ARG_05& arg_05,
56843 const t_ARG_06& arg_06,
56844 const t_ARG_07& arg_07,
56845 const t_ARG_08& arg_08);
56846
56847 template <size_t t_INDEX,
56848 class t_ARG_01,
56849 class t_ARG_02,
56850 class t_ARG_03,
56851 class t_ARG_04,
56852 class t_ARG_05,
56853 class t_ARG_06,
56854 class t_ARG_07,
56855 class t_ARG_08,
56856 class t_ARG_09>
56857 explicit variant(bsl::in_place_index_t<t_INDEX>,
56858 const t_ARG_01& arg_01,
56859 const t_ARG_02& arg_02,
56860 const t_ARG_03& arg_03,
56861 const t_ARG_04& arg_04,
56862 const t_ARG_05& arg_05,
56863 const t_ARG_06& arg_06,
56864 const t_ARG_07& arg_07,
56865 const t_ARG_08& arg_08,
56866 const t_ARG_09& arg_09);
56867
56868 template <size_t t_INDEX,
56869 class t_ARG_01,
56870 class t_ARG_02,
56871 class t_ARG_03,
56872 class t_ARG_04,
56873 class t_ARG_05,
56874 class t_ARG_06,
56875 class t_ARG_07,
56876 class t_ARG_08,
56877 class t_ARG_09,
56878 class t_ARG_10>
56879 explicit variant(bsl::in_place_index_t<t_INDEX>,
56880 const t_ARG_01& arg_01,
56881 const t_ARG_02& arg_02,
56882 const t_ARG_03& arg_03,
56883 const t_ARG_04& arg_04,
56884 const t_ARG_05& arg_05,
56885 const t_ARG_06& arg_06,
56886 const t_ARG_07& arg_07,
56887 const t_ARG_08& arg_08,
56888 const t_ARG_09& arg_09,
56889 const t_ARG_10& arg_10);
56890
56891 variant(bsl::allocator_arg_t, allocator_type allocator);
56892
56893 variant(bsl::allocator_arg_t,
56894 allocator_type allocator,
56895 const variant& original);
56896 variant(bsl::allocator_arg_t,
56897 allocator_type allocator,
56898 BloombergLP::bslmf::MovableRef<variant> original);
56899
56900 template <class t_TYPE>
56901 variant(
56902 bsl::allocator_arg_t,
56903 allocator_type allocator,
56904 const t_TYPE& value,
56906
56907 template <class t_TYPE>
56908 explicit variant(
56909 bsl::allocator_arg_t,
56910 allocator_type allocator,
56913
56914 template <class t_TYPE, class t_ARG_01>
56915 explicit variant(
56916 bsl::allocator_arg_t,
56917 allocator_type allocator,
56919 const t_ARG_01& arg_01,
56921
56922 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
56923 explicit variant(
56924 bsl::allocator_arg_t,
56925 allocator_type allocator,
56927 const t_ARG_01& arg_01,
56928 const t_ARG_02& arg_02,
56930
56931 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
56932 explicit variant(
56933 bsl::allocator_arg_t,
56934 allocator_type allocator,
56936 const t_ARG_01& arg_01,
56937 const t_ARG_02& arg_02,
56938 const t_ARG_03& arg_03,
56940
56941 template <class t_TYPE,
56942 class t_ARG_01,
56943 class t_ARG_02,
56944 class t_ARG_03,
56945 class t_ARG_04>
56946 explicit variant(bsl::allocator_arg_t,
56947 allocator_type allocator,
56949 const t_ARG_01& arg_01,
56950 const t_ARG_02& arg_02,
56951 const t_ARG_03& arg_03,
56952 const t_ARG_04& arg_04,
56954
56955 template <class t_TYPE,
56956 class t_ARG_01,
56957 class t_ARG_02,
56958 class t_ARG_03,
56959 class t_ARG_04,
56960 class t_ARG_05>
56961 explicit variant(bsl::allocator_arg_t,
56962 allocator_type allocator,
56964 const t_ARG_01& arg_01,
56965 const t_ARG_02& arg_02,
56966 const t_ARG_03& arg_03,
56967 const t_ARG_04& arg_04,
56968 const t_ARG_05& arg_05,
56970
56971 template <class t_TYPE,
56972 class t_ARG_01,
56973 class t_ARG_02,
56974 class t_ARG_03,
56975 class t_ARG_04,
56976 class t_ARG_05,
56977 class t_ARG_06>
56978 explicit variant(bsl::allocator_arg_t,
56979 allocator_type allocator,
56981 const t_ARG_01& arg_01,
56982 const t_ARG_02& arg_02,
56983 const t_ARG_03& arg_03,
56984 const t_ARG_04& arg_04,
56985 const t_ARG_05& arg_05,
56986 const t_ARG_06& arg_06,
56988
56989 template <class t_TYPE,
56990 class t_ARG_01,
56991 class t_ARG_02,
56992 class t_ARG_03,
56993 class t_ARG_04,
56994 class t_ARG_05,
56995 class t_ARG_06,
56996 class t_ARG_07>
56997 explicit variant(bsl::allocator_arg_t,
56998 allocator_type allocator,
57000 const t_ARG_01& arg_01,
57001 const t_ARG_02& arg_02,
57002 const t_ARG_03& arg_03,
57003 const t_ARG_04& arg_04,
57004 const t_ARG_05& arg_05,
57005 const t_ARG_06& arg_06,
57006 const t_ARG_07& arg_07,
57008
57009 template <class t_TYPE,
57010 class t_ARG_01,
57011 class t_ARG_02,
57012 class t_ARG_03,
57013 class t_ARG_04,
57014 class t_ARG_05,
57015 class t_ARG_06,
57016 class t_ARG_07,
57017 class t_ARG_08>
57018 explicit variant(bsl::allocator_arg_t,
57019 allocator_type allocator,
57021 const t_ARG_01& arg_01,
57022 const t_ARG_02& arg_02,
57023 const t_ARG_03& arg_03,
57024 const t_ARG_04& arg_04,
57025 const t_ARG_05& arg_05,
57026 const t_ARG_06& arg_06,
57027 const t_ARG_07& arg_07,
57028 const t_ARG_08& arg_08,
57030
57031 template <class t_TYPE,
57032 class t_ARG_01,
57033 class t_ARG_02,
57034 class t_ARG_03,
57035 class t_ARG_04,
57036 class t_ARG_05,
57037 class t_ARG_06,
57038 class t_ARG_07,
57039 class t_ARG_08,
57040 class t_ARG_09>
57041 explicit variant(bsl::allocator_arg_t,
57042 allocator_type allocator,
57044 const t_ARG_01& arg_01,
57045 const t_ARG_02& arg_02,
57046 const t_ARG_03& arg_03,
57047 const t_ARG_04& arg_04,
57048 const t_ARG_05& arg_05,
57049 const t_ARG_06& arg_06,
57050 const t_ARG_07& arg_07,
57051 const t_ARG_08& arg_08,
57052 const t_ARG_09& arg_09,
57054
57055 template <class t_TYPE,
57056 class t_ARG_01,
57057 class t_ARG_02,
57058 class t_ARG_03,
57059 class t_ARG_04,
57060 class t_ARG_05,
57061 class t_ARG_06,
57062 class t_ARG_07,
57063 class t_ARG_08,
57064 class t_ARG_09,
57065 class t_ARG_10>
57066 explicit variant(bsl::allocator_arg_t,
57067 allocator_type allocator,
57069 const t_ARG_01& arg_01,
57070 const t_ARG_02& arg_02,
57071 const t_ARG_03& arg_03,
57072 const t_ARG_04& arg_04,
57073 const t_ARG_05& arg_05,
57074 const t_ARG_06& arg_06,
57075 const t_ARG_07& arg_07,
57076 const t_ARG_08& arg_08,
57077 const t_ARG_09& arg_09,
57078 const t_ARG_10& arg_10,
57080
57081 template <size_t t_INDEX>
57082 explicit variant(bsl::allocator_arg_t,
57083 allocator_type allocator,
57085
57086 template <size_t t_INDEX, class t_ARG_01>
57087 explicit variant(bsl::allocator_arg_t,
57088 allocator_type allocator,
57090 const t_ARG_01& arg_01);
57091
57092 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
57093 explicit variant(bsl::allocator_arg_t,
57094 allocator_type allocator,
57096 const t_ARG_01& arg_01,
57097 const t_ARG_02& arg_02);
57098
57099 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
57100 explicit variant(bsl::allocator_arg_t,
57101 allocator_type allocator,
57103 const t_ARG_01& arg_01,
57104 const t_ARG_02& arg_02,
57105 const t_ARG_03& arg_03);
57106
57107 template <size_t t_INDEX,
57108 class t_ARG_01,
57109 class t_ARG_02,
57110 class t_ARG_03,
57111 class t_ARG_04>
57112 explicit variant(bsl::allocator_arg_t,
57113 allocator_type allocator,
57115 const t_ARG_01& arg_01,
57116 const t_ARG_02& arg_02,
57117 const t_ARG_03& arg_03,
57118 const t_ARG_04& arg_04);
57119
57120 template <size_t t_INDEX,
57121 class t_ARG_01,
57122 class t_ARG_02,
57123 class t_ARG_03,
57124 class t_ARG_04,
57125 class t_ARG_05>
57126 explicit variant(bsl::allocator_arg_t,
57127 allocator_type allocator,
57129 const t_ARG_01& arg_01,
57130 const t_ARG_02& arg_02,
57131 const t_ARG_03& arg_03,
57132 const t_ARG_04& arg_04,
57133 const t_ARG_05& arg_05);
57134
57135 template <size_t t_INDEX,
57136 class t_ARG_01,
57137 class t_ARG_02,
57138 class t_ARG_03,
57139 class t_ARG_04,
57140 class t_ARG_05,
57141 class t_ARG_06>
57142 explicit variant(bsl::allocator_arg_t,
57143 allocator_type allocator,
57145 const t_ARG_01& arg_01,
57146 const t_ARG_02& arg_02,
57147 const t_ARG_03& arg_03,
57148 const t_ARG_04& arg_04,
57149 const t_ARG_05& arg_05,
57150 const t_ARG_06& arg_06);
57151
57152 template <size_t t_INDEX,
57153 class t_ARG_01,
57154 class t_ARG_02,
57155 class t_ARG_03,
57156 class t_ARG_04,
57157 class t_ARG_05,
57158 class t_ARG_06,
57159 class t_ARG_07>
57160 explicit variant(bsl::allocator_arg_t,
57161 allocator_type allocator,
57163 const t_ARG_01& arg_01,
57164 const t_ARG_02& arg_02,
57165 const t_ARG_03& arg_03,
57166 const t_ARG_04& arg_04,
57167 const t_ARG_05& arg_05,
57168 const t_ARG_06& arg_06,
57169 const t_ARG_07& arg_07);
57170
57171 template <size_t t_INDEX,
57172 class t_ARG_01,
57173 class t_ARG_02,
57174 class t_ARG_03,
57175 class t_ARG_04,
57176 class t_ARG_05,
57177 class t_ARG_06,
57178 class t_ARG_07,
57179 class t_ARG_08>
57180 explicit variant(bsl::allocator_arg_t,
57181 allocator_type allocator,
57183 const t_ARG_01& arg_01,
57184 const t_ARG_02& arg_02,
57185 const t_ARG_03& arg_03,
57186 const t_ARG_04& arg_04,
57187 const t_ARG_05& arg_05,
57188 const t_ARG_06& arg_06,
57189 const t_ARG_07& arg_07,
57190 const t_ARG_08& arg_08);
57191
57192 template <size_t t_INDEX,
57193 class t_ARG_01,
57194 class t_ARG_02,
57195 class t_ARG_03,
57196 class t_ARG_04,
57197 class t_ARG_05,
57198 class t_ARG_06,
57199 class t_ARG_07,
57200 class t_ARG_08,
57201 class t_ARG_09>
57202 explicit variant(bsl::allocator_arg_t,
57203 allocator_type allocator,
57205 const t_ARG_01& arg_01,
57206 const t_ARG_02& arg_02,
57207 const t_ARG_03& arg_03,
57208 const t_ARG_04& arg_04,
57209 const t_ARG_05& arg_05,
57210 const t_ARG_06& arg_06,
57211 const t_ARG_07& arg_07,
57212 const t_ARG_08& arg_08,
57213 const t_ARG_09& arg_09);
57214
57215 template <size_t t_INDEX,
57216 class t_ARG_01,
57217 class t_ARG_02,
57218 class t_ARG_03,
57219 class t_ARG_04,
57220 class t_ARG_05,
57221 class t_ARG_06,
57222 class t_ARG_07,
57223 class t_ARG_08,
57224 class t_ARG_09,
57225 class t_ARG_10>
57226 explicit variant(bsl::allocator_arg_t,
57227 allocator_type allocator,
57229 const t_ARG_01& arg_01,
57230 const t_ARG_02& arg_02,
57231 const t_ARG_03& arg_03,
57232 const t_ARG_04& arg_04,
57233 const t_ARG_05& arg_05,
57234 const t_ARG_06& arg_06,
57235 const t_ARG_07& arg_07,
57236 const t_ARG_08& arg_08,
57237 const t_ARG_09& arg_09,
57238 const t_ARG_10& arg_10);
57239
57240#endif
57241
57242
57243#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
57244 template <class t_TYPE,
57245 class t_ARGS_01,
57246 class t_ARGS_02,
57247 class t_ARGS_03,
57248 class t_ARGS_04,
57249 class t_ARGS_05,
57250 class t_ARGS_06,
57251 class t_ARGS_07,
57252 class t_ARGS_08,
57253 class t_ARGS_09,
57254 class t_ARGS_10,
57255 class t_ARGS_11,
57256 class = typename bsl::enable_if_t<
57258 std::is_constructible<t_TYPE, t_ARGS_01,
57259 t_ARGS_02,
57260 t_ARGS_03,
57261 t_ARGS_04,
57262 t_ARGS_05,
57263 t_ARGS_06,
57264 t_ARGS_07,
57265 t_ARGS_08,
57266 t_ARGS_09,
57267 t_ARGS_10,
57268 t_ARGS_11>::value> >
57269 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
57270 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
57271 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
57272 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
57273 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
57274 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
57275 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
57276 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
57277 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
57278 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
57279 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
57280 {
57281 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
57282 Variant_Base::template baseEmplace<index>(
57283 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
57284 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
57285 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
57286 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
57287 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
57288 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
57289 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
57290 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
57291 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
57292 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
57293 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11));
57294
57295 return bsl::get<index>(*this);
57296 }
57297
57298 template <class t_TYPE,
57299 class INIT_LIST_TYPE,
57300 class t_ARGS_01,
57301 class t_ARGS_02,
57302 class t_ARGS_03,
57303 class t_ARGS_04,
57304 class t_ARGS_05,
57305 class t_ARGS_06,
57306 class t_ARGS_07,
57307 class t_ARGS_08,
57308 class t_ARGS_09,
57309 class t_ARGS_10,
57310 class t_ARGS_11,
57311 class = typename bsl::enable_if_t<
57313 std::is_constructible<t_TYPE,
57314 std::initializer_list<INIT_LIST_TYPE>&,
57315 t_ARGS_01,
57316 t_ARGS_02,
57317 t_ARGS_03,
57318 t_ARGS_04,
57319 t_ARGS_05,
57320 t_ARGS_06,
57321 t_ARGS_07,
57322 t_ARGS_08,
57323 t_ARGS_09,
57324 t_ARGS_10,
57325 t_ARGS_11>::value> >
57326 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
57327 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
57328 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
57329 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
57330 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
57331 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
57332 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
57333 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
57334 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
57335 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
57336 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
57337 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
57338 {
57339 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
57340 Variant_Base::template baseEmplace<index>(
57341 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
57342 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
57343 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
57344 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
57345 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
57346 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
57347 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
57348 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
57349 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
57350 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
57351 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11));
57352
57353 return bsl::get<index>(*this);
57354 }
57355
57356 template <size_t t_INDEX,
57357 class t_ARGS_01,
57358 class t_ARGS_02,
57359 class t_ARGS_03,
57360 class t_ARGS_04,
57361 class t_ARGS_05,
57362 class t_ARGS_06,
57363 class t_ARGS_07,
57364 class t_ARGS_08,
57365 class t_ARGS_09,
57366 class t_ARGS_10,
57367 class t_ARGS_11,
57368 class = typename bsl::enable_if_t<
57369 (t_INDEX < 1 + 11u) &&
57370 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
57371 t_ARGS_01,
57372 t_ARGS_02,
57373 t_ARGS_03,
57374 t_ARGS_04,
57375 t_ARGS_05,
57376 t_ARGS_06,
57377 t_ARGS_07,
57378 t_ARGS_08,
57379 t_ARGS_09,
57380 t_ARGS_10,
57381 t_ARGS_11>::value> >
57382 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57383 t_TAIL_02,
57384 t_TAIL_03,
57385 t_TAIL_04,
57386 t_TAIL_05,
57387 t_TAIL_06,
57388 t_TAIL_07,
57389 t_TAIL_08,
57390 t_TAIL_09,
57391 t_TAIL_10,
57392 t_TAIL_11> >::type&
57393 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
57394 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
57395 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
57396 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
57397 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
57398 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
57399 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
57400 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
57401 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
57402 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
57403 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
57404 {
57405 Variant_Base::template baseEmplace<t_INDEX>(
57406 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
57407 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
57408 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
57409 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
57410 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
57411 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
57412 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
57413 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
57414 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
57415 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
57416 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11));
57417
57418 return bsl::get<t_INDEX>(*this);
57419 }
57420
57421 template <size_t t_INDEX,
57422 class INIT_LIST_TYPE,
57423 class t_ARGS_01,
57424 class t_ARGS_02,
57425 class t_ARGS_03,
57426 class t_ARGS_04,
57427 class t_ARGS_05,
57428 class t_ARGS_06,
57429 class t_ARGS_07,
57430 class t_ARGS_08,
57431 class t_ARGS_09,
57432 class t_ARGS_10,
57433 class t_ARGS_11,
57434 class = typename bsl::enable_if_t<
57435 (t_INDEX < 1 + 11u) &&
57436 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
57437 std::initializer_list<INIT_LIST_TYPE>&,
57438 t_ARGS_01,
57439 t_ARGS_02,
57440 t_ARGS_03,
57441 t_ARGS_04,
57442 t_ARGS_05,
57443 t_ARGS_06,
57444 t_ARGS_07,
57445 t_ARGS_08,
57446 t_ARGS_09,
57447 t_ARGS_10,
57448 t_ARGS_11>::value> >
57449 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57450 t_TAIL_02,
57451 t_TAIL_03,
57452 t_TAIL_04,
57453 t_TAIL_05,
57454 t_TAIL_06,
57455 t_TAIL_07,
57456 t_TAIL_08,
57457 t_TAIL_09,
57458 t_TAIL_10,
57459 t_TAIL_11> >::type&
57460 emplace(std::initializer_list<INIT_LIST_TYPE> il,
57461 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
57462 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
57463 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
57464 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
57465 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
57466 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
57467 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
57468 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
57469 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
57470 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
57471 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11)
57472 {
57473 Variant_Base::template baseEmplace<t_INDEX>(
57474 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
57475 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
57476 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
57477 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
57478 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
57479 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
57480 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
57481 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
57482 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
57483 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
57484 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11));
57485
57486 return bsl::get<t_INDEX>(*this);
57487 }
57488
57489#else
57490
57491 template <class t_TYPE>
57492 typename bsl::enable_if<
57493 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57494 t_TYPE&>::type
57495 emplace();
57496
57497 template <class t_TYPE, class t_ARG_01>
57498 typename bsl::enable_if<
57499 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57500 t_TYPE&>::type
57501 emplace(const t_ARG_01& arg_01);
57502
57503 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
57504 typename bsl::enable_if<
57505 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57506 t_TYPE&>::type
57507 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
57508
57509 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
57510 typename bsl::enable_if<
57511 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57512 t_TYPE&>::type
57513 emplace(const t_ARG_01& arg_01,
57514 const t_ARG_02& arg_02,
57515 const t_ARG_03& arg_03);
57516
57517 template <class t_TYPE,
57518 class t_ARG_01,
57519 class t_ARG_02,
57520 class t_ARG_03,
57521 class t_ARG_04>
57522 typename bsl::enable_if<
57523 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57524 t_TYPE&>::type
57525 emplace(const t_ARG_01& arg_01,
57526 const t_ARG_02& arg_02,
57527 const t_ARG_03& arg_03,
57528 const t_ARG_04& arg_04);
57529
57530 template <class t_TYPE,
57531 class t_ARG_01,
57532 class t_ARG_02,
57533 class t_ARG_03,
57534 class t_ARG_04,
57535 class t_ARG_05>
57536 typename bsl::enable_if<
57537 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57538 t_TYPE&>::type
57539 emplace(const t_ARG_01& arg_01,
57540 const t_ARG_02& arg_02,
57541 const t_ARG_03& arg_03,
57542 const t_ARG_04& arg_04,
57543 const t_ARG_05& arg_05);
57544
57545 template <class t_TYPE,
57546 class t_ARG_01,
57547 class t_ARG_02,
57548 class t_ARG_03,
57549 class t_ARG_04,
57550 class t_ARG_05,
57551 class t_ARG_06>
57552 typename bsl::enable_if<
57553 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57554 t_TYPE&>::type
57555 emplace(const t_ARG_01& arg_01,
57556 const t_ARG_02& arg_02,
57557 const t_ARG_03& arg_03,
57558 const t_ARG_04& arg_04,
57559 const t_ARG_05& arg_05,
57560 const t_ARG_06& arg_06);
57561
57562 template <class t_TYPE,
57563 class t_ARG_01,
57564 class t_ARG_02,
57565 class t_ARG_03,
57566 class t_ARG_04,
57567 class t_ARG_05,
57568 class t_ARG_06,
57569 class t_ARG_07>
57570 typename bsl::enable_if<
57571 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57572 t_TYPE&>::type
57573 emplace(const t_ARG_01& arg_01,
57574 const t_ARG_02& arg_02,
57575 const t_ARG_03& arg_03,
57576 const t_ARG_04& arg_04,
57577 const t_ARG_05& arg_05,
57578 const t_ARG_06& arg_06,
57579 const t_ARG_07& arg_07);
57580
57581 template <class t_TYPE,
57582 class t_ARG_01,
57583 class t_ARG_02,
57584 class t_ARG_03,
57585 class t_ARG_04,
57586 class t_ARG_05,
57587 class t_ARG_06,
57588 class t_ARG_07,
57589 class t_ARG_08>
57590 typename bsl::enable_if<
57591 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57592 t_TYPE&>::type
57593 emplace(const t_ARG_01& arg_01,
57594 const t_ARG_02& arg_02,
57595 const t_ARG_03& arg_03,
57596 const t_ARG_04& arg_04,
57597 const t_ARG_05& arg_05,
57598 const t_ARG_06& arg_06,
57599 const t_ARG_07& arg_07,
57600 const t_ARG_08& arg_08);
57601
57602 template <class t_TYPE,
57603 class t_ARG_01,
57604 class t_ARG_02,
57605 class t_ARG_03,
57606 class t_ARG_04,
57607 class t_ARG_05,
57608 class t_ARG_06,
57609 class t_ARG_07,
57610 class t_ARG_08,
57611 class t_ARG_09>
57612 typename bsl::enable_if<
57613 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57614 t_TYPE&>::type
57615 emplace(const t_ARG_01& arg_01,
57616 const t_ARG_02& arg_02,
57617 const t_ARG_03& arg_03,
57618 const t_ARG_04& arg_04,
57619 const t_ARG_05& arg_05,
57620 const t_ARG_06& arg_06,
57621 const t_ARG_07& arg_07,
57622 const t_ARG_08& arg_08,
57623 const t_ARG_09& arg_09);
57624
57625 template <class t_TYPE,
57626 class t_ARG_01,
57627 class t_ARG_02,
57628 class t_ARG_03,
57629 class t_ARG_04,
57630 class t_ARG_05,
57631 class t_ARG_06,
57632 class t_ARG_07,
57633 class t_ARG_08,
57634 class t_ARG_09,
57635 class t_ARG_10>
57636 typename bsl::enable_if<
57637 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
57638 t_TYPE&>::type
57639 emplace(const t_ARG_01& arg_01,
57640 const t_ARG_02& arg_02,
57641 const t_ARG_03& arg_03,
57642 const t_ARG_04& arg_04,
57643 const t_ARG_05& arg_05,
57644 const t_ARG_06& arg_06,
57645 const t_ARG_07& arg_07,
57646 const t_ARG_08& arg_08,
57647 const t_ARG_09& arg_09,
57648 const t_ARG_10& arg_10);
57649
57650 template <size_t t_INDEX>
57651 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57652 t_TAIL_02,
57653 t_TAIL_03,
57654 t_TAIL_04,
57655 t_TAIL_05,
57656 t_TAIL_06,
57657 t_TAIL_07,
57658 t_TAIL_08,
57659 t_TAIL_09,
57660 t_TAIL_10,
57661 t_TAIL_11> >::type&
57662 emplace();
57663
57664 template <size_t t_INDEX, class t_ARG_01>
57665 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57666 t_TAIL_02,
57667 t_TAIL_03,
57668 t_TAIL_04,
57669 t_TAIL_05,
57670 t_TAIL_06,
57671 t_TAIL_07,
57672 t_TAIL_08,
57673 t_TAIL_09,
57674 t_TAIL_10,
57675 t_TAIL_11> >::type&
57676 emplace(const t_ARG_01& arg_01);
57677
57678 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
57679 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57680 t_TAIL_02,
57681 t_TAIL_03,
57682 t_TAIL_04,
57683 t_TAIL_05,
57684 t_TAIL_06,
57685 t_TAIL_07,
57686 t_TAIL_08,
57687 t_TAIL_09,
57688 t_TAIL_10,
57689 t_TAIL_11> >::type&
57690 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
57691
57692 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
57693 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57694 t_TAIL_02,
57695 t_TAIL_03,
57696 t_TAIL_04,
57697 t_TAIL_05,
57698 t_TAIL_06,
57699 t_TAIL_07,
57700 t_TAIL_08,
57701 t_TAIL_09,
57702 t_TAIL_10,
57703 t_TAIL_11> >::type&
57704 emplace(const t_ARG_01& arg_01,
57705 const t_ARG_02& arg_02,
57706 const t_ARG_03& arg_03);
57707
57708 template <size_t t_INDEX,
57709 class t_ARG_01,
57710 class t_ARG_02,
57711 class t_ARG_03,
57712 class t_ARG_04>
57713 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57714 t_TAIL_02,
57715 t_TAIL_03,
57716 t_TAIL_04,
57717 t_TAIL_05,
57718 t_TAIL_06,
57719 t_TAIL_07,
57720 t_TAIL_08,
57721 t_TAIL_09,
57722 t_TAIL_10,
57723 t_TAIL_11> >::type&
57724 emplace(const t_ARG_01& arg_01,
57725 const t_ARG_02& arg_02,
57726 const t_ARG_03& arg_03,
57727 const t_ARG_04& arg_04);
57728
57729 template <size_t t_INDEX,
57730 class t_ARG_01,
57731 class t_ARG_02,
57732 class t_ARG_03,
57733 class t_ARG_04,
57734 class t_ARG_05>
57735 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57736 t_TAIL_02,
57737 t_TAIL_03,
57738 t_TAIL_04,
57739 t_TAIL_05,
57740 t_TAIL_06,
57741 t_TAIL_07,
57742 t_TAIL_08,
57743 t_TAIL_09,
57744 t_TAIL_10,
57745 t_TAIL_11> >::type&
57746 emplace(const t_ARG_01& arg_01,
57747 const t_ARG_02& arg_02,
57748 const t_ARG_03& arg_03,
57749 const t_ARG_04& arg_04,
57750 const t_ARG_05& arg_05);
57751
57752 template <size_t t_INDEX,
57753 class t_ARG_01,
57754 class t_ARG_02,
57755 class t_ARG_03,
57756 class t_ARG_04,
57757 class t_ARG_05,
57758 class t_ARG_06>
57759 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57760 t_TAIL_02,
57761 t_TAIL_03,
57762 t_TAIL_04,
57763 t_TAIL_05,
57764 t_TAIL_06,
57765 t_TAIL_07,
57766 t_TAIL_08,
57767 t_TAIL_09,
57768 t_TAIL_10,
57769 t_TAIL_11> >::type&
57770 emplace(const t_ARG_01& arg_01,
57771 const t_ARG_02& arg_02,
57772 const t_ARG_03& arg_03,
57773 const t_ARG_04& arg_04,
57774 const t_ARG_05& arg_05,
57775 const t_ARG_06& arg_06);
57776
57777 template <size_t t_INDEX,
57778 class t_ARG_01,
57779 class t_ARG_02,
57780 class t_ARG_03,
57781 class t_ARG_04,
57782 class t_ARG_05,
57783 class t_ARG_06,
57784 class t_ARG_07>
57785 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57786 t_TAIL_02,
57787 t_TAIL_03,
57788 t_TAIL_04,
57789 t_TAIL_05,
57790 t_TAIL_06,
57791 t_TAIL_07,
57792 t_TAIL_08,
57793 t_TAIL_09,
57794 t_TAIL_10,
57795 t_TAIL_11> >::type&
57796 emplace(const t_ARG_01& arg_01,
57797 const t_ARG_02& arg_02,
57798 const t_ARG_03& arg_03,
57799 const t_ARG_04& arg_04,
57800 const t_ARG_05& arg_05,
57801 const t_ARG_06& arg_06,
57802 const t_ARG_07& arg_07);
57803
57804 template <size_t t_INDEX,
57805 class t_ARG_01,
57806 class t_ARG_02,
57807 class t_ARG_03,
57808 class t_ARG_04,
57809 class t_ARG_05,
57810 class t_ARG_06,
57811 class t_ARG_07,
57812 class t_ARG_08>
57813 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57814 t_TAIL_02,
57815 t_TAIL_03,
57816 t_TAIL_04,
57817 t_TAIL_05,
57818 t_TAIL_06,
57819 t_TAIL_07,
57820 t_TAIL_08,
57821 t_TAIL_09,
57822 t_TAIL_10,
57823 t_TAIL_11> >::type&
57824 emplace(const t_ARG_01& arg_01,
57825 const t_ARG_02& arg_02,
57826 const t_ARG_03& arg_03,
57827 const t_ARG_04& arg_04,
57828 const t_ARG_05& arg_05,
57829 const t_ARG_06& arg_06,
57830 const t_ARG_07& arg_07,
57831 const t_ARG_08& arg_08);
57832
57833 template <size_t t_INDEX,
57834 class t_ARG_01,
57835 class t_ARG_02,
57836 class t_ARG_03,
57837 class t_ARG_04,
57838 class t_ARG_05,
57839 class t_ARG_06,
57840 class t_ARG_07,
57841 class t_ARG_08,
57842 class t_ARG_09>
57843 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57844 t_TAIL_02,
57845 t_TAIL_03,
57846 t_TAIL_04,
57847 t_TAIL_05,
57848 t_TAIL_06,
57849 t_TAIL_07,
57850 t_TAIL_08,
57851 t_TAIL_09,
57852 t_TAIL_10,
57853 t_TAIL_11> >::type&
57854 emplace(const t_ARG_01& arg_01,
57855 const t_ARG_02& arg_02,
57856 const t_ARG_03& arg_03,
57857 const t_ARG_04& arg_04,
57858 const t_ARG_05& arg_05,
57859 const t_ARG_06& arg_06,
57860 const t_ARG_07& arg_07,
57861 const t_ARG_08& arg_08,
57862 const t_ARG_09& arg_09);
57863
57864 template <size_t t_INDEX,
57865 class t_ARG_01,
57866 class t_ARG_02,
57867 class t_ARG_03,
57868 class t_ARG_04,
57869 class t_ARG_05,
57870 class t_ARG_06,
57871 class t_ARG_07,
57872 class t_ARG_08,
57873 class t_ARG_09,
57874 class t_ARG_10>
57875 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
57876 t_TAIL_02,
57877 t_TAIL_03,
57878 t_TAIL_04,
57879 t_TAIL_05,
57880 t_TAIL_06,
57881 t_TAIL_07,
57882 t_TAIL_08,
57883 t_TAIL_09,
57884 t_TAIL_10,
57885 t_TAIL_11> >::type&
57886 emplace(const t_ARG_01& arg_01,
57887 const t_ARG_02& arg_02,
57888 const t_ARG_03& arg_03,
57889 const t_ARG_04& arg_04,
57890 const t_ARG_05& arg_05,
57891 const t_ARG_06& arg_06,
57892 const t_ARG_07& arg_07,
57893 const t_ARG_08& arg_08,
57894 const t_ARG_09& arg_09,
57895 const t_ARG_10& arg_10);
57896#endif
57897
57898#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
57899 variant& operator=(const variant& rhs) = default;
57900
57901 variant& operator=(variant&& rhs) = default;
57902
57903 template <class t_TYPE>
57904 typename bsl::enable_if<
57905 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
57906 variant&>::type
57907 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
57908 {
57909 const size_t altIndex =
57910 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
57911
57912 if (index() == altIndex) {
57913 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
57914 value);
57915 }
57916 else {
57917 Variant_Base::template baseEmplace<altIndex>(
57918 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
57919 }
57920
57921 return *this;
57922 }
57923#else
57924 variant& operator=(const variant& rhs);
57925
57926 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
57927
57928 template <class t_TYPE>
57929 typename bsl::enable_if<
57930 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
57931 variant&>::type
57932 operator=(const t_TYPE& value);
57933
57934#endif
57935
57936 void swap(variant& other);
57937
57938#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
57939 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
57940 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
57941 t_TAIL_02,
57942 t_TAIL_03,
57943 t_TAIL_04,
57944 t_TAIL_05,
57945 t_TAIL_06,
57946 t_TAIL_07,
57947 t_TAIL_08,
57948 t_TAIL_09,
57949 t_TAIL_10,
57950 t_TAIL_11>::value,
57951 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
57952#endif
57953 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
57954 {
57955 return allocator_type(Variant_Base::AllocBase::mechanism());
57956 }
57957
57958
57959 size_t index() const BSLS_KEYWORD_NOEXCEPT;
57960
57961 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
57962};
57963#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 11
57964
57965#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 12
57966template <class t_HEAD, class t_TAIL_01,
57967 class t_TAIL_02,
57968 class t_TAIL_03,
57969 class t_TAIL_04,
57970 class t_TAIL_05,
57971 class t_TAIL_06,
57972 class t_TAIL_07,
57973 class t_TAIL_08,
57974 class t_TAIL_09,
57975 class t_TAIL_10,
57976 class t_TAIL_11,
57977 class t_TAIL_12>
57978class variant<t_HEAD, t_TAIL_01,
57979 t_TAIL_02,
57980 t_TAIL_03,
57981 t_TAIL_04,
57982 t_TAIL_05,
57983 t_TAIL_06,
57984 t_TAIL_07,
57985 t_TAIL_08,
57986 t_TAIL_09,
57987 t_TAIL_10,
57988 t_TAIL_11,
57989 t_TAIL_12>
57990: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
57991 t_TAIL_02,
57992 t_TAIL_03,
57993 t_TAIL_04,
57994 t_TAIL_05,
57995 t_TAIL_06,
57996 t_TAIL_07,
57997 t_TAIL_08,
57998 t_TAIL_09,
57999 t_TAIL_10,
58000 t_TAIL_11,
58001 t_TAIL_12>
58002#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
58003,
58004 private BloombergLP::bslstl::Variant_SMFBase<
58005 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
58006 t_TAIL_01,
58007 t_TAIL_02,
58008 t_TAIL_03,
58009 t_TAIL_04,
58010 t_TAIL_05,
58011 t_TAIL_06,
58012 t_TAIL_07,
58013 t_TAIL_08,
58014 t_TAIL_09,
58015 t_TAIL_10,
58016 t_TAIL_11,
58017 t_TAIL_12>::value,
58018 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
58019 t_TAIL_01,
58020 t_TAIL_02,
58021 t_TAIL_03,
58022 t_TAIL_04,
58023 t_TAIL_05,
58024 t_TAIL_06,
58025 t_TAIL_07,
58026 t_TAIL_08,
58027 t_TAIL_09,
58028 t_TAIL_10,
58029 t_TAIL_11,
58030 t_TAIL_12>::value,
58031 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
58032 t_TAIL_01,
58033 t_TAIL_02,
58034 t_TAIL_03,
58035 t_TAIL_04,
58036 t_TAIL_05,
58037 t_TAIL_06,
58038 t_TAIL_07,
58039 t_TAIL_08,
58040 t_TAIL_09,
58041 t_TAIL_10,
58042 t_TAIL_11,
58043 t_TAIL_12>::value &&
58044 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
58045 t_TAIL_01,
58046 t_TAIL_02,
58047 t_TAIL_03,
58048 t_TAIL_04,
58049 t_TAIL_05,
58050 t_TAIL_06,
58051 t_TAIL_07,
58052 t_TAIL_08,
58053 t_TAIL_09,
58054 t_TAIL_10,
58055 t_TAIL_11,
58056 t_TAIL_12>::value,
58057 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
58058 t_TAIL_01,
58059 t_TAIL_02,
58060 t_TAIL_03,
58061 t_TAIL_04,
58062 t_TAIL_05,
58063 t_TAIL_06,
58064 t_TAIL_07,
58065 t_TAIL_08,
58066 t_TAIL_09,
58067 t_TAIL_10,
58068 t_TAIL_11,
58069 t_TAIL_12>::value &&
58070 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
58071 t_TAIL_01,
58072 t_TAIL_02,
58073 t_TAIL_03,
58074 t_TAIL_04,
58075 t_TAIL_05,
58076 t_TAIL_06,
58077 t_TAIL_07,
58078 t_TAIL_08,
58079 t_TAIL_09,
58080 t_TAIL_10,
58081 t_TAIL_11,
58082 t_TAIL_12>::value>
58083#endif
58084{
58085 private:
58086 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
58087 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
58088 t_TAIL_02,
58089 t_TAIL_03,
58090 t_TAIL_04,
58091 t_TAIL_05,
58092 t_TAIL_06,
58093 t_TAIL_07,
58094 t_TAIL_08,
58095 t_TAIL_09,
58096 t_TAIL_10,
58097 t_TAIL_11,
58098 t_TAIL_12> Variant_Base;
58099 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
58100 t_TAIL_02,
58101 t_TAIL_03,
58102 t_TAIL_04,
58103 t_TAIL_05,
58104 t_TAIL_06,
58105 t_TAIL_07,
58106 t_TAIL_08,
58107 t_TAIL_09,
58108 t_TAIL_10,
58109 t_TAIL_11,
58110 t_TAIL_12>
58111 Variant_Union;
58112
58113 friend struct BloombergLP::bslstl::Variant_ImpUtil;
58114
58115 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
58116 t_TAIL_02,
58117 t_TAIL_03,
58118 t_TAIL_04,
58119 t_TAIL_05,
58120 t_TAIL_06,
58121 t_TAIL_07,
58122 t_TAIL_08,
58123 t_TAIL_09,
58124 t_TAIL_10,
58125 t_TAIL_11,
58126 t_TAIL_12>;
58127
58128 public:
58130 variant,
58131 BloombergLP::bslma::UsesBslmaAllocator,
58132 (BloombergLP::bslstl::
58133 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
58134 t_TAIL_02,
58135 t_TAIL_03,
58136 t_TAIL_04,
58137 t_TAIL_05,
58138 t_TAIL_06,
58139 t_TAIL_07,
58140 t_TAIL_08,
58141 t_TAIL_09,
58142 t_TAIL_10,
58143 t_TAIL_11,
58144 t_TAIL_12>::value));
58146 variant,
58147 BloombergLP::bslmf::UsesAllocatorArgT,
58148 (BloombergLP::bslstl::
58149 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
58150 t_TAIL_02,
58151 t_TAIL_03,
58152 t_TAIL_04,
58153 t_TAIL_05,
58154 t_TAIL_06,
58155 t_TAIL_07,
58156 t_TAIL_08,
58157 t_TAIL_09,
58158 t_TAIL_10,
58159 t_TAIL_11,
58160 t_TAIL_12>::value));
58162 variant,
58163 BloombergLP::bslmf::IsBitwiseMoveable,
58164 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
58165 t_TAIL_01,
58166 t_TAIL_02,
58167 t_TAIL_03,
58168 t_TAIL_04,
58169 t_TAIL_05,
58170 t_TAIL_06,
58171 t_TAIL_07,
58172 t_TAIL_08,
58173 t_TAIL_09,
58174 t_TAIL_10,
58175 t_TAIL_11,
58176 t_TAIL_12>::value));
58177
58178
58179 typedef typename Variant_Base::allocator_type allocator_type;
58180
58181
58182#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
58183 template <class t_FIRST_ALT = t_HEAD,
58184 class = typename bsl::enable_if_t<
58185 std::is_default_constructible<t_FIRST_ALT>::value> >
58186 variant()
58187 : Variant_Base()
58188 {
58189 }
58190
58191 variant(const variant& original) = default;
58192
58193 variant(variant&& original) = default;
58194
58195#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
58196 template <class t_STD_VARIANT>
58197 explicit variant(
58198 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
58200 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
58201 original.index())
58202 {
58203 if (!valueless_by_exception()) {
58204 BloombergLP::bslstl::Variant_ImpUtil::
58205 ConstructFromStdVisitor<variant, decltype(original)>
58206 visitor(*this, original);
58207 BSLSTL_VARIANT_VISITID(void, visitor, *this);
58208 }
58209 }
58210#endif
58211
58212 template <class t_TYPE>
58213 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
58215
58216 template <class t_TYPE,
58217 class t_ARGS_01,
58218 class t_ARGS_02,
58219 class t_ARGS_03,
58220 class t_ARGS_04,
58221 class t_ARGS_05,
58222 class t_ARGS_06,
58223 class t_ARGS_07,
58224 class t_ARGS_08,
58225 class t_ARGS_09,
58226 class t_ARGS_10,
58227 class t_ARGS_11,
58228 class t_ARGS_12,
58229 class = typename bsl::enable_if_t<
58231 std::is_constructible<t_TYPE, t_ARGS_01,
58232 t_ARGS_02,
58233 t_ARGS_03,
58234 t_ARGS_04,
58235 t_ARGS_05,
58236 t_ARGS_06,
58237 t_ARGS_07,
58238 t_ARGS_08,
58239 t_ARGS_09,
58240 t_ARGS_10,
58241 t_ARGS_11,
58242 t_ARGS_12>::value> >
58243 explicit variant(bsl::in_place_type_t<t_TYPE>,
58244 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58245 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58246 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58247 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58248 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58249 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58250 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58251 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58252 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58253 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58254 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58255 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58256 : Variant_Base(
58257 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
58258 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
58259 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
58260 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
58261 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
58262 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
58263 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
58264 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
58265 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
58266 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
58267 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
58268 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
58269 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12))
58270 {
58271 }
58272
58273 template <class t_TYPE,
58274 class INIT_LIST_TYPE,
58275 class t_ARGS_01,
58276 class t_ARGS_02,
58277 class t_ARGS_03,
58278 class t_ARGS_04,
58279 class t_ARGS_05,
58280 class t_ARGS_06,
58281 class t_ARGS_07,
58282 class t_ARGS_08,
58283 class t_ARGS_09,
58284 class t_ARGS_10,
58285 class t_ARGS_11,
58286 class t_ARGS_12,
58287 class = typename bsl::enable_if_t<
58289 std::is_constructible<t_TYPE,
58290 std::initializer_list<INIT_LIST_TYPE>&,
58291 t_ARGS_01,
58292 t_ARGS_02,
58293 t_ARGS_03,
58294 t_ARGS_04,
58295 t_ARGS_05,
58296 t_ARGS_06,
58297 t_ARGS_07,
58298 t_ARGS_08,
58299 t_ARGS_09,
58300 t_ARGS_10,
58301 t_ARGS_11,
58302 t_ARGS_12>::value> >
58303 explicit variant(bsl::in_place_type_t<t_TYPE>,
58304 std::initializer_list<INIT_LIST_TYPE> il,
58305 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58306 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58307 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58308 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58309 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58310 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58311 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58312 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58313 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58314 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58317 : Variant_Base(
58318 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
58319 il,
58320 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
58321 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
58322 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
58323 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
58324 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
58325 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
58326 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
58327 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
58328 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
58329 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
58330 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
58331 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12))
58332 {
58333 }
58334
58335 template <size_t t_INDEX,
58336 class t_ARGS_01,
58337 class t_ARGS_02,
58338 class t_ARGS_03,
58339 class t_ARGS_04,
58340 class t_ARGS_05,
58341 class t_ARGS_06,
58342 class t_ARGS_07,
58343 class t_ARGS_08,
58344 class t_ARGS_09,
58345 class t_ARGS_10,
58346 class t_ARGS_11,
58347 class t_ARGS_12,
58348 class = typename bsl::enable_if_t<
58349 (t_INDEX < 1 + 12u) &&
58350 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
58351 t_ARGS_01,
58352 t_ARGS_02,
58353 t_ARGS_03,
58354 t_ARGS_04,
58355 t_ARGS_05,
58356 t_ARGS_06,
58357 t_ARGS_07,
58358 t_ARGS_08,
58359 t_ARGS_09,
58360 t_ARGS_10,
58361 t_ARGS_11,
58362 t_ARGS_12>::value> >
58363 explicit variant(bsl::in_place_index_t<t_INDEX>,
58364 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58365 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58366 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58367 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58368 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58369 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58370 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58371 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58372 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58373 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58374 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58375 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58376 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
58377 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
58378 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
58379 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
58380 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
58381 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
58382 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
58383 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
58384 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
58385 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
58386 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
58387 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
58388 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12))
58389 {
58390 }
58391
58392 template <size_t t_INDEX,
58393 class INIT_LIST_TYPE,
58394 class t_ARGS_01,
58395 class t_ARGS_02,
58396 class t_ARGS_03,
58397 class t_ARGS_04,
58398 class t_ARGS_05,
58399 class t_ARGS_06,
58400 class t_ARGS_07,
58401 class t_ARGS_08,
58402 class t_ARGS_09,
58403 class t_ARGS_10,
58404 class t_ARGS_11,
58405 class t_ARGS_12,
58406 class = typename bsl::enable_if_t<
58407 (t_INDEX < 1 + 12u) &&
58408 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
58409 std::initializer_list<INIT_LIST_TYPE>&,
58410 t_ARGS_01,
58411 t_ARGS_02,
58412 t_ARGS_03,
58413 t_ARGS_04,
58414 t_ARGS_05,
58415 t_ARGS_06,
58416 t_ARGS_07,
58417 t_ARGS_08,
58418 t_ARGS_09,
58419 t_ARGS_10,
58420 t_ARGS_11,
58421 t_ARGS_12>::value> >
58422 explicit variant(bsl::in_place_index_t<t_INDEX>,
58423 std::initializer_list<INIT_LIST_TYPE> il,
58424 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58425 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58426 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58427 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58428 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58429 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58430 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58431 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58432 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58433 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58434 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58435 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58436 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
58437 il,
58438 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
58439 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
58440 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
58441 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
58442 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
58443 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
58444 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
58445 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
58446 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
58447 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
58448 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
58449 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12))
58450 {
58451 }
58452
58453 template <class FIRST = t_HEAD,
58454 class = typename bsl::enable_if_t<
58455 std::is_default_constructible<FIRST>::value> >
58456 variant(bsl::allocator_arg_t, allocator_type allocator)
58457 : Variant_Base(bsl::allocator_arg_t(), allocator)
58458 {
58459 }
58460
58461 template <
58462 class FIRST = t_HEAD,
58463 class = typename bsl::enable_if_t<
58464 BloombergLP::bslstl::
58465 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
58466 t_TAIL_02,
58467 t_TAIL_03,
58468 t_TAIL_04,
58469 t_TAIL_05,
58470 t_TAIL_06,
58471 t_TAIL_07,
58472 t_TAIL_08,
58473 t_TAIL_09,
58474 t_TAIL_10,
58475 t_TAIL_11,
58476 t_TAIL_12>::value> >
58477 variant(bsl::allocator_arg_t,
58478 allocator_type allocator,
58479 const variant& original)
58480 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
58481 {
58482 }
58483 template <
58484 class FIRST = t_HEAD,
58485 class = typename bsl::enable_if_t<
58486 BloombergLP::bslstl::
58487 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
58488 t_TAIL_02,
58489 t_TAIL_03,
58490 t_TAIL_04,
58491 t_TAIL_05,
58492 t_TAIL_06,
58493 t_TAIL_07,
58494 t_TAIL_08,
58495 t_TAIL_09,
58496 t_TAIL_10,
58497 t_TAIL_11,
58498 t_TAIL_12>::value> >
58499 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
58500 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
58501 {
58502 }
58503
58504#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
58505 template <class t_STD_VARIANT>
58506 explicit variant(
58507 bsl::allocator_arg_t,
58508 allocator_type allocator,
58509 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
58511 : Variant_Base(bsl::allocator_arg_t(),
58512 allocator,
58513 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
58514 original.index())
58515 {
58516 if (!valueless_by_exception()) {
58517 BloombergLP::bslstl::Variant_ImpUtil::
58518 ConstructFromStdVisitor<variant, decltype(original)>
58519 visitor(*this, original);
58520 BSLSTL_VARIANT_VISITID(void, visitor, *this);
58521 }
58522 }
58523#endif
58524
58525 template <class t_TYPE>
58526 variant(
58527 bsl::allocator_arg_t,
58528 allocator_type allocator,
58531
58532 template <class t_TYPE,
58533 class t_ARGS_01,
58534 class t_ARGS_02,
58535 class t_ARGS_03,
58536 class t_ARGS_04,
58537 class t_ARGS_05,
58538 class t_ARGS_06,
58539 class t_ARGS_07,
58540 class t_ARGS_08,
58541 class t_ARGS_09,
58542 class t_ARGS_10,
58543 class t_ARGS_11,
58544 class t_ARGS_12,
58545 class = typename bsl::enable_if_t<
58547 std::is_constructible<t_TYPE, t_ARGS_01,
58548 t_ARGS_02,
58549 t_ARGS_03,
58550 t_ARGS_04,
58551 t_ARGS_05,
58552 t_ARGS_06,
58553 t_ARGS_07,
58554 t_ARGS_08,
58555 t_ARGS_09,
58556 t_ARGS_10,
58557 t_ARGS_11,
58558 t_ARGS_12>::value> >
58559 explicit variant(bsl::allocator_arg_t,
58560 allocator_type allocator,
58562 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58563 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58564 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58565 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58566 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58567 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58568 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58569 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58570 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58571 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58572 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58573 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58574 : Variant_Base(
58575 bsl::allocator_arg_t{}
58576,
58577 allocator,
58578 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
58579 std::forward<t_ARGS_01>(args_01),
58580 std::forward<t_ARGS_02>(args_02),
58581 std::forward<t_ARGS_03>(args_03),
58582 std::forward<t_ARGS_04>(args_04),
58583 std::forward<t_ARGS_05>(args_05),
58584 std::forward<t_ARGS_06>(args_06),
58585 std::forward<t_ARGS_07>(args_07),
58586 std::forward<t_ARGS_08>(args_08),
58587 std::forward<t_ARGS_09>(args_09),
58588 std::forward<t_ARGS_10>(args_10),
58589 std::forward<t_ARGS_11>(args_11),
58590 std::forward<t_ARGS_12>(args_12))
58591 {
58592 }
58593
58594 template <class t_TYPE,
58595 class INIT_LIST_TYPE,
58596 class t_ARGS_01,
58597 class t_ARGS_02,
58598 class t_ARGS_03,
58599 class t_ARGS_04,
58600 class t_ARGS_05,
58601 class t_ARGS_06,
58602 class t_ARGS_07,
58603 class t_ARGS_08,
58604 class t_ARGS_09,
58605 class t_ARGS_10,
58606 class t_ARGS_11,
58607 class t_ARGS_12,
58608 class = typename bsl::enable_if_t<
58610 std::is_constructible<t_TYPE,
58611 std::initializer_list<INIT_LIST_TYPE>&,
58612 t_ARGS_01,
58613 t_ARGS_02,
58614 t_ARGS_03,
58615 t_ARGS_04,
58616 t_ARGS_05,
58617 t_ARGS_06,
58618 t_ARGS_07,
58619 t_ARGS_08,
58620 t_ARGS_09,
58621 t_ARGS_10,
58622 t_ARGS_11,
58623 t_ARGS_12>::value> >
58624 explicit variant(bsl::allocator_arg_t,
58625 allocator_type allocator,
58627 std::initializer_list<INIT_LIST_TYPE> il,
58628 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58629 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58630 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58631 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58632 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58633 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58634 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58635 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58636 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58637 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58638 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58639 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58640 : Variant_Base(
58641 bsl::allocator_arg_t{}
58642,
58643 allocator,
58644 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
58645 il,
58646 std::forward<t_ARGS_01>(args_01),
58647 std::forward<t_ARGS_02>(args_02),
58648 std::forward<t_ARGS_03>(args_03),
58649 std::forward<t_ARGS_04>(args_04),
58650 std::forward<t_ARGS_05>(args_05),
58651 std::forward<t_ARGS_06>(args_06),
58652 std::forward<t_ARGS_07>(args_07),
58653 std::forward<t_ARGS_08>(args_08),
58654 std::forward<t_ARGS_09>(args_09),
58655 std::forward<t_ARGS_10>(args_10),
58656 std::forward<t_ARGS_11>(args_11),
58657 std::forward<t_ARGS_12>(args_12))
58658 {
58659 }
58660
58661 template <size_t t_INDEX,
58662 class t_ARGS_01,
58663 class t_ARGS_02,
58664 class t_ARGS_03,
58665 class t_ARGS_04,
58666 class t_ARGS_05,
58667 class t_ARGS_06,
58668 class t_ARGS_07,
58669 class t_ARGS_08,
58670 class t_ARGS_09,
58671 class t_ARGS_10,
58672 class t_ARGS_11,
58673 class t_ARGS_12,
58674 class = typename bsl::enable_if_t<
58675 (t_INDEX < 1 + 12u) &&
58676 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
58677 t_ARGS_01,
58678 t_ARGS_02,
58679 t_ARGS_03,
58680 t_ARGS_04,
58681 t_ARGS_05,
58682 t_ARGS_06,
58683 t_ARGS_07,
58684 t_ARGS_08,
58685 t_ARGS_09,
58686 t_ARGS_10,
58687 t_ARGS_11,
58688 t_ARGS_12>::value> >
58689 explicit variant(bsl::allocator_arg_t,
58690 allocator_type allocator,
58692 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58693 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58694 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58695 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58696 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58697 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58698 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58699 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58700 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58701 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58702 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58703 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58704 : Variant_Base(bsl::allocator_arg_t{}
58705,
58706 allocator,
58707 bsl::in_place_index_t<t_INDEX>(),
58708 std::forward<t_ARGS_01>(args_01),
58709 std::forward<t_ARGS_02>(args_02),
58710 std::forward<t_ARGS_03>(args_03),
58711 std::forward<t_ARGS_04>(args_04),
58712 std::forward<t_ARGS_05>(args_05),
58713 std::forward<t_ARGS_06>(args_06),
58714 std::forward<t_ARGS_07>(args_07),
58715 std::forward<t_ARGS_08>(args_08),
58716 std::forward<t_ARGS_09>(args_09),
58717 std::forward<t_ARGS_10>(args_10),
58718 std::forward<t_ARGS_11>(args_11),
58719 std::forward<t_ARGS_12>(args_12))
58720 {
58721 }
58722
58723 template <size_t t_INDEX,
58724 class INIT_LIST_TYPE,
58725 class t_ARGS_01,
58726 class t_ARGS_02,
58727 class t_ARGS_03,
58728 class t_ARGS_04,
58729 class t_ARGS_05,
58730 class t_ARGS_06,
58731 class t_ARGS_07,
58732 class t_ARGS_08,
58733 class t_ARGS_09,
58734 class t_ARGS_10,
58735 class t_ARGS_11,
58736 class t_ARGS_12,
58737 class = typename bsl::enable_if_t<
58738 (t_INDEX < 1 + 12u) &&
58739 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
58740 std::initializer_list<INIT_LIST_TYPE>&,
58741 t_ARGS_01,
58742 t_ARGS_02,
58743 t_ARGS_03,
58744 t_ARGS_04,
58745 t_ARGS_05,
58746 t_ARGS_06,
58747 t_ARGS_07,
58748 t_ARGS_08,
58749 t_ARGS_09,
58750 t_ARGS_10,
58751 t_ARGS_11,
58752 t_ARGS_12>::value> >
58753 explicit variant(bsl::allocator_arg_t,
58754 allocator_type allocator,
58756 std::initializer_list<INIT_LIST_TYPE> il,
58757 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
58758 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
58759 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
58760 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
58761 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
58762 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
58763 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
58764 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
58765 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
58766 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
58767 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
58768 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
58769 : Variant_Base(bsl::allocator_arg_t{}
58770,
58771 allocator,
58772 bsl::in_place_index_t<t_INDEX>(),
58773 il,
58774 std::forward<t_ARGS_01>(args_01),
58775 std::forward<t_ARGS_02>(args_02),
58776 std::forward<t_ARGS_03>(args_03),
58777 std::forward<t_ARGS_04>(args_04),
58778 std::forward<t_ARGS_05>(args_05),
58779 std::forward<t_ARGS_06>(args_06),
58780 std::forward<t_ARGS_07>(args_07),
58781 std::forward<t_ARGS_08>(args_08),
58782 std::forward<t_ARGS_09>(args_09),
58783 std::forward<t_ARGS_10>(args_10),
58784 std::forward<t_ARGS_11>(args_11),
58785 std::forward<t_ARGS_12>(args_12))
58786 {
58787 }
58788
58789#else
58790
58791 variant();
58792
58793 variant(const variant& original);
58794
58795 variant(BloombergLP::bslmf::MovableRef<variant> original);
58796
58797 template <class t_TYPE>
58798 variant(const t_TYPE& value,
58800
58801 template <class t_TYPE>
58802 explicit variant(bsl::in_place_type_t<t_TYPE>,
58804
58805 template <class t_TYPE, class t_ARG_01>
58806 explicit variant(bsl::in_place_type_t<t_TYPE>,
58807 const t_ARG_01& arg_01,
58809
58810 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
58811 explicit variant(bsl::in_place_type_t<t_TYPE>,
58812 const t_ARG_01& arg_01,
58813 const t_ARG_02& arg_02,
58815
58816 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
58817 explicit variant(bsl::in_place_type_t<t_TYPE>,
58818 const t_ARG_01& arg_01,
58819 const t_ARG_02& arg_02,
58820 const t_ARG_03& arg_03,
58822
58823 template <class t_TYPE,
58824 class t_ARG_01,
58825 class t_ARG_02,
58826 class t_ARG_03,
58827 class t_ARG_04>
58828 explicit variant(bsl::in_place_type_t<t_TYPE>,
58829 const t_ARG_01& arg_01,
58830 const t_ARG_02& arg_02,
58831 const t_ARG_03& arg_03,
58832 const t_ARG_04& arg_04,
58834
58835 template <class t_TYPE,
58836 class t_ARG_01,
58837 class t_ARG_02,
58838 class t_ARG_03,
58839 class t_ARG_04,
58840 class t_ARG_05>
58841 explicit variant(bsl::in_place_type_t<t_TYPE>,
58842 const t_ARG_01& arg_01,
58843 const t_ARG_02& arg_02,
58844 const t_ARG_03& arg_03,
58845 const t_ARG_04& arg_04,
58846 const t_ARG_05& arg_05,
58848
58849 template <class t_TYPE,
58850 class t_ARG_01,
58851 class t_ARG_02,
58852 class t_ARG_03,
58853 class t_ARG_04,
58854 class t_ARG_05,
58855 class t_ARG_06>
58856 explicit variant(bsl::in_place_type_t<t_TYPE>,
58857 const t_ARG_01& arg_01,
58858 const t_ARG_02& arg_02,
58859 const t_ARG_03& arg_03,
58860 const t_ARG_04& arg_04,
58861 const t_ARG_05& arg_05,
58862 const t_ARG_06& arg_06,
58864
58865 template <class t_TYPE,
58866 class t_ARG_01,
58867 class t_ARG_02,
58868 class t_ARG_03,
58869 class t_ARG_04,
58870 class t_ARG_05,
58871 class t_ARG_06,
58872 class t_ARG_07>
58873 explicit variant(bsl::in_place_type_t<t_TYPE>,
58874 const t_ARG_01& arg_01,
58875 const t_ARG_02& arg_02,
58876 const t_ARG_03& arg_03,
58877 const t_ARG_04& arg_04,
58878 const t_ARG_05& arg_05,
58879 const t_ARG_06& arg_06,
58880 const t_ARG_07& arg_07,
58882
58883 template <class t_TYPE,
58884 class t_ARG_01,
58885 class t_ARG_02,
58886 class t_ARG_03,
58887 class t_ARG_04,
58888 class t_ARG_05,
58889 class t_ARG_06,
58890 class t_ARG_07,
58891 class t_ARG_08>
58892 explicit variant(bsl::in_place_type_t<t_TYPE>,
58893 const t_ARG_01& arg_01,
58894 const t_ARG_02& arg_02,
58895 const t_ARG_03& arg_03,
58896 const t_ARG_04& arg_04,
58897 const t_ARG_05& arg_05,
58898 const t_ARG_06& arg_06,
58899 const t_ARG_07& arg_07,
58900 const t_ARG_08& arg_08,
58902
58903 template <class t_TYPE,
58904 class t_ARG_01,
58905 class t_ARG_02,
58906 class t_ARG_03,
58907 class t_ARG_04,
58908 class t_ARG_05,
58909 class t_ARG_06,
58910 class t_ARG_07,
58911 class t_ARG_08,
58912 class t_ARG_09>
58913 explicit variant(bsl::in_place_type_t<t_TYPE>,
58914 const t_ARG_01& arg_01,
58915 const t_ARG_02& arg_02,
58916 const t_ARG_03& arg_03,
58917 const t_ARG_04& arg_04,
58918 const t_ARG_05& arg_05,
58919 const t_ARG_06& arg_06,
58920 const t_ARG_07& arg_07,
58921 const t_ARG_08& arg_08,
58922 const t_ARG_09& arg_09,
58924
58925 template <class t_TYPE,
58926 class t_ARG_01,
58927 class t_ARG_02,
58928 class t_ARG_03,
58929 class t_ARG_04,
58930 class t_ARG_05,
58931 class t_ARG_06,
58932 class t_ARG_07,
58933 class t_ARG_08,
58934 class t_ARG_09,
58935 class t_ARG_10>
58936 explicit variant(bsl::in_place_type_t<t_TYPE>,
58937 const t_ARG_01& arg_01,
58938 const t_ARG_02& arg_02,
58939 const t_ARG_03& arg_03,
58940 const t_ARG_04& arg_04,
58941 const t_ARG_05& arg_05,
58942 const t_ARG_06& arg_06,
58943 const t_ARG_07& arg_07,
58944 const t_ARG_08& arg_08,
58945 const t_ARG_09& arg_09,
58946 const t_ARG_10& arg_10,
58948
58949 template <size_t t_INDEX>
58950 explicit variant(bsl::in_place_index_t<t_INDEX>);
58951
58952 template <size_t t_INDEX, class t_ARG_01>
58953 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
58954
58955 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
58956 explicit variant(bsl::in_place_index_t<t_INDEX>,
58957 const t_ARG_01& arg_01,
58958 const t_ARG_02& arg_02);
58959
58960 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
58961 explicit variant(bsl::in_place_index_t<t_INDEX>,
58962 const t_ARG_01& arg_01,
58963 const t_ARG_02& arg_02,
58964 const t_ARG_03& arg_03);
58965
58966 template <size_t t_INDEX,
58967 class t_ARG_01,
58968 class t_ARG_02,
58969 class t_ARG_03,
58970 class t_ARG_04>
58971 explicit variant(bsl::in_place_index_t<t_INDEX>,
58972 const t_ARG_01& arg_01,
58973 const t_ARG_02& arg_02,
58974 const t_ARG_03& arg_03,
58975 const t_ARG_04& arg_04);
58976
58977 template <size_t t_INDEX,
58978 class t_ARG_01,
58979 class t_ARG_02,
58980 class t_ARG_03,
58981 class t_ARG_04,
58982 class t_ARG_05>
58983 explicit variant(bsl::in_place_index_t<t_INDEX>,
58984 const t_ARG_01& arg_01,
58985 const t_ARG_02& arg_02,
58986 const t_ARG_03& arg_03,
58987 const t_ARG_04& arg_04,
58988 const t_ARG_05& arg_05);
58989
58990 template <size_t t_INDEX,
58991 class t_ARG_01,
58992 class t_ARG_02,
58993 class t_ARG_03,
58994 class t_ARG_04,
58995 class t_ARG_05,
58996 class t_ARG_06>
58997 explicit variant(bsl::in_place_index_t<t_INDEX>,
58998 const t_ARG_01& arg_01,
58999 const t_ARG_02& arg_02,
59000 const t_ARG_03& arg_03,
59001 const t_ARG_04& arg_04,
59002 const t_ARG_05& arg_05,
59003 const t_ARG_06& arg_06);
59004
59005 template <size_t t_INDEX,
59006 class t_ARG_01,
59007 class t_ARG_02,
59008 class t_ARG_03,
59009 class t_ARG_04,
59010 class t_ARG_05,
59011 class t_ARG_06,
59012 class t_ARG_07>
59013 explicit variant(bsl::in_place_index_t<t_INDEX>,
59014 const t_ARG_01& arg_01,
59015 const t_ARG_02& arg_02,
59016 const t_ARG_03& arg_03,
59017 const t_ARG_04& arg_04,
59018 const t_ARG_05& arg_05,
59019 const t_ARG_06& arg_06,
59020 const t_ARG_07& arg_07);
59021
59022 template <size_t t_INDEX,
59023 class t_ARG_01,
59024 class t_ARG_02,
59025 class t_ARG_03,
59026 class t_ARG_04,
59027 class t_ARG_05,
59028 class t_ARG_06,
59029 class t_ARG_07,
59030 class t_ARG_08>
59031 explicit variant(bsl::in_place_index_t<t_INDEX>,
59032 const t_ARG_01& arg_01,
59033 const t_ARG_02& arg_02,
59034 const t_ARG_03& arg_03,
59035 const t_ARG_04& arg_04,
59036 const t_ARG_05& arg_05,
59037 const t_ARG_06& arg_06,
59038 const t_ARG_07& arg_07,
59039 const t_ARG_08& arg_08);
59040
59041 template <size_t t_INDEX,
59042 class t_ARG_01,
59043 class t_ARG_02,
59044 class t_ARG_03,
59045 class t_ARG_04,
59046 class t_ARG_05,
59047 class t_ARG_06,
59048 class t_ARG_07,
59049 class t_ARG_08,
59050 class t_ARG_09>
59051 explicit variant(bsl::in_place_index_t<t_INDEX>,
59052 const t_ARG_01& arg_01,
59053 const t_ARG_02& arg_02,
59054 const t_ARG_03& arg_03,
59055 const t_ARG_04& arg_04,
59056 const t_ARG_05& arg_05,
59057 const t_ARG_06& arg_06,
59058 const t_ARG_07& arg_07,
59059 const t_ARG_08& arg_08,
59060 const t_ARG_09& arg_09);
59061
59062 template <size_t t_INDEX,
59063 class t_ARG_01,
59064 class t_ARG_02,
59065 class t_ARG_03,
59066 class t_ARG_04,
59067 class t_ARG_05,
59068 class t_ARG_06,
59069 class t_ARG_07,
59070 class t_ARG_08,
59071 class t_ARG_09,
59072 class t_ARG_10>
59073 explicit variant(bsl::in_place_index_t<t_INDEX>,
59074 const t_ARG_01& arg_01,
59075 const t_ARG_02& arg_02,
59076 const t_ARG_03& arg_03,
59077 const t_ARG_04& arg_04,
59078 const t_ARG_05& arg_05,
59079 const t_ARG_06& arg_06,
59080 const t_ARG_07& arg_07,
59081 const t_ARG_08& arg_08,
59082 const t_ARG_09& arg_09,
59083 const t_ARG_10& arg_10);
59084
59085 variant(bsl::allocator_arg_t, allocator_type allocator);
59086
59087 variant(bsl::allocator_arg_t,
59088 allocator_type allocator,
59089 const variant& original);
59090 variant(bsl::allocator_arg_t,
59091 allocator_type allocator,
59092 BloombergLP::bslmf::MovableRef<variant> original);
59093
59094 template <class t_TYPE>
59095 variant(
59096 bsl::allocator_arg_t,
59097 allocator_type allocator,
59098 const t_TYPE& value,
59100
59101 template <class t_TYPE>
59102 explicit variant(
59103 bsl::allocator_arg_t,
59104 allocator_type allocator,
59107
59108 template <class t_TYPE, class t_ARG_01>
59109 explicit variant(
59110 bsl::allocator_arg_t,
59111 allocator_type allocator,
59113 const t_ARG_01& arg_01,
59115
59116 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
59117 explicit variant(
59118 bsl::allocator_arg_t,
59119 allocator_type allocator,
59121 const t_ARG_01& arg_01,
59122 const t_ARG_02& arg_02,
59124
59125 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
59126 explicit variant(
59127 bsl::allocator_arg_t,
59128 allocator_type allocator,
59130 const t_ARG_01& arg_01,
59131 const t_ARG_02& arg_02,
59132 const t_ARG_03& arg_03,
59134
59135 template <class t_TYPE,
59136 class t_ARG_01,
59137 class t_ARG_02,
59138 class t_ARG_03,
59139 class t_ARG_04>
59140 explicit variant(bsl::allocator_arg_t,
59141 allocator_type allocator,
59143 const t_ARG_01& arg_01,
59144 const t_ARG_02& arg_02,
59145 const t_ARG_03& arg_03,
59146 const t_ARG_04& arg_04,
59148
59149 template <class t_TYPE,
59150 class t_ARG_01,
59151 class t_ARG_02,
59152 class t_ARG_03,
59153 class t_ARG_04,
59154 class t_ARG_05>
59155 explicit variant(bsl::allocator_arg_t,
59156 allocator_type allocator,
59158 const t_ARG_01& arg_01,
59159 const t_ARG_02& arg_02,
59160 const t_ARG_03& arg_03,
59161 const t_ARG_04& arg_04,
59162 const t_ARG_05& arg_05,
59164
59165 template <class t_TYPE,
59166 class t_ARG_01,
59167 class t_ARG_02,
59168 class t_ARG_03,
59169 class t_ARG_04,
59170 class t_ARG_05,
59171 class t_ARG_06>
59172 explicit variant(bsl::allocator_arg_t,
59173 allocator_type allocator,
59175 const t_ARG_01& arg_01,
59176 const t_ARG_02& arg_02,
59177 const t_ARG_03& arg_03,
59178 const t_ARG_04& arg_04,
59179 const t_ARG_05& arg_05,
59180 const t_ARG_06& arg_06,
59182
59183 template <class t_TYPE,
59184 class t_ARG_01,
59185 class t_ARG_02,
59186 class t_ARG_03,
59187 class t_ARG_04,
59188 class t_ARG_05,
59189 class t_ARG_06,
59190 class t_ARG_07>
59191 explicit variant(bsl::allocator_arg_t,
59192 allocator_type allocator,
59194 const t_ARG_01& arg_01,
59195 const t_ARG_02& arg_02,
59196 const t_ARG_03& arg_03,
59197 const t_ARG_04& arg_04,
59198 const t_ARG_05& arg_05,
59199 const t_ARG_06& arg_06,
59200 const t_ARG_07& arg_07,
59202
59203 template <class t_TYPE,
59204 class t_ARG_01,
59205 class t_ARG_02,
59206 class t_ARG_03,
59207 class t_ARG_04,
59208 class t_ARG_05,
59209 class t_ARG_06,
59210 class t_ARG_07,
59211 class t_ARG_08>
59212 explicit variant(bsl::allocator_arg_t,
59213 allocator_type allocator,
59215 const t_ARG_01& arg_01,
59216 const t_ARG_02& arg_02,
59217 const t_ARG_03& arg_03,
59218 const t_ARG_04& arg_04,
59219 const t_ARG_05& arg_05,
59220 const t_ARG_06& arg_06,
59221 const t_ARG_07& arg_07,
59222 const t_ARG_08& arg_08,
59224
59225 template <class t_TYPE,
59226 class t_ARG_01,
59227 class t_ARG_02,
59228 class t_ARG_03,
59229 class t_ARG_04,
59230 class t_ARG_05,
59231 class t_ARG_06,
59232 class t_ARG_07,
59233 class t_ARG_08,
59234 class t_ARG_09>
59235 explicit variant(bsl::allocator_arg_t,
59236 allocator_type allocator,
59238 const t_ARG_01& arg_01,
59239 const t_ARG_02& arg_02,
59240 const t_ARG_03& arg_03,
59241 const t_ARG_04& arg_04,
59242 const t_ARG_05& arg_05,
59243 const t_ARG_06& arg_06,
59244 const t_ARG_07& arg_07,
59245 const t_ARG_08& arg_08,
59246 const t_ARG_09& arg_09,
59248
59249 template <class t_TYPE,
59250 class t_ARG_01,
59251 class t_ARG_02,
59252 class t_ARG_03,
59253 class t_ARG_04,
59254 class t_ARG_05,
59255 class t_ARG_06,
59256 class t_ARG_07,
59257 class t_ARG_08,
59258 class t_ARG_09,
59259 class t_ARG_10>
59260 explicit variant(bsl::allocator_arg_t,
59261 allocator_type allocator,
59263 const t_ARG_01& arg_01,
59264 const t_ARG_02& arg_02,
59265 const t_ARG_03& arg_03,
59266 const t_ARG_04& arg_04,
59267 const t_ARG_05& arg_05,
59268 const t_ARG_06& arg_06,
59269 const t_ARG_07& arg_07,
59270 const t_ARG_08& arg_08,
59271 const t_ARG_09& arg_09,
59272 const t_ARG_10& arg_10,
59274
59275 template <size_t t_INDEX>
59276 explicit variant(bsl::allocator_arg_t,
59277 allocator_type allocator,
59279
59280 template <size_t t_INDEX, class t_ARG_01>
59281 explicit variant(bsl::allocator_arg_t,
59282 allocator_type allocator,
59284 const t_ARG_01& arg_01);
59285
59286 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
59287 explicit variant(bsl::allocator_arg_t,
59288 allocator_type allocator,
59290 const t_ARG_01& arg_01,
59291 const t_ARG_02& arg_02);
59292
59293 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
59294 explicit variant(bsl::allocator_arg_t,
59295 allocator_type allocator,
59297 const t_ARG_01& arg_01,
59298 const t_ARG_02& arg_02,
59299 const t_ARG_03& arg_03);
59300
59301 template <size_t t_INDEX,
59302 class t_ARG_01,
59303 class t_ARG_02,
59304 class t_ARG_03,
59305 class t_ARG_04>
59306 explicit variant(bsl::allocator_arg_t,
59307 allocator_type allocator,
59309 const t_ARG_01& arg_01,
59310 const t_ARG_02& arg_02,
59311 const t_ARG_03& arg_03,
59312 const t_ARG_04& arg_04);
59313
59314 template <size_t t_INDEX,
59315 class t_ARG_01,
59316 class t_ARG_02,
59317 class t_ARG_03,
59318 class t_ARG_04,
59319 class t_ARG_05>
59320 explicit variant(bsl::allocator_arg_t,
59321 allocator_type allocator,
59323 const t_ARG_01& arg_01,
59324 const t_ARG_02& arg_02,
59325 const t_ARG_03& arg_03,
59326 const t_ARG_04& arg_04,
59327 const t_ARG_05& arg_05);
59328
59329 template <size_t t_INDEX,
59330 class t_ARG_01,
59331 class t_ARG_02,
59332 class t_ARG_03,
59333 class t_ARG_04,
59334 class t_ARG_05,
59335 class t_ARG_06>
59336 explicit variant(bsl::allocator_arg_t,
59337 allocator_type allocator,
59339 const t_ARG_01& arg_01,
59340 const t_ARG_02& arg_02,
59341 const t_ARG_03& arg_03,
59342 const t_ARG_04& arg_04,
59343 const t_ARG_05& arg_05,
59344 const t_ARG_06& arg_06);
59345
59346 template <size_t t_INDEX,
59347 class t_ARG_01,
59348 class t_ARG_02,
59349 class t_ARG_03,
59350 class t_ARG_04,
59351 class t_ARG_05,
59352 class t_ARG_06,
59353 class t_ARG_07>
59354 explicit variant(bsl::allocator_arg_t,
59355 allocator_type allocator,
59357 const t_ARG_01& arg_01,
59358 const t_ARG_02& arg_02,
59359 const t_ARG_03& arg_03,
59360 const t_ARG_04& arg_04,
59361 const t_ARG_05& arg_05,
59362 const t_ARG_06& arg_06,
59363 const t_ARG_07& arg_07);
59364
59365 template <size_t t_INDEX,
59366 class t_ARG_01,
59367 class t_ARG_02,
59368 class t_ARG_03,
59369 class t_ARG_04,
59370 class t_ARG_05,
59371 class t_ARG_06,
59372 class t_ARG_07,
59373 class t_ARG_08>
59374 explicit variant(bsl::allocator_arg_t,
59375 allocator_type allocator,
59377 const t_ARG_01& arg_01,
59378 const t_ARG_02& arg_02,
59379 const t_ARG_03& arg_03,
59380 const t_ARG_04& arg_04,
59381 const t_ARG_05& arg_05,
59382 const t_ARG_06& arg_06,
59383 const t_ARG_07& arg_07,
59384 const t_ARG_08& arg_08);
59385
59386 template <size_t t_INDEX,
59387 class t_ARG_01,
59388 class t_ARG_02,
59389 class t_ARG_03,
59390 class t_ARG_04,
59391 class t_ARG_05,
59392 class t_ARG_06,
59393 class t_ARG_07,
59394 class t_ARG_08,
59395 class t_ARG_09>
59396 explicit variant(bsl::allocator_arg_t,
59397 allocator_type allocator,
59399 const t_ARG_01& arg_01,
59400 const t_ARG_02& arg_02,
59401 const t_ARG_03& arg_03,
59402 const t_ARG_04& arg_04,
59403 const t_ARG_05& arg_05,
59404 const t_ARG_06& arg_06,
59405 const t_ARG_07& arg_07,
59406 const t_ARG_08& arg_08,
59407 const t_ARG_09& arg_09);
59408
59409 template <size_t t_INDEX,
59410 class t_ARG_01,
59411 class t_ARG_02,
59412 class t_ARG_03,
59413 class t_ARG_04,
59414 class t_ARG_05,
59415 class t_ARG_06,
59416 class t_ARG_07,
59417 class t_ARG_08,
59418 class t_ARG_09,
59419 class t_ARG_10>
59420 explicit variant(bsl::allocator_arg_t,
59421 allocator_type allocator,
59423 const t_ARG_01& arg_01,
59424 const t_ARG_02& arg_02,
59425 const t_ARG_03& arg_03,
59426 const t_ARG_04& arg_04,
59427 const t_ARG_05& arg_05,
59428 const t_ARG_06& arg_06,
59429 const t_ARG_07& arg_07,
59430 const t_ARG_08& arg_08,
59431 const t_ARG_09& arg_09,
59432 const t_ARG_10& arg_10);
59433
59434#endif
59435
59436
59437#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
59438 template <class t_TYPE,
59439 class t_ARGS_01,
59440 class t_ARGS_02,
59441 class t_ARGS_03,
59442 class t_ARGS_04,
59443 class t_ARGS_05,
59444 class t_ARGS_06,
59445 class t_ARGS_07,
59446 class t_ARGS_08,
59447 class t_ARGS_09,
59448 class t_ARGS_10,
59449 class t_ARGS_11,
59450 class t_ARGS_12,
59451 class = typename bsl::enable_if_t<
59453 std::is_constructible<t_TYPE, t_ARGS_01,
59454 t_ARGS_02,
59455 t_ARGS_03,
59456 t_ARGS_04,
59457 t_ARGS_05,
59458 t_ARGS_06,
59459 t_ARGS_07,
59460 t_ARGS_08,
59461 t_ARGS_09,
59462 t_ARGS_10,
59463 t_ARGS_11,
59464 t_ARGS_12>::value> >
59465 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
59466 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
59467 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
59468 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
59469 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
59470 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
59471 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
59472 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
59473 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
59474 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
59475 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
59476 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
59477 {
59478 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
59479 Variant_Base::template baseEmplace<index>(
59480 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
59481 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
59482 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
59483 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
59484 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
59485 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
59486 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
59487 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
59488 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
59489 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
59490 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
59491 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12));
59492
59493 return bsl::get<index>(*this);
59494 }
59495
59496 template <class t_TYPE,
59497 class INIT_LIST_TYPE,
59498 class t_ARGS_01,
59499 class t_ARGS_02,
59500 class t_ARGS_03,
59501 class t_ARGS_04,
59502 class t_ARGS_05,
59503 class t_ARGS_06,
59504 class t_ARGS_07,
59505 class t_ARGS_08,
59506 class t_ARGS_09,
59507 class t_ARGS_10,
59508 class t_ARGS_11,
59509 class t_ARGS_12,
59510 class = typename bsl::enable_if_t<
59512 std::is_constructible<t_TYPE,
59513 std::initializer_list<INIT_LIST_TYPE>&,
59514 t_ARGS_01,
59515 t_ARGS_02,
59516 t_ARGS_03,
59517 t_ARGS_04,
59518 t_ARGS_05,
59519 t_ARGS_06,
59520 t_ARGS_07,
59521 t_ARGS_08,
59522 t_ARGS_09,
59523 t_ARGS_10,
59524 t_ARGS_11,
59525 t_ARGS_12>::value> >
59526 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
59527 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
59528 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
59529 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
59530 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
59531 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
59532 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
59533 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
59534 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
59535 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
59536 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
59537 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
59538 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
59539 {
59540 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
59541 Variant_Base::template baseEmplace<index>(
59542 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
59543 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
59544 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
59545 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
59546 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
59547 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
59548 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
59549 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
59550 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
59551 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
59552 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
59553 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12));
59554
59555 return bsl::get<index>(*this);
59556 }
59557
59558 template <size_t t_INDEX,
59559 class t_ARGS_01,
59560 class t_ARGS_02,
59561 class t_ARGS_03,
59562 class t_ARGS_04,
59563 class t_ARGS_05,
59564 class t_ARGS_06,
59565 class t_ARGS_07,
59566 class t_ARGS_08,
59567 class t_ARGS_09,
59568 class t_ARGS_10,
59569 class t_ARGS_11,
59570 class t_ARGS_12,
59571 class = typename bsl::enable_if_t<
59572 (t_INDEX < 1 + 12u) &&
59573 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
59574 t_ARGS_01,
59575 t_ARGS_02,
59576 t_ARGS_03,
59577 t_ARGS_04,
59578 t_ARGS_05,
59579 t_ARGS_06,
59580 t_ARGS_07,
59581 t_ARGS_08,
59582 t_ARGS_09,
59583 t_ARGS_10,
59584 t_ARGS_11,
59585 t_ARGS_12>::value> >
59586 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59587 t_TAIL_02,
59588 t_TAIL_03,
59589 t_TAIL_04,
59590 t_TAIL_05,
59591 t_TAIL_06,
59592 t_TAIL_07,
59593 t_TAIL_08,
59594 t_TAIL_09,
59595 t_TAIL_10,
59596 t_TAIL_11,
59597 t_TAIL_12> >::type&
59598 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
59599 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
59600 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
59601 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
59602 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
59603 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
59604 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
59605 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
59606 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
59607 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
59608 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
59609 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
59610 {
59611 Variant_Base::template baseEmplace<t_INDEX>(
59612 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
59613 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
59614 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
59615 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
59616 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
59617 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
59618 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
59619 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
59620 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
59621 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
59622 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
59623 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12));
59624
59625 return bsl::get<t_INDEX>(*this);
59626 }
59627
59628 template <size_t t_INDEX,
59629 class INIT_LIST_TYPE,
59630 class t_ARGS_01,
59631 class t_ARGS_02,
59632 class t_ARGS_03,
59633 class t_ARGS_04,
59634 class t_ARGS_05,
59635 class t_ARGS_06,
59636 class t_ARGS_07,
59637 class t_ARGS_08,
59638 class t_ARGS_09,
59639 class t_ARGS_10,
59640 class t_ARGS_11,
59641 class t_ARGS_12,
59642 class = typename bsl::enable_if_t<
59643 (t_INDEX < 1 + 12u) &&
59644 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
59645 std::initializer_list<INIT_LIST_TYPE>&,
59646 t_ARGS_01,
59647 t_ARGS_02,
59648 t_ARGS_03,
59649 t_ARGS_04,
59650 t_ARGS_05,
59651 t_ARGS_06,
59652 t_ARGS_07,
59653 t_ARGS_08,
59654 t_ARGS_09,
59655 t_ARGS_10,
59656 t_ARGS_11,
59657 t_ARGS_12>::value> >
59658 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59659 t_TAIL_02,
59660 t_TAIL_03,
59661 t_TAIL_04,
59662 t_TAIL_05,
59663 t_TAIL_06,
59664 t_TAIL_07,
59665 t_TAIL_08,
59666 t_TAIL_09,
59667 t_TAIL_10,
59668 t_TAIL_11,
59669 t_TAIL_12> >::type&
59670 emplace(std::initializer_list<INIT_LIST_TYPE> il,
59671 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
59672 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
59673 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
59674 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
59675 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
59676 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
59677 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
59678 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
59679 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
59680 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
59681 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
59682 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12)
59683 {
59684 Variant_Base::template baseEmplace<t_INDEX>(
59685 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
59686 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
59687 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
59688 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
59689 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
59690 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
59691 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
59692 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
59693 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
59694 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
59695 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
59696 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12));
59697
59698 return bsl::get<t_INDEX>(*this);
59699 }
59700
59701#else
59702
59703 template <class t_TYPE>
59704 typename bsl::enable_if<
59705 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59706 t_TYPE&>::type
59707 emplace();
59708
59709 template <class t_TYPE, class t_ARG_01>
59710 typename bsl::enable_if<
59711 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59712 t_TYPE&>::type
59713 emplace(const t_ARG_01& arg_01);
59714
59715 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
59716 typename bsl::enable_if<
59717 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59718 t_TYPE&>::type
59719 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
59720
59721 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
59722 typename bsl::enable_if<
59723 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59724 t_TYPE&>::type
59725 emplace(const t_ARG_01& arg_01,
59726 const t_ARG_02& arg_02,
59727 const t_ARG_03& arg_03);
59728
59729 template <class t_TYPE,
59730 class t_ARG_01,
59731 class t_ARG_02,
59732 class t_ARG_03,
59733 class t_ARG_04>
59734 typename bsl::enable_if<
59735 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59736 t_TYPE&>::type
59737 emplace(const t_ARG_01& arg_01,
59738 const t_ARG_02& arg_02,
59739 const t_ARG_03& arg_03,
59740 const t_ARG_04& arg_04);
59741
59742 template <class t_TYPE,
59743 class t_ARG_01,
59744 class t_ARG_02,
59745 class t_ARG_03,
59746 class t_ARG_04,
59747 class t_ARG_05>
59748 typename bsl::enable_if<
59749 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59750 t_TYPE&>::type
59751 emplace(const t_ARG_01& arg_01,
59752 const t_ARG_02& arg_02,
59753 const t_ARG_03& arg_03,
59754 const t_ARG_04& arg_04,
59755 const t_ARG_05& arg_05);
59756
59757 template <class t_TYPE,
59758 class t_ARG_01,
59759 class t_ARG_02,
59760 class t_ARG_03,
59761 class t_ARG_04,
59762 class t_ARG_05,
59763 class t_ARG_06>
59764 typename bsl::enable_if<
59765 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59766 t_TYPE&>::type
59767 emplace(const t_ARG_01& arg_01,
59768 const t_ARG_02& arg_02,
59769 const t_ARG_03& arg_03,
59770 const t_ARG_04& arg_04,
59771 const t_ARG_05& arg_05,
59772 const t_ARG_06& arg_06);
59773
59774 template <class t_TYPE,
59775 class t_ARG_01,
59776 class t_ARG_02,
59777 class t_ARG_03,
59778 class t_ARG_04,
59779 class t_ARG_05,
59780 class t_ARG_06,
59781 class t_ARG_07>
59782 typename bsl::enable_if<
59783 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59784 t_TYPE&>::type
59785 emplace(const t_ARG_01& arg_01,
59786 const t_ARG_02& arg_02,
59787 const t_ARG_03& arg_03,
59788 const t_ARG_04& arg_04,
59789 const t_ARG_05& arg_05,
59790 const t_ARG_06& arg_06,
59791 const t_ARG_07& arg_07);
59792
59793 template <class t_TYPE,
59794 class t_ARG_01,
59795 class t_ARG_02,
59796 class t_ARG_03,
59797 class t_ARG_04,
59798 class t_ARG_05,
59799 class t_ARG_06,
59800 class t_ARG_07,
59801 class t_ARG_08>
59802 typename bsl::enable_if<
59803 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59804 t_TYPE&>::type
59805 emplace(const t_ARG_01& arg_01,
59806 const t_ARG_02& arg_02,
59807 const t_ARG_03& arg_03,
59808 const t_ARG_04& arg_04,
59809 const t_ARG_05& arg_05,
59810 const t_ARG_06& arg_06,
59811 const t_ARG_07& arg_07,
59812 const t_ARG_08& arg_08);
59813
59814 template <class t_TYPE,
59815 class t_ARG_01,
59816 class t_ARG_02,
59817 class t_ARG_03,
59818 class t_ARG_04,
59819 class t_ARG_05,
59820 class t_ARG_06,
59821 class t_ARG_07,
59822 class t_ARG_08,
59823 class t_ARG_09>
59824 typename bsl::enable_if<
59825 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59826 t_TYPE&>::type
59827 emplace(const t_ARG_01& arg_01,
59828 const t_ARG_02& arg_02,
59829 const t_ARG_03& arg_03,
59830 const t_ARG_04& arg_04,
59831 const t_ARG_05& arg_05,
59832 const t_ARG_06& arg_06,
59833 const t_ARG_07& arg_07,
59834 const t_ARG_08& arg_08,
59835 const t_ARG_09& arg_09);
59836
59837 template <class t_TYPE,
59838 class t_ARG_01,
59839 class t_ARG_02,
59840 class t_ARG_03,
59841 class t_ARG_04,
59842 class t_ARG_05,
59843 class t_ARG_06,
59844 class t_ARG_07,
59845 class t_ARG_08,
59846 class t_ARG_09,
59847 class t_ARG_10>
59848 typename bsl::enable_if<
59849 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
59850 t_TYPE&>::type
59851 emplace(const t_ARG_01& arg_01,
59852 const t_ARG_02& arg_02,
59853 const t_ARG_03& arg_03,
59854 const t_ARG_04& arg_04,
59855 const t_ARG_05& arg_05,
59856 const t_ARG_06& arg_06,
59857 const t_ARG_07& arg_07,
59858 const t_ARG_08& arg_08,
59859 const t_ARG_09& arg_09,
59860 const t_ARG_10& arg_10);
59861
59862 template <size_t t_INDEX>
59863 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59864 t_TAIL_02,
59865 t_TAIL_03,
59866 t_TAIL_04,
59867 t_TAIL_05,
59868 t_TAIL_06,
59869 t_TAIL_07,
59870 t_TAIL_08,
59871 t_TAIL_09,
59872 t_TAIL_10,
59873 t_TAIL_11,
59874 t_TAIL_12> >::type&
59875 emplace();
59876
59877 template <size_t t_INDEX, class t_ARG_01>
59878 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59879 t_TAIL_02,
59880 t_TAIL_03,
59881 t_TAIL_04,
59882 t_TAIL_05,
59883 t_TAIL_06,
59884 t_TAIL_07,
59885 t_TAIL_08,
59886 t_TAIL_09,
59887 t_TAIL_10,
59888 t_TAIL_11,
59889 t_TAIL_12> >::type&
59890 emplace(const t_ARG_01& arg_01);
59891
59892 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
59893 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59894 t_TAIL_02,
59895 t_TAIL_03,
59896 t_TAIL_04,
59897 t_TAIL_05,
59898 t_TAIL_06,
59899 t_TAIL_07,
59900 t_TAIL_08,
59901 t_TAIL_09,
59902 t_TAIL_10,
59903 t_TAIL_11,
59904 t_TAIL_12> >::type&
59905 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
59906
59907 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
59908 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59909 t_TAIL_02,
59910 t_TAIL_03,
59911 t_TAIL_04,
59912 t_TAIL_05,
59913 t_TAIL_06,
59914 t_TAIL_07,
59915 t_TAIL_08,
59916 t_TAIL_09,
59917 t_TAIL_10,
59918 t_TAIL_11,
59919 t_TAIL_12> >::type&
59920 emplace(const t_ARG_01& arg_01,
59921 const t_ARG_02& arg_02,
59922 const t_ARG_03& arg_03);
59923
59924 template <size_t t_INDEX,
59925 class t_ARG_01,
59926 class t_ARG_02,
59927 class t_ARG_03,
59928 class t_ARG_04>
59929 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59930 t_TAIL_02,
59931 t_TAIL_03,
59932 t_TAIL_04,
59933 t_TAIL_05,
59934 t_TAIL_06,
59935 t_TAIL_07,
59936 t_TAIL_08,
59937 t_TAIL_09,
59938 t_TAIL_10,
59939 t_TAIL_11,
59940 t_TAIL_12> >::type&
59941 emplace(const t_ARG_01& arg_01,
59942 const t_ARG_02& arg_02,
59943 const t_ARG_03& arg_03,
59944 const t_ARG_04& arg_04);
59945
59946 template <size_t t_INDEX,
59947 class t_ARG_01,
59948 class t_ARG_02,
59949 class t_ARG_03,
59950 class t_ARG_04,
59951 class t_ARG_05>
59952 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59953 t_TAIL_02,
59954 t_TAIL_03,
59955 t_TAIL_04,
59956 t_TAIL_05,
59957 t_TAIL_06,
59958 t_TAIL_07,
59959 t_TAIL_08,
59960 t_TAIL_09,
59961 t_TAIL_10,
59962 t_TAIL_11,
59963 t_TAIL_12> >::type&
59964 emplace(const t_ARG_01& arg_01,
59965 const t_ARG_02& arg_02,
59966 const t_ARG_03& arg_03,
59967 const t_ARG_04& arg_04,
59968 const t_ARG_05& arg_05);
59969
59970 template <size_t t_INDEX,
59971 class t_ARG_01,
59972 class t_ARG_02,
59973 class t_ARG_03,
59974 class t_ARG_04,
59975 class t_ARG_05,
59976 class t_ARG_06>
59977 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
59978 t_TAIL_02,
59979 t_TAIL_03,
59980 t_TAIL_04,
59981 t_TAIL_05,
59982 t_TAIL_06,
59983 t_TAIL_07,
59984 t_TAIL_08,
59985 t_TAIL_09,
59986 t_TAIL_10,
59987 t_TAIL_11,
59988 t_TAIL_12> >::type&
59989 emplace(const t_ARG_01& arg_01,
59990 const t_ARG_02& arg_02,
59991 const t_ARG_03& arg_03,
59992 const t_ARG_04& arg_04,
59993 const t_ARG_05& arg_05,
59994 const t_ARG_06& arg_06);
59995
59996 template <size_t t_INDEX,
59997 class t_ARG_01,
59998 class t_ARG_02,
59999 class t_ARG_03,
60000 class t_ARG_04,
60001 class t_ARG_05,
60002 class t_ARG_06,
60003 class t_ARG_07>
60004 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
60005 t_TAIL_02,
60006 t_TAIL_03,
60007 t_TAIL_04,
60008 t_TAIL_05,
60009 t_TAIL_06,
60010 t_TAIL_07,
60011 t_TAIL_08,
60012 t_TAIL_09,
60013 t_TAIL_10,
60014 t_TAIL_11,
60015 t_TAIL_12> >::type&
60016 emplace(const t_ARG_01& arg_01,
60017 const t_ARG_02& arg_02,
60018 const t_ARG_03& arg_03,
60019 const t_ARG_04& arg_04,
60020 const t_ARG_05& arg_05,
60021 const t_ARG_06& arg_06,
60022 const t_ARG_07& arg_07);
60023
60024 template <size_t t_INDEX,
60025 class t_ARG_01,
60026 class t_ARG_02,
60027 class t_ARG_03,
60028 class t_ARG_04,
60029 class t_ARG_05,
60030 class t_ARG_06,
60031 class t_ARG_07,
60032 class t_ARG_08>
60033 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
60034 t_TAIL_02,
60035 t_TAIL_03,
60036 t_TAIL_04,
60037 t_TAIL_05,
60038 t_TAIL_06,
60039 t_TAIL_07,
60040 t_TAIL_08,
60041 t_TAIL_09,
60042 t_TAIL_10,
60043 t_TAIL_11,
60044 t_TAIL_12> >::type&
60045 emplace(const t_ARG_01& arg_01,
60046 const t_ARG_02& arg_02,
60047 const t_ARG_03& arg_03,
60048 const t_ARG_04& arg_04,
60049 const t_ARG_05& arg_05,
60050 const t_ARG_06& arg_06,
60051 const t_ARG_07& arg_07,
60052 const t_ARG_08& arg_08);
60053
60054 template <size_t t_INDEX,
60055 class t_ARG_01,
60056 class t_ARG_02,
60057 class t_ARG_03,
60058 class t_ARG_04,
60059 class t_ARG_05,
60060 class t_ARG_06,
60061 class t_ARG_07,
60062 class t_ARG_08,
60063 class t_ARG_09>
60064 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
60065 t_TAIL_02,
60066 t_TAIL_03,
60067 t_TAIL_04,
60068 t_TAIL_05,
60069 t_TAIL_06,
60070 t_TAIL_07,
60071 t_TAIL_08,
60072 t_TAIL_09,
60073 t_TAIL_10,
60074 t_TAIL_11,
60075 t_TAIL_12> >::type&
60076 emplace(const t_ARG_01& arg_01,
60077 const t_ARG_02& arg_02,
60078 const t_ARG_03& arg_03,
60079 const t_ARG_04& arg_04,
60080 const t_ARG_05& arg_05,
60081 const t_ARG_06& arg_06,
60082 const t_ARG_07& arg_07,
60083 const t_ARG_08& arg_08,
60084 const t_ARG_09& arg_09);
60085
60086 template <size_t t_INDEX,
60087 class t_ARG_01,
60088 class t_ARG_02,
60089 class t_ARG_03,
60090 class t_ARG_04,
60091 class t_ARG_05,
60092 class t_ARG_06,
60093 class t_ARG_07,
60094 class t_ARG_08,
60095 class t_ARG_09,
60096 class t_ARG_10>
60097 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
60098 t_TAIL_02,
60099 t_TAIL_03,
60100 t_TAIL_04,
60101 t_TAIL_05,
60102 t_TAIL_06,
60103 t_TAIL_07,
60104 t_TAIL_08,
60105 t_TAIL_09,
60106 t_TAIL_10,
60107 t_TAIL_11,
60108 t_TAIL_12> >::type&
60109 emplace(const t_ARG_01& arg_01,
60110 const t_ARG_02& arg_02,
60111 const t_ARG_03& arg_03,
60112 const t_ARG_04& arg_04,
60113 const t_ARG_05& arg_05,
60114 const t_ARG_06& arg_06,
60115 const t_ARG_07& arg_07,
60116 const t_ARG_08& arg_08,
60117 const t_ARG_09& arg_09,
60118 const t_ARG_10& arg_10);
60119#endif
60120
60121#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
60122 variant& operator=(const variant& rhs) = default;
60123
60124 variant& operator=(variant&& rhs) = default;
60125
60126 template <class t_TYPE>
60127 typename bsl::enable_if<
60128 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
60129 variant&>::type
60130 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
60131 {
60132 const size_t altIndex =
60133 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
60134
60135 if (index() == altIndex) {
60136 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
60137 value);
60138 }
60139 else {
60140 Variant_Base::template baseEmplace<altIndex>(
60141 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
60142 }
60143
60144 return *this;
60145 }
60146#else
60147 variant& operator=(const variant& rhs);
60148
60149 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
60150
60151 template <class t_TYPE>
60152 typename bsl::enable_if<
60153 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
60154 variant&>::type
60155 operator=(const t_TYPE& value);
60156
60157#endif
60158
60159 void swap(variant& other);
60160
60161#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
60162 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
60163 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
60164 t_TAIL_02,
60165 t_TAIL_03,
60166 t_TAIL_04,
60167 t_TAIL_05,
60168 t_TAIL_06,
60169 t_TAIL_07,
60170 t_TAIL_08,
60171 t_TAIL_09,
60172 t_TAIL_10,
60173 t_TAIL_11,
60174 t_TAIL_12>::value,
60175 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
60176#endif
60177 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
60178 {
60179 return allocator_type(Variant_Base::AllocBase::mechanism());
60180 }
60181
60182
60183 size_t index() const BSLS_KEYWORD_NOEXCEPT;
60184
60185 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
60186};
60187#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 12
60188
60189#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 13
60190template <class t_HEAD, class t_TAIL_01,
60191 class t_TAIL_02,
60192 class t_TAIL_03,
60193 class t_TAIL_04,
60194 class t_TAIL_05,
60195 class t_TAIL_06,
60196 class t_TAIL_07,
60197 class t_TAIL_08,
60198 class t_TAIL_09,
60199 class t_TAIL_10,
60200 class t_TAIL_11,
60201 class t_TAIL_12,
60202 class t_TAIL_13>
60203class variant<t_HEAD, t_TAIL_01,
60204 t_TAIL_02,
60205 t_TAIL_03,
60206 t_TAIL_04,
60207 t_TAIL_05,
60208 t_TAIL_06,
60209 t_TAIL_07,
60210 t_TAIL_08,
60211 t_TAIL_09,
60212 t_TAIL_10,
60213 t_TAIL_11,
60214 t_TAIL_12,
60215 t_TAIL_13>
60216: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
60217 t_TAIL_02,
60218 t_TAIL_03,
60219 t_TAIL_04,
60220 t_TAIL_05,
60221 t_TAIL_06,
60222 t_TAIL_07,
60223 t_TAIL_08,
60224 t_TAIL_09,
60225 t_TAIL_10,
60226 t_TAIL_11,
60227 t_TAIL_12,
60228 t_TAIL_13>
60229#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
60230,
60231 private BloombergLP::bslstl::Variant_SMFBase<
60232 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
60233 t_TAIL_01,
60234 t_TAIL_02,
60235 t_TAIL_03,
60236 t_TAIL_04,
60237 t_TAIL_05,
60238 t_TAIL_06,
60239 t_TAIL_07,
60240 t_TAIL_08,
60241 t_TAIL_09,
60242 t_TAIL_10,
60243 t_TAIL_11,
60244 t_TAIL_12,
60245 t_TAIL_13>::value,
60246 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
60247 t_TAIL_01,
60248 t_TAIL_02,
60249 t_TAIL_03,
60250 t_TAIL_04,
60251 t_TAIL_05,
60252 t_TAIL_06,
60253 t_TAIL_07,
60254 t_TAIL_08,
60255 t_TAIL_09,
60256 t_TAIL_10,
60257 t_TAIL_11,
60258 t_TAIL_12,
60259 t_TAIL_13>::value,
60260 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
60261 t_TAIL_01,
60262 t_TAIL_02,
60263 t_TAIL_03,
60264 t_TAIL_04,
60265 t_TAIL_05,
60266 t_TAIL_06,
60267 t_TAIL_07,
60268 t_TAIL_08,
60269 t_TAIL_09,
60270 t_TAIL_10,
60271 t_TAIL_11,
60272 t_TAIL_12,
60273 t_TAIL_13>::value &&
60274 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
60275 t_TAIL_01,
60276 t_TAIL_02,
60277 t_TAIL_03,
60278 t_TAIL_04,
60279 t_TAIL_05,
60280 t_TAIL_06,
60281 t_TAIL_07,
60282 t_TAIL_08,
60283 t_TAIL_09,
60284 t_TAIL_10,
60285 t_TAIL_11,
60286 t_TAIL_12,
60287 t_TAIL_13>::value,
60288 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
60289 t_TAIL_01,
60290 t_TAIL_02,
60291 t_TAIL_03,
60292 t_TAIL_04,
60293 t_TAIL_05,
60294 t_TAIL_06,
60295 t_TAIL_07,
60296 t_TAIL_08,
60297 t_TAIL_09,
60298 t_TAIL_10,
60299 t_TAIL_11,
60300 t_TAIL_12,
60301 t_TAIL_13>::value &&
60302 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
60303 t_TAIL_01,
60304 t_TAIL_02,
60305 t_TAIL_03,
60306 t_TAIL_04,
60307 t_TAIL_05,
60308 t_TAIL_06,
60309 t_TAIL_07,
60310 t_TAIL_08,
60311 t_TAIL_09,
60312 t_TAIL_10,
60313 t_TAIL_11,
60314 t_TAIL_12,
60315 t_TAIL_13>::value>
60316#endif
60317{
60318 private:
60319 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
60320 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
60321 t_TAIL_02,
60322 t_TAIL_03,
60323 t_TAIL_04,
60324 t_TAIL_05,
60325 t_TAIL_06,
60326 t_TAIL_07,
60327 t_TAIL_08,
60328 t_TAIL_09,
60329 t_TAIL_10,
60330 t_TAIL_11,
60331 t_TAIL_12,
60332 t_TAIL_13> Variant_Base;
60333 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
60334 t_TAIL_02,
60335 t_TAIL_03,
60336 t_TAIL_04,
60337 t_TAIL_05,
60338 t_TAIL_06,
60339 t_TAIL_07,
60340 t_TAIL_08,
60341 t_TAIL_09,
60342 t_TAIL_10,
60343 t_TAIL_11,
60344 t_TAIL_12,
60345 t_TAIL_13>
60346 Variant_Union;
60347
60348 friend struct BloombergLP::bslstl::Variant_ImpUtil;
60349
60350 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
60351 t_TAIL_02,
60352 t_TAIL_03,
60353 t_TAIL_04,
60354 t_TAIL_05,
60355 t_TAIL_06,
60356 t_TAIL_07,
60357 t_TAIL_08,
60358 t_TAIL_09,
60359 t_TAIL_10,
60360 t_TAIL_11,
60361 t_TAIL_12,
60362 t_TAIL_13>;
60363
60364 public:
60366 variant,
60367 BloombergLP::bslma::UsesBslmaAllocator,
60368 (BloombergLP::bslstl::
60369 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
60370 t_TAIL_02,
60371 t_TAIL_03,
60372 t_TAIL_04,
60373 t_TAIL_05,
60374 t_TAIL_06,
60375 t_TAIL_07,
60376 t_TAIL_08,
60377 t_TAIL_09,
60378 t_TAIL_10,
60379 t_TAIL_11,
60380 t_TAIL_12,
60381 t_TAIL_13>::value));
60383 variant,
60384 BloombergLP::bslmf::UsesAllocatorArgT,
60385 (BloombergLP::bslstl::
60386 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
60387 t_TAIL_02,
60388 t_TAIL_03,
60389 t_TAIL_04,
60390 t_TAIL_05,
60391 t_TAIL_06,
60392 t_TAIL_07,
60393 t_TAIL_08,
60394 t_TAIL_09,
60395 t_TAIL_10,
60396 t_TAIL_11,
60397 t_TAIL_12,
60398 t_TAIL_13>::value));
60400 variant,
60401 BloombergLP::bslmf::IsBitwiseMoveable,
60402 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
60403 t_TAIL_01,
60404 t_TAIL_02,
60405 t_TAIL_03,
60406 t_TAIL_04,
60407 t_TAIL_05,
60408 t_TAIL_06,
60409 t_TAIL_07,
60410 t_TAIL_08,
60411 t_TAIL_09,
60412 t_TAIL_10,
60413 t_TAIL_11,
60414 t_TAIL_12,
60415 t_TAIL_13>::value));
60416
60417
60418 typedef typename Variant_Base::allocator_type allocator_type;
60419
60420
60421#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
60422 template <class t_FIRST_ALT = t_HEAD,
60423 class = typename bsl::enable_if_t<
60424 std::is_default_constructible<t_FIRST_ALT>::value> >
60425 variant()
60426 : Variant_Base()
60427 {
60428 }
60429
60430 variant(const variant& original) = default;
60431
60432 variant(variant&& original) = default;
60433
60434#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
60435 template <class t_STD_VARIANT>
60436 explicit variant(
60437 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
60439 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
60440 original.index())
60441 {
60442 if (!valueless_by_exception()) {
60443 BloombergLP::bslstl::Variant_ImpUtil::
60444 ConstructFromStdVisitor<variant, decltype(original)>
60445 visitor(*this, original);
60446 BSLSTL_VARIANT_VISITID(void, visitor, *this);
60447 }
60448 }
60449#endif
60450
60451 template <class t_TYPE>
60452 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
60454
60455 template <class t_TYPE,
60456 class t_ARGS_01,
60457 class t_ARGS_02,
60458 class t_ARGS_03,
60459 class t_ARGS_04,
60460 class t_ARGS_05,
60461 class t_ARGS_06,
60462 class t_ARGS_07,
60463 class t_ARGS_08,
60464 class t_ARGS_09,
60465 class t_ARGS_10,
60466 class t_ARGS_11,
60467 class t_ARGS_12,
60468 class t_ARGS_13,
60469 class = typename bsl::enable_if_t<
60471 std::is_constructible<t_TYPE, t_ARGS_01,
60472 t_ARGS_02,
60473 t_ARGS_03,
60474 t_ARGS_04,
60475 t_ARGS_05,
60476 t_ARGS_06,
60477 t_ARGS_07,
60478 t_ARGS_08,
60479 t_ARGS_09,
60480 t_ARGS_10,
60481 t_ARGS_11,
60482 t_ARGS_12,
60483 t_ARGS_13>::value> >
60484 explicit variant(bsl::in_place_type_t<t_TYPE>,
60485 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
60486 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
60487 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
60488 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
60489 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
60490 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
60491 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
60492 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
60493 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
60494 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
60495 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
60496 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
60497 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
60498 : Variant_Base(
60499 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
60500 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
60501 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
60502 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
60503 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
60504 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
60505 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
60506 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
60507 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
60508 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
60509 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
60510 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
60511 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
60512 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13))
60513 {
60514 }
60515
60516 template <class t_TYPE,
60517 class INIT_LIST_TYPE,
60518 class t_ARGS_01,
60519 class t_ARGS_02,
60520 class t_ARGS_03,
60521 class t_ARGS_04,
60522 class t_ARGS_05,
60523 class t_ARGS_06,
60524 class t_ARGS_07,
60525 class t_ARGS_08,
60526 class t_ARGS_09,
60527 class t_ARGS_10,
60528 class t_ARGS_11,
60529 class t_ARGS_12,
60530 class t_ARGS_13,
60531 class = typename bsl::enable_if_t<
60533 std::is_constructible<t_TYPE,
60534 std::initializer_list<INIT_LIST_TYPE>&,
60535 t_ARGS_01,
60536 t_ARGS_02,
60537 t_ARGS_03,
60538 t_ARGS_04,
60539 t_ARGS_05,
60540 t_ARGS_06,
60541 t_ARGS_07,
60542 t_ARGS_08,
60543 t_ARGS_09,
60544 t_ARGS_10,
60545 t_ARGS_11,
60546 t_ARGS_12,
60547 t_ARGS_13>::value> >
60548 explicit variant(bsl::in_place_type_t<t_TYPE>,
60549 std::initializer_list<INIT_LIST_TYPE> il,
60550 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
60551 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
60552 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
60553 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
60554 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
60555 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
60556 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
60557 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
60558 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
60559 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
60560 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
60561 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
60562 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
60563 : Variant_Base(
60564 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
60565 il,
60566 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
60567 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
60568 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
60569 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
60570 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
60571 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
60572 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
60573 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
60574 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
60575 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
60576 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
60577 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
60578 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13))
60579 {
60580 }
60581
60582 template <size_t t_INDEX,
60583 class t_ARGS_01,
60584 class t_ARGS_02,
60585 class t_ARGS_03,
60586 class t_ARGS_04,
60587 class t_ARGS_05,
60588 class t_ARGS_06,
60589 class t_ARGS_07,
60590 class t_ARGS_08,
60591 class t_ARGS_09,
60592 class t_ARGS_10,
60593 class t_ARGS_11,
60594 class t_ARGS_12,
60595 class t_ARGS_13,
60596 class = typename bsl::enable_if_t<
60597 (t_INDEX < 1 + 13u) &&
60598 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
60599 t_ARGS_01,
60600 t_ARGS_02,
60601 t_ARGS_03,
60602 t_ARGS_04,
60603 t_ARGS_05,
60604 t_ARGS_06,
60605 t_ARGS_07,
60606 t_ARGS_08,
60607 t_ARGS_09,
60608 t_ARGS_10,
60609 t_ARGS_11,
60610 t_ARGS_12,
60611 t_ARGS_13>::value> >
60612 explicit variant(bsl::in_place_index_t<t_INDEX>,
60613 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
60614 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
60615 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
60616 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
60617 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
60618 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
60619 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
60620 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
60621 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
60622 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
60623 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
60624 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
60625 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
60626 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
60627 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
60628 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
60629 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
60630 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
60631 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
60632 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
60633 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
60634 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
60635 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
60636 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
60637 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
60638 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
60639 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13))
60640 {
60641 }
60642
60643 template <size_t t_INDEX,
60644 class INIT_LIST_TYPE,
60645 class t_ARGS_01,
60646 class t_ARGS_02,
60647 class t_ARGS_03,
60648 class t_ARGS_04,
60649 class t_ARGS_05,
60650 class t_ARGS_06,
60651 class t_ARGS_07,
60652 class t_ARGS_08,
60653 class t_ARGS_09,
60654 class t_ARGS_10,
60655 class t_ARGS_11,
60656 class t_ARGS_12,
60657 class t_ARGS_13,
60658 class = typename bsl::enable_if_t<
60659 (t_INDEX < 1 + 13u) &&
60660 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
60661 std::initializer_list<INIT_LIST_TYPE>&,
60662 t_ARGS_01,
60663 t_ARGS_02,
60664 t_ARGS_03,
60665 t_ARGS_04,
60666 t_ARGS_05,
60667 t_ARGS_06,
60668 t_ARGS_07,
60669 t_ARGS_08,
60670 t_ARGS_09,
60671 t_ARGS_10,
60672 t_ARGS_11,
60673 t_ARGS_12,
60674 t_ARGS_13>::value> >
60675 explicit variant(bsl::in_place_index_t<t_INDEX>,
60676 std::initializer_list<INIT_LIST_TYPE> il,
60677 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
60678 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
60679 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
60680 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
60681 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
60682 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
60683 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
60684 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
60685 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
60686 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
60687 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
60688 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
60689 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
60690 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
60691 il,
60692 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
60693 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
60694 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
60695 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
60696 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
60697 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
60698 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
60699 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
60700 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
60701 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
60702 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
60703 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
60704 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13))
60705 {
60706 }
60707
60708 template <class FIRST = t_HEAD,
60709 class = typename bsl::enable_if_t<
60710 std::is_default_constructible<FIRST>::value> >
60711 variant(bsl::allocator_arg_t, allocator_type allocator)
60712 : Variant_Base(bsl::allocator_arg_t(), allocator)
60713 {
60714 }
60715
60716 template <
60717 class FIRST = t_HEAD,
60718 class = typename bsl::enable_if_t<
60719 BloombergLP::bslstl::
60720 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
60721 t_TAIL_02,
60722 t_TAIL_03,
60723 t_TAIL_04,
60724 t_TAIL_05,
60725 t_TAIL_06,
60726 t_TAIL_07,
60727 t_TAIL_08,
60728 t_TAIL_09,
60729 t_TAIL_10,
60730 t_TAIL_11,
60731 t_TAIL_12,
60732 t_TAIL_13>::value> >
60733 variant(bsl::allocator_arg_t,
60734 allocator_type allocator,
60735 const variant& original)
60736 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
60737 {
60738 }
60739 template <
60740 class FIRST = t_HEAD,
60741 class = typename bsl::enable_if_t<
60742 BloombergLP::bslstl::
60743 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
60744 t_TAIL_02,
60745 t_TAIL_03,
60746 t_TAIL_04,
60747 t_TAIL_05,
60748 t_TAIL_06,
60749 t_TAIL_07,
60750 t_TAIL_08,
60751 t_TAIL_09,
60752 t_TAIL_10,
60753 t_TAIL_11,
60754 t_TAIL_12,
60755 t_TAIL_13>::value> >
60756 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
60757 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
60758 {
60759 }
60760
60761#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
60762 template <class t_STD_VARIANT>
60763 explicit variant(
60764 bsl::allocator_arg_t,
60765 allocator_type allocator,
60766 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
60768 : Variant_Base(bsl::allocator_arg_t(),
60769 allocator,
60770 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
60771 original.index())
60772 {
60773 if (!valueless_by_exception()) {
60774 BloombergLP::bslstl::Variant_ImpUtil::
60775 ConstructFromStdVisitor<variant, decltype(original)>
60776 visitor(*this, original);
60777 BSLSTL_VARIANT_VISITID(void, visitor, *this);
60778 }
60779 }
60780#endif
60781
60782 template <class t_TYPE>
60783 variant(
60784 bsl::allocator_arg_t,
60785 allocator_type allocator,
60788
60789 template <class t_TYPE,
60790 class t_ARGS_01,
60791 class t_ARGS_02,
60792 class t_ARGS_03,
60793 class t_ARGS_04,
60794 class t_ARGS_05,
60795 class t_ARGS_06,
60796 class t_ARGS_07,
60797 class t_ARGS_08,
60798 class t_ARGS_09,
60799 class t_ARGS_10,
60800 class t_ARGS_11,
60801 class t_ARGS_12,
60802 class t_ARGS_13,
60803 class = typename bsl::enable_if_t<
60805 std::is_constructible<t_TYPE, t_ARGS_01,
60806 t_ARGS_02,
60807 t_ARGS_03,
60808 t_ARGS_04,
60809 t_ARGS_05,
60810 t_ARGS_06,
60811 t_ARGS_07,
60812 t_ARGS_08,
60813 t_ARGS_09,
60814 t_ARGS_10,
60815 t_ARGS_11,
60816 t_ARGS_12,
60817 t_ARGS_13>::value> >
60818 explicit variant(bsl::allocator_arg_t,
60819 allocator_type allocator,
60821 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
60822 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
60823 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
60824 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
60825 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
60826 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
60827 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
60828 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
60829 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
60830 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
60831 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
60832 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
60833 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
60834 : Variant_Base(
60835 bsl::allocator_arg_t{}
60836,
60837 allocator,
60838 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
60839 std::forward<t_ARGS_01>(args_01),
60840 std::forward<t_ARGS_02>(args_02),
60841 std::forward<t_ARGS_03>(args_03),
60842 std::forward<t_ARGS_04>(args_04),
60843 std::forward<t_ARGS_05>(args_05),
60844 std::forward<t_ARGS_06>(args_06),
60845 std::forward<t_ARGS_07>(args_07),
60846 std::forward<t_ARGS_08>(args_08),
60847 std::forward<t_ARGS_09>(args_09),
60848 std::forward<t_ARGS_10>(args_10),
60849 std::forward<t_ARGS_11>(args_11),
60850 std::forward<t_ARGS_12>(args_12),
60851 std::forward<t_ARGS_13>(args_13))
60852 {
60853 }
60854
60855 template <class t_TYPE,
60856 class INIT_LIST_TYPE,
60857 class t_ARGS_01,
60858 class t_ARGS_02,
60859 class t_ARGS_03,
60860 class t_ARGS_04,
60861 class t_ARGS_05,
60862 class t_ARGS_06,
60863 class t_ARGS_07,
60864 class t_ARGS_08,
60865 class t_ARGS_09,
60866 class t_ARGS_10,
60867 class t_ARGS_11,
60868 class t_ARGS_12,
60869 class t_ARGS_13,
60870 class = typename bsl::enable_if_t<
60872 std::is_constructible<t_TYPE,
60873 std::initializer_list<INIT_LIST_TYPE>&,
60874 t_ARGS_01,
60875 t_ARGS_02,
60876 t_ARGS_03,
60877 t_ARGS_04,
60878 t_ARGS_05,
60879 t_ARGS_06,
60880 t_ARGS_07,
60881 t_ARGS_08,
60882 t_ARGS_09,
60883 t_ARGS_10,
60884 t_ARGS_11,
60885 t_ARGS_12,
60886 t_ARGS_13>::value> >
60887 explicit variant(bsl::allocator_arg_t,
60888 allocator_type allocator,
60890 std::initializer_list<INIT_LIST_TYPE> il,
60891 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
60892 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
60893 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
60894 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
60895 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
60896 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
60897 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
60898 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
60899 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
60900 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
60901 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
60902 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
60903 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
60904 : Variant_Base(
60905 bsl::allocator_arg_t{}
60906,
60907 allocator,
60908 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
60909 il,
60910 std::forward<t_ARGS_01>(args_01),
60911 std::forward<t_ARGS_02>(args_02),
60912 std::forward<t_ARGS_03>(args_03),
60913 std::forward<t_ARGS_04>(args_04),
60914 std::forward<t_ARGS_05>(args_05),
60915 std::forward<t_ARGS_06>(args_06),
60916 std::forward<t_ARGS_07>(args_07),
60917 std::forward<t_ARGS_08>(args_08),
60918 std::forward<t_ARGS_09>(args_09),
60919 std::forward<t_ARGS_10>(args_10),
60920 std::forward<t_ARGS_11>(args_11),
60921 std::forward<t_ARGS_12>(args_12),
60922 std::forward<t_ARGS_13>(args_13))
60923 {
60924 }
60925
60926 template <size_t t_INDEX,
60927 class t_ARGS_01,
60928 class t_ARGS_02,
60929 class t_ARGS_03,
60930 class t_ARGS_04,
60931 class t_ARGS_05,
60932 class t_ARGS_06,
60933 class t_ARGS_07,
60934 class t_ARGS_08,
60935 class t_ARGS_09,
60936 class t_ARGS_10,
60937 class t_ARGS_11,
60938 class t_ARGS_12,
60939 class t_ARGS_13,
60940 class = typename bsl::enable_if_t<
60941 (t_INDEX < 1 + 13u) &&
60942 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
60943 t_ARGS_01,
60944 t_ARGS_02,
60945 t_ARGS_03,
60946 t_ARGS_04,
60947 t_ARGS_05,
60948 t_ARGS_06,
60949 t_ARGS_07,
60950 t_ARGS_08,
60951 t_ARGS_09,
60952 t_ARGS_10,
60953 t_ARGS_11,
60954 t_ARGS_12,
60955 t_ARGS_13>::value> >
60956 explicit variant(bsl::allocator_arg_t,
60957 allocator_type allocator,
60959 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
60960 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
60961 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
60962 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
60963 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
60964 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
60965 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
60966 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
60967 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
60968 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
60969 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
60970 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
60971 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
60972 : Variant_Base(bsl::allocator_arg_t{}
60973,
60974 allocator,
60975 bsl::in_place_index_t<t_INDEX>(),
60976 std::forward<t_ARGS_01>(args_01),
60977 std::forward<t_ARGS_02>(args_02),
60978 std::forward<t_ARGS_03>(args_03),
60979 std::forward<t_ARGS_04>(args_04),
60980 std::forward<t_ARGS_05>(args_05),
60981 std::forward<t_ARGS_06>(args_06),
60982 std::forward<t_ARGS_07>(args_07),
60983 std::forward<t_ARGS_08>(args_08),
60984 std::forward<t_ARGS_09>(args_09),
60985 std::forward<t_ARGS_10>(args_10),
60986 std::forward<t_ARGS_11>(args_11),
60987 std::forward<t_ARGS_12>(args_12),
60988 std::forward<t_ARGS_13>(args_13))
60989 {
60990 }
60991
60992 template <size_t t_INDEX,
60993 class INIT_LIST_TYPE,
60994 class t_ARGS_01,
60995 class t_ARGS_02,
60996 class t_ARGS_03,
60997 class t_ARGS_04,
60998 class t_ARGS_05,
60999 class t_ARGS_06,
61000 class t_ARGS_07,
61001 class t_ARGS_08,
61002 class t_ARGS_09,
61003 class t_ARGS_10,
61004 class t_ARGS_11,
61005 class t_ARGS_12,
61006 class t_ARGS_13,
61007 class = typename bsl::enable_if_t<
61008 (t_INDEX < 1 + 13u) &&
61009 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
61010 std::initializer_list<INIT_LIST_TYPE>&,
61011 t_ARGS_01,
61012 t_ARGS_02,
61013 t_ARGS_03,
61014 t_ARGS_04,
61015 t_ARGS_05,
61016 t_ARGS_06,
61017 t_ARGS_07,
61018 t_ARGS_08,
61019 t_ARGS_09,
61020 t_ARGS_10,
61021 t_ARGS_11,
61022 t_ARGS_12,
61023 t_ARGS_13>::value> >
61024 explicit variant(bsl::allocator_arg_t,
61025 allocator_type allocator,
61027 std::initializer_list<INIT_LIST_TYPE> il,
61028 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
61029 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
61030 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
61031 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
61032 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
61033 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
61034 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
61035 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
61036 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
61037 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
61038 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
61039 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
61040 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
61041 : Variant_Base(bsl::allocator_arg_t{}
61042,
61043 allocator,
61044 bsl::in_place_index_t<t_INDEX>(),
61045 il,
61046 std::forward<t_ARGS_01>(args_01),
61047 std::forward<t_ARGS_02>(args_02),
61048 std::forward<t_ARGS_03>(args_03),
61049 std::forward<t_ARGS_04>(args_04),
61050 std::forward<t_ARGS_05>(args_05),
61051 std::forward<t_ARGS_06>(args_06),
61052 std::forward<t_ARGS_07>(args_07),
61053 std::forward<t_ARGS_08>(args_08),
61054 std::forward<t_ARGS_09>(args_09),
61055 std::forward<t_ARGS_10>(args_10),
61056 std::forward<t_ARGS_11>(args_11),
61057 std::forward<t_ARGS_12>(args_12),
61058 std::forward<t_ARGS_13>(args_13))
61059 {
61060 }
61061
61062#else
61063
61064 variant();
61065
61066 variant(const variant& original);
61067
61068 variant(BloombergLP::bslmf::MovableRef<variant> original);
61069
61070 template <class t_TYPE>
61071 variant(const t_TYPE& value,
61073
61074 template <class t_TYPE>
61075 explicit variant(bsl::in_place_type_t<t_TYPE>,
61077
61078 template <class t_TYPE, class t_ARG_01>
61079 explicit variant(bsl::in_place_type_t<t_TYPE>,
61080 const t_ARG_01& arg_01,
61082
61083 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
61084 explicit variant(bsl::in_place_type_t<t_TYPE>,
61085 const t_ARG_01& arg_01,
61086 const t_ARG_02& arg_02,
61088
61089 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
61090 explicit variant(bsl::in_place_type_t<t_TYPE>,
61091 const t_ARG_01& arg_01,
61092 const t_ARG_02& arg_02,
61093 const t_ARG_03& arg_03,
61095
61096 template <class t_TYPE,
61097 class t_ARG_01,
61098 class t_ARG_02,
61099 class t_ARG_03,
61100 class t_ARG_04>
61101 explicit variant(bsl::in_place_type_t<t_TYPE>,
61102 const t_ARG_01& arg_01,
61103 const t_ARG_02& arg_02,
61104 const t_ARG_03& arg_03,
61105 const t_ARG_04& arg_04,
61107
61108 template <class t_TYPE,
61109 class t_ARG_01,
61110 class t_ARG_02,
61111 class t_ARG_03,
61112 class t_ARG_04,
61113 class t_ARG_05>
61114 explicit variant(bsl::in_place_type_t<t_TYPE>,
61115 const t_ARG_01& arg_01,
61116 const t_ARG_02& arg_02,
61117 const t_ARG_03& arg_03,
61118 const t_ARG_04& arg_04,
61119 const t_ARG_05& arg_05,
61121
61122 template <class t_TYPE,
61123 class t_ARG_01,
61124 class t_ARG_02,
61125 class t_ARG_03,
61126 class t_ARG_04,
61127 class t_ARG_05,
61128 class t_ARG_06>
61129 explicit variant(bsl::in_place_type_t<t_TYPE>,
61130 const t_ARG_01& arg_01,
61131 const t_ARG_02& arg_02,
61132 const t_ARG_03& arg_03,
61133 const t_ARG_04& arg_04,
61134 const t_ARG_05& arg_05,
61135 const t_ARG_06& arg_06,
61137
61138 template <class t_TYPE,
61139 class t_ARG_01,
61140 class t_ARG_02,
61141 class t_ARG_03,
61142 class t_ARG_04,
61143 class t_ARG_05,
61144 class t_ARG_06,
61145 class t_ARG_07>
61146 explicit variant(bsl::in_place_type_t<t_TYPE>,
61147 const t_ARG_01& arg_01,
61148 const t_ARG_02& arg_02,
61149 const t_ARG_03& arg_03,
61150 const t_ARG_04& arg_04,
61151 const t_ARG_05& arg_05,
61152 const t_ARG_06& arg_06,
61153 const t_ARG_07& arg_07,
61155
61156 template <class t_TYPE,
61157 class t_ARG_01,
61158 class t_ARG_02,
61159 class t_ARG_03,
61160 class t_ARG_04,
61161 class t_ARG_05,
61162 class t_ARG_06,
61163 class t_ARG_07,
61164 class t_ARG_08>
61165 explicit variant(bsl::in_place_type_t<t_TYPE>,
61166 const t_ARG_01& arg_01,
61167 const t_ARG_02& arg_02,
61168 const t_ARG_03& arg_03,
61169 const t_ARG_04& arg_04,
61170 const t_ARG_05& arg_05,
61171 const t_ARG_06& arg_06,
61172 const t_ARG_07& arg_07,
61173 const t_ARG_08& arg_08,
61175
61176 template <class t_TYPE,
61177 class t_ARG_01,
61178 class t_ARG_02,
61179 class t_ARG_03,
61180 class t_ARG_04,
61181 class t_ARG_05,
61182 class t_ARG_06,
61183 class t_ARG_07,
61184 class t_ARG_08,
61185 class t_ARG_09>
61186 explicit variant(bsl::in_place_type_t<t_TYPE>,
61187 const t_ARG_01& arg_01,
61188 const t_ARG_02& arg_02,
61189 const t_ARG_03& arg_03,
61190 const t_ARG_04& arg_04,
61191 const t_ARG_05& arg_05,
61192 const t_ARG_06& arg_06,
61193 const t_ARG_07& arg_07,
61194 const t_ARG_08& arg_08,
61195 const t_ARG_09& arg_09,
61197
61198 template <class t_TYPE,
61199 class t_ARG_01,
61200 class t_ARG_02,
61201 class t_ARG_03,
61202 class t_ARG_04,
61203 class t_ARG_05,
61204 class t_ARG_06,
61205 class t_ARG_07,
61206 class t_ARG_08,
61207 class t_ARG_09,
61208 class t_ARG_10>
61209 explicit variant(bsl::in_place_type_t<t_TYPE>,
61210 const t_ARG_01& arg_01,
61211 const t_ARG_02& arg_02,
61212 const t_ARG_03& arg_03,
61213 const t_ARG_04& arg_04,
61214 const t_ARG_05& arg_05,
61215 const t_ARG_06& arg_06,
61216 const t_ARG_07& arg_07,
61217 const t_ARG_08& arg_08,
61218 const t_ARG_09& arg_09,
61219 const t_ARG_10& arg_10,
61221
61222 template <size_t t_INDEX>
61223 explicit variant(bsl::in_place_index_t<t_INDEX>);
61224
61225 template <size_t t_INDEX, class t_ARG_01>
61226 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
61227
61228 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
61229 explicit variant(bsl::in_place_index_t<t_INDEX>,
61230 const t_ARG_01& arg_01,
61231 const t_ARG_02& arg_02);
61232
61233 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
61234 explicit variant(bsl::in_place_index_t<t_INDEX>,
61235 const t_ARG_01& arg_01,
61236 const t_ARG_02& arg_02,
61237 const t_ARG_03& arg_03);
61238
61239 template <size_t t_INDEX,
61240 class t_ARG_01,
61241 class t_ARG_02,
61242 class t_ARG_03,
61243 class t_ARG_04>
61244 explicit variant(bsl::in_place_index_t<t_INDEX>,
61245 const t_ARG_01& arg_01,
61246 const t_ARG_02& arg_02,
61247 const t_ARG_03& arg_03,
61248 const t_ARG_04& arg_04);
61249
61250 template <size_t t_INDEX,
61251 class t_ARG_01,
61252 class t_ARG_02,
61253 class t_ARG_03,
61254 class t_ARG_04,
61255 class t_ARG_05>
61256 explicit variant(bsl::in_place_index_t<t_INDEX>,
61257 const t_ARG_01& arg_01,
61258 const t_ARG_02& arg_02,
61259 const t_ARG_03& arg_03,
61260 const t_ARG_04& arg_04,
61261 const t_ARG_05& arg_05);
61262
61263 template <size_t t_INDEX,
61264 class t_ARG_01,
61265 class t_ARG_02,
61266 class t_ARG_03,
61267 class t_ARG_04,
61268 class t_ARG_05,
61269 class t_ARG_06>
61270 explicit variant(bsl::in_place_index_t<t_INDEX>,
61271 const t_ARG_01& arg_01,
61272 const t_ARG_02& arg_02,
61273 const t_ARG_03& arg_03,
61274 const t_ARG_04& arg_04,
61275 const t_ARG_05& arg_05,
61276 const t_ARG_06& arg_06);
61277
61278 template <size_t t_INDEX,
61279 class t_ARG_01,
61280 class t_ARG_02,
61281 class t_ARG_03,
61282 class t_ARG_04,
61283 class t_ARG_05,
61284 class t_ARG_06,
61285 class t_ARG_07>
61286 explicit variant(bsl::in_place_index_t<t_INDEX>,
61287 const t_ARG_01& arg_01,
61288 const t_ARG_02& arg_02,
61289 const t_ARG_03& arg_03,
61290 const t_ARG_04& arg_04,
61291 const t_ARG_05& arg_05,
61292 const t_ARG_06& arg_06,
61293 const t_ARG_07& arg_07);
61294
61295 template <size_t t_INDEX,
61296 class t_ARG_01,
61297 class t_ARG_02,
61298 class t_ARG_03,
61299 class t_ARG_04,
61300 class t_ARG_05,
61301 class t_ARG_06,
61302 class t_ARG_07,
61303 class t_ARG_08>
61304 explicit variant(bsl::in_place_index_t<t_INDEX>,
61305 const t_ARG_01& arg_01,
61306 const t_ARG_02& arg_02,
61307 const t_ARG_03& arg_03,
61308 const t_ARG_04& arg_04,
61309 const t_ARG_05& arg_05,
61310 const t_ARG_06& arg_06,
61311 const t_ARG_07& arg_07,
61312 const t_ARG_08& arg_08);
61313
61314 template <size_t t_INDEX,
61315 class t_ARG_01,
61316 class t_ARG_02,
61317 class t_ARG_03,
61318 class t_ARG_04,
61319 class t_ARG_05,
61320 class t_ARG_06,
61321 class t_ARG_07,
61322 class t_ARG_08,
61323 class t_ARG_09>
61324 explicit variant(bsl::in_place_index_t<t_INDEX>,
61325 const t_ARG_01& arg_01,
61326 const t_ARG_02& arg_02,
61327 const t_ARG_03& arg_03,
61328 const t_ARG_04& arg_04,
61329 const t_ARG_05& arg_05,
61330 const t_ARG_06& arg_06,
61331 const t_ARG_07& arg_07,
61332 const t_ARG_08& arg_08,
61333 const t_ARG_09& arg_09);
61334
61335 template <size_t t_INDEX,
61336 class t_ARG_01,
61337 class t_ARG_02,
61338 class t_ARG_03,
61339 class t_ARG_04,
61340 class t_ARG_05,
61341 class t_ARG_06,
61342 class t_ARG_07,
61343 class t_ARG_08,
61344 class t_ARG_09,
61345 class t_ARG_10>
61346 explicit variant(bsl::in_place_index_t<t_INDEX>,
61347 const t_ARG_01& arg_01,
61348 const t_ARG_02& arg_02,
61349 const t_ARG_03& arg_03,
61350 const t_ARG_04& arg_04,
61351 const t_ARG_05& arg_05,
61352 const t_ARG_06& arg_06,
61353 const t_ARG_07& arg_07,
61354 const t_ARG_08& arg_08,
61355 const t_ARG_09& arg_09,
61356 const t_ARG_10& arg_10);
61357
61358 variant(bsl::allocator_arg_t, allocator_type allocator);
61359
61360 variant(bsl::allocator_arg_t,
61361 allocator_type allocator,
61362 const variant& original);
61363 variant(bsl::allocator_arg_t,
61364 allocator_type allocator,
61365 BloombergLP::bslmf::MovableRef<variant> original);
61366
61367 template <class t_TYPE>
61368 variant(
61369 bsl::allocator_arg_t,
61370 allocator_type allocator,
61371 const t_TYPE& value,
61373
61374 template <class t_TYPE>
61375 explicit variant(
61376 bsl::allocator_arg_t,
61377 allocator_type allocator,
61380
61381 template <class t_TYPE, class t_ARG_01>
61382 explicit variant(
61383 bsl::allocator_arg_t,
61384 allocator_type allocator,
61386 const t_ARG_01& arg_01,
61388
61389 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
61390 explicit variant(
61391 bsl::allocator_arg_t,
61392 allocator_type allocator,
61394 const t_ARG_01& arg_01,
61395 const t_ARG_02& arg_02,
61397
61398 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
61399 explicit variant(
61400 bsl::allocator_arg_t,
61401 allocator_type allocator,
61403 const t_ARG_01& arg_01,
61404 const t_ARG_02& arg_02,
61405 const t_ARG_03& arg_03,
61407
61408 template <class t_TYPE,
61409 class t_ARG_01,
61410 class t_ARG_02,
61411 class t_ARG_03,
61412 class t_ARG_04>
61413 explicit variant(bsl::allocator_arg_t,
61414 allocator_type allocator,
61416 const t_ARG_01& arg_01,
61417 const t_ARG_02& arg_02,
61418 const t_ARG_03& arg_03,
61419 const t_ARG_04& arg_04,
61421
61422 template <class t_TYPE,
61423 class t_ARG_01,
61424 class t_ARG_02,
61425 class t_ARG_03,
61426 class t_ARG_04,
61427 class t_ARG_05>
61428 explicit variant(bsl::allocator_arg_t,
61429 allocator_type allocator,
61431 const t_ARG_01& arg_01,
61432 const t_ARG_02& arg_02,
61433 const t_ARG_03& arg_03,
61434 const t_ARG_04& arg_04,
61435 const t_ARG_05& arg_05,
61437
61438 template <class t_TYPE,
61439 class t_ARG_01,
61440 class t_ARG_02,
61441 class t_ARG_03,
61442 class t_ARG_04,
61443 class t_ARG_05,
61444 class t_ARG_06>
61445 explicit variant(bsl::allocator_arg_t,
61446 allocator_type allocator,
61448 const t_ARG_01& arg_01,
61449 const t_ARG_02& arg_02,
61450 const t_ARG_03& arg_03,
61451 const t_ARG_04& arg_04,
61452 const t_ARG_05& arg_05,
61453 const t_ARG_06& arg_06,
61455
61456 template <class t_TYPE,
61457 class t_ARG_01,
61458 class t_ARG_02,
61459 class t_ARG_03,
61460 class t_ARG_04,
61461 class t_ARG_05,
61462 class t_ARG_06,
61463 class t_ARG_07>
61464 explicit variant(bsl::allocator_arg_t,
61465 allocator_type allocator,
61467 const t_ARG_01& arg_01,
61468 const t_ARG_02& arg_02,
61469 const t_ARG_03& arg_03,
61470 const t_ARG_04& arg_04,
61471 const t_ARG_05& arg_05,
61472 const t_ARG_06& arg_06,
61473 const t_ARG_07& arg_07,
61475
61476 template <class t_TYPE,
61477 class t_ARG_01,
61478 class t_ARG_02,
61479 class t_ARG_03,
61480 class t_ARG_04,
61481 class t_ARG_05,
61482 class t_ARG_06,
61483 class t_ARG_07,
61484 class t_ARG_08>
61485 explicit variant(bsl::allocator_arg_t,
61486 allocator_type allocator,
61488 const t_ARG_01& arg_01,
61489 const t_ARG_02& arg_02,
61490 const t_ARG_03& arg_03,
61491 const t_ARG_04& arg_04,
61492 const t_ARG_05& arg_05,
61493 const t_ARG_06& arg_06,
61494 const t_ARG_07& arg_07,
61495 const t_ARG_08& arg_08,
61497
61498 template <class t_TYPE,
61499 class t_ARG_01,
61500 class t_ARG_02,
61501 class t_ARG_03,
61502 class t_ARG_04,
61503 class t_ARG_05,
61504 class t_ARG_06,
61505 class t_ARG_07,
61506 class t_ARG_08,
61507 class t_ARG_09>
61508 explicit variant(bsl::allocator_arg_t,
61509 allocator_type allocator,
61511 const t_ARG_01& arg_01,
61512 const t_ARG_02& arg_02,
61513 const t_ARG_03& arg_03,
61514 const t_ARG_04& arg_04,
61515 const t_ARG_05& arg_05,
61516 const t_ARG_06& arg_06,
61517 const t_ARG_07& arg_07,
61518 const t_ARG_08& arg_08,
61519 const t_ARG_09& arg_09,
61521
61522 template <class t_TYPE,
61523 class t_ARG_01,
61524 class t_ARG_02,
61525 class t_ARG_03,
61526 class t_ARG_04,
61527 class t_ARG_05,
61528 class t_ARG_06,
61529 class t_ARG_07,
61530 class t_ARG_08,
61531 class t_ARG_09,
61532 class t_ARG_10>
61533 explicit variant(bsl::allocator_arg_t,
61534 allocator_type allocator,
61536 const t_ARG_01& arg_01,
61537 const t_ARG_02& arg_02,
61538 const t_ARG_03& arg_03,
61539 const t_ARG_04& arg_04,
61540 const t_ARG_05& arg_05,
61541 const t_ARG_06& arg_06,
61542 const t_ARG_07& arg_07,
61543 const t_ARG_08& arg_08,
61544 const t_ARG_09& arg_09,
61545 const t_ARG_10& arg_10,
61547
61548 template <size_t t_INDEX>
61549 explicit variant(bsl::allocator_arg_t,
61550 allocator_type allocator,
61552
61553 template <size_t t_INDEX, class t_ARG_01>
61554 explicit variant(bsl::allocator_arg_t,
61555 allocator_type allocator,
61557 const t_ARG_01& arg_01);
61558
61559 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
61560 explicit variant(bsl::allocator_arg_t,
61561 allocator_type allocator,
61563 const t_ARG_01& arg_01,
61564 const t_ARG_02& arg_02);
61565
61566 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
61567 explicit variant(bsl::allocator_arg_t,
61568 allocator_type allocator,
61570 const t_ARG_01& arg_01,
61571 const t_ARG_02& arg_02,
61572 const t_ARG_03& arg_03);
61573
61574 template <size_t t_INDEX,
61575 class t_ARG_01,
61576 class t_ARG_02,
61577 class t_ARG_03,
61578 class t_ARG_04>
61579 explicit variant(bsl::allocator_arg_t,
61580 allocator_type allocator,
61582 const t_ARG_01& arg_01,
61583 const t_ARG_02& arg_02,
61584 const t_ARG_03& arg_03,
61585 const t_ARG_04& arg_04);
61586
61587 template <size_t t_INDEX,
61588 class t_ARG_01,
61589 class t_ARG_02,
61590 class t_ARG_03,
61591 class t_ARG_04,
61592 class t_ARG_05>
61593 explicit variant(bsl::allocator_arg_t,
61594 allocator_type allocator,
61596 const t_ARG_01& arg_01,
61597 const t_ARG_02& arg_02,
61598 const t_ARG_03& arg_03,
61599 const t_ARG_04& arg_04,
61600 const t_ARG_05& arg_05);
61601
61602 template <size_t t_INDEX,
61603 class t_ARG_01,
61604 class t_ARG_02,
61605 class t_ARG_03,
61606 class t_ARG_04,
61607 class t_ARG_05,
61608 class t_ARG_06>
61609 explicit variant(bsl::allocator_arg_t,
61610 allocator_type allocator,
61612 const t_ARG_01& arg_01,
61613 const t_ARG_02& arg_02,
61614 const t_ARG_03& arg_03,
61615 const t_ARG_04& arg_04,
61616 const t_ARG_05& arg_05,
61617 const t_ARG_06& arg_06);
61618
61619 template <size_t t_INDEX,
61620 class t_ARG_01,
61621 class t_ARG_02,
61622 class t_ARG_03,
61623 class t_ARG_04,
61624 class t_ARG_05,
61625 class t_ARG_06,
61626 class t_ARG_07>
61627 explicit variant(bsl::allocator_arg_t,
61628 allocator_type allocator,
61630 const t_ARG_01& arg_01,
61631 const t_ARG_02& arg_02,
61632 const t_ARG_03& arg_03,
61633 const t_ARG_04& arg_04,
61634 const t_ARG_05& arg_05,
61635 const t_ARG_06& arg_06,
61636 const t_ARG_07& arg_07);
61637
61638 template <size_t t_INDEX,
61639 class t_ARG_01,
61640 class t_ARG_02,
61641 class t_ARG_03,
61642 class t_ARG_04,
61643 class t_ARG_05,
61644 class t_ARG_06,
61645 class t_ARG_07,
61646 class t_ARG_08>
61647 explicit variant(bsl::allocator_arg_t,
61648 allocator_type allocator,
61650 const t_ARG_01& arg_01,
61651 const t_ARG_02& arg_02,
61652 const t_ARG_03& arg_03,
61653 const t_ARG_04& arg_04,
61654 const t_ARG_05& arg_05,
61655 const t_ARG_06& arg_06,
61656 const t_ARG_07& arg_07,
61657 const t_ARG_08& arg_08);
61658
61659 template <size_t t_INDEX,
61660 class t_ARG_01,
61661 class t_ARG_02,
61662 class t_ARG_03,
61663 class t_ARG_04,
61664 class t_ARG_05,
61665 class t_ARG_06,
61666 class t_ARG_07,
61667 class t_ARG_08,
61668 class t_ARG_09>
61669 explicit variant(bsl::allocator_arg_t,
61670 allocator_type allocator,
61672 const t_ARG_01& arg_01,
61673 const t_ARG_02& arg_02,
61674 const t_ARG_03& arg_03,
61675 const t_ARG_04& arg_04,
61676 const t_ARG_05& arg_05,
61677 const t_ARG_06& arg_06,
61678 const t_ARG_07& arg_07,
61679 const t_ARG_08& arg_08,
61680 const t_ARG_09& arg_09);
61681
61682 template <size_t t_INDEX,
61683 class t_ARG_01,
61684 class t_ARG_02,
61685 class t_ARG_03,
61686 class t_ARG_04,
61687 class t_ARG_05,
61688 class t_ARG_06,
61689 class t_ARG_07,
61690 class t_ARG_08,
61691 class t_ARG_09,
61692 class t_ARG_10>
61693 explicit variant(bsl::allocator_arg_t,
61694 allocator_type allocator,
61696 const t_ARG_01& arg_01,
61697 const t_ARG_02& arg_02,
61698 const t_ARG_03& arg_03,
61699 const t_ARG_04& arg_04,
61700 const t_ARG_05& arg_05,
61701 const t_ARG_06& arg_06,
61702 const t_ARG_07& arg_07,
61703 const t_ARG_08& arg_08,
61704 const t_ARG_09& arg_09,
61705 const t_ARG_10& arg_10);
61706
61707#endif
61708
61709
61710#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
61711 template <class t_TYPE,
61712 class t_ARGS_01,
61713 class t_ARGS_02,
61714 class t_ARGS_03,
61715 class t_ARGS_04,
61716 class t_ARGS_05,
61717 class t_ARGS_06,
61718 class t_ARGS_07,
61719 class t_ARGS_08,
61720 class t_ARGS_09,
61721 class t_ARGS_10,
61722 class t_ARGS_11,
61723 class t_ARGS_12,
61724 class t_ARGS_13,
61725 class = typename bsl::enable_if_t<
61727 std::is_constructible<t_TYPE, t_ARGS_01,
61728 t_ARGS_02,
61729 t_ARGS_03,
61730 t_ARGS_04,
61731 t_ARGS_05,
61732 t_ARGS_06,
61733 t_ARGS_07,
61734 t_ARGS_08,
61735 t_ARGS_09,
61736 t_ARGS_10,
61737 t_ARGS_11,
61738 t_ARGS_12,
61739 t_ARGS_13>::value> >
61740 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
61741 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
61742 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
61743 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
61744 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
61745 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
61746 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
61747 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
61748 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
61749 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
61750 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
61751 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
61752 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
61753 {
61754 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
61755 Variant_Base::template baseEmplace<index>(
61756 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
61757 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
61758 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
61759 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
61760 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
61761 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
61762 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
61763 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
61764 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
61765 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
61766 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
61767 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
61768 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13));
61769
61770 return bsl::get<index>(*this);
61771 }
61772
61773 template <class t_TYPE,
61774 class INIT_LIST_TYPE,
61775 class t_ARGS_01,
61776 class t_ARGS_02,
61777 class t_ARGS_03,
61778 class t_ARGS_04,
61779 class t_ARGS_05,
61780 class t_ARGS_06,
61781 class t_ARGS_07,
61782 class t_ARGS_08,
61783 class t_ARGS_09,
61784 class t_ARGS_10,
61785 class t_ARGS_11,
61786 class t_ARGS_12,
61787 class t_ARGS_13,
61788 class = typename bsl::enable_if_t<
61790 std::is_constructible<t_TYPE,
61791 std::initializer_list<INIT_LIST_TYPE>&,
61792 t_ARGS_01,
61793 t_ARGS_02,
61794 t_ARGS_03,
61795 t_ARGS_04,
61796 t_ARGS_05,
61797 t_ARGS_06,
61798 t_ARGS_07,
61799 t_ARGS_08,
61800 t_ARGS_09,
61801 t_ARGS_10,
61802 t_ARGS_11,
61803 t_ARGS_12,
61804 t_ARGS_13>::value> >
61805 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
61806 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
61807 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
61808 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
61809 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
61810 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
61811 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
61812 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
61813 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
61814 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
61815 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
61816 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
61817 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
61818 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
61819 {
61820 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
61821 Variant_Base::template baseEmplace<index>(
61822 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
61823 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
61824 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
61825 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
61826 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
61827 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
61828 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
61829 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
61830 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
61831 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
61832 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
61833 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
61834 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13));
61835
61836 return bsl::get<index>(*this);
61837 }
61838
61839 template <size_t t_INDEX,
61840 class t_ARGS_01,
61841 class t_ARGS_02,
61842 class t_ARGS_03,
61843 class t_ARGS_04,
61844 class t_ARGS_05,
61845 class t_ARGS_06,
61846 class t_ARGS_07,
61847 class t_ARGS_08,
61848 class t_ARGS_09,
61849 class t_ARGS_10,
61850 class t_ARGS_11,
61851 class t_ARGS_12,
61852 class t_ARGS_13,
61853 class = typename bsl::enable_if_t<
61854 (t_INDEX < 1 + 13u) &&
61855 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
61856 t_ARGS_01,
61857 t_ARGS_02,
61858 t_ARGS_03,
61859 t_ARGS_04,
61860 t_ARGS_05,
61861 t_ARGS_06,
61862 t_ARGS_07,
61863 t_ARGS_08,
61864 t_ARGS_09,
61865 t_ARGS_10,
61866 t_ARGS_11,
61867 t_ARGS_12,
61868 t_ARGS_13>::value> >
61869 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
61870 t_TAIL_02,
61871 t_TAIL_03,
61872 t_TAIL_04,
61873 t_TAIL_05,
61874 t_TAIL_06,
61875 t_TAIL_07,
61876 t_TAIL_08,
61877 t_TAIL_09,
61878 t_TAIL_10,
61879 t_TAIL_11,
61880 t_TAIL_12,
61881 t_TAIL_13> >::type&
61882 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
61883 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
61884 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
61885 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
61886 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
61887 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
61888 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
61889 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
61890 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
61891 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
61892 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
61893 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
61894 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
61895 {
61896 Variant_Base::template baseEmplace<t_INDEX>(
61897 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
61898 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
61899 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
61900 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
61901 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
61902 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
61903 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
61904 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
61905 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
61906 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
61907 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
61908 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
61909 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13));
61910
61911 return bsl::get<t_INDEX>(*this);
61912 }
61913
61914 template <size_t t_INDEX,
61915 class INIT_LIST_TYPE,
61916 class t_ARGS_01,
61917 class t_ARGS_02,
61918 class t_ARGS_03,
61919 class t_ARGS_04,
61920 class t_ARGS_05,
61921 class t_ARGS_06,
61922 class t_ARGS_07,
61923 class t_ARGS_08,
61924 class t_ARGS_09,
61925 class t_ARGS_10,
61926 class t_ARGS_11,
61927 class t_ARGS_12,
61928 class t_ARGS_13,
61929 class = typename bsl::enable_if_t<
61930 (t_INDEX < 1 + 13u) &&
61931 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
61932 std::initializer_list<INIT_LIST_TYPE>&,
61933 t_ARGS_01,
61934 t_ARGS_02,
61935 t_ARGS_03,
61936 t_ARGS_04,
61937 t_ARGS_05,
61938 t_ARGS_06,
61939 t_ARGS_07,
61940 t_ARGS_08,
61941 t_ARGS_09,
61942 t_ARGS_10,
61943 t_ARGS_11,
61944 t_ARGS_12,
61945 t_ARGS_13>::value> >
61946 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
61947 t_TAIL_02,
61948 t_TAIL_03,
61949 t_TAIL_04,
61950 t_TAIL_05,
61951 t_TAIL_06,
61952 t_TAIL_07,
61953 t_TAIL_08,
61954 t_TAIL_09,
61955 t_TAIL_10,
61956 t_TAIL_11,
61957 t_TAIL_12,
61958 t_TAIL_13> >::type&
61959 emplace(std::initializer_list<INIT_LIST_TYPE> il,
61960 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
61961 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
61962 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
61963 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
61964 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
61965 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
61966 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
61967 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
61968 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
61969 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
61970 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
61971 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
61972 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13)
61973 {
61974 Variant_Base::template baseEmplace<t_INDEX>(
61975 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
61976 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
61977 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
61978 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
61979 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
61980 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
61981 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
61982 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
61983 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
61984 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
61985 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
61986 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
61987 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13));
61988
61989 return bsl::get<t_INDEX>(*this);
61990 }
61991
61992#else
61993
61994 template <class t_TYPE>
61995 typename bsl::enable_if<
61996 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
61997 t_TYPE&>::type
61998 emplace();
61999
62000 template <class t_TYPE, class t_ARG_01>
62001 typename bsl::enable_if<
62002 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62003 t_TYPE&>::type
62004 emplace(const t_ARG_01& arg_01);
62005
62006 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
62007 typename bsl::enable_if<
62008 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62009 t_TYPE&>::type
62010 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
62011
62012 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
62013 typename bsl::enable_if<
62014 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62015 t_TYPE&>::type
62016 emplace(const t_ARG_01& arg_01,
62017 const t_ARG_02& arg_02,
62018 const t_ARG_03& arg_03);
62019
62020 template <class t_TYPE,
62021 class t_ARG_01,
62022 class t_ARG_02,
62023 class t_ARG_03,
62024 class t_ARG_04>
62025 typename bsl::enable_if<
62026 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62027 t_TYPE&>::type
62028 emplace(const t_ARG_01& arg_01,
62029 const t_ARG_02& arg_02,
62030 const t_ARG_03& arg_03,
62031 const t_ARG_04& arg_04);
62032
62033 template <class t_TYPE,
62034 class t_ARG_01,
62035 class t_ARG_02,
62036 class t_ARG_03,
62037 class t_ARG_04,
62038 class t_ARG_05>
62039 typename bsl::enable_if<
62040 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62041 t_TYPE&>::type
62042 emplace(const t_ARG_01& arg_01,
62043 const t_ARG_02& arg_02,
62044 const t_ARG_03& arg_03,
62045 const t_ARG_04& arg_04,
62046 const t_ARG_05& arg_05);
62047
62048 template <class t_TYPE,
62049 class t_ARG_01,
62050 class t_ARG_02,
62051 class t_ARG_03,
62052 class t_ARG_04,
62053 class t_ARG_05,
62054 class t_ARG_06>
62055 typename bsl::enable_if<
62056 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62057 t_TYPE&>::type
62058 emplace(const t_ARG_01& arg_01,
62059 const t_ARG_02& arg_02,
62060 const t_ARG_03& arg_03,
62061 const t_ARG_04& arg_04,
62062 const t_ARG_05& arg_05,
62063 const t_ARG_06& arg_06);
62064
62065 template <class t_TYPE,
62066 class t_ARG_01,
62067 class t_ARG_02,
62068 class t_ARG_03,
62069 class t_ARG_04,
62070 class t_ARG_05,
62071 class t_ARG_06,
62072 class t_ARG_07>
62073 typename bsl::enable_if<
62074 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62075 t_TYPE&>::type
62076 emplace(const t_ARG_01& arg_01,
62077 const t_ARG_02& arg_02,
62078 const t_ARG_03& arg_03,
62079 const t_ARG_04& arg_04,
62080 const t_ARG_05& arg_05,
62081 const t_ARG_06& arg_06,
62082 const t_ARG_07& arg_07);
62083
62084 template <class t_TYPE,
62085 class t_ARG_01,
62086 class t_ARG_02,
62087 class t_ARG_03,
62088 class t_ARG_04,
62089 class t_ARG_05,
62090 class t_ARG_06,
62091 class t_ARG_07,
62092 class t_ARG_08>
62093 typename bsl::enable_if<
62094 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62095 t_TYPE&>::type
62096 emplace(const t_ARG_01& arg_01,
62097 const t_ARG_02& arg_02,
62098 const t_ARG_03& arg_03,
62099 const t_ARG_04& arg_04,
62100 const t_ARG_05& arg_05,
62101 const t_ARG_06& arg_06,
62102 const t_ARG_07& arg_07,
62103 const t_ARG_08& arg_08);
62104
62105 template <class t_TYPE,
62106 class t_ARG_01,
62107 class t_ARG_02,
62108 class t_ARG_03,
62109 class t_ARG_04,
62110 class t_ARG_05,
62111 class t_ARG_06,
62112 class t_ARG_07,
62113 class t_ARG_08,
62114 class t_ARG_09>
62115 typename bsl::enable_if<
62116 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62117 t_TYPE&>::type
62118 emplace(const t_ARG_01& arg_01,
62119 const t_ARG_02& arg_02,
62120 const t_ARG_03& arg_03,
62121 const t_ARG_04& arg_04,
62122 const t_ARG_05& arg_05,
62123 const t_ARG_06& arg_06,
62124 const t_ARG_07& arg_07,
62125 const t_ARG_08& arg_08,
62126 const t_ARG_09& arg_09);
62127
62128 template <class t_TYPE,
62129 class t_ARG_01,
62130 class t_ARG_02,
62131 class t_ARG_03,
62132 class t_ARG_04,
62133 class t_ARG_05,
62134 class t_ARG_06,
62135 class t_ARG_07,
62136 class t_ARG_08,
62137 class t_ARG_09,
62138 class t_ARG_10>
62139 typename bsl::enable_if<
62140 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
62141 t_TYPE&>::type
62142 emplace(const t_ARG_01& arg_01,
62143 const t_ARG_02& arg_02,
62144 const t_ARG_03& arg_03,
62145 const t_ARG_04& arg_04,
62146 const t_ARG_05& arg_05,
62147 const t_ARG_06& arg_06,
62148 const t_ARG_07& arg_07,
62149 const t_ARG_08& arg_08,
62150 const t_ARG_09& arg_09,
62151 const t_ARG_10& arg_10);
62152
62153 template <size_t t_INDEX>
62154 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62155 t_TAIL_02,
62156 t_TAIL_03,
62157 t_TAIL_04,
62158 t_TAIL_05,
62159 t_TAIL_06,
62160 t_TAIL_07,
62161 t_TAIL_08,
62162 t_TAIL_09,
62163 t_TAIL_10,
62164 t_TAIL_11,
62165 t_TAIL_12,
62166 t_TAIL_13> >::type&
62167 emplace();
62168
62169 template <size_t t_INDEX, class t_ARG_01>
62170 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62171 t_TAIL_02,
62172 t_TAIL_03,
62173 t_TAIL_04,
62174 t_TAIL_05,
62175 t_TAIL_06,
62176 t_TAIL_07,
62177 t_TAIL_08,
62178 t_TAIL_09,
62179 t_TAIL_10,
62180 t_TAIL_11,
62181 t_TAIL_12,
62182 t_TAIL_13> >::type&
62183 emplace(const t_ARG_01& arg_01);
62184
62185 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
62186 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62187 t_TAIL_02,
62188 t_TAIL_03,
62189 t_TAIL_04,
62190 t_TAIL_05,
62191 t_TAIL_06,
62192 t_TAIL_07,
62193 t_TAIL_08,
62194 t_TAIL_09,
62195 t_TAIL_10,
62196 t_TAIL_11,
62197 t_TAIL_12,
62198 t_TAIL_13> >::type&
62199 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
62200
62201 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
62202 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62203 t_TAIL_02,
62204 t_TAIL_03,
62205 t_TAIL_04,
62206 t_TAIL_05,
62207 t_TAIL_06,
62208 t_TAIL_07,
62209 t_TAIL_08,
62210 t_TAIL_09,
62211 t_TAIL_10,
62212 t_TAIL_11,
62213 t_TAIL_12,
62214 t_TAIL_13> >::type&
62215 emplace(const t_ARG_01& arg_01,
62216 const t_ARG_02& arg_02,
62217 const t_ARG_03& arg_03);
62218
62219 template <size_t t_INDEX,
62220 class t_ARG_01,
62221 class t_ARG_02,
62222 class t_ARG_03,
62223 class t_ARG_04>
62224 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62225 t_TAIL_02,
62226 t_TAIL_03,
62227 t_TAIL_04,
62228 t_TAIL_05,
62229 t_TAIL_06,
62230 t_TAIL_07,
62231 t_TAIL_08,
62232 t_TAIL_09,
62233 t_TAIL_10,
62234 t_TAIL_11,
62235 t_TAIL_12,
62236 t_TAIL_13> >::type&
62237 emplace(const t_ARG_01& arg_01,
62238 const t_ARG_02& arg_02,
62239 const t_ARG_03& arg_03,
62240 const t_ARG_04& arg_04);
62241
62242 template <size_t t_INDEX,
62243 class t_ARG_01,
62244 class t_ARG_02,
62245 class t_ARG_03,
62246 class t_ARG_04,
62247 class t_ARG_05>
62248 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62249 t_TAIL_02,
62250 t_TAIL_03,
62251 t_TAIL_04,
62252 t_TAIL_05,
62253 t_TAIL_06,
62254 t_TAIL_07,
62255 t_TAIL_08,
62256 t_TAIL_09,
62257 t_TAIL_10,
62258 t_TAIL_11,
62259 t_TAIL_12,
62260 t_TAIL_13> >::type&
62261 emplace(const t_ARG_01& arg_01,
62262 const t_ARG_02& arg_02,
62263 const t_ARG_03& arg_03,
62264 const t_ARG_04& arg_04,
62265 const t_ARG_05& arg_05);
62266
62267 template <size_t t_INDEX,
62268 class t_ARG_01,
62269 class t_ARG_02,
62270 class t_ARG_03,
62271 class t_ARG_04,
62272 class t_ARG_05,
62273 class t_ARG_06>
62274 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62275 t_TAIL_02,
62276 t_TAIL_03,
62277 t_TAIL_04,
62278 t_TAIL_05,
62279 t_TAIL_06,
62280 t_TAIL_07,
62281 t_TAIL_08,
62282 t_TAIL_09,
62283 t_TAIL_10,
62284 t_TAIL_11,
62285 t_TAIL_12,
62286 t_TAIL_13> >::type&
62287 emplace(const t_ARG_01& arg_01,
62288 const t_ARG_02& arg_02,
62289 const t_ARG_03& arg_03,
62290 const t_ARG_04& arg_04,
62291 const t_ARG_05& arg_05,
62292 const t_ARG_06& arg_06);
62293
62294 template <size_t t_INDEX,
62295 class t_ARG_01,
62296 class t_ARG_02,
62297 class t_ARG_03,
62298 class t_ARG_04,
62299 class t_ARG_05,
62300 class t_ARG_06,
62301 class t_ARG_07>
62302 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62303 t_TAIL_02,
62304 t_TAIL_03,
62305 t_TAIL_04,
62306 t_TAIL_05,
62307 t_TAIL_06,
62308 t_TAIL_07,
62309 t_TAIL_08,
62310 t_TAIL_09,
62311 t_TAIL_10,
62312 t_TAIL_11,
62313 t_TAIL_12,
62314 t_TAIL_13> >::type&
62315 emplace(const t_ARG_01& arg_01,
62316 const t_ARG_02& arg_02,
62317 const t_ARG_03& arg_03,
62318 const t_ARG_04& arg_04,
62319 const t_ARG_05& arg_05,
62320 const t_ARG_06& arg_06,
62321 const t_ARG_07& arg_07);
62322
62323 template <size_t t_INDEX,
62324 class t_ARG_01,
62325 class t_ARG_02,
62326 class t_ARG_03,
62327 class t_ARG_04,
62328 class t_ARG_05,
62329 class t_ARG_06,
62330 class t_ARG_07,
62331 class t_ARG_08>
62332 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62333 t_TAIL_02,
62334 t_TAIL_03,
62335 t_TAIL_04,
62336 t_TAIL_05,
62337 t_TAIL_06,
62338 t_TAIL_07,
62339 t_TAIL_08,
62340 t_TAIL_09,
62341 t_TAIL_10,
62342 t_TAIL_11,
62343 t_TAIL_12,
62344 t_TAIL_13> >::type&
62345 emplace(const t_ARG_01& arg_01,
62346 const t_ARG_02& arg_02,
62347 const t_ARG_03& arg_03,
62348 const t_ARG_04& arg_04,
62349 const t_ARG_05& arg_05,
62350 const t_ARG_06& arg_06,
62351 const t_ARG_07& arg_07,
62352 const t_ARG_08& arg_08);
62353
62354 template <size_t t_INDEX,
62355 class t_ARG_01,
62356 class t_ARG_02,
62357 class t_ARG_03,
62358 class t_ARG_04,
62359 class t_ARG_05,
62360 class t_ARG_06,
62361 class t_ARG_07,
62362 class t_ARG_08,
62363 class t_ARG_09>
62364 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62365 t_TAIL_02,
62366 t_TAIL_03,
62367 t_TAIL_04,
62368 t_TAIL_05,
62369 t_TAIL_06,
62370 t_TAIL_07,
62371 t_TAIL_08,
62372 t_TAIL_09,
62373 t_TAIL_10,
62374 t_TAIL_11,
62375 t_TAIL_12,
62376 t_TAIL_13> >::type&
62377 emplace(const t_ARG_01& arg_01,
62378 const t_ARG_02& arg_02,
62379 const t_ARG_03& arg_03,
62380 const t_ARG_04& arg_04,
62381 const t_ARG_05& arg_05,
62382 const t_ARG_06& arg_06,
62383 const t_ARG_07& arg_07,
62384 const t_ARG_08& arg_08,
62385 const t_ARG_09& arg_09);
62386
62387 template <size_t t_INDEX,
62388 class t_ARG_01,
62389 class t_ARG_02,
62390 class t_ARG_03,
62391 class t_ARG_04,
62392 class t_ARG_05,
62393 class t_ARG_06,
62394 class t_ARG_07,
62395 class t_ARG_08,
62396 class t_ARG_09,
62397 class t_ARG_10>
62398 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
62399 t_TAIL_02,
62400 t_TAIL_03,
62401 t_TAIL_04,
62402 t_TAIL_05,
62403 t_TAIL_06,
62404 t_TAIL_07,
62405 t_TAIL_08,
62406 t_TAIL_09,
62407 t_TAIL_10,
62408 t_TAIL_11,
62409 t_TAIL_12,
62410 t_TAIL_13> >::type&
62411 emplace(const t_ARG_01& arg_01,
62412 const t_ARG_02& arg_02,
62413 const t_ARG_03& arg_03,
62414 const t_ARG_04& arg_04,
62415 const t_ARG_05& arg_05,
62416 const t_ARG_06& arg_06,
62417 const t_ARG_07& arg_07,
62418 const t_ARG_08& arg_08,
62419 const t_ARG_09& arg_09,
62420 const t_ARG_10& arg_10);
62421#endif
62422
62423#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
62424 variant& operator=(const variant& rhs) = default;
62425
62426 variant& operator=(variant&& rhs) = default;
62427
62428 template <class t_TYPE>
62429 typename bsl::enable_if<
62430 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
62431 variant&>::type
62432 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
62433 {
62434 const size_t altIndex =
62435 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
62436
62437 if (index() == altIndex) {
62438 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
62439 value);
62440 }
62441 else {
62442 Variant_Base::template baseEmplace<altIndex>(
62443 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
62444 }
62445
62446 return *this;
62447 }
62448#else
62449 variant& operator=(const variant& rhs);
62450
62451 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
62452
62453 template <class t_TYPE>
62454 typename bsl::enable_if<
62455 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
62456 variant&>::type
62457 operator=(const t_TYPE& value);
62458
62459#endif
62460
62461 void swap(variant& other);
62462
62463#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
62464 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
62465 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
62466 t_TAIL_02,
62467 t_TAIL_03,
62468 t_TAIL_04,
62469 t_TAIL_05,
62470 t_TAIL_06,
62471 t_TAIL_07,
62472 t_TAIL_08,
62473 t_TAIL_09,
62474 t_TAIL_10,
62475 t_TAIL_11,
62476 t_TAIL_12,
62477 t_TAIL_13>::value,
62478 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
62479#endif
62480 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
62481 {
62482 return allocator_type(Variant_Base::AllocBase::mechanism());
62483 }
62484
62485
62486 size_t index() const BSLS_KEYWORD_NOEXCEPT;
62487
62488 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
62489};
62490#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 13
62491
62492#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 14
62493template <class t_HEAD, class t_TAIL_01,
62494 class t_TAIL_02,
62495 class t_TAIL_03,
62496 class t_TAIL_04,
62497 class t_TAIL_05,
62498 class t_TAIL_06,
62499 class t_TAIL_07,
62500 class t_TAIL_08,
62501 class t_TAIL_09,
62502 class t_TAIL_10,
62503 class t_TAIL_11,
62504 class t_TAIL_12,
62505 class t_TAIL_13,
62506 class t_TAIL_14>
62507class variant<t_HEAD, t_TAIL_01,
62508 t_TAIL_02,
62509 t_TAIL_03,
62510 t_TAIL_04,
62511 t_TAIL_05,
62512 t_TAIL_06,
62513 t_TAIL_07,
62514 t_TAIL_08,
62515 t_TAIL_09,
62516 t_TAIL_10,
62517 t_TAIL_11,
62518 t_TAIL_12,
62519 t_TAIL_13,
62520 t_TAIL_14>
62521: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
62522 t_TAIL_02,
62523 t_TAIL_03,
62524 t_TAIL_04,
62525 t_TAIL_05,
62526 t_TAIL_06,
62527 t_TAIL_07,
62528 t_TAIL_08,
62529 t_TAIL_09,
62530 t_TAIL_10,
62531 t_TAIL_11,
62532 t_TAIL_12,
62533 t_TAIL_13,
62534 t_TAIL_14>
62535#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
62536,
62537 private BloombergLP::bslstl::Variant_SMFBase<
62538 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
62539 t_TAIL_01,
62540 t_TAIL_02,
62541 t_TAIL_03,
62542 t_TAIL_04,
62543 t_TAIL_05,
62544 t_TAIL_06,
62545 t_TAIL_07,
62546 t_TAIL_08,
62547 t_TAIL_09,
62548 t_TAIL_10,
62549 t_TAIL_11,
62550 t_TAIL_12,
62551 t_TAIL_13,
62552 t_TAIL_14>::value,
62553 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
62554 t_TAIL_01,
62555 t_TAIL_02,
62556 t_TAIL_03,
62557 t_TAIL_04,
62558 t_TAIL_05,
62559 t_TAIL_06,
62560 t_TAIL_07,
62561 t_TAIL_08,
62562 t_TAIL_09,
62563 t_TAIL_10,
62564 t_TAIL_11,
62565 t_TAIL_12,
62566 t_TAIL_13,
62567 t_TAIL_14>::value,
62568 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
62569 t_TAIL_01,
62570 t_TAIL_02,
62571 t_TAIL_03,
62572 t_TAIL_04,
62573 t_TAIL_05,
62574 t_TAIL_06,
62575 t_TAIL_07,
62576 t_TAIL_08,
62577 t_TAIL_09,
62578 t_TAIL_10,
62579 t_TAIL_11,
62580 t_TAIL_12,
62581 t_TAIL_13,
62582 t_TAIL_14>::value &&
62583 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
62584 t_TAIL_01,
62585 t_TAIL_02,
62586 t_TAIL_03,
62587 t_TAIL_04,
62588 t_TAIL_05,
62589 t_TAIL_06,
62590 t_TAIL_07,
62591 t_TAIL_08,
62592 t_TAIL_09,
62593 t_TAIL_10,
62594 t_TAIL_11,
62595 t_TAIL_12,
62596 t_TAIL_13,
62597 t_TAIL_14>::value,
62598 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
62599 t_TAIL_01,
62600 t_TAIL_02,
62601 t_TAIL_03,
62602 t_TAIL_04,
62603 t_TAIL_05,
62604 t_TAIL_06,
62605 t_TAIL_07,
62606 t_TAIL_08,
62607 t_TAIL_09,
62608 t_TAIL_10,
62609 t_TAIL_11,
62610 t_TAIL_12,
62611 t_TAIL_13,
62612 t_TAIL_14>::value &&
62613 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
62614 t_TAIL_01,
62615 t_TAIL_02,
62616 t_TAIL_03,
62617 t_TAIL_04,
62618 t_TAIL_05,
62619 t_TAIL_06,
62620 t_TAIL_07,
62621 t_TAIL_08,
62622 t_TAIL_09,
62623 t_TAIL_10,
62624 t_TAIL_11,
62625 t_TAIL_12,
62626 t_TAIL_13,
62627 t_TAIL_14>::value>
62628#endif
62629{
62630 private:
62631 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
62632 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
62633 t_TAIL_02,
62634 t_TAIL_03,
62635 t_TAIL_04,
62636 t_TAIL_05,
62637 t_TAIL_06,
62638 t_TAIL_07,
62639 t_TAIL_08,
62640 t_TAIL_09,
62641 t_TAIL_10,
62642 t_TAIL_11,
62643 t_TAIL_12,
62644 t_TAIL_13,
62645 t_TAIL_14> Variant_Base;
62646 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
62647 t_TAIL_02,
62648 t_TAIL_03,
62649 t_TAIL_04,
62650 t_TAIL_05,
62651 t_TAIL_06,
62652 t_TAIL_07,
62653 t_TAIL_08,
62654 t_TAIL_09,
62655 t_TAIL_10,
62656 t_TAIL_11,
62657 t_TAIL_12,
62658 t_TAIL_13,
62659 t_TAIL_14>
62660 Variant_Union;
62661
62662 friend struct BloombergLP::bslstl::Variant_ImpUtil;
62663
62664 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
62665 t_TAIL_02,
62666 t_TAIL_03,
62667 t_TAIL_04,
62668 t_TAIL_05,
62669 t_TAIL_06,
62670 t_TAIL_07,
62671 t_TAIL_08,
62672 t_TAIL_09,
62673 t_TAIL_10,
62674 t_TAIL_11,
62675 t_TAIL_12,
62676 t_TAIL_13,
62677 t_TAIL_14>;
62678
62679 public:
62681 variant,
62682 BloombergLP::bslma::UsesBslmaAllocator,
62683 (BloombergLP::bslstl::
62684 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
62685 t_TAIL_02,
62686 t_TAIL_03,
62687 t_TAIL_04,
62688 t_TAIL_05,
62689 t_TAIL_06,
62690 t_TAIL_07,
62691 t_TAIL_08,
62692 t_TAIL_09,
62693 t_TAIL_10,
62694 t_TAIL_11,
62695 t_TAIL_12,
62696 t_TAIL_13,
62697 t_TAIL_14>::value));
62699 variant,
62700 BloombergLP::bslmf::UsesAllocatorArgT,
62701 (BloombergLP::bslstl::
62702 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
62703 t_TAIL_02,
62704 t_TAIL_03,
62705 t_TAIL_04,
62706 t_TAIL_05,
62707 t_TAIL_06,
62708 t_TAIL_07,
62709 t_TAIL_08,
62710 t_TAIL_09,
62711 t_TAIL_10,
62712 t_TAIL_11,
62713 t_TAIL_12,
62714 t_TAIL_13,
62715 t_TAIL_14>::value));
62717 variant,
62718 BloombergLP::bslmf::IsBitwiseMoveable,
62719 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
62720 t_TAIL_01,
62721 t_TAIL_02,
62722 t_TAIL_03,
62723 t_TAIL_04,
62724 t_TAIL_05,
62725 t_TAIL_06,
62726 t_TAIL_07,
62727 t_TAIL_08,
62728 t_TAIL_09,
62729 t_TAIL_10,
62730 t_TAIL_11,
62731 t_TAIL_12,
62732 t_TAIL_13,
62733 t_TAIL_14>::value));
62734
62735
62736 typedef typename Variant_Base::allocator_type allocator_type;
62737
62738
62739#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
62740 template <class t_FIRST_ALT = t_HEAD,
62741 class = typename bsl::enable_if_t<
62742 std::is_default_constructible<t_FIRST_ALT>::value> >
62743 variant()
62744 : Variant_Base()
62745 {
62746 }
62747
62748 variant(const variant& original) = default;
62749
62750 variant(variant&& original) = default;
62751
62752#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
62753 template <class t_STD_VARIANT>
62754 explicit variant(
62755 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
62757 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
62758 original.index())
62759 {
62760 if (!valueless_by_exception()) {
62761 BloombergLP::bslstl::Variant_ImpUtil::
62762 ConstructFromStdVisitor<variant, decltype(original)>
62763 visitor(*this, original);
62764 BSLSTL_VARIANT_VISITID(void, visitor, *this);
62765 }
62766 }
62767#endif
62768
62769 template <class t_TYPE>
62770 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
62772
62773 template <class t_TYPE,
62774 class t_ARGS_01,
62775 class t_ARGS_02,
62776 class t_ARGS_03,
62777 class t_ARGS_04,
62778 class t_ARGS_05,
62779 class t_ARGS_06,
62780 class t_ARGS_07,
62781 class t_ARGS_08,
62782 class t_ARGS_09,
62783 class t_ARGS_10,
62784 class t_ARGS_11,
62785 class t_ARGS_12,
62786 class t_ARGS_13,
62787 class t_ARGS_14,
62788 class = typename bsl::enable_if_t<
62790 std::is_constructible<t_TYPE, t_ARGS_01,
62791 t_ARGS_02,
62792 t_ARGS_03,
62793 t_ARGS_04,
62794 t_ARGS_05,
62795 t_ARGS_06,
62796 t_ARGS_07,
62797 t_ARGS_08,
62798 t_ARGS_09,
62799 t_ARGS_10,
62800 t_ARGS_11,
62801 t_ARGS_12,
62802 t_ARGS_13,
62803 t_ARGS_14>::value> >
62804 explicit variant(bsl::in_place_type_t<t_TYPE>,
62805 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
62806 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
62807 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
62808 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
62809 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
62810 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
62811 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
62812 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
62813 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
62814 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
62815 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
62816 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
62817 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
62818 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
62819 : Variant_Base(
62820 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
62821 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
62822 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
62823 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
62824 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
62825 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
62826 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
62827 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
62828 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
62829 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
62830 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
62831 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
62832 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
62833 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
62834 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14))
62835 {
62836 }
62837
62838 template <class t_TYPE,
62839 class INIT_LIST_TYPE,
62840 class t_ARGS_01,
62841 class t_ARGS_02,
62842 class t_ARGS_03,
62843 class t_ARGS_04,
62844 class t_ARGS_05,
62845 class t_ARGS_06,
62846 class t_ARGS_07,
62847 class t_ARGS_08,
62848 class t_ARGS_09,
62849 class t_ARGS_10,
62850 class t_ARGS_11,
62851 class t_ARGS_12,
62852 class t_ARGS_13,
62853 class t_ARGS_14,
62854 class = typename bsl::enable_if_t<
62856 std::is_constructible<t_TYPE,
62857 std::initializer_list<INIT_LIST_TYPE>&,
62858 t_ARGS_01,
62859 t_ARGS_02,
62860 t_ARGS_03,
62861 t_ARGS_04,
62862 t_ARGS_05,
62863 t_ARGS_06,
62864 t_ARGS_07,
62865 t_ARGS_08,
62866 t_ARGS_09,
62867 t_ARGS_10,
62868 t_ARGS_11,
62869 t_ARGS_12,
62870 t_ARGS_13,
62871 t_ARGS_14>::value> >
62872 explicit variant(bsl::in_place_type_t<t_TYPE>,
62873 std::initializer_list<INIT_LIST_TYPE> il,
62874 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
62875 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
62876 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
62877 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
62878 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
62879 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
62880 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
62881 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
62882 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
62883 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
62884 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
62885 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
62886 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
62887 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
62888 : Variant_Base(
62889 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
62890 il,
62891 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
62892 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
62893 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
62894 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
62895 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
62896 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
62897 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
62898 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
62899 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
62900 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
62901 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
62902 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
62903 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
62904 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14))
62905 {
62906 }
62907
62908 template <size_t t_INDEX,
62909 class t_ARGS_01,
62910 class t_ARGS_02,
62911 class t_ARGS_03,
62912 class t_ARGS_04,
62913 class t_ARGS_05,
62914 class t_ARGS_06,
62915 class t_ARGS_07,
62916 class t_ARGS_08,
62917 class t_ARGS_09,
62918 class t_ARGS_10,
62919 class t_ARGS_11,
62920 class t_ARGS_12,
62921 class t_ARGS_13,
62922 class t_ARGS_14,
62923 class = typename bsl::enable_if_t<
62924 (t_INDEX < 1 + 14u) &&
62925 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
62926 t_ARGS_01,
62927 t_ARGS_02,
62928 t_ARGS_03,
62929 t_ARGS_04,
62930 t_ARGS_05,
62931 t_ARGS_06,
62932 t_ARGS_07,
62933 t_ARGS_08,
62934 t_ARGS_09,
62935 t_ARGS_10,
62936 t_ARGS_11,
62937 t_ARGS_12,
62938 t_ARGS_13,
62939 t_ARGS_14>::value> >
62940 explicit variant(bsl::in_place_index_t<t_INDEX>,
62941 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
62942 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
62943 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
62944 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
62945 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
62946 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
62947 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
62948 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
62949 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
62950 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
62951 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
62952 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
62953 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
62954 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
62955 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
62956 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
62957 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
62958 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
62959 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
62960 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
62961 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
62962 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
62963 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
62964 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
62965 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
62966 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
62967 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
62968 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
62969 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14))
62970 {
62971 }
62972
62973 template <size_t t_INDEX,
62974 class INIT_LIST_TYPE,
62975 class t_ARGS_01,
62976 class t_ARGS_02,
62977 class t_ARGS_03,
62978 class t_ARGS_04,
62979 class t_ARGS_05,
62980 class t_ARGS_06,
62981 class t_ARGS_07,
62982 class t_ARGS_08,
62983 class t_ARGS_09,
62984 class t_ARGS_10,
62985 class t_ARGS_11,
62986 class t_ARGS_12,
62987 class t_ARGS_13,
62988 class t_ARGS_14,
62989 class = typename bsl::enable_if_t<
62990 (t_INDEX < 1 + 14u) &&
62991 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
62992 std::initializer_list<INIT_LIST_TYPE>&,
62993 t_ARGS_01,
62994 t_ARGS_02,
62995 t_ARGS_03,
62996 t_ARGS_04,
62997 t_ARGS_05,
62998 t_ARGS_06,
62999 t_ARGS_07,
63000 t_ARGS_08,
63001 t_ARGS_09,
63002 t_ARGS_10,
63003 t_ARGS_11,
63004 t_ARGS_12,
63005 t_ARGS_13,
63006 t_ARGS_14>::value> >
63007 explicit variant(bsl::in_place_index_t<t_INDEX>,
63008 std::initializer_list<INIT_LIST_TYPE> il,
63009 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
63010 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
63011 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
63012 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
63013 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
63014 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
63015 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
63016 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
63017 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
63018 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
63019 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
63020 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
63021 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
63022 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
63023 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
63024 il,
63025 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
63026 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
63027 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
63028 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
63029 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
63030 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
63031 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
63032 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
63033 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
63034 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
63035 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
63036 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
63037 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
63038 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14))
63039 {
63040 }
63041
63042 template <class FIRST = t_HEAD,
63043 class = typename bsl::enable_if_t<
63044 std::is_default_constructible<FIRST>::value> >
63045 variant(bsl::allocator_arg_t, allocator_type allocator)
63046 : Variant_Base(bsl::allocator_arg_t(), allocator)
63047 {
63048 }
63049
63050 template <
63051 class FIRST = t_HEAD,
63052 class = typename bsl::enable_if_t<
63053 BloombergLP::bslstl::
63054 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
63055 t_TAIL_02,
63056 t_TAIL_03,
63057 t_TAIL_04,
63058 t_TAIL_05,
63059 t_TAIL_06,
63060 t_TAIL_07,
63061 t_TAIL_08,
63062 t_TAIL_09,
63063 t_TAIL_10,
63064 t_TAIL_11,
63065 t_TAIL_12,
63066 t_TAIL_13,
63067 t_TAIL_14>::value> >
63068 variant(bsl::allocator_arg_t,
63069 allocator_type allocator,
63070 const variant& original)
63071 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
63072 {
63073 }
63074 template <
63075 class FIRST = t_HEAD,
63076 class = typename bsl::enable_if_t<
63077 BloombergLP::bslstl::
63078 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
63079 t_TAIL_02,
63080 t_TAIL_03,
63081 t_TAIL_04,
63082 t_TAIL_05,
63083 t_TAIL_06,
63084 t_TAIL_07,
63085 t_TAIL_08,
63086 t_TAIL_09,
63087 t_TAIL_10,
63088 t_TAIL_11,
63089 t_TAIL_12,
63090 t_TAIL_13,
63091 t_TAIL_14>::value> >
63092 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
63093 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
63094 {
63095 }
63096
63097#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
63098 template <class t_STD_VARIANT>
63099 explicit variant(
63100 bsl::allocator_arg_t,
63101 allocator_type allocator,
63102 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
63104 : Variant_Base(bsl::allocator_arg_t(),
63105 allocator,
63106 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
63107 original.index())
63108 {
63109 if (!valueless_by_exception()) {
63110 BloombergLP::bslstl::Variant_ImpUtil::
63111 ConstructFromStdVisitor<variant, decltype(original)>
63112 visitor(*this, original);
63113 BSLSTL_VARIANT_VISITID(void, visitor, *this);
63114 }
63115 }
63116#endif
63117
63118 template <class t_TYPE>
63119 variant(
63120 bsl::allocator_arg_t,
63121 allocator_type allocator,
63124
63125 template <class t_TYPE,
63126 class t_ARGS_01,
63127 class t_ARGS_02,
63128 class t_ARGS_03,
63129 class t_ARGS_04,
63130 class t_ARGS_05,
63131 class t_ARGS_06,
63132 class t_ARGS_07,
63133 class t_ARGS_08,
63134 class t_ARGS_09,
63135 class t_ARGS_10,
63136 class t_ARGS_11,
63137 class t_ARGS_12,
63138 class t_ARGS_13,
63139 class t_ARGS_14,
63140 class = typename bsl::enable_if_t<
63142 std::is_constructible<t_TYPE, t_ARGS_01,
63143 t_ARGS_02,
63144 t_ARGS_03,
63145 t_ARGS_04,
63146 t_ARGS_05,
63147 t_ARGS_06,
63148 t_ARGS_07,
63149 t_ARGS_08,
63150 t_ARGS_09,
63151 t_ARGS_10,
63152 t_ARGS_11,
63153 t_ARGS_12,
63154 t_ARGS_13,
63155 t_ARGS_14>::value> >
63156 explicit variant(bsl::allocator_arg_t,
63157 allocator_type allocator,
63159 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
63160 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
63161 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
63162 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
63163 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
63164 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
63165 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
63166 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
63167 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
63168 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
63169 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
63170 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
63171 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
63172 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
63173 : Variant_Base(
63174 bsl::allocator_arg_t{}
63175,
63176 allocator,
63177 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
63178 std::forward<t_ARGS_01>(args_01),
63179 std::forward<t_ARGS_02>(args_02),
63180 std::forward<t_ARGS_03>(args_03),
63181 std::forward<t_ARGS_04>(args_04),
63182 std::forward<t_ARGS_05>(args_05),
63183 std::forward<t_ARGS_06>(args_06),
63184 std::forward<t_ARGS_07>(args_07),
63185 std::forward<t_ARGS_08>(args_08),
63186 std::forward<t_ARGS_09>(args_09),
63187 std::forward<t_ARGS_10>(args_10),
63188 std::forward<t_ARGS_11>(args_11),
63189 std::forward<t_ARGS_12>(args_12),
63190 std::forward<t_ARGS_13>(args_13),
63191 std::forward<t_ARGS_14>(args_14))
63192 {
63193 }
63194
63195 template <class t_TYPE,
63196 class INIT_LIST_TYPE,
63197 class t_ARGS_01,
63198 class t_ARGS_02,
63199 class t_ARGS_03,
63200 class t_ARGS_04,
63201 class t_ARGS_05,
63202 class t_ARGS_06,
63203 class t_ARGS_07,
63204 class t_ARGS_08,
63205 class t_ARGS_09,
63206 class t_ARGS_10,
63207 class t_ARGS_11,
63208 class t_ARGS_12,
63209 class t_ARGS_13,
63210 class t_ARGS_14,
63211 class = typename bsl::enable_if_t<
63213 std::is_constructible<t_TYPE,
63214 std::initializer_list<INIT_LIST_TYPE>&,
63215 t_ARGS_01,
63216 t_ARGS_02,
63217 t_ARGS_03,
63218 t_ARGS_04,
63219 t_ARGS_05,
63220 t_ARGS_06,
63221 t_ARGS_07,
63222 t_ARGS_08,
63223 t_ARGS_09,
63224 t_ARGS_10,
63225 t_ARGS_11,
63226 t_ARGS_12,
63227 t_ARGS_13,
63228 t_ARGS_14>::value> >
63229 explicit variant(bsl::allocator_arg_t,
63230 allocator_type allocator,
63232 std::initializer_list<INIT_LIST_TYPE> il,
63233 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
63234 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
63235 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
63236 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
63237 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
63238 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
63239 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
63240 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
63241 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
63242 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
63243 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
63244 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
63245 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
63246 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
63247 : Variant_Base(
63248 bsl::allocator_arg_t{}
63249,
63250 allocator,
63251 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
63252 il,
63253 std::forward<t_ARGS_01>(args_01),
63254 std::forward<t_ARGS_02>(args_02),
63255 std::forward<t_ARGS_03>(args_03),
63256 std::forward<t_ARGS_04>(args_04),
63257 std::forward<t_ARGS_05>(args_05),
63258 std::forward<t_ARGS_06>(args_06),
63259 std::forward<t_ARGS_07>(args_07),
63260 std::forward<t_ARGS_08>(args_08),
63261 std::forward<t_ARGS_09>(args_09),
63262 std::forward<t_ARGS_10>(args_10),
63263 std::forward<t_ARGS_11>(args_11),
63264 std::forward<t_ARGS_12>(args_12),
63265 std::forward<t_ARGS_13>(args_13),
63266 std::forward<t_ARGS_14>(args_14))
63267 {
63268 }
63269
63270 template <size_t t_INDEX,
63271 class t_ARGS_01,
63272 class t_ARGS_02,
63273 class t_ARGS_03,
63274 class t_ARGS_04,
63275 class t_ARGS_05,
63276 class t_ARGS_06,
63277 class t_ARGS_07,
63278 class t_ARGS_08,
63279 class t_ARGS_09,
63280 class t_ARGS_10,
63281 class t_ARGS_11,
63282 class t_ARGS_12,
63283 class t_ARGS_13,
63284 class t_ARGS_14,
63285 class = typename bsl::enable_if_t<
63286 (t_INDEX < 1 + 14u) &&
63287 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
63288 t_ARGS_01,
63289 t_ARGS_02,
63290 t_ARGS_03,
63291 t_ARGS_04,
63292 t_ARGS_05,
63293 t_ARGS_06,
63294 t_ARGS_07,
63295 t_ARGS_08,
63296 t_ARGS_09,
63297 t_ARGS_10,
63298 t_ARGS_11,
63299 t_ARGS_12,
63300 t_ARGS_13,
63301 t_ARGS_14>::value> >
63302 explicit variant(bsl::allocator_arg_t,
63303 allocator_type allocator,
63305 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
63306 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
63307 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
63308 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
63309 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
63310 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
63311 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
63312 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
63313 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
63314 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
63315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
63316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
63317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
63318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
63319 : Variant_Base(bsl::allocator_arg_t{}
63320,
63321 allocator,
63322 bsl::in_place_index_t<t_INDEX>(),
63323 std::forward<t_ARGS_01>(args_01),
63324 std::forward<t_ARGS_02>(args_02),
63325 std::forward<t_ARGS_03>(args_03),
63326 std::forward<t_ARGS_04>(args_04),
63327 std::forward<t_ARGS_05>(args_05),
63328 std::forward<t_ARGS_06>(args_06),
63329 std::forward<t_ARGS_07>(args_07),
63330 std::forward<t_ARGS_08>(args_08),
63331 std::forward<t_ARGS_09>(args_09),
63332 std::forward<t_ARGS_10>(args_10),
63333 std::forward<t_ARGS_11>(args_11),
63334 std::forward<t_ARGS_12>(args_12),
63335 std::forward<t_ARGS_13>(args_13),
63336 std::forward<t_ARGS_14>(args_14))
63337 {
63338 }
63339
63340 template <size_t t_INDEX,
63341 class INIT_LIST_TYPE,
63342 class t_ARGS_01,
63343 class t_ARGS_02,
63344 class t_ARGS_03,
63345 class t_ARGS_04,
63346 class t_ARGS_05,
63347 class t_ARGS_06,
63348 class t_ARGS_07,
63349 class t_ARGS_08,
63350 class t_ARGS_09,
63351 class t_ARGS_10,
63352 class t_ARGS_11,
63353 class t_ARGS_12,
63354 class t_ARGS_13,
63355 class t_ARGS_14,
63356 class = typename bsl::enable_if_t<
63357 (t_INDEX < 1 + 14u) &&
63358 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
63359 std::initializer_list<INIT_LIST_TYPE>&,
63360 t_ARGS_01,
63361 t_ARGS_02,
63362 t_ARGS_03,
63363 t_ARGS_04,
63364 t_ARGS_05,
63365 t_ARGS_06,
63366 t_ARGS_07,
63367 t_ARGS_08,
63368 t_ARGS_09,
63369 t_ARGS_10,
63370 t_ARGS_11,
63371 t_ARGS_12,
63372 t_ARGS_13,
63373 t_ARGS_14>::value> >
63374 explicit variant(bsl::allocator_arg_t,
63375 allocator_type allocator,
63377 std::initializer_list<INIT_LIST_TYPE> il,
63378 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
63379 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
63380 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
63381 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
63382 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
63383 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
63384 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
63385 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
63386 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
63387 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
63388 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
63389 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
63390 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
63391 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
63392 : Variant_Base(bsl::allocator_arg_t{}
63393,
63394 allocator,
63395 bsl::in_place_index_t<t_INDEX>(),
63396 il,
63397 std::forward<t_ARGS_01>(args_01),
63398 std::forward<t_ARGS_02>(args_02),
63399 std::forward<t_ARGS_03>(args_03),
63400 std::forward<t_ARGS_04>(args_04),
63401 std::forward<t_ARGS_05>(args_05),
63402 std::forward<t_ARGS_06>(args_06),
63403 std::forward<t_ARGS_07>(args_07),
63404 std::forward<t_ARGS_08>(args_08),
63405 std::forward<t_ARGS_09>(args_09),
63406 std::forward<t_ARGS_10>(args_10),
63407 std::forward<t_ARGS_11>(args_11),
63408 std::forward<t_ARGS_12>(args_12),
63409 std::forward<t_ARGS_13>(args_13),
63410 std::forward<t_ARGS_14>(args_14))
63411 {
63412 }
63413
63414#else
63415
63416 variant();
63417
63418 variant(const variant& original);
63419
63420 variant(BloombergLP::bslmf::MovableRef<variant> original);
63421
63422 template <class t_TYPE>
63423 variant(const t_TYPE& value,
63425
63426 template <class t_TYPE>
63427 explicit variant(bsl::in_place_type_t<t_TYPE>,
63429
63430 template <class t_TYPE, class t_ARG_01>
63431 explicit variant(bsl::in_place_type_t<t_TYPE>,
63432 const t_ARG_01& arg_01,
63434
63435 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
63436 explicit variant(bsl::in_place_type_t<t_TYPE>,
63437 const t_ARG_01& arg_01,
63438 const t_ARG_02& arg_02,
63440
63441 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
63442 explicit variant(bsl::in_place_type_t<t_TYPE>,
63443 const t_ARG_01& arg_01,
63444 const t_ARG_02& arg_02,
63445 const t_ARG_03& arg_03,
63447
63448 template <class t_TYPE,
63449 class t_ARG_01,
63450 class t_ARG_02,
63451 class t_ARG_03,
63452 class t_ARG_04>
63453 explicit variant(bsl::in_place_type_t<t_TYPE>,
63454 const t_ARG_01& arg_01,
63455 const t_ARG_02& arg_02,
63456 const t_ARG_03& arg_03,
63457 const t_ARG_04& arg_04,
63459
63460 template <class t_TYPE,
63461 class t_ARG_01,
63462 class t_ARG_02,
63463 class t_ARG_03,
63464 class t_ARG_04,
63465 class t_ARG_05>
63466 explicit variant(bsl::in_place_type_t<t_TYPE>,
63467 const t_ARG_01& arg_01,
63468 const t_ARG_02& arg_02,
63469 const t_ARG_03& arg_03,
63470 const t_ARG_04& arg_04,
63471 const t_ARG_05& arg_05,
63473
63474 template <class t_TYPE,
63475 class t_ARG_01,
63476 class t_ARG_02,
63477 class t_ARG_03,
63478 class t_ARG_04,
63479 class t_ARG_05,
63480 class t_ARG_06>
63481 explicit variant(bsl::in_place_type_t<t_TYPE>,
63482 const t_ARG_01& arg_01,
63483 const t_ARG_02& arg_02,
63484 const t_ARG_03& arg_03,
63485 const t_ARG_04& arg_04,
63486 const t_ARG_05& arg_05,
63487 const t_ARG_06& arg_06,
63489
63490 template <class t_TYPE,
63491 class t_ARG_01,
63492 class t_ARG_02,
63493 class t_ARG_03,
63494 class t_ARG_04,
63495 class t_ARG_05,
63496 class t_ARG_06,
63497 class t_ARG_07>
63498 explicit variant(bsl::in_place_type_t<t_TYPE>,
63499 const t_ARG_01& arg_01,
63500 const t_ARG_02& arg_02,
63501 const t_ARG_03& arg_03,
63502 const t_ARG_04& arg_04,
63503 const t_ARG_05& arg_05,
63504 const t_ARG_06& arg_06,
63505 const t_ARG_07& arg_07,
63507
63508 template <class t_TYPE,
63509 class t_ARG_01,
63510 class t_ARG_02,
63511 class t_ARG_03,
63512 class t_ARG_04,
63513 class t_ARG_05,
63514 class t_ARG_06,
63515 class t_ARG_07,
63516 class t_ARG_08>
63517 explicit variant(bsl::in_place_type_t<t_TYPE>,
63518 const t_ARG_01& arg_01,
63519 const t_ARG_02& arg_02,
63520 const t_ARG_03& arg_03,
63521 const t_ARG_04& arg_04,
63522 const t_ARG_05& arg_05,
63523 const t_ARG_06& arg_06,
63524 const t_ARG_07& arg_07,
63525 const t_ARG_08& arg_08,
63527
63528 template <class t_TYPE,
63529 class t_ARG_01,
63530 class t_ARG_02,
63531 class t_ARG_03,
63532 class t_ARG_04,
63533 class t_ARG_05,
63534 class t_ARG_06,
63535 class t_ARG_07,
63536 class t_ARG_08,
63537 class t_ARG_09>
63538 explicit variant(bsl::in_place_type_t<t_TYPE>,
63539 const t_ARG_01& arg_01,
63540 const t_ARG_02& arg_02,
63541 const t_ARG_03& arg_03,
63542 const t_ARG_04& arg_04,
63543 const t_ARG_05& arg_05,
63544 const t_ARG_06& arg_06,
63545 const t_ARG_07& arg_07,
63546 const t_ARG_08& arg_08,
63547 const t_ARG_09& arg_09,
63549
63550 template <class t_TYPE,
63551 class t_ARG_01,
63552 class t_ARG_02,
63553 class t_ARG_03,
63554 class t_ARG_04,
63555 class t_ARG_05,
63556 class t_ARG_06,
63557 class t_ARG_07,
63558 class t_ARG_08,
63559 class t_ARG_09,
63560 class t_ARG_10>
63561 explicit variant(bsl::in_place_type_t<t_TYPE>,
63562 const t_ARG_01& arg_01,
63563 const t_ARG_02& arg_02,
63564 const t_ARG_03& arg_03,
63565 const t_ARG_04& arg_04,
63566 const t_ARG_05& arg_05,
63567 const t_ARG_06& arg_06,
63568 const t_ARG_07& arg_07,
63569 const t_ARG_08& arg_08,
63570 const t_ARG_09& arg_09,
63571 const t_ARG_10& arg_10,
63573
63574 template <size_t t_INDEX>
63575 explicit variant(bsl::in_place_index_t<t_INDEX>);
63576
63577 template <size_t t_INDEX, class t_ARG_01>
63578 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
63579
63580 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
63581 explicit variant(bsl::in_place_index_t<t_INDEX>,
63582 const t_ARG_01& arg_01,
63583 const t_ARG_02& arg_02);
63584
63585 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
63586 explicit variant(bsl::in_place_index_t<t_INDEX>,
63587 const t_ARG_01& arg_01,
63588 const t_ARG_02& arg_02,
63589 const t_ARG_03& arg_03);
63590
63591 template <size_t t_INDEX,
63592 class t_ARG_01,
63593 class t_ARG_02,
63594 class t_ARG_03,
63595 class t_ARG_04>
63596 explicit variant(bsl::in_place_index_t<t_INDEX>,
63597 const t_ARG_01& arg_01,
63598 const t_ARG_02& arg_02,
63599 const t_ARG_03& arg_03,
63600 const t_ARG_04& arg_04);
63601
63602 template <size_t t_INDEX,
63603 class t_ARG_01,
63604 class t_ARG_02,
63605 class t_ARG_03,
63606 class t_ARG_04,
63607 class t_ARG_05>
63608 explicit variant(bsl::in_place_index_t<t_INDEX>,
63609 const t_ARG_01& arg_01,
63610 const t_ARG_02& arg_02,
63611 const t_ARG_03& arg_03,
63612 const t_ARG_04& arg_04,
63613 const t_ARG_05& arg_05);
63614
63615 template <size_t t_INDEX,
63616 class t_ARG_01,
63617 class t_ARG_02,
63618 class t_ARG_03,
63619 class t_ARG_04,
63620 class t_ARG_05,
63621 class t_ARG_06>
63622 explicit variant(bsl::in_place_index_t<t_INDEX>,
63623 const t_ARG_01& arg_01,
63624 const t_ARG_02& arg_02,
63625 const t_ARG_03& arg_03,
63626 const t_ARG_04& arg_04,
63627 const t_ARG_05& arg_05,
63628 const t_ARG_06& arg_06);
63629
63630 template <size_t t_INDEX,
63631 class t_ARG_01,
63632 class t_ARG_02,
63633 class t_ARG_03,
63634 class t_ARG_04,
63635 class t_ARG_05,
63636 class t_ARG_06,
63637 class t_ARG_07>
63638 explicit variant(bsl::in_place_index_t<t_INDEX>,
63639 const t_ARG_01& arg_01,
63640 const t_ARG_02& arg_02,
63641 const t_ARG_03& arg_03,
63642 const t_ARG_04& arg_04,
63643 const t_ARG_05& arg_05,
63644 const t_ARG_06& arg_06,
63645 const t_ARG_07& arg_07);
63646
63647 template <size_t t_INDEX,
63648 class t_ARG_01,
63649 class t_ARG_02,
63650 class t_ARG_03,
63651 class t_ARG_04,
63652 class t_ARG_05,
63653 class t_ARG_06,
63654 class t_ARG_07,
63655 class t_ARG_08>
63656 explicit variant(bsl::in_place_index_t<t_INDEX>,
63657 const t_ARG_01& arg_01,
63658 const t_ARG_02& arg_02,
63659 const t_ARG_03& arg_03,
63660 const t_ARG_04& arg_04,
63661 const t_ARG_05& arg_05,
63662 const t_ARG_06& arg_06,
63663 const t_ARG_07& arg_07,
63664 const t_ARG_08& arg_08);
63665
63666 template <size_t t_INDEX,
63667 class t_ARG_01,
63668 class t_ARG_02,
63669 class t_ARG_03,
63670 class t_ARG_04,
63671 class t_ARG_05,
63672 class t_ARG_06,
63673 class t_ARG_07,
63674 class t_ARG_08,
63675 class t_ARG_09>
63676 explicit variant(bsl::in_place_index_t<t_INDEX>,
63677 const t_ARG_01& arg_01,
63678 const t_ARG_02& arg_02,
63679 const t_ARG_03& arg_03,
63680 const t_ARG_04& arg_04,
63681 const t_ARG_05& arg_05,
63682 const t_ARG_06& arg_06,
63683 const t_ARG_07& arg_07,
63684 const t_ARG_08& arg_08,
63685 const t_ARG_09& arg_09);
63686
63687 template <size_t t_INDEX,
63688 class t_ARG_01,
63689 class t_ARG_02,
63690 class t_ARG_03,
63691 class t_ARG_04,
63692 class t_ARG_05,
63693 class t_ARG_06,
63694 class t_ARG_07,
63695 class t_ARG_08,
63696 class t_ARG_09,
63697 class t_ARG_10>
63698 explicit variant(bsl::in_place_index_t<t_INDEX>,
63699 const t_ARG_01& arg_01,
63700 const t_ARG_02& arg_02,
63701 const t_ARG_03& arg_03,
63702 const t_ARG_04& arg_04,
63703 const t_ARG_05& arg_05,
63704 const t_ARG_06& arg_06,
63705 const t_ARG_07& arg_07,
63706 const t_ARG_08& arg_08,
63707 const t_ARG_09& arg_09,
63708 const t_ARG_10& arg_10);
63709
63710 variant(bsl::allocator_arg_t, allocator_type allocator);
63711
63712 variant(bsl::allocator_arg_t,
63713 allocator_type allocator,
63714 const variant& original);
63715 variant(bsl::allocator_arg_t,
63716 allocator_type allocator,
63717 BloombergLP::bslmf::MovableRef<variant> original);
63718
63719 template <class t_TYPE>
63720 variant(
63721 bsl::allocator_arg_t,
63722 allocator_type allocator,
63723 const t_TYPE& value,
63725
63726 template <class t_TYPE>
63727 explicit variant(
63728 bsl::allocator_arg_t,
63729 allocator_type allocator,
63732
63733 template <class t_TYPE, class t_ARG_01>
63734 explicit variant(
63735 bsl::allocator_arg_t,
63736 allocator_type allocator,
63738 const t_ARG_01& arg_01,
63740
63741 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
63742 explicit variant(
63743 bsl::allocator_arg_t,
63744 allocator_type allocator,
63746 const t_ARG_01& arg_01,
63747 const t_ARG_02& arg_02,
63749
63750 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
63751 explicit variant(
63752 bsl::allocator_arg_t,
63753 allocator_type allocator,
63755 const t_ARG_01& arg_01,
63756 const t_ARG_02& arg_02,
63757 const t_ARG_03& arg_03,
63759
63760 template <class t_TYPE,
63761 class t_ARG_01,
63762 class t_ARG_02,
63763 class t_ARG_03,
63764 class t_ARG_04>
63765 explicit variant(bsl::allocator_arg_t,
63766 allocator_type allocator,
63768 const t_ARG_01& arg_01,
63769 const t_ARG_02& arg_02,
63770 const t_ARG_03& arg_03,
63771 const t_ARG_04& arg_04,
63773
63774 template <class t_TYPE,
63775 class t_ARG_01,
63776 class t_ARG_02,
63777 class t_ARG_03,
63778 class t_ARG_04,
63779 class t_ARG_05>
63780 explicit variant(bsl::allocator_arg_t,
63781 allocator_type allocator,
63783 const t_ARG_01& arg_01,
63784 const t_ARG_02& arg_02,
63785 const t_ARG_03& arg_03,
63786 const t_ARG_04& arg_04,
63787 const t_ARG_05& arg_05,
63789
63790 template <class t_TYPE,
63791 class t_ARG_01,
63792 class t_ARG_02,
63793 class t_ARG_03,
63794 class t_ARG_04,
63795 class t_ARG_05,
63796 class t_ARG_06>
63797 explicit variant(bsl::allocator_arg_t,
63798 allocator_type allocator,
63800 const t_ARG_01& arg_01,
63801 const t_ARG_02& arg_02,
63802 const t_ARG_03& arg_03,
63803 const t_ARG_04& arg_04,
63804 const t_ARG_05& arg_05,
63805 const t_ARG_06& arg_06,
63807
63808 template <class t_TYPE,
63809 class t_ARG_01,
63810 class t_ARG_02,
63811 class t_ARG_03,
63812 class t_ARG_04,
63813 class t_ARG_05,
63814 class t_ARG_06,
63815 class t_ARG_07>
63816 explicit variant(bsl::allocator_arg_t,
63817 allocator_type allocator,
63819 const t_ARG_01& arg_01,
63820 const t_ARG_02& arg_02,
63821 const t_ARG_03& arg_03,
63822 const t_ARG_04& arg_04,
63823 const t_ARG_05& arg_05,
63824 const t_ARG_06& arg_06,
63825 const t_ARG_07& arg_07,
63827
63828 template <class t_TYPE,
63829 class t_ARG_01,
63830 class t_ARG_02,
63831 class t_ARG_03,
63832 class t_ARG_04,
63833 class t_ARG_05,
63834 class t_ARG_06,
63835 class t_ARG_07,
63836 class t_ARG_08>
63837 explicit variant(bsl::allocator_arg_t,
63838 allocator_type allocator,
63840 const t_ARG_01& arg_01,
63841 const t_ARG_02& arg_02,
63842 const t_ARG_03& arg_03,
63843 const t_ARG_04& arg_04,
63844 const t_ARG_05& arg_05,
63845 const t_ARG_06& arg_06,
63846 const t_ARG_07& arg_07,
63847 const t_ARG_08& arg_08,
63849
63850 template <class t_TYPE,
63851 class t_ARG_01,
63852 class t_ARG_02,
63853 class t_ARG_03,
63854 class t_ARG_04,
63855 class t_ARG_05,
63856 class t_ARG_06,
63857 class t_ARG_07,
63858 class t_ARG_08,
63859 class t_ARG_09>
63860 explicit variant(bsl::allocator_arg_t,
63861 allocator_type allocator,
63863 const t_ARG_01& arg_01,
63864 const t_ARG_02& arg_02,
63865 const t_ARG_03& arg_03,
63866 const t_ARG_04& arg_04,
63867 const t_ARG_05& arg_05,
63868 const t_ARG_06& arg_06,
63869 const t_ARG_07& arg_07,
63870 const t_ARG_08& arg_08,
63871 const t_ARG_09& arg_09,
63873
63874 template <class t_TYPE,
63875 class t_ARG_01,
63876 class t_ARG_02,
63877 class t_ARG_03,
63878 class t_ARG_04,
63879 class t_ARG_05,
63880 class t_ARG_06,
63881 class t_ARG_07,
63882 class t_ARG_08,
63883 class t_ARG_09,
63884 class t_ARG_10>
63885 explicit variant(bsl::allocator_arg_t,
63886 allocator_type allocator,
63888 const t_ARG_01& arg_01,
63889 const t_ARG_02& arg_02,
63890 const t_ARG_03& arg_03,
63891 const t_ARG_04& arg_04,
63892 const t_ARG_05& arg_05,
63893 const t_ARG_06& arg_06,
63894 const t_ARG_07& arg_07,
63895 const t_ARG_08& arg_08,
63896 const t_ARG_09& arg_09,
63897 const t_ARG_10& arg_10,
63899
63900 template <size_t t_INDEX>
63901 explicit variant(bsl::allocator_arg_t,
63902 allocator_type allocator,
63904
63905 template <size_t t_INDEX, class t_ARG_01>
63906 explicit variant(bsl::allocator_arg_t,
63907 allocator_type allocator,
63909 const t_ARG_01& arg_01);
63910
63911 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
63912 explicit variant(bsl::allocator_arg_t,
63913 allocator_type allocator,
63915 const t_ARG_01& arg_01,
63916 const t_ARG_02& arg_02);
63917
63918 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
63919 explicit variant(bsl::allocator_arg_t,
63920 allocator_type allocator,
63922 const t_ARG_01& arg_01,
63923 const t_ARG_02& arg_02,
63924 const t_ARG_03& arg_03);
63925
63926 template <size_t t_INDEX,
63927 class t_ARG_01,
63928 class t_ARG_02,
63929 class t_ARG_03,
63930 class t_ARG_04>
63931 explicit variant(bsl::allocator_arg_t,
63932 allocator_type allocator,
63934 const t_ARG_01& arg_01,
63935 const t_ARG_02& arg_02,
63936 const t_ARG_03& arg_03,
63937 const t_ARG_04& arg_04);
63938
63939 template <size_t t_INDEX,
63940 class t_ARG_01,
63941 class t_ARG_02,
63942 class t_ARG_03,
63943 class t_ARG_04,
63944 class t_ARG_05>
63945 explicit variant(bsl::allocator_arg_t,
63946 allocator_type allocator,
63948 const t_ARG_01& arg_01,
63949 const t_ARG_02& arg_02,
63950 const t_ARG_03& arg_03,
63951 const t_ARG_04& arg_04,
63952 const t_ARG_05& arg_05);
63953
63954 template <size_t t_INDEX,
63955 class t_ARG_01,
63956 class t_ARG_02,
63957 class t_ARG_03,
63958 class t_ARG_04,
63959 class t_ARG_05,
63960 class t_ARG_06>
63961 explicit variant(bsl::allocator_arg_t,
63962 allocator_type allocator,
63964 const t_ARG_01& arg_01,
63965 const t_ARG_02& arg_02,
63966 const t_ARG_03& arg_03,
63967 const t_ARG_04& arg_04,
63968 const t_ARG_05& arg_05,
63969 const t_ARG_06& arg_06);
63970
63971 template <size_t t_INDEX,
63972 class t_ARG_01,
63973 class t_ARG_02,
63974 class t_ARG_03,
63975 class t_ARG_04,
63976 class t_ARG_05,
63977 class t_ARG_06,
63978 class t_ARG_07>
63979 explicit variant(bsl::allocator_arg_t,
63980 allocator_type allocator,
63982 const t_ARG_01& arg_01,
63983 const t_ARG_02& arg_02,
63984 const t_ARG_03& arg_03,
63985 const t_ARG_04& arg_04,
63986 const t_ARG_05& arg_05,
63987 const t_ARG_06& arg_06,
63988 const t_ARG_07& arg_07);
63989
63990 template <size_t t_INDEX,
63991 class t_ARG_01,
63992 class t_ARG_02,
63993 class t_ARG_03,
63994 class t_ARG_04,
63995 class t_ARG_05,
63996 class t_ARG_06,
63997 class t_ARG_07,
63998 class t_ARG_08>
63999 explicit variant(bsl::allocator_arg_t,
64000 allocator_type allocator,
64002 const t_ARG_01& arg_01,
64003 const t_ARG_02& arg_02,
64004 const t_ARG_03& arg_03,
64005 const t_ARG_04& arg_04,
64006 const t_ARG_05& arg_05,
64007 const t_ARG_06& arg_06,
64008 const t_ARG_07& arg_07,
64009 const t_ARG_08& arg_08);
64010
64011 template <size_t t_INDEX,
64012 class t_ARG_01,
64013 class t_ARG_02,
64014 class t_ARG_03,
64015 class t_ARG_04,
64016 class t_ARG_05,
64017 class t_ARG_06,
64018 class t_ARG_07,
64019 class t_ARG_08,
64020 class t_ARG_09>
64021 explicit variant(bsl::allocator_arg_t,
64022 allocator_type allocator,
64024 const t_ARG_01& arg_01,
64025 const t_ARG_02& arg_02,
64026 const t_ARG_03& arg_03,
64027 const t_ARG_04& arg_04,
64028 const t_ARG_05& arg_05,
64029 const t_ARG_06& arg_06,
64030 const t_ARG_07& arg_07,
64031 const t_ARG_08& arg_08,
64032 const t_ARG_09& arg_09);
64033
64034 template <size_t t_INDEX,
64035 class t_ARG_01,
64036 class t_ARG_02,
64037 class t_ARG_03,
64038 class t_ARG_04,
64039 class t_ARG_05,
64040 class t_ARG_06,
64041 class t_ARG_07,
64042 class t_ARG_08,
64043 class t_ARG_09,
64044 class t_ARG_10>
64045 explicit variant(bsl::allocator_arg_t,
64046 allocator_type allocator,
64048 const t_ARG_01& arg_01,
64049 const t_ARG_02& arg_02,
64050 const t_ARG_03& arg_03,
64051 const t_ARG_04& arg_04,
64052 const t_ARG_05& arg_05,
64053 const t_ARG_06& arg_06,
64054 const t_ARG_07& arg_07,
64055 const t_ARG_08& arg_08,
64056 const t_ARG_09& arg_09,
64057 const t_ARG_10& arg_10);
64058
64059#endif
64060
64061
64062#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
64063 template <class t_TYPE,
64064 class t_ARGS_01,
64065 class t_ARGS_02,
64066 class t_ARGS_03,
64067 class t_ARGS_04,
64068 class t_ARGS_05,
64069 class t_ARGS_06,
64070 class t_ARGS_07,
64071 class t_ARGS_08,
64072 class t_ARGS_09,
64073 class t_ARGS_10,
64074 class t_ARGS_11,
64075 class t_ARGS_12,
64076 class t_ARGS_13,
64077 class t_ARGS_14,
64078 class = typename bsl::enable_if_t<
64080 std::is_constructible<t_TYPE, t_ARGS_01,
64081 t_ARGS_02,
64082 t_ARGS_03,
64083 t_ARGS_04,
64084 t_ARGS_05,
64085 t_ARGS_06,
64086 t_ARGS_07,
64087 t_ARGS_08,
64088 t_ARGS_09,
64089 t_ARGS_10,
64090 t_ARGS_11,
64091 t_ARGS_12,
64092 t_ARGS_13,
64093 t_ARGS_14>::value> >
64094 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
64095 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
64096 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
64097 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
64098 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
64099 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
64100 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
64101 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
64102 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
64103 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
64104 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
64105 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
64106 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
64107 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
64108 {
64109 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
64110 Variant_Base::template baseEmplace<index>(
64111 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
64112 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
64113 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
64114 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
64115 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
64116 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
64117 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
64118 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
64119 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
64120 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
64121 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
64122 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
64123 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
64124 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14));
64125
64126 return bsl::get<index>(*this);
64127 }
64128
64129 template <class t_TYPE,
64130 class INIT_LIST_TYPE,
64131 class t_ARGS_01,
64132 class t_ARGS_02,
64133 class t_ARGS_03,
64134 class t_ARGS_04,
64135 class t_ARGS_05,
64136 class t_ARGS_06,
64137 class t_ARGS_07,
64138 class t_ARGS_08,
64139 class t_ARGS_09,
64140 class t_ARGS_10,
64141 class t_ARGS_11,
64142 class t_ARGS_12,
64143 class t_ARGS_13,
64144 class t_ARGS_14,
64145 class = typename bsl::enable_if_t<
64147 std::is_constructible<t_TYPE,
64148 std::initializer_list<INIT_LIST_TYPE>&,
64149 t_ARGS_01,
64150 t_ARGS_02,
64151 t_ARGS_03,
64152 t_ARGS_04,
64153 t_ARGS_05,
64154 t_ARGS_06,
64155 t_ARGS_07,
64156 t_ARGS_08,
64157 t_ARGS_09,
64158 t_ARGS_10,
64159 t_ARGS_11,
64160 t_ARGS_12,
64161 t_ARGS_13,
64162 t_ARGS_14>::value> >
64163 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
64164 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
64165 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
64166 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
64167 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
64168 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
64169 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
64170 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
64171 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
64172 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
64173 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
64174 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
64175 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
64176 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
64177 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
64178 {
64179 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
64180 Variant_Base::template baseEmplace<index>(
64181 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
64182 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
64183 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
64184 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
64185 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
64186 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
64187 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
64188 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
64189 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
64190 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
64191 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
64192 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
64193 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
64194 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14));
64195
64196 return bsl::get<index>(*this);
64197 }
64198
64199 template <size_t t_INDEX,
64200 class t_ARGS_01,
64201 class t_ARGS_02,
64202 class t_ARGS_03,
64203 class t_ARGS_04,
64204 class t_ARGS_05,
64205 class t_ARGS_06,
64206 class t_ARGS_07,
64207 class t_ARGS_08,
64208 class t_ARGS_09,
64209 class t_ARGS_10,
64210 class t_ARGS_11,
64211 class t_ARGS_12,
64212 class t_ARGS_13,
64213 class t_ARGS_14,
64214 class = typename bsl::enable_if_t<
64215 (t_INDEX < 1 + 14u) &&
64216 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
64217 t_ARGS_01,
64218 t_ARGS_02,
64219 t_ARGS_03,
64220 t_ARGS_04,
64221 t_ARGS_05,
64222 t_ARGS_06,
64223 t_ARGS_07,
64224 t_ARGS_08,
64225 t_ARGS_09,
64226 t_ARGS_10,
64227 t_ARGS_11,
64228 t_ARGS_12,
64229 t_ARGS_13,
64230 t_ARGS_14>::value> >
64231 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64232 t_TAIL_02,
64233 t_TAIL_03,
64234 t_TAIL_04,
64235 t_TAIL_05,
64236 t_TAIL_06,
64237 t_TAIL_07,
64238 t_TAIL_08,
64239 t_TAIL_09,
64240 t_TAIL_10,
64241 t_TAIL_11,
64242 t_TAIL_12,
64243 t_TAIL_13,
64244 t_TAIL_14> >::type&
64245 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
64246 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
64247 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
64248 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
64249 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
64250 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
64251 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
64252 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
64253 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
64254 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
64255 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
64256 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
64257 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
64258 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
64259 {
64260 Variant_Base::template baseEmplace<t_INDEX>(
64261 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
64262 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
64263 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
64264 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
64265 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
64266 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
64267 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
64268 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
64269 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
64270 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
64271 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
64272 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
64273 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
64274 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14));
64275
64276 return bsl::get<t_INDEX>(*this);
64277 }
64278
64279 template <size_t t_INDEX,
64280 class INIT_LIST_TYPE,
64281 class t_ARGS_01,
64282 class t_ARGS_02,
64283 class t_ARGS_03,
64284 class t_ARGS_04,
64285 class t_ARGS_05,
64286 class t_ARGS_06,
64287 class t_ARGS_07,
64288 class t_ARGS_08,
64289 class t_ARGS_09,
64290 class t_ARGS_10,
64291 class t_ARGS_11,
64292 class t_ARGS_12,
64293 class t_ARGS_13,
64294 class t_ARGS_14,
64295 class = typename bsl::enable_if_t<
64296 (t_INDEX < 1 + 14u) &&
64297 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
64298 std::initializer_list<INIT_LIST_TYPE>&,
64299 t_ARGS_01,
64300 t_ARGS_02,
64301 t_ARGS_03,
64302 t_ARGS_04,
64303 t_ARGS_05,
64304 t_ARGS_06,
64305 t_ARGS_07,
64306 t_ARGS_08,
64307 t_ARGS_09,
64308 t_ARGS_10,
64309 t_ARGS_11,
64310 t_ARGS_12,
64311 t_ARGS_13,
64312 t_ARGS_14>::value> >
64313 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64314 t_TAIL_02,
64315 t_TAIL_03,
64316 t_TAIL_04,
64317 t_TAIL_05,
64318 t_TAIL_06,
64319 t_TAIL_07,
64320 t_TAIL_08,
64321 t_TAIL_09,
64322 t_TAIL_10,
64323 t_TAIL_11,
64324 t_TAIL_12,
64325 t_TAIL_13,
64326 t_TAIL_14> >::type&
64327 emplace(std::initializer_list<INIT_LIST_TYPE> il,
64328 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
64329 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
64330 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
64331 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
64332 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
64333 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
64334 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
64335 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
64336 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
64337 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
64338 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
64339 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
64340 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
64341 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14)
64342 {
64343 Variant_Base::template baseEmplace<t_INDEX>(
64344 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
64345 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
64346 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
64347 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
64348 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
64349 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
64350 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
64351 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
64352 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
64353 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
64354 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
64355 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
64356 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
64357 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14));
64358
64359 return bsl::get<t_INDEX>(*this);
64360 }
64361
64362#else
64363
64364 template <class t_TYPE>
64365 typename bsl::enable_if<
64366 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64367 t_TYPE&>::type
64368 emplace();
64369
64370 template <class t_TYPE, class t_ARG_01>
64371 typename bsl::enable_if<
64372 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64373 t_TYPE&>::type
64374 emplace(const t_ARG_01& arg_01);
64375
64376 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
64377 typename bsl::enable_if<
64378 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64379 t_TYPE&>::type
64380 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
64381
64382 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
64383 typename bsl::enable_if<
64384 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64385 t_TYPE&>::type
64386 emplace(const t_ARG_01& arg_01,
64387 const t_ARG_02& arg_02,
64388 const t_ARG_03& arg_03);
64389
64390 template <class t_TYPE,
64391 class t_ARG_01,
64392 class t_ARG_02,
64393 class t_ARG_03,
64394 class t_ARG_04>
64395 typename bsl::enable_if<
64396 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64397 t_TYPE&>::type
64398 emplace(const t_ARG_01& arg_01,
64399 const t_ARG_02& arg_02,
64400 const t_ARG_03& arg_03,
64401 const t_ARG_04& arg_04);
64402
64403 template <class t_TYPE,
64404 class t_ARG_01,
64405 class t_ARG_02,
64406 class t_ARG_03,
64407 class t_ARG_04,
64408 class t_ARG_05>
64409 typename bsl::enable_if<
64410 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64411 t_TYPE&>::type
64412 emplace(const t_ARG_01& arg_01,
64413 const t_ARG_02& arg_02,
64414 const t_ARG_03& arg_03,
64415 const t_ARG_04& arg_04,
64416 const t_ARG_05& arg_05);
64417
64418 template <class t_TYPE,
64419 class t_ARG_01,
64420 class t_ARG_02,
64421 class t_ARG_03,
64422 class t_ARG_04,
64423 class t_ARG_05,
64424 class t_ARG_06>
64425 typename bsl::enable_if<
64426 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64427 t_TYPE&>::type
64428 emplace(const t_ARG_01& arg_01,
64429 const t_ARG_02& arg_02,
64430 const t_ARG_03& arg_03,
64431 const t_ARG_04& arg_04,
64432 const t_ARG_05& arg_05,
64433 const t_ARG_06& arg_06);
64434
64435 template <class t_TYPE,
64436 class t_ARG_01,
64437 class t_ARG_02,
64438 class t_ARG_03,
64439 class t_ARG_04,
64440 class t_ARG_05,
64441 class t_ARG_06,
64442 class t_ARG_07>
64443 typename bsl::enable_if<
64444 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64445 t_TYPE&>::type
64446 emplace(const t_ARG_01& arg_01,
64447 const t_ARG_02& arg_02,
64448 const t_ARG_03& arg_03,
64449 const t_ARG_04& arg_04,
64450 const t_ARG_05& arg_05,
64451 const t_ARG_06& arg_06,
64452 const t_ARG_07& arg_07);
64453
64454 template <class t_TYPE,
64455 class t_ARG_01,
64456 class t_ARG_02,
64457 class t_ARG_03,
64458 class t_ARG_04,
64459 class t_ARG_05,
64460 class t_ARG_06,
64461 class t_ARG_07,
64462 class t_ARG_08>
64463 typename bsl::enable_if<
64464 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64465 t_TYPE&>::type
64466 emplace(const t_ARG_01& arg_01,
64467 const t_ARG_02& arg_02,
64468 const t_ARG_03& arg_03,
64469 const t_ARG_04& arg_04,
64470 const t_ARG_05& arg_05,
64471 const t_ARG_06& arg_06,
64472 const t_ARG_07& arg_07,
64473 const t_ARG_08& arg_08);
64474
64475 template <class t_TYPE,
64476 class t_ARG_01,
64477 class t_ARG_02,
64478 class t_ARG_03,
64479 class t_ARG_04,
64480 class t_ARG_05,
64481 class t_ARG_06,
64482 class t_ARG_07,
64483 class t_ARG_08,
64484 class t_ARG_09>
64485 typename bsl::enable_if<
64486 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64487 t_TYPE&>::type
64488 emplace(const t_ARG_01& arg_01,
64489 const t_ARG_02& arg_02,
64490 const t_ARG_03& arg_03,
64491 const t_ARG_04& arg_04,
64492 const t_ARG_05& arg_05,
64493 const t_ARG_06& arg_06,
64494 const t_ARG_07& arg_07,
64495 const t_ARG_08& arg_08,
64496 const t_ARG_09& arg_09);
64497
64498 template <class t_TYPE,
64499 class t_ARG_01,
64500 class t_ARG_02,
64501 class t_ARG_03,
64502 class t_ARG_04,
64503 class t_ARG_05,
64504 class t_ARG_06,
64505 class t_ARG_07,
64506 class t_ARG_08,
64507 class t_ARG_09,
64508 class t_ARG_10>
64509 typename bsl::enable_if<
64510 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
64511 t_TYPE&>::type
64512 emplace(const t_ARG_01& arg_01,
64513 const t_ARG_02& arg_02,
64514 const t_ARG_03& arg_03,
64515 const t_ARG_04& arg_04,
64516 const t_ARG_05& arg_05,
64517 const t_ARG_06& arg_06,
64518 const t_ARG_07& arg_07,
64519 const t_ARG_08& arg_08,
64520 const t_ARG_09& arg_09,
64521 const t_ARG_10& arg_10);
64522
64523 template <size_t t_INDEX>
64524 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64525 t_TAIL_02,
64526 t_TAIL_03,
64527 t_TAIL_04,
64528 t_TAIL_05,
64529 t_TAIL_06,
64530 t_TAIL_07,
64531 t_TAIL_08,
64532 t_TAIL_09,
64533 t_TAIL_10,
64534 t_TAIL_11,
64535 t_TAIL_12,
64536 t_TAIL_13,
64537 t_TAIL_14> >::type&
64538 emplace();
64539
64540 template <size_t t_INDEX, class t_ARG_01>
64541 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64542 t_TAIL_02,
64543 t_TAIL_03,
64544 t_TAIL_04,
64545 t_TAIL_05,
64546 t_TAIL_06,
64547 t_TAIL_07,
64548 t_TAIL_08,
64549 t_TAIL_09,
64550 t_TAIL_10,
64551 t_TAIL_11,
64552 t_TAIL_12,
64553 t_TAIL_13,
64554 t_TAIL_14> >::type&
64555 emplace(const t_ARG_01& arg_01);
64556
64557 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
64558 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64559 t_TAIL_02,
64560 t_TAIL_03,
64561 t_TAIL_04,
64562 t_TAIL_05,
64563 t_TAIL_06,
64564 t_TAIL_07,
64565 t_TAIL_08,
64566 t_TAIL_09,
64567 t_TAIL_10,
64568 t_TAIL_11,
64569 t_TAIL_12,
64570 t_TAIL_13,
64571 t_TAIL_14> >::type&
64572 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
64573
64574 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
64575 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64576 t_TAIL_02,
64577 t_TAIL_03,
64578 t_TAIL_04,
64579 t_TAIL_05,
64580 t_TAIL_06,
64581 t_TAIL_07,
64582 t_TAIL_08,
64583 t_TAIL_09,
64584 t_TAIL_10,
64585 t_TAIL_11,
64586 t_TAIL_12,
64587 t_TAIL_13,
64588 t_TAIL_14> >::type&
64589 emplace(const t_ARG_01& arg_01,
64590 const t_ARG_02& arg_02,
64591 const t_ARG_03& arg_03);
64592
64593 template <size_t t_INDEX,
64594 class t_ARG_01,
64595 class t_ARG_02,
64596 class t_ARG_03,
64597 class t_ARG_04>
64598 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64599 t_TAIL_02,
64600 t_TAIL_03,
64601 t_TAIL_04,
64602 t_TAIL_05,
64603 t_TAIL_06,
64604 t_TAIL_07,
64605 t_TAIL_08,
64606 t_TAIL_09,
64607 t_TAIL_10,
64608 t_TAIL_11,
64609 t_TAIL_12,
64610 t_TAIL_13,
64611 t_TAIL_14> >::type&
64612 emplace(const t_ARG_01& arg_01,
64613 const t_ARG_02& arg_02,
64614 const t_ARG_03& arg_03,
64615 const t_ARG_04& arg_04);
64616
64617 template <size_t t_INDEX,
64618 class t_ARG_01,
64619 class t_ARG_02,
64620 class t_ARG_03,
64621 class t_ARG_04,
64622 class t_ARG_05>
64623 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64624 t_TAIL_02,
64625 t_TAIL_03,
64626 t_TAIL_04,
64627 t_TAIL_05,
64628 t_TAIL_06,
64629 t_TAIL_07,
64630 t_TAIL_08,
64631 t_TAIL_09,
64632 t_TAIL_10,
64633 t_TAIL_11,
64634 t_TAIL_12,
64635 t_TAIL_13,
64636 t_TAIL_14> >::type&
64637 emplace(const t_ARG_01& arg_01,
64638 const t_ARG_02& arg_02,
64639 const t_ARG_03& arg_03,
64640 const t_ARG_04& arg_04,
64641 const t_ARG_05& arg_05);
64642
64643 template <size_t t_INDEX,
64644 class t_ARG_01,
64645 class t_ARG_02,
64646 class t_ARG_03,
64647 class t_ARG_04,
64648 class t_ARG_05,
64649 class t_ARG_06>
64650 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64651 t_TAIL_02,
64652 t_TAIL_03,
64653 t_TAIL_04,
64654 t_TAIL_05,
64655 t_TAIL_06,
64656 t_TAIL_07,
64657 t_TAIL_08,
64658 t_TAIL_09,
64659 t_TAIL_10,
64660 t_TAIL_11,
64661 t_TAIL_12,
64662 t_TAIL_13,
64663 t_TAIL_14> >::type&
64664 emplace(const t_ARG_01& arg_01,
64665 const t_ARG_02& arg_02,
64666 const t_ARG_03& arg_03,
64667 const t_ARG_04& arg_04,
64668 const t_ARG_05& arg_05,
64669 const t_ARG_06& arg_06);
64670
64671 template <size_t t_INDEX,
64672 class t_ARG_01,
64673 class t_ARG_02,
64674 class t_ARG_03,
64675 class t_ARG_04,
64676 class t_ARG_05,
64677 class t_ARG_06,
64678 class t_ARG_07>
64679 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64680 t_TAIL_02,
64681 t_TAIL_03,
64682 t_TAIL_04,
64683 t_TAIL_05,
64684 t_TAIL_06,
64685 t_TAIL_07,
64686 t_TAIL_08,
64687 t_TAIL_09,
64688 t_TAIL_10,
64689 t_TAIL_11,
64690 t_TAIL_12,
64691 t_TAIL_13,
64692 t_TAIL_14> >::type&
64693 emplace(const t_ARG_01& arg_01,
64694 const t_ARG_02& arg_02,
64695 const t_ARG_03& arg_03,
64696 const t_ARG_04& arg_04,
64697 const t_ARG_05& arg_05,
64698 const t_ARG_06& arg_06,
64699 const t_ARG_07& arg_07);
64700
64701 template <size_t t_INDEX,
64702 class t_ARG_01,
64703 class t_ARG_02,
64704 class t_ARG_03,
64705 class t_ARG_04,
64706 class t_ARG_05,
64707 class t_ARG_06,
64708 class t_ARG_07,
64709 class t_ARG_08>
64710 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64711 t_TAIL_02,
64712 t_TAIL_03,
64713 t_TAIL_04,
64714 t_TAIL_05,
64715 t_TAIL_06,
64716 t_TAIL_07,
64717 t_TAIL_08,
64718 t_TAIL_09,
64719 t_TAIL_10,
64720 t_TAIL_11,
64721 t_TAIL_12,
64722 t_TAIL_13,
64723 t_TAIL_14> >::type&
64724 emplace(const t_ARG_01& arg_01,
64725 const t_ARG_02& arg_02,
64726 const t_ARG_03& arg_03,
64727 const t_ARG_04& arg_04,
64728 const t_ARG_05& arg_05,
64729 const t_ARG_06& arg_06,
64730 const t_ARG_07& arg_07,
64731 const t_ARG_08& arg_08);
64732
64733 template <size_t t_INDEX,
64734 class t_ARG_01,
64735 class t_ARG_02,
64736 class t_ARG_03,
64737 class t_ARG_04,
64738 class t_ARG_05,
64739 class t_ARG_06,
64740 class t_ARG_07,
64741 class t_ARG_08,
64742 class t_ARG_09>
64743 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64744 t_TAIL_02,
64745 t_TAIL_03,
64746 t_TAIL_04,
64747 t_TAIL_05,
64748 t_TAIL_06,
64749 t_TAIL_07,
64750 t_TAIL_08,
64751 t_TAIL_09,
64752 t_TAIL_10,
64753 t_TAIL_11,
64754 t_TAIL_12,
64755 t_TAIL_13,
64756 t_TAIL_14> >::type&
64757 emplace(const t_ARG_01& arg_01,
64758 const t_ARG_02& arg_02,
64759 const t_ARG_03& arg_03,
64760 const t_ARG_04& arg_04,
64761 const t_ARG_05& arg_05,
64762 const t_ARG_06& arg_06,
64763 const t_ARG_07& arg_07,
64764 const t_ARG_08& arg_08,
64765 const t_ARG_09& arg_09);
64766
64767 template <size_t t_INDEX,
64768 class t_ARG_01,
64769 class t_ARG_02,
64770 class t_ARG_03,
64771 class t_ARG_04,
64772 class t_ARG_05,
64773 class t_ARG_06,
64774 class t_ARG_07,
64775 class t_ARG_08,
64776 class t_ARG_09,
64777 class t_ARG_10>
64778 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
64779 t_TAIL_02,
64780 t_TAIL_03,
64781 t_TAIL_04,
64782 t_TAIL_05,
64783 t_TAIL_06,
64784 t_TAIL_07,
64785 t_TAIL_08,
64786 t_TAIL_09,
64787 t_TAIL_10,
64788 t_TAIL_11,
64789 t_TAIL_12,
64790 t_TAIL_13,
64791 t_TAIL_14> >::type&
64792 emplace(const t_ARG_01& arg_01,
64793 const t_ARG_02& arg_02,
64794 const t_ARG_03& arg_03,
64795 const t_ARG_04& arg_04,
64796 const t_ARG_05& arg_05,
64797 const t_ARG_06& arg_06,
64798 const t_ARG_07& arg_07,
64799 const t_ARG_08& arg_08,
64800 const t_ARG_09& arg_09,
64801 const t_ARG_10& arg_10);
64802#endif
64803
64804#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
64805 variant& operator=(const variant& rhs) = default;
64806
64807 variant& operator=(variant&& rhs) = default;
64808
64809 template <class t_TYPE>
64810 typename bsl::enable_if<
64811 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
64812 variant&>::type
64813 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
64814 {
64815 const size_t altIndex =
64816 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
64817
64818 if (index() == altIndex) {
64819 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
64820 value);
64821 }
64822 else {
64823 Variant_Base::template baseEmplace<altIndex>(
64824 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
64825 }
64826
64827 return *this;
64828 }
64829#else
64830 variant& operator=(const variant& rhs);
64831
64832 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
64833
64834 template <class t_TYPE>
64835 typename bsl::enable_if<
64836 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
64837 variant&>::type
64838 operator=(const t_TYPE& value);
64839
64840#endif
64841
64842 void swap(variant& other);
64843
64844#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
64845 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
64846 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
64847 t_TAIL_02,
64848 t_TAIL_03,
64849 t_TAIL_04,
64850 t_TAIL_05,
64851 t_TAIL_06,
64852 t_TAIL_07,
64853 t_TAIL_08,
64854 t_TAIL_09,
64855 t_TAIL_10,
64856 t_TAIL_11,
64857 t_TAIL_12,
64858 t_TAIL_13,
64859 t_TAIL_14>::value,
64860 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
64861#endif
64862 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
64863 {
64864 return allocator_type(Variant_Base::AllocBase::mechanism());
64865 }
64866
64867
64868 size_t index() const BSLS_KEYWORD_NOEXCEPT;
64869
64870 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
64871};
64872#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 14
64873
64874#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 15
64875template <class t_HEAD, class t_TAIL_01,
64876 class t_TAIL_02,
64877 class t_TAIL_03,
64878 class t_TAIL_04,
64879 class t_TAIL_05,
64880 class t_TAIL_06,
64881 class t_TAIL_07,
64882 class t_TAIL_08,
64883 class t_TAIL_09,
64884 class t_TAIL_10,
64885 class t_TAIL_11,
64886 class t_TAIL_12,
64887 class t_TAIL_13,
64888 class t_TAIL_14,
64889 class t_TAIL_15>
64890class variant<t_HEAD, t_TAIL_01,
64891 t_TAIL_02,
64892 t_TAIL_03,
64893 t_TAIL_04,
64894 t_TAIL_05,
64895 t_TAIL_06,
64896 t_TAIL_07,
64897 t_TAIL_08,
64898 t_TAIL_09,
64899 t_TAIL_10,
64900 t_TAIL_11,
64901 t_TAIL_12,
64902 t_TAIL_13,
64903 t_TAIL_14,
64904 t_TAIL_15>
64905: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
64906 t_TAIL_02,
64907 t_TAIL_03,
64908 t_TAIL_04,
64909 t_TAIL_05,
64910 t_TAIL_06,
64911 t_TAIL_07,
64912 t_TAIL_08,
64913 t_TAIL_09,
64914 t_TAIL_10,
64915 t_TAIL_11,
64916 t_TAIL_12,
64917 t_TAIL_13,
64918 t_TAIL_14,
64919 t_TAIL_15>
64920#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
64921,
64922 private BloombergLP::bslstl::Variant_SMFBase<
64923 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
64924 t_TAIL_01,
64925 t_TAIL_02,
64926 t_TAIL_03,
64927 t_TAIL_04,
64928 t_TAIL_05,
64929 t_TAIL_06,
64930 t_TAIL_07,
64931 t_TAIL_08,
64932 t_TAIL_09,
64933 t_TAIL_10,
64934 t_TAIL_11,
64935 t_TAIL_12,
64936 t_TAIL_13,
64937 t_TAIL_14,
64938 t_TAIL_15>::value,
64939 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
64940 t_TAIL_01,
64941 t_TAIL_02,
64942 t_TAIL_03,
64943 t_TAIL_04,
64944 t_TAIL_05,
64945 t_TAIL_06,
64946 t_TAIL_07,
64947 t_TAIL_08,
64948 t_TAIL_09,
64949 t_TAIL_10,
64950 t_TAIL_11,
64951 t_TAIL_12,
64952 t_TAIL_13,
64953 t_TAIL_14,
64954 t_TAIL_15>::value,
64955 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
64956 t_TAIL_01,
64957 t_TAIL_02,
64958 t_TAIL_03,
64959 t_TAIL_04,
64960 t_TAIL_05,
64961 t_TAIL_06,
64962 t_TAIL_07,
64963 t_TAIL_08,
64964 t_TAIL_09,
64965 t_TAIL_10,
64966 t_TAIL_11,
64967 t_TAIL_12,
64968 t_TAIL_13,
64969 t_TAIL_14,
64970 t_TAIL_15>::value &&
64971 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
64972 t_TAIL_01,
64973 t_TAIL_02,
64974 t_TAIL_03,
64975 t_TAIL_04,
64976 t_TAIL_05,
64977 t_TAIL_06,
64978 t_TAIL_07,
64979 t_TAIL_08,
64980 t_TAIL_09,
64981 t_TAIL_10,
64982 t_TAIL_11,
64983 t_TAIL_12,
64984 t_TAIL_13,
64985 t_TAIL_14,
64986 t_TAIL_15>::value,
64987 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
64988 t_TAIL_01,
64989 t_TAIL_02,
64990 t_TAIL_03,
64991 t_TAIL_04,
64992 t_TAIL_05,
64993 t_TAIL_06,
64994 t_TAIL_07,
64995 t_TAIL_08,
64996 t_TAIL_09,
64997 t_TAIL_10,
64998 t_TAIL_11,
64999 t_TAIL_12,
65000 t_TAIL_13,
65001 t_TAIL_14,
65002 t_TAIL_15>::value &&
65003 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
65004 t_TAIL_01,
65005 t_TAIL_02,
65006 t_TAIL_03,
65007 t_TAIL_04,
65008 t_TAIL_05,
65009 t_TAIL_06,
65010 t_TAIL_07,
65011 t_TAIL_08,
65012 t_TAIL_09,
65013 t_TAIL_10,
65014 t_TAIL_11,
65015 t_TAIL_12,
65016 t_TAIL_13,
65017 t_TAIL_14,
65018 t_TAIL_15>::value>
65019#endif
65020{
65021 private:
65022 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
65023 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
65024 t_TAIL_02,
65025 t_TAIL_03,
65026 t_TAIL_04,
65027 t_TAIL_05,
65028 t_TAIL_06,
65029 t_TAIL_07,
65030 t_TAIL_08,
65031 t_TAIL_09,
65032 t_TAIL_10,
65033 t_TAIL_11,
65034 t_TAIL_12,
65035 t_TAIL_13,
65036 t_TAIL_14,
65037 t_TAIL_15> Variant_Base;
65038 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
65039 t_TAIL_02,
65040 t_TAIL_03,
65041 t_TAIL_04,
65042 t_TAIL_05,
65043 t_TAIL_06,
65044 t_TAIL_07,
65045 t_TAIL_08,
65046 t_TAIL_09,
65047 t_TAIL_10,
65048 t_TAIL_11,
65049 t_TAIL_12,
65050 t_TAIL_13,
65051 t_TAIL_14,
65052 t_TAIL_15>
65053 Variant_Union;
65054
65055 friend struct BloombergLP::bslstl::Variant_ImpUtil;
65056
65057 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
65058 t_TAIL_02,
65059 t_TAIL_03,
65060 t_TAIL_04,
65061 t_TAIL_05,
65062 t_TAIL_06,
65063 t_TAIL_07,
65064 t_TAIL_08,
65065 t_TAIL_09,
65066 t_TAIL_10,
65067 t_TAIL_11,
65068 t_TAIL_12,
65069 t_TAIL_13,
65070 t_TAIL_14,
65071 t_TAIL_15>;
65072
65073 public:
65075 variant,
65076 BloombergLP::bslma::UsesBslmaAllocator,
65077 (BloombergLP::bslstl::
65078 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
65079 t_TAIL_02,
65080 t_TAIL_03,
65081 t_TAIL_04,
65082 t_TAIL_05,
65083 t_TAIL_06,
65084 t_TAIL_07,
65085 t_TAIL_08,
65086 t_TAIL_09,
65087 t_TAIL_10,
65088 t_TAIL_11,
65089 t_TAIL_12,
65090 t_TAIL_13,
65091 t_TAIL_14,
65092 t_TAIL_15>::value));
65094 variant,
65095 BloombergLP::bslmf::UsesAllocatorArgT,
65096 (BloombergLP::bslstl::
65097 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
65098 t_TAIL_02,
65099 t_TAIL_03,
65100 t_TAIL_04,
65101 t_TAIL_05,
65102 t_TAIL_06,
65103 t_TAIL_07,
65104 t_TAIL_08,
65105 t_TAIL_09,
65106 t_TAIL_10,
65107 t_TAIL_11,
65108 t_TAIL_12,
65109 t_TAIL_13,
65110 t_TAIL_14,
65111 t_TAIL_15>::value));
65113 variant,
65114 BloombergLP::bslmf::IsBitwiseMoveable,
65115 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
65116 t_TAIL_01,
65117 t_TAIL_02,
65118 t_TAIL_03,
65119 t_TAIL_04,
65120 t_TAIL_05,
65121 t_TAIL_06,
65122 t_TAIL_07,
65123 t_TAIL_08,
65124 t_TAIL_09,
65125 t_TAIL_10,
65126 t_TAIL_11,
65127 t_TAIL_12,
65128 t_TAIL_13,
65129 t_TAIL_14,
65130 t_TAIL_15>::value));
65131
65132
65133 typedef typename Variant_Base::allocator_type allocator_type;
65134
65135
65136#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
65137 template <class t_FIRST_ALT = t_HEAD,
65138 class = typename bsl::enable_if_t<
65139 std::is_default_constructible<t_FIRST_ALT>::value> >
65140 variant()
65141 : Variant_Base()
65142 {
65143 }
65144
65145 variant(const variant& original) = default;
65146
65147 variant(variant&& original) = default;
65148
65149#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
65150 template <class t_STD_VARIANT>
65151 explicit variant(
65152 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
65154 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
65155 original.index())
65156 {
65157 if (!valueless_by_exception()) {
65158 BloombergLP::bslstl::Variant_ImpUtil::
65159 ConstructFromStdVisitor<variant, decltype(original)>
65160 visitor(*this, original);
65161 BSLSTL_VARIANT_VISITID(void, visitor, *this);
65162 }
65163 }
65164#endif
65165
65166 template <class t_TYPE>
65167 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
65169
65170 template <class t_TYPE,
65171 class t_ARGS_01,
65172 class t_ARGS_02,
65173 class t_ARGS_03,
65174 class t_ARGS_04,
65175 class t_ARGS_05,
65176 class t_ARGS_06,
65177 class t_ARGS_07,
65178 class t_ARGS_08,
65179 class t_ARGS_09,
65180 class t_ARGS_10,
65181 class t_ARGS_11,
65182 class t_ARGS_12,
65183 class t_ARGS_13,
65184 class t_ARGS_14,
65185 class t_ARGS_15,
65186 class = typename bsl::enable_if_t<
65188 std::is_constructible<t_TYPE, t_ARGS_01,
65189 t_ARGS_02,
65190 t_ARGS_03,
65191 t_ARGS_04,
65192 t_ARGS_05,
65193 t_ARGS_06,
65194 t_ARGS_07,
65195 t_ARGS_08,
65196 t_ARGS_09,
65197 t_ARGS_10,
65198 t_ARGS_11,
65199 t_ARGS_12,
65200 t_ARGS_13,
65201 t_ARGS_14,
65202 t_ARGS_15>::value> >
65203 explicit variant(bsl::in_place_type_t<t_TYPE>,
65204 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65205 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65206 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65207 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65208 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65209 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65210 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65211 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65212 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65213 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65214 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65215 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65216 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65217 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65218 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65219 : Variant_Base(
65220 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
65221 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
65222 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
65223 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
65224 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
65225 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
65226 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
65227 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
65228 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
65229 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
65230 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
65231 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
65232 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
65233 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
65234 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
65235 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15))
65236 {
65237 }
65238
65239 template <class t_TYPE,
65240 class INIT_LIST_TYPE,
65241 class t_ARGS_01,
65242 class t_ARGS_02,
65243 class t_ARGS_03,
65244 class t_ARGS_04,
65245 class t_ARGS_05,
65246 class t_ARGS_06,
65247 class t_ARGS_07,
65248 class t_ARGS_08,
65249 class t_ARGS_09,
65250 class t_ARGS_10,
65251 class t_ARGS_11,
65252 class t_ARGS_12,
65253 class t_ARGS_13,
65254 class t_ARGS_14,
65255 class t_ARGS_15,
65256 class = typename bsl::enable_if_t<
65258 std::is_constructible<t_TYPE,
65259 std::initializer_list<INIT_LIST_TYPE>&,
65260 t_ARGS_01,
65261 t_ARGS_02,
65262 t_ARGS_03,
65263 t_ARGS_04,
65264 t_ARGS_05,
65265 t_ARGS_06,
65266 t_ARGS_07,
65267 t_ARGS_08,
65268 t_ARGS_09,
65269 t_ARGS_10,
65270 t_ARGS_11,
65271 t_ARGS_12,
65272 t_ARGS_13,
65273 t_ARGS_14,
65274 t_ARGS_15>::value> >
65275 explicit variant(bsl::in_place_type_t<t_TYPE>,
65276 std::initializer_list<INIT_LIST_TYPE> il,
65277 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65278 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65279 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65280 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65281 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65282 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65283 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65284 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65285 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65286 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65287 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65288 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65289 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65290 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65291 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65292 : Variant_Base(
65293 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
65294 il,
65295 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
65296 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
65297 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
65298 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
65299 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
65300 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
65301 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
65302 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
65303 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
65304 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
65305 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
65306 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
65307 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
65308 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
65309 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15))
65310 {
65311 }
65312
65313 template <size_t t_INDEX,
65314 class t_ARGS_01,
65315 class t_ARGS_02,
65316 class t_ARGS_03,
65317 class t_ARGS_04,
65318 class t_ARGS_05,
65319 class t_ARGS_06,
65320 class t_ARGS_07,
65321 class t_ARGS_08,
65322 class t_ARGS_09,
65323 class t_ARGS_10,
65324 class t_ARGS_11,
65325 class t_ARGS_12,
65326 class t_ARGS_13,
65327 class t_ARGS_14,
65328 class t_ARGS_15,
65329 class = typename bsl::enable_if_t<
65330 (t_INDEX < 1 + 15u) &&
65331 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
65332 t_ARGS_01,
65333 t_ARGS_02,
65334 t_ARGS_03,
65335 t_ARGS_04,
65336 t_ARGS_05,
65337 t_ARGS_06,
65338 t_ARGS_07,
65339 t_ARGS_08,
65340 t_ARGS_09,
65341 t_ARGS_10,
65342 t_ARGS_11,
65343 t_ARGS_12,
65344 t_ARGS_13,
65345 t_ARGS_14,
65346 t_ARGS_15>::value> >
65347 explicit variant(bsl::in_place_index_t<t_INDEX>,
65348 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65349 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65350 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65351 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65352 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65353 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65354 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65355 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65356 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65357 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65358 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65359 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65360 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65361 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65362 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65363 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
65364 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
65365 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
65366 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
65367 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
65368 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
65369 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
65370 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
65371 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
65372 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
65373 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
65374 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
65375 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
65376 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
65377 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
65378 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15))
65379 {
65380 }
65381
65382 template <size_t t_INDEX,
65383 class INIT_LIST_TYPE,
65384 class t_ARGS_01,
65385 class t_ARGS_02,
65386 class t_ARGS_03,
65387 class t_ARGS_04,
65388 class t_ARGS_05,
65389 class t_ARGS_06,
65390 class t_ARGS_07,
65391 class t_ARGS_08,
65392 class t_ARGS_09,
65393 class t_ARGS_10,
65394 class t_ARGS_11,
65395 class t_ARGS_12,
65396 class t_ARGS_13,
65397 class t_ARGS_14,
65398 class t_ARGS_15,
65399 class = typename bsl::enable_if_t<
65400 (t_INDEX < 1 + 15u) &&
65401 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
65402 std::initializer_list<INIT_LIST_TYPE>&,
65403 t_ARGS_01,
65404 t_ARGS_02,
65405 t_ARGS_03,
65406 t_ARGS_04,
65407 t_ARGS_05,
65408 t_ARGS_06,
65409 t_ARGS_07,
65410 t_ARGS_08,
65411 t_ARGS_09,
65412 t_ARGS_10,
65413 t_ARGS_11,
65414 t_ARGS_12,
65415 t_ARGS_13,
65416 t_ARGS_14,
65417 t_ARGS_15>::value> >
65418 explicit variant(bsl::in_place_index_t<t_INDEX>,
65419 std::initializer_list<INIT_LIST_TYPE> il,
65420 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65421 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65422 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65423 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65424 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65425 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65426 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65427 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65428 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65429 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65430 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65431 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65432 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65433 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65434 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65435 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
65436 il,
65437 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
65438 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
65439 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
65440 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
65441 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
65442 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
65443 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
65444 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
65445 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
65446 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
65447 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
65448 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
65449 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
65450 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
65451 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15))
65452 {
65453 }
65454
65455 template <class FIRST = t_HEAD,
65456 class = typename bsl::enable_if_t<
65457 std::is_default_constructible<FIRST>::value> >
65458 variant(bsl::allocator_arg_t, allocator_type allocator)
65459 : Variant_Base(bsl::allocator_arg_t(), allocator)
65460 {
65461 }
65462
65463 template <
65464 class FIRST = t_HEAD,
65465 class = typename bsl::enable_if_t<
65466 BloombergLP::bslstl::
65467 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
65468 t_TAIL_02,
65469 t_TAIL_03,
65470 t_TAIL_04,
65471 t_TAIL_05,
65472 t_TAIL_06,
65473 t_TAIL_07,
65474 t_TAIL_08,
65475 t_TAIL_09,
65476 t_TAIL_10,
65477 t_TAIL_11,
65478 t_TAIL_12,
65479 t_TAIL_13,
65480 t_TAIL_14,
65481 t_TAIL_15>::value> >
65482 variant(bsl::allocator_arg_t,
65483 allocator_type allocator,
65484 const variant& original)
65485 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
65486 {
65487 }
65488 template <
65489 class FIRST = t_HEAD,
65490 class = typename bsl::enable_if_t<
65491 BloombergLP::bslstl::
65492 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
65493 t_TAIL_02,
65494 t_TAIL_03,
65495 t_TAIL_04,
65496 t_TAIL_05,
65497 t_TAIL_06,
65498 t_TAIL_07,
65499 t_TAIL_08,
65500 t_TAIL_09,
65501 t_TAIL_10,
65502 t_TAIL_11,
65503 t_TAIL_12,
65504 t_TAIL_13,
65505 t_TAIL_14,
65506 t_TAIL_15>::value> >
65507 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
65508 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
65509 {
65510 }
65511
65512#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
65513 template <class t_STD_VARIANT>
65514 explicit variant(
65515 bsl::allocator_arg_t,
65516 allocator_type allocator,
65517 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
65519 : Variant_Base(bsl::allocator_arg_t(),
65520 allocator,
65521 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
65522 original.index())
65523 {
65524 if (!valueless_by_exception()) {
65525 BloombergLP::bslstl::Variant_ImpUtil::
65526 ConstructFromStdVisitor<variant, decltype(original)>
65527 visitor(*this, original);
65528 BSLSTL_VARIANT_VISITID(void, visitor, *this);
65529 }
65530 }
65531#endif
65532
65533 template <class t_TYPE>
65534 variant(
65535 bsl::allocator_arg_t,
65536 allocator_type allocator,
65539
65540 template <class t_TYPE,
65541 class t_ARGS_01,
65542 class t_ARGS_02,
65543 class t_ARGS_03,
65544 class t_ARGS_04,
65545 class t_ARGS_05,
65546 class t_ARGS_06,
65547 class t_ARGS_07,
65548 class t_ARGS_08,
65549 class t_ARGS_09,
65550 class t_ARGS_10,
65551 class t_ARGS_11,
65552 class t_ARGS_12,
65553 class t_ARGS_13,
65554 class t_ARGS_14,
65555 class t_ARGS_15,
65556 class = typename bsl::enable_if_t<
65558 std::is_constructible<t_TYPE, t_ARGS_01,
65559 t_ARGS_02,
65560 t_ARGS_03,
65561 t_ARGS_04,
65562 t_ARGS_05,
65563 t_ARGS_06,
65564 t_ARGS_07,
65565 t_ARGS_08,
65566 t_ARGS_09,
65567 t_ARGS_10,
65568 t_ARGS_11,
65569 t_ARGS_12,
65570 t_ARGS_13,
65571 t_ARGS_14,
65572 t_ARGS_15>::value> >
65573 explicit variant(bsl::allocator_arg_t,
65574 allocator_type allocator,
65576 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65577 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65578 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65579 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65580 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65581 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65582 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65583 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65584 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65585 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65586 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65587 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65588 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65589 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65590 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65591 : Variant_Base(
65592 bsl::allocator_arg_t{}
65593,
65594 allocator,
65595 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
65596 std::forward<t_ARGS_01>(args_01),
65597 std::forward<t_ARGS_02>(args_02),
65598 std::forward<t_ARGS_03>(args_03),
65599 std::forward<t_ARGS_04>(args_04),
65600 std::forward<t_ARGS_05>(args_05),
65601 std::forward<t_ARGS_06>(args_06),
65602 std::forward<t_ARGS_07>(args_07),
65603 std::forward<t_ARGS_08>(args_08),
65604 std::forward<t_ARGS_09>(args_09),
65605 std::forward<t_ARGS_10>(args_10),
65606 std::forward<t_ARGS_11>(args_11),
65607 std::forward<t_ARGS_12>(args_12),
65608 std::forward<t_ARGS_13>(args_13),
65609 std::forward<t_ARGS_14>(args_14),
65610 std::forward<t_ARGS_15>(args_15))
65611 {
65612 }
65613
65614 template <class t_TYPE,
65615 class INIT_LIST_TYPE,
65616 class t_ARGS_01,
65617 class t_ARGS_02,
65618 class t_ARGS_03,
65619 class t_ARGS_04,
65620 class t_ARGS_05,
65621 class t_ARGS_06,
65622 class t_ARGS_07,
65623 class t_ARGS_08,
65624 class t_ARGS_09,
65625 class t_ARGS_10,
65626 class t_ARGS_11,
65627 class t_ARGS_12,
65628 class t_ARGS_13,
65629 class t_ARGS_14,
65630 class t_ARGS_15,
65631 class = typename bsl::enable_if_t<
65633 std::is_constructible<t_TYPE,
65634 std::initializer_list<INIT_LIST_TYPE>&,
65635 t_ARGS_01,
65636 t_ARGS_02,
65637 t_ARGS_03,
65638 t_ARGS_04,
65639 t_ARGS_05,
65640 t_ARGS_06,
65641 t_ARGS_07,
65642 t_ARGS_08,
65643 t_ARGS_09,
65644 t_ARGS_10,
65645 t_ARGS_11,
65646 t_ARGS_12,
65647 t_ARGS_13,
65648 t_ARGS_14,
65649 t_ARGS_15>::value> >
65650 explicit variant(bsl::allocator_arg_t,
65651 allocator_type allocator,
65653 std::initializer_list<INIT_LIST_TYPE> il,
65654 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65655 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65656 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65657 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65658 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65659 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65660 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65661 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65662 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65663 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65664 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65665 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65666 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65667 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65668 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65669 : Variant_Base(
65670 bsl::allocator_arg_t{}
65671,
65672 allocator,
65673 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
65674 il,
65675 std::forward<t_ARGS_01>(args_01),
65676 std::forward<t_ARGS_02>(args_02),
65677 std::forward<t_ARGS_03>(args_03),
65678 std::forward<t_ARGS_04>(args_04),
65679 std::forward<t_ARGS_05>(args_05),
65680 std::forward<t_ARGS_06>(args_06),
65681 std::forward<t_ARGS_07>(args_07),
65682 std::forward<t_ARGS_08>(args_08),
65683 std::forward<t_ARGS_09>(args_09),
65684 std::forward<t_ARGS_10>(args_10),
65685 std::forward<t_ARGS_11>(args_11),
65686 std::forward<t_ARGS_12>(args_12),
65687 std::forward<t_ARGS_13>(args_13),
65688 std::forward<t_ARGS_14>(args_14),
65689 std::forward<t_ARGS_15>(args_15))
65690 {
65691 }
65692
65693 template <size_t t_INDEX,
65694 class t_ARGS_01,
65695 class t_ARGS_02,
65696 class t_ARGS_03,
65697 class t_ARGS_04,
65698 class t_ARGS_05,
65699 class t_ARGS_06,
65700 class t_ARGS_07,
65701 class t_ARGS_08,
65702 class t_ARGS_09,
65703 class t_ARGS_10,
65704 class t_ARGS_11,
65705 class t_ARGS_12,
65706 class t_ARGS_13,
65707 class t_ARGS_14,
65708 class t_ARGS_15,
65709 class = typename bsl::enable_if_t<
65710 (t_INDEX < 1 + 15u) &&
65711 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
65712 t_ARGS_01,
65713 t_ARGS_02,
65714 t_ARGS_03,
65715 t_ARGS_04,
65716 t_ARGS_05,
65717 t_ARGS_06,
65718 t_ARGS_07,
65719 t_ARGS_08,
65720 t_ARGS_09,
65721 t_ARGS_10,
65722 t_ARGS_11,
65723 t_ARGS_12,
65724 t_ARGS_13,
65725 t_ARGS_14,
65726 t_ARGS_15>::value> >
65727 explicit variant(bsl::allocator_arg_t,
65728 allocator_type allocator,
65730 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65731 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65732 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65733 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65734 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65735 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65736 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65737 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65738 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65739 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65740 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65741 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65742 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65743 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65744 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65745 : Variant_Base(bsl::allocator_arg_t{}
65746,
65747 allocator,
65748 bsl::in_place_index_t<t_INDEX>(),
65749 std::forward<t_ARGS_01>(args_01),
65750 std::forward<t_ARGS_02>(args_02),
65751 std::forward<t_ARGS_03>(args_03),
65752 std::forward<t_ARGS_04>(args_04),
65753 std::forward<t_ARGS_05>(args_05),
65754 std::forward<t_ARGS_06>(args_06),
65755 std::forward<t_ARGS_07>(args_07),
65756 std::forward<t_ARGS_08>(args_08),
65757 std::forward<t_ARGS_09>(args_09),
65758 std::forward<t_ARGS_10>(args_10),
65759 std::forward<t_ARGS_11>(args_11),
65760 std::forward<t_ARGS_12>(args_12),
65761 std::forward<t_ARGS_13>(args_13),
65762 std::forward<t_ARGS_14>(args_14),
65763 std::forward<t_ARGS_15>(args_15))
65764 {
65765 }
65766
65767 template <size_t t_INDEX,
65768 class INIT_LIST_TYPE,
65769 class t_ARGS_01,
65770 class t_ARGS_02,
65771 class t_ARGS_03,
65772 class t_ARGS_04,
65773 class t_ARGS_05,
65774 class t_ARGS_06,
65775 class t_ARGS_07,
65776 class t_ARGS_08,
65777 class t_ARGS_09,
65778 class t_ARGS_10,
65779 class t_ARGS_11,
65780 class t_ARGS_12,
65781 class t_ARGS_13,
65782 class t_ARGS_14,
65783 class t_ARGS_15,
65784 class = typename bsl::enable_if_t<
65785 (t_INDEX < 1 + 15u) &&
65786 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
65787 std::initializer_list<INIT_LIST_TYPE>&,
65788 t_ARGS_01,
65789 t_ARGS_02,
65790 t_ARGS_03,
65791 t_ARGS_04,
65792 t_ARGS_05,
65793 t_ARGS_06,
65794 t_ARGS_07,
65795 t_ARGS_08,
65796 t_ARGS_09,
65797 t_ARGS_10,
65798 t_ARGS_11,
65799 t_ARGS_12,
65800 t_ARGS_13,
65801 t_ARGS_14,
65802 t_ARGS_15>::value> >
65803 explicit variant(bsl::allocator_arg_t,
65804 allocator_type allocator,
65806 std::initializer_list<INIT_LIST_TYPE> il,
65807 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
65808 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
65809 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
65810 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
65811 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
65812 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
65813 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
65814 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
65815 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
65816 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
65817 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
65818 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
65819 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
65820 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
65821 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
65822 : Variant_Base(bsl::allocator_arg_t{}
65823,
65824 allocator,
65825 bsl::in_place_index_t<t_INDEX>(),
65826 il,
65827 std::forward<t_ARGS_01>(args_01),
65828 std::forward<t_ARGS_02>(args_02),
65829 std::forward<t_ARGS_03>(args_03),
65830 std::forward<t_ARGS_04>(args_04),
65831 std::forward<t_ARGS_05>(args_05),
65832 std::forward<t_ARGS_06>(args_06),
65833 std::forward<t_ARGS_07>(args_07),
65834 std::forward<t_ARGS_08>(args_08),
65835 std::forward<t_ARGS_09>(args_09),
65836 std::forward<t_ARGS_10>(args_10),
65837 std::forward<t_ARGS_11>(args_11),
65838 std::forward<t_ARGS_12>(args_12),
65839 std::forward<t_ARGS_13>(args_13),
65840 std::forward<t_ARGS_14>(args_14),
65841 std::forward<t_ARGS_15>(args_15))
65842 {
65843 }
65844
65845#else
65846
65847 variant();
65848
65849 variant(const variant& original);
65850
65851 variant(BloombergLP::bslmf::MovableRef<variant> original);
65852
65853 template <class t_TYPE>
65854 variant(const t_TYPE& value,
65856
65857 template <class t_TYPE>
65858 explicit variant(bsl::in_place_type_t<t_TYPE>,
65860
65861 template <class t_TYPE, class t_ARG_01>
65862 explicit variant(bsl::in_place_type_t<t_TYPE>,
65863 const t_ARG_01& arg_01,
65865
65866 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
65867 explicit variant(bsl::in_place_type_t<t_TYPE>,
65868 const t_ARG_01& arg_01,
65869 const t_ARG_02& arg_02,
65871
65872 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
65873 explicit variant(bsl::in_place_type_t<t_TYPE>,
65874 const t_ARG_01& arg_01,
65875 const t_ARG_02& arg_02,
65876 const t_ARG_03& arg_03,
65878
65879 template <class t_TYPE,
65880 class t_ARG_01,
65881 class t_ARG_02,
65882 class t_ARG_03,
65883 class t_ARG_04>
65884 explicit variant(bsl::in_place_type_t<t_TYPE>,
65885 const t_ARG_01& arg_01,
65886 const t_ARG_02& arg_02,
65887 const t_ARG_03& arg_03,
65888 const t_ARG_04& arg_04,
65890
65891 template <class t_TYPE,
65892 class t_ARG_01,
65893 class t_ARG_02,
65894 class t_ARG_03,
65895 class t_ARG_04,
65896 class t_ARG_05>
65897 explicit variant(bsl::in_place_type_t<t_TYPE>,
65898 const t_ARG_01& arg_01,
65899 const t_ARG_02& arg_02,
65900 const t_ARG_03& arg_03,
65901 const t_ARG_04& arg_04,
65902 const t_ARG_05& arg_05,
65904
65905 template <class t_TYPE,
65906 class t_ARG_01,
65907 class t_ARG_02,
65908 class t_ARG_03,
65909 class t_ARG_04,
65910 class t_ARG_05,
65911 class t_ARG_06>
65912 explicit variant(bsl::in_place_type_t<t_TYPE>,
65913 const t_ARG_01& arg_01,
65914 const t_ARG_02& arg_02,
65915 const t_ARG_03& arg_03,
65916 const t_ARG_04& arg_04,
65917 const t_ARG_05& arg_05,
65918 const t_ARG_06& arg_06,
65920
65921 template <class t_TYPE,
65922 class t_ARG_01,
65923 class t_ARG_02,
65924 class t_ARG_03,
65925 class t_ARG_04,
65926 class t_ARG_05,
65927 class t_ARG_06,
65928 class t_ARG_07>
65929 explicit variant(bsl::in_place_type_t<t_TYPE>,
65930 const t_ARG_01& arg_01,
65931 const t_ARG_02& arg_02,
65932 const t_ARG_03& arg_03,
65933 const t_ARG_04& arg_04,
65934 const t_ARG_05& arg_05,
65935 const t_ARG_06& arg_06,
65936 const t_ARG_07& arg_07,
65938
65939 template <class t_TYPE,
65940 class t_ARG_01,
65941 class t_ARG_02,
65942 class t_ARG_03,
65943 class t_ARG_04,
65944 class t_ARG_05,
65945 class t_ARG_06,
65946 class t_ARG_07,
65947 class t_ARG_08>
65948 explicit variant(bsl::in_place_type_t<t_TYPE>,
65949 const t_ARG_01& arg_01,
65950 const t_ARG_02& arg_02,
65951 const t_ARG_03& arg_03,
65952 const t_ARG_04& arg_04,
65953 const t_ARG_05& arg_05,
65954 const t_ARG_06& arg_06,
65955 const t_ARG_07& arg_07,
65956 const t_ARG_08& arg_08,
65958
65959 template <class t_TYPE,
65960 class t_ARG_01,
65961 class t_ARG_02,
65962 class t_ARG_03,
65963 class t_ARG_04,
65964 class t_ARG_05,
65965 class t_ARG_06,
65966 class t_ARG_07,
65967 class t_ARG_08,
65968 class t_ARG_09>
65969 explicit variant(bsl::in_place_type_t<t_TYPE>,
65970 const t_ARG_01& arg_01,
65971 const t_ARG_02& arg_02,
65972 const t_ARG_03& arg_03,
65973 const t_ARG_04& arg_04,
65974 const t_ARG_05& arg_05,
65975 const t_ARG_06& arg_06,
65976 const t_ARG_07& arg_07,
65977 const t_ARG_08& arg_08,
65978 const t_ARG_09& arg_09,
65980
65981 template <class t_TYPE,
65982 class t_ARG_01,
65983 class t_ARG_02,
65984 class t_ARG_03,
65985 class t_ARG_04,
65986 class t_ARG_05,
65987 class t_ARG_06,
65988 class t_ARG_07,
65989 class t_ARG_08,
65990 class t_ARG_09,
65991 class t_ARG_10>
65992 explicit variant(bsl::in_place_type_t<t_TYPE>,
65993 const t_ARG_01& arg_01,
65994 const t_ARG_02& arg_02,
65995 const t_ARG_03& arg_03,
65996 const t_ARG_04& arg_04,
65997 const t_ARG_05& arg_05,
65998 const t_ARG_06& arg_06,
65999 const t_ARG_07& arg_07,
66000 const t_ARG_08& arg_08,
66001 const t_ARG_09& arg_09,
66002 const t_ARG_10& arg_10,
66004
66005 template <size_t t_INDEX>
66006 explicit variant(bsl::in_place_index_t<t_INDEX>);
66007
66008 template <size_t t_INDEX, class t_ARG_01>
66009 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
66010
66011 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
66012 explicit variant(bsl::in_place_index_t<t_INDEX>,
66013 const t_ARG_01& arg_01,
66014 const t_ARG_02& arg_02);
66015
66016 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
66017 explicit variant(bsl::in_place_index_t<t_INDEX>,
66018 const t_ARG_01& arg_01,
66019 const t_ARG_02& arg_02,
66020 const t_ARG_03& arg_03);
66021
66022 template <size_t t_INDEX,
66023 class t_ARG_01,
66024 class t_ARG_02,
66025 class t_ARG_03,
66026 class t_ARG_04>
66027 explicit variant(bsl::in_place_index_t<t_INDEX>,
66028 const t_ARG_01& arg_01,
66029 const t_ARG_02& arg_02,
66030 const t_ARG_03& arg_03,
66031 const t_ARG_04& arg_04);
66032
66033 template <size_t t_INDEX,
66034 class t_ARG_01,
66035 class t_ARG_02,
66036 class t_ARG_03,
66037 class t_ARG_04,
66038 class t_ARG_05>
66039 explicit variant(bsl::in_place_index_t<t_INDEX>,
66040 const t_ARG_01& arg_01,
66041 const t_ARG_02& arg_02,
66042 const t_ARG_03& arg_03,
66043 const t_ARG_04& arg_04,
66044 const t_ARG_05& arg_05);
66045
66046 template <size_t t_INDEX,
66047 class t_ARG_01,
66048 class t_ARG_02,
66049 class t_ARG_03,
66050 class t_ARG_04,
66051 class t_ARG_05,
66052 class t_ARG_06>
66053 explicit variant(bsl::in_place_index_t<t_INDEX>,
66054 const t_ARG_01& arg_01,
66055 const t_ARG_02& arg_02,
66056 const t_ARG_03& arg_03,
66057 const t_ARG_04& arg_04,
66058 const t_ARG_05& arg_05,
66059 const t_ARG_06& arg_06);
66060
66061 template <size_t t_INDEX,
66062 class t_ARG_01,
66063 class t_ARG_02,
66064 class t_ARG_03,
66065 class t_ARG_04,
66066 class t_ARG_05,
66067 class t_ARG_06,
66068 class t_ARG_07>
66069 explicit variant(bsl::in_place_index_t<t_INDEX>,
66070 const t_ARG_01& arg_01,
66071 const t_ARG_02& arg_02,
66072 const t_ARG_03& arg_03,
66073 const t_ARG_04& arg_04,
66074 const t_ARG_05& arg_05,
66075 const t_ARG_06& arg_06,
66076 const t_ARG_07& arg_07);
66077
66078 template <size_t t_INDEX,
66079 class t_ARG_01,
66080 class t_ARG_02,
66081 class t_ARG_03,
66082 class t_ARG_04,
66083 class t_ARG_05,
66084 class t_ARG_06,
66085 class t_ARG_07,
66086 class t_ARG_08>
66087 explicit variant(bsl::in_place_index_t<t_INDEX>,
66088 const t_ARG_01& arg_01,
66089 const t_ARG_02& arg_02,
66090 const t_ARG_03& arg_03,
66091 const t_ARG_04& arg_04,
66092 const t_ARG_05& arg_05,
66093 const t_ARG_06& arg_06,
66094 const t_ARG_07& arg_07,
66095 const t_ARG_08& arg_08);
66096
66097 template <size_t t_INDEX,
66098 class t_ARG_01,
66099 class t_ARG_02,
66100 class t_ARG_03,
66101 class t_ARG_04,
66102 class t_ARG_05,
66103 class t_ARG_06,
66104 class t_ARG_07,
66105 class t_ARG_08,
66106 class t_ARG_09>
66107 explicit variant(bsl::in_place_index_t<t_INDEX>,
66108 const t_ARG_01& arg_01,
66109 const t_ARG_02& arg_02,
66110 const t_ARG_03& arg_03,
66111 const t_ARG_04& arg_04,
66112 const t_ARG_05& arg_05,
66113 const t_ARG_06& arg_06,
66114 const t_ARG_07& arg_07,
66115 const t_ARG_08& arg_08,
66116 const t_ARG_09& arg_09);
66117
66118 template <size_t t_INDEX,
66119 class t_ARG_01,
66120 class t_ARG_02,
66121 class t_ARG_03,
66122 class t_ARG_04,
66123 class t_ARG_05,
66124 class t_ARG_06,
66125 class t_ARG_07,
66126 class t_ARG_08,
66127 class t_ARG_09,
66128 class t_ARG_10>
66129 explicit variant(bsl::in_place_index_t<t_INDEX>,
66130 const t_ARG_01& arg_01,
66131 const t_ARG_02& arg_02,
66132 const t_ARG_03& arg_03,
66133 const t_ARG_04& arg_04,
66134 const t_ARG_05& arg_05,
66135 const t_ARG_06& arg_06,
66136 const t_ARG_07& arg_07,
66137 const t_ARG_08& arg_08,
66138 const t_ARG_09& arg_09,
66139 const t_ARG_10& arg_10);
66140
66141 variant(bsl::allocator_arg_t, allocator_type allocator);
66142
66143 variant(bsl::allocator_arg_t,
66144 allocator_type allocator,
66145 const variant& original);
66146 variant(bsl::allocator_arg_t,
66147 allocator_type allocator,
66148 BloombergLP::bslmf::MovableRef<variant> original);
66149
66150 template <class t_TYPE>
66151 variant(
66152 bsl::allocator_arg_t,
66153 allocator_type allocator,
66154 const t_TYPE& value,
66156
66157 template <class t_TYPE>
66158 explicit variant(
66159 bsl::allocator_arg_t,
66160 allocator_type allocator,
66163
66164 template <class t_TYPE, class t_ARG_01>
66165 explicit variant(
66166 bsl::allocator_arg_t,
66167 allocator_type allocator,
66169 const t_ARG_01& arg_01,
66171
66172 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
66173 explicit variant(
66174 bsl::allocator_arg_t,
66175 allocator_type allocator,
66177 const t_ARG_01& arg_01,
66178 const t_ARG_02& arg_02,
66180
66181 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
66182 explicit variant(
66183 bsl::allocator_arg_t,
66184 allocator_type allocator,
66186 const t_ARG_01& arg_01,
66187 const t_ARG_02& arg_02,
66188 const t_ARG_03& arg_03,
66190
66191 template <class t_TYPE,
66192 class t_ARG_01,
66193 class t_ARG_02,
66194 class t_ARG_03,
66195 class t_ARG_04>
66196 explicit variant(bsl::allocator_arg_t,
66197 allocator_type allocator,
66199 const t_ARG_01& arg_01,
66200 const t_ARG_02& arg_02,
66201 const t_ARG_03& arg_03,
66202 const t_ARG_04& arg_04,
66204
66205 template <class t_TYPE,
66206 class t_ARG_01,
66207 class t_ARG_02,
66208 class t_ARG_03,
66209 class t_ARG_04,
66210 class t_ARG_05>
66211 explicit variant(bsl::allocator_arg_t,
66212 allocator_type allocator,
66214 const t_ARG_01& arg_01,
66215 const t_ARG_02& arg_02,
66216 const t_ARG_03& arg_03,
66217 const t_ARG_04& arg_04,
66218 const t_ARG_05& arg_05,
66220
66221 template <class t_TYPE,
66222 class t_ARG_01,
66223 class t_ARG_02,
66224 class t_ARG_03,
66225 class t_ARG_04,
66226 class t_ARG_05,
66227 class t_ARG_06>
66228 explicit variant(bsl::allocator_arg_t,
66229 allocator_type allocator,
66231 const t_ARG_01& arg_01,
66232 const t_ARG_02& arg_02,
66233 const t_ARG_03& arg_03,
66234 const t_ARG_04& arg_04,
66235 const t_ARG_05& arg_05,
66236 const t_ARG_06& arg_06,
66238
66239 template <class t_TYPE,
66240 class t_ARG_01,
66241 class t_ARG_02,
66242 class t_ARG_03,
66243 class t_ARG_04,
66244 class t_ARG_05,
66245 class t_ARG_06,
66246 class t_ARG_07>
66247 explicit variant(bsl::allocator_arg_t,
66248 allocator_type allocator,
66250 const t_ARG_01& arg_01,
66251 const t_ARG_02& arg_02,
66252 const t_ARG_03& arg_03,
66253 const t_ARG_04& arg_04,
66254 const t_ARG_05& arg_05,
66255 const t_ARG_06& arg_06,
66256 const t_ARG_07& arg_07,
66258
66259 template <class t_TYPE,
66260 class t_ARG_01,
66261 class t_ARG_02,
66262 class t_ARG_03,
66263 class t_ARG_04,
66264 class t_ARG_05,
66265 class t_ARG_06,
66266 class t_ARG_07,
66267 class t_ARG_08>
66268 explicit variant(bsl::allocator_arg_t,
66269 allocator_type allocator,
66271 const t_ARG_01& arg_01,
66272 const t_ARG_02& arg_02,
66273 const t_ARG_03& arg_03,
66274 const t_ARG_04& arg_04,
66275 const t_ARG_05& arg_05,
66276 const t_ARG_06& arg_06,
66277 const t_ARG_07& arg_07,
66278 const t_ARG_08& arg_08,
66280
66281 template <class t_TYPE,
66282 class t_ARG_01,
66283 class t_ARG_02,
66284 class t_ARG_03,
66285 class t_ARG_04,
66286 class t_ARG_05,
66287 class t_ARG_06,
66288 class t_ARG_07,
66289 class t_ARG_08,
66290 class t_ARG_09>
66291 explicit variant(bsl::allocator_arg_t,
66292 allocator_type allocator,
66294 const t_ARG_01& arg_01,
66295 const t_ARG_02& arg_02,
66296 const t_ARG_03& arg_03,
66297 const t_ARG_04& arg_04,
66298 const t_ARG_05& arg_05,
66299 const t_ARG_06& arg_06,
66300 const t_ARG_07& arg_07,
66301 const t_ARG_08& arg_08,
66302 const t_ARG_09& arg_09,
66304
66305 template <class t_TYPE,
66306 class t_ARG_01,
66307 class t_ARG_02,
66308 class t_ARG_03,
66309 class t_ARG_04,
66310 class t_ARG_05,
66311 class t_ARG_06,
66312 class t_ARG_07,
66313 class t_ARG_08,
66314 class t_ARG_09,
66315 class t_ARG_10>
66316 explicit variant(bsl::allocator_arg_t,
66317 allocator_type allocator,
66319 const t_ARG_01& arg_01,
66320 const t_ARG_02& arg_02,
66321 const t_ARG_03& arg_03,
66322 const t_ARG_04& arg_04,
66323 const t_ARG_05& arg_05,
66324 const t_ARG_06& arg_06,
66325 const t_ARG_07& arg_07,
66326 const t_ARG_08& arg_08,
66327 const t_ARG_09& arg_09,
66328 const t_ARG_10& arg_10,
66330
66331 template <size_t t_INDEX>
66332 explicit variant(bsl::allocator_arg_t,
66333 allocator_type allocator,
66335
66336 template <size_t t_INDEX, class t_ARG_01>
66337 explicit variant(bsl::allocator_arg_t,
66338 allocator_type allocator,
66340 const t_ARG_01& arg_01);
66341
66342 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
66343 explicit variant(bsl::allocator_arg_t,
66344 allocator_type allocator,
66346 const t_ARG_01& arg_01,
66347 const t_ARG_02& arg_02);
66348
66349 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
66350 explicit variant(bsl::allocator_arg_t,
66351 allocator_type allocator,
66353 const t_ARG_01& arg_01,
66354 const t_ARG_02& arg_02,
66355 const t_ARG_03& arg_03);
66356
66357 template <size_t t_INDEX,
66358 class t_ARG_01,
66359 class t_ARG_02,
66360 class t_ARG_03,
66361 class t_ARG_04>
66362 explicit variant(bsl::allocator_arg_t,
66363 allocator_type allocator,
66365 const t_ARG_01& arg_01,
66366 const t_ARG_02& arg_02,
66367 const t_ARG_03& arg_03,
66368 const t_ARG_04& arg_04);
66369
66370 template <size_t t_INDEX,
66371 class t_ARG_01,
66372 class t_ARG_02,
66373 class t_ARG_03,
66374 class t_ARG_04,
66375 class t_ARG_05>
66376 explicit variant(bsl::allocator_arg_t,
66377 allocator_type allocator,
66379 const t_ARG_01& arg_01,
66380 const t_ARG_02& arg_02,
66381 const t_ARG_03& arg_03,
66382 const t_ARG_04& arg_04,
66383 const t_ARG_05& arg_05);
66384
66385 template <size_t t_INDEX,
66386 class t_ARG_01,
66387 class t_ARG_02,
66388 class t_ARG_03,
66389 class t_ARG_04,
66390 class t_ARG_05,
66391 class t_ARG_06>
66392 explicit variant(bsl::allocator_arg_t,
66393 allocator_type allocator,
66395 const t_ARG_01& arg_01,
66396 const t_ARG_02& arg_02,
66397 const t_ARG_03& arg_03,
66398 const t_ARG_04& arg_04,
66399 const t_ARG_05& arg_05,
66400 const t_ARG_06& arg_06);
66401
66402 template <size_t t_INDEX,
66403 class t_ARG_01,
66404 class t_ARG_02,
66405 class t_ARG_03,
66406 class t_ARG_04,
66407 class t_ARG_05,
66408 class t_ARG_06,
66409 class t_ARG_07>
66410 explicit variant(bsl::allocator_arg_t,
66411 allocator_type allocator,
66413 const t_ARG_01& arg_01,
66414 const t_ARG_02& arg_02,
66415 const t_ARG_03& arg_03,
66416 const t_ARG_04& arg_04,
66417 const t_ARG_05& arg_05,
66418 const t_ARG_06& arg_06,
66419 const t_ARG_07& arg_07);
66420
66421 template <size_t t_INDEX,
66422 class t_ARG_01,
66423 class t_ARG_02,
66424 class t_ARG_03,
66425 class t_ARG_04,
66426 class t_ARG_05,
66427 class t_ARG_06,
66428 class t_ARG_07,
66429 class t_ARG_08>
66430 explicit variant(bsl::allocator_arg_t,
66431 allocator_type allocator,
66433 const t_ARG_01& arg_01,
66434 const t_ARG_02& arg_02,
66435 const t_ARG_03& arg_03,
66436 const t_ARG_04& arg_04,
66437 const t_ARG_05& arg_05,
66438 const t_ARG_06& arg_06,
66439 const t_ARG_07& arg_07,
66440 const t_ARG_08& arg_08);
66441
66442 template <size_t t_INDEX,
66443 class t_ARG_01,
66444 class t_ARG_02,
66445 class t_ARG_03,
66446 class t_ARG_04,
66447 class t_ARG_05,
66448 class t_ARG_06,
66449 class t_ARG_07,
66450 class t_ARG_08,
66451 class t_ARG_09>
66452 explicit variant(bsl::allocator_arg_t,
66453 allocator_type allocator,
66455 const t_ARG_01& arg_01,
66456 const t_ARG_02& arg_02,
66457 const t_ARG_03& arg_03,
66458 const t_ARG_04& arg_04,
66459 const t_ARG_05& arg_05,
66460 const t_ARG_06& arg_06,
66461 const t_ARG_07& arg_07,
66462 const t_ARG_08& arg_08,
66463 const t_ARG_09& arg_09);
66464
66465 template <size_t t_INDEX,
66466 class t_ARG_01,
66467 class t_ARG_02,
66468 class t_ARG_03,
66469 class t_ARG_04,
66470 class t_ARG_05,
66471 class t_ARG_06,
66472 class t_ARG_07,
66473 class t_ARG_08,
66474 class t_ARG_09,
66475 class t_ARG_10>
66476 explicit variant(bsl::allocator_arg_t,
66477 allocator_type allocator,
66479 const t_ARG_01& arg_01,
66480 const t_ARG_02& arg_02,
66481 const t_ARG_03& arg_03,
66482 const t_ARG_04& arg_04,
66483 const t_ARG_05& arg_05,
66484 const t_ARG_06& arg_06,
66485 const t_ARG_07& arg_07,
66486 const t_ARG_08& arg_08,
66487 const t_ARG_09& arg_09,
66488 const t_ARG_10& arg_10);
66489
66490#endif
66491
66492
66493#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
66494 template <class t_TYPE,
66495 class t_ARGS_01,
66496 class t_ARGS_02,
66497 class t_ARGS_03,
66498 class t_ARGS_04,
66499 class t_ARGS_05,
66500 class t_ARGS_06,
66501 class t_ARGS_07,
66502 class t_ARGS_08,
66503 class t_ARGS_09,
66504 class t_ARGS_10,
66505 class t_ARGS_11,
66506 class t_ARGS_12,
66507 class t_ARGS_13,
66508 class t_ARGS_14,
66509 class t_ARGS_15,
66510 class = typename bsl::enable_if_t<
66512 std::is_constructible<t_TYPE, t_ARGS_01,
66513 t_ARGS_02,
66514 t_ARGS_03,
66515 t_ARGS_04,
66516 t_ARGS_05,
66517 t_ARGS_06,
66518 t_ARGS_07,
66519 t_ARGS_08,
66520 t_ARGS_09,
66521 t_ARGS_10,
66522 t_ARGS_11,
66523 t_ARGS_12,
66524 t_ARGS_13,
66525 t_ARGS_14,
66526 t_ARGS_15>::value> >
66527 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
66528 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
66529 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
66530 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
66531 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
66532 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
66533 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
66534 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
66535 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
66536 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
66537 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
66538 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
66539 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
66540 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
66541 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
66542 {
66543 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
66544 Variant_Base::template baseEmplace<index>(
66545 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
66546 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
66547 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
66548 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
66549 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
66550 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
66551 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
66552 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
66553 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
66554 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
66555 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
66556 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
66557 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
66558 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
66559 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15));
66560
66561 return bsl::get<index>(*this);
66562 }
66563
66564 template <class t_TYPE,
66565 class INIT_LIST_TYPE,
66566 class t_ARGS_01,
66567 class t_ARGS_02,
66568 class t_ARGS_03,
66569 class t_ARGS_04,
66570 class t_ARGS_05,
66571 class t_ARGS_06,
66572 class t_ARGS_07,
66573 class t_ARGS_08,
66574 class t_ARGS_09,
66575 class t_ARGS_10,
66576 class t_ARGS_11,
66577 class t_ARGS_12,
66578 class t_ARGS_13,
66579 class t_ARGS_14,
66580 class t_ARGS_15,
66581 class = typename bsl::enable_if_t<
66583 std::is_constructible<t_TYPE,
66584 std::initializer_list<INIT_LIST_TYPE>&,
66585 t_ARGS_01,
66586 t_ARGS_02,
66587 t_ARGS_03,
66588 t_ARGS_04,
66589 t_ARGS_05,
66590 t_ARGS_06,
66591 t_ARGS_07,
66592 t_ARGS_08,
66593 t_ARGS_09,
66594 t_ARGS_10,
66595 t_ARGS_11,
66596 t_ARGS_12,
66597 t_ARGS_13,
66598 t_ARGS_14,
66599 t_ARGS_15>::value> >
66600 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
66601 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
66602 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
66603 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
66604 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
66605 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
66606 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
66607 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
66608 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
66609 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
66610 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
66611 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
66612 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
66613 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
66614 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
66615 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
66616 {
66617 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
66618 Variant_Base::template baseEmplace<index>(
66619 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
66620 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
66621 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
66622 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
66623 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
66624 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
66625 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
66626 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
66627 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
66628 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
66629 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
66630 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
66631 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
66632 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
66633 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15));
66634
66635 return bsl::get<index>(*this);
66636 }
66637
66638 template <size_t t_INDEX,
66639 class t_ARGS_01,
66640 class t_ARGS_02,
66641 class t_ARGS_03,
66642 class t_ARGS_04,
66643 class t_ARGS_05,
66644 class t_ARGS_06,
66645 class t_ARGS_07,
66646 class t_ARGS_08,
66647 class t_ARGS_09,
66648 class t_ARGS_10,
66649 class t_ARGS_11,
66650 class t_ARGS_12,
66651 class t_ARGS_13,
66652 class t_ARGS_14,
66653 class t_ARGS_15,
66654 class = typename bsl::enable_if_t<
66655 (t_INDEX < 1 + 15u) &&
66656 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
66657 t_ARGS_01,
66658 t_ARGS_02,
66659 t_ARGS_03,
66660 t_ARGS_04,
66661 t_ARGS_05,
66662 t_ARGS_06,
66663 t_ARGS_07,
66664 t_ARGS_08,
66665 t_ARGS_09,
66666 t_ARGS_10,
66667 t_ARGS_11,
66668 t_ARGS_12,
66669 t_ARGS_13,
66670 t_ARGS_14,
66671 t_ARGS_15>::value> >
66672 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
66673 t_TAIL_02,
66674 t_TAIL_03,
66675 t_TAIL_04,
66676 t_TAIL_05,
66677 t_TAIL_06,
66678 t_TAIL_07,
66679 t_TAIL_08,
66680 t_TAIL_09,
66681 t_TAIL_10,
66682 t_TAIL_11,
66683 t_TAIL_12,
66684 t_TAIL_13,
66685 t_TAIL_14,
66686 t_TAIL_15> >::type&
66687 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
66688 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
66689 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
66690 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
66691 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
66692 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
66693 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
66694 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
66695 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
66696 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
66697 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
66698 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
66699 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
66700 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
66701 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
66702 {
66703 Variant_Base::template baseEmplace<t_INDEX>(
66704 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
66705 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
66706 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
66707 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
66708 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
66709 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
66710 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
66711 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
66712 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
66713 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
66714 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
66715 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
66716 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
66717 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
66718 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15));
66719
66720 return bsl::get<t_INDEX>(*this);
66721 }
66722
66723 template <size_t t_INDEX,
66724 class INIT_LIST_TYPE,
66725 class t_ARGS_01,
66726 class t_ARGS_02,
66727 class t_ARGS_03,
66728 class t_ARGS_04,
66729 class t_ARGS_05,
66730 class t_ARGS_06,
66731 class t_ARGS_07,
66732 class t_ARGS_08,
66733 class t_ARGS_09,
66734 class t_ARGS_10,
66735 class t_ARGS_11,
66736 class t_ARGS_12,
66737 class t_ARGS_13,
66738 class t_ARGS_14,
66739 class t_ARGS_15,
66740 class = typename bsl::enable_if_t<
66741 (t_INDEX < 1 + 15u) &&
66742 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
66743 std::initializer_list<INIT_LIST_TYPE>&,
66744 t_ARGS_01,
66745 t_ARGS_02,
66746 t_ARGS_03,
66747 t_ARGS_04,
66748 t_ARGS_05,
66749 t_ARGS_06,
66750 t_ARGS_07,
66751 t_ARGS_08,
66752 t_ARGS_09,
66753 t_ARGS_10,
66754 t_ARGS_11,
66755 t_ARGS_12,
66756 t_ARGS_13,
66757 t_ARGS_14,
66758 t_ARGS_15>::value> >
66759 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
66760 t_TAIL_02,
66761 t_TAIL_03,
66762 t_TAIL_04,
66763 t_TAIL_05,
66764 t_TAIL_06,
66765 t_TAIL_07,
66766 t_TAIL_08,
66767 t_TAIL_09,
66768 t_TAIL_10,
66769 t_TAIL_11,
66770 t_TAIL_12,
66771 t_TAIL_13,
66772 t_TAIL_14,
66773 t_TAIL_15> >::type&
66774 emplace(std::initializer_list<INIT_LIST_TYPE> il,
66775 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
66776 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
66777 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
66778 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
66779 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
66780 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
66781 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
66782 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
66783 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
66784 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
66785 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
66786 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
66787 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
66788 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
66789 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15)
66790 {
66791 Variant_Base::template baseEmplace<t_INDEX>(
66792 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
66793 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
66794 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
66795 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
66796 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
66797 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
66798 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
66799 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
66800 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
66801 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
66802 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
66803 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
66804 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
66805 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
66806 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15));
66807
66808 return bsl::get<t_INDEX>(*this);
66809 }
66810
66811#else
66812
66813 template <class t_TYPE>
66814 typename bsl::enable_if<
66815 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66816 t_TYPE&>::type
66817 emplace();
66818
66819 template <class t_TYPE, class t_ARG_01>
66820 typename bsl::enable_if<
66821 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66822 t_TYPE&>::type
66823 emplace(const t_ARG_01& arg_01);
66824
66825 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
66826 typename bsl::enable_if<
66827 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66828 t_TYPE&>::type
66829 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
66830
66831 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
66832 typename bsl::enable_if<
66833 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66834 t_TYPE&>::type
66835 emplace(const t_ARG_01& arg_01,
66836 const t_ARG_02& arg_02,
66837 const t_ARG_03& arg_03);
66838
66839 template <class t_TYPE,
66840 class t_ARG_01,
66841 class t_ARG_02,
66842 class t_ARG_03,
66843 class t_ARG_04>
66844 typename bsl::enable_if<
66845 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66846 t_TYPE&>::type
66847 emplace(const t_ARG_01& arg_01,
66848 const t_ARG_02& arg_02,
66849 const t_ARG_03& arg_03,
66850 const t_ARG_04& arg_04);
66851
66852 template <class t_TYPE,
66853 class t_ARG_01,
66854 class t_ARG_02,
66855 class t_ARG_03,
66856 class t_ARG_04,
66857 class t_ARG_05>
66858 typename bsl::enable_if<
66859 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66860 t_TYPE&>::type
66861 emplace(const t_ARG_01& arg_01,
66862 const t_ARG_02& arg_02,
66863 const t_ARG_03& arg_03,
66864 const t_ARG_04& arg_04,
66865 const t_ARG_05& arg_05);
66866
66867 template <class t_TYPE,
66868 class t_ARG_01,
66869 class t_ARG_02,
66870 class t_ARG_03,
66871 class t_ARG_04,
66872 class t_ARG_05,
66873 class t_ARG_06>
66874 typename bsl::enable_if<
66875 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66876 t_TYPE&>::type
66877 emplace(const t_ARG_01& arg_01,
66878 const t_ARG_02& arg_02,
66879 const t_ARG_03& arg_03,
66880 const t_ARG_04& arg_04,
66881 const t_ARG_05& arg_05,
66882 const t_ARG_06& arg_06);
66883
66884 template <class t_TYPE,
66885 class t_ARG_01,
66886 class t_ARG_02,
66887 class t_ARG_03,
66888 class t_ARG_04,
66889 class t_ARG_05,
66890 class t_ARG_06,
66891 class t_ARG_07>
66892 typename bsl::enable_if<
66893 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66894 t_TYPE&>::type
66895 emplace(const t_ARG_01& arg_01,
66896 const t_ARG_02& arg_02,
66897 const t_ARG_03& arg_03,
66898 const t_ARG_04& arg_04,
66899 const t_ARG_05& arg_05,
66900 const t_ARG_06& arg_06,
66901 const t_ARG_07& arg_07);
66902
66903 template <class t_TYPE,
66904 class t_ARG_01,
66905 class t_ARG_02,
66906 class t_ARG_03,
66907 class t_ARG_04,
66908 class t_ARG_05,
66909 class t_ARG_06,
66910 class t_ARG_07,
66911 class t_ARG_08>
66912 typename bsl::enable_if<
66913 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66914 t_TYPE&>::type
66915 emplace(const t_ARG_01& arg_01,
66916 const t_ARG_02& arg_02,
66917 const t_ARG_03& arg_03,
66918 const t_ARG_04& arg_04,
66919 const t_ARG_05& arg_05,
66920 const t_ARG_06& arg_06,
66921 const t_ARG_07& arg_07,
66922 const t_ARG_08& arg_08);
66923
66924 template <class t_TYPE,
66925 class t_ARG_01,
66926 class t_ARG_02,
66927 class t_ARG_03,
66928 class t_ARG_04,
66929 class t_ARG_05,
66930 class t_ARG_06,
66931 class t_ARG_07,
66932 class t_ARG_08,
66933 class t_ARG_09>
66934 typename bsl::enable_if<
66935 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66936 t_TYPE&>::type
66937 emplace(const t_ARG_01& arg_01,
66938 const t_ARG_02& arg_02,
66939 const t_ARG_03& arg_03,
66940 const t_ARG_04& arg_04,
66941 const t_ARG_05& arg_05,
66942 const t_ARG_06& arg_06,
66943 const t_ARG_07& arg_07,
66944 const t_ARG_08& arg_08,
66945 const t_ARG_09& arg_09);
66946
66947 template <class t_TYPE,
66948 class t_ARG_01,
66949 class t_ARG_02,
66950 class t_ARG_03,
66951 class t_ARG_04,
66952 class t_ARG_05,
66953 class t_ARG_06,
66954 class t_ARG_07,
66955 class t_ARG_08,
66956 class t_ARG_09,
66957 class t_ARG_10>
66958 typename bsl::enable_if<
66959 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
66960 t_TYPE&>::type
66961 emplace(const t_ARG_01& arg_01,
66962 const t_ARG_02& arg_02,
66963 const t_ARG_03& arg_03,
66964 const t_ARG_04& arg_04,
66965 const t_ARG_05& arg_05,
66966 const t_ARG_06& arg_06,
66967 const t_ARG_07& arg_07,
66968 const t_ARG_08& arg_08,
66969 const t_ARG_09& arg_09,
66970 const t_ARG_10& arg_10);
66971
66972 template <size_t t_INDEX>
66973 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
66974 t_TAIL_02,
66975 t_TAIL_03,
66976 t_TAIL_04,
66977 t_TAIL_05,
66978 t_TAIL_06,
66979 t_TAIL_07,
66980 t_TAIL_08,
66981 t_TAIL_09,
66982 t_TAIL_10,
66983 t_TAIL_11,
66984 t_TAIL_12,
66985 t_TAIL_13,
66986 t_TAIL_14,
66987 t_TAIL_15> >::type&
66988 emplace();
66989
66990 template <size_t t_INDEX, class t_ARG_01>
66991 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
66992 t_TAIL_02,
66993 t_TAIL_03,
66994 t_TAIL_04,
66995 t_TAIL_05,
66996 t_TAIL_06,
66997 t_TAIL_07,
66998 t_TAIL_08,
66999 t_TAIL_09,
67000 t_TAIL_10,
67001 t_TAIL_11,
67002 t_TAIL_12,
67003 t_TAIL_13,
67004 t_TAIL_14,
67005 t_TAIL_15> >::type&
67006 emplace(const t_ARG_01& arg_01);
67007
67008 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
67009 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67010 t_TAIL_02,
67011 t_TAIL_03,
67012 t_TAIL_04,
67013 t_TAIL_05,
67014 t_TAIL_06,
67015 t_TAIL_07,
67016 t_TAIL_08,
67017 t_TAIL_09,
67018 t_TAIL_10,
67019 t_TAIL_11,
67020 t_TAIL_12,
67021 t_TAIL_13,
67022 t_TAIL_14,
67023 t_TAIL_15> >::type&
67024 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
67025
67026 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
67027 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67028 t_TAIL_02,
67029 t_TAIL_03,
67030 t_TAIL_04,
67031 t_TAIL_05,
67032 t_TAIL_06,
67033 t_TAIL_07,
67034 t_TAIL_08,
67035 t_TAIL_09,
67036 t_TAIL_10,
67037 t_TAIL_11,
67038 t_TAIL_12,
67039 t_TAIL_13,
67040 t_TAIL_14,
67041 t_TAIL_15> >::type&
67042 emplace(const t_ARG_01& arg_01,
67043 const t_ARG_02& arg_02,
67044 const t_ARG_03& arg_03);
67045
67046 template <size_t t_INDEX,
67047 class t_ARG_01,
67048 class t_ARG_02,
67049 class t_ARG_03,
67050 class t_ARG_04>
67051 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67052 t_TAIL_02,
67053 t_TAIL_03,
67054 t_TAIL_04,
67055 t_TAIL_05,
67056 t_TAIL_06,
67057 t_TAIL_07,
67058 t_TAIL_08,
67059 t_TAIL_09,
67060 t_TAIL_10,
67061 t_TAIL_11,
67062 t_TAIL_12,
67063 t_TAIL_13,
67064 t_TAIL_14,
67065 t_TAIL_15> >::type&
67066 emplace(const t_ARG_01& arg_01,
67067 const t_ARG_02& arg_02,
67068 const t_ARG_03& arg_03,
67069 const t_ARG_04& arg_04);
67070
67071 template <size_t t_INDEX,
67072 class t_ARG_01,
67073 class t_ARG_02,
67074 class t_ARG_03,
67075 class t_ARG_04,
67076 class t_ARG_05>
67077 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67078 t_TAIL_02,
67079 t_TAIL_03,
67080 t_TAIL_04,
67081 t_TAIL_05,
67082 t_TAIL_06,
67083 t_TAIL_07,
67084 t_TAIL_08,
67085 t_TAIL_09,
67086 t_TAIL_10,
67087 t_TAIL_11,
67088 t_TAIL_12,
67089 t_TAIL_13,
67090 t_TAIL_14,
67091 t_TAIL_15> >::type&
67092 emplace(const t_ARG_01& arg_01,
67093 const t_ARG_02& arg_02,
67094 const t_ARG_03& arg_03,
67095 const t_ARG_04& arg_04,
67096 const t_ARG_05& arg_05);
67097
67098 template <size_t t_INDEX,
67099 class t_ARG_01,
67100 class t_ARG_02,
67101 class t_ARG_03,
67102 class t_ARG_04,
67103 class t_ARG_05,
67104 class t_ARG_06>
67105 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67106 t_TAIL_02,
67107 t_TAIL_03,
67108 t_TAIL_04,
67109 t_TAIL_05,
67110 t_TAIL_06,
67111 t_TAIL_07,
67112 t_TAIL_08,
67113 t_TAIL_09,
67114 t_TAIL_10,
67115 t_TAIL_11,
67116 t_TAIL_12,
67117 t_TAIL_13,
67118 t_TAIL_14,
67119 t_TAIL_15> >::type&
67120 emplace(const t_ARG_01& arg_01,
67121 const t_ARG_02& arg_02,
67122 const t_ARG_03& arg_03,
67123 const t_ARG_04& arg_04,
67124 const t_ARG_05& arg_05,
67125 const t_ARG_06& arg_06);
67126
67127 template <size_t t_INDEX,
67128 class t_ARG_01,
67129 class t_ARG_02,
67130 class t_ARG_03,
67131 class t_ARG_04,
67132 class t_ARG_05,
67133 class t_ARG_06,
67134 class t_ARG_07>
67135 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67136 t_TAIL_02,
67137 t_TAIL_03,
67138 t_TAIL_04,
67139 t_TAIL_05,
67140 t_TAIL_06,
67141 t_TAIL_07,
67142 t_TAIL_08,
67143 t_TAIL_09,
67144 t_TAIL_10,
67145 t_TAIL_11,
67146 t_TAIL_12,
67147 t_TAIL_13,
67148 t_TAIL_14,
67149 t_TAIL_15> >::type&
67150 emplace(const t_ARG_01& arg_01,
67151 const t_ARG_02& arg_02,
67152 const t_ARG_03& arg_03,
67153 const t_ARG_04& arg_04,
67154 const t_ARG_05& arg_05,
67155 const t_ARG_06& arg_06,
67156 const t_ARG_07& arg_07);
67157
67158 template <size_t t_INDEX,
67159 class t_ARG_01,
67160 class t_ARG_02,
67161 class t_ARG_03,
67162 class t_ARG_04,
67163 class t_ARG_05,
67164 class t_ARG_06,
67165 class t_ARG_07,
67166 class t_ARG_08>
67167 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67168 t_TAIL_02,
67169 t_TAIL_03,
67170 t_TAIL_04,
67171 t_TAIL_05,
67172 t_TAIL_06,
67173 t_TAIL_07,
67174 t_TAIL_08,
67175 t_TAIL_09,
67176 t_TAIL_10,
67177 t_TAIL_11,
67178 t_TAIL_12,
67179 t_TAIL_13,
67180 t_TAIL_14,
67181 t_TAIL_15> >::type&
67182 emplace(const t_ARG_01& arg_01,
67183 const t_ARG_02& arg_02,
67184 const t_ARG_03& arg_03,
67185 const t_ARG_04& arg_04,
67186 const t_ARG_05& arg_05,
67187 const t_ARG_06& arg_06,
67188 const t_ARG_07& arg_07,
67189 const t_ARG_08& arg_08);
67190
67191 template <size_t t_INDEX,
67192 class t_ARG_01,
67193 class t_ARG_02,
67194 class t_ARG_03,
67195 class t_ARG_04,
67196 class t_ARG_05,
67197 class t_ARG_06,
67198 class t_ARG_07,
67199 class t_ARG_08,
67200 class t_ARG_09>
67201 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67202 t_TAIL_02,
67203 t_TAIL_03,
67204 t_TAIL_04,
67205 t_TAIL_05,
67206 t_TAIL_06,
67207 t_TAIL_07,
67208 t_TAIL_08,
67209 t_TAIL_09,
67210 t_TAIL_10,
67211 t_TAIL_11,
67212 t_TAIL_12,
67213 t_TAIL_13,
67214 t_TAIL_14,
67215 t_TAIL_15> >::type&
67216 emplace(const t_ARG_01& arg_01,
67217 const t_ARG_02& arg_02,
67218 const t_ARG_03& arg_03,
67219 const t_ARG_04& arg_04,
67220 const t_ARG_05& arg_05,
67221 const t_ARG_06& arg_06,
67222 const t_ARG_07& arg_07,
67223 const t_ARG_08& arg_08,
67224 const t_ARG_09& arg_09);
67225
67226 template <size_t t_INDEX,
67227 class t_ARG_01,
67228 class t_ARG_02,
67229 class t_ARG_03,
67230 class t_ARG_04,
67231 class t_ARG_05,
67232 class t_ARG_06,
67233 class t_ARG_07,
67234 class t_ARG_08,
67235 class t_ARG_09,
67236 class t_ARG_10>
67237 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
67238 t_TAIL_02,
67239 t_TAIL_03,
67240 t_TAIL_04,
67241 t_TAIL_05,
67242 t_TAIL_06,
67243 t_TAIL_07,
67244 t_TAIL_08,
67245 t_TAIL_09,
67246 t_TAIL_10,
67247 t_TAIL_11,
67248 t_TAIL_12,
67249 t_TAIL_13,
67250 t_TAIL_14,
67251 t_TAIL_15> >::type&
67252 emplace(const t_ARG_01& arg_01,
67253 const t_ARG_02& arg_02,
67254 const t_ARG_03& arg_03,
67255 const t_ARG_04& arg_04,
67256 const t_ARG_05& arg_05,
67257 const t_ARG_06& arg_06,
67258 const t_ARG_07& arg_07,
67259 const t_ARG_08& arg_08,
67260 const t_ARG_09& arg_09,
67261 const t_ARG_10& arg_10);
67262#endif
67263
67264#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
67265 variant& operator=(const variant& rhs) = default;
67266
67267 variant& operator=(variant&& rhs) = default;
67268
67269 template <class t_TYPE>
67270 typename bsl::enable_if<
67271 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
67272 variant&>::type
67273 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
67274 {
67275 const size_t altIndex =
67276 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
67277
67278 if (index() == altIndex) {
67279 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
67280 value);
67281 }
67282 else {
67283 Variant_Base::template baseEmplace<altIndex>(
67284 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
67285 }
67286
67287 return *this;
67288 }
67289#else
67290 variant& operator=(const variant& rhs);
67291
67292 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
67293
67294 template <class t_TYPE>
67295 typename bsl::enable_if<
67296 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
67297 variant&>::type
67298 operator=(const t_TYPE& value);
67299
67300#endif
67301
67302 void swap(variant& other);
67303
67304#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
67305 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
67306 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
67307 t_TAIL_02,
67308 t_TAIL_03,
67309 t_TAIL_04,
67310 t_TAIL_05,
67311 t_TAIL_06,
67312 t_TAIL_07,
67313 t_TAIL_08,
67314 t_TAIL_09,
67315 t_TAIL_10,
67316 t_TAIL_11,
67317 t_TAIL_12,
67318 t_TAIL_13,
67319 t_TAIL_14,
67320 t_TAIL_15>::value,
67321 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
67322#endif
67323 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
67324 {
67325 return allocator_type(Variant_Base::AllocBase::mechanism());
67326 }
67327
67328
67329 size_t index() const BSLS_KEYWORD_NOEXCEPT;
67330
67331 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
67332};
67333#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 15
67334
67335#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 16
67336template <class t_HEAD, class t_TAIL_01,
67337 class t_TAIL_02,
67338 class t_TAIL_03,
67339 class t_TAIL_04,
67340 class t_TAIL_05,
67341 class t_TAIL_06,
67342 class t_TAIL_07,
67343 class t_TAIL_08,
67344 class t_TAIL_09,
67345 class t_TAIL_10,
67346 class t_TAIL_11,
67347 class t_TAIL_12,
67348 class t_TAIL_13,
67349 class t_TAIL_14,
67350 class t_TAIL_15,
67351 class t_TAIL_16>
67352class variant<t_HEAD, t_TAIL_01,
67353 t_TAIL_02,
67354 t_TAIL_03,
67355 t_TAIL_04,
67356 t_TAIL_05,
67357 t_TAIL_06,
67358 t_TAIL_07,
67359 t_TAIL_08,
67360 t_TAIL_09,
67361 t_TAIL_10,
67362 t_TAIL_11,
67363 t_TAIL_12,
67364 t_TAIL_13,
67365 t_TAIL_14,
67366 t_TAIL_15,
67367 t_TAIL_16>
67368: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
67369 t_TAIL_02,
67370 t_TAIL_03,
67371 t_TAIL_04,
67372 t_TAIL_05,
67373 t_TAIL_06,
67374 t_TAIL_07,
67375 t_TAIL_08,
67376 t_TAIL_09,
67377 t_TAIL_10,
67378 t_TAIL_11,
67379 t_TAIL_12,
67380 t_TAIL_13,
67381 t_TAIL_14,
67382 t_TAIL_15,
67383 t_TAIL_16>
67384#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
67385,
67386 private BloombergLP::bslstl::Variant_SMFBase<
67387 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
67388 t_TAIL_01,
67389 t_TAIL_02,
67390 t_TAIL_03,
67391 t_TAIL_04,
67392 t_TAIL_05,
67393 t_TAIL_06,
67394 t_TAIL_07,
67395 t_TAIL_08,
67396 t_TAIL_09,
67397 t_TAIL_10,
67398 t_TAIL_11,
67399 t_TAIL_12,
67400 t_TAIL_13,
67401 t_TAIL_14,
67402 t_TAIL_15,
67403 t_TAIL_16>::value,
67404 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
67405 t_TAIL_01,
67406 t_TAIL_02,
67407 t_TAIL_03,
67408 t_TAIL_04,
67409 t_TAIL_05,
67410 t_TAIL_06,
67411 t_TAIL_07,
67412 t_TAIL_08,
67413 t_TAIL_09,
67414 t_TAIL_10,
67415 t_TAIL_11,
67416 t_TAIL_12,
67417 t_TAIL_13,
67418 t_TAIL_14,
67419 t_TAIL_15,
67420 t_TAIL_16>::value,
67421 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
67422 t_TAIL_01,
67423 t_TAIL_02,
67424 t_TAIL_03,
67425 t_TAIL_04,
67426 t_TAIL_05,
67427 t_TAIL_06,
67428 t_TAIL_07,
67429 t_TAIL_08,
67430 t_TAIL_09,
67431 t_TAIL_10,
67432 t_TAIL_11,
67433 t_TAIL_12,
67434 t_TAIL_13,
67435 t_TAIL_14,
67436 t_TAIL_15,
67437 t_TAIL_16>::value &&
67438 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
67439 t_TAIL_01,
67440 t_TAIL_02,
67441 t_TAIL_03,
67442 t_TAIL_04,
67443 t_TAIL_05,
67444 t_TAIL_06,
67445 t_TAIL_07,
67446 t_TAIL_08,
67447 t_TAIL_09,
67448 t_TAIL_10,
67449 t_TAIL_11,
67450 t_TAIL_12,
67451 t_TAIL_13,
67452 t_TAIL_14,
67453 t_TAIL_15,
67454 t_TAIL_16>::value,
67455 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
67456 t_TAIL_01,
67457 t_TAIL_02,
67458 t_TAIL_03,
67459 t_TAIL_04,
67460 t_TAIL_05,
67461 t_TAIL_06,
67462 t_TAIL_07,
67463 t_TAIL_08,
67464 t_TAIL_09,
67465 t_TAIL_10,
67466 t_TAIL_11,
67467 t_TAIL_12,
67468 t_TAIL_13,
67469 t_TAIL_14,
67470 t_TAIL_15,
67471 t_TAIL_16>::value &&
67472 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
67473 t_TAIL_01,
67474 t_TAIL_02,
67475 t_TAIL_03,
67476 t_TAIL_04,
67477 t_TAIL_05,
67478 t_TAIL_06,
67479 t_TAIL_07,
67480 t_TAIL_08,
67481 t_TAIL_09,
67482 t_TAIL_10,
67483 t_TAIL_11,
67484 t_TAIL_12,
67485 t_TAIL_13,
67486 t_TAIL_14,
67487 t_TAIL_15,
67488 t_TAIL_16>::value>
67489#endif
67490{
67491 private:
67492 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
67493 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
67494 t_TAIL_02,
67495 t_TAIL_03,
67496 t_TAIL_04,
67497 t_TAIL_05,
67498 t_TAIL_06,
67499 t_TAIL_07,
67500 t_TAIL_08,
67501 t_TAIL_09,
67502 t_TAIL_10,
67503 t_TAIL_11,
67504 t_TAIL_12,
67505 t_TAIL_13,
67506 t_TAIL_14,
67507 t_TAIL_15,
67508 t_TAIL_16> Variant_Base;
67509 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
67510 t_TAIL_02,
67511 t_TAIL_03,
67512 t_TAIL_04,
67513 t_TAIL_05,
67514 t_TAIL_06,
67515 t_TAIL_07,
67516 t_TAIL_08,
67517 t_TAIL_09,
67518 t_TAIL_10,
67519 t_TAIL_11,
67520 t_TAIL_12,
67521 t_TAIL_13,
67522 t_TAIL_14,
67523 t_TAIL_15,
67524 t_TAIL_16>
67525 Variant_Union;
67526
67527 friend struct BloombergLP::bslstl::Variant_ImpUtil;
67528
67529 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
67530 t_TAIL_02,
67531 t_TAIL_03,
67532 t_TAIL_04,
67533 t_TAIL_05,
67534 t_TAIL_06,
67535 t_TAIL_07,
67536 t_TAIL_08,
67537 t_TAIL_09,
67538 t_TAIL_10,
67539 t_TAIL_11,
67540 t_TAIL_12,
67541 t_TAIL_13,
67542 t_TAIL_14,
67543 t_TAIL_15,
67544 t_TAIL_16>;
67545
67546 public:
67548 variant,
67549 BloombergLP::bslma::UsesBslmaAllocator,
67550 (BloombergLP::bslstl::
67551 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
67552 t_TAIL_02,
67553 t_TAIL_03,
67554 t_TAIL_04,
67555 t_TAIL_05,
67556 t_TAIL_06,
67557 t_TAIL_07,
67558 t_TAIL_08,
67559 t_TAIL_09,
67560 t_TAIL_10,
67561 t_TAIL_11,
67562 t_TAIL_12,
67563 t_TAIL_13,
67564 t_TAIL_14,
67565 t_TAIL_15,
67566 t_TAIL_16>::value));
67568 variant,
67569 BloombergLP::bslmf::UsesAllocatorArgT,
67570 (BloombergLP::bslstl::
67571 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
67572 t_TAIL_02,
67573 t_TAIL_03,
67574 t_TAIL_04,
67575 t_TAIL_05,
67576 t_TAIL_06,
67577 t_TAIL_07,
67578 t_TAIL_08,
67579 t_TAIL_09,
67580 t_TAIL_10,
67581 t_TAIL_11,
67582 t_TAIL_12,
67583 t_TAIL_13,
67584 t_TAIL_14,
67585 t_TAIL_15,
67586 t_TAIL_16>::value));
67588 variant,
67589 BloombergLP::bslmf::IsBitwiseMoveable,
67590 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
67591 t_TAIL_01,
67592 t_TAIL_02,
67593 t_TAIL_03,
67594 t_TAIL_04,
67595 t_TAIL_05,
67596 t_TAIL_06,
67597 t_TAIL_07,
67598 t_TAIL_08,
67599 t_TAIL_09,
67600 t_TAIL_10,
67601 t_TAIL_11,
67602 t_TAIL_12,
67603 t_TAIL_13,
67604 t_TAIL_14,
67605 t_TAIL_15,
67606 t_TAIL_16>::value));
67607
67608
67609 typedef typename Variant_Base::allocator_type allocator_type;
67610
67611
67612#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
67613 template <class t_FIRST_ALT = t_HEAD,
67614 class = typename bsl::enable_if_t<
67615 std::is_default_constructible<t_FIRST_ALT>::value> >
67616 variant()
67617 : Variant_Base()
67618 {
67619 }
67620
67621 variant(const variant& original) = default;
67622
67623 variant(variant&& original) = default;
67624
67625#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
67626 template <class t_STD_VARIANT>
67627 explicit variant(
67628 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
67630 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
67631 original.index())
67632 {
67633 if (!valueless_by_exception()) {
67634 BloombergLP::bslstl::Variant_ImpUtil::
67635 ConstructFromStdVisitor<variant, decltype(original)>
67636 visitor(*this, original);
67637 BSLSTL_VARIANT_VISITID(void, visitor, *this);
67638 }
67639 }
67640#endif
67641
67642 template <class t_TYPE>
67643 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
67645
67646 template <class t_TYPE,
67647 class t_ARGS_01,
67648 class t_ARGS_02,
67649 class t_ARGS_03,
67650 class t_ARGS_04,
67651 class t_ARGS_05,
67652 class t_ARGS_06,
67653 class t_ARGS_07,
67654 class t_ARGS_08,
67655 class t_ARGS_09,
67656 class t_ARGS_10,
67657 class t_ARGS_11,
67658 class t_ARGS_12,
67659 class t_ARGS_13,
67660 class t_ARGS_14,
67661 class t_ARGS_15,
67662 class t_ARGS_16,
67663 class = typename bsl::enable_if_t<
67665 std::is_constructible<t_TYPE, t_ARGS_01,
67666 t_ARGS_02,
67667 t_ARGS_03,
67668 t_ARGS_04,
67669 t_ARGS_05,
67670 t_ARGS_06,
67671 t_ARGS_07,
67672 t_ARGS_08,
67673 t_ARGS_09,
67674 t_ARGS_10,
67675 t_ARGS_11,
67676 t_ARGS_12,
67677 t_ARGS_13,
67678 t_ARGS_14,
67679 t_ARGS_15,
67680 t_ARGS_16>::value> >
67681 explicit variant(bsl::in_place_type_t<t_TYPE>,
67682 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
67683 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
67684 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
67685 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
67686 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
67687 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
67688 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
67689 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
67690 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
67691 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
67692 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
67693 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
67694 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
67695 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
67696 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
67697 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
67698 : Variant_Base(
67699 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
67700 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
67701 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
67702 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
67703 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
67704 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
67705 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
67706 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
67707 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
67708 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
67709 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
67710 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
67711 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
67712 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
67713 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
67714 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
67715 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16))
67716 {
67717 }
67718
67719 template <class t_TYPE,
67720 class INIT_LIST_TYPE,
67721 class t_ARGS_01,
67722 class t_ARGS_02,
67723 class t_ARGS_03,
67724 class t_ARGS_04,
67725 class t_ARGS_05,
67726 class t_ARGS_06,
67727 class t_ARGS_07,
67728 class t_ARGS_08,
67729 class t_ARGS_09,
67730 class t_ARGS_10,
67731 class t_ARGS_11,
67732 class t_ARGS_12,
67733 class t_ARGS_13,
67734 class t_ARGS_14,
67735 class t_ARGS_15,
67736 class t_ARGS_16,
67737 class = typename bsl::enable_if_t<
67739 std::is_constructible<t_TYPE,
67740 std::initializer_list<INIT_LIST_TYPE>&,
67741 t_ARGS_01,
67742 t_ARGS_02,
67743 t_ARGS_03,
67744 t_ARGS_04,
67745 t_ARGS_05,
67746 t_ARGS_06,
67747 t_ARGS_07,
67748 t_ARGS_08,
67749 t_ARGS_09,
67750 t_ARGS_10,
67751 t_ARGS_11,
67752 t_ARGS_12,
67753 t_ARGS_13,
67754 t_ARGS_14,
67755 t_ARGS_15,
67756 t_ARGS_16>::value> >
67757 explicit variant(bsl::in_place_type_t<t_TYPE>,
67758 std::initializer_list<INIT_LIST_TYPE> il,
67759 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
67760 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
67761 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
67762 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
67763 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
67764 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
67765 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
67766 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
67767 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
67768 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
67769 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
67770 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
67771 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
67772 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
67773 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
67774 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
67775 : Variant_Base(
67776 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
67777 il,
67778 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
67779 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
67780 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
67781 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
67782 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
67783 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
67784 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
67785 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
67786 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
67787 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
67788 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
67789 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
67790 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
67791 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
67792 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
67793 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16))
67794 {
67795 }
67796
67797 template <size_t t_INDEX,
67798 class t_ARGS_01,
67799 class t_ARGS_02,
67800 class t_ARGS_03,
67801 class t_ARGS_04,
67802 class t_ARGS_05,
67803 class t_ARGS_06,
67804 class t_ARGS_07,
67805 class t_ARGS_08,
67806 class t_ARGS_09,
67807 class t_ARGS_10,
67808 class t_ARGS_11,
67809 class t_ARGS_12,
67810 class t_ARGS_13,
67811 class t_ARGS_14,
67812 class t_ARGS_15,
67813 class t_ARGS_16,
67814 class = typename bsl::enable_if_t<
67815 (t_INDEX < 1 + 16u) &&
67816 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
67817 t_ARGS_01,
67818 t_ARGS_02,
67819 t_ARGS_03,
67820 t_ARGS_04,
67821 t_ARGS_05,
67822 t_ARGS_06,
67823 t_ARGS_07,
67824 t_ARGS_08,
67825 t_ARGS_09,
67826 t_ARGS_10,
67827 t_ARGS_11,
67828 t_ARGS_12,
67829 t_ARGS_13,
67830 t_ARGS_14,
67831 t_ARGS_15,
67832 t_ARGS_16>::value> >
67833 explicit variant(bsl::in_place_index_t<t_INDEX>,
67834 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
67835 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
67836 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
67837 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
67838 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
67839 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
67840 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
67841 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
67842 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
67843 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
67844 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
67845 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
67846 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
67847 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
67848 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
67849 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
67850 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
67851 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
67852 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
67853 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
67854 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
67855 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
67856 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
67857 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
67858 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
67859 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
67860 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
67861 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
67862 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
67863 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
67864 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
67865 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
67866 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16))
67867 {
67868 }
67869
67870 template <size_t t_INDEX,
67871 class INIT_LIST_TYPE,
67872 class t_ARGS_01,
67873 class t_ARGS_02,
67874 class t_ARGS_03,
67875 class t_ARGS_04,
67876 class t_ARGS_05,
67877 class t_ARGS_06,
67878 class t_ARGS_07,
67879 class t_ARGS_08,
67880 class t_ARGS_09,
67881 class t_ARGS_10,
67882 class t_ARGS_11,
67883 class t_ARGS_12,
67884 class t_ARGS_13,
67885 class t_ARGS_14,
67886 class t_ARGS_15,
67887 class t_ARGS_16,
67888 class = typename bsl::enable_if_t<
67889 (t_INDEX < 1 + 16u) &&
67890 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
67891 std::initializer_list<INIT_LIST_TYPE>&,
67892 t_ARGS_01,
67893 t_ARGS_02,
67894 t_ARGS_03,
67895 t_ARGS_04,
67896 t_ARGS_05,
67897 t_ARGS_06,
67898 t_ARGS_07,
67899 t_ARGS_08,
67900 t_ARGS_09,
67901 t_ARGS_10,
67902 t_ARGS_11,
67903 t_ARGS_12,
67904 t_ARGS_13,
67905 t_ARGS_14,
67906 t_ARGS_15,
67907 t_ARGS_16>::value> >
67908 explicit variant(bsl::in_place_index_t<t_INDEX>,
67909 std::initializer_list<INIT_LIST_TYPE> il,
67910 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
67911 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
67912 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
67913 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
67914 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
67915 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
67916 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
67917 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
67918 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
67919 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
67920 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
67921 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
67922 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
67923 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
67924 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
67925 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
67926 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
67927 il,
67928 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
67929 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
67930 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
67931 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
67932 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
67933 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
67934 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
67935 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
67936 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
67937 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
67938 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
67939 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
67940 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
67941 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
67942 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
67943 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16))
67944 {
67945 }
67946
67947 template <class FIRST = t_HEAD,
67948 class = typename bsl::enable_if_t<
67949 std::is_default_constructible<FIRST>::value> >
67950 variant(bsl::allocator_arg_t, allocator_type allocator)
67951 : Variant_Base(bsl::allocator_arg_t(), allocator)
67952 {
67953 }
67954
67955 template <
67956 class FIRST = t_HEAD,
67957 class = typename bsl::enable_if_t<
67958 BloombergLP::bslstl::
67959 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
67960 t_TAIL_02,
67961 t_TAIL_03,
67962 t_TAIL_04,
67963 t_TAIL_05,
67964 t_TAIL_06,
67965 t_TAIL_07,
67966 t_TAIL_08,
67967 t_TAIL_09,
67968 t_TAIL_10,
67969 t_TAIL_11,
67970 t_TAIL_12,
67971 t_TAIL_13,
67972 t_TAIL_14,
67973 t_TAIL_15,
67974 t_TAIL_16>::value> >
67975 variant(bsl::allocator_arg_t,
67976 allocator_type allocator,
67977 const variant& original)
67978 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
67979 {
67980 }
67981 template <
67982 class FIRST = t_HEAD,
67983 class = typename bsl::enable_if_t<
67984 BloombergLP::bslstl::
67985 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
67986 t_TAIL_02,
67987 t_TAIL_03,
67988 t_TAIL_04,
67989 t_TAIL_05,
67990 t_TAIL_06,
67991 t_TAIL_07,
67992 t_TAIL_08,
67993 t_TAIL_09,
67994 t_TAIL_10,
67995 t_TAIL_11,
67996 t_TAIL_12,
67997 t_TAIL_13,
67998 t_TAIL_14,
67999 t_TAIL_15,
68000 t_TAIL_16>::value> >
68001 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
68002 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
68003 {
68004 }
68005
68006#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
68007 template <class t_STD_VARIANT>
68008 explicit variant(
68009 bsl::allocator_arg_t,
68010 allocator_type allocator,
68011 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
68013 : Variant_Base(bsl::allocator_arg_t(),
68014 allocator,
68015 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
68016 original.index())
68017 {
68018 if (!valueless_by_exception()) {
68019 BloombergLP::bslstl::Variant_ImpUtil::
68020 ConstructFromStdVisitor<variant, decltype(original)>
68021 visitor(*this, original);
68022 BSLSTL_VARIANT_VISITID(void, visitor, *this);
68023 }
68024 }
68025#endif
68026
68027 template <class t_TYPE>
68028 variant(
68029 bsl::allocator_arg_t,
68030 allocator_type allocator,
68033
68034 template <class t_TYPE,
68035 class t_ARGS_01,
68036 class t_ARGS_02,
68037 class t_ARGS_03,
68038 class t_ARGS_04,
68039 class t_ARGS_05,
68040 class t_ARGS_06,
68041 class t_ARGS_07,
68042 class t_ARGS_08,
68043 class t_ARGS_09,
68044 class t_ARGS_10,
68045 class t_ARGS_11,
68046 class t_ARGS_12,
68047 class t_ARGS_13,
68048 class t_ARGS_14,
68049 class t_ARGS_15,
68050 class t_ARGS_16,
68051 class = typename bsl::enable_if_t<
68053 std::is_constructible<t_TYPE, t_ARGS_01,
68054 t_ARGS_02,
68055 t_ARGS_03,
68056 t_ARGS_04,
68057 t_ARGS_05,
68058 t_ARGS_06,
68059 t_ARGS_07,
68060 t_ARGS_08,
68061 t_ARGS_09,
68062 t_ARGS_10,
68063 t_ARGS_11,
68064 t_ARGS_12,
68065 t_ARGS_13,
68066 t_ARGS_14,
68067 t_ARGS_15,
68068 t_ARGS_16>::value> >
68069 explicit variant(bsl::allocator_arg_t,
68070 allocator_type allocator,
68072 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
68073 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
68074 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
68075 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
68076 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
68077 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
68078 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
68079 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
68080 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
68081 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
68082 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
68083 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
68084 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
68085 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
68086 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
68087 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
68088 : Variant_Base(
68089 bsl::allocator_arg_t{}
68090,
68091 allocator,
68092 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
68093 std::forward<t_ARGS_01>(args_01),
68094 std::forward<t_ARGS_02>(args_02),
68095 std::forward<t_ARGS_03>(args_03),
68096 std::forward<t_ARGS_04>(args_04),
68097 std::forward<t_ARGS_05>(args_05),
68098 std::forward<t_ARGS_06>(args_06),
68099 std::forward<t_ARGS_07>(args_07),
68100 std::forward<t_ARGS_08>(args_08),
68101 std::forward<t_ARGS_09>(args_09),
68102 std::forward<t_ARGS_10>(args_10),
68103 std::forward<t_ARGS_11>(args_11),
68104 std::forward<t_ARGS_12>(args_12),
68105 std::forward<t_ARGS_13>(args_13),
68106 std::forward<t_ARGS_14>(args_14),
68107 std::forward<t_ARGS_15>(args_15),
68108 std::forward<t_ARGS_16>(args_16))
68109 {
68110 }
68111
68112 template <class t_TYPE,
68113 class INIT_LIST_TYPE,
68114 class t_ARGS_01,
68115 class t_ARGS_02,
68116 class t_ARGS_03,
68117 class t_ARGS_04,
68118 class t_ARGS_05,
68119 class t_ARGS_06,
68120 class t_ARGS_07,
68121 class t_ARGS_08,
68122 class t_ARGS_09,
68123 class t_ARGS_10,
68124 class t_ARGS_11,
68125 class t_ARGS_12,
68126 class t_ARGS_13,
68127 class t_ARGS_14,
68128 class t_ARGS_15,
68129 class t_ARGS_16,
68130 class = typename bsl::enable_if_t<
68132 std::is_constructible<t_TYPE,
68133 std::initializer_list<INIT_LIST_TYPE>&,
68134 t_ARGS_01,
68135 t_ARGS_02,
68136 t_ARGS_03,
68137 t_ARGS_04,
68138 t_ARGS_05,
68139 t_ARGS_06,
68140 t_ARGS_07,
68141 t_ARGS_08,
68142 t_ARGS_09,
68143 t_ARGS_10,
68144 t_ARGS_11,
68145 t_ARGS_12,
68146 t_ARGS_13,
68147 t_ARGS_14,
68148 t_ARGS_15,
68149 t_ARGS_16>::value> >
68150 explicit variant(bsl::allocator_arg_t,
68151 allocator_type allocator,
68153 std::initializer_list<INIT_LIST_TYPE> il,
68154 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
68155 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
68156 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
68157 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
68158 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
68159 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
68160 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
68161 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
68162 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
68163 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
68164 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
68165 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
68166 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
68167 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
68168 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
68169 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
68170 : Variant_Base(
68171 bsl::allocator_arg_t{}
68172,
68173 allocator,
68174 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
68175 il,
68176 std::forward<t_ARGS_01>(args_01),
68177 std::forward<t_ARGS_02>(args_02),
68178 std::forward<t_ARGS_03>(args_03),
68179 std::forward<t_ARGS_04>(args_04),
68180 std::forward<t_ARGS_05>(args_05),
68181 std::forward<t_ARGS_06>(args_06),
68182 std::forward<t_ARGS_07>(args_07),
68183 std::forward<t_ARGS_08>(args_08),
68184 std::forward<t_ARGS_09>(args_09),
68185 std::forward<t_ARGS_10>(args_10),
68186 std::forward<t_ARGS_11>(args_11),
68187 std::forward<t_ARGS_12>(args_12),
68188 std::forward<t_ARGS_13>(args_13),
68189 std::forward<t_ARGS_14>(args_14),
68190 std::forward<t_ARGS_15>(args_15),
68191 std::forward<t_ARGS_16>(args_16))
68192 {
68193 }
68194
68195 template <size_t t_INDEX,
68196 class t_ARGS_01,
68197 class t_ARGS_02,
68198 class t_ARGS_03,
68199 class t_ARGS_04,
68200 class t_ARGS_05,
68201 class t_ARGS_06,
68202 class t_ARGS_07,
68203 class t_ARGS_08,
68204 class t_ARGS_09,
68205 class t_ARGS_10,
68206 class t_ARGS_11,
68207 class t_ARGS_12,
68208 class t_ARGS_13,
68209 class t_ARGS_14,
68210 class t_ARGS_15,
68211 class t_ARGS_16,
68212 class = typename bsl::enable_if_t<
68213 (t_INDEX < 1 + 16u) &&
68214 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
68215 t_ARGS_01,
68216 t_ARGS_02,
68217 t_ARGS_03,
68218 t_ARGS_04,
68219 t_ARGS_05,
68220 t_ARGS_06,
68221 t_ARGS_07,
68222 t_ARGS_08,
68223 t_ARGS_09,
68224 t_ARGS_10,
68225 t_ARGS_11,
68226 t_ARGS_12,
68227 t_ARGS_13,
68228 t_ARGS_14,
68229 t_ARGS_15,
68230 t_ARGS_16>::value> >
68231 explicit variant(bsl::allocator_arg_t,
68232 allocator_type allocator,
68234 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
68235 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
68236 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
68237 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
68238 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
68239 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
68240 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
68241 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
68242 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
68243 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
68244 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
68245 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
68246 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
68247 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
68248 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
68249 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
68250 : Variant_Base(bsl::allocator_arg_t{}
68251,
68252 allocator,
68253 bsl::in_place_index_t<t_INDEX>(),
68254 std::forward<t_ARGS_01>(args_01),
68255 std::forward<t_ARGS_02>(args_02),
68256 std::forward<t_ARGS_03>(args_03),
68257 std::forward<t_ARGS_04>(args_04),
68258 std::forward<t_ARGS_05>(args_05),
68259 std::forward<t_ARGS_06>(args_06),
68260 std::forward<t_ARGS_07>(args_07),
68261 std::forward<t_ARGS_08>(args_08),
68262 std::forward<t_ARGS_09>(args_09),
68263 std::forward<t_ARGS_10>(args_10),
68264 std::forward<t_ARGS_11>(args_11),
68265 std::forward<t_ARGS_12>(args_12),
68266 std::forward<t_ARGS_13>(args_13),
68267 std::forward<t_ARGS_14>(args_14),
68268 std::forward<t_ARGS_15>(args_15),
68269 std::forward<t_ARGS_16>(args_16))
68270 {
68271 }
68272
68273 template <size_t t_INDEX,
68274 class INIT_LIST_TYPE,
68275 class t_ARGS_01,
68276 class t_ARGS_02,
68277 class t_ARGS_03,
68278 class t_ARGS_04,
68279 class t_ARGS_05,
68280 class t_ARGS_06,
68281 class t_ARGS_07,
68282 class t_ARGS_08,
68283 class t_ARGS_09,
68284 class t_ARGS_10,
68285 class t_ARGS_11,
68286 class t_ARGS_12,
68287 class t_ARGS_13,
68288 class t_ARGS_14,
68289 class t_ARGS_15,
68290 class t_ARGS_16,
68291 class = typename bsl::enable_if_t<
68292 (t_INDEX < 1 + 16u) &&
68293 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
68294 std::initializer_list<INIT_LIST_TYPE>&,
68295 t_ARGS_01,
68296 t_ARGS_02,
68297 t_ARGS_03,
68298 t_ARGS_04,
68299 t_ARGS_05,
68300 t_ARGS_06,
68301 t_ARGS_07,
68302 t_ARGS_08,
68303 t_ARGS_09,
68304 t_ARGS_10,
68305 t_ARGS_11,
68306 t_ARGS_12,
68307 t_ARGS_13,
68308 t_ARGS_14,
68309 t_ARGS_15,
68310 t_ARGS_16>::value> >
68311 explicit variant(bsl::allocator_arg_t,
68312 allocator_type allocator,
68314 std::initializer_list<INIT_LIST_TYPE> il,
68315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
68316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
68317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
68318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
68319 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
68320 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
68321 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
68322 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
68323 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
68324 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
68325 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
68326 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
68327 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
68328 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
68329 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
68330 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
68331 : Variant_Base(bsl::allocator_arg_t{}
68332,
68333 allocator,
68334 bsl::in_place_index_t<t_INDEX>(),
68335 il,
68336 std::forward<t_ARGS_01>(args_01),
68337 std::forward<t_ARGS_02>(args_02),
68338 std::forward<t_ARGS_03>(args_03),
68339 std::forward<t_ARGS_04>(args_04),
68340 std::forward<t_ARGS_05>(args_05),
68341 std::forward<t_ARGS_06>(args_06),
68342 std::forward<t_ARGS_07>(args_07),
68343 std::forward<t_ARGS_08>(args_08),
68344 std::forward<t_ARGS_09>(args_09),
68345 std::forward<t_ARGS_10>(args_10),
68346 std::forward<t_ARGS_11>(args_11),
68347 std::forward<t_ARGS_12>(args_12),
68348 std::forward<t_ARGS_13>(args_13),
68349 std::forward<t_ARGS_14>(args_14),
68350 std::forward<t_ARGS_15>(args_15),
68351 std::forward<t_ARGS_16>(args_16))
68352 {
68353 }
68354
68355#else
68356
68357 variant();
68358
68359 variant(const variant& original);
68360
68361 variant(BloombergLP::bslmf::MovableRef<variant> original);
68362
68363 template <class t_TYPE>
68364 variant(const t_TYPE& value,
68366
68367 template <class t_TYPE>
68368 explicit variant(bsl::in_place_type_t<t_TYPE>,
68370
68371 template <class t_TYPE, class t_ARG_01>
68372 explicit variant(bsl::in_place_type_t<t_TYPE>,
68373 const t_ARG_01& arg_01,
68375
68376 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
68377 explicit variant(bsl::in_place_type_t<t_TYPE>,
68378 const t_ARG_01& arg_01,
68379 const t_ARG_02& arg_02,
68381
68382 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
68383 explicit variant(bsl::in_place_type_t<t_TYPE>,
68384 const t_ARG_01& arg_01,
68385 const t_ARG_02& arg_02,
68386 const t_ARG_03& arg_03,
68388
68389 template <class t_TYPE,
68390 class t_ARG_01,
68391 class t_ARG_02,
68392 class t_ARG_03,
68393 class t_ARG_04>
68394 explicit variant(bsl::in_place_type_t<t_TYPE>,
68395 const t_ARG_01& arg_01,
68396 const t_ARG_02& arg_02,
68397 const t_ARG_03& arg_03,
68398 const t_ARG_04& arg_04,
68400
68401 template <class t_TYPE,
68402 class t_ARG_01,
68403 class t_ARG_02,
68404 class t_ARG_03,
68405 class t_ARG_04,
68406 class t_ARG_05>
68407 explicit variant(bsl::in_place_type_t<t_TYPE>,
68408 const t_ARG_01& arg_01,
68409 const t_ARG_02& arg_02,
68410 const t_ARG_03& arg_03,
68411 const t_ARG_04& arg_04,
68412 const t_ARG_05& arg_05,
68414
68415 template <class t_TYPE,
68416 class t_ARG_01,
68417 class t_ARG_02,
68418 class t_ARG_03,
68419 class t_ARG_04,
68420 class t_ARG_05,
68421 class t_ARG_06>
68422 explicit variant(bsl::in_place_type_t<t_TYPE>,
68423 const t_ARG_01& arg_01,
68424 const t_ARG_02& arg_02,
68425 const t_ARG_03& arg_03,
68426 const t_ARG_04& arg_04,
68427 const t_ARG_05& arg_05,
68428 const t_ARG_06& arg_06,
68430
68431 template <class t_TYPE,
68432 class t_ARG_01,
68433 class t_ARG_02,
68434 class t_ARG_03,
68435 class t_ARG_04,
68436 class t_ARG_05,
68437 class t_ARG_06,
68438 class t_ARG_07>
68439 explicit variant(bsl::in_place_type_t<t_TYPE>,
68440 const t_ARG_01& arg_01,
68441 const t_ARG_02& arg_02,
68442 const t_ARG_03& arg_03,
68443 const t_ARG_04& arg_04,
68444 const t_ARG_05& arg_05,
68445 const t_ARG_06& arg_06,
68446 const t_ARG_07& arg_07,
68448
68449 template <class t_TYPE,
68450 class t_ARG_01,
68451 class t_ARG_02,
68452 class t_ARG_03,
68453 class t_ARG_04,
68454 class t_ARG_05,
68455 class t_ARG_06,
68456 class t_ARG_07,
68457 class t_ARG_08>
68458 explicit variant(bsl::in_place_type_t<t_TYPE>,
68459 const t_ARG_01& arg_01,
68460 const t_ARG_02& arg_02,
68461 const t_ARG_03& arg_03,
68462 const t_ARG_04& arg_04,
68463 const t_ARG_05& arg_05,
68464 const t_ARG_06& arg_06,
68465 const t_ARG_07& arg_07,
68466 const t_ARG_08& arg_08,
68468
68469 template <class t_TYPE,
68470 class t_ARG_01,
68471 class t_ARG_02,
68472 class t_ARG_03,
68473 class t_ARG_04,
68474 class t_ARG_05,
68475 class t_ARG_06,
68476 class t_ARG_07,
68477 class t_ARG_08,
68478 class t_ARG_09>
68479 explicit variant(bsl::in_place_type_t<t_TYPE>,
68480 const t_ARG_01& arg_01,
68481 const t_ARG_02& arg_02,
68482 const t_ARG_03& arg_03,
68483 const t_ARG_04& arg_04,
68484 const t_ARG_05& arg_05,
68485 const t_ARG_06& arg_06,
68486 const t_ARG_07& arg_07,
68487 const t_ARG_08& arg_08,
68488 const t_ARG_09& arg_09,
68490
68491 template <class t_TYPE,
68492 class t_ARG_01,
68493 class t_ARG_02,
68494 class t_ARG_03,
68495 class t_ARG_04,
68496 class t_ARG_05,
68497 class t_ARG_06,
68498 class t_ARG_07,
68499 class t_ARG_08,
68500 class t_ARG_09,
68501 class t_ARG_10>
68502 explicit variant(bsl::in_place_type_t<t_TYPE>,
68503 const t_ARG_01& arg_01,
68504 const t_ARG_02& arg_02,
68505 const t_ARG_03& arg_03,
68506 const t_ARG_04& arg_04,
68507 const t_ARG_05& arg_05,
68508 const t_ARG_06& arg_06,
68509 const t_ARG_07& arg_07,
68510 const t_ARG_08& arg_08,
68511 const t_ARG_09& arg_09,
68512 const t_ARG_10& arg_10,
68514
68515 template <size_t t_INDEX>
68516 explicit variant(bsl::in_place_index_t<t_INDEX>);
68517
68518 template <size_t t_INDEX, class t_ARG_01>
68519 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
68520
68521 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
68522 explicit variant(bsl::in_place_index_t<t_INDEX>,
68523 const t_ARG_01& arg_01,
68524 const t_ARG_02& arg_02);
68525
68526 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
68527 explicit variant(bsl::in_place_index_t<t_INDEX>,
68528 const t_ARG_01& arg_01,
68529 const t_ARG_02& arg_02,
68530 const t_ARG_03& arg_03);
68531
68532 template <size_t t_INDEX,
68533 class t_ARG_01,
68534 class t_ARG_02,
68535 class t_ARG_03,
68536 class t_ARG_04>
68537 explicit variant(bsl::in_place_index_t<t_INDEX>,
68538 const t_ARG_01& arg_01,
68539 const t_ARG_02& arg_02,
68540 const t_ARG_03& arg_03,
68541 const t_ARG_04& arg_04);
68542
68543 template <size_t t_INDEX,
68544 class t_ARG_01,
68545 class t_ARG_02,
68546 class t_ARG_03,
68547 class t_ARG_04,
68548 class t_ARG_05>
68549 explicit variant(bsl::in_place_index_t<t_INDEX>,
68550 const t_ARG_01& arg_01,
68551 const t_ARG_02& arg_02,
68552 const t_ARG_03& arg_03,
68553 const t_ARG_04& arg_04,
68554 const t_ARG_05& arg_05);
68555
68556 template <size_t t_INDEX,
68557 class t_ARG_01,
68558 class t_ARG_02,
68559 class t_ARG_03,
68560 class t_ARG_04,
68561 class t_ARG_05,
68562 class t_ARG_06>
68563 explicit variant(bsl::in_place_index_t<t_INDEX>,
68564 const t_ARG_01& arg_01,
68565 const t_ARG_02& arg_02,
68566 const t_ARG_03& arg_03,
68567 const t_ARG_04& arg_04,
68568 const t_ARG_05& arg_05,
68569 const t_ARG_06& arg_06);
68570
68571 template <size_t t_INDEX,
68572 class t_ARG_01,
68573 class t_ARG_02,
68574 class t_ARG_03,
68575 class t_ARG_04,
68576 class t_ARG_05,
68577 class t_ARG_06,
68578 class t_ARG_07>
68579 explicit variant(bsl::in_place_index_t<t_INDEX>,
68580 const t_ARG_01& arg_01,
68581 const t_ARG_02& arg_02,
68582 const t_ARG_03& arg_03,
68583 const t_ARG_04& arg_04,
68584 const t_ARG_05& arg_05,
68585 const t_ARG_06& arg_06,
68586 const t_ARG_07& arg_07);
68587
68588 template <size_t t_INDEX,
68589 class t_ARG_01,
68590 class t_ARG_02,
68591 class t_ARG_03,
68592 class t_ARG_04,
68593 class t_ARG_05,
68594 class t_ARG_06,
68595 class t_ARG_07,
68596 class t_ARG_08>
68597 explicit variant(bsl::in_place_index_t<t_INDEX>,
68598 const t_ARG_01& arg_01,
68599 const t_ARG_02& arg_02,
68600 const t_ARG_03& arg_03,
68601 const t_ARG_04& arg_04,
68602 const t_ARG_05& arg_05,
68603 const t_ARG_06& arg_06,
68604 const t_ARG_07& arg_07,
68605 const t_ARG_08& arg_08);
68606
68607 template <size_t t_INDEX,
68608 class t_ARG_01,
68609 class t_ARG_02,
68610 class t_ARG_03,
68611 class t_ARG_04,
68612 class t_ARG_05,
68613 class t_ARG_06,
68614 class t_ARG_07,
68615 class t_ARG_08,
68616 class t_ARG_09>
68617 explicit variant(bsl::in_place_index_t<t_INDEX>,
68618 const t_ARG_01& arg_01,
68619 const t_ARG_02& arg_02,
68620 const t_ARG_03& arg_03,
68621 const t_ARG_04& arg_04,
68622 const t_ARG_05& arg_05,
68623 const t_ARG_06& arg_06,
68624 const t_ARG_07& arg_07,
68625 const t_ARG_08& arg_08,
68626 const t_ARG_09& arg_09);
68627
68628 template <size_t t_INDEX,
68629 class t_ARG_01,
68630 class t_ARG_02,
68631 class t_ARG_03,
68632 class t_ARG_04,
68633 class t_ARG_05,
68634 class t_ARG_06,
68635 class t_ARG_07,
68636 class t_ARG_08,
68637 class t_ARG_09,
68638 class t_ARG_10>
68639 explicit variant(bsl::in_place_index_t<t_INDEX>,
68640 const t_ARG_01& arg_01,
68641 const t_ARG_02& arg_02,
68642 const t_ARG_03& arg_03,
68643 const t_ARG_04& arg_04,
68644 const t_ARG_05& arg_05,
68645 const t_ARG_06& arg_06,
68646 const t_ARG_07& arg_07,
68647 const t_ARG_08& arg_08,
68648 const t_ARG_09& arg_09,
68649 const t_ARG_10& arg_10);
68650
68651 variant(bsl::allocator_arg_t, allocator_type allocator);
68652
68653 variant(bsl::allocator_arg_t,
68654 allocator_type allocator,
68655 const variant& original);
68656 variant(bsl::allocator_arg_t,
68657 allocator_type allocator,
68658 BloombergLP::bslmf::MovableRef<variant> original);
68659
68660 template <class t_TYPE>
68661 variant(
68662 bsl::allocator_arg_t,
68663 allocator_type allocator,
68664 const t_TYPE& value,
68666
68667 template <class t_TYPE>
68668 explicit variant(
68669 bsl::allocator_arg_t,
68670 allocator_type allocator,
68673
68674 template <class t_TYPE, class t_ARG_01>
68675 explicit variant(
68676 bsl::allocator_arg_t,
68677 allocator_type allocator,
68679 const t_ARG_01& arg_01,
68681
68682 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
68683 explicit variant(
68684 bsl::allocator_arg_t,
68685 allocator_type allocator,
68687 const t_ARG_01& arg_01,
68688 const t_ARG_02& arg_02,
68690
68691 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
68692 explicit variant(
68693 bsl::allocator_arg_t,
68694 allocator_type allocator,
68696 const t_ARG_01& arg_01,
68697 const t_ARG_02& arg_02,
68698 const t_ARG_03& arg_03,
68700
68701 template <class t_TYPE,
68702 class t_ARG_01,
68703 class t_ARG_02,
68704 class t_ARG_03,
68705 class t_ARG_04>
68706 explicit variant(bsl::allocator_arg_t,
68707 allocator_type allocator,
68709 const t_ARG_01& arg_01,
68710 const t_ARG_02& arg_02,
68711 const t_ARG_03& arg_03,
68712 const t_ARG_04& arg_04,
68714
68715 template <class t_TYPE,
68716 class t_ARG_01,
68717 class t_ARG_02,
68718 class t_ARG_03,
68719 class t_ARG_04,
68720 class t_ARG_05>
68721 explicit variant(bsl::allocator_arg_t,
68722 allocator_type allocator,
68724 const t_ARG_01& arg_01,
68725 const t_ARG_02& arg_02,
68726 const t_ARG_03& arg_03,
68727 const t_ARG_04& arg_04,
68728 const t_ARG_05& arg_05,
68730
68731 template <class t_TYPE,
68732 class t_ARG_01,
68733 class t_ARG_02,
68734 class t_ARG_03,
68735 class t_ARG_04,
68736 class t_ARG_05,
68737 class t_ARG_06>
68738 explicit variant(bsl::allocator_arg_t,
68739 allocator_type allocator,
68741 const t_ARG_01& arg_01,
68742 const t_ARG_02& arg_02,
68743 const t_ARG_03& arg_03,
68744 const t_ARG_04& arg_04,
68745 const t_ARG_05& arg_05,
68746 const t_ARG_06& arg_06,
68748
68749 template <class t_TYPE,
68750 class t_ARG_01,
68751 class t_ARG_02,
68752 class t_ARG_03,
68753 class t_ARG_04,
68754 class t_ARG_05,
68755 class t_ARG_06,
68756 class t_ARG_07>
68757 explicit variant(bsl::allocator_arg_t,
68758 allocator_type allocator,
68760 const t_ARG_01& arg_01,
68761 const t_ARG_02& arg_02,
68762 const t_ARG_03& arg_03,
68763 const t_ARG_04& arg_04,
68764 const t_ARG_05& arg_05,
68765 const t_ARG_06& arg_06,
68766 const t_ARG_07& arg_07,
68768
68769 template <class t_TYPE,
68770 class t_ARG_01,
68771 class t_ARG_02,
68772 class t_ARG_03,
68773 class t_ARG_04,
68774 class t_ARG_05,
68775 class t_ARG_06,
68776 class t_ARG_07,
68777 class t_ARG_08>
68778 explicit variant(bsl::allocator_arg_t,
68779 allocator_type allocator,
68781 const t_ARG_01& arg_01,
68782 const t_ARG_02& arg_02,
68783 const t_ARG_03& arg_03,
68784 const t_ARG_04& arg_04,
68785 const t_ARG_05& arg_05,
68786 const t_ARG_06& arg_06,
68787 const t_ARG_07& arg_07,
68788 const t_ARG_08& arg_08,
68790
68791 template <class t_TYPE,
68792 class t_ARG_01,
68793 class t_ARG_02,
68794 class t_ARG_03,
68795 class t_ARG_04,
68796 class t_ARG_05,
68797 class t_ARG_06,
68798 class t_ARG_07,
68799 class t_ARG_08,
68800 class t_ARG_09>
68801 explicit variant(bsl::allocator_arg_t,
68802 allocator_type allocator,
68804 const t_ARG_01& arg_01,
68805 const t_ARG_02& arg_02,
68806 const t_ARG_03& arg_03,
68807 const t_ARG_04& arg_04,
68808 const t_ARG_05& arg_05,
68809 const t_ARG_06& arg_06,
68810 const t_ARG_07& arg_07,
68811 const t_ARG_08& arg_08,
68812 const t_ARG_09& arg_09,
68814
68815 template <class t_TYPE,
68816 class t_ARG_01,
68817 class t_ARG_02,
68818 class t_ARG_03,
68819 class t_ARG_04,
68820 class t_ARG_05,
68821 class t_ARG_06,
68822 class t_ARG_07,
68823 class t_ARG_08,
68824 class t_ARG_09,
68825 class t_ARG_10>
68826 explicit variant(bsl::allocator_arg_t,
68827 allocator_type allocator,
68829 const t_ARG_01& arg_01,
68830 const t_ARG_02& arg_02,
68831 const t_ARG_03& arg_03,
68832 const t_ARG_04& arg_04,
68833 const t_ARG_05& arg_05,
68834 const t_ARG_06& arg_06,
68835 const t_ARG_07& arg_07,
68836 const t_ARG_08& arg_08,
68837 const t_ARG_09& arg_09,
68838 const t_ARG_10& arg_10,
68840
68841 template <size_t t_INDEX>
68842 explicit variant(bsl::allocator_arg_t,
68843 allocator_type allocator,
68845
68846 template <size_t t_INDEX, class t_ARG_01>
68847 explicit variant(bsl::allocator_arg_t,
68848 allocator_type allocator,
68850 const t_ARG_01& arg_01);
68851
68852 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
68853 explicit variant(bsl::allocator_arg_t,
68854 allocator_type allocator,
68856 const t_ARG_01& arg_01,
68857 const t_ARG_02& arg_02);
68858
68859 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
68860 explicit variant(bsl::allocator_arg_t,
68861 allocator_type allocator,
68863 const t_ARG_01& arg_01,
68864 const t_ARG_02& arg_02,
68865 const t_ARG_03& arg_03);
68866
68867 template <size_t t_INDEX,
68868 class t_ARG_01,
68869 class t_ARG_02,
68870 class t_ARG_03,
68871 class t_ARG_04>
68872 explicit variant(bsl::allocator_arg_t,
68873 allocator_type allocator,
68875 const t_ARG_01& arg_01,
68876 const t_ARG_02& arg_02,
68877 const t_ARG_03& arg_03,
68878 const t_ARG_04& arg_04);
68879
68880 template <size_t t_INDEX,
68881 class t_ARG_01,
68882 class t_ARG_02,
68883 class t_ARG_03,
68884 class t_ARG_04,
68885 class t_ARG_05>
68886 explicit variant(bsl::allocator_arg_t,
68887 allocator_type allocator,
68889 const t_ARG_01& arg_01,
68890 const t_ARG_02& arg_02,
68891 const t_ARG_03& arg_03,
68892 const t_ARG_04& arg_04,
68893 const t_ARG_05& arg_05);
68894
68895 template <size_t t_INDEX,
68896 class t_ARG_01,
68897 class t_ARG_02,
68898 class t_ARG_03,
68899 class t_ARG_04,
68900 class t_ARG_05,
68901 class t_ARG_06>
68902 explicit variant(bsl::allocator_arg_t,
68903 allocator_type allocator,
68905 const t_ARG_01& arg_01,
68906 const t_ARG_02& arg_02,
68907 const t_ARG_03& arg_03,
68908 const t_ARG_04& arg_04,
68909 const t_ARG_05& arg_05,
68910 const t_ARG_06& arg_06);
68911
68912 template <size_t t_INDEX,
68913 class t_ARG_01,
68914 class t_ARG_02,
68915 class t_ARG_03,
68916 class t_ARG_04,
68917 class t_ARG_05,
68918 class t_ARG_06,
68919 class t_ARG_07>
68920 explicit variant(bsl::allocator_arg_t,
68921 allocator_type allocator,
68923 const t_ARG_01& arg_01,
68924 const t_ARG_02& arg_02,
68925 const t_ARG_03& arg_03,
68926 const t_ARG_04& arg_04,
68927 const t_ARG_05& arg_05,
68928 const t_ARG_06& arg_06,
68929 const t_ARG_07& arg_07);
68930
68931 template <size_t t_INDEX,
68932 class t_ARG_01,
68933 class t_ARG_02,
68934 class t_ARG_03,
68935 class t_ARG_04,
68936 class t_ARG_05,
68937 class t_ARG_06,
68938 class t_ARG_07,
68939 class t_ARG_08>
68940 explicit variant(bsl::allocator_arg_t,
68941 allocator_type allocator,
68943 const t_ARG_01& arg_01,
68944 const t_ARG_02& arg_02,
68945 const t_ARG_03& arg_03,
68946 const t_ARG_04& arg_04,
68947 const t_ARG_05& arg_05,
68948 const t_ARG_06& arg_06,
68949 const t_ARG_07& arg_07,
68950 const t_ARG_08& arg_08);
68951
68952 template <size_t t_INDEX,
68953 class t_ARG_01,
68954 class t_ARG_02,
68955 class t_ARG_03,
68956 class t_ARG_04,
68957 class t_ARG_05,
68958 class t_ARG_06,
68959 class t_ARG_07,
68960 class t_ARG_08,
68961 class t_ARG_09>
68962 explicit variant(bsl::allocator_arg_t,
68963 allocator_type allocator,
68965 const t_ARG_01& arg_01,
68966 const t_ARG_02& arg_02,
68967 const t_ARG_03& arg_03,
68968 const t_ARG_04& arg_04,
68969 const t_ARG_05& arg_05,
68970 const t_ARG_06& arg_06,
68971 const t_ARG_07& arg_07,
68972 const t_ARG_08& arg_08,
68973 const t_ARG_09& arg_09);
68974
68975 template <size_t t_INDEX,
68976 class t_ARG_01,
68977 class t_ARG_02,
68978 class t_ARG_03,
68979 class t_ARG_04,
68980 class t_ARG_05,
68981 class t_ARG_06,
68982 class t_ARG_07,
68983 class t_ARG_08,
68984 class t_ARG_09,
68985 class t_ARG_10>
68986 explicit variant(bsl::allocator_arg_t,
68987 allocator_type allocator,
68989 const t_ARG_01& arg_01,
68990 const t_ARG_02& arg_02,
68991 const t_ARG_03& arg_03,
68992 const t_ARG_04& arg_04,
68993 const t_ARG_05& arg_05,
68994 const t_ARG_06& arg_06,
68995 const t_ARG_07& arg_07,
68996 const t_ARG_08& arg_08,
68997 const t_ARG_09& arg_09,
68998 const t_ARG_10& arg_10);
68999
69000#endif
69001
69002
69003#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
69004 template <class t_TYPE,
69005 class t_ARGS_01,
69006 class t_ARGS_02,
69007 class t_ARGS_03,
69008 class t_ARGS_04,
69009 class t_ARGS_05,
69010 class t_ARGS_06,
69011 class t_ARGS_07,
69012 class t_ARGS_08,
69013 class t_ARGS_09,
69014 class t_ARGS_10,
69015 class t_ARGS_11,
69016 class t_ARGS_12,
69017 class t_ARGS_13,
69018 class t_ARGS_14,
69019 class t_ARGS_15,
69020 class t_ARGS_16,
69021 class = typename bsl::enable_if_t<
69023 std::is_constructible<t_TYPE, t_ARGS_01,
69024 t_ARGS_02,
69025 t_ARGS_03,
69026 t_ARGS_04,
69027 t_ARGS_05,
69028 t_ARGS_06,
69029 t_ARGS_07,
69030 t_ARGS_08,
69031 t_ARGS_09,
69032 t_ARGS_10,
69033 t_ARGS_11,
69034 t_ARGS_12,
69035 t_ARGS_13,
69036 t_ARGS_14,
69037 t_ARGS_15,
69038 t_ARGS_16>::value> >
69039 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
69040 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
69041 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
69042 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
69043 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
69044 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
69045 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
69046 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
69047 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
69048 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
69049 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
69050 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
69051 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
69052 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
69053 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
69054 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
69055 {
69056 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
69057 Variant_Base::template baseEmplace<index>(
69058 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
69059 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
69060 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
69061 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
69062 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
69063 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
69064 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
69065 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
69066 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
69067 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
69068 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
69069 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
69070 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
69071 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
69072 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
69073 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16));
69074
69075 return bsl::get<index>(*this);
69076 }
69077
69078 template <class t_TYPE,
69079 class INIT_LIST_TYPE,
69080 class t_ARGS_01,
69081 class t_ARGS_02,
69082 class t_ARGS_03,
69083 class t_ARGS_04,
69084 class t_ARGS_05,
69085 class t_ARGS_06,
69086 class t_ARGS_07,
69087 class t_ARGS_08,
69088 class t_ARGS_09,
69089 class t_ARGS_10,
69090 class t_ARGS_11,
69091 class t_ARGS_12,
69092 class t_ARGS_13,
69093 class t_ARGS_14,
69094 class t_ARGS_15,
69095 class t_ARGS_16,
69096 class = typename bsl::enable_if_t<
69098 std::is_constructible<t_TYPE,
69099 std::initializer_list<INIT_LIST_TYPE>&,
69100 t_ARGS_01,
69101 t_ARGS_02,
69102 t_ARGS_03,
69103 t_ARGS_04,
69104 t_ARGS_05,
69105 t_ARGS_06,
69106 t_ARGS_07,
69107 t_ARGS_08,
69108 t_ARGS_09,
69109 t_ARGS_10,
69110 t_ARGS_11,
69111 t_ARGS_12,
69112 t_ARGS_13,
69113 t_ARGS_14,
69114 t_ARGS_15,
69115 t_ARGS_16>::value> >
69116 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
69117 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
69118 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
69119 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
69120 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
69121 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
69122 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
69123 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
69124 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
69125 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
69126 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
69127 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
69128 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
69129 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
69130 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
69131 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
69132 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
69133 {
69134 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
69135 Variant_Base::template baseEmplace<index>(
69136 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
69137 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
69138 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
69139 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
69140 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
69141 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
69142 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
69143 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
69144 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
69145 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
69146 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
69147 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
69148 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
69149 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
69150 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
69151 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16));
69152
69153 return bsl::get<index>(*this);
69154 }
69155
69156 template <size_t t_INDEX,
69157 class t_ARGS_01,
69158 class t_ARGS_02,
69159 class t_ARGS_03,
69160 class t_ARGS_04,
69161 class t_ARGS_05,
69162 class t_ARGS_06,
69163 class t_ARGS_07,
69164 class t_ARGS_08,
69165 class t_ARGS_09,
69166 class t_ARGS_10,
69167 class t_ARGS_11,
69168 class t_ARGS_12,
69169 class t_ARGS_13,
69170 class t_ARGS_14,
69171 class t_ARGS_15,
69172 class t_ARGS_16,
69173 class = typename bsl::enable_if_t<
69174 (t_INDEX < 1 + 16u) &&
69175 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
69176 t_ARGS_01,
69177 t_ARGS_02,
69178 t_ARGS_03,
69179 t_ARGS_04,
69180 t_ARGS_05,
69181 t_ARGS_06,
69182 t_ARGS_07,
69183 t_ARGS_08,
69184 t_ARGS_09,
69185 t_ARGS_10,
69186 t_ARGS_11,
69187 t_ARGS_12,
69188 t_ARGS_13,
69189 t_ARGS_14,
69190 t_ARGS_15,
69191 t_ARGS_16>::value> >
69192 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69193 t_TAIL_02,
69194 t_TAIL_03,
69195 t_TAIL_04,
69196 t_TAIL_05,
69197 t_TAIL_06,
69198 t_TAIL_07,
69199 t_TAIL_08,
69200 t_TAIL_09,
69201 t_TAIL_10,
69202 t_TAIL_11,
69203 t_TAIL_12,
69204 t_TAIL_13,
69205 t_TAIL_14,
69206 t_TAIL_15,
69207 t_TAIL_16> >::type&
69208 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
69209 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
69210 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
69211 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
69212 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
69213 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
69214 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
69215 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
69216 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
69217 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
69218 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
69219 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
69220 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
69221 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
69222 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
69223 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
69224 {
69225 Variant_Base::template baseEmplace<t_INDEX>(
69226 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
69227 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
69228 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
69229 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
69230 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
69231 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
69232 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
69233 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
69234 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
69235 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
69236 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
69237 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
69238 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
69239 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
69240 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
69241 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16));
69242
69243 return bsl::get<t_INDEX>(*this);
69244 }
69245
69246 template <size_t t_INDEX,
69247 class INIT_LIST_TYPE,
69248 class t_ARGS_01,
69249 class t_ARGS_02,
69250 class t_ARGS_03,
69251 class t_ARGS_04,
69252 class t_ARGS_05,
69253 class t_ARGS_06,
69254 class t_ARGS_07,
69255 class t_ARGS_08,
69256 class t_ARGS_09,
69257 class t_ARGS_10,
69258 class t_ARGS_11,
69259 class t_ARGS_12,
69260 class t_ARGS_13,
69261 class t_ARGS_14,
69262 class t_ARGS_15,
69263 class t_ARGS_16,
69264 class = typename bsl::enable_if_t<
69265 (t_INDEX < 1 + 16u) &&
69266 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
69267 std::initializer_list<INIT_LIST_TYPE>&,
69268 t_ARGS_01,
69269 t_ARGS_02,
69270 t_ARGS_03,
69271 t_ARGS_04,
69272 t_ARGS_05,
69273 t_ARGS_06,
69274 t_ARGS_07,
69275 t_ARGS_08,
69276 t_ARGS_09,
69277 t_ARGS_10,
69278 t_ARGS_11,
69279 t_ARGS_12,
69280 t_ARGS_13,
69281 t_ARGS_14,
69282 t_ARGS_15,
69283 t_ARGS_16>::value> >
69284 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69285 t_TAIL_02,
69286 t_TAIL_03,
69287 t_TAIL_04,
69288 t_TAIL_05,
69289 t_TAIL_06,
69290 t_TAIL_07,
69291 t_TAIL_08,
69292 t_TAIL_09,
69293 t_TAIL_10,
69294 t_TAIL_11,
69295 t_TAIL_12,
69296 t_TAIL_13,
69297 t_TAIL_14,
69298 t_TAIL_15,
69299 t_TAIL_16> >::type&
69300 emplace(std::initializer_list<INIT_LIST_TYPE> il,
69301 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
69302 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
69303 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
69304 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
69305 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
69306 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
69307 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
69308 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
69309 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
69310 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
69311 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
69312 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
69313 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
69314 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
69315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
69316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16)
69317 {
69318 Variant_Base::template baseEmplace<t_INDEX>(
69319 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
69320 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
69321 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
69322 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
69323 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
69324 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
69325 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
69326 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
69327 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
69328 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
69329 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
69330 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
69331 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
69332 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
69333 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
69334 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16));
69335
69336 return bsl::get<t_INDEX>(*this);
69337 }
69338
69339#else
69340
69341 template <class t_TYPE>
69342 typename bsl::enable_if<
69343 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69344 t_TYPE&>::type
69345 emplace();
69346
69347 template <class t_TYPE, class t_ARG_01>
69348 typename bsl::enable_if<
69349 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69350 t_TYPE&>::type
69351 emplace(const t_ARG_01& arg_01);
69352
69353 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
69354 typename bsl::enable_if<
69355 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69356 t_TYPE&>::type
69357 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
69358
69359 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
69360 typename bsl::enable_if<
69361 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69362 t_TYPE&>::type
69363 emplace(const t_ARG_01& arg_01,
69364 const t_ARG_02& arg_02,
69365 const t_ARG_03& arg_03);
69366
69367 template <class t_TYPE,
69368 class t_ARG_01,
69369 class t_ARG_02,
69370 class t_ARG_03,
69371 class t_ARG_04>
69372 typename bsl::enable_if<
69373 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69374 t_TYPE&>::type
69375 emplace(const t_ARG_01& arg_01,
69376 const t_ARG_02& arg_02,
69377 const t_ARG_03& arg_03,
69378 const t_ARG_04& arg_04);
69379
69380 template <class t_TYPE,
69381 class t_ARG_01,
69382 class t_ARG_02,
69383 class t_ARG_03,
69384 class t_ARG_04,
69385 class t_ARG_05>
69386 typename bsl::enable_if<
69387 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69388 t_TYPE&>::type
69389 emplace(const t_ARG_01& arg_01,
69390 const t_ARG_02& arg_02,
69391 const t_ARG_03& arg_03,
69392 const t_ARG_04& arg_04,
69393 const t_ARG_05& arg_05);
69394
69395 template <class t_TYPE,
69396 class t_ARG_01,
69397 class t_ARG_02,
69398 class t_ARG_03,
69399 class t_ARG_04,
69400 class t_ARG_05,
69401 class t_ARG_06>
69402 typename bsl::enable_if<
69403 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69404 t_TYPE&>::type
69405 emplace(const t_ARG_01& arg_01,
69406 const t_ARG_02& arg_02,
69407 const t_ARG_03& arg_03,
69408 const t_ARG_04& arg_04,
69409 const t_ARG_05& arg_05,
69410 const t_ARG_06& arg_06);
69411
69412 template <class t_TYPE,
69413 class t_ARG_01,
69414 class t_ARG_02,
69415 class t_ARG_03,
69416 class t_ARG_04,
69417 class t_ARG_05,
69418 class t_ARG_06,
69419 class t_ARG_07>
69420 typename bsl::enable_if<
69421 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69422 t_TYPE&>::type
69423 emplace(const t_ARG_01& arg_01,
69424 const t_ARG_02& arg_02,
69425 const t_ARG_03& arg_03,
69426 const t_ARG_04& arg_04,
69427 const t_ARG_05& arg_05,
69428 const t_ARG_06& arg_06,
69429 const t_ARG_07& arg_07);
69430
69431 template <class t_TYPE,
69432 class t_ARG_01,
69433 class t_ARG_02,
69434 class t_ARG_03,
69435 class t_ARG_04,
69436 class t_ARG_05,
69437 class t_ARG_06,
69438 class t_ARG_07,
69439 class t_ARG_08>
69440 typename bsl::enable_if<
69441 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69442 t_TYPE&>::type
69443 emplace(const t_ARG_01& arg_01,
69444 const t_ARG_02& arg_02,
69445 const t_ARG_03& arg_03,
69446 const t_ARG_04& arg_04,
69447 const t_ARG_05& arg_05,
69448 const t_ARG_06& arg_06,
69449 const t_ARG_07& arg_07,
69450 const t_ARG_08& arg_08);
69451
69452 template <class t_TYPE,
69453 class t_ARG_01,
69454 class t_ARG_02,
69455 class t_ARG_03,
69456 class t_ARG_04,
69457 class t_ARG_05,
69458 class t_ARG_06,
69459 class t_ARG_07,
69460 class t_ARG_08,
69461 class t_ARG_09>
69462 typename bsl::enable_if<
69463 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69464 t_TYPE&>::type
69465 emplace(const t_ARG_01& arg_01,
69466 const t_ARG_02& arg_02,
69467 const t_ARG_03& arg_03,
69468 const t_ARG_04& arg_04,
69469 const t_ARG_05& arg_05,
69470 const t_ARG_06& arg_06,
69471 const t_ARG_07& arg_07,
69472 const t_ARG_08& arg_08,
69473 const t_ARG_09& arg_09);
69474
69475 template <class t_TYPE,
69476 class t_ARG_01,
69477 class t_ARG_02,
69478 class t_ARG_03,
69479 class t_ARG_04,
69480 class t_ARG_05,
69481 class t_ARG_06,
69482 class t_ARG_07,
69483 class t_ARG_08,
69484 class t_ARG_09,
69485 class t_ARG_10>
69486 typename bsl::enable_if<
69487 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
69488 t_TYPE&>::type
69489 emplace(const t_ARG_01& arg_01,
69490 const t_ARG_02& arg_02,
69491 const t_ARG_03& arg_03,
69492 const t_ARG_04& arg_04,
69493 const t_ARG_05& arg_05,
69494 const t_ARG_06& arg_06,
69495 const t_ARG_07& arg_07,
69496 const t_ARG_08& arg_08,
69497 const t_ARG_09& arg_09,
69498 const t_ARG_10& arg_10);
69499
69500 template <size_t t_INDEX>
69501 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69502 t_TAIL_02,
69503 t_TAIL_03,
69504 t_TAIL_04,
69505 t_TAIL_05,
69506 t_TAIL_06,
69507 t_TAIL_07,
69508 t_TAIL_08,
69509 t_TAIL_09,
69510 t_TAIL_10,
69511 t_TAIL_11,
69512 t_TAIL_12,
69513 t_TAIL_13,
69514 t_TAIL_14,
69515 t_TAIL_15,
69516 t_TAIL_16> >::type&
69517 emplace();
69518
69519 template <size_t t_INDEX, class t_ARG_01>
69520 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69521 t_TAIL_02,
69522 t_TAIL_03,
69523 t_TAIL_04,
69524 t_TAIL_05,
69525 t_TAIL_06,
69526 t_TAIL_07,
69527 t_TAIL_08,
69528 t_TAIL_09,
69529 t_TAIL_10,
69530 t_TAIL_11,
69531 t_TAIL_12,
69532 t_TAIL_13,
69533 t_TAIL_14,
69534 t_TAIL_15,
69535 t_TAIL_16> >::type&
69536 emplace(const t_ARG_01& arg_01);
69537
69538 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
69539 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69540 t_TAIL_02,
69541 t_TAIL_03,
69542 t_TAIL_04,
69543 t_TAIL_05,
69544 t_TAIL_06,
69545 t_TAIL_07,
69546 t_TAIL_08,
69547 t_TAIL_09,
69548 t_TAIL_10,
69549 t_TAIL_11,
69550 t_TAIL_12,
69551 t_TAIL_13,
69552 t_TAIL_14,
69553 t_TAIL_15,
69554 t_TAIL_16> >::type&
69555 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
69556
69557 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
69558 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69559 t_TAIL_02,
69560 t_TAIL_03,
69561 t_TAIL_04,
69562 t_TAIL_05,
69563 t_TAIL_06,
69564 t_TAIL_07,
69565 t_TAIL_08,
69566 t_TAIL_09,
69567 t_TAIL_10,
69568 t_TAIL_11,
69569 t_TAIL_12,
69570 t_TAIL_13,
69571 t_TAIL_14,
69572 t_TAIL_15,
69573 t_TAIL_16> >::type&
69574 emplace(const t_ARG_01& arg_01,
69575 const t_ARG_02& arg_02,
69576 const t_ARG_03& arg_03);
69577
69578 template <size_t t_INDEX,
69579 class t_ARG_01,
69580 class t_ARG_02,
69581 class t_ARG_03,
69582 class t_ARG_04>
69583 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69584 t_TAIL_02,
69585 t_TAIL_03,
69586 t_TAIL_04,
69587 t_TAIL_05,
69588 t_TAIL_06,
69589 t_TAIL_07,
69590 t_TAIL_08,
69591 t_TAIL_09,
69592 t_TAIL_10,
69593 t_TAIL_11,
69594 t_TAIL_12,
69595 t_TAIL_13,
69596 t_TAIL_14,
69597 t_TAIL_15,
69598 t_TAIL_16> >::type&
69599 emplace(const t_ARG_01& arg_01,
69600 const t_ARG_02& arg_02,
69601 const t_ARG_03& arg_03,
69602 const t_ARG_04& arg_04);
69603
69604 template <size_t t_INDEX,
69605 class t_ARG_01,
69606 class t_ARG_02,
69607 class t_ARG_03,
69608 class t_ARG_04,
69609 class t_ARG_05>
69610 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69611 t_TAIL_02,
69612 t_TAIL_03,
69613 t_TAIL_04,
69614 t_TAIL_05,
69615 t_TAIL_06,
69616 t_TAIL_07,
69617 t_TAIL_08,
69618 t_TAIL_09,
69619 t_TAIL_10,
69620 t_TAIL_11,
69621 t_TAIL_12,
69622 t_TAIL_13,
69623 t_TAIL_14,
69624 t_TAIL_15,
69625 t_TAIL_16> >::type&
69626 emplace(const t_ARG_01& arg_01,
69627 const t_ARG_02& arg_02,
69628 const t_ARG_03& arg_03,
69629 const t_ARG_04& arg_04,
69630 const t_ARG_05& arg_05);
69631
69632 template <size_t t_INDEX,
69633 class t_ARG_01,
69634 class t_ARG_02,
69635 class t_ARG_03,
69636 class t_ARG_04,
69637 class t_ARG_05,
69638 class t_ARG_06>
69639 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69640 t_TAIL_02,
69641 t_TAIL_03,
69642 t_TAIL_04,
69643 t_TAIL_05,
69644 t_TAIL_06,
69645 t_TAIL_07,
69646 t_TAIL_08,
69647 t_TAIL_09,
69648 t_TAIL_10,
69649 t_TAIL_11,
69650 t_TAIL_12,
69651 t_TAIL_13,
69652 t_TAIL_14,
69653 t_TAIL_15,
69654 t_TAIL_16> >::type&
69655 emplace(const t_ARG_01& arg_01,
69656 const t_ARG_02& arg_02,
69657 const t_ARG_03& arg_03,
69658 const t_ARG_04& arg_04,
69659 const t_ARG_05& arg_05,
69660 const t_ARG_06& arg_06);
69661
69662 template <size_t t_INDEX,
69663 class t_ARG_01,
69664 class t_ARG_02,
69665 class t_ARG_03,
69666 class t_ARG_04,
69667 class t_ARG_05,
69668 class t_ARG_06,
69669 class t_ARG_07>
69670 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69671 t_TAIL_02,
69672 t_TAIL_03,
69673 t_TAIL_04,
69674 t_TAIL_05,
69675 t_TAIL_06,
69676 t_TAIL_07,
69677 t_TAIL_08,
69678 t_TAIL_09,
69679 t_TAIL_10,
69680 t_TAIL_11,
69681 t_TAIL_12,
69682 t_TAIL_13,
69683 t_TAIL_14,
69684 t_TAIL_15,
69685 t_TAIL_16> >::type&
69686 emplace(const t_ARG_01& arg_01,
69687 const t_ARG_02& arg_02,
69688 const t_ARG_03& arg_03,
69689 const t_ARG_04& arg_04,
69690 const t_ARG_05& arg_05,
69691 const t_ARG_06& arg_06,
69692 const t_ARG_07& arg_07);
69693
69694 template <size_t t_INDEX,
69695 class t_ARG_01,
69696 class t_ARG_02,
69697 class t_ARG_03,
69698 class t_ARG_04,
69699 class t_ARG_05,
69700 class t_ARG_06,
69701 class t_ARG_07,
69702 class t_ARG_08>
69703 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69704 t_TAIL_02,
69705 t_TAIL_03,
69706 t_TAIL_04,
69707 t_TAIL_05,
69708 t_TAIL_06,
69709 t_TAIL_07,
69710 t_TAIL_08,
69711 t_TAIL_09,
69712 t_TAIL_10,
69713 t_TAIL_11,
69714 t_TAIL_12,
69715 t_TAIL_13,
69716 t_TAIL_14,
69717 t_TAIL_15,
69718 t_TAIL_16> >::type&
69719 emplace(const t_ARG_01& arg_01,
69720 const t_ARG_02& arg_02,
69721 const t_ARG_03& arg_03,
69722 const t_ARG_04& arg_04,
69723 const t_ARG_05& arg_05,
69724 const t_ARG_06& arg_06,
69725 const t_ARG_07& arg_07,
69726 const t_ARG_08& arg_08);
69727
69728 template <size_t t_INDEX,
69729 class t_ARG_01,
69730 class t_ARG_02,
69731 class t_ARG_03,
69732 class t_ARG_04,
69733 class t_ARG_05,
69734 class t_ARG_06,
69735 class t_ARG_07,
69736 class t_ARG_08,
69737 class t_ARG_09>
69738 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69739 t_TAIL_02,
69740 t_TAIL_03,
69741 t_TAIL_04,
69742 t_TAIL_05,
69743 t_TAIL_06,
69744 t_TAIL_07,
69745 t_TAIL_08,
69746 t_TAIL_09,
69747 t_TAIL_10,
69748 t_TAIL_11,
69749 t_TAIL_12,
69750 t_TAIL_13,
69751 t_TAIL_14,
69752 t_TAIL_15,
69753 t_TAIL_16> >::type&
69754 emplace(const t_ARG_01& arg_01,
69755 const t_ARG_02& arg_02,
69756 const t_ARG_03& arg_03,
69757 const t_ARG_04& arg_04,
69758 const t_ARG_05& arg_05,
69759 const t_ARG_06& arg_06,
69760 const t_ARG_07& arg_07,
69761 const t_ARG_08& arg_08,
69762 const t_ARG_09& arg_09);
69763
69764 template <size_t t_INDEX,
69765 class t_ARG_01,
69766 class t_ARG_02,
69767 class t_ARG_03,
69768 class t_ARG_04,
69769 class t_ARG_05,
69770 class t_ARG_06,
69771 class t_ARG_07,
69772 class t_ARG_08,
69773 class t_ARG_09,
69774 class t_ARG_10>
69775 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
69776 t_TAIL_02,
69777 t_TAIL_03,
69778 t_TAIL_04,
69779 t_TAIL_05,
69780 t_TAIL_06,
69781 t_TAIL_07,
69782 t_TAIL_08,
69783 t_TAIL_09,
69784 t_TAIL_10,
69785 t_TAIL_11,
69786 t_TAIL_12,
69787 t_TAIL_13,
69788 t_TAIL_14,
69789 t_TAIL_15,
69790 t_TAIL_16> >::type&
69791 emplace(const t_ARG_01& arg_01,
69792 const t_ARG_02& arg_02,
69793 const t_ARG_03& arg_03,
69794 const t_ARG_04& arg_04,
69795 const t_ARG_05& arg_05,
69796 const t_ARG_06& arg_06,
69797 const t_ARG_07& arg_07,
69798 const t_ARG_08& arg_08,
69799 const t_ARG_09& arg_09,
69800 const t_ARG_10& arg_10);
69801#endif
69802
69803#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
69804 variant& operator=(const variant& rhs) = default;
69805
69806 variant& operator=(variant&& rhs) = default;
69807
69808 template <class t_TYPE>
69809 typename bsl::enable_if<
69810 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
69811 variant&>::type
69812 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
69813 {
69814 const size_t altIndex =
69815 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
69816
69817 if (index() == altIndex) {
69818 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
69819 value);
69820 }
69821 else {
69822 Variant_Base::template baseEmplace<altIndex>(
69823 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
69824 }
69825
69826 return *this;
69827 }
69828#else
69829 variant& operator=(const variant& rhs);
69830
69831 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
69832
69833 template <class t_TYPE>
69834 typename bsl::enable_if<
69835 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
69836 variant&>::type
69837 operator=(const t_TYPE& value);
69838
69839#endif
69840
69841 void swap(variant& other);
69842
69843#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
69844 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
69845 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
69846 t_TAIL_02,
69847 t_TAIL_03,
69848 t_TAIL_04,
69849 t_TAIL_05,
69850 t_TAIL_06,
69851 t_TAIL_07,
69852 t_TAIL_08,
69853 t_TAIL_09,
69854 t_TAIL_10,
69855 t_TAIL_11,
69856 t_TAIL_12,
69857 t_TAIL_13,
69858 t_TAIL_14,
69859 t_TAIL_15,
69860 t_TAIL_16>::value,
69861 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
69862#endif
69863 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
69864 {
69865 return allocator_type(Variant_Base::AllocBase::mechanism());
69866 }
69867
69868
69869 size_t index() const BSLS_KEYWORD_NOEXCEPT;
69870
69871 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
69872};
69873#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 16
69874
69875#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 17
69876template <class t_HEAD, class t_TAIL_01,
69877 class t_TAIL_02,
69878 class t_TAIL_03,
69879 class t_TAIL_04,
69880 class t_TAIL_05,
69881 class t_TAIL_06,
69882 class t_TAIL_07,
69883 class t_TAIL_08,
69884 class t_TAIL_09,
69885 class t_TAIL_10,
69886 class t_TAIL_11,
69887 class t_TAIL_12,
69888 class t_TAIL_13,
69889 class t_TAIL_14,
69890 class t_TAIL_15,
69891 class t_TAIL_16,
69892 class t_TAIL_17>
69893class variant<t_HEAD, t_TAIL_01,
69894 t_TAIL_02,
69895 t_TAIL_03,
69896 t_TAIL_04,
69897 t_TAIL_05,
69898 t_TAIL_06,
69899 t_TAIL_07,
69900 t_TAIL_08,
69901 t_TAIL_09,
69902 t_TAIL_10,
69903 t_TAIL_11,
69904 t_TAIL_12,
69905 t_TAIL_13,
69906 t_TAIL_14,
69907 t_TAIL_15,
69908 t_TAIL_16,
69909 t_TAIL_17>
69910: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
69911 t_TAIL_02,
69912 t_TAIL_03,
69913 t_TAIL_04,
69914 t_TAIL_05,
69915 t_TAIL_06,
69916 t_TAIL_07,
69917 t_TAIL_08,
69918 t_TAIL_09,
69919 t_TAIL_10,
69920 t_TAIL_11,
69921 t_TAIL_12,
69922 t_TAIL_13,
69923 t_TAIL_14,
69924 t_TAIL_15,
69925 t_TAIL_16,
69926 t_TAIL_17>
69927#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
69928,
69929 private BloombergLP::bslstl::Variant_SMFBase<
69930 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
69931 t_TAIL_01,
69932 t_TAIL_02,
69933 t_TAIL_03,
69934 t_TAIL_04,
69935 t_TAIL_05,
69936 t_TAIL_06,
69937 t_TAIL_07,
69938 t_TAIL_08,
69939 t_TAIL_09,
69940 t_TAIL_10,
69941 t_TAIL_11,
69942 t_TAIL_12,
69943 t_TAIL_13,
69944 t_TAIL_14,
69945 t_TAIL_15,
69946 t_TAIL_16,
69947 t_TAIL_17>::value,
69948 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
69949 t_TAIL_01,
69950 t_TAIL_02,
69951 t_TAIL_03,
69952 t_TAIL_04,
69953 t_TAIL_05,
69954 t_TAIL_06,
69955 t_TAIL_07,
69956 t_TAIL_08,
69957 t_TAIL_09,
69958 t_TAIL_10,
69959 t_TAIL_11,
69960 t_TAIL_12,
69961 t_TAIL_13,
69962 t_TAIL_14,
69963 t_TAIL_15,
69964 t_TAIL_16,
69965 t_TAIL_17>::value,
69966 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
69967 t_TAIL_01,
69968 t_TAIL_02,
69969 t_TAIL_03,
69970 t_TAIL_04,
69971 t_TAIL_05,
69972 t_TAIL_06,
69973 t_TAIL_07,
69974 t_TAIL_08,
69975 t_TAIL_09,
69976 t_TAIL_10,
69977 t_TAIL_11,
69978 t_TAIL_12,
69979 t_TAIL_13,
69980 t_TAIL_14,
69981 t_TAIL_15,
69982 t_TAIL_16,
69983 t_TAIL_17>::value &&
69984 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
69985 t_TAIL_01,
69986 t_TAIL_02,
69987 t_TAIL_03,
69988 t_TAIL_04,
69989 t_TAIL_05,
69990 t_TAIL_06,
69991 t_TAIL_07,
69992 t_TAIL_08,
69993 t_TAIL_09,
69994 t_TAIL_10,
69995 t_TAIL_11,
69996 t_TAIL_12,
69997 t_TAIL_13,
69998 t_TAIL_14,
69999 t_TAIL_15,
70000 t_TAIL_16,
70001 t_TAIL_17>::value,
70002 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
70003 t_TAIL_01,
70004 t_TAIL_02,
70005 t_TAIL_03,
70006 t_TAIL_04,
70007 t_TAIL_05,
70008 t_TAIL_06,
70009 t_TAIL_07,
70010 t_TAIL_08,
70011 t_TAIL_09,
70012 t_TAIL_10,
70013 t_TAIL_11,
70014 t_TAIL_12,
70015 t_TAIL_13,
70016 t_TAIL_14,
70017 t_TAIL_15,
70018 t_TAIL_16,
70019 t_TAIL_17>::value &&
70020 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
70021 t_TAIL_01,
70022 t_TAIL_02,
70023 t_TAIL_03,
70024 t_TAIL_04,
70025 t_TAIL_05,
70026 t_TAIL_06,
70027 t_TAIL_07,
70028 t_TAIL_08,
70029 t_TAIL_09,
70030 t_TAIL_10,
70031 t_TAIL_11,
70032 t_TAIL_12,
70033 t_TAIL_13,
70034 t_TAIL_14,
70035 t_TAIL_15,
70036 t_TAIL_16,
70037 t_TAIL_17>::value>
70038#endif
70039{
70040 private:
70041 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
70042 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
70043 t_TAIL_02,
70044 t_TAIL_03,
70045 t_TAIL_04,
70046 t_TAIL_05,
70047 t_TAIL_06,
70048 t_TAIL_07,
70049 t_TAIL_08,
70050 t_TAIL_09,
70051 t_TAIL_10,
70052 t_TAIL_11,
70053 t_TAIL_12,
70054 t_TAIL_13,
70055 t_TAIL_14,
70056 t_TAIL_15,
70057 t_TAIL_16,
70058 t_TAIL_17> Variant_Base;
70059 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
70060 t_TAIL_02,
70061 t_TAIL_03,
70062 t_TAIL_04,
70063 t_TAIL_05,
70064 t_TAIL_06,
70065 t_TAIL_07,
70066 t_TAIL_08,
70067 t_TAIL_09,
70068 t_TAIL_10,
70069 t_TAIL_11,
70070 t_TAIL_12,
70071 t_TAIL_13,
70072 t_TAIL_14,
70073 t_TAIL_15,
70074 t_TAIL_16,
70075 t_TAIL_17>
70076 Variant_Union;
70077
70078 friend struct BloombergLP::bslstl::Variant_ImpUtil;
70079
70080 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
70081 t_TAIL_02,
70082 t_TAIL_03,
70083 t_TAIL_04,
70084 t_TAIL_05,
70085 t_TAIL_06,
70086 t_TAIL_07,
70087 t_TAIL_08,
70088 t_TAIL_09,
70089 t_TAIL_10,
70090 t_TAIL_11,
70091 t_TAIL_12,
70092 t_TAIL_13,
70093 t_TAIL_14,
70094 t_TAIL_15,
70095 t_TAIL_16,
70096 t_TAIL_17>;
70097
70098 public:
70100 variant,
70101 BloombergLP::bslma::UsesBslmaAllocator,
70102 (BloombergLP::bslstl::
70103 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
70104 t_TAIL_02,
70105 t_TAIL_03,
70106 t_TAIL_04,
70107 t_TAIL_05,
70108 t_TAIL_06,
70109 t_TAIL_07,
70110 t_TAIL_08,
70111 t_TAIL_09,
70112 t_TAIL_10,
70113 t_TAIL_11,
70114 t_TAIL_12,
70115 t_TAIL_13,
70116 t_TAIL_14,
70117 t_TAIL_15,
70118 t_TAIL_16,
70119 t_TAIL_17>::value));
70121 variant,
70122 BloombergLP::bslmf::UsesAllocatorArgT,
70123 (BloombergLP::bslstl::
70124 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
70125 t_TAIL_02,
70126 t_TAIL_03,
70127 t_TAIL_04,
70128 t_TAIL_05,
70129 t_TAIL_06,
70130 t_TAIL_07,
70131 t_TAIL_08,
70132 t_TAIL_09,
70133 t_TAIL_10,
70134 t_TAIL_11,
70135 t_TAIL_12,
70136 t_TAIL_13,
70137 t_TAIL_14,
70138 t_TAIL_15,
70139 t_TAIL_16,
70140 t_TAIL_17>::value));
70142 variant,
70143 BloombergLP::bslmf::IsBitwiseMoveable,
70144 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
70145 t_TAIL_01,
70146 t_TAIL_02,
70147 t_TAIL_03,
70148 t_TAIL_04,
70149 t_TAIL_05,
70150 t_TAIL_06,
70151 t_TAIL_07,
70152 t_TAIL_08,
70153 t_TAIL_09,
70154 t_TAIL_10,
70155 t_TAIL_11,
70156 t_TAIL_12,
70157 t_TAIL_13,
70158 t_TAIL_14,
70159 t_TAIL_15,
70160 t_TAIL_16,
70161 t_TAIL_17>::value));
70162
70163
70164 typedef typename Variant_Base::allocator_type allocator_type;
70165
70166
70167#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
70168 template <class t_FIRST_ALT = t_HEAD,
70169 class = typename bsl::enable_if_t<
70170 std::is_default_constructible<t_FIRST_ALT>::value> >
70171 variant()
70172 : Variant_Base()
70173 {
70174 }
70175
70176 variant(const variant& original) = default;
70177
70178 variant(variant&& original) = default;
70179
70180#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
70181 template <class t_STD_VARIANT>
70182 explicit variant(
70183 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
70185 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
70186 original.index())
70187 {
70188 if (!valueless_by_exception()) {
70189 BloombergLP::bslstl::Variant_ImpUtil::
70190 ConstructFromStdVisitor<variant, decltype(original)>
70191 visitor(*this, original);
70192 BSLSTL_VARIANT_VISITID(void, visitor, *this);
70193 }
70194 }
70195#endif
70196
70197 template <class t_TYPE>
70198 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
70200
70201 template <class t_TYPE,
70202 class t_ARGS_01,
70203 class t_ARGS_02,
70204 class t_ARGS_03,
70205 class t_ARGS_04,
70206 class t_ARGS_05,
70207 class t_ARGS_06,
70208 class t_ARGS_07,
70209 class t_ARGS_08,
70210 class t_ARGS_09,
70211 class t_ARGS_10,
70212 class t_ARGS_11,
70213 class t_ARGS_12,
70214 class t_ARGS_13,
70215 class t_ARGS_14,
70216 class t_ARGS_15,
70217 class t_ARGS_16,
70218 class t_ARGS_17,
70219 class = typename bsl::enable_if_t<
70221 std::is_constructible<t_TYPE, t_ARGS_01,
70222 t_ARGS_02,
70223 t_ARGS_03,
70224 t_ARGS_04,
70225 t_ARGS_05,
70226 t_ARGS_06,
70227 t_ARGS_07,
70228 t_ARGS_08,
70229 t_ARGS_09,
70230 t_ARGS_10,
70231 t_ARGS_11,
70232 t_ARGS_12,
70233 t_ARGS_13,
70234 t_ARGS_14,
70235 t_ARGS_15,
70236 t_ARGS_16,
70237 t_ARGS_17>::value> >
70238 explicit variant(bsl::in_place_type_t<t_TYPE>,
70239 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70240 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70241 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70242 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70243 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70244 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70245 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70246 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70247 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70248 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70249 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70250 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70251 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70252 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70253 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70254 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70255 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70256 : Variant_Base(
70257 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
70258 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
70259 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
70260 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
70261 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
70262 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
70263 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
70264 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
70265 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
70266 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
70267 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
70268 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
70269 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
70270 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
70271 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
70272 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
70273 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
70274 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17))
70275 {
70276 }
70277
70278 template <class t_TYPE,
70279 class INIT_LIST_TYPE,
70280 class t_ARGS_01,
70281 class t_ARGS_02,
70282 class t_ARGS_03,
70283 class t_ARGS_04,
70284 class t_ARGS_05,
70285 class t_ARGS_06,
70286 class t_ARGS_07,
70287 class t_ARGS_08,
70288 class t_ARGS_09,
70289 class t_ARGS_10,
70290 class t_ARGS_11,
70291 class t_ARGS_12,
70292 class t_ARGS_13,
70293 class t_ARGS_14,
70294 class t_ARGS_15,
70295 class t_ARGS_16,
70296 class t_ARGS_17,
70297 class = typename bsl::enable_if_t<
70299 std::is_constructible<t_TYPE,
70300 std::initializer_list<INIT_LIST_TYPE>&,
70301 t_ARGS_01,
70302 t_ARGS_02,
70303 t_ARGS_03,
70304 t_ARGS_04,
70305 t_ARGS_05,
70306 t_ARGS_06,
70307 t_ARGS_07,
70308 t_ARGS_08,
70309 t_ARGS_09,
70310 t_ARGS_10,
70311 t_ARGS_11,
70312 t_ARGS_12,
70313 t_ARGS_13,
70314 t_ARGS_14,
70315 t_ARGS_15,
70316 t_ARGS_16,
70317 t_ARGS_17>::value> >
70318 explicit variant(bsl::in_place_type_t<t_TYPE>,
70319 std::initializer_list<INIT_LIST_TYPE> il,
70320 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70321 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70322 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70323 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70324 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70325 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70326 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70327 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70328 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70329 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70330 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70331 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70332 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70333 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70334 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70335 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70336 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70337 : Variant_Base(
70338 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
70339 il,
70340 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
70341 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
70342 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
70343 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
70344 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
70345 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
70346 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
70347 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
70348 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
70349 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
70350 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
70351 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
70352 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
70353 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
70354 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
70355 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
70356 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17))
70357 {
70358 }
70359
70360 template <size_t t_INDEX,
70361 class t_ARGS_01,
70362 class t_ARGS_02,
70363 class t_ARGS_03,
70364 class t_ARGS_04,
70365 class t_ARGS_05,
70366 class t_ARGS_06,
70367 class t_ARGS_07,
70368 class t_ARGS_08,
70369 class t_ARGS_09,
70370 class t_ARGS_10,
70371 class t_ARGS_11,
70372 class t_ARGS_12,
70373 class t_ARGS_13,
70374 class t_ARGS_14,
70375 class t_ARGS_15,
70376 class t_ARGS_16,
70377 class t_ARGS_17,
70378 class = typename bsl::enable_if_t<
70379 (t_INDEX < 1 + 17u) &&
70380 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
70381 t_ARGS_01,
70382 t_ARGS_02,
70383 t_ARGS_03,
70384 t_ARGS_04,
70385 t_ARGS_05,
70386 t_ARGS_06,
70387 t_ARGS_07,
70388 t_ARGS_08,
70389 t_ARGS_09,
70390 t_ARGS_10,
70391 t_ARGS_11,
70392 t_ARGS_12,
70393 t_ARGS_13,
70394 t_ARGS_14,
70395 t_ARGS_15,
70396 t_ARGS_16,
70397 t_ARGS_17>::value> >
70398 explicit variant(bsl::in_place_index_t<t_INDEX>,
70399 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70400 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70401 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70402 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70403 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70404 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70405 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70406 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70407 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70408 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70409 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70410 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70411 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70412 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70413 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70414 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70415 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70416 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
70417 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
70418 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
70419 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
70420 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
70421 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
70422 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
70423 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
70424 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
70425 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
70426 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
70427 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
70428 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
70429 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
70430 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
70431 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
70432 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
70433 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17))
70434 {
70435 }
70436
70437 template <size_t t_INDEX,
70438 class INIT_LIST_TYPE,
70439 class t_ARGS_01,
70440 class t_ARGS_02,
70441 class t_ARGS_03,
70442 class t_ARGS_04,
70443 class t_ARGS_05,
70444 class t_ARGS_06,
70445 class t_ARGS_07,
70446 class t_ARGS_08,
70447 class t_ARGS_09,
70448 class t_ARGS_10,
70449 class t_ARGS_11,
70450 class t_ARGS_12,
70451 class t_ARGS_13,
70452 class t_ARGS_14,
70453 class t_ARGS_15,
70454 class t_ARGS_16,
70455 class t_ARGS_17,
70456 class = typename bsl::enable_if_t<
70457 (t_INDEX < 1 + 17u) &&
70458 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
70459 std::initializer_list<INIT_LIST_TYPE>&,
70460 t_ARGS_01,
70461 t_ARGS_02,
70462 t_ARGS_03,
70463 t_ARGS_04,
70464 t_ARGS_05,
70465 t_ARGS_06,
70466 t_ARGS_07,
70467 t_ARGS_08,
70468 t_ARGS_09,
70469 t_ARGS_10,
70470 t_ARGS_11,
70471 t_ARGS_12,
70472 t_ARGS_13,
70473 t_ARGS_14,
70474 t_ARGS_15,
70475 t_ARGS_16,
70476 t_ARGS_17>::value> >
70477 explicit variant(bsl::in_place_index_t<t_INDEX>,
70478 std::initializer_list<INIT_LIST_TYPE> il,
70479 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70480 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70481 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70482 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70483 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70484 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70485 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70486 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70487 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70488 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70489 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70490 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70491 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70492 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70493 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70494 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70495 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70496 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
70497 il,
70498 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
70499 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
70500 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
70501 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
70502 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
70503 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
70504 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
70505 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
70506 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
70507 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
70508 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
70509 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
70510 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
70511 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
70512 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
70513 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
70514 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17))
70515 {
70516 }
70517
70518 template <class FIRST = t_HEAD,
70519 class = typename bsl::enable_if_t<
70520 std::is_default_constructible<FIRST>::value> >
70521 variant(bsl::allocator_arg_t, allocator_type allocator)
70522 : Variant_Base(bsl::allocator_arg_t(), allocator)
70523 {
70524 }
70525
70526 template <
70527 class FIRST = t_HEAD,
70528 class = typename bsl::enable_if_t<
70529 BloombergLP::bslstl::
70530 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
70531 t_TAIL_02,
70532 t_TAIL_03,
70533 t_TAIL_04,
70534 t_TAIL_05,
70535 t_TAIL_06,
70536 t_TAIL_07,
70537 t_TAIL_08,
70538 t_TAIL_09,
70539 t_TAIL_10,
70540 t_TAIL_11,
70541 t_TAIL_12,
70542 t_TAIL_13,
70543 t_TAIL_14,
70544 t_TAIL_15,
70545 t_TAIL_16,
70546 t_TAIL_17>::value> >
70547 variant(bsl::allocator_arg_t,
70548 allocator_type allocator,
70549 const variant& original)
70550 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
70551 {
70552 }
70553 template <
70554 class FIRST = t_HEAD,
70555 class = typename bsl::enable_if_t<
70556 BloombergLP::bslstl::
70557 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
70558 t_TAIL_02,
70559 t_TAIL_03,
70560 t_TAIL_04,
70561 t_TAIL_05,
70562 t_TAIL_06,
70563 t_TAIL_07,
70564 t_TAIL_08,
70565 t_TAIL_09,
70566 t_TAIL_10,
70567 t_TAIL_11,
70568 t_TAIL_12,
70569 t_TAIL_13,
70570 t_TAIL_14,
70571 t_TAIL_15,
70572 t_TAIL_16,
70573 t_TAIL_17>::value> >
70574 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
70575 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
70576 {
70577 }
70578
70579#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
70580 template <class t_STD_VARIANT>
70581 explicit variant(
70582 bsl::allocator_arg_t,
70583 allocator_type allocator,
70584 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
70586 : Variant_Base(bsl::allocator_arg_t(),
70587 allocator,
70588 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
70589 original.index())
70590 {
70591 if (!valueless_by_exception()) {
70592 BloombergLP::bslstl::Variant_ImpUtil::
70593 ConstructFromStdVisitor<variant, decltype(original)>
70594 visitor(*this, original);
70595 BSLSTL_VARIANT_VISITID(void, visitor, *this);
70596 }
70597 }
70598#endif
70599
70600 template <class t_TYPE>
70601 variant(
70602 bsl::allocator_arg_t,
70603 allocator_type allocator,
70606
70607 template <class t_TYPE,
70608 class t_ARGS_01,
70609 class t_ARGS_02,
70610 class t_ARGS_03,
70611 class t_ARGS_04,
70612 class t_ARGS_05,
70613 class t_ARGS_06,
70614 class t_ARGS_07,
70615 class t_ARGS_08,
70616 class t_ARGS_09,
70617 class t_ARGS_10,
70618 class t_ARGS_11,
70619 class t_ARGS_12,
70620 class t_ARGS_13,
70621 class t_ARGS_14,
70622 class t_ARGS_15,
70623 class t_ARGS_16,
70624 class t_ARGS_17,
70625 class = typename bsl::enable_if_t<
70627 std::is_constructible<t_TYPE, t_ARGS_01,
70628 t_ARGS_02,
70629 t_ARGS_03,
70630 t_ARGS_04,
70631 t_ARGS_05,
70632 t_ARGS_06,
70633 t_ARGS_07,
70634 t_ARGS_08,
70635 t_ARGS_09,
70636 t_ARGS_10,
70637 t_ARGS_11,
70638 t_ARGS_12,
70639 t_ARGS_13,
70640 t_ARGS_14,
70641 t_ARGS_15,
70642 t_ARGS_16,
70643 t_ARGS_17>::value> >
70644 explicit variant(bsl::allocator_arg_t,
70645 allocator_type allocator,
70647 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70648 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70649 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70650 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70651 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70652 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70653 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70654 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70655 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70656 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70657 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70658 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70659 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70660 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70661 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70662 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70663 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70664 : Variant_Base(
70665 bsl::allocator_arg_t{}
70666,
70667 allocator,
70668 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
70669 std::forward<t_ARGS_01>(args_01),
70670 std::forward<t_ARGS_02>(args_02),
70671 std::forward<t_ARGS_03>(args_03),
70672 std::forward<t_ARGS_04>(args_04),
70673 std::forward<t_ARGS_05>(args_05),
70674 std::forward<t_ARGS_06>(args_06),
70675 std::forward<t_ARGS_07>(args_07),
70676 std::forward<t_ARGS_08>(args_08),
70677 std::forward<t_ARGS_09>(args_09),
70678 std::forward<t_ARGS_10>(args_10),
70679 std::forward<t_ARGS_11>(args_11),
70680 std::forward<t_ARGS_12>(args_12),
70681 std::forward<t_ARGS_13>(args_13),
70682 std::forward<t_ARGS_14>(args_14),
70683 std::forward<t_ARGS_15>(args_15),
70684 std::forward<t_ARGS_16>(args_16),
70685 std::forward<t_ARGS_17>(args_17))
70686 {
70687 }
70688
70689 template <class t_TYPE,
70690 class INIT_LIST_TYPE,
70691 class t_ARGS_01,
70692 class t_ARGS_02,
70693 class t_ARGS_03,
70694 class t_ARGS_04,
70695 class t_ARGS_05,
70696 class t_ARGS_06,
70697 class t_ARGS_07,
70698 class t_ARGS_08,
70699 class t_ARGS_09,
70700 class t_ARGS_10,
70701 class t_ARGS_11,
70702 class t_ARGS_12,
70703 class t_ARGS_13,
70704 class t_ARGS_14,
70705 class t_ARGS_15,
70706 class t_ARGS_16,
70707 class t_ARGS_17,
70708 class = typename bsl::enable_if_t<
70710 std::is_constructible<t_TYPE,
70711 std::initializer_list<INIT_LIST_TYPE>&,
70712 t_ARGS_01,
70713 t_ARGS_02,
70714 t_ARGS_03,
70715 t_ARGS_04,
70716 t_ARGS_05,
70717 t_ARGS_06,
70718 t_ARGS_07,
70719 t_ARGS_08,
70720 t_ARGS_09,
70721 t_ARGS_10,
70722 t_ARGS_11,
70723 t_ARGS_12,
70724 t_ARGS_13,
70725 t_ARGS_14,
70726 t_ARGS_15,
70727 t_ARGS_16,
70728 t_ARGS_17>::value> >
70729 explicit variant(bsl::allocator_arg_t,
70730 allocator_type allocator,
70732 std::initializer_list<INIT_LIST_TYPE> il,
70733 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70734 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70735 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70736 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70737 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70738 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70739 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70740 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70741 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70742 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70743 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70744 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70745 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70746 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70747 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70748 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70749 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70750 : Variant_Base(
70751 bsl::allocator_arg_t{}
70752,
70753 allocator,
70754 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
70755 il,
70756 std::forward<t_ARGS_01>(args_01),
70757 std::forward<t_ARGS_02>(args_02),
70758 std::forward<t_ARGS_03>(args_03),
70759 std::forward<t_ARGS_04>(args_04),
70760 std::forward<t_ARGS_05>(args_05),
70761 std::forward<t_ARGS_06>(args_06),
70762 std::forward<t_ARGS_07>(args_07),
70763 std::forward<t_ARGS_08>(args_08),
70764 std::forward<t_ARGS_09>(args_09),
70765 std::forward<t_ARGS_10>(args_10),
70766 std::forward<t_ARGS_11>(args_11),
70767 std::forward<t_ARGS_12>(args_12),
70768 std::forward<t_ARGS_13>(args_13),
70769 std::forward<t_ARGS_14>(args_14),
70770 std::forward<t_ARGS_15>(args_15),
70771 std::forward<t_ARGS_16>(args_16),
70772 std::forward<t_ARGS_17>(args_17))
70773 {
70774 }
70775
70776 template <size_t t_INDEX,
70777 class t_ARGS_01,
70778 class t_ARGS_02,
70779 class t_ARGS_03,
70780 class t_ARGS_04,
70781 class t_ARGS_05,
70782 class t_ARGS_06,
70783 class t_ARGS_07,
70784 class t_ARGS_08,
70785 class t_ARGS_09,
70786 class t_ARGS_10,
70787 class t_ARGS_11,
70788 class t_ARGS_12,
70789 class t_ARGS_13,
70790 class t_ARGS_14,
70791 class t_ARGS_15,
70792 class t_ARGS_16,
70793 class t_ARGS_17,
70794 class = typename bsl::enable_if_t<
70795 (t_INDEX < 1 + 17u) &&
70796 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
70797 t_ARGS_01,
70798 t_ARGS_02,
70799 t_ARGS_03,
70800 t_ARGS_04,
70801 t_ARGS_05,
70802 t_ARGS_06,
70803 t_ARGS_07,
70804 t_ARGS_08,
70805 t_ARGS_09,
70806 t_ARGS_10,
70807 t_ARGS_11,
70808 t_ARGS_12,
70809 t_ARGS_13,
70810 t_ARGS_14,
70811 t_ARGS_15,
70812 t_ARGS_16,
70813 t_ARGS_17>::value> >
70814 explicit variant(bsl::allocator_arg_t,
70815 allocator_type allocator,
70817 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70818 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70819 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70820 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70821 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70822 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70823 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70824 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70825 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70826 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70827 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70828 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70829 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70830 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70831 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70832 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70833 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70834 : Variant_Base(bsl::allocator_arg_t{}
70835,
70836 allocator,
70837 bsl::in_place_index_t<t_INDEX>(),
70838 std::forward<t_ARGS_01>(args_01),
70839 std::forward<t_ARGS_02>(args_02),
70840 std::forward<t_ARGS_03>(args_03),
70841 std::forward<t_ARGS_04>(args_04),
70842 std::forward<t_ARGS_05>(args_05),
70843 std::forward<t_ARGS_06>(args_06),
70844 std::forward<t_ARGS_07>(args_07),
70845 std::forward<t_ARGS_08>(args_08),
70846 std::forward<t_ARGS_09>(args_09),
70847 std::forward<t_ARGS_10>(args_10),
70848 std::forward<t_ARGS_11>(args_11),
70849 std::forward<t_ARGS_12>(args_12),
70850 std::forward<t_ARGS_13>(args_13),
70851 std::forward<t_ARGS_14>(args_14),
70852 std::forward<t_ARGS_15>(args_15),
70853 std::forward<t_ARGS_16>(args_16),
70854 std::forward<t_ARGS_17>(args_17))
70855 {
70856 }
70857
70858 template <size_t t_INDEX,
70859 class INIT_LIST_TYPE,
70860 class t_ARGS_01,
70861 class t_ARGS_02,
70862 class t_ARGS_03,
70863 class t_ARGS_04,
70864 class t_ARGS_05,
70865 class t_ARGS_06,
70866 class t_ARGS_07,
70867 class t_ARGS_08,
70868 class t_ARGS_09,
70869 class t_ARGS_10,
70870 class t_ARGS_11,
70871 class t_ARGS_12,
70872 class t_ARGS_13,
70873 class t_ARGS_14,
70874 class t_ARGS_15,
70875 class t_ARGS_16,
70876 class t_ARGS_17,
70877 class = typename bsl::enable_if_t<
70878 (t_INDEX < 1 + 17u) &&
70879 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
70880 std::initializer_list<INIT_LIST_TYPE>&,
70881 t_ARGS_01,
70882 t_ARGS_02,
70883 t_ARGS_03,
70884 t_ARGS_04,
70885 t_ARGS_05,
70886 t_ARGS_06,
70887 t_ARGS_07,
70888 t_ARGS_08,
70889 t_ARGS_09,
70890 t_ARGS_10,
70891 t_ARGS_11,
70892 t_ARGS_12,
70893 t_ARGS_13,
70894 t_ARGS_14,
70895 t_ARGS_15,
70896 t_ARGS_16,
70897 t_ARGS_17>::value> >
70898 explicit variant(bsl::allocator_arg_t,
70899 allocator_type allocator,
70901 std::initializer_list<INIT_LIST_TYPE> il,
70902 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
70903 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
70904 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
70905 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
70906 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
70907 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
70908 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
70909 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
70910 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
70911 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
70912 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
70913 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
70914 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
70915 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
70916 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
70917 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
70918 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
70919 : Variant_Base(bsl::allocator_arg_t{}
70920,
70921 allocator,
70922 bsl::in_place_index_t<t_INDEX>(),
70923 il,
70924 std::forward<t_ARGS_01>(args_01),
70925 std::forward<t_ARGS_02>(args_02),
70926 std::forward<t_ARGS_03>(args_03),
70927 std::forward<t_ARGS_04>(args_04),
70928 std::forward<t_ARGS_05>(args_05),
70929 std::forward<t_ARGS_06>(args_06),
70930 std::forward<t_ARGS_07>(args_07),
70931 std::forward<t_ARGS_08>(args_08),
70932 std::forward<t_ARGS_09>(args_09),
70933 std::forward<t_ARGS_10>(args_10),
70934 std::forward<t_ARGS_11>(args_11),
70935 std::forward<t_ARGS_12>(args_12),
70936 std::forward<t_ARGS_13>(args_13),
70937 std::forward<t_ARGS_14>(args_14),
70938 std::forward<t_ARGS_15>(args_15),
70939 std::forward<t_ARGS_16>(args_16),
70940 std::forward<t_ARGS_17>(args_17))
70941 {
70942 }
70943
70944#else
70945
70946 variant();
70947
70948 variant(const variant& original);
70949
70950 variant(BloombergLP::bslmf::MovableRef<variant> original);
70951
70952 template <class t_TYPE>
70953 variant(const t_TYPE& value,
70955
70956 template <class t_TYPE>
70957 explicit variant(bsl::in_place_type_t<t_TYPE>,
70959
70960 template <class t_TYPE, class t_ARG_01>
70961 explicit variant(bsl::in_place_type_t<t_TYPE>,
70962 const t_ARG_01& arg_01,
70964
70965 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
70966 explicit variant(bsl::in_place_type_t<t_TYPE>,
70967 const t_ARG_01& arg_01,
70968 const t_ARG_02& arg_02,
70970
70971 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
70972 explicit variant(bsl::in_place_type_t<t_TYPE>,
70973 const t_ARG_01& arg_01,
70974 const t_ARG_02& arg_02,
70975 const t_ARG_03& arg_03,
70977
70978 template <class t_TYPE,
70979 class t_ARG_01,
70980 class t_ARG_02,
70981 class t_ARG_03,
70982 class t_ARG_04>
70983 explicit variant(bsl::in_place_type_t<t_TYPE>,
70984 const t_ARG_01& arg_01,
70985 const t_ARG_02& arg_02,
70986 const t_ARG_03& arg_03,
70987 const t_ARG_04& arg_04,
70989
70990 template <class t_TYPE,
70991 class t_ARG_01,
70992 class t_ARG_02,
70993 class t_ARG_03,
70994 class t_ARG_04,
70995 class t_ARG_05>
70996 explicit variant(bsl::in_place_type_t<t_TYPE>,
70997 const t_ARG_01& arg_01,
70998 const t_ARG_02& arg_02,
70999 const t_ARG_03& arg_03,
71000 const t_ARG_04& arg_04,
71001 const t_ARG_05& arg_05,
71003
71004 template <class t_TYPE,
71005 class t_ARG_01,
71006 class t_ARG_02,
71007 class t_ARG_03,
71008 class t_ARG_04,
71009 class t_ARG_05,
71010 class t_ARG_06>
71011 explicit variant(bsl::in_place_type_t<t_TYPE>,
71012 const t_ARG_01& arg_01,
71013 const t_ARG_02& arg_02,
71014 const t_ARG_03& arg_03,
71015 const t_ARG_04& arg_04,
71016 const t_ARG_05& arg_05,
71017 const t_ARG_06& arg_06,
71019
71020 template <class t_TYPE,
71021 class t_ARG_01,
71022 class t_ARG_02,
71023 class t_ARG_03,
71024 class t_ARG_04,
71025 class t_ARG_05,
71026 class t_ARG_06,
71027 class t_ARG_07>
71028 explicit variant(bsl::in_place_type_t<t_TYPE>,
71029 const t_ARG_01& arg_01,
71030 const t_ARG_02& arg_02,
71031 const t_ARG_03& arg_03,
71032 const t_ARG_04& arg_04,
71033 const t_ARG_05& arg_05,
71034 const t_ARG_06& arg_06,
71035 const t_ARG_07& arg_07,
71037
71038 template <class t_TYPE,
71039 class t_ARG_01,
71040 class t_ARG_02,
71041 class t_ARG_03,
71042 class t_ARG_04,
71043 class t_ARG_05,
71044 class t_ARG_06,
71045 class t_ARG_07,
71046 class t_ARG_08>
71047 explicit variant(bsl::in_place_type_t<t_TYPE>,
71048 const t_ARG_01& arg_01,
71049 const t_ARG_02& arg_02,
71050 const t_ARG_03& arg_03,
71051 const t_ARG_04& arg_04,
71052 const t_ARG_05& arg_05,
71053 const t_ARG_06& arg_06,
71054 const t_ARG_07& arg_07,
71055 const t_ARG_08& arg_08,
71057
71058 template <class t_TYPE,
71059 class t_ARG_01,
71060 class t_ARG_02,
71061 class t_ARG_03,
71062 class t_ARG_04,
71063 class t_ARG_05,
71064 class t_ARG_06,
71065 class t_ARG_07,
71066 class t_ARG_08,
71067 class t_ARG_09>
71068 explicit variant(bsl::in_place_type_t<t_TYPE>,
71069 const t_ARG_01& arg_01,
71070 const t_ARG_02& arg_02,
71071 const t_ARG_03& arg_03,
71072 const t_ARG_04& arg_04,
71073 const t_ARG_05& arg_05,
71074 const t_ARG_06& arg_06,
71075 const t_ARG_07& arg_07,
71076 const t_ARG_08& arg_08,
71077 const t_ARG_09& arg_09,
71079
71080 template <class t_TYPE,
71081 class t_ARG_01,
71082 class t_ARG_02,
71083 class t_ARG_03,
71084 class t_ARG_04,
71085 class t_ARG_05,
71086 class t_ARG_06,
71087 class t_ARG_07,
71088 class t_ARG_08,
71089 class t_ARG_09,
71090 class t_ARG_10>
71091 explicit variant(bsl::in_place_type_t<t_TYPE>,
71092 const t_ARG_01& arg_01,
71093 const t_ARG_02& arg_02,
71094 const t_ARG_03& arg_03,
71095 const t_ARG_04& arg_04,
71096 const t_ARG_05& arg_05,
71097 const t_ARG_06& arg_06,
71098 const t_ARG_07& arg_07,
71099 const t_ARG_08& arg_08,
71100 const t_ARG_09& arg_09,
71101 const t_ARG_10& arg_10,
71103
71104 template <size_t t_INDEX>
71105 explicit variant(bsl::in_place_index_t<t_INDEX>);
71106
71107 template <size_t t_INDEX, class t_ARG_01>
71108 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
71109
71110 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
71111 explicit variant(bsl::in_place_index_t<t_INDEX>,
71112 const t_ARG_01& arg_01,
71113 const t_ARG_02& arg_02);
71114
71115 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
71116 explicit variant(bsl::in_place_index_t<t_INDEX>,
71117 const t_ARG_01& arg_01,
71118 const t_ARG_02& arg_02,
71119 const t_ARG_03& arg_03);
71120
71121 template <size_t t_INDEX,
71122 class t_ARG_01,
71123 class t_ARG_02,
71124 class t_ARG_03,
71125 class t_ARG_04>
71126 explicit variant(bsl::in_place_index_t<t_INDEX>,
71127 const t_ARG_01& arg_01,
71128 const t_ARG_02& arg_02,
71129 const t_ARG_03& arg_03,
71130 const t_ARG_04& arg_04);
71131
71132 template <size_t t_INDEX,
71133 class t_ARG_01,
71134 class t_ARG_02,
71135 class t_ARG_03,
71136 class t_ARG_04,
71137 class t_ARG_05>
71138 explicit variant(bsl::in_place_index_t<t_INDEX>,
71139 const t_ARG_01& arg_01,
71140 const t_ARG_02& arg_02,
71141 const t_ARG_03& arg_03,
71142 const t_ARG_04& arg_04,
71143 const t_ARG_05& arg_05);
71144
71145 template <size_t t_INDEX,
71146 class t_ARG_01,
71147 class t_ARG_02,
71148 class t_ARG_03,
71149 class t_ARG_04,
71150 class t_ARG_05,
71151 class t_ARG_06>
71152 explicit variant(bsl::in_place_index_t<t_INDEX>,
71153 const t_ARG_01& arg_01,
71154 const t_ARG_02& arg_02,
71155 const t_ARG_03& arg_03,
71156 const t_ARG_04& arg_04,
71157 const t_ARG_05& arg_05,
71158 const t_ARG_06& arg_06);
71159
71160 template <size_t t_INDEX,
71161 class t_ARG_01,
71162 class t_ARG_02,
71163 class t_ARG_03,
71164 class t_ARG_04,
71165 class t_ARG_05,
71166 class t_ARG_06,
71167 class t_ARG_07>
71168 explicit variant(bsl::in_place_index_t<t_INDEX>,
71169 const t_ARG_01& arg_01,
71170 const t_ARG_02& arg_02,
71171 const t_ARG_03& arg_03,
71172 const t_ARG_04& arg_04,
71173 const t_ARG_05& arg_05,
71174 const t_ARG_06& arg_06,
71175 const t_ARG_07& arg_07);
71176
71177 template <size_t t_INDEX,
71178 class t_ARG_01,
71179 class t_ARG_02,
71180 class t_ARG_03,
71181 class t_ARG_04,
71182 class t_ARG_05,
71183 class t_ARG_06,
71184 class t_ARG_07,
71185 class t_ARG_08>
71186 explicit variant(bsl::in_place_index_t<t_INDEX>,
71187 const t_ARG_01& arg_01,
71188 const t_ARG_02& arg_02,
71189 const t_ARG_03& arg_03,
71190 const t_ARG_04& arg_04,
71191 const t_ARG_05& arg_05,
71192 const t_ARG_06& arg_06,
71193 const t_ARG_07& arg_07,
71194 const t_ARG_08& arg_08);
71195
71196 template <size_t t_INDEX,
71197 class t_ARG_01,
71198 class t_ARG_02,
71199 class t_ARG_03,
71200 class t_ARG_04,
71201 class t_ARG_05,
71202 class t_ARG_06,
71203 class t_ARG_07,
71204 class t_ARG_08,
71205 class t_ARG_09>
71206 explicit variant(bsl::in_place_index_t<t_INDEX>,
71207 const t_ARG_01& arg_01,
71208 const t_ARG_02& arg_02,
71209 const t_ARG_03& arg_03,
71210 const t_ARG_04& arg_04,
71211 const t_ARG_05& arg_05,
71212 const t_ARG_06& arg_06,
71213 const t_ARG_07& arg_07,
71214 const t_ARG_08& arg_08,
71215 const t_ARG_09& arg_09);
71216
71217 template <size_t t_INDEX,
71218 class t_ARG_01,
71219 class t_ARG_02,
71220 class t_ARG_03,
71221 class t_ARG_04,
71222 class t_ARG_05,
71223 class t_ARG_06,
71224 class t_ARG_07,
71225 class t_ARG_08,
71226 class t_ARG_09,
71227 class t_ARG_10>
71228 explicit variant(bsl::in_place_index_t<t_INDEX>,
71229 const t_ARG_01& arg_01,
71230 const t_ARG_02& arg_02,
71231 const t_ARG_03& arg_03,
71232 const t_ARG_04& arg_04,
71233 const t_ARG_05& arg_05,
71234 const t_ARG_06& arg_06,
71235 const t_ARG_07& arg_07,
71236 const t_ARG_08& arg_08,
71237 const t_ARG_09& arg_09,
71238 const t_ARG_10& arg_10);
71239
71240 variant(bsl::allocator_arg_t, allocator_type allocator);
71241
71242 variant(bsl::allocator_arg_t,
71243 allocator_type allocator,
71244 const variant& original);
71245 variant(bsl::allocator_arg_t,
71246 allocator_type allocator,
71247 BloombergLP::bslmf::MovableRef<variant> original);
71248
71249 template <class t_TYPE>
71250 variant(
71251 bsl::allocator_arg_t,
71252 allocator_type allocator,
71253 const t_TYPE& value,
71255
71256 template <class t_TYPE>
71257 explicit variant(
71258 bsl::allocator_arg_t,
71259 allocator_type allocator,
71262
71263 template <class t_TYPE, class t_ARG_01>
71264 explicit variant(
71265 bsl::allocator_arg_t,
71266 allocator_type allocator,
71268 const t_ARG_01& arg_01,
71270
71271 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
71272 explicit variant(
71273 bsl::allocator_arg_t,
71274 allocator_type allocator,
71276 const t_ARG_01& arg_01,
71277 const t_ARG_02& arg_02,
71279
71280 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
71281 explicit variant(
71282 bsl::allocator_arg_t,
71283 allocator_type allocator,
71285 const t_ARG_01& arg_01,
71286 const t_ARG_02& arg_02,
71287 const t_ARG_03& arg_03,
71289
71290 template <class t_TYPE,
71291 class t_ARG_01,
71292 class t_ARG_02,
71293 class t_ARG_03,
71294 class t_ARG_04>
71295 explicit variant(bsl::allocator_arg_t,
71296 allocator_type allocator,
71298 const t_ARG_01& arg_01,
71299 const t_ARG_02& arg_02,
71300 const t_ARG_03& arg_03,
71301 const t_ARG_04& arg_04,
71303
71304 template <class t_TYPE,
71305 class t_ARG_01,
71306 class t_ARG_02,
71307 class t_ARG_03,
71308 class t_ARG_04,
71309 class t_ARG_05>
71310 explicit variant(bsl::allocator_arg_t,
71311 allocator_type allocator,
71313 const t_ARG_01& arg_01,
71314 const t_ARG_02& arg_02,
71315 const t_ARG_03& arg_03,
71316 const t_ARG_04& arg_04,
71317 const t_ARG_05& arg_05,
71319
71320 template <class t_TYPE,
71321 class t_ARG_01,
71322 class t_ARG_02,
71323 class t_ARG_03,
71324 class t_ARG_04,
71325 class t_ARG_05,
71326 class t_ARG_06>
71327 explicit variant(bsl::allocator_arg_t,
71328 allocator_type allocator,
71330 const t_ARG_01& arg_01,
71331 const t_ARG_02& arg_02,
71332 const t_ARG_03& arg_03,
71333 const t_ARG_04& arg_04,
71334 const t_ARG_05& arg_05,
71335 const t_ARG_06& arg_06,
71337
71338 template <class t_TYPE,
71339 class t_ARG_01,
71340 class t_ARG_02,
71341 class t_ARG_03,
71342 class t_ARG_04,
71343 class t_ARG_05,
71344 class t_ARG_06,
71345 class t_ARG_07>
71346 explicit variant(bsl::allocator_arg_t,
71347 allocator_type allocator,
71349 const t_ARG_01& arg_01,
71350 const t_ARG_02& arg_02,
71351 const t_ARG_03& arg_03,
71352 const t_ARG_04& arg_04,
71353 const t_ARG_05& arg_05,
71354 const t_ARG_06& arg_06,
71355 const t_ARG_07& arg_07,
71357
71358 template <class t_TYPE,
71359 class t_ARG_01,
71360 class t_ARG_02,
71361 class t_ARG_03,
71362 class t_ARG_04,
71363 class t_ARG_05,
71364 class t_ARG_06,
71365 class t_ARG_07,
71366 class t_ARG_08>
71367 explicit variant(bsl::allocator_arg_t,
71368 allocator_type allocator,
71370 const t_ARG_01& arg_01,
71371 const t_ARG_02& arg_02,
71372 const t_ARG_03& arg_03,
71373 const t_ARG_04& arg_04,
71374 const t_ARG_05& arg_05,
71375 const t_ARG_06& arg_06,
71376 const t_ARG_07& arg_07,
71377 const t_ARG_08& arg_08,
71379
71380 template <class t_TYPE,
71381 class t_ARG_01,
71382 class t_ARG_02,
71383 class t_ARG_03,
71384 class t_ARG_04,
71385 class t_ARG_05,
71386 class t_ARG_06,
71387 class t_ARG_07,
71388 class t_ARG_08,
71389 class t_ARG_09>
71390 explicit variant(bsl::allocator_arg_t,
71391 allocator_type allocator,
71393 const t_ARG_01& arg_01,
71394 const t_ARG_02& arg_02,
71395 const t_ARG_03& arg_03,
71396 const t_ARG_04& arg_04,
71397 const t_ARG_05& arg_05,
71398 const t_ARG_06& arg_06,
71399 const t_ARG_07& arg_07,
71400 const t_ARG_08& arg_08,
71401 const t_ARG_09& arg_09,
71403
71404 template <class t_TYPE,
71405 class t_ARG_01,
71406 class t_ARG_02,
71407 class t_ARG_03,
71408 class t_ARG_04,
71409 class t_ARG_05,
71410 class t_ARG_06,
71411 class t_ARG_07,
71412 class t_ARG_08,
71413 class t_ARG_09,
71414 class t_ARG_10>
71415 explicit variant(bsl::allocator_arg_t,
71416 allocator_type allocator,
71418 const t_ARG_01& arg_01,
71419 const t_ARG_02& arg_02,
71420 const t_ARG_03& arg_03,
71421 const t_ARG_04& arg_04,
71422 const t_ARG_05& arg_05,
71423 const t_ARG_06& arg_06,
71424 const t_ARG_07& arg_07,
71425 const t_ARG_08& arg_08,
71426 const t_ARG_09& arg_09,
71427 const t_ARG_10& arg_10,
71429
71430 template <size_t t_INDEX>
71431 explicit variant(bsl::allocator_arg_t,
71432 allocator_type allocator,
71434
71435 template <size_t t_INDEX, class t_ARG_01>
71436 explicit variant(bsl::allocator_arg_t,
71437 allocator_type allocator,
71439 const t_ARG_01& arg_01);
71440
71441 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
71442 explicit variant(bsl::allocator_arg_t,
71443 allocator_type allocator,
71445 const t_ARG_01& arg_01,
71446 const t_ARG_02& arg_02);
71447
71448 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
71449 explicit variant(bsl::allocator_arg_t,
71450 allocator_type allocator,
71452 const t_ARG_01& arg_01,
71453 const t_ARG_02& arg_02,
71454 const t_ARG_03& arg_03);
71455
71456 template <size_t t_INDEX,
71457 class t_ARG_01,
71458 class t_ARG_02,
71459 class t_ARG_03,
71460 class t_ARG_04>
71461 explicit variant(bsl::allocator_arg_t,
71462 allocator_type allocator,
71464 const t_ARG_01& arg_01,
71465 const t_ARG_02& arg_02,
71466 const t_ARG_03& arg_03,
71467 const t_ARG_04& arg_04);
71468
71469 template <size_t t_INDEX,
71470 class t_ARG_01,
71471 class t_ARG_02,
71472 class t_ARG_03,
71473 class t_ARG_04,
71474 class t_ARG_05>
71475 explicit variant(bsl::allocator_arg_t,
71476 allocator_type allocator,
71478 const t_ARG_01& arg_01,
71479 const t_ARG_02& arg_02,
71480 const t_ARG_03& arg_03,
71481 const t_ARG_04& arg_04,
71482 const t_ARG_05& arg_05);
71483
71484 template <size_t t_INDEX,
71485 class t_ARG_01,
71486 class t_ARG_02,
71487 class t_ARG_03,
71488 class t_ARG_04,
71489 class t_ARG_05,
71490 class t_ARG_06>
71491 explicit variant(bsl::allocator_arg_t,
71492 allocator_type allocator,
71494 const t_ARG_01& arg_01,
71495 const t_ARG_02& arg_02,
71496 const t_ARG_03& arg_03,
71497 const t_ARG_04& arg_04,
71498 const t_ARG_05& arg_05,
71499 const t_ARG_06& arg_06);
71500
71501 template <size_t t_INDEX,
71502 class t_ARG_01,
71503 class t_ARG_02,
71504 class t_ARG_03,
71505 class t_ARG_04,
71506 class t_ARG_05,
71507 class t_ARG_06,
71508 class t_ARG_07>
71509 explicit variant(bsl::allocator_arg_t,
71510 allocator_type allocator,
71512 const t_ARG_01& arg_01,
71513 const t_ARG_02& arg_02,
71514 const t_ARG_03& arg_03,
71515 const t_ARG_04& arg_04,
71516 const t_ARG_05& arg_05,
71517 const t_ARG_06& arg_06,
71518 const t_ARG_07& arg_07);
71519
71520 template <size_t t_INDEX,
71521 class t_ARG_01,
71522 class t_ARG_02,
71523 class t_ARG_03,
71524 class t_ARG_04,
71525 class t_ARG_05,
71526 class t_ARG_06,
71527 class t_ARG_07,
71528 class t_ARG_08>
71529 explicit variant(bsl::allocator_arg_t,
71530 allocator_type allocator,
71532 const t_ARG_01& arg_01,
71533 const t_ARG_02& arg_02,
71534 const t_ARG_03& arg_03,
71535 const t_ARG_04& arg_04,
71536 const t_ARG_05& arg_05,
71537 const t_ARG_06& arg_06,
71538 const t_ARG_07& arg_07,
71539 const t_ARG_08& arg_08);
71540
71541 template <size_t t_INDEX,
71542 class t_ARG_01,
71543 class t_ARG_02,
71544 class t_ARG_03,
71545 class t_ARG_04,
71546 class t_ARG_05,
71547 class t_ARG_06,
71548 class t_ARG_07,
71549 class t_ARG_08,
71550 class t_ARG_09>
71551 explicit variant(bsl::allocator_arg_t,
71552 allocator_type allocator,
71554 const t_ARG_01& arg_01,
71555 const t_ARG_02& arg_02,
71556 const t_ARG_03& arg_03,
71557 const t_ARG_04& arg_04,
71558 const t_ARG_05& arg_05,
71559 const t_ARG_06& arg_06,
71560 const t_ARG_07& arg_07,
71561 const t_ARG_08& arg_08,
71562 const t_ARG_09& arg_09);
71563
71564 template <size_t t_INDEX,
71565 class t_ARG_01,
71566 class t_ARG_02,
71567 class t_ARG_03,
71568 class t_ARG_04,
71569 class t_ARG_05,
71570 class t_ARG_06,
71571 class t_ARG_07,
71572 class t_ARG_08,
71573 class t_ARG_09,
71574 class t_ARG_10>
71575 explicit variant(bsl::allocator_arg_t,
71576 allocator_type allocator,
71578 const t_ARG_01& arg_01,
71579 const t_ARG_02& arg_02,
71580 const t_ARG_03& arg_03,
71581 const t_ARG_04& arg_04,
71582 const t_ARG_05& arg_05,
71583 const t_ARG_06& arg_06,
71584 const t_ARG_07& arg_07,
71585 const t_ARG_08& arg_08,
71586 const t_ARG_09& arg_09,
71587 const t_ARG_10& arg_10);
71588
71589#endif
71590
71591
71592#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
71593 template <class t_TYPE,
71594 class t_ARGS_01,
71595 class t_ARGS_02,
71596 class t_ARGS_03,
71597 class t_ARGS_04,
71598 class t_ARGS_05,
71599 class t_ARGS_06,
71600 class t_ARGS_07,
71601 class t_ARGS_08,
71602 class t_ARGS_09,
71603 class t_ARGS_10,
71604 class t_ARGS_11,
71605 class t_ARGS_12,
71606 class t_ARGS_13,
71607 class t_ARGS_14,
71608 class t_ARGS_15,
71609 class t_ARGS_16,
71610 class t_ARGS_17,
71611 class = typename bsl::enable_if_t<
71613 std::is_constructible<t_TYPE, t_ARGS_01,
71614 t_ARGS_02,
71615 t_ARGS_03,
71616 t_ARGS_04,
71617 t_ARGS_05,
71618 t_ARGS_06,
71619 t_ARGS_07,
71620 t_ARGS_08,
71621 t_ARGS_09,
71622 t_ARGS_10,
71623 t_ARGS_11,
71624 t_ARGS_12,
71625 t_ARGS_13,
71626 t_ARGS_14,
71627 t_ARGS_15,
71628 t_ARGS_16,
71629 t_ARGS_17>::value> >
71630 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
71631 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
71632 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
71633 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
71634 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
71635 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
71636 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
71637 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
71638 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
71639 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
71640 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
71641 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
71642 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
71643 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
71644 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
71645 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
71646 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
71647 {
71648 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
71649 Variant_Base::template baseEmplace<index>(
71650 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
71651 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
71652 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
71653 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
71654 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
71655 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
71656 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
71657 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
71658 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
71659 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
71660 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
71661 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
71662 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
71663 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
71664 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
71665 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
71666 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17));
71667
71668 return bsl::get<index>(*this);
71669 }
71670
71671 template <class t_TYPE,
71672 class INIT_LIST_TYPE,
71673 class t_ARGS_01,
71674 class t_ARGS_02,
71675 class t_ARGS_03,
71676 class t_ARGS_04,
71677 class t_ARGS_05,
71678 class t_ARGS_06,
71679 class t_ARGS_07,
71680 class t_ARGS_08,
71681 class t_ARGS_09,
71682 class t_ARGS_10,
71683 class t_ARGS_11,
71684 class t_ARGS_12,
71685 class t_ARGS_13,
71686 class t_ARGS_14,
71687 class t_ARGS_15,
71688 class t_ARGS_16,
71689 class t_ARGS_17,
71690 class = typename bsl::enable_if_t<
71692 std::is_constructible<t_TYPE,
71693 std::initializer_list<INIT_LIST_TYPE>&,
71694 t_ARGS_01,
71695 t_ARGS_02,
71696 t_ARGS_03,
71697 t_ARGS_04,
71698 t_ARGS_05,
71699 t_ARGS_06,
71700 t_ARGS_07,
71701 t_ARGS_08,
71702 t_ARGS_09,
71703 t_ARGS_10,
71704 t_ARGS_11,
71705 t_ARGS_12,
71706 t_ARGS_13,
71707 t_ARGS_14,
71708 t_ARGS_15,
71709 t_ARGS_16,
71710 t_ARGS_17>::value> >
71711 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
71712 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
71713 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
71714 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
71715 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
71716 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
71717 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
71718 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
71719 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
71720 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
71721 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
71722 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
71723 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
71724 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
71725 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
71726 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
71727 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
71728 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
71729 {
71730 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
71731 Variant_Base::template baseEmplace<index>(
71732 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
71733 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
71734 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
71735 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
71736 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
71737 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
71738 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
71739 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
71740 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
71741 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
71742 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
71743 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
71744 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
71745 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
71746 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
71747 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
71748 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17));
71749
71750 return bsl::get<index>(*this);
71751 }
71752
71753 template <size_t t_INDEX,
71754 class t_ARGS_01,
71755 class t_ARGS_02,
71756 class t_ARGS_03,
71757 class t_ARGS_04,
71758 class t_ARGS_05,
71759 class t_ARGS_06,
71760 class t_ARGS_07,
71761 class t_ARGS_08,
71762 class t_ARGS_09,
71763 class t_ARGS_10,
71764 class t_ARGS_11,
71765 class t_ARGS_12,
71766 class t_ARGS_13,
71767 class t_ARGS_14,
71768 class t_ARGS_15,
71769 class t_ARGS_16,
71770 class t_ARGS_17,
71771 class = typename bsl::enable_if_t<
71772 (t_INDEX < 1 + 17u) &&
71773 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
71774 t_ARGS_01,
71775 t_ARGS_02,
71776 t_ARGS_03,
71777 t_ARGS_04,
71778 t_ARGS_05,
71779 t_ARGS_06,
71780 t_ARGS_07,
71781 t_ARGS_08,
71782 t_ARGS_09,
71783 t_ARGS_10,
71784 t_ARGS_11,
71785 t_ARGS_12,
71786 t_ARGS_13,
71787 t_ARGS_14,
71788 t_ARGS_15,
71789 t_ARGS_16,
71790 t_ARGS_17>::value> >
71791 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
71792 t_TAIL_02,
71793 t_TAIL_03,
71794 t_TAIL_04,
71795 t_TAIL_05,
71796 t_TAIL_06,
71797 t_TAIL_07,
71798 t_TAIL_08,
71799 t_TAIL_09,
71800 t_TAIL_10,
71801 t_TAIL_11,
71802 t_TAIL_12,
71803 t_TAIL_13,
71804 t_TAIL_14,
71805 t_TAIL_15,
71806 t_TAIL_16,
71807 t_TAIL_17> >::type&
71808 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
71809 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
71810 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
71811 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
71812 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
71813 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
71814 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
71815 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
71816 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
71817 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
71818 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
71819 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
71820 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
71821 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
71822 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
71823 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
71824 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
71825 {
71826 Variant_Base::template baseEmplace<t_INDEX>(
71827 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
71828 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
71829 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
71830 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
71831 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
71832 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
71833 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
71834 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
71835 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
71836 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
71837 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
71838 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
71839 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
71840 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
71841 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
71842 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
71843 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17));
71844
71845 return bsl::get<t_INDEX>(*this);
71846 }
71847
71848 template <size_t t_INDEX,
71849 class INIT_LIST_TYPE,
71850 class t_ARGS_01,
71851 class t_ARGS_02,
71852 class t_ARGS_03,
71853 class t_ARGS_04,
71854 class t_ARGS_05,
71855 class t_ARGS_06,
71856 class t_ARGS_07,
71857 class t_ARGS_08,
71858 class t_ARGS_09,
71859 class t_ARGS_10,
71860 class t_ARGS_11,
71861 class t_ARGS_12,
71862 class t_ARGS_13,
71863 class t_ARGS_14,
71864 class t_ARGS_15,
71865 class t_ARGS_16,
71866 class t_ARGS_17,
71867 class = typename bsl::enable_if_t<
71868 (t_INDEX < 1 + 17u) &&
71869 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
71870 std::initializer_list<INIT_LIST_TYPE>&,
71871 t_ARGS_01,
71872 t_ARGS_02,
71873 t_ARGS_03,
71874 t_ARGS_04,
71875 t_ARGS_05,
71876 t_ARGS_06,
71877 t_ARGS_07,
71878 t_ARGS_08,
71879 t_ARGS_09,
71880 t_ARGS_10,
71881 t_ARGS_11,
71882 t_ARGS_12,
71883 t_ARGS_13,
71884 t_ARGS_14,
71885 t_ARGS_15,
71886 t_ARGS_16,
71887 t_ARGS_17>::value> >
71888 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
71889 t_TAIL_02,
71890 t_TAIL_03,
71891 t_TAIL_04,
71892 t_TAIL_05,
71893 t_TAIL_06,
71894 t_TAIL_07,
71895 t_TAIL_08,
71896 t_TAIL_09,
71897 t_TAIL_10,
71898 t_TAIL_11,
71899 t_TAIL_12,
71900 t_TAIL_13,
71901 t_TAIL_14,
71902 t_TAIL_15,
71903 t_TAIL_16,
71904 t_TAIL_17> >::type&
71905 emplace(std::initializer_list<INIT_LIST_TYPE> il,
71906 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
71907 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
71908 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
71909 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
71910 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
71911 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
71912 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
71913 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
71914 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
71915 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
71916 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
71917 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
71918 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
71919 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
71920 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
71921 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
71922 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17)
71923 {
71924 Variant_Base::template baseEmplace<t_INDEX>(
71925 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
71926 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
71927 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
71928 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
71929 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
71930 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
71931 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
71932 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
71933 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
71934 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
71935 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
71936 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
71937 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
71938 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
71939 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
71940 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
71941 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17));
71942
71943 return bsl::get<t_INDEX>(*this);
71944 }
71945
71946#else
71947
71948 template <class t_TYPE>
71949 typename bsl::enable_if<
71950 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
71951 t_TYPE&>::type
71952 emplace();
71953
71954 template <class t_TYPE, class t_ARG_01>
71955 typename bsl::enable_if<
71956 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
71957 t_TYPE&>::type
71958 emplace(const t_ARG_01& arg_01);
71959
71960 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
71961 typename bsl::enable_if<
71962 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
71963 t_TYPE&>::type
71964 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
71965
71966 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
71967 typename bsl::enable_if<
71968 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
71969 t_TYPE&>::type
71970 emplace(const t_ARG_01& arg_01,
71971 const t_ARG_02& arg_02,
71972 const t_ARG_03& arg_03);
71973
71974 template <class t_TYPE,
71975 class t_ARG_01,
71976 class t_ARG_02,
71977 class t_ARG_03,
71978 class t_ARG_04>
71979 typename bsl::enable_if<
71980 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
71981 t_TYPE&>::type
71982 emplace(const t_ARG_01& arg_01,
71983 const t_ARG_02& arg_02,
71984 const t_ARG_03& arg_03,
71985 const t_ARG_04& arg_04);
71986
71987 template <class t_TYPE,
71988 class t_ARG_01,
71989 class t_ARG_02,
71990 class t_ARG_03,
71991 class t_ARG_04,
71992 class t_ARG_05>
71993 typename bsl::enable_if<
71994 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
71995 t_TYPE&>::type
71996 emplace(const t_ARG_01& arg_01,
71997 const t_ARG_02& arg_02,
71998 const t_ARG_03& arg_03,
71999 const t_ARG_04& arg_04,
72000 const t_ARG_05& arg_05);
72001
72002 template <class t_TYPE,
72003 class t_ARG_01,
72004 class t_ARG_02,
72005 class t_ARG_03,
72006 class t_ARG_04,
72007 class t_ARG_05,
72008 class t_ARG_06>
72009 typename bsl::enable_if<
72010 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
72011 t_TYPE&>::type
72012 emplace(const t_ARG_01& arg_01,
72013 const t_ARG_02& arg_02,
72014 const t_ARG_03& arg_03,
72015 const t_ARG_04& arg_04,
72016 const t_ARG_05& arg_05,
72017 const t_ARG_06& arg_06);
72018
72019 template <class t_TYPE,
72020 class t_ARG_01,
72021 class t_ARG_02,
72022 class t_ARG_03,
72023 class t_ARG_04,
72024 class t_ARG_05,
72025 class t_ARG_06,
72026 class t_ARG_07>
72027 typename bsl::enable_if<
72028 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
72029 t_TYPE&>::type
72030 emplace(const t_ARG_01& arg_01,
72031 const t_ARG_02& arg_02,
72032 const t_ARG_03& arg_03,
72033 const t_ARG_04& arg_04,
72034 const t_ARG_05& arg_05,
72035 const t_ARG_06& arg_06,
72036 const t_ARG_07& arg_07);
72037
72038 template <class t_TYPE,
72039 class t_ARG_01,
72040 class t_ARG_02,
72041 class t_ARG_03,
72042 class t_ARG_04,
72043 class t_ARG_05,
72044 class t_ARG_06,
72045 class t_ARG_07,
72046 class t_ARG_08>
72047 typename bsl::enable_if<
72048 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
72049 t_TYPE&>::type
72050 emplace(const t_ARG_01& arg_01,
72051 const t_ARG_02& arg_02,
72052 const t_ARG_03& arg_03,
72053 const t_ARG_04& arg_04,
72054 const t_ARG_05& arg_05,
72055 const t_ARG_06& arg_06,
72056 const t_ARG_07& arg_07,
72057 const t_ARG_08& arg_08);
72058
72059 template <class t_TYPE,
72060 class t_ARG_01,
72061 class t_ARG_02,
72062 class t_ARG_03,
72063 class t_ARG_04,
72064 class t_ARG_05,
72065 class t_ARG_06,
72066 class t_ARG_07,
72067 class t_ARG_08,
72068 class t_ARG_09>
72069 typename bsl::enable_if<
72070 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
72071 t_TYPE&>::type
72072 emplace(const t_ARG_01& arg_01,
72073 const t_ARG_02& arg_02,
72074 const t_ARG_03& arg_03,
72075 const t_ARG_04& arg_04,
72076 const t_ARG_05& arg_05,
72077 const t_ARG_06& arg_06,
72078 const t_ARG_07& arg_07,
72079 const t_ARG_08& arg_08,
72080 const t_ARG_09& arg_09);
72081
72082 template <class t_TYPE,
72083 class t_ARG_01,
72084 class t_ARG_02,
72085 class t_ARG_03,
72086 class t_ARG_04,
72087 class t_ARG_05,
72088 class t_ARG_06,
72089 class t_ARG_07,
72090 class t_ARG_08,
72091 class t_ARG_09,
72092 class t_ARG_10>
72093 typename bsl::enable_if<
72094 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
72095 t_TYPE&>::type
72096 emplace(const t_ARG_01& arg_01,
72097 const t_ARG_02& arg_02,
72098 const t_ARG_03& arg_03,
72099 const t_ARG_04& arg_04,
72100 const t_ARG_05& arg_05,
72101 const t_ARG_06& arg_06,
72102 const t_ARG_07& arg_07,
72103 const t_ARG_08& arg_08,
72104 const t_ARG_09& arg_09,
72105 const t_ARG_10& arg_10);
72106
72107 template <size_t t_INDEX>
72108 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72109 t_TAIL_02,
72110 t_TAIL_03,
72111 t_TAIL_04,
72112 t_TAIL_05,
72113 t_TAIL_06,
72114 t_TAIL_07,
72115 t_TAIL_08,
72116 t_TAIL_09,
72117 t_TAIL_10,
72118 t_TAIL_11,
72119 t_TAIL_12,
72120 t_TAIL_13,
72121 t_TAIL_14,
72122 t_TAIL_15,
72123 t_TAIL_16,
72124 t_TAIL_17> >::type&
72125 emplace();
72126
72127 template <size_t t_INDEX, class t_ARG_01>
72128 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72129 t_TAIL_02,
72130 t_TAIL_03,
72131 t_TAIL_04,
72132 t_TAIL_05,
72133 t_TAIL_06,
72134 t_TAIL_07,
72135 t_TAIL_08,
72136 t_TAIL_09,
72137 t_TAIL_10,
72138 t_TAIL_11,
72139 t_TAIL_12,
72140 t_TAIL_13,
72141 t_TAIL_14,
72142 t_TAIL_15,
72143 t_TAIL_16,
72144 t_TAIL_17> >::type&
72145 emplace(const t_ARG_01& arg_01);
72146
72147 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
72148 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72149 t_TAIL_02,
72150 t_TAIL_03,
72151 t_TAIL_04,
72152 t_TAIL_05,
72153 t_TAIL_06,
72154 t_TAIL_07,
72155 t_TAIL_08,
72156 t_TAIL_09,
72157 t_TAIL_10,
72158 t_TAIL_11,
72159 t_TAIL_12,
72160 t_TAIL_13,
72161 t_TAIL_14,
72162 t_TAIL_15,
72163 t_TAIL_16,
72164 t_TAIL_17> >::type&
72165 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
72166
72167 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
72168 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72169 t_TAIL_02,
72170 t_TAIL_03,
72171 t_TAIL_04,
72172 t_TAIL_05,
72173 t_TAIL_06,
72174 t_TAIL_07,
72175 t_TAIL_08,
72176 t_TAIL_09,
72177 t_TAIL_10,
72178 t_TAIL_11,
72179 t_TAIL_12,
72180 t_TAIL_13,
72181 t_TAIL_14,
72182 t_TAIL_15,
72183 t_TAIL_16,
72184 t_TAIL_17> >::type&
72185 emplace(const t_ARG_01& arg_01,
72186 const t_ARG_02& arg_02,
72187 const t_ARG_03& arg_03);
72188
72189 template <size_t t_INDEX,
72190 class t_ARG_01,
72191 class t_ARG_02,
72192 class t_ARG_03,
72193 class t_ARG_04>
72194 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72195 t_TAIL_02,
72196 t_TAIL_03,
72197 t_TAIL_04,
72198 t_TAIL_05,
72199 t_TAIL_06,
72200 t_TAIL_07,
72201 t_TAIL_08,
72202 t_TAIL_09,
72203 t_TAIL_10,
72204 t_TAIL_11,
72205 t_TAIL_12,
72206 t_TAIL_13,
72207 t_TAIL_14,
72208 t_TAIL_15,
72209 t_TAIL_16,
72210 t_TAIL_17> >::type&
72211 emplace(const t_ARG_01& arg_01,
72212 const t_ARG_02& arg_02,
72213 const t_ARG_03& arg_03,
72214 const t_ARG_04& arg_04);
72215
72216 template <size_t t_INDEX,
72217 class t_ARG_01,
72218 class t_ARG_02,
72219 class t_ARG_03,
72220 class t_ARG_04,
72221 class t_ARG_05>
72222 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72223 t_TAIL_02,
72224 t_TAIL_03,
72225 t_TAIL_04,
72226 t_TAIL_05,
72227 t_TAIL_06,
72228 t_TAIL_07,
72229 t_TAIL_08,
72230 t_TAIL_09,
72231 t_TAIL_10,
72232 t_TAIL_11,
72233 t_TAIL_12,
72234 t_TAIL_13,
72235 t_TAIL_14,
72236 t_TAIL_15,
72237 t_TAIL_16,
72238 t_TAIL_17> >::type&
72239 emplace(const t_ARG_01& arg_01,
72240 const t_ARG_02& arg_02,
72241 const t_ARG_03& arg_03,
72242 const t_ARG_04& arg_04,
72243 const t_ARG_05& arg_05);
72244
72245 template <size_t t_INDEX,
72246 class t_ARG_01,
72247 class t_ARG_02,
72248 class t_ARG_03,
72249 class t_ARG_04,
72250 class t_ARG_05,
72251 class t_ARG_06>
72252 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72253 t_TAIL_02,
72254 t_TAIL_03,
72255 t_TAIL_04,
72256 t_TAIL_05,
72257 t_TAIL_06,
72258 t_TAIL_07,
72259 t_TAIL_08,
72260 t_TAIL_09,
72261 t_TAIL_10,
72262 t_TAIL_11,
72263 t_TAIL_12,
72264 t_TAIL_13,
72265 t_TAIL_14,
72266 t_TAIL_15,
72267 t_TAIL_16,
72268 t_TAIL_17> >::type&
72269 emplace(const t_ARG_01& arg_01,
72270 const t_ARG_02& arg_02,
72271 const t_ARG_03& arg_03,
72272 const t_ARG_04& arg_04,
72273 const t_ARG_05& arg_05,
72274 const t_ARG_06& arg_06);
72275
72276 template <size_t t_INDEX,
72277 class t_ARG_01,
72278 class t_ARG_02,
72279 class t_ARG_03,
72280 class t_ARG_04,
72281 class t_ARG_05,
72282 class t_ARG_06,
72283 class t_ARG_07>
72284 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72285 t_TAIL_02,
72286 t_TAIL_03,
72287 t_TAIL_04,
72288 t_TAIL_05,
72289 t_TAIL_06,
72290 t_TAIL_07,
72291 t_TAIL_08,
72292 t_TAIL_09,
72293 t_TAIL_10,
72294 t_TAIL_11,
72295 t_TAIL_12,
72296 t_TAIL_13,
72297 t_TAIL_14,
72298 t_TAIL_15,
72299 t_TAIL_16,
72300 t_TAIL_17> >::type&
72301 emplace(const t_ARG_01& arg_01,
72302 const t_ARG_02& arg_02,
72303 const t_ARG_03& arg_03,
72304 const t_ARG_04& arg_04,
72305 const t_ARG_05& arg_05,
72306 const t_ARG_06& arg_06,
72307 const t_ARG_07& arg_07);
72308
72309 template <size_t t_INDEX,
72310 class t_ARG_01,
72311 class t_ARG_02,
72312 class t_ARG_03,
72313 class t_ARG_04,
72314 class t_ARG_05,
72315 class t_ARG_06,
72316 class t_ARG_07,
72317 class t_ARG_08>
72318 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72319 t_TAIL_02,
72320 t_TAIL_03,
72321 t_TAIL_04,
72322 t_TAIL_05,
72323 t_TAIL_06,
72324 t_TAIL_07,
72325 t_TAIL_08,
72326 t_TAIL_09,
72327 t_TAIL_10,
72328 t_TAIL_11,
72329 t_TAIL_12,
72330 t_TAIL_13,
72331 t_TAIL_14,
72332 t_TAIL_15,
72333 t_TAIL_16,
72334 t_TAIL_17> >::type&
72335 emplace(const t_ARG_01& arg_01,
72336 const t_ARG_02& arg_02,
72337 const t_ARG_03& arg_03,
72338 const t_ARG_04& arg_04,
72339 const t_ARG_05& arg_05,
72340 const t_ARG_06& arg_06,
72341 const t_ARG_07& arg_07,
72342 const t_ARG_08& arg_08);
72343
72344 template <size_t t_INDEX,
72345 class t_ARG_01,
72346 class t_ARG_02,
72347 class t_ARG_03,
72348 class t_ARG_04,
72349 class t_ARG_05,
72350 class t_ARG_06,
72351 class t_ARG_07,
72352 class t_ARG_08,
72353 class t_ARG_09>
72354 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72355 t_TAIL_02,
72356 t_TAIL_03,
72357 t_TAIL_04,
72358 t_TAIL_05,
72359 t_TAIL_06,
72360 t_TAIL_07,
72361 t_TAIL_08,
72362 t_TAIL_09,
72363 t_TAIL_10,
72364 t_TAIL_11,
72365 t_TAIL_12,
72366 t_TAIL_13,
72367 t_TAIL_14,
72368 t_TAIL_15,
72369 t_TAIL_16,
72370 t_TAIL_17> >::type&
72371 emplace(const t_ARG_01& arg_01,
72372 const t_ARG_02& arg_02,
72373 const t_ARG_03& arg_03,
72374 const t_ARG_04& arg_04,
72375 const t_ARG_05& arg_05,
72376 const t_ARG_06& arg_06,
72377 const t_ARG_07& arg_07,
72378 const t_ARG_08& arg_08,
72379 const t_ARG_09& arg_09);
72380
72381 template <size_t t_INDEX,
72382 class t_ARG_01,
72383 class t_ARG_02,
72384 class t_ARG_03,
72385 class t_ARG_04,
72386 class t_ARG_05,
72387 class t_ARG_06,
72388 class t_ARG_07,
72389 class t_ARG_08,
72390 class t_ARG_09,
72391 class t_ARG_10>
72392 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
72393 t_TAIL_02,
72394 t_TAIL_03,
72395 t_TAIL_04,
72396 t_TAIL_05,
72397 t_TAIL_06,
72398 t_TAIL_07,
72399 t_TAIL_08,
72400 t_TAIL_09,
72401 t_TAIL_10,
72402 t_TAIL_11,
72403 t_TAIL_12,
72404 t_TAIL_13,
72405 t_TAIL_14,
72406 t_TAIL_15,
72407 t_TAIL_16,
72408 t_TAIL_17> >::type&
72409 emplace(const t_ARG_01& arg_01,
72410 const t_ARG_02& arg_02,
72411 const t_ARG_03& arg_03,
72412 const t_ARG_04& arg_04,
72413 const t_ARG_05& arg_05,
72414 const t_ARG_06& arg_06,
72415 const t_ARG_07& arg_07,
72416 const t_ARG_08& arg_08,
72417 const t_ARG_09& arg_09,
72418 const t_ARG_10& arg_10);
72419#endif
72420
72421#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
72422 variant& operator=(const variant& rhs) = default;
72423
72424 variant& operator=(variant&& rhs) = default;
72425
72426 template <class t_TYPE>
72427 typename bsl::enable_if<
72428 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
72429 variant&>::type
72430 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
72431 {
72432 const size_t altIndex =
72433 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
72434
72435 if (index() == altIndex) {
72436 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
72437 value);
72438 }
72439 else {
72440 Variant_Base::template baseEmplace<altIndex>(
72441 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
72442 }
72443
72444 return *this;
72445 }
72446#else
72447 variant& operator=(const variant& rhs);
72448
72449 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
72450
72451 template <class t_TYPE>
72452 typename bsl::enable_if<
72453 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
72454 variant&>::type
72455 operator=(const t_TYPE& value);
72456
72457#endif
72458
72459 void swap(variant& other);
72460
72461#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
72462 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
72463 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
72464 t_TAIL_02,
72465 t_TAIL_03,
72466 t_TAIL_04,
72467 t_TAIL_05,
72468 t_TAIL_06,
72469 t_TAIL_07,
72470 t_TAIL_08,
72471 t_TAIL_09,
72472 t_TAIL_10,
72473 t_TAIL_11,
72474 t_TAIL_12,
72475 t_TAIL_13,
72476 t_TAIL_14,
72477 t_TAIL_15,
72478 t_TAIL_16,
72479 t_TAIL_17>::value,
72480 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
72481#endif
72482 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
72483 {
72484 return allocator_type(Variant_Base::AllocBase::mechanism());
72485 }
72486
72487
72488 size_t index() const BSLS_KEYWORD_NOEXCEPT;
72489
72490 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
72491};
72492#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 17
72493
72494#if BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 18
72495template <class t_HEAD, class t_TAIL_01,
72496 class t_TAIL_02,
72497 class t_TAIL_03,
72498 class t_TAIL_04,
72499 class t_TAIL_05,
72500 class t_TAIL_06,
72501 class t_TAIL_07,
72502 class t_TAIL_08,
72503 class t_TAIL_09,
72504 class t_TAIL_10,
72505 class t_TAIL_11,
72506 class t_TAIL_12,
72507 class t_TAIL_13,
72508 class t_TAIL_14,
72509 class t_TAIL_15,
72510 class t_TAIL_16,
72511 class t_TAIL_17,
72512 class t_TAIL_18>
72513class variant<t_HEAD, t_TAIL_01,
72514 t_TAIL_02,
72515 t_TAIL_03,
72516 t_TAIL_04,
72517 t_TAIL_05,
72518 t_TAIL_06,
72519 t_TAIL_07,
72520 t_TAIL_08,
72521 t_TAIL_09,
72522 t_TAIL_10,
72523 t_TAIL_11,
72524 t_TAIL_12,
72525 t_TAIL_13,
72526 t_TAIL_14,
72527 t_TAIL_15,
72528 t_TAIL_16,
72529 t_TAIL_17,
72530 t_TAIL_18>
72531: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
72532 t_TAIL_02,
72533 t_TAIL_03,
72534 t_TAIL_04,
72535 t_TAIL_05,
72536 t_TAIL_06,
72537 t_TAIL_07,
72538 t_TAIL_08,
72539 t_TAIL_09,
72540 t_TAIL_10,
72541 t_TAIL_11,
72542 t_TAIL_12,
72543 t_TAIL_13,
72544 t_TAIL_14,
72545 t_TAIL_15,
72546 t_TAIL_16,
72547 t_TAIL_17,
72548 t_TAIL_18>
72549#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
72550,
72551 private BloombergLP::bslstl::Variant_SMFBase<
72552 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
72553 t_TAIL_01,
72554 t_TAIL_02,
72555 t_TAIL_03,
72556 t_TAIL_04,
72557 t_TAIL_05,
72558 t_TAIL_06,
72559 t_TAIL_07,
72560 t_TAIL_08,
72561 t_TAIL_09,
72562 t_TAIL_10,
72563 t_TAIL_11,
72564 t_TAIL_12,
72565 t_TAIL_13,
72566 t_TAIL_14,
72567 t_TAIL_15,
72568 t_TAIL_16,
72569 t_TAIL_17,
72570 t_TAIL_18>::value,
72571 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
72572 t_TAIL_01,
72573 t_TAIL_02,
72574 t_TAIL_03,
72575 t_TAIL_04,
72576 t_TAIL_05,
72577 t_TAIL_06,
72578 t_TAIL_07,
72579 t_TAIL_08,
72580 t_TAIL_09,
72581 t_TAIL_10,
72582 t_TAIL_11,
72583 t_TAIL_12,
72584 t_TAIL_13,
72585 t_TAIL_14,
72586 t_TAIL_15,
72587 t_TAIL_16,
72588 t_TAIL_17,
72589 t_TAIL_18>::value,
72590 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
72591 t_TAIL_01,
72592 t_TAIL_02,
72593 t_TAIL_03,
72594 t_TAIL_04,
72595 t_TAIL_05,
72596 t_TAIL_06,
72597 t_TAIL_07,
72598 t_TAIL_08,
72599 t_TAIL_09,
72600 t_TAIL_10,
72601 t_TAIL_11,
72602 t_TAIL_12,
72603 t_TAIL_13,
72604 t_TAIL_14,
72605 t_TAIL_15,
72606 t_TAIL_16,
72607 t_TAIL_17,
72608 t_TAIL_18>::value &&
72609 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
72610 t_TAIL_01,
72611 t_TAIL_02,
72612 t_TAIL_03,
72613 t_TAIL_04,
72614 t_TAIL_05,
72615 t_TAIL_06,
72616 t_TAIL_07,
72617 t_TAIL_08,
72618 t_TAIL_09,
72619 t_TAIL_10,
72620 t_TAIL_11,
72621 t_TAIL_12,
72622 t_TAIL_13,
72623 t_TAIL_14,
72624 t_TAIL_15,
72625 t_TAIL_16,
72626 t_TAIL_17,
72627 t_TAIL_18>::value,
72628 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
72629 t_TAIL_01,
72630 t_TAIL_02,
72631 t_TAIL_03,
72632 t_TAIL_04,
72633 t_TAIL_05,
72634 t_TAIL_06,
72635 t_TAIL_07,
72636 t_TAIL_08,
72637 t_TAIL_09,
72638 t_TAIL_10,
72639 t_TAIL_11,
72640 t_TAIL_12,
72641 t_TAIL_13,
72642 t_TAIL_14,
72643 t_TAIL_15,
72644 t_TAIL_16,
72645 t_TAIL_17,
72646 t_TAIL_18>::value &&
72647 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
72648 t_TAIL_01,
72649 t_TAIL_02,
72650 t_TAIL_03,
72651 t_TAIL_04,
72652 t_TAIL_05,
72653 t_TAIL_06,
72654 t_TAIL_07,
72655 t_TAIL_08,
72656 t_TAIL_09,
72657 t_TAIL_10,
72658 t_TAIL_11,
72659 t_TAIL_12,
72660 t_TAIL_13,
72661 t_TAIL_14,
72662 t_TAIL_15,
72663 t_TAIL_16,
72664 t_TAIL_17,
72665 t_TAIL_18>::value>
72666#endif
72667{
72668 private:
72669 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
72670 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
72671 t_TAIL_02,
72672 t_TAIL_03,
72673 t_TAIL_04,
72674 t_TAIL_05,
72675 t_TAIL_06,
72676 t_TAIL_07,
72677 t_TAIL_08,
72678 t_TAIL_09,
72679 t_TAIL_10,
72680 t_TAIL_11,
72681 t_TAIL_12,
72682 t_TAIL_13,
72683 t_TAIL_14,
72684 t_TAIL_15,
72685 t_TAIL_16,
72686 t_TAIL_17,
72687 t_TAIL_18> Variant_Base;
72688 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL_01,
72689 t_TAIL_02,
72690 t_TAIL_03,
72691 t_TAIL_04,
72692 t_TAIL_05,
72693 t_TAIL_06,
72694 t_TAIL_07,
72695 t_TAIL_08,
72696 t_TAIL_09,
72697 t_TAIL_10,
72698 t_TAIL_11,
72699 t_TAIL_12,
72700 t_TAIL_13,
72701 t_TAIL_14,
72702 t_TAIL_15,
72703 t_TAIL_16,
72704 t_TAIL_17,
72705 t_TAIL_18>
72706 Variant_Union;
72707
72708 friend struct BloombergLP::bslstl::Variant_ImpUtil;
72709
72710 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL_01,
72711 t_TAIL_02,
72712 t_TAIL_03,
72713 t_TAIL_04,
72714 t_TAIL_05,
72715 t_TAIL_06,
72716 t_TAIL_07,
72717 t_TAIL_08,
72718 t_TAIL_09,
72719 t_TAIL_10,
72720 t_TAIL_11,
72721 t_TAIL_12,
72722 t_TAIL_13,
72723 t_TAIL_14,
72724 t_TAIL_15,
72725 t_TAIL_16,
72726 t_TAIL_17,
72727 t_TAIL_18>;
72728
72729 public:
72731 variant,
72732 BloombergLP::bslma::UsesBslmaAllocator,
72733 (BloombergLP::bslstl::
72734 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
72735 t_TAIL_02,
72736 t_TAIL_03,
72737 t_TAIL_04,
72738 t_TAIL_05,
72739 t_TAIL_06,
72740 t_TAIL_07,
72741 t_TAIL_08,
72742 t_TAIL_09,
72743 t_TAIL_10,
72744 t_TAIL_11,
72745 t_TAIL_12,
72746 t_TAIL_13,
72747 t_TAIL_14,
72748 t_TAIL_15,
72749 t_TAIL_16,
72750 t_TAIL_17,
72751 t_TAIL_18>::value));
72753 variant,
72754 BloombergLP::bslmf::UsesAllocatorArgT,
72755 (BloombergLP::bslstl::
72756 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
72757 t_TAIL_02,
72758 t_TAIL_03,
72759 t_TAIL_04,
72760 t_TAIL_05,
72761 t_TAIL_06,
72762 t_TAIL_07,
72763 t_TAIL_08,
72764 t_TAIL_09,
72765 t_TAIL_10,
72766 t_TAIL_11,
72767 t_TAIL_12,
72768 t_TAIL_13,
72769 t_TAIL_14,
72770 t_TAIL_15,
72771 t_TAIL_16,
72772 t_TAIL_17,
72773 t_TAIL_18>::value));
72775 variant,
72776 BloombergLP::bslmf::IsBitwiseMoveable,
72777 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
72778 t_TAIL_01,
72779 t_TAIL_02,
72780 t_TAIL_03,
72781 t_TAIL_04,
72782 t_TAIL_05,
72783 t_TAIL_06,
72784 t_TAIL_07,
72785 t_TAIL_08,
72786 t_TAIL_09,
72787 t_TAIL_10,
72788 t_TAIL_11,
72789 t_TAIL_12,
72790 t_TAIL_13,
72791 t_TAIL_14,
72792 t_TAIL_15,
72793 t_TAIL_16,
72794 t_TAIL_17,
72795 t_TAIL_18>::value));
72796
72797
72798 typedef typename Variant_Base::allocator_type allocator_type;
72799
72800
72801#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
72802 template <class t_FIRST_ALT = t_HEAD,
72803 class = typename bsl::enable_if_t<
72804 std::is_default_constructible<t_FIRST_ALT>::value> >
72805 variant()
72806 : Variant_Base()
72807 {
72808 }
72809
72810 variant(const variant& original) = default;
72811
72812 variant(variant&& original) = default;
72813
72814#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
72815 template <class t_STD_VARIANT>
72816 explicit variant(
72817 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
72819 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
72820 original.index())
72821 {
72822 if (!valueless_by_exception()) {
72823 BloombergLP::bslstl::Variant_ImpUtil::
72824 ConstructFromStdVisitor<variant, decltype(original)>
72825 visitor(*this, original);
72826 BSLSTL_VARIANT_VISITID(void, visitor, *this);
72827 }
72828 }
72829#endif
72830
72831 template <class t_TYPE>
72832 variant(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) t,
72834
72835 template <class t_TYPE,
72836 class t_ARGS_01,
72837 class t_ARGS_02,
72838 class t_ARGS_03,
72839 class t_ARGS_04,
72840 class t_ARGS_05,
72841 class t_ARGS_06,
72842 class t_ARGS_07,
72843 class t_ARGS_08,
72844 class t_ARGS_09,
72845 class t_ARGS_10,
72846 class t_ARGS_11,
72847 class t_ARGS_12,
72848 class t_ARGS_13,
72849 class t_ARGS_14,
72850 class t_ARGS_15,
72851 class t_ARGS_16,
72852 class t_ARGS_17,
72853 class t_ARGS_18,
72854 class = typename bsl::enable_if_t<
72856 std::is_constructible<t_TYPE, t_ARGS_01,
72857 t_ARGS_02,
72858 t_ARGS_03,
72859 t_ARGS_04,
72860 t_ARGS_05,
72861 t_ARGS_06,
72862 t_ARGS_07,
72863 t_ARGS_08,
72864 t_ARGS_09,
72865 t_ARGS_10,
72866 t_ARGS_11,
72867 t_ARGS_12,
72868 t_ARGS_13,
72869 t_ARGS_14,
72870 t_ARGS_15,
72871 t_ARGS_16,
72872 t_ARGS_17,
72873 t_ARGS_18>::value> >
72874 explicit variant(bsl::in_place_type_t<t_TYPE>,
72875 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
72876 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
72877 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
72878 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
72879 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
72880 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
72881 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
72882 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
72883 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
72884 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
72885 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
72886 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
72887 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
72888 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
72889 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
72890 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
72891 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
72892 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
72893 : Variant_Base(
72894 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
72895 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
72896 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
72897 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
72898 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
72899 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
72900 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
72901 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
72902 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
72903 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
72904 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
72905 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
72906 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
72907 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
72908 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
72909 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
72910 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
72911 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
72912 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18))
72913 {
72914 }
72915
72916 template <class t_TYPE,
72917 class INIT_LIST_TYPE,
72918 class t_ARGS_01,
72919 class t_ARGS_02,
72920 class t_ARGS_03,
72921 class t_ARGS_04,
72922 class t_ARGS_05,
72923 class t_ARGS_06,
72924 class t_ARGS_07,
72925 class t_ARGS_08,
72926 class t_ARGS_09,
72927 class t_ARGS_10,
72928 class t_ARGS_11,
72929 class t_ARGS_12,
72930 class t_ARGS_13,
72931 class t_ARGS_14,
72932 class t_ARGS_15,
72933 class t_ARGS_16,
72934 class t_ARGS_17,
72935 class t_ARGS_18,
72936 class = typename bsl::enable_if_t<
72938 std::is_constructible<t_TYPE,
72939 std::initializer_list<INIT_LIST_TYPE>&,
72940 t_ARGS_01,
72941 t_ARGS_02,
72942 t_ARGS_03,
72943 t_ARGS_04,
72944 t_ARGS_05,
72945 t_ARGS_06,
72946 t_ARGS_07,
72947 t_ARGS_08,
72948 t_ARGS_09,
72949 t_ARGS_10,
72950 t_ARGS_11,
72951 t_ARGS_12,
72952 t_ARGS_13,
72953 t_ARGS_14,
72954 t_ARGS_15,
72955 t_ARGS_16,
72956 t_ARGS_17,
72957 t_ARGS_18>::value> >
72958 explicit variant(bsl::in_place_type_t<t_TYPE>,
72959 std::initializer_list<INIT_LIST_TYPE> il,
72960 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
72961 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
72962 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
72963 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
72964 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
72965 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
72966 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
72967 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
72968 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
72969 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
72970 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
72971 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
72972 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
72973 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
72974 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
72975 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
72976 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
72977 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
72978 : Variant_Base(
72979 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
72980 il,
72981 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
72982 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
72983 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
72984 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
72985 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
72986 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
72987 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
72988 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
72989 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
72990 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
72991 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
72992 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
72993 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
72994 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
72995 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
72996 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
72997 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
72998 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18))
72999 {
73000 }
73001
73002 template <size_t t_INDEX,
73003 class t_ARGS_01,
73004 class t_ARGS_02,
73005 class t_ARGS_03,
73006 class t_ARGS_04,
73007 class t_ARGS_05,
73008 class t_ARGS_06,
73009 class t_ARGS_07,
73010 class t_ARGS_08,
73011 class t_ARGS_09,
73012 class t_ARGS_10,
73013 class t_ARGS_11,
73014 class t_ARGS_12,
73015 class t_ARGS_13,
73016 class t_ARGS_14,
73017 class t_ARGS_15,
73018 class t_ARGS_16,
73019 class t_ARGS_17,
73020 class t_ARGS_18,
73021 class = typename bsl::enable_if_t<
73022 (t_INDEX < 1 + 18u) &&
73023 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
73024 t_ARGS_01,
73025 t_ARGS_02,
73026 t_ARGS_03,
73027 t_ARGS_04,
73028 t_ARGS_05,
73029 t_ARGS_06,
73030 t_ARGS_07,
73031 t_ARGS_08,
73032 t_ARGS_09,
73033 t_ARGS_10,
73034 t_ARGS_11,
73035 t_ARGS_12,
73036 t_ARGS_13,
73037 t_ARGS_14,
73038 t_ARGS_15,
73039 t_ARGS_16,
73040 t_ARGS_17,
73041 t_ARGS_18>::value> >
73042 explicit variant(bsl::in_place_index_t<t_INDEX>,
73043 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
73044 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
73045 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
73046 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
73047 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
73048 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
73049 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
73050 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
73051 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
73052 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
73053 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
73054 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
73055 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
73056 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
73057 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
73058 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
73059 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
73060 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
73061 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
73062 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
73063 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
73064 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
73065 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
73066 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
73067 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
73068 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
73069 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
73070 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
73071 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
73072 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
73073 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
73074 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
73075 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
73076 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
73077 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
73078 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
73079 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18))
73080 {
73081 }
73082
73083 template <size_t t_INDEX,
73084 class INIT_LIST_TYPE,
73085 class t_ARGS_01,
73086 class t_ARGS_02,
73087 class t_ARGS_03,
73088 class t_ARGS_04,
73089 class t_ARGS_05,
73090 class t_ARGS_06,
73091 class t_ARGS_07,
73092 class t_ARGS_08,
73093 class t_ARGS_09,
73094 class t_ARGS_10,
73095 class t_ARGS_11,
73096 class t_ARGS_12,
73097 class t_ARGS_13,
73098 class t_ARGS_14,
73099 class t_ARGS_15,
73100 class t_ARGS_16,
73101 class t_ARGS_17,
73102 class t_ARGS_18,
73103 class = typename bsl::enable_if_t<
73104 (t_INDEX < 1 + 18u) &&
73105 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
73106 std::initializer_list<INIT_LIST_TYPE>&,
73107 t_ARGS_01,
73108 t_ARGS_02,
73109 t_ARGS_03,
73110 t_ARGS_04,
73111 t_ARGS_05,
73112 t_ARGS_06,
73113 t_ARGS_07,
73114 t_ARGS_08,
73115 t_ARGS_09,
73116 t_ARGS_10,
73117 t_ARGS_11,
73118 t_ARGS_12,
73119 t_ARGS_13,
73120 t_ARGS_14,
73121 t_ARGS_15,
73122 t_ARGS_16,
73123 t_ARGS_17,
73124 t_ARGS_18>::value> >
73125 explicit variant(bsl::in_place_index_t<t_INDEX>,
73126 std::initializer_list<INIT_LIST_TYPE> il,
73127 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
73128 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
73129 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
73130 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
73131 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
73132 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
73133 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
73134 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
73135 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
73136 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
73137 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
73138 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
73139 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
73140 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
73141 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
73142 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
73143 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
73144 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
73145 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
73146 il,
73147 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
73148 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
73149 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
73150 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
73151 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
73152 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
73153 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
73154 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
73155 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
73156 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
73157 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
73158 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
73159 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
73160 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
73161 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
73162 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
73163 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
73164 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18))
73165 {
73166 }
73167
73168 template <class FIRST = t_HEAD,
73169 class = typename bsl::enable_if_t<
73170 std::is_default_constructible<FIRST>::value> >
73171 variant(bsl::allocator_arg_t, allocator_type allocator)
73172 : Variant_Base(bsl::allocator_arg_t(), allocator)
73173 {
73174 }
73175
73176 template <
73177 class FIRST = t_HEAD,
73178 class = typename bsl::enable_if_t<
73179 BloombergLP::bslstl::
73180 Variant_IsCopyConstructibleAll<FIRST, t_TAIL_01,
73181 t_TAIL_02,
73182 t_TAIL_03,
73183 t_TAIL_04,
73184 t_TAIL_05,
73185 t_TAIL_06,
73186 t_TAIL_07,
73187 t_TAIL_08,
73188 t_TAIL_09,
73189 t_TAIL_10,
73190 t_TAIL_11,
73191 t_TAIL_12,
73192 t_TAIL_13,
73193 t_TAIL_14,
73194 t_TAIL_15,
73195 t_TAIL_16,
73196 t_TAIL_17,
73197 t_TAIL_18>::value> >
73198 variant(bsl::allocator_arg_t,
73199 allocator_type allocator,
73200 const variant& original)
73201 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
73202 {
73203 }
73204 template <
73205 class FIRST = t_HEAD,
73206 class = typename bsl::enable_if_t<
73207 BloombergLP::bslstl::
73208 Variant_IsMoveConstructibleAll<FIRST, t_TAIL_01,
73209 t_TAIL_02,
73210 t_TAIL_03,
73211 t_TAIL_04,
73212 t_TAIL_05,
73213 t_TAIL_06,
73214 t_TAIL_07,
73215 t_TAIL_08,
73216 t_TAIL_09,
73217 t_TAIL_10,
73218 t_TAIL_11,
73219 t_TAIL_12,
73220 t_TAIL_13,
73221 t_TAIL_14,
73222 t_TAIL_15,
73223 t_TAIL_16,
73224 t_TAIL_17,
73225 t_TAIL_18>::value> >
73226 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
73227 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
73228 {
73229 }
73230
73231#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
73232 template <class t_STD_VARIANT>
73233 explicit variant(
73234 bsl::allocator_arg_t,
73235 allocator_type allocator,
73236 BSLS_COMPILERFEATURES_FORWARD_REF(t_STD_VARIANT) original,
73238 : Variant_Base(bsl::allocator_arg_t(),
73239 allocator,
73240 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
73241 original.index())
73242 {
73243 if (!valueless_by_exception()) {
73244 BloombergLP::bslstl::Variant_ImpUtil::
73245 ConstructFromStdVisitor<variant, decltype(original)>
73246 visitor(*this, original);
73247 BSLSTL_VARIANT_VISITID(void, visitor, *this);
73248 }
73249 }
73250#endif
73251
73252 template <class t_TYPE>
73253 variant(
73254 bsl::allocator_arg_t,
73255 allocator_type allocator,
73258
73259 template <class t_TYPE,
73260 class t_ARGS_01,
73261 class t_ARGS_02,
73262 class t_ARGS_03,
73263 class t_ARGS_04,
73264 class t_ARGS_05,
73265 class t_ARGS_06,
73266 class t_ARGS_07,
73267 class t_ARGS_08,
73268 class t_ARGS_09,
73269 class t_ARGS_10,
73270 class t_ARGS_11,
73271 class t_ARGS_12,
73272 class t_ARGS_13,
73273 class t_ARGS_14,
73274 class t_ARGS_15,
73275 class t_ARGS_16,
73276 class t_ARGS_17,
73277 class t_ARGS_18,
73278 class = typename bsl::enable_if_t<
73280 std::is_constructible<t_TYPE, t_ARGS_01,
73281 t_ARGS_02,
73282 t_ARGS_03,
73283 t_ARGS_04,
73284 t_ARGS_05,
73285 t_ARGS_06,
73286 t_ARGS_07,
73287 t_ARGS_08,
73288 t_ARGS_09,
73289 t_ARGS_10,
73290 t_ARGS_11,
73291 t_ARGS_12,
73292 t_ARGS_13,
73293 t_ARGS_14,
73294 t_ARGS_15,
73295 t_ARGS_16,
73296 t_ARGS_17,
73297 t_ARGS_18>::value> >
73298 explicit variant(bsl::allocator_arg_t,
73299 allocator_type allocator,
73301 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
73302 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
73303 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
73304 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
73305 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
73306 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
73307 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
73308 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
73309 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
73310 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
73311 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
73312 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
73313 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
73314 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
73315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
73316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
73317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
73318 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
73319 : Variant_Base(
73320 bsl::allocator_arg_t{}
73321,
73322 allocator,
73323 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
73324 std::forward<t_ARGS_01>(args_01),
73325 std::forward<t_ARGS_02>(args_02),
73326 std::forward<t_ARGS_03>(args_03),
73327 std::forward<t_ARGS_04>(args_04),
73328 std::forward<t_ARGS_05>(args_05),
73329 std::forward<t_ARGS_06>(args_06),
73330 std::forward<t_ARGS_07>(args_07),
73331 std::forward<t_ARGS_08>(args_08),
73332 std::forward<t_ARGS_09>(args_09),
73333 std::forward<t_ARGS_10>(args_10),
73334 std::forward<t_ARGS_11>(args_11),
73335 std::forward<t_ARGS_12>(args_12),
73336 std::forward<t_ARGS_13>(args_13),
73337 std::forward<t_ARGS_14>(args_14),
73338 std::forward<t_ARGS_15>(args_15),
73339 std::forward<t_ARGS_16>(args_16),
73340 std::forward<t_ARGS_17>(args_17),
73341 std::forward<t_ARGS_18>(args_18))
73342 {
73343 }
73344
73345 template <class t_TYPE,
73346 class INIT_LIST_TYPE,
73347 class t_ARGS_01,
73348 class t_ARGS_02,
73349 class t_ARGS_03,
73350 class t_ARGS_04,
73351 class t_ARGS_05,
73352 class t_ARGS_06,
73353 class t_ARGS_07,
73354 class t_ARGS_08,
73355 class t_ARGS_09,
73356 class t_ARGS_10,
73357 class t_ARGS_11,
73358 class t_ARGS_12,
73359 class t_ARGS_13,
73360 class t_ARGS_14,
73361 class t_ARGS_15,
73362 class t_ARGS_16,
73363 class t_ARGS_17,
73364 class t_ARGS_18,
73365 class = typename bsl::enable_if_t<
73367 std::is_constructible<t_TYPE,
73368 std::initializer_list<INIT_LIST_TYPE>&,
73369 t_ARGS_01,
73370 t_ARGS_02,
73371 t_ARGS_03,
73372 t_ARGS_04,
73373 t_ARGS_05,
73374 t_ARGS_06,
73375 t_ARGS_07,
73376 t_ARGS_08,
73377 t_ARGS_09,
73378 t_ARGS_10,
73379 t_ARGS_11,
73380 t_ARGS_12,
73381 t_ARGS_13,
73382 t_ARGS_14,
73383 t_ARGS_15,
73384 t_ARGS_16,
73385 t_ARGS_17,
73386 t_ARGS_18>::value> >
73387 explicit variant(bsl::allocator_arg_t,
73388 allocator_type allocator,
73390 std::initializer_list<INIT_LIST_TYPE> il,
73391 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
73392 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
73393 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
73394 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
73395 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
73396 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
73397 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
73398 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
73399 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
73400 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
73401 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
73402 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
73403 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
73404 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
73405 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
73406 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
73407 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
73408 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
73409 : Variant_Base(
73410 bsl::allocator_arg_t{}
73411,
73412 allocator,
73413 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
73414 il,
73415 std::forward<t_ARGS_01>(args_01),
73416 std::forward<t_ARGS_02>(args_02),
73417 std::forward<t_ARGS_03>(args_03),
73418 std::forward<t_ARGS_04>(args_04),
73419 std::forward<t_ARGS_05>(args_05),
73420 std::forward<t_ARGS_06>(args_06),
73421 std::forward<t_ARGS_07>(args_07),
73422 std::forward<t_ARGS_08>(args_08),
73423 std::forward<t_ARGS_09>(args_09),
73424 std::forward<t_ARGS_10>(args_10),
73425 std::forward<t_ARGS_11>(args_11),
73426 std::forward<t_ARGS_12>(args_12),
73427 std::forward<t_ARGS_13>(args_13),
73428 std::forward<t_ARGS_14>(args_14),
73429 std::forward<t_ARGS_15>(args_15),
73430 std::forward<t_ARGS_16>(args_16),
73431 std::forward<t_ARGS_17>(args_17),
73432 std::forward<t_ARGS_18>(args_18))
73433 {
73434 }
73435
73436 template <size_t t_INDEX,
73437 class t_ARGS_01,
73438 class t_ARGS_02,
73439 class t_ARGS_03,
73440 class t_ARGS_04,
73441 class t_ARGS_05,
73442 class t_ARGS_06,
73443 class t_ARGS_07,
73444 class t_ARGS_08,
73445 class t_ARGS_09,
73446 class t_ARGS_10,
73447 class t_ARGS_11,
73448 class t_ARGS_12,
73449 class t_ARGS_13,
73450 class t_ARGS_14,
73451 class t_ARGS_15,
73452 class t_ARGS_16,
73453 class t_ARGS_17,
73454 class t_ARGS_18,
73455 class = typename bsl::enable_if_t<
73456 (t_INDEX < 1 + 18u) &&
73457 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
73458 t_ARGS_01,
73459 t_ARGS_02,
73460 t_ARGS_03,
73461 t_ARGS_04,
73462 t_ARGS_05,
73463 t_ARGS_06,
73464 t_ARGS_07,
73465 t_ARGS_08,
73466 t_ARGS_09,
73467 t_ARGS_10,
73468 t_ARGS_11,
73469 t_ARGS_12,
73470 t_ARGS_13,
73471 t_ARGS_14,
73472 t_ARGS_15,
73473 t_ARGS_16,
73474 t_ARGS_17,
73475 t_ARGS_18>::value> >
73476 explicit variant(bsl::allocator_arg_t,
73477 allocator_type allocator,
73479 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
73480 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
73481 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
73482 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
73483 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
73484 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
73485 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
73486 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
73487 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
73488 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
73489 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
73490 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
73491 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
73492 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
73493 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
73494 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
73495 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
73496 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
73497 : Variant_Base(bsl::allocator_arg_t{}
73498,
73499 allocator,
73500 bsl::in_place_index_t<t_INDEX>(),
73501 std::forward<t_ARGS_01>(args_01),
73502 std::forward<t_ARGS_02>(args_02),
73503 std::forward<t_ARGS_03>(args_03),
73504 std::forward<t_ARGS_04>(args_04),
73505 std::forward<t_ARGS_05>(args_05),
73506 std::forward<t_ARGS_06>(args_06),
73507 std::forward<t_ARGS_07>(args_07),
73508 std::forward<t_ARGS_08>(args_08),
73509 std::forward<t_ARGS_09>(args_09),
73510 std::forward<t_ARGS_10>(args_10),
73511 std::forward<t_ARGS_11>(args_11),
73512 std::forward<t_ARGS_12>(args_12),
73513 std::forward<t_ARGS_13>(args_13),
73514 std::forward<t_ARGS_14>(args_14),
73515 std::forward<t_ARGS_15>(args_15),
73516 std::forward<t_ARGS_16>(args_16),
73517 std::forward<t_ARGS_17>(args_17),
73518 std::forward<t_ARGS_18>(args_18))
73519 {
73520 }
73521
73522 template <size_t t_INDEX,
73523 class INIT_LIST_TYPE,
73524 class t_ARGS_01,
73525 class t_ARGS_02,
73526 class t_ARGS_03,
73527 class t_ARGS_04,
73528 class t_ARGS_05,
73529 class t_ARGS_06,
73530 class t_ARGS_07,
73531 class t_ARGS_08,
73532 class t_ARGS_09,
73533 class t_ARGS_10,
73534 class t_ARGS_11,
73535 class t_ARGS_12,
73536 class t_ARGS_13,
73537 class t_ARGS_14,
73538 class t_ARGS_15,
73539 class t_ARGS_16,
73540 class t_ARGS_17,
73541 class t_ARGS_18,
73542 class = typename bsl::enable_if_t<
73543 (t_INDEX < 1 + 18u) &&
73544 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
73545 std::initializer_list<INIT_LIST_TYPE>&,
73546 t_ARGS_01,
73547 t_ARGS_02,
73548 t_ARGS_03,
73549 t_ARGS_04,
73550 t_ARGS_05,
73551 t_ARGS_06,
73552 t_ARGS_07,
73553 t_ARGS_08,
73554 t_ARGS_09,
73555 t_ARGS_10,
73556 t_ARGS_11,
73557 t_ARGS_12,
73558 t_ARGS_13,
73559 t_ARGS_14,
73560 t_ARGS_15,
73561 t_ARGS_16,
73562 t_ARGS_17,
73563 t_ARGS_18>::value> >
73564 explicit variant(bsl::allocator_arg_t,
73565 allocator_type allocator,
73567 std::initializer_list<INIT_LIST_TYPE> il,
73568 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
73569 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
73570 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
73571 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
73572 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
73573 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
73574 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
73575 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
73576 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
73577 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
73578 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
73579 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
73580 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
73581 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
73582 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
73583 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
73584 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
73585 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
73586 : Variant_Base(bsl::allocator_arg_t{}
73587,
73588 allocator,
73589 bsl::in_place_index_t<t_INDEX>(),
73590 il,
73591 std::forward<t_ARGS_01>(args_01),
73592 std::forward<t_ARGS_02>(args_02),
73593 std::forward<t_ARGS_03>(args_03),
73594 std::forward<t_ARGS_04>(args_04),
73595 std::forward<t_ARGS_05>(args_05),
73596 std::forward<t_ARGS_06>(args_06),
73597 std::forward<t_ARGS_07>(args_07),
73598 std::forward<t_ARGS_08>(args_08),
73599 std::forward<t_ARGS_09>(args_09),
73600 std::forward<t_ARGS_10>(args_10),
73601 std::forward<t_ARGS_11>(args_11),
73602 std::forward<t_ARGS_12>(args_12),
73603 std::forward<t_ARGS_13>(args_13),
73604 std::forward<t_ARGS_14>(args_14),
73605 std::forward<t_ARGS_15>(args_15),
73606 std::forward<t_ARGS_16>(args_16),
73607 std::forward<t_ARGS_17>(args_17),
73608 std::forward<t_ARGS_18>(args_18))
73609 {
73610 }
73611
73612#else
73613
73614 variant();
73615
73616 variant(const variant& original);
73617
73618 variant(BloombergLP::bslmf::MovableRef<variant> original);
73619
73620 template <class t_TYPE>
73621 variant(const t_TYPE& value,
73623
73624 template <class t_TYPE>
73625 explicit variant(bsl::in_place_type_t<t_TYPE>,
73627
73628 template <class t_TYPE, class t_ARG_01>
73629 explicit variant(bsl::in_place_type_t<t_TYPE>,
73630 const t_ARG_01& arg_01,
73632
73633 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
73634 explicit variant(bsl::in_place_type_t<t_TYPE>,
73635 const t_ARG_01& arg_01,
73636 const t_ARG_02& arg_02,
73638
73639 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
73640 explicit variant(bsl::in_place_type_t<t_TYPE>,
73641 const t_ARG_01& arg_01,
73642 const t_ARG_02& arg_02,
73643 const t_ARG_03& arg_03,
73645
73646 template <class t_TYPE,
73647 class t_ARG_01,
73648 class t_ARG_02,
73649 class t_ARG_03,
73650 class t_ARG_04>
73651 explicit variant(bsl::in_place_type_t<t_TYPE>,
73652 const t_ARG_01& arg_01,
73653 const t_ARG_02& arg_02,
73654 const t_ARG_03& arg_03,
73655 const t_ARG_04& arg_04,
73657
73658 template <class t_TYPE,
73659 class t_ARG_01,
73660 class t_ARG_02,
73661 class t_ARG_03,
73662 class t_ARG_04,
73663 class t_ARG_05>
73664 explicit variant(bsl::in_place_type_t<t_TYPE>,
73665 const t_ARG_01& arg_01,
73666 const t_ARG_02& arg_02,
73667 const t_ARG_03& arg_03,
73668 const t_ARG_04& arg_04,
73669 const t_ARG_05& arg_05,
73671
73672 template <class t_TYPE,
73673 class t_ARG_01,
73674 class t_ARG_02,
73675 class t_ARG_03,
73676 class t_ARG_04,
73677 class t_ARG_05,
73678 class t_ARG_06>
73679 explicit variant(bsl::in_place_type_t<t_TYPE>,
73680 const t_ARG_01& arg_01,
73681 const t_ARG_02& arg_02,
73682 const t_ARG_03& arg_03,
73683 const t_ARG_04& arg_04,
73684 const t_ARG_05& arg_05,
73685 const t_ARG_06& arg_06,
73687
73688 template <class t_TYPE,
73689 class t_ARG_01,
73690 class t_ARG_02,
73691 class t_ARG_03,
73692 class t_ARG_04,
73693 class t_ARG_05,
73694 class t_ARG_06,
73695 class t_ARG_07>
73696 explicit variant(bsl::in_place_type_t<t_TYPE>,
73697 const t_ARG_01& arg_01,
73698 const t_ARG_02& arg_02,
73699 const t_ARG_03& arg_03,
73700 const t_ARG_04& arg_04,
73701 const t_ARG_05& arg_05,
73702 const t_ARG_06& arg_06,
73703 const t_ARG_07& arg_07,
73705
73706 template <class t_TYPE,
73707 class t_ARG_01,
73708 class t_ARG_02,
73709 class t_ARG_03,
73710 class t_ARG_04,
73711 class t_ARG_05,
73712 class t_ARG_06,
73713 class t_ARG_07,
73714 class t_ARG_08>
73715 explicit variant(bsl::in_place_type_t<t_TYPE>,
73716 const t_ARG_01& arg_01,
73717 const t_ARG_02& arg_02,
73718 const t_ARG_03& arg_03,
73719 const t_ARG_04& arg_04,
73720 const t_ARG_05& arg_05,
73721 const t_ARG_06& arg_06,
73722 const t_ARG_07& arg_07,
73723 const t_ARG_08& arg_08,
73725
73726 template <class t_TYPE,
73727 class t_ARG_01,
73728 class t_ARG_02,
73729 class t_ARG_03,
73730 class t_ARG_04,
73731 class t_ARG_05,
73732 class t_ARG_06,
73733 class t_ARG_07,
73734 class t_ARG_08,
73735 class t_ARG_09>
73736 explicit variant(bsl::in_place_type_t<t_TYPE>,
73737 const t_ARG_01& arg_01,
73738 const t_ARG_02& arg_02,
73739 const t_ARG_03& arg_03,
73740 const t_ARG_04& arg_04,
73741 const t_ARG_05& arg_05,
73742 const t_ARG_06& arg_06,
73743 const t_ARG_07& arg_07,
73744 const t_ARG_08& arg_08,
73745 const t_ARG_09& arg_09,
73747
73748 template <class t_TYPE,
73749 class t_ARG_01,
73750 class t_ARG_02,
73751 class t_ARG_03,
73752 class t_ARG_04,
73753 class t_ARG_05,
73754 class t_ARG_06,
73755 class t_ARG_07,
73756 class t_ARG_08,
73757 class t_ARG_09,
73758 class t_ARG_10>
73759 explicit variant(bsl::in_place_type_t<t_TYPE>,
73760 const t_ARG_01& arg_01,
73761 const t_ARG_02& arg_02,
73762 const t_ARG_03& arg_03,
73763 const t_ARG_04& arg_04,
73764 const t_ARG_05& arg_05,
73765 const t_ARG_06& arg_06,
73766 const t_ARG_07& arg_07,
73767 const t_ARG_08& arg_08,
73768 const t_ARG_09& arg_09,
73769 const t_ARG_10& arg_10,
73771
73772 template <size_t t_INDEX>
73773 explicit variant(bsl::in_place_index_t<t_INDEX>);
73774
73775 template <size_t t_INDEX, class t_ARG_01>
73776 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
73777
73778 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
73779 explicit variant(bsl::in_place_index_t<t_INDEX>,
73780 const t_ARG_01& arg_01,
73781 const t_ARG_02& arg_02);
73782
73783 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
73784 explicit variant(bsl::in_place_index_t<t_INDEX>,
73785 const t_ARG_01& arg_01,
73786 const t_ARG_02& arg_02,
73787 const t_ARG_03& arg_03);
73788
73789 template <size_t t_INDEX,
73790 class t_ARG_01,
73791 class t_ARG_02,
73792 class t_ARG_03,
73793 class t_ARG_04>
73794 explicit variant(bsl::in_place_index_t<t_INDEX>,
73795 const t_ARG_01& arg_01,
73796 const t_ARG_02& arg_02,
73797 const t_ARG_03& arg_03,
73798 const t_ARG_04& arg_04);
73799
73800 template <size_t t_INDEX,
73801 class t_ARG_01,
73802 class t_ARG_02,
73803 class t_ARG_03,
73804 class t_ARG_04,
73805 class t_ARG_05>
73806 explicit variant(bsl::in_place_index_t<t_INDEX>,
73807 const t_ARG_01& arg_01,
73808 const t_ARG_02& arg_02,
73809 const t_ARG_03& arg_03,
73810 const t_ARG_04& arg_04,
73811 const t_ARG_05& arg_05);
73812
73813 template <size_t t_INDEX,
73814 class t_ARG_01,
73815 class t_ARG_02,
73816 class t_ARG_03,
73817 class t_ARG_04,
73818 class t_ARG_05,
73819 class t_ARG_06>
73820 explicit variant(bsl::in_place_index_t<t_INDEX>,
73821 const t_ARG_01& arg_01,
73822 const t_ARG_02& arg_02,
73823 const t_ARG_03& arg_03,
73824 const t_ARG_04& arg_04,
73825 const t_ARG_05& arg_05,
73826 const t_ARG_06& arg_06);
73827
73828 template <size_t t_INDEX,
73829 class t_ARG_01,
73830 class t_ARG_02,
73831 class t_ARG_03,
73832 class t_ARG_04,
73833 class t_ARG_05,
73834 class t_ARG_06,
73835 class t_ARG_07>
73836 explicit variant(bsl::in_place_index_t<t_INDEX>,
73837 const t_ARG_01& arg_01,
73838 const t_ARG_02& arg_02,
73839 const t_ARG_03& arg_03,
73840 const t_ARG_04& arg_04,
73841 const t_ARG_05& arg_05,
73842 const t_ARG_06& arg_06,
73843 const t_ARG_07& arg_07);
73844
73845 template <size_t t_INDEX,
73846 class t_ARG_01,
73847 class t_ARG_02,
73848 class t_ARG_03,
73849 class t_ARG_04,
73850 class t_ARG_05,
73851 class t_ARG_06,
73852 class t_ARG_07,
73853 class t_ARG_08>
73854 explicit variant(bsl::in_place_index_t<t_INDEX>,
73855 const t_ARG_01& arg_01,
73856 const t_ARG_02& arg_02,
73857 const t_ARG_03& arg_03,
73858 const t_ARG_04& arg_04,
73859 const t_ARG_05& arg_05,
73860 const t_ARG_06& arg_06,
73861 const t_ARG_07& arg_07,
73862 const t_ARG_08& arg_08);
73863
73864 template <size_t t_INDEX,
73865 class t_ARG_01,
73866 class t_ARG_02,
73867 class t_ARG_03,
73868 class t_ARG_04,
73869 class t_ARG_05,
73870 class t_ARG_06,
73871 class t_ARG_07,
73872 class t_ARG_08,
73873 class t_ARG_09>
73874 explicit variant(bsl::in_place_index_t<t_INDEX>,
73875 const t_ARG_01& arg_01,
73876 const t_ARG_02& arg_02,
73877 const t_ARG_03& arg_03,
73878 const t_ARG_04& arg_04,
73879 const t_ARG_05& arg_05,
73880 const t_ARG_06& arg_06,
73881 const t_ARG_07& arg_07,
73882 const t_ARG_08& arg_08,
73883 const t_ARG_09& arg_09);
73884
73885 template <size_t t_INDEX,
73886 class t_ARG_01,
73887 class t_ARG_02,
73888 class t_ARG_03,
73889 class t_ARG_04,
73890 class t_ARG_05,
73891 class t_ARG_06,
73892 class t_ARG_07,
73893 class t_ARG_08,
73894 class t_ARG_09,
73895 class t_ARG_10>
73896 explicit variant(bsl::in_place_index_t<t_INDEX>,
73897 const t_ARG_01& arg_01,
73898 const t_ARG_02& arg_02,
73899 const t_ARG_03& arg_03,
73900 const t_ARG_04& arg_04,
73901 const t_ARG_05& arg_05,
73902 const t_ARG_06& arg_06,
73903 const t_ARG_07& arg_07,
73904 const t_ARG_08& arg_08,
73905 const t_ARG_09& arg_09,
73906 const t_ARG_10& arg_10);
73907
73908 variant(bsl::allocator_arg_t, allocator_type allocator);
73909
73910 variant(bsl::allocator_arg_t,
73911 allocator_type allocator,
73912 const variant& original);
73913 variant(bsl::allocator_arg_t,
73914 allocator_type allocator,
73915 BloombergLP::bslmf::MovableRef<variant> original);
73916
73917 template <class t_TYPE>
73918 variant(
73919 bsl::allocator_arg_t,
73920 allocator_type allocator,
73921 const t_TYPE& value,
73923
73924 template <class t_TYPE>
73925 explicit variant(
73926 bsl::allocator_arg_t,
73927 allocator_type allocator,
73930
73931 template <class t_TYPE, class t_ARG_01>
73932 explicit variant(
73933 bsl::allocator_arg_t,
73934 allocator_type allocator,
73936 const t_ARG_01& arg_01,
73938
73939 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
73940 explicit variant(
73941 bsl::allocator_arg_t,
73942 allocator_type allocator,
73944 const t_ARG_01& arg_01,
73945 const t_ARG_02& arg_02,
73947
73948 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
73949 explicit variant(
73950 bsl::allocator_arg_t,
73951 allocator_type allocator,
73953 const t_ARG_01& arg_01,
73954 const t_ARG_02& arg_02,
73955 const t_ARG_03& arg_03,
73957
73958 template <class t_TYPE,
73959 class t_ARG_01,
73960 class t_ARG_02,
73961 class t_ARG_03,
73962 class t_ARG_04>
73963 explicit variant(bsl::allocator_arg_t,
73964 allocator_type allocator,
73966 const t_ARG_01& arg_01,
73967 const t_ARG_02& arg_02,
73968 const t_ARG_03& arg_03,
73969 const t_ARG_04& arg_04,
73971
73972 template <class t_TYPE,
73973 class t_ARG_01,
73974 class t_ARG_02,
73975 class t_ARG_03,
73976 class t_ARG_04,
73977 class t_ARG_05>
73978 explicit variant(bsl::allocator_arg_t,
73979 allocator_type allocator,
73981 const t_ARG_01& arg_01,
73982 const t_ARG_02& arg_02,
73983 const t_ARG_03& arg_03,
73984 const t_ARG_04& arg_04,
73985 const t_ARG_05& arg_05,
73987
73988 template <class t_TYPE,
73989 class t_ARG_01,
73990 class t_ARG_02,
73991 class t_ARG_03,
73992 class t_ARG_04,
73993 class t_ARG_05,
73994 class t_ARG_06>
73995 explicit variant(bsl::allocator_arg_t,
73996 allocator_type allocator,
73998 const t_ARG_01& arg_01,
73999 const t_ARG_02& arg_02,
74000 const t_ARG_03& arg_03,
74001 const t_ARG_04& arg_04,
74002 const t_ARG_05& arg_05,
74003 const t_ARG_06& arg_06,
74005
74006 template <class t_TYPE,
74007 class t_ARG_01,
74008 class t_ARG_02,
74009 class t_ARG_03,
74010 class t_ARG_04,
74011 class t_ARG_05,
74012 class t_ARG_06,
74013 class t_ARG_07>
74014 explicit variant(bsl::allocator_arg_t,
74015 allocator_type allocator,
74017 const t_ARG_01& arg_01,
74018 const t_ARG_02& arg_02,
74019 const t_ARG_03& arg_03,
74020 const t_ARG_04& arg_04,
74021 const t_ARG_05& arg_05,
74022 const t_ARG_06& arg_06,
74023 const t_ARG_07& arg_07,
74025
74026 template <class t_TYPE,
74027 class t_ARG_01,
74028 class t_ARG_02,
74029 class t_ARG_03,
74030 class t_ARG_04,
74031 class t_ARG_05,
74032 class t_ARG_06,
74033 class t_ARG_07,
74034 class t_ARG_08>
74035 explicit variant(bsl::allocator_arg_t,
74036 allocator_type allocator,
74038 const t_ARG_01& arg_01,
74039 const t_ARG_02& arg_02,
74040 const t_ARG_03& arg_03,
74041 const t_ARG_04& arg_04,
74042 const t_ARG_05& arg_05,
74043 const t_ARG_06& arg_06,
74044 const t_ARG_07& arg_07,
74045 const t_ARG_08& arg_08,
74047
74048 template <class t_TYPE,
74049 class t_ARG_01,
74050 class t_ARG_02,
74051 class t_ARG_03,
74052 class t_ARG_04,
74053 class t_ARG_05,
74054 class t_ARG_06,
74055 class t_ARG_07,
74056 class t_ARG_08,
74057 class t_ARG_09>
74058 explicit variant(bsl::allocator_arg_t,
74059 allocator_type allocator,
74061 const t_ARG_01& arg_01,
74062 const t_ARG_02& arg_02,
74063 const t_ARG_03& arg_03,
74064 const t_ARG_04& arg_04,
74065 const t_ARG_05& arg_05,
74066 const t_ARG_06& arg_06,
74067 const t_ARG_07& arg_07,
74068 const t_ARG_08& arg_08,
74069 const t_ARG_09& arg_09,
74071
74072 template <class t_TYPE,
74073 class t_ARG_01,
74074 class t_ARG_02,
74075 class t_ARG_03,
74076 class t_ARG_04,
74077 class t_ARG_05,
74078 class t_ARG_06,
74079 class t_ARG_07,
74080 class t_ARG_08,
74081 class t_ARG_09,
74082 class t_ARG_10>
74083 explicit variant(bsl::allocator_arg_t,
74084 allocator_type allocator,
74086 const t_ARG_01& arg_01,
74087 const t_ARG_02& arg_02,
74088 const t_ARG_03& arg_03,
74089 const t_ARG_04& arg_04,
74090 const t_ARG_05& arg_05,
74091 const t_ARG_06& arg_06,
74092 const t_ARG_07& arg_07,
74093 const t_ARG_08& arg_08,
74094 const t_ARG_09& arg_09,
74095 const t_ARG_10& arg_10,
74097
74098 template <size_t t_INDEX>
74099 explicit variant(bsl::allocator_arg_t,
74100 allocator_type allocator,
74102
74103 template <size_t t_INDEX, class t_ARG_01>
74104 explicit variant(bsl::allocator_arg_t,
74105 allocator_type allocator,
74107 const t_ARG_01& arg_01);
74108
74109 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
74110 explicit variant(bsl::allocator_arg_t,
74111 allocator_type allocator,
74113 const t_ARG_01& arg_01,
74114 const t_ARG_02& arg_02);
74115
74116 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
74117 explicit variant(bsl::allocator_arg_t,
74118 allocator_type allocator,
74120 const t_ARG_01& arg_01,
74121 const t_ARG_02& arg_02,
74122 const t_ARG_03& arg_03);
74123
74124 template <size_t t_INDEX,
74125 class t_ARG_01,
74126 class t_ARG_02,
74127 class t_ARG_03,
74128 class t_ARG_04>
74129 explicit variant(bsl::allocator_arg_t,
74130 allocator_type allocator,
74132 const t_ARG_01& arg_01,
74133 const t_ARG_02& arg_02,
74134 const t_ARG_03& arg_03,
74135 const t_ARG_04& arg_04);
74136
74137 template <size_t t_INDEX,
74138 class t_ARG_01,
74139 class t_ARG_02,
74140 class t_ARG_03,
74141 class t_ARG_04,
74142 class t_ARG_05>
74143 explicit variant(bsl::allocator_arg_t,
74144 allocator_type allocator,
74146 const t_ARG_01& arg_01,
74147 const t_ARG_02& arg_02,
74148 const t_ARG_03& arg_03,
74149 const t_ARG_04& arg_04,
74150 const t_ARG_05& arg_05);
74151
74152 template <size_t t_INDEX,
74153 class t_ARG_01,
74154 class t_ARG_02,
74155 class t_ARG_03,
74156 class t_ARG_04,
74157 class t_ARG_05,
74158 class t_ARG_06>
74159 explicit variant(bsl::allocator_arg_t,
74160 allocator_type allocator,
74162 const t_ARG_01& arg_01,
74163 const t_ARG_02& arg_02,
74164 const t_ARG_03& arg_03,
74165 const t_ARG_04& arg_04,
74166 const t_ARG_05& arg_05,
74167 const t_ARG_06& arg_06);
74168
74169 template <size_t t_INDEX,
74170 class t_ARG_01,
74171 class t_ARG_02,
74172 class t_ARG_03,
74173 class t_ARG_04,
74174 class t_ARG_05,
74175 class t_ARG_06,
74176 class t_ARG_07>
74177 explicit variant(bsl::allocator_arg_t,
74178 allocator_type allocator,
74180 const t_ARG_01& arg_01,
74181 const t_ARG_02& arg_02,
74182 const t_ARG_03& arg_03,
74183 const t_ARG_04& arg_04,
74184 const t_ARG_05& arg_05,
74185 const t_ARG_06& arg_06,
74186 const t_ARG_07& arg_07);
74187
74188 template <size_t t_INDEX,
74189 class t_ARG_01,
74190 class t_ARG_02,
74191 class t_ARG_03,
74192 class t_ARG_04,
74193 class t_ARG_05,
74194 class t_ARG_06,
74195 class t_ARG_07,
74196 class t_ARG_08>
74197 explicit variant(bsl::allocator_arg_t,
74198 allocator_type allocator,
74200 const t_ARG_01& arg_01,
74201 const t_ARG_02& arg_02,
74202 const t_ARG_03& arg_03,
74203 const t_ARG_04& arg_04,
74204 const t_ARG_05& arg_05,
74205 const t_ARG_06& arg_06,
74206 const t_ARG_07& arg_07,
74207 const t_ARG_08& arg_08);
74208
74209 template <size_t t_INDEX,
74210 class t_ARG_01,
74211 class t_ARG_02,
74212 class t_ARG_03,
74213 class t_ARG_04,
74214 class t_ARG_05,
74215 class t_ARG_06,
74216 class t_ARG_07,
74217 class t_ARG_08,
74218 class t_ARG_09>
74219 explicit variant(bsl::allocator_arg_t,
74220 allocator_type allocator,
74222 const t_ARG_01& arg_01,
74223 const t_ARG_02& arg_02,
74224 const t_ARG_03& arg_03,
74225 const t_ARG_04& arg_04,
74226 const t_ARG_05& arg_05,
74227 const t_ARG_06& arg_06,
74228 const t_ARG_07& arg_07,
74229 const t_ARG_08& arg_08,
74230 const t_ARG_09& arg_09);
74231
74232 template <size_t t_INDEX,
74233 class t_ARG_01,
74234 class t_ARG_02,
74235 class t_ARG_03,
74236 class t_ARG_04,
74237 class t_ARG_05,
74238 class t_ARG_06,
74239 class t_ARG_07,
74240 class t_ARG_08,
74241 class t_ARG_09,
74242 class t_ARG_10>
74243 explicit variant(bsl::allocator_arg_t,
74244 allocator_type allocator,
74246 const t_ARG_01& arg_01,
74247 const t_ARG_02& arg_02,
74248 const t_ARG_03& arg_03,
74249 const t_ARG_04& arg_04,
74250 const t_ARG_05& arg_05,
74251 const t_ARG_06& arg_06,
74252 const t_ARG_07& arg_07,
74253 const t_ARG_08& arg_08,
74254 const t_ARG_09& arg_09,
74255 const t_ARG_10& arg_10);
74256
74257#endif
74258
74259
74260#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
74261 template <class t_TYPE,
74262 class t_ARGS_01,
74263 class t_ARGS_02,
74264 class t_ARGS_03,
74265 class t_ARGS_04,
74266 class t_ARGS_05,
74267 class t_ARGS_06,
74268 class t_ARGS_07,
74269 class t_ARGS_08,
74270 class t_ARGS_09,
74271 class t_ARGS_10,
74272 class t_ARGS_11,
74273 class t_ARGS_12,
74274 class t_ARGS_13,
74275 class t_ARGS_14,
74276 class t_ARGS_15,
74277 class t_ARGS_16,
74278 class t_ARGS_17,
74279 class t_ARGS_18,
74280 class = typename bsl::enable_if_t<
74282 std::is_constructible<t_TYPE, t_ARGS_01,
74283 t_ARGS_02,
74284 t_ARGS_03,
74285 t_ARGS_04,
74286 t_ARGS_05,
74287 t_ARGS_06,
74288 t_ARGS_07,
74289 t_ARGS_08,
74290 t_ARGS_09,
74291 t_ARGS_10,
74292 t_ARGS_11,
74293 t_ARGS_12,
74294 t_ARGS_13,
74295 t_ARGS_14,
74296 t_ARGS_15,
74297 t_ARGS_16,
74298 t_ARGS_17,
74299 t_ARGS_18>::value> >
74300 t_TYPE& emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
74301 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
74302 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
74303 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
74304 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
74305 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
74306 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
74307 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
74308 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
74309 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
74310 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
74311 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
74312 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
74313 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
74314 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
74315 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
74316 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
74317 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
74318 {
74319 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
74320 Variant_Base::template baseEmplace<index>(
74321 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
74322 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
74323 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
74324 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
74325 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
74326 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
74327 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
74328 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
74329 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
74330 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
74331 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
74332 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
74333 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
74334 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
74335 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
74336 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
74337 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
74338 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18));
74339
74340 return bsl::get<index>(*this);
74341 }
74342
74343 template <class t_TYPE,
74344 class INIT_LIST_TYPE,
74345 class t_ARGS_01,
74346 class t_ARGS_02,
74347 class t_ARGS_03,
74348 class t_ARGS_04,
74349 class t_ARGS_05,
74350 class t_ARGS_06,
74351 class t_ARGS_07,
74352 class t_ARGS_08,
74353 class t_ARGS_09,
74354 class t_ARGS_10,
74355 class t_ARGS_11,
74356 class t_ARGS_12,
74357 class t_ARGS_13,
74358 class t_ARGS_14,
74359 class t_ARGS_15,
74360 class t_ARGS_16,
74361 class t_ARGS_17,
74362 class t_ARGS_18,
74363 class = typename bsl::enable_if_t<
74365 std::is_constructible<t_TYPE,
74366 std::initializer_list<INIT_LIST_TYPE>&,
74367 t_ARGS_01,
74368 t_ARGS_02,
74369 t_ARGS_03,
74370 t_ARGS_04,
74371 t_ARGS_05,
74372 t_ARGS_06,
74373 t_ARGS_07,
74374 t_ARGS_08,
74375 t_ARGS_09,
74376 t_ARGS_10,
74377 t_ARGS_11,
74378 t_ARGS_12,
74379 t_ARGS_13,
74380 t_ARGS_14,
74381 t_ARGS_15,
74382 t_ARGS_16,
74383 t_ARGS_17,
74384 t_ARGS_18>::value> >
74385 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il,
74386 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
74387 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
74388 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
74389 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
74390 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
74391 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
74392 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
74393 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
74394 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
74395 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
74396 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
74397 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
74398 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
74399 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
74400 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
74401 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
74402 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
74403 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
74404 {
74405 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
74406 Variant_Base::template baseEmplace<index>(
74407 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
74408 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
74409 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
74410 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
74411 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
74412 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
74413 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
74414 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
74415 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
74416 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
74417 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
74418 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
74419 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
74420 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
74421 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
74422 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
74423 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
74424 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18));
74425
74426 return bsl::get<index>(*this);
74427 }
74428
74429 template <size_t t_INDEX,
74430 class t_ARGS_01,
74431 class t_ARGS_02,
74432 class t_ARGS_03,
74433 class t_ARGS_04,
74434 class t_ARGS_05,
74435 class t_ARGS_06,
74436 class t_ARGS_07,
74437 class t_ARGS_08,
74438 class t_ARGS_09,
74439 class t_ARGS_10,
74440 class t_ARGS_11,
74441 class t_ARGS_12,
74442 class t_ARGS_13,
74443 class t_ARGS_14,
74444 class t_ARGS_15,
74445 class t_ARGS_16,
74446 class t_ARGS_17,
74447 class t_ARGS_18,
74448 class = typename bsl::enable_if_t<
74449 (t_INDEX < 1 + 18u) &&
74450 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
74451 t_ARGS_01,
74452 t_ARGS_02,
74453 t_ARGS_03,
74454 t_ARGS_04,
74455 t_ARGS_05,
74456 t_ARGS_06,
74457 t_ARGS_07,
74458 t_ARGS_08,
74459 t_ARGS_09,
74460 t_ARGS_10,
74461 t_ARGS_11,
74462 t_ARGS_12,
74463 t_ARGS_13,
74464 t_ARGS_14,
74465 t_ARGS_15,
74466 t_ARGS_16,
74467 t_ARGS_17,
74468 t_ARGS_18>::value> >
74469 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74470 t_TAIL_02,
74471 t_TAIL_03,
74472 t_TAIL_04,
74473 t_TAIL_05,
74474 t_TAIL_06,
74475 t_TAIL_07,
74476 t_TAIL_08,
74477 t_TAIL_09,
74478 t_TAIL_10,
74479 t_TAIL_11,
74480 t_TAIL_12,
74481 t_TAIL_13,
74482 t_TAIL_14,
74483 t_TAIL_15,
74484 t_TAIL_16,
74485 t_TAIL_17,
74486 t_TAIL_18> >::type&
74487 emplace(BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
74488 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
74489 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
74490 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
74491 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
74492 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
74493 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
74494 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
74495 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
74496 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
74497 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
74498 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
74499 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
74500 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
74501 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
74502 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
74503 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
74504 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
74505 {
74506 Variant_Base::template baseEmplace<t_INDEX>(
74507 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
74508 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
74509 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
74510 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
74511 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
74512 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
74513 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
74514 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
74515 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
74516 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
74517 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
74518 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
74519 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
74520 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
74521 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
74522 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
74523 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
74524 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18));
74525
74526 return bsl::get<t_INDEX>(*this);
74527 }
74528
74529 template <size_t t_INDEX,
74530 class INIT_LIST_TYPE,
74531 class t_ARGS_01,
74532 class t_ARGS_02,
74533 class t_ARGS_03,
74534 class t_ARGS_04,
74535 class t_ARGS_05,
74536 class t_ARGS_06,
74537 class t_ARGS_07,
74538 class t_ARGS_08,
74539 class t_ARGS_09,
74540 class t_ARGS_10,
74541 class t_ARGS_11,
74542 class t_ARGS_12,
74543 class t_ARGS_13,
74544 class t_ARGS_14,
74545 class t_ARGS_15,
74546 class t_ARGS_16,
74547 class t_ARGS_17,
74548 class t_ARGS_18,
74549 class = typename bsl::enable_if_t<
74550 (t_INDEX < 1 + 18u) &&
74551 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
74552 std::initializer_list<INIT_LIST_TYPE>&,
74553 t_ARGS_01,
74554 t_ARGS_02,
74555 t_ARGS_03,
74556 t_ARGS_04,
74557 t_ARGS_05,
74558 t_ARGS_06,
74559 t_ARGS_07,
74560 t_ARGS_08,
74561 t_ARGS_09,
74562 t_ARGS_10,
74563 t_ARGS_11,
74564 t_ARGS_12,
74565 t_ARGS_13,
74566 t_ARGS_14,
74567 t_ARGS_15,
74568 t_ARGS_16,
74569 t_ARGS_17,
74570 t_ARGS_18>::value> >
74571 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74572 t_TAIL_02,
74573 t_TAIL_03,
74574 t_TAIL_04,
74575 t_TAIL_05,
74576 t_TAIL_06,
74577 t_TAIL_07,
74578 t_TAIL_08,
74579 t_TAIL_09,
74580 t_TAIL_10,
74581 t_TAIL_11,
74582 t_TAIL_12,
74583 t_TAIL_13,
74584 t_TAIL_14,
74585 t_TAIL_15,
74586 t_TAIL_16,
74587 t_TAIL_17,
74588 t_TAIL_18> >::type&
74589 emplace(std::initializer_list<INIT_LIST_TYPE> il,
74590 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_01) args_01,
74591 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_02) args_02,
74592 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_03) args_03,
74593 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_04) args_04,
74594 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_05) args_05,
74595 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_06) args_06,
74596 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_07) args_07,
74597 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_08) args_08,
74598 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_09) args_09,
74599 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_10) args_10,
74600 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_11) args_11,
74601 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_12) args_12,
74602 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_13) args_13,
74603 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_14) args_14,
74604 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_15) args_15,
74605 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_16) args_16,
74606 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_17) args_17,
74607 BSLS_COMPILERFEATURES_FORWARD_REF(t_ARGS_18) args_18)
74608 {
74609 Variant_Base::template baseEmplace<t_INDEX>(
74610 il, BSLS_COMPILERFEATURES_FORWARD(t_ARGS_01, args_01),
74611 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_02, args_02),
74612 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_03, args_03),
74613 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_04, args_04),
74614 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_05, args_05),
74615 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_06, args_06),
74616 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_07, args_07),
74617 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_08, args_08),
74618 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_09, args_09),
74619 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_10, args_10),
74620 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_11, args_11),
74621 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_12, args_12),
74622 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_13, args_13),
74623 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_14, args_14),
74624 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_15, args_15),
74625 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_16, args_16),
74626 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_17, args_17),
74627 BSLS_COMPILERFEATURES_FORWARD(t_ARGS_18, args_18));
74628
74629 return bsl::get<t_INDEX>(*this);
74630 }
74631
74632#else
74633
74634 template <class t_TYPE>
74635 typename bsl::enable_if<
74636 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74637 t_TYPE&>::type
74638 emplace();
74639
74640 template <class t_TYPE, class t_ARG_01>
74641 typename bsl::enable_if<
74642 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74643 t_TYPE&>::type
74644 emplace(const t_ARG_01& arg_01);
74645
74646 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
74647 typename bsl::enable_if<
74648 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74649 t_TYPE&>::type
74650 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
74651
74652 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
74653 typename bsl::enable_if<
74654 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74655 t_TYPE&>::type
74656 emplace(const t_ARG_01& arg_01,
74657 const t_ARG_02& arg_02,
74658 const t_ARG_03& arg_03);
74659
74660 template <class t_TYPE,
74661 class t_ARG_01,
74662 class t_ARG_02,
74663 class t_ARG_03,
74664 class t_ARG_04>
74665 typename bsl::enable_if<
74666 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74667 t_TYPE&>::type
74668 emplace(const t_ARG_01& arg_01,
74669 const t_ARG_02& arg_02,
74670 const t_ARG_03& arg_03,
74671 const t_ARG_04& arg_04);
74672
74673 template <class t_TYPE,
74674 class t_ARG_01,
74675 class t_ARG_02,
74676 class t_ARG_03,
74677 class t_ARG_04,
74678 class t_ARG_05>
74679 typename bsl::enable_if<
74680 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74681 t_TYPE&>::type
74682 emplace(const t_ARG_01& arg_01,
74683 const t_ARG_02& arg_02,
74684 const t_ARG_03& arg_03,
74685 const t_ARG_04& arg_04,
74686 const t_ARG_05& arg_05);
74687
74688 template <class t_TYPE,
74689 class t_ARG_01,
74690 class t_ARG_02,
74691 class t_ARG_03,
74692 class t_ARG_04,
74693 class t_ARG_05,
74694 class t_ARG_06>
74695 typename bsl::enable_if<
74696 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74697 t_TYPE&>::type
74698 emplace(const t_ARG_01& arg_01,
74699 const t_ARG_02& arg_02,
74700 const t_ARG_03& arg_03,
74701 const t_ARG_04& arg_04,
74702 const t_ARG_05& arg_05,
74703 const t_ARG_06& arg_06);
74704
74705 template <class t_TYPE,
74706 class t_ARG_01,
74707 class t_ARG_02,
74708 class t_ARG_03,
74709 class t_ARG_04,
74710 class t_ARG_05,
74711 class t_ARG_06,
74712 class t_ARG_07>
74713 typename bsl::enable_if<
74714 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74715 t_TYPE&>::type
74716 emplace(const t_ARG_01& arg_01,
74717 const t_ARG_02& arg_02,
74718 const t_ARG_03& arg_03,
74719 const t_ARG_04& arg_04,
74720 const t_ARG_05& arg_05,
74721 const t_ARG_06& arg_06,
74722 const t_ARG_07& arg_07);
74723
74724 template <class t_TYPE,
74725 class t_ARG_01,
74726 class t_ARG_02,
74727 class t_ARG_03,
74728 class t_ARG_04,
74729 class t_ARG_05,
74730 class t_ARG_06,
74731 class t_ARG_07,
74732 class t_ARG_08>
74733 typename bsl::enable_if<
74734 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74735 t_TYPE&>::type
74736 emplace(const t_ARG_01& arg_01,
74737 const t_ARG_02& arg_02,
74738 const t_ARG_03& arg_03,
74739 const t_ARG_04& arg_04,
74740 const t_ARG_05& arg_05,
74741 const t_ARG_06& arg_06,
74742 const t_ARG_07& arg_07,
74743 const t_ARG_08& arg_08);
74744
74745 template <class t_TYPE,
74746 class t_ARG_01,
74747 class t_ARG_02,
74748 class t_ARG_03,
74749 class t_ARG_04,
74750 class t_ARG_05,
74751 class t_ARG_06,
74752 class t_ARG_07,
74753 class t_ARG_08,
74754 class t_ARG_09>
74755 typename bsl::enable_if<
74756 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74757 t_TYPE&>::type
74758 emplace(const t_ARG_01& arg_01,
74759 const t_ARG_02& arg_02,
74760 const t_ARG_03& arg_03,
74761 const t_ARG_04& arg_04,
74762 const t_ARG_05& arg_05,
74763 const t_ARG_06& arg_06,
74764 const t_ARG_07& arg_07,
74765 const t_ARG_08& arg_08,
74766 const t_ARG_09& arg_09);
74767
74768 template <class t_TYPE,
74769 class t_ARG_01,
74770 class t_ARG_02,
74771 class t_ARG_03,
74772 class t_ARG_04,
74773 class t_ARG_05,
74774 class t_ARG_06,
74775 class t_ARG_07,
74776 class t_ARG_08,
74777 class t_ARG_09,
74778 class t_ARG_10>
74779 typename bsl::enable_if<
74780 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
74781 t_TYPE&>::type
74782 emplace(const t_ARG_01& arg_01,
74783 const t_ARG_02& arg_02,
74784 const t_ARG_03& arg_03,
74785 const t_ARG_04& arg_04,
74786 const t_ARG_05& arg_05,
74787 const t_ARG_06& arg_06,
74788 const t_ARG_07& arg_07,
74789 const t_ARG_08& arg_08,
74790 const t_ARG_09& arg_09,
74791 const t_ARG_10& arg_10);
74792
74793 template <size_t t_INDEX>
74794 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74795 t_TAIL_02,
74796 t_TAIL_03,
74797 t_TAIL_04,
74798 t_TAIL_05,
74799 t_TAIL_06,
74800 t_TAIL_07,
74801 t_TAIL_08,
74802 t_TAIL_09,
74803 t_TAIL_10,
74804 t_TAIL_11,
74805 t_TAIL_12,
74806 t_TAIL_13,
74807 t_TAIL_14,
74808 t_TAIL_15,
74809 t_TAIL_16,
74810 t_TAIL_17,
74811 t_TAIL_18> >::type&
74812 emplace();
74813
74814 template <size_t t_INDEX, class t_ARG_01>
74815 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74816 t_TAIL_02,
74817 t_TAIL_03,
74818 t_TAIL_04,
74819 t_TAIL_05,
74820 t_TAIL_06,
74821 t_TAIL_07,
74822 t_TAIL_08,
74823 t_TAIL_09,
74824 t_TAIL_10,
74825 t_TAIL_11,
74826 t_TAIL_12,
74827 t_TAIL_13,
74828 t_TAIL_14,
74829 t_TAIL_15,
74830 t_TAIL_16,
74831 t_TAIL_17,
74832 t_TAIL_18> >::type&
74833 emplace(const t_ARG_01& arg_01);
74834
74835 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
74836 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74837 t_TAIL_02,
74838 t_TAIL_03,
74839 t_TAIL_04,
74840 t_TAIL_05,
74841 t_TAIL_06,
74842 t_TAIL_07,
74843 t_TAIL_08,
74844 t_TAIL_09,
74845 t_TAIL_10,
74846 t_TAIL_11,
74847 t_TAIL_12,
74848 t_TAIL_13,
74849 t_TAIL_14,
74850 t_TAIL_15,
74851 t_TAIL_16,
74852 t_TAIL_17,
74853 t_TAIL_18> >::type&
74854 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
74855
74856 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
74857 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74858 t_TAIL_02,
74859 t_TAIL_03,
74860 t_TAIL_04,
74861 t_TAIL_05,
74862 t_TAIL_06,
74863 t_TAIL_07,
74864 t_TAIL_08,
74865 t_TAIL_09,
74866 t_TAIL_10,
74867 t_TAIL_11,
74868 t_TAIL_12,
74869 t_TAIL_13,
74870 t_TAIL_14,
74871 t_TAIL_15,
74872 t_TAIL_16,
74873 t_TAIL_17,
74874 t_TAIL_18> >::type&
74875 emplace(const t_ARG_01& arg_01,
74876 const t_ARG_02& arg_02,
74877 const t_ARG_03& arg_03);
74878
74879 template <size_t t_INDEX,
74880 class t_ARG_01,
74881 class t_ARG_02,
74882 class t_ARG_03,
74883 class t_ARG_04>
74884 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74885 t_TAIL_02,
74886 t_TAIL_03,
74887 t_TAIL_04,
74888 t_TAIL_05,
74889 t_TAIL_06,
74890 t_TAIL_07,
74891 t_TAIL_08,
74892 t_TAIL_09,
74893 t_TAIL_10,
74894 t_TAIL_11,
74895 t_TAIL_12,
74896 t_TAIL_13,
74897 t_TAIL_14,
74898 t_TAIL_15,
74899 t_TAIL_16,
74900 t_TAIL_17,
74901 t_TAIL_18> >::type&
74902 emplace(const t_ARG_01& arg_01,
74903 const t_ARG_02& arg_02,
74904 const t_ARG_03& arg_03,
74905 const t_ARG_04& arg_04);
74906
74907 template <size_t t_INDEX,
74908 class t_ARG_01,
74909 class t_ARG_02,
74910 class t_ARG_03,
74911 class t_ARG_04,
74912 class t_ARG_05>
74913 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74914 t_TAIL_02,
74915 t_TAIL_03,
74916 t_TAIL_04,
74917 t_TAIL_05,
74918 t_TAIL_06,
74919 t_TAIL_07,
74920 t_TAIL_08,
74921 t_TAIL_09,
74922 t_TAIL_10,
74923 t_TAIL_11,
74924 t_TAIL_12,
74925 t_TAIL_13,
74926 t_TAIL_14,
74927 t_TAIL_15,
74928 t_TAIL_16,
74929 t_TAIL_17,
74930 t_TAIL_18> >::type&
74931 emplace(const t_ARG_01& arg_01,
74932 const t_ARG_02& arg_02,
74933 const t_ARG_03& arg_03,
74934 const t_ARG_04& arg_04,
74935 const t_ARG_05& arg_05);
74936
74937 template <size_t t_INDEX,
74938 class t_ARG_01,
74939 class t_ARG_02,
74940 class t_ARG_03,
74941 class t_ARG_04,
74942 class t_ARG_05,
74943 class t_ARG_06>
74944 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74945 t_TAIL_02,
74946 t_TAIL_03,
74947 t_TAIL_04,
74948 t_TAIL_05,
74949 t_TAIL_06,
74950 t_TAIL_07,
74951 t_TAIL_08,
74952 t_TAIL_09,
74953 t_TAIL_10,
74954 t_TAIL_11,
74955 t_TAIL_12,
74956 t_TAIL_13,
74957 t_TAIL_14,
74958 t_TAIL_15,
74959 t_TAIL_16,
74960 t_TAIL_17,
74961 t_TAIL_18> >::type&
74962 emplace(const t_ARG_01& arg_01,
74963 const t_ARG_02& arg_02,
74964 const t_ARG_03& arg_03,
74965 const t_ARG_04& arg_04,
74966 const t_ARG_05& arg_05,
74967 const t_ARG_06& arg_06);
74968
74969 template <size_t t_INDEX,
74970 class t_ARG_01,
74971 class t_ARG_02,
74972 class t_ARG_03,
74973 class t_ARG_04,
74974 class t_ARG_05,
74975 class t_ARG_06,
74976 class t_ARG_07>
74977 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
74978 t_TAIL_02,
74979 t_TAIL_03,
74980 t_TAIL_04,
74981 t_TAIL_05,
74982 t_TAIL_06,
74983 t_TAIL_07,
74984 t_TAIL_08,
74985 t_TAIL_09,
74986 t_TAIL_10,
74987 t_TAIL_11,
74988 t_TAIL_12,
74989 t_TAIL_13,
74990 t_TAIL_14,
74991 t_TAIL_15,
74992 t_TAIL_16,
74993 t_TAIL_17,
74994 t_TAIL_18> >::type&
74995 emplace(const t_ARG_01& arg_01,
74996 const t_ARG_02& arg_02,
74997 const t_ARG_03& arg_03,
74998 const t_ARG_04& arg_04,
74999 const t_ARG_05& arg_05,
75000 const t_ARG_06& arg_06,
75001 const t_ARG_07& arg_07);
75002
75003 template <size_t t_INDEX,
75004 class t_ARG_01,
75005 class t_ARG_02,
75006 class t_ARG_03,
75007 class t_ARG_04,
75008 class t_ARG_05,
75009 class t_ARG_06,
75010 class t_ARG_07,
75011 class t_ARG_08>
75012 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
75013 t_TAIL_02,
75014 t_TAIL_03,
75015 t_TAIL_04,
75016 t_TAIL_05,
75017 t_TAIL_06,
75018 t_TAIL_07,
75019 t_TAIL_08,
75020 t_TAIL_09,
75021 t_TAIL_10,
75022 t_TAIL_11,
75023 t_TAIL_12,
75024 t_TAIL_13,
75025 t_TAIL_14,
75026 t_TAIL_15,
75027 t_TAIL_16,
75028 t_TAIL_17,
75029 t_TAIL_18> >::type&
75030 emplace(const t_ARG_01& arg_01,
75031 const t_ARG_02& arg_02,
75032 const t_ARG_03& arg_03,
75033 const t_ARG_04& arg_04,
75034 const t_ARG_05& arg_05,
75035 const t_ARG_06& arg_06,
75036 const t_ARG_07& arg_07,
75037 const t_ARG_08& arg_08);
75038
75039 template <size_t t_INDEX,
75040 class t_ARG_01,
75041 class t_ARG_02,
75042 class t_ARG_03,
75043 class t_ARG_04,
75044 class t_ARG_05,
75045 class t_ARG_06,
75046 class t_ARG_07,
75047 class t_ARG_08,
75048 class t_ARG_09>
75049 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
75050 t_TAIL_02,
75051 t_TAIL_03,
75052 t_TAIL_04,
75053 t_TAIL_05,
75054 t_TAIL_06,
75055 t_TAIL_07,
75056 t_TAIL_08,
75057 t_TAIL_09,
75058 t_TAIL_10,
75059 t_TAIL_11,
75060 t_TAIL_12,
75061 t_TAIL_13,
75062 t_TAIL_14,
75063 t_TAIL_15,
75064 t_TAIL_16,
75065 t_TAIL_17,
75066 t_TAIL_18> >::type&
75067 emplace(const t_ARG_01& arg_01,
75068 const t_ARG_02& arg_02,
75069 const t_ARG_03& arg_03,
75070 const t_ARG_04& arg_04,
75071 const t_ARG_05& arg_05,
75072 const t_ARG_06& arg_06,
75073 const t_ARG_07& arg_07,
75074 const t_ARG_08& arg_08,
75075 const t_ARG_09& arg_09);
75076
75077 template <size_t t_INDEX,
75078 class t_ARG_01,
75079 class t_ARG_02,
75080 class t_ARG_03,
75081 class t_ARG_04,
75082 class t_ARG_05,
75083 class t_ARG_06,
75084 class t_ARG_07,
75085 class t_ARG_08,
75086 class t_ARG_09,
75087 class t_ARG_10>
75088 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
75089 t_TAIL_02,
75090 t_TAIL_03,
75091 t_TAIL_04,
75092 t_TAIL_05,
75093 t_TAIL_06,
75094 t_TAIL_07,
75095 t_TAIL_08,
75096 t_TAIL_09,
75097 t_TAIL_10,
75098 t_TAIL_11,
75099 t_TAIL_12,
75100 t_TAIL_13,
75101 t_TAIL_14,
75102 t_TAIL_15,
75103 t_TAIL_16,
75104 t_TAIL_17,
75105 t_TAIL_18> >::type&
75106 emplace(const t_ARG_01& arg_01,
75107 const t_ARG_02& arg_02,
75108 const t_ARG_03& arg_03,
75109 const t_ARG_04& arg_04,
75110 const t_ARG_05& arg_05,
75111 const t_ARG_06& arg_06,
75112 const t_ARG_07& arg_07,
75113 const t_ARG_08& arg_08,
75114 const t_ARG_09& arg_09,
75115 const t_ARG_10& arg_10);
75116#endif
75117
75118#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
75119 variant& operator=(const variant& rhs) = default;
75120
75121 variant& operator=(variant&& rhs) = default;
75122
75123 template <class t_TYPE>
75124 typename bsl::enable_if<
75125 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
75126 variant&>::type
75127 operator=(BSLS_COMPILERFEATURES_FORWARD_REF(t_TYPE) value)
75128 {
75129 const size_t altIndex =
75130 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
75131
75132 if (index() == altIndex) {
75133 bsl::get<altIndex>(*this) = BSLS_COMPILERFEATURES_FORWARD(t_TYPE,
75134 value);
75135 }
75136 else {
75137 Variant_Base::template baseEmplace<altIndex>(
75138 BSLS_COMPILERFEATURES_FORWARD(t_TYPE, value));
75139 }
75140
75141 return *this;
75142 }
75143#else
75144 variant& operator=(const variant& rhs);
75145
75146 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
75147
75148 template <class t_TYPE>
75149 typename bsl::enable_if<
75150 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
75151 variant&>::type
75152 operator=(const t_TYPE& value);
75153
75154#endif
75155
75156 void swap(variant& other);
75157
75158#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
75159 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
75160 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
75161 t_TAIL_02,
75162 t_TAIL_03,
75163 t_TAIL_04,
75164 t_TAIL_05,
75165 t_TAIL_06,
75166 t_TAIL_07,
75167 t_TAIL_08,
75168 t_TAIL_09,
75169 t_TAIL_10,
75170 t_TAIL_11,
75171 t_TAIL_12,
75172 t_TAIL_13,
75173 t_TAIL_14,
75174 t_TAIL_15,
75175 t_TAIL_16,
75176 t_TAIL_17,
75177 t_TAIL_18>::value,
75178 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
75179#endif
75180 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
75181 {
75182 return allocator_type(Variant_Base::AllocBase::mechanism());
75183 }
75184
75185
75186 size_t index() const BSLS_KEYWORD_NOEXCEPT;
75187
75188 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
75189};
75190#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_K >= 18
75191
75192#else
75193// The generated code below is a workaround for the absence of perfect
75194// forwarding in some compilers.
75195template <class t_HEAD, class... t_TAIL>
75196class variant
75197: private BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL...>
75198#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
75199,
75200 private BloombergLP::bslstl::Variant_SMFBase<
75201 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
75202 t_TAIL...>::value,
75203 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
75204 t_TAIL...>::value,
75205 BloombergLP::bslstl::Variant_IsCopyConstructibleAll<t_HEAD,
75206 t_TAIL...>::value &&
75207 BloombergLP::bslstl::Variant_IsCopyAssignableAll<t_HEAD,
75208 t_TAIL...>::value,
75209 BloombergLP::bslstl::Variant_IsMoveConstructibleAll<t_HEAD,
75210 t_TAIL...>::value &&
75211 BloombergLP::bslstl::Variant_IsMoveAssignableAll<t_HEAD,
75212 t_TAIL...>::value>
75213#endif
75214{
75215 private:
75216 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
75217 typedef BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL...> Variant_Base;
75218 typedef BloombergLP::bslstl::Variant_Union<t_HEAD, t_TAIL...>
75219 Variant_Union;
75220
75221 friend struct BloombergLP::bslstl::Variant_ImpUtil;
75222
75223 friend struct BloombergLP::bslstl::Variant_Base<t_HEAD, t_TAIL...>;
75224
75225 public:
75227 variant,
75228 BloombergLP::bslma::UsesBslmaAllocator,
75229 (BloombergLP::bslstl::
75230 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value));
75232 variant,
75233 BloombergLP::bslmf::UsesAllocatorArgT,
75234 (BloombergLP::bslstl::
75235 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value));
75237 variant,
75238 BloombergLP::bslmf::IsBitwiseMoveable,
75239 (BloombergLP::bslstl::Variant_IsBitwiseMoveableAll<t_HEAD,
75240 t_TAIL...>::value));
75241
75242
75243 typedef typename Variant_Base::allocator_type allocator_type;
75244
75245
75246#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
75247 template <class t_FIRST_ALT = t_HEAD,
75248 class = typename bsl::enable_if_t<
75249 std::is_default_constructible<t_FIRST_ALT>::value> >
75250 variant()
75251 : Variant_Base()
75252 {
75253 }
75254
75255 variant(const variant& original) = default;
75256
75257 variant(variant&& original) = default;
75258
75259#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
75260 template <class t_STD_VARIANT>
75261 explicit variant(
75262 t_STD_VARIANT&& original,
75264 : Variant_Base(BloombergLP::bslstl::Variant_ConstructFromStdTag(),
75265 original.index())
75266 {
75267 if (!valueless_by_exception()) {
75268 BloombergLP::bslstl::Variant_ImpUtil::
75269 ConstructFromStdVisitor<variant, decltype(original)>
75270 visitor(*this, original);
75271 BSLSTL_VARIANT_VISITID(void, visitor, *this);
75272 }
75273 }
75274#endif
75275
75276 template <class t_TYPE>
75277 variant(t_TYPE&& t,
75279
75280 template <class t_TYPE,
75281 class... t_ARGS,
75282 class = typename bsl::enable_if_t<
75284 std::is_constructible<t_TYPE, t_ARGS...>::value> >
75285 explicit variant(bsl::in_place_type_t<t_TYPE>, t_ARGS&&... args)
75286 : Variant_Base(
75287 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
75288 std::forward<t_ARGS>(args)...)
75289 {
75290 }
75291
75292 template <class t_TYPE,
75293 class INIT_LIST_TYPE,
75294 class... t_ARGS,
75295 class = typename bsl::enable_if_t<
75297 std::is_constructible<t_TYPE,
75298 std::initializer_list<INIT_LIST_TYPE>&,
75299 t_ARGS...>::value> >
75300 explicit variant(bsl::in_place_type_t<t_TYPE>,
75301 std::initializer_list<INIT_LIST_TYPE> il,
75302 t_ARGS&&... args)
75303 : Variant_Base(
75304 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
75305 il,
75306 std::forward<t_ARGS>(args)...)
75307 {
75308 }
75309
75310 template <size_t t_INDEX,
75311 class... t_ARGS,
75312 class = typename bsl::enable_if_t<
75313 (t_INDEX < 1 + sizeof...(t_TAIL)) &&
75314 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
75315 t_ARGS...>::value> >
75316 explicit variant(bsl::in_place_index_t<t_INDEX>, t_ARGS&&... args)
75317 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
75318 std::forward<t_ARGS>(args)...)
75319 {
75320 }
75321
75322 template <size_t t_INDEX,
75323 class INIT_LIST_TYPE,
75324 class... t_ARGS,
75325 class = typename bsl::enable_if_t<
75326 (t_INDEX < 1 + sizeof...(t_TAIL)) &&
75327 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
75328 std::initializer_list<INIT_LIST_TYPE>&,
75329 t_ARGS...>::value> >
75330 explicit variant(bsl::in_place_index_t<t_INDEX>,
75331 std::initializer_list<INIT_LIST_TYPE> il,
75332 t_ARGS&&... args)
75333 : Variant_Base(bsl::in_place_index_t<t_INDEX>(),
75334 il,
75335 std::forward<t_ARGS>(args)...)
75336 {
75337 }
75338
75339 template <class FIRST = t_HEAD,
75340 class = typename bsl::enable_if_t<
75341 std::is_default_constructible<FIRST>::value> >
75342 variant(bsl::allocator_arg_t, allocator_type allocator)
75343 : Variant_Base(bsl::allocator_arg_t(), allocator)
75344 {
75345 }
75346
75347 template <
75348 class FIRST = t_HEAD,
75349 class = typename bsl::enable_if_t<
75350 BloombergLP::bslstl::
75351 Variant_IsCopyConstructibleAll<FIRST, t_TAIL...>::value> >
75352 variant(bsl::allocator_arg_t,
75353 allocator_type allocator,
75354 const variant& original)
75355 : Variant_Base(bsl::allocator_arg_t(), allocator, original)
75356 {
75357 }
75358 template <
75359 class FIRST = t_HEAD,
75360 class = typename bsl::enable_if_t<
75361 BloombergLP::bslstl::
75362 Variant_IsMoveConstructibleAll<FIRST, t_TAIL...>::value> >
75363 variant(bsl::allocator_arg_t, allocator_type allocator, variant&& original)
75364 : Variant_Base(bsl::allocator_arg_t(), allocator, std::move(original))
75365 {
75366 }
75367
75368#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
75369 template <class t_STD_VARIANT>
75370 explicit variant(
75371 bsl::allocator_arg_t,
75372 allocator_type allocator,
75373 t_STD_VARIANT&& original,
75375 : Variant_Base(bsl::allocator_arg_t(),
75376 allocator,
75377 BloombergLP::bslstl::Variant_ConstructFromStdTag(),
75378 original.index())
75379 {
75380 if (!valueless_by_exception()) {
75381 BloombergLP::bslstl::Variant_ImpUtil::
75382 ConstructFromStdVisitor<variant, decltype(original)>
75383 visitor(*this, original);
75384 BSLSTL_VARIANT_VISITID(void, visitor, *this);
75385 }
75386 }
75387#endif
75388
75389 template <class t_TYPE>
75390 variant(
75391 bsl::allocator_arg_t,
75392 allocator_type allocator,
75393 t_TYPE&& t,
75395
75396 template <class t_TYPE,
75397 class... t_ARGS,
75398 class = typename bsl::enable_if_t<
75400 std::is_constructible<t_TYPE, t_ARGS...>::value> >
75401 explicit variant(bsl::allocator_arg_t,
75402 allocator_type allocator,
75404 t_ARGS&&... args)
75405 : Variant_Base(
75406 bsl::allocator_arg_t{},
75407 allocator,
75408 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
75409 std::forward<t_ARGS>(args)...)
75410 {
75411 }
75412
75413 template <class t_TYPE,
75414 class INIT_LIST_TYPE,
75415 class... t_ARGS,
75416 class = typename bsl::enable_if_t<
75418 std::is_constructible<t_TYPE,
75419 std::initializer_list<INIT_LIST_TYPE>&,
75420 t_ARGS...>::value> >
75421 explicit variant(bsl::allocator_arg_t,
75422 allocator_type allocator,
75424 std::initializer_list<INIT_LIST_TYPE> il,
75425 t_ARGS&&... args)
75426 : Variant_Base(
75427 bsl::allocator_arg_t{},
75428 allocator,
75429 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
75430 il,
75431 std::forward<t_ARGS>(args)...)
75432 {
75433 }
75434
75435 template <size_t t_INDEX,
75436 class... t_ARGS,
75437 class = typename bsl::enable_if_t<
75438 (t_INDEX < 1 + sizeof...(t_TAIL)) &&
75439 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
75440 t_ARGS...>::value> >
75441 explicit variant(bsl::allocator_arg_t,
75442 allocator_type allocator,
75444 t_ARGS&&... args)
75445 : Variant_Base(bsl::allocator_arg_t{},
75446 allocator,
75447 bsl::in_place_index_t<t_INDEX>(),
75448 std::forward<t_ARGS>(args)...)
75449 {
75450 }
75451
75452 template <size_t t_INDEX,
75453 class INIT_LIST_TYPE,
75454 class... t_ARGS,
75455 class = typename bsl::enable_if_t<
75456 (t_INDEX < 1 + sizeof...(t_TAIL)) &&
75457 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
75458 std::initializer_list<INIT_LIST_TYPE>&,
75459 t_ARGS...>::value> >
75460 explicit variant(bsl::allocator_arg_t,
75461 allocator_type allocator,
75463 std::initializer_list<INIT_LIST_TYPE> il,
75464 t_ARGS&&... args)
75465 : Variant_Base(bsl::allocator_arg_t{},
75466 allocator,
75467 bsl::in_place_index_t<t_INDEX>(),
75468 il,
75469 std::forward<t_ARGS>(args)...)
75470 {
75471 }
75472
75473#else
75474
75475 variant();
75476
75477 variant(const variant& original);
75478
75479 variant(BloombergLP::bslmf::MovableRef<variant> original);
75480
75481 template <class t_TYPE>
75482 variant(const t_TYPE& value,
75484
75485 template <class t_TYPE>
75486 explicit variant(bsl::in_place_type_t<t_TYPE>,
75488
75489 template <class t_TYPE, class t_ARG_01>
75490 explicit variant(bsl::in_place_type_t<t_TYPE>,
75491 const t_ARG_01& arg_01,
75493
75494 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
75495 explicit variant(bsl::in_place_type_t<t_TYPE>,
75496 const t_ARG_01& arg_01,
75497 const t_ARG_02& arg_02,
75499
75500 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
75501 explicit variant(bsl::in_place_type_t<t_TYPE>,
75502 const t_ARG_01& arg_01,
75503 const t_ARG_02& arg_02,
75504 const t_ARG_03& arg_03,
75506
75507 template <class t_TYPE,
75508 class t_ARG_01,
75509 class t_ARG_02,
75510 class t_ARG_03,
75511 class t_ARG_04>
75512 explicit variant(bsl::in_place_type_t<t_TYPE>,
75513 const t_ARG_01& arg_01,
75514 const t_ARG_02& arg_02,
75515 const t_ARG_03& arg_03,
75516 const t_ARG_04& arg_04,
75518
75519 template <class t_TYPE,
75520 class t_ARG_01,
75521 class t_ARG_02,
75522 class t_ARG_03,
75523 class t_ARG_04,
75524 class t_ARG_05>
75525 explicit variant(bsl::in_place_type_t<t_TYPE>,
75526 const t_ARG_01& arg_01,
75527 const t_ARG_02& arg_02,
75528 const t_ARG_03& arg_03,
75529 const t_ARG_04& arg_04,
75530 const t_ARG_05& arg_05,
75532
75533 template <class t_TYPE,
75534 class t_ARG_01,
75535 class t_ARG_02,
75536 class t_ARG_03,
75537 class t_ARG_04,
75538 class t_ARG_05,
75539 class t_ARG_06>
75540 explicit variant(bsl::in_place_type_t<t_TYPE>,
75541 const t_ARG_01& arg_01,
75542 const t_ARG_02& arg_02,
75543 const t_ARG_03& arg_03,
75544 const t_ARG_04& arg_04,
75545 const t_ARG_05& arg_05,
75546 const t_ARG_06& arg_06,
75548
75549 template <class t_TYPE,
75550 class t_ARG_01,
75551 class t_ARG_02,
75552 class t_ARG_03,
75553 class t_ARG_04,
75554 class t_ARG_05,
75555 class t_ARG_06,
75556 class t_ARG_07>
75557 explicit variant(bsl::in_place_type_t<t_TYPE>,
75558 const t_ARG_01& arg_01,
75559 const t_ARG_02& arg_02,
75560 const t_ARG_03& arg_03,
75561 const t_ARG_04& arg_04,
75562 const t_ARG_05& arg_05,
75563 const t_ARG_06& arg_06,
75564 const t_ARG_07& arg_07,
75566
75567 template <class t_TYPE,
75568 class t_ARG_01,
75569 class t_ARG_02,
75570 class t_ARG_03,
75571 class t_ARG_04,
75572 class t_ARG_05,
75573 class t_ARG_06,
75574 class t_ARG_07,
75575 class t_ARG_08>
75576 explicit variant(bsl::in_place_type_t<t_TYPE>,
75577 const t_ARG_01& arg_01,
75578 const t_ARG_02& arg_02,
75579 const t_ARG_03& arg_03,
75580 const t_ARG_04& arg_04,
75581 const t_ARG_05& arg_05,
75582 const t_ARG_06& arg_06,
75583 const t_ARG_07& arg_07,
75584 const t_ARG_08& arg_08,
75586
75587 template <class t_TYPE,
75588 class t_ARG_01,
75589 class t_ARG_02,
75590 class t_ARG_03,
75591 class t_ARG_04,
75592 class t_ARG_05,
75593 class t_ARG_06,
75594 class t_ARG_07,
75595 class t_ARG_08,
75596 class t_ARG_09>
75597 explicit variant(bsl::in_place_type_t<t_TYPE>,
75598 const t_ARG_01& arg_01,
75599 const t_ARG_02& arg_02,
75600 const t_ARG_03& arg_03,
75601 const t_ARG_04& arg_04,
75602 const t_ARG_05& arg_05,
75603 const t_ARG_06& arg_06,
75604 const t_ARG_07& arg_07,
75605 const t_ARG_08& arg_08,
75606 const t_ARG_09& arg_09,
75608
75609 template <class t_TYPE,
75610 class t_ARG_01,
75611 class t_ARG_02,
75612 class t_ARG_03,
75613 class t_ARG_04,
75614 class t_ARG_05,
75615 class t_ARG_06,
75616 class t_ARG_07,
75617 class t_ARG_08,
75618 class t_ARG_09,
75619 class t_ARG_10>
75620 explicit variant(bsl::in_place_type_t<t_TYPE>,
75621 const t_ARG_01& arg_01,
75622 const t_ARG_02& arg_02,
75623 const t_ARG_03& arg_03,
75624 const t_ARG_04& arg_04,
75625 const t_ARG_05& arg_05,
75626 const t_ARG_06& arg_06,
75627 const t_ARG_07& arg_07,
75628 const t_ARG_08& arg_08,
75629 const t_ARG_09& arg_09,
75630 const t_ARG_10& arg_10,
75632
75633 template <size_t t_INDEX>
75634 explicit variant(bsl::in_place_index_t<t_INDEX>);
75635
75636 template <size_t t_INDEX, class t_ARG_01>
75637 explicit variant(bsl::in_place_index_t<t_INDEX>, const t_ARG_01& arg_01);
75638
75639 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
75640 explicit variant(bsl::in_place_index_t<t_INDEX>,
75641 const t_ARG_01& arg_01,
75642 const t_ARG_02& arg_02);
75643
75644 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
75645 explicit variant(bsl::in_place_index_t<t_INDEX>,
75646 const t_ARG_01& arg_01,
75647 const t_ARG_02& arg_02,
75648 const t_ARG_03& arg_03);
75649
75650 template <size_t t_INDEX,
75651 class t_ARG_01,
75652 class t_ARG_02,
75653 class t_ARG_03,
75654 class t_ARG_04>
75655 explicit variant(bsl::in_place_index_t<t_INDEX>,
75656 const t_ARG_01& arg_01,
75657 const t_ARG_02& arg_02,
75658 const t_ARG_03& arg_03,
75659 const t_ARG_04& arg_04);
75660
75661 template <size_t t_INDEX,
75662 class t_ARG_01,
75663 class t_ARG_02,
75664 class t_ARG_03,
75665 class t_ARG_04,
75666 class t_ARG_05>
75667 explicit variant(bsl::in_place_index_t<t_INDEX>,
75668 const t_ARG_01& arg_01,
75669 const t_ARG_02& arg_02,
75670 const t_ARG_03& arg_03,
75671 const t_ARG_04& arg_04,
75672 const t_ARG_05& arg_05);
75673
75674 template <size_t t_INDEX,
75675 class t_ARG_01,
75676 class t_ARG_02,
75677 class t_ARG_03,
75678 class t_ARG_04,
75679 class t_ARG_05,
75680 class t_ARG_06>
75681 explicit variant(bsl::in_place_index_t<t_INDEX>,
75682 const t_ARG_01& arg_01,
75683 const t_ARG_02& arg_02,
75684 const t_ARG_03& arg_03,
75685 const t_ARG_04& arg_04,
75686 const t_ARG_05& arg_05,
75687 const t_ARG_06& arg_06);
75688
75689 template <size_t t_INDEX,
75690 class t_ARG_01,
75691 class t_ARG_02,
75692 class t_ARG_03,
75693 class t_ARG_04,
75694 class t_ARG_05,
75695 class t_ARG_06,
75696 class t_ARG_07>
75697 explicit variant(bsl::in_place_index_t<t_INDEX>,
75698 const t_ARG_01& arg_01,
75699 const t_ARG_02& arg_02,
75700 const t_ARG_03& arg_03,
75701 const t_ARG_04& arg_04,
75702 const t_ARG_05& arg_05,
75703 const t_ARG_06& arg_06,
75704 const t_ARG_07& arg_07);
75705
75706 template <size_t t_INDEX,
75707 class t_ARG_01,
75708 class t_ARG_02,
75709 class t_ARG_03,
75710 class t_ARG_04,
75711 class t_ARG_05,
75712 class t_ARG_06,
75713 class t_ARG_07,
75714 class t_ARG_08>
75715 explicit variant(bsl::in_place_index_t<t_INDEX>,
75716 const t_ARG_01& arg_01,
75717 const t_ARG_02& arg_02,
75718 const t_ARG_03& arg_03,
75719 const t_ARG_04& arg_04,
75720 const t_ARG_05& arg_05,
75721 const t_ARG_06& arg_06,
75722 const t_ARG_07& arg_07,
75723 const t_ARG_08& arg_08);
75724
75725 template <size_t t_INDEX,
75726 class t_ARG_01,
75727 class t_ARG_02,
75728 class t_ARG_03,
75729 class t_ARG_04,
75730 class t_ARG_05,
75731 class t_ARG_06,
75732 class t_ARG_07,
75733 class t_ARG_08,
75734 class t_ARG_09>
75735 explicit variant(bsl::in_place_index_t<t_INDEX>,
75736 const t_ARG_01& arg_01,
75737 const t_ARG_02& arg_02,
75738 const t_ARG_03& arg_03,
75739 const t_ARG_04& arg_04,
75740 const t_ARG_05& arg_05,
75741 const t_ARG_06& arg_06,
75742 const t_ARG_07& arg_07,
75743 const t_ARG_08& arg_08,
75744 const t_ARG_09& arg_09);
75745
75746 template <size_t t_INDEX,
75747 class t_ARG_01,
75748 class t_ARG_02,
75749 class t_ARG_03,
75750 class t_ARG_04,
75751 class t_ARG_05,
75752 class t_ARG_06,
75753 class t_ARG_07,
75754 class t_ARG_08,
75755 class t_ARG_09,
75756 class t_ARG_10>
75757 explicit variant(bsl::in_place_index_t<t_INDEX>,
75758 const t_ARG_01& arg_01,
75759 const t_ARG_02& arg_02,
75760 const t_ARG_03& arg_03,
75761 const t_ARG_04& arg_04,
75762 const t_ARG_05& arg_05,
75763 const t_ARG_06& arg_06,
75764 const t_ARG_07& arg_07,
75765 const t_ARG_08& arg_08,
75766 const t_ARG_09& arg_09,
75767 const t_ARG_10& arg_10);
75768
75769 variant(bsl::allocator_arg_t, allocator_type allocator);
75770
75771 variant(bsl::allocator_arg_t,
75772 allocator_type allocator,
75773 const variant& original);
75774 variant(bsl::allocator_arg_t,
75775 allocator_type allocator,
75776 BloombergLP::bslmf::MovableRef<variant> original);
75777
75778 template <class t_TYPE>
75779 variant(
75780 bsl::allocator_arg_t,
75781 allocator_type allocator,
75782 const t_TYPE& value,
75784
75785 template <class t_TYPE>
75786 explicit variant(
75787 bsl::allocator_arg_t,
75788 allocator_type allocator,
75791
75792 template <class t_TYPE, class t_ARG_01>
75793 explicit variant(
75794 bsl::allocator_arg_t,
75795 allocator_type allocator,
75797 const t_ARG_01& arg_01,
75799
75800 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
75801 explicit variant(
75802 bsl::allocator_arg_t,
75803 allocator_type allocator,
75805 const t_ARG_01& arg_01,
75806 const t_ARG_02& arg_02,
75808
75809 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
75810 explicit variant(
75811 bsl::allocator_arg_t,
75812 allocator_type allocator,
75814 const t_ARG_01& arg_01,
75815 const t_ARG_02& arg_02,
75816 const t_ARG_03& arg_03,
75818
75819 template <class t_TYPE,
75820 class t_ARG_01,
75821 class t_ARG_02,
75822 class t_ARG_03,
75823 class t_ARG_04>
75824 explicit variant(bsl::allocator_arg_t,
75825 allocator_type allocator,
75827 const t_ARG_01& arg_01,
75828 const t_ARG_02& arg_02,
75829 const t_ARG_03& arg_03,
75830 const t_ARG_04& arg_04,
75832
75833 template <class t_TYPE,
75834 class t_ARG_01,
75835 class t_ARG_02,
75836 class t_ARG_03,
75837 class t_ARG_04,
75838 class t_ARG_05>
75839 explicit variant(bsl::allocator_arg_t,
75840 allocator_type allocator,
75842 const t_ARG_01& arg_01,
75843 const t_ARG_02& arg_02,
75844 const t_ARG_03& arg_03,
75845 const t_ARG_04& arg_04,
75846 const t_ARG_05& arg_05,
75848
75849 template <class t_TYPE,
75850 class t_ARG_01,
75851 class t_ARG_02,
75852 class t_ARG_03,
75853 class t_ARG_04,
75854 class t_ARG_05,
75855 class t_ARG_06>
75856 explicit variant(bsl::allocator_arg_t,
75857 allocator_type allocator,
75859 const t_ARG_01& arg_01,
75860 const t_ARG_02& arg_02,
75861 const t_ARG_03& arg_03,
75862 const t_ARG_04& arg_04,
75863 const t_ARG_05& arg_05,
75864 const t_ARG_06& arg_06,
75866
75867 template <class t_TYPE,
75868 class t_ARG_01,
75869 class t_ARG_02,
75870 class t_ARG_03,
75871 class t_ARG_04,
75872 class t_ARG_05,
75873 class t_ARG_06,
75874 class t_ARG_07>
75875 explicit variant(bsl::allocator_arg_t,
75876 allocator_type allocator,
75878 const t_ARG_01& arg_01,
75879 const t_ARG_02& arg_02,
75880 const t_ARG_03& arg_03,
75881 const t_ARG_04& arg_04,
75882 const t_ARG_05& arg_05,
75883 const t_ARG_06& arg_06,
75884 const t_ARG_07& arg_07,
75886
75887 template <class t_TYPE,
75888 class t_ARG_01,
75889 class t_ARG_02,
75890 class t_ARG_03,
75891 class t_ARG_04,
75892 class t_ARG_05,
75893 class t_ARG_06,
75894 class t_ARG_07,
75895 class t_ARG_08>
75896 explicit variant(bsl::allocator_arg_t,
75897 allocator_type allocator,
75899 const t_ARG_01& arg_01,
75900 const t_ARG_02& arg_02,
75901 const t_ARG_03& arg_03,
75902 const t_ARG_04& arg_04,
75903 const t_ARG_05& arg_05,
75904 const t_ARG_06& arg_06,
75905 const t_ARG_07& arg_07,
75906 const t_ARG_08& arg_08,
75908
75909 template <class t_TYPE,
75910 class t_ARG_01,
75911 class t_ARG_02,
75912 class t_ARG_03,
75913 class t_ARG_04,
75914 class t_ARG_05,
75915 class t_ARG_06,
75916 class t_ARG_07,
75917 class t_ARG_08,
75918 class t_ARG_09>
75919 explicit variant(bsl::allocator_arg_t,
75920 allocator_type allocator,
75922 const t_ARG_01& arg_01,
75923 const t_ARG_02& arg_02,
75924 const t_ARG_03& arg_03,
75925 const t_ARG_04& arg_04,
75926 const t_ARG_05& arg_05,
75927 const t_ARG_06& arg_06,
75928 const t_ARG_07& arg_07,
75929 const t_ARG_08& arg_08,
75930 const t_ARG_09& arg_09,
75932
75933 template <class t_TYPE,
75934 class t_ARG_01,
75935 class t_ARG_02,
75936 class t_ARG_03,
75937 class t_ARG_04,
75938 class t_ARG_05,
75939 class t_ARG_06,
75940 class t_ARG_07,
75941 class t_ARG_08,
75942 class t_ARG_09,
75943 class t_ARG_10>
75944 explicit variant(bsl::allocator_arg_t,
75945 allocator_type allocator,
75947 const t_ARG_01& arg_01,
75948 const t_ARG_02& arg_02,
75949 const t_ARG_03& arg_03,
75950 const t_ARG_04& arg_04,
75951 const t_ARG_05& arg_05,
75952 const t_ARG_06& arg_06,
75953 const t_ARG_07& arg_07,
75954 const t_ARG_08& arg_08,
75955 const t_ARG_09& arg_09,
75956 const t_ARG_10& arg_10,
75958
75959 template <size_t t_INDEX>
75960 explicit variant(bsl::allocator_arg_t,
75961 allocator_type allocator,
75963
75964 template <size_t t_INDEX, class t_ARG_01>
75965 explicit variant(bsl::allocator_arg_t,
75966 allocator_type allocator,
75968 const t_ARG_01& arg_01);
75969
75970 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
75971 explicit variant(bsl::allocator_arg_t,
75972 allocator_type allocator,
75974 const t_ARG_01& arg_01,
75975 const t_ARG_02& arg_02);
75976
75977 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
75978 explicit variant(bsl::allocator_arg_t,
75979 allocator_type allocator,
75981 const t_ARG_01& arg_01,
75982 const t_ARG_02& arg_02,
75983 const t_ARG_03& arg_03);
75984
75985 template <size_t t_INDEX,
75986 class t_ARG_01,
75987 class t_ARG_02,
75988 class t_ARG_03,
75989 class t_ARG_04>
75990 explicit variant(bsl::allocator_arg_t,
75991 allocator_type allocator,
75993 const t_ARG_01& arg_01,
75994 const t_ARG_02& arg_02,
75995 const t_ARG_03& arg_03,
75996 const t_ARG_04& arg_04);
75997
75998 template <size_t t_INDEX,
75999 class t_ARG_01,
76000 class t_ARG_02,
76001 class t_ARG_03,
76002 class t_ARG_04,
76003 class t_ARG_05>
76004 explicit variant(bsl::allocator_arg_t,
76005 allocator_type allocator,
76007 const t_ARG_01& arg_01,
76008 const t_ARG_02& arg_02,
76009 const t_ARG_03& arg_03,
76010 const t_ARG_04& arg_04,
76011 const t_ARG_05& arg_05);
76012
76013 template <size_t t_INDEX,
76014 class t_ARG_01,
76015 class t_ARG_02,
76016 class t_ARG_03,
76017 class t_ARG_04,
76018 class t_ARG_05,
76019 class t_ARG_06>
76020 explicit variant(bsl::allocator_arg_t,
76021 allocator_type allocator,
76023 const t_ARG_01& arg_01,
76024 const t_ARG_02& arg_02,
76025 const t_ARG_03& arg_03,
76026 const t_ARG_04& arg_04,
76027 const t_ARG_05& arg_05,
76028 const t_ARG_06& arg_06);
76029
76030 template <size_t t_INDEX,
76031 class t_ARG_01,
76032 class t_ARG_02,
76033 class t_ARG_03,
76034 class t_ARG_04,
76035 class t_ARG_05,
76036 class t_ARG_06,
76037 class t_ARG_07>
76038 explicit variant(bsl::allocator_arg_t,
76039 allocator_type allocator,
76041 const t_ARG_01& arg_01,
76042 const t_ARG_02& arg_02,
76043 const t_ARG_03& arg_03,
76044 const t_ARG_04& arg_04,
76045 const t_ARG_05& arg_05,
76046 const t_ARG_06& arg_06,
76047 const t_ARG_07& arg_07);
76048
76049 template <size_t t_INDEX,
76050 class t_ARG_01,
76051 class t_ARG_02,
76052 class t_ARG_03,
76053 class t_ARG_04,
76054 class t_ARG_05,
76055 class t_ARG_06,
76056 class t_ARG_07,
76057 class t_ARG_08>
76058 explicit variant(bsl::allocator_arg_t,
76059 allocator_type allocator,
76061 const t_ARG_01& arg_01,
76062 const t_ARG_02& arg_02,
76063 const t_ARG_03& arg_03,
76064 const t_ARG_04& arg_04,
76065 const t_ARG_05& arg_05,
76066 const t_ARG_06& arg_06,
76067 const t_ARG_07& arg_07,
76068 const t_ARG_08& arg_08);
76069
76070 template <size_t t_INDEX,
76071 class t_ARG_01,
76072 class t_ARG_02,
76073 class t_ARG_03,
76074 class t_ARG_04,
76075 class t_ARG_05,
76076 class t_ARG_06,
76077 class t_ARG_07,
76078 class t_ARG_08,
76079 class t_ARG_09>
76080 explicit variant(bsl::allocator_arg_t,
76081 allocator_type allocator,
76083 const t_ARG_01& arg_01,
76084 const t_ARG_02& arg_02,
76085 const t_ARG_03& arg_03,
76086 const t_ARG_04& arg_04,
76087 const t_ARG_05& arg_05,
76088 const t_ARG_06& arg_06,
76089 const t_ARG_07& arg_07,
76090 const t_ARG_08& arg_08,
76091 const t_ARG_09& arg_09);
76092
76093 template <size_t t_INDEX,
76094 class t_ARG_01,
76095 class t_ARG_02,
76096 class t_ARG_03,
76097 class t_ARG_04,
76098 class t_ARG_05,
76099 class t_ARG_06,
76100 class t_ARG_07,
76101 class t_ARG_08,
76102 class t_ARG_09,
76103 class t_ARG_10>
76104 explicit variant(bsl::allocator_arg_t,
76105 allocator_type allocator,
76107 const t_ARG_01& arg_01,
76108 const t_ARG_02& arg_02,
76109 const t_ARG_03& arg_03,
76110 const t_ARG_04& arg_04,
76111 const t_ARG_05& arg_05,
76112 const t_ARG_06& arg_06,
76113 const t_ARG_07& arg_07,
76114 const t_ARG_08& arg_08,
76115 const t_ARG_09& arg_09,
76116 const t_ARG_10& arg_10);
76117
76118#endif
76119
76120
76121#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76122 template <class t_TYPE,
76123 class... t_ARGS,
76124 class = typename bsl::enable_if_t<
76126 std::is_constructible<t_TYPE, t_ARGS...>::value> >
76127 t_TYPE& emplace(t_ARGS&&... args)
76128 {
76129 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
76130 Variant_Base::template baseEmplace<index>(
76131 std::forward<t_ARGS>(args)...);
76132
76133 return bsl::get<index>(*this);
76134 }
76135
76136 template <class t_TYPE,
76137 class INIT_LIST_TYPE,
76138 class... t_ARGS,
76139 class = typename bsl::enable_if_t<
76141 std::is_constructible<t_TYPE,
76142 std::initializer_list<INIT_LIST_TYPE>&,
76143 t_ARGS...>::value> >
76144 t_TYPE& emplace(std::initializer_list<INIT_LIST_TYPE> il, t_ARGS&&... args)
76145 {
76146 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
76147 Variant_Base::template baseEmplace<index>(
76148 il, std::forward<t_ARGS>(args)...);
76149
76150 return bsl::get<index>(*this);
76151 }
76152
76153 template <size_t t_INDEX,
76154 class... t_ARGS,
76155 class = typename bsl::enable_if_t<
76156 (t_INDEX < 1 + sizeof...(t_TAIL)) &&
76157 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
76158 t_ARGS...>::value> >
76159 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76160 emplace(t_ARGS&&... args)
76161 {
76162 Variant_Base::template baseEmplace<t_INDEX>(
76163 std::forward<t_ARGS>(args)...);
76164
76165 return bsl::get<t_INDEX>(*this);
76166 }
76167
76168 template <size_t t_INDEX,
76169 class INIT_LIST_TYPE,
76170 class... t_ARGS,
76171 class = typename bsl::enable_if_t<
76172 (t_INDEX < 1 + sizeof...(t_TAIL)) &&
76173 std::is_constructible<BSLSTL_VARIANT_TYPE_AT_INDEX(t_INDEX),
76174 std::initializer_list<INIT_LIST_TYPE>&,
76175 t_ARGS...>::value> >
76176 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76177 emplace(std::initializer_list<INIT_LIST_TYPE> il, t_ARGS&&... args)
76178 {
76179 Variant_Base::template baseEmplace<t_INDEX>(
76180 il, std::forward<t_ARGS>(args)...);
76181
76182 return bsl::get<t_INDEX>(*this);
76183 }
76184
76185#else
76186
76187 template <class t_TYPE>
76188 typename bsl::enable_if<
76189 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76190 t_TYPE&>::type
76191 emplace();
76192
76193 template <class t_TYPE, class t_ARG_01>
76194 typename bsl::enable_if<
76195 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76196 t_TYPE&>::type
76197 emplace(const t_ARG_01& arg_01);
76198
76199 template <class t_TYPE, class t_ARG_01, class t_ARG_02>
76200 typename bsl::enable_if<
76201 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76202 t_TYPE&>::type
76203 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
76204
76205 template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
76206 typename bsl::enable_if<
76207 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76208 t_TYPE&>::type
76209 emplace(const t_ARG_01& arg_01,
76210 const t_ARG_02& arg_02,
76211 const t_ARG_03& arg_03);
76212
76213 template <class t_TYPE,
76214 class t_ARG_01,
76215 class t_ARG_02,
76216 class t_ARG_03,
76217 class t_ARG_04>
76218 typename bsl::enable_if<
76219 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76220 t_TYPE&>::type
76221 emplace(const t_ARG_01& arg_01,
76222 const t_ARG_02& arg_02,
76223 const t_ARG_03& arg_03,
76224 const t_ARG_04& arg_04);
76225
76226 template <class t_TYPE,
76227 class t_ARG_01,
76228 class t_ARG_02,
76229 class t_ARG_03,
76230 class t_ARG_04,
76231 class t_ARG_05>
76232 typename bsl::enable_if<
76233 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76234 t_TYPE&>::type
76235 emplace(const t_ARG_01& arg_01,
76236 const t_ARG_02& arg_02,
76237 const t_ARG_03& arg_03,
76238 const t_ARG_04& arg_04,
76239 const t_ARG_05& arg_05);
76240
76241 template <class t_TYPE,
76242 class t_ARG_01,
76243 class t_ARG_02,
76244 class t_ARG_03,
76245 class t_ARG_04,
76246 class t_ARG_05,
76247 class t_ARG_06>
76248 typename bsl::enable_if<
76249 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76250 t_TYPE&>::type
76251 emplace(const t_ARG_01& arg_01,
76252 const t_ARG_02& arg_02,
76253 const t_ARG_03& arg_03,
76254 const t_ARG_04& arg_04,
76255 const t_ARG_05& arg_05,
76256 const t_ARG_06& arg_06);
76257
76258 template <class t_TYPE,
76259 class t_ARG_01,
76260 class t_ARG_02,
76261 class t_ARG_03,
76262 class t_ARG_04,
76263 class t_ARG_05,
76264 class t_ARG_06,
76265 class t_ARG_07>
76266 typename bsl::enable_if<
76267 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76268 t_TYPE&>::type
76269 emplace(const t_ARG_01& arg_01,
76270 const t_ARG_02& arg_02,
76271 const t_ARG_03& arg_03,
76272 const t_ARG_04& arg_04,
76273 const t_ARG_05& arg_05,
76274 const t_ARG_06& arg_06,
76275 const t_ARG_07& arg_07);
76276
76277 template <class t_TYPE,
76278 class t_ARG_01,
76279 class t_ARG_02,
76280 class t_ARG_03,
76281 class t_ARG_04,
76282 class t_ARG_05,
76283 class t_ARG_06,
76284 class t_ARG_07,
76285 class t_ARG_08>
76286 typename bsl::enable_if<
76287 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76288 t_TYPE&>::type
76289 emplace(const t_ARG_01& arg_01,
76290 const t_ARG_02& arg_02,
76291 const t_ARG_03& arg_03,
76292 const t_ARG_04& arg_04,
76293 const t_ARG_05& arg_05,
76294 const t_ARG_06& arg_06,
76295 const t_ARG_07& arg_07,
76296 const t_ARG_08& arg_08);
76297
76298 template <class t_TYPE,
76299 class t_ARG_01,
76300 class t_ARG_02,
76301 class t_ARG_03,
76302 class t_ARG_04,
76303 class t_ARG_05,
76304 class t_ARG_06,
76305 class t_ARG_07,
76306 class t_ARG_08,
76307 class t_ARG_09>
76308 typename bsl::enable_if<
76309 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76310 t_TYPE&>::type
76311 emplace(const t_ARG_01& arg_01,
76312 const t_ARG_02& arg_02,
76313 const t_ARG_03& arg_03,
76314 const t_ARG_04& arg_04,
76315 const t_ARG_05& arg_05,
76316 const t_ARG_06& arg_06,
76317 const t_ARG_07& arg_07,
76318 const t_ARG_08& arg_08,
76319 const t_ARG_09& arg_09);
76320
76321 template <class t_TYPE,
76322 class t_ARG_01,
76323 class t_ARG_02,
76324 class t_ARG_03,
76325 class t_ARG_04,
76326 class t_ARG_05,
76327 class t_ARG_06,
76328 class t_ARG_07,
76329 class t_ARG_08,
76330 class t_ARG_09,
76331 class t_ARG_10>
76332 typename bsl::enable_if<
76333 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, variant>::value,
76334 t_TYPE&>::type
76335 emplace(const t_ARG_01& arg_01,
76336 const t_ARG_02& arg_02,
76337 const t_ARG_03& arg_03,
76338 const t_ARG_04& arg_04,
76339 const t_ARG_05& arg_05,
76340 const t_ARG_06& arg_06,
76341 const t_ARG_07& arg_07,
76342 const t_ARG_08& arg_08,
76343 const t_ARG_09& arg_09,
76344 const t_ARG_10& arg_10);
76345
76346 template <size_t t_INDEX>
76347 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76348 emplace();
76349
76350 template <size_t t_INDEX, class t_ARG_01>
76351 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76352 emplace(const t_ARG_01& arg_01);
76353
76354 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
76355 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76356 emplace(const t_ARG_01& arg_01, const t_ARG_02& arg_02);
76357
76358 template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
76359 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76360 emplace(const t_ARG_01& arg_01,
76361 const t_ARG_02& arg_02,
76362 const t_ARG_03& arg_03);
76363
76364 template <size_t t_INDEX,
76365 class t_ARG_01,
76366 class t_ARG_02,
76367 class t_ARG_03,
76368 class t_ARG_04>
76369 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76370 emplace(const t_ARG_01& arg_01,
76371 const t_ARG_02& arg_02,
76372 const t_ARG_03& arg_03,
76373 const t_ARG_04& arg_04);
76374
76375 template <size_t t_INDEX,
76376 class t_ARG_01,
76377 class t_ARG_02,
76378 class t_ARG_03,
76379 class t_ARG_04,
76380 class t_ARG_05>
76381 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76382 emplace(const t_ARG_01& arg_01,
76383 const t_ARG_02& arg_02,
76384 const t_ARG_03& arg_03,
76385 const t_ARG_04& arg_04,
76386 const t_ARG_05& arg_05);
76387
76388 template <size_t t_INDEX,
76389 class t_ARG_01,
76390 class t_ARG_02,
76391 class t_ARG_03,
76392 class t_ARG_04,
76393 class t_ARG_05,
76394 class t_ARG_06>
76395 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76396 emplace(const t_ARG_01& arg_01,
76397 const t_ARG_02& arg_02,
76398 const t_ARG_03& arg_03,
76399 const t_ARG_04& arg_04,
76400 const t_ARG_05& arg_05,
76401 const t_ARG_06& arg_06);
76402
76403 template <size_t t_INDEX,
76404 class t_ARG_01,
76405 class t_ARG_02,
76406 class t_ARG_03,
76407 class t_ARG_04,
76408 class t_ARG_05,
76409 class t_ARG_06,
76410 class t_ARG_07>
76411 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76412 emplace(const t_ARG_01& arg_01,
76413 const t_ARG_02& arg_02,
76414 const t_ARG_03& arg_03,
76415 const t_ARG_04& arg_04,
76416 const t_ARG_05& arg_05,
76417 const t_ARG_06& arg_06,
76418 const t_ARG_07& arg_07);
76419
76420 template <size_t t_INDEX,
76421 class t_ARG_01,
76422 class t_ARG_02,
76423 class t_ARG_03,
76424 class t_ARG_04,
76425 class t_ARG_05,
76426 class t_ARG_06,
76427 class t_ARG_07,
76428 class t_ARG_08>
76429 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76430 emplace(const t_ARG_01& arg_01,
76431 const t_ARG_02& arg_02,
76432 const t_ARG_03& arg_03,
76433 const t_ARG_04& arg_04,
76434 const t_ARG_05& arg_05,
76435 const t_ARG_06& arg_06,
76436 const t_ARG_07& arg_07,
76437 const t_ARG_08& arg_08);
76438
76439 template <size_t t_INDEX,
76440 class t_ARG_01,
76441 class t_ARG_02,
76442 class t_ARG_03,
76443 class t_ARG_04,
76444 class t_ARG_05,
76445 class t_ARG_06,
76446 class t_ARG_07,
76447 class t_ARG_08,
76448 class t_ARG_09>
76449 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76450 emplace(const t_ARG_01& arg_01,
76451 const t_ARG_02& arg_02,
76452 const t_ARG_03& arg_03,
76453 const t_ARG_04& arg_04,
76454 const t_ARG_05& arg_05,
76455 const t_ARG_06& arg_06,
76456 const t_ARG_07& arg_07,
76457 const t_ARG_08& arg_08,
76458 const t_ARG_09& arg_09);
76459
76460 template <size_t t_INDEX,
76461 class t_ARG_01,
76462 class t_ARG_02,
76463 class t_ARG_03,
76464 class t_ARG_04,
76465 class t_ARG_05,
76466 class t_ARG_06,
76467 class t_ARG_07,
76468 class t_ARG_08,
76469 class t_ARG_09,
76470 class t_ARG_10>
76471 typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
76472 emplace(const t_ARG_01& arg_01,
76473 const t_ARG_02& arg_02,
76474 const t_ARG_03& arg_03,
76475 const t_ARG_04& arg_04,
76476 const t_ARG_05& arg_05,
76477 const t_ARG_06& arg_06,
76478 const t_ARG_07& arg_07,
76479 const t_ARG_08& arg_08,
76480 const t_ARG_09& arg_09,
76481 const t_ARG_10& arg_10);
76482#endif
76483
76484#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76485 variant& operator=(const variant& rhs) = default;
76486
76487 variant& operator=(variant&& rhs) = default;
76488
76489 template <class t_TYPE>
76490 typename bsl::enable_if<
76491 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
76492 variant&>::type
76493 operator=(t_TYPE&& value)
76494 {
76495 const size_t altIndex =
76496 BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
76497
76498 if (index() == altIndex) {
76499 bsl::get<altIndex>(*this) = std::forward<t_TYPE>(value);
76500 }
76501 else {
76502 Variant_Base::template baseEmplace<altIndex>(
76503 std::forward<t_TYPE>(value));
76504 }
76505
76506 return *this;
76507 }
76508#else
76509 variant& operator=(const variant& rhs);
76510
76511 variant& operator=(BloombergLP::bslmf::MovableRef<variant> rhs);
76512
76513 template <class t_TYPE>
76514 typename bsl::enable_if<
76515 BloombergLP::bslstl::Variant_AssignsFromType<variant, t_TYPE>::value,
76516 variant&>::type
76517 operator=(const t_TYPE& value);
76518
76519#endif
76520
76521 void swap(variant& other);
76522
76523#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76524 template <bool t_USES_BSLMA_ALLOC = BloombergLP::bslstl::
76525 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value,
76526 class = typename bsl::enable_if_t<t_USES_BSLMA_ALLOC> >
76527#endif
76528 allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
76529 {
76530 return allocator_type(Variant_Base::AllocBase::mechanism());
76531 }
76532
76533
76534 size_t index() const BSLS_KEYWORD_NOEXCEPT;
76535
76536 bool valueless_by_exception() const BSLS_KEYWORD_NOEXCEPT;
76537};
76538
76539// }}} END GENERATED CODE
76540#endif
76541
76542} // close namespace bsl
76543
76544// ============================================================================
76545// INLINE DEFINITIONS
76546// ============================================================================
76547
76548
76549namespace bslstl {
76550
76551 // ---------------------
76552 // class Variant_ImpUtil
76553 // ---------------------
76554
76555template <class t_RET, class t_VARIANT_UNION>
76556t_RET& Variant_ImpUtil::getAlternative(
76558 t_VARIANT_UNION& variantUnion) BSLS_KEYWORD_NOEXCEPT
76559{
76560 return variantUnion.d_head.value();
76561}
76562
76563template <class t_RET, size_t t_INDEX, class t_VARIANT_UNION>
76564t_RET& Variant_ImpUtil::getAlternative(
76566 t_VARIANT_UNION& variantUnion) BSLS_KEYWORD_NOEXCEPT
76567{
76568 return getAlternative<t_RET>(bsl::in_place_index_t<t_INDEX - 1>(),
76569 variantUnion.d_tail);
76570}
76571
76572template <class t_RET, size_t t_INDEX, class t_VARIANT>
76573t_RET& Variant_ImpUtil::get(t_VARIANT& variant)
76574{
76575 if (variant.index() != t_INDEX) {
76576 BSLS_THROW(bsl::bad_variant_access());
76577 }
76578
76579 return getAlternative<t_RET>(bsl::in_place_index_t<t_INDEX>(),
76580 variant.d_union);
76581}
76582
76583template <class t_RET, size_t t_INDEX, class t_VARIANT>
76584t_RET& Variant_ImpUtil::get(const t_VARIANT& variant)
76585{
76586 if (variant.index() != t_INDEX) {
76587 BSLS_THROW(bsl::bad_variant_access());
76588 }
76589
76590 return getAlternative<t_RET>(bsl::in_place_index_t<t_INDEX>(),
76591 variant.d_union);
76592}
76593
76594#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76595template <class t_RET, class t_VISITOR, class t_VARIANT>
76596t_RET Variant_ImpUtil::visit(t_VISITOR&& visitor, t_VARIANT&& variant)
76597{
76598 static constexpr size_t varSize =
76600
76601 typedef typename Variant_VTable<
76602 t_RET,
76603 t_VISITOR&&,
76604 t_VARIANT&&,
76605 bslmf::MakeIntegerSequence<std::size_t, varSize> >::FuncPtr FuncPtr;
76606
76607 // Generate the table of all function pointers for 't_VISITOR' and
76608 // 't_VARIANT', then invoke the one corresponding to the active index.
76609 FuncPtr funcPtr =
76610 Variant_VTable<t_RET,
76611 t_VISITOR&&,
76612 t_VARIANT&&,
76613 bslmf::MakeIntegerSequence<std::size_t, varSize> >::
76614 s_map[variant.index()];
76615
76616 return (*funcPtr)(std::forward<t_VISITOR>(visitor),
76617 std::forward<t_VARIANT>(variant));
76618}
76619template <class t_RET, class t_VISITOR, class t_VARIANT>
76620t_RET Variant_ImpUtil::visitId(t_VISITOR&& visitor, t_VARIANT&& variant)
76621{
76622 static constexpr size_t varSize =
76624
76625 typedef typename Variant_VTableId<
76626 t_RET,
76627 t_VISITOR&&,
76628 t_VARIANT&&,
76629 bslmf::MakeIntegerSequence<std::size_t, varSize> >::FuncPtr FuncPtr;
76630
76631 FuncPtr funcPtr =
76632 Variant_VTableId<t_RET,
76633 t_VISITOR&&,
76634 t_VARIANT&&,
76635 bslmf::MakeIntegerSequence<std::size_t, varSize> >::
76636 s_mapId[variant.index()];
76637
76638 return (*funcPtr)(std::forward<t_VISITOR>(visitor),
76639 std::forward<t_VARIANT>(variant));
76640}
76641
76642#else
76643template <class t_RET, size_t t_INDEX, class t_VARIANT>
76644t_RET& Variant_ImpUtil::unsafeGet(t_VARIANT& variant)
76645{
76646 return getAlternative<t_RET>(bsl::in_place_index_t<t_INDEX>(),
76647 variant.d_union);
76648}
76649
76650template <class t_RET, size_t t_INDEX, class t_VARIANT>
76651t_RET& Variant_ImpUtil::unsafeGet(const t_VARIANT& variant)
76652{
76653 return getAlternative<t_RET>(bsl::in_place_index_t<t_INDEX>(),
76654 variant.d_union);
76655}
76656
76657template <class t_TYPE, class t_VARIANT>
76658t_TYPE& Variant_ImpUtil::unsafeGet(t_VARIANT& obj)
76659{
76660 return unsafeGet<t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)>(
76661 obj);
76662}
76663
76664template <class t_TYPE, class t_VARIANT>
76665const t_TYPE& Variant_ImpUtil::unsafeGet(const t_VARIANT& obj)
76666{
76667 return unsafeGet<const t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)>(
76668 obj);
76669}
76670
76671template <class t_RET, class t_VISITOR, class t_VARIANT>
76672t_RET Variant_ImpUtil::visit(t_VISITOR& visitor, t_VARIANT& variant)
76673{
76674 typedef
76675 typename Variant_VTable<t_RET, t_VISITOR, t_VARIANT>::FuncPtr FuncPtr;
76676
76677 // Generate the table of all function pointers for 't_VISITOR' and
76678 // 't_VARIANT', then invoke the one corresponding to the active index.
76679 FuncPtr funcPtr =
76680 Variant_VTable<t_RET, t_VISITOR, t_VARIANT>::map()[variant.index()];
76681
76682 return (*funcPtr)(visitor, variant);
76683}
76684
76685template <class t_RET, class t_VISITOR, class t_VARIANT>
76686t_RET Variant_ImpUtil::visit(t_VISITOR& visitor, const t_VARIANT& variant)
76687{
76688 typedef typename Variant_VTable<t_RET, t_VISITOR, const t_VARIANT>::FuncPtr
76689 FuncPtr;
76690
76691 // Generate the table of all function pointers for 't_VISITOR' and
76692 // 't_VARIANT', then invoke the one corresponding to the active index.
76693 FuncPtr funcPtr =
76694 Variant_VTable<t_RET, t_VISITOR, const t_VARIANT>::map()[variant
76695 .index()];
76696
76697 return (*funcPtr)(visitor, variant);
76698}
76699
76700template <class t_RET, class t_VISITOR, class t_VARIANT>
76701t_RET Variant_ImpUtil::moveVisit(t_VISITOR& visitor, t_VARIANT& variant)
76702{
76703 typedef
76704 typename Variant_VTable<t_RET, t_VISITOR, t_VARIANT>::FuncPtr FuncPtr;
76705
76706 // Generate the table of all function pointers for 't_VISITOR' and
76707 // 't_VARIANT', then invoke the one corresponding to the active index.
76708 FuncPtr funcPtr =
76709 Variant_VTable<t_RET, t_VISITOR, t_VARIANT>::moveMap()[variant
76710 .index()];
76711
76712 return (*funcPtr)(visitor, variant);
76713}
76714
76715// The visitation functions below are the same as the ones above except that
76716// the visitor is invoked with an additional argument of type
76717// 'bsl::in_place_index_t'. They are used internally for visitors that
76718// participate in the 'variant' implementation.
76719template <class t_RET, class t_VISITOR, class t_VARIANT>
76720t_RET Variant_ImpUtil::visitId(t_VISITOR& visitor, t_VARIANT& variant)
76721{
76722 typedef
76723 typename Variant_VTable<t_RET, t_VISITOR, t_VARIANT>::FuncPtr FuncPtr;
76724
76725 FuncPtr funcPtr =
76726 Variant_VTable<t_RET, t_VISITOR, t_VARIANT>::mapId()[variant.index()];
76727
76728 return (*funcPtr)(visitor, variant);
76729}
76730
76731template <class t_RET, class t_VISITOR, class t_VARIANT>
76732t_RET Variant_ImpUtil::visitId(t_VISITOR& visitor, const t_VARIANT& variant)
76733{
76734 typedef typename Variant_VTable<t_RET, t_VISITOR, const t_VARIANT>::FuncPtr
76735 FuncPtr;
76736
76737 FuncPtr funcPtr = Variant_VTable<t_RET, t_VISITOR, const t_VARIANT>::
76738 mapId()[variant.index()];
76739
76740 return (*funcPtr)(visitor, variant);
76741}
76742
76743#endif // BSL_VARIANT_FULL_IMPLEMENTATION
76744
76745#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
76746 // ----------------------------------------------
76747 // class Variant_ImpUtil::ConstructFromStdVisitor
76748 // ----------------------------------------------
76749
76750template <class t_VARIANT, class t_STD_VARIANT>
76751Variant_ImpUtil::ConstructFromStdVisitor<t_VARIANT, t_STD_VARIANT>::
76752 ConstructFromStdVisitor(t_VARIANT& target, t_STD_VARIANT& original)
76753: d_target(target)
76754, d_original(original)
76755{
76756}
76757
76758template <class t_VARIANT, class t_STD_VARIANT>
76759template <size_t t_INDEX, class t_TYPE>
76760void
76761Variant_ImpUtil::ConstructFromStdVisitor<t_VARIANT, t_STD_VARIANT>::
76762 operator()(bsl::in_place_index_t<t_INDEX>, t_TYPE&) const
76763{
76764 // Implementation note: calling the correct overload of 'operator()' is
76765 // made possible only by the fact that we have set 'd_target.d_type' to
76766 // 'd_original.index()' prior to invoking the visitor. But we must now use
76767 // private access to 'd_target' to set the index to -1 before we call
76768 // 'baseEmplace' (otherwise, 'baseEmplace' would attempt to destroy the
76769 // alternative first before constructing a new one).
76770
76771 d_target.d_type = bsl::variant_npos;
76772 d_target.template baseEmplace<t_INDEX>(
76773 std::get<t_INDEX>(std::forward<t_STD_VARIANT>(d_original)));
76774}
76775#endif // BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
76776
76777 // ------------------------
76778 // class Variant_NoSuchType
76779 // ------------------------
76780
76781// CREATORS
76782inline
76783BSLS_KEYWORD_CONSTEXPR Variant_NoSuchType::Variant_NoSuchType(
76785{
76786}
76787
76788 // ---------------------
76789 // class Variant_DataImp
76790 // ---------------------
76791
76792#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76793// CREATORS
76794template <class t_TYPE>
76795template <class... t_ARGS>
76796inline
76797Variant_DataImp<t_TYPE>::Variant_DataImp(t_ARGS&&... args)
76798{
76799 BloombergLP::bslma::ConstructionUtil::construct(
76800 d_buffer.address(), std::forward<t_ARGS>(args)...);
76801}
76802#endif // BSL_VARIANT_FULL_IMPLEMENTATION
76803
76804// MANIPULATORS
76805#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76806template <class t_TYPE>
76807inline
76808BSLS_KEYWORD_CONSTEXPR_CPP14 t_TYPE& Variant_DataImp<t_TYPE>::value() &
76809{
76810 return d_buffer.object();
76811}
76812
76813template <class t_TYPE>
76814inline
76815BSLS_KEYWORD_CONSTEXPR_CPP14 t_TYPE&& Variant_DataImp<t_TYPE>::value() &&
76816{
76817 return std::move(d_buffer.object());
76818}
76819#else // BSL_VARIANT_FULL_IMPLEMENTATION
76820template <class t_TYPE>
76821inline
76822t_TYPE& Variant_DataImp<t_TYPE>::value()
76823{
76824 return d_buffer.object();
76825}
76826#endif // BSL_VARIANT_FULL_IMPLEMENTATION
76827
76828// ACCESSORS
76829#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76830template <class t_TYPE>
76831inline
76832BSLS_KEYWORD_CONSTEXPR_CPP14 const t_TYPE& Variant_DataImp<t_TYPE>::value()
76833const&
76834{
76835 return d_buffer.object();
76836}
76837
76838template <class t_TYPE>
76839inline
76840BSLS_KEYWORD_CONSTEXPR_CPP14 const t_TYPE&& Variant_DataImp<t_TYPE>::value()
76841const&&
76842{
76843 return std::move(d_buffer.object());
76844}
76845#else // BSL_VARIANT_FULL_IMPLEMENTATION
76846template <class t_TYPE>
76847inline
76848const t_TYPE& Variant_DataImp<t_TYPE>::value() const
76849{
76850 return d_buffer.object();
76851}
76852#endif // BSL_VARIANT_FULL_IMPLEMENTATION
76853
76854/// This component-private function swaps the values of the specified `lhs`
76855/// and `rhs` when the type (template parameter) `t_VARIANT` is an
76856/// allocator-aware variant.
76857template <class t_VARIANT>
76858void variant_swapImpl(bsl::true_type, t_VARIANT& lhs, t_VARIANT& rhs)
76859{
76860 if (lhs.get_allocator() == rhs.get_allocator()) {
76861 lhs.swap(rhs);
76862 return; // RETURN
76863 }
76864
76865 t_VARIANT futureLhs(bsl::allocator_arg, lhs.get_allocator(), rhs);
76866 t_VARIANT futureRhs(bsl::allocator_arg, rhs.get_allocator(), lhs);
76867
76868 futureLhs.swap(lhs);
76869 futureRhs.swap(rhs);
76870}
76871
76872/// This component-private function swaps the values of the specified `lhs`
76873/// and `rhs` when the type (template parameter) `t_VARIANT` is a
76874/// non-allocator-aware variant.
76875template <class t_VARIANT>
76876void variant_swapImpl(bsl::false_type, t_VARIANT& lhs, t_VARIANT& rhs)
76877{
76878 lhs.swap(rhs);
76879}
76880
76881 // -------------------
76882 // struct Variant_Base
76883 // -------------------
76884
76885// CREATORS
76886#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
76887template <class t_HEAD, class... t_TAIL>
76888inline
76889Variant_Base<t_HEAD, t_TAIL...>::Variant_Base()
76890: AllocBase()
76891, d_type(0)
76892, d_union(bsl::in_place_index_t<0>(), AllocBase::mechanism())
76893{
76894}
76895
76896template <class t_HEAD, class... t_TAIL>
76897inline
76898Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(const Variant_Base& original)
76899: AllocBase()
76900, d_type(bsl::variant_npos)
76901{
76902 if (original.d_type != bsl::variant_npos) {
76903 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
76904 copyConstructor(this);
76906 void, copyConstructor, static_cast<const Variant&>(original));
76907 }
76908}
76909
76910template <class t_HEAD, class... t_TAIL>
76911inline
76912Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(Variant_Base&& original)
76913: AllocBase(original)
76914, d_type(bsl::variant_npos)
76915{
76916 if (original.d_type != bsl::variant_npos) {
76917 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
76918 moveConstructor(this);
76920 void, moveConstructor, static_cast<Variant&>(original));
76921 }
76922}
76923
76924#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
76925template <class t_HEAD, class... t_TAIL>
76926Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(Variant_ConstructFromStdTag,
76927 size_t index)
76928: AllocBase()
76929, d_type(index)
76930{
76931}
76932#endif // BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
76933
76934template <class t_HEAD, class... t_TAIL>
76935inline
76936Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
76937 allocator_type allocator)
76938: AllocBase(allocator)
76939, d_type(0)
76940, d_union(bsl::in_place_index_t<0>(), AllocBase::mechanism())
76941{
76942}
76943
76944template <class t_HEAD, class... t_TAIL>
76945inline
76946Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
76947 allocator_type allocator,
76948 const Variant& original)
76949: AllocBase(allocator)
76950, d_type(bsl::variant_npos)
76951{
76952 if (original.index() != bsl::variant_npos) {
76953 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
76954 copyConstructor(this);
76955 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
76956 }
76957}
76958
76959template <class t_HEAD, class... t_TAIL>
76960inline
76961Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
76962 allocator_type allocator,
76963 Variant&& original)
76964: AllocBase(allocator)
76965, d_type(bsl::variant_npos)
76966{
76967 if (original.index() != bsl::variant_npos) {
76968 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
76969 moveConstructor(this);
76970 BSLSTL_VARIANT_VISITID(void, moveConstructor, original);
76971 }
76972}
76973
76974#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
76975template <class t_HEAD, class... t_TAIL>
76976Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
76977 allocator_type allocator,
76978 Variant_ConstructFromStdTag,
76979 size_t index)
76980: AllocBase(allocator)
76981, d_type(index)
76982{
76983}
76984#endif // BSLS_LIBRARYFEATURES_HAS_CPP17_BASELINE_LIBRARY
76985
76986template <class t_HEAD, class... t_TAIL>
76987template <size_t t_INDEX, class... t_ARGS>
76988inline
76989Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
76990 t_ARGS&&... args)
76991: d_type(t_INDEX)
76992, d_union(bsl::in_place_index_t<t_INDEX>(),
76993 AllocBase::mechanism(),
76994 std::forward<t_ARGS>(args)...)
76995{
76996}
76997
76998template <class t_HEAD, class... t_TAIL>
76999template <size_t t_INDEX, class... t_ARGS>
77000inline
77001Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
77002 allocator_type allocator,
77004 t_ARGS&&... args)
77005: AllocBase(allocator)
77006, d_type(t_INDEX)
77007, d_union(bsl::in_place_index_t<t_INDEX>(),
77008 AllocBase::mechanism(),
77009 std::forward<t_ARGS>(args)...)
77010{
77011}
77012#else // BSL_VARIANT_FULL_IMPLEMENTATION
77013#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
77014// {{{ BEGIN GENERATED CODE
77015// Command line: sim_cpp11_features.pl bslstl_variant.h
77016#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
77017#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
77018#endif
77019#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_L
77020#define BSLSTL_VARIANT_VARIADIC_LIMIT_L BSLSTL_VARIANT_VARIADIC_LIMIT
77021#endif
77022#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
77023template <class t_HEAD>
77024inline
77025Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base()
77026: AllocBase()
77027, d_type(0)
77028{
77029 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77030
77031 BloombergLP::bslma::ConstructionUtil::construct(
77032 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77033 AllocBase::mechanism());
77034}
77035#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
77036
77037#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
77038template <class t_HEAD, class t_TAIL_01>
77039inline
77040Variant_Base<t_HEAD, t_TAIL_01,
77041 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base()
77042: AllocBase()
77043, d_type(0)
77044{
77045 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77046
77047 BloombergLP::bslma::ConstructionUtil::construct(
77048 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77049 AllocBase::mechanism());
77050}
77051#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
77052
77053#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
77054template <class t_HEAD, class t_TAIL_01,
77055 class t_TAIL_02>
77056inline
77057Variant_Base<t_HEAD, t_TAIL_01,
77058 t_TAIL_02,
77059 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base()
77060: AllocBase()
77061, d_type(0)
77062{
77063 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77064
77065 BloombergLP::bslma::ConstructionUtil::construct(
77066 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77067 AllocBase::mechanism());
77068}
77069#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
77070
77071#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
77072template <class t_HEAD, class t_TAIL_01,
77073 class t_TAIL_02,
77074 class t_TAIL_03>
77075inline
77076Variant_Base<t_HEAD, t_TAIL_01,
77077 t_TAIL_02,
77078 t_TAIL_03,
77079 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base()
77080: AllocBase()
77081, d_type(0)
77082{
77083 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77084
77085 BloombergLP::bslma::ConstructionUtil::construct(
77086 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77087 AllocBase::mechanism());
77088}
77089#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
77090
77091#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
77092template <class t_HEAD, class t_TAIL_01,
77093 class t_TAIL_02,
77094 class t_TAIL_03,
77095 class t_TAIL_04>
77096inline
77097Variant_Base<t_HEAD, t_TAIL_01,
77098 t_TAIL_02,
77099 t_TAIL_03,
77100 t_TAIL_04,
77101 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base()
77102: AllocBase()
77103, d_type(0)
77104{
77105 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77106
77107 BloombergLP::bslma::ConstructionUtil::construct(
77108 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77109 AllocBase::mechanism());
77110}
77111#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
77112
77113#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
77114template <class t_HEAD, class t_TAIL_01,
77115 class t_TAIL_02,
77116 class t_TAIL_03,
77117 class t_TAIL_04,
77118 class t_TAIL_05>
77119inline
77120Variant_Base<t_HEAD, t_TAIL_01,
77121 t_TAIL_02,
77122 t_TAIL_03,
77123 t_TAIL_04,
77124 t_TAIL_05,
77125 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base()
77126: AllocBase()
77127, d_type(0)
77128{
77129 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77130
77131 BloombergLP::bslma::ConstructionUtil::construct(
77132 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77133 AllocBase::mechanism());
77134}
77135#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
77136
77137#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
77138template <class t_HEAD, class t_TAIL_01,
77139 class t_TAIL_02,
77140 class t_TAIL_03,
77141 class t_TAIL_04,
77142 class t_TAIL_05,
77143 class t_TAIL_06>
77144inline
77145Variant_Base<t_HEAD, t_TAIL_01,
77146 t_TAIL_02,
77147 t_TAIL_03,
77148 t_TAIL_04,
77149 t_TAIL_05,
77150 t_TAIL_06,
77151 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base()
77152: AllocBase()
77153, d_type(0)
77154{
77155 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77156
77157 BloombergLP::bslma::ConstructionUtil::construct(
77158 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77159 AllocBase::mechanism());
77160}
77161#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
77162
77163#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
77164template <class t_HEAD, class t_TAIL_01,
77165 class t_TAIL_02,
77166 class t_TAIL_03,
77167 class t_TAIL_04,
77168 class t_TAIL_05,
77169 class t_TAIL_06,
77170 class t_TAIL_07>
77171inline
77172Variant_Base<t_HEAD, t_TAIL_01,
77173 t_TAIL_02,
77174 t_TAIL_03,
77175 t_TAIL_04,
77176 t_TAIL_05,
77177 t_TAIL_06,
77178 t_TAIL_07,
77179 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base()
77180: AllocBase()
77181, d_type(0)
77182{
77183 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77184
77185 BloombergLP::bslma::ConstructionUtil::construct(
77186 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77187 AllocBase::mechanism());
77188}
77189#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
77190
77191#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
77192template <class t_HEAD, class t_TAIL_01,
77193 class t_TAIL_02,
77194 class t_TAIL_03,
77195 class t_TAIL_04,
77196 class t_TAIL_05,
77197 class t_TAIL_06,
77198 class t_TAIL_07,
77199 class t_TAIL_08>
77200inline
77201Variant_Base<t_HEAD, t_TAIL_01,
77202 t_TAIL_02,
77203 t_TAIL_03,
77204 t_TAIL_04,
77205 t_TAIL_05,
77206 t_TAIL_06,
77207 t_TAIL_07,
77208 t_TAIL_08,
77209 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base()
77210: AllocBase()
77211, d_type(0)
77212{
77213 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77214
77215 BloombergLP::bslma::ConstructionUtil::construct(
77216 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77217 AllocBase::mechanism());
77218}
77219#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
77220
77221#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
77222template <class t_HEAD, class t_TAIL_01,
77223 class t_TAIL_02,
77224 class t_TAIL_03,
77225 class t_TAIL_04,
77226 class t_TAIL_05,
77227 class t_TAIL_06,
77228 class t_TAIL_07,
77229 class t_TAIL_08,
77230 class t_TAIL_09>
77231inline
77232Variant_Base<t_HEAD, t_TAIL_01,
77233 t_TAIL_02,
77234 t_TAIL_03,
77235 t_TAIL_04,
77236 t_TAIL_05,
77237 t_TAIL_06,
77238 t_TAIL_07,
77239 t_TAIL_08,
77240 t_TAIL_09,
77241 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base()
77242: AllocBase()
77243, d_type(0)
77244{
77245 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77246
77247 BloombergLP::bslma::ConstructionUtil::construct(
77248 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77249 AllocBase::mechanism());
77250}
77251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
77252
77253#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
77254template <class t_HEAD, class t_TAIL_01,
77255 class t_TAIL_02,
77256 class t_TAIL_03,
77257 class t_TAIL_04,
77258 class t_TAIL_05,
77259 class t_TAIL_06,
77260 class t_TAIL_07,
77261 class t_TAIL_08,
77262 class t_TAIL_09,
77263 class t_TAIL_10>
77264inline
77265Variant_Base<t_HEAD, t_TAIL_01,
77266 t_TAIL_02,
77267 t_TAIL_03,
77268 t_TAIL_04,
77269 t_TAIL_05,
77270 t_TAIL_06,
77271 t_TAIL_07,
77272 t_TAIL_08,
77273 t_TAIL_09,
77274 t_TAIL_10,
77275 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base()
77276: AllocBase()
77277, d_type(0)
77278{
77279 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77280
77281 BloombergLP::bslma::ConstructionUtil::construct(
77282 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77283 AllocBase::mechanism());
77284}
77285#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
77286
77287#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
77288template <class t_HEAD, class t_TAIL_01,
77289 class t_TAIL_02,
77290 class t_TAIL_03,
77291 class t_TAIL_04,
77292 class t_TAIL_05,
77293 class t_TAIL_06,
77294 class t_TAIL_07,
77295 class t_TAIL_08,
77296 class t_TAIL_09,
77297 class t_TAIL_10,
77298 class t_TAIL_11>
77299inline
77300Variant_Base<t_HEAD, t_TAIL_01,
77301 t_TAIL_02,
77302 t_TAIL_03,
77303 t_TAIL_04,
77304 t_TAIL_05,
77305 t_TAIL_06,
77306 t_TAIL_07,
77307 t_TAIL_08,
77308 t_TAIL_09,
77309 t_TAIL_10,
77310 t_TAIL_11,
77311 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base()
77312: AllocBase()
77313, d_type(0)
77314{
77315 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77316
77317 BloombergLP::bslma::ConstructionUtil::construct(
77318 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77319 AllocBase::mechanism());
77320}
77321#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
77322
77323#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
77324template <class t_HEAD, class t_TAIL_01,
77325 class t_TAIL_02,
77326 class t_TAIL_03,
77327 class t_TAIL_04,
77328 class t_TAIL_05,
77329 class t_TAIL_06,
77330 class t_TAIL_07,
77331 class t_TAIL_08,
77332 class t_TAIL_09,
77333 class t_TAIL_10,
77334 class t_TAIL_11,
77335 class t_TAIL_12>
77336inline
77337Variant_Base<t_HEAD, t_TAIL_01,
77338 t_TAIL_02,
77339 t_TAIL_03,
77340 t_TAIL_04,
77341 t_TAIL_05,
77342 t_TAIL_06,
77343 t_TAIL_07,
77344 t_TAIL_08,
77345 t_TAIL_09,
77346 t_TAIL_10,
77347 t_TAIL_11,
77348 t_TAIL_12,
77349 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base()
77350: AllocBase()
77351, d_type(0)
77352{
77353 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77354
77355 BloombergLP::bslma::ConstructionUtil::construct(
77356 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77357 AllocBase::mechanism());
77358}
77359#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
77360
77361#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
77362template <class t_HEAD, class t_TAIL_01,
77363 class t_TAIL_02,
77364 class t_TAIL_03,
77365 class t_TAIL_04,
77366 class t_TAIL_05,
77367 class t_TAIL_06,
77368 class t_TAIL_07,
77369 class t_TAIL_08,
77370 class t_TAIL_09,
77371 class t_TAIL_10,
77372 class t_TAIL_11,
77373 class t_TAIL_12,
77374 class t_TAIL_13>
77375inline
77376Variant_Base<t_HEAD, t_TAIL_01,
77377 t_TAIL_02,
77378 t_TAIL_03,
77379 t_TAIL_04,
77380 t_TAIL_05,
77381 t_TAIL_06,
77382 t_TAIL_07,
77383 t_TAIL_08,
77384 t_TAIL_09,
77385 t_TAIL_10,
77386 t_TAIL_11,
77387 t_TAIL_12,
77388 t_TAIL_13,
77389 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base()
77390: AllocBase()
77391, d_type(0)
77392{
77393 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77394
77395 BloombergLP::bslma::ConstructionUtil::construct(
77396 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77397 AllocBase::mechanism());
77398}
77399#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
77400
77401#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
77402template <class t_HEAD, class t_TAIL_01,
77403 class t_TAIL_02,
77404 class t_TAIL_03,
77405 class t_TAIL_04,
77406 class t_TAIL_05,
77407 class t_TAIL_06,
77408 class t_TAIL_07,
77409 class t_TAIL_08,
77410 class t_TAIL_09,
77411 class t_TAIL_10,
77412 class t_TAIL_11,
77413 class t_TAIL_12,
77414 class t_TAIL_13,
77415 class t_TAIL_14>
77416inline
77417Variant_Base<t_HEAD, t_TAIL_01,
77418 t_TAIL_02,
77419 t_TAIL_03,
77420 t_TAIL_04,
77421 t_TAIL_05,
77422 t_TAIL_06,
77423 t_TAIL_07,
77424 t_TAIL_08,
77425 t_TAIL_09,
77426 t_TAIL_10,
77427 t_TAIL_11,
77428 t_TAIL_12,
77429 t_TAIL_13,
77430 t_TAIL_14,
77431 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base()
77432: AllocBase()
77433, d_type(0)
77434{
77435 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77436
77437 BloombergLP::bslma::ConstructionUtil::construct(
77438 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77439 AllocBase::mechanism());
77440}
77441#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
77442
77443#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
77444template <class t_HEAD, class t_TAIL_01,
77445 class t_TAIL_02,
77446 class t_TAIL_03,
77447 class t_TAIL_04,
77448 class t_TAIL_05,
77449 class t_TAIL_06,
77450 class t_TAIL_07,
77451 class t_TAIL_08,
77452 class t_TAIL_09,
77453 class t_TAIL_10,
77454 class t_TAIL_11,
77455 class t_TAIL_12,
77456 class t_TAIL_13,
77457 class t_TAIL_14,
77458 class t_TAIL_15>
77459inline
77460Variant_Base<t_HEAD, t_TAIL_01,
77461 t_TAIL_02,
77462 t_TAIL_03,
77463 t_TAIL_04,
77464 t_TAIL_05,
77465 t_TAIL_06,
77466 t_TAIL_07,
77467 t_TAIL_08,
77468 t_TAIL_09,
77469 t_TAIL_10,
77470 t_TAIL_11,
77471 t_TAIL_12,
77472 t_TAIL_13,
77473 t_TAIL_14,
77474 t_TAIL_15,
77475 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base()
77476: AllocBase()
77477, d_type(0)
77478{
77479 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77480
77481 BloombergLP::bslma::ConstructionUtil::construct(
77482 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77483 AllocBase::mechanism());
77484}
77485#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
77486
77487#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
77488template <class t_HEAD, class t_TAIL_01,
77489 class t_TAIL_02,
77490 class t_TAIL_03,
77491 class t_TAIL_04,
77492 class t_TAIL_05,
77493 class t_TAIL_06,
77494 class t_TAIL_07,
77495 class t_TAIL_08,
77496 class t_TAIL_09,
77497 class t_TAIL_10,
77498 class t_TAIL_11,
77499 class t_TAIL_12,
77500 class t_TAIL_13,
77501 class t_TAIL_14,
77502 class t_TAIL_15,
77503 class t_TAIL_16>
77504inline
77505Variant_Base<t_HEAD, t_TAIL_01,
77506 t_TAIL_02,
77507 t_TAIL_03,
77508 t_TAIL_04,
77509 t_TAIL_05,
77510 t_TAIL_06,
77511 t_TAIL_07,
77512 t_TAIL_08,
77513 t_TAIL_09,
77514 t_TAIL_10,
77515 t_TAIL_11,
77516 t_TAIL_12,
77517 t_TAIL_13,
77518 t_TAIL_14,
77519 t_TAIL_15,
77520 t_TAIL_16,
77521 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base()
77522: AllocBase()
77523, d_type(0)
77524{
77525 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77526
77527 BloombergLP::bslma::ConstructionUtil::construct(
77528 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77529 AllocBase::mechanism());
77530}
77531#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
77532
77533#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
77534template <class t_HEAD, class t_TAIL_01,
77535 class t_TAIL_02,
77536 class t_TAIL_03,
77537 class t_TAIL_04,
77538 class t_TAIL_05,
77539 class t_TAIL_06,
77540 class t_TAIL_07,
77541 class t_TAIL_08,
77542 class t_TAIL_09,
77543 class t_TAIL_10,
77544 class t_TAIL_11,
77545 class t_TAIL_12,
77546 class t_TAIL_13,
77547 class t_TAIL_14,
77548 class t_TAIL_15,
77549 class t_TAIL_16,
77550 class t_TAIL_17>
77551inline
77552Variant_Base<t_HEAD, t_TAIL_01,
77553 t_TAIL_02,
77554 t_TAIL_03,
77555 t_TAIL_04,
77556 t_TAIL_05,
77557 t_TAIL_06,
77558 t_TAIL_07,
77559 t_TAIL_08,
77560 t_TAIL_09,
77561 t_TAIL_10,
77562 t_TAIL_11,
77563 t_TAIL_12,
77564 t_TAIL_13,
77565 t_TAIL_14,
77566 t_TAIL_15,
77567 t_TAIL_16,
77568 t_TAIL_17,
77569 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base()
77570: AllocBase()
77571, d_type(0)
77572{
77573 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77574
77575 BloombergLP::bslma::ConstructionUtil::construct(
77576 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77577 AllocBase::mechanism());
77578}
77579#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
77580
77581#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
77582template <class t_HEAD, class t_TAIL_01,
77583 class t_TAIL_02,
77584 class t_TAIL_03,
77585 class t_TAIL_04,
77586 class t_TAIL_05,
77587 class t_TAIL_06,
77588 class t_TAIL_07,
77589 class t_TAIL_08,
77590 class t_TAIL_09,
77591 class t_TAIL_10,
77592 class t_TAIL_11,
77593 class t_TAIL_12,
77594 class t_TAIL_13,
77595 class t_TAIL_14,
77596 class t_TAIL_15,
77597 class t_TAIL_16,
77598 class t_TAIL_17,
77599 class t_TAIL_18>
77600inline
77601Variant_Base<t_HEAD, t_TAIL_01,
77602 t_TAIL_02,
77603 t_TAIL_03,
77604 t_TAIL_04,
77605 t_TAIL_05,
77606 t_TAIL_06,
77607 t_TAIL_07,
77608 t_TAIL_08,
77609 t_TAIL_09,
77610 t_TAIL_10,
77611 t_TAIL_11,
77612 t_TAIL_12,
77613 t_TAIL_13,
77614 t_TAIL_14,
77615 t_TAIL_15,
77616 t_TAIL_16,
77617 t_TAIL_17,
77618 t_TAIL_18,
77619 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base()
77620: AllocBase()
77621, d_type(0)
77622{
77623 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
77624
77625 BloombergLP::bslma::ConstructionUtil::construct(
77626 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
77627 AllocBase::mechanism());
77628}
77629#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
77630
77631
77632#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
77633template <class t_HEAD>
77634inline
77635Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
77636 >::Variant_Base(const Variant& original)
77637: AllocBase()
77638, d_type(bsl::variant_npos)
77639{
77640 if (!original.valueless_by_exception()) {
77641 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77642 copyConstructor(this);
77643 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77644 d_type = original.d_type;
77645 }
77646}
77647#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
77648
77649#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
77650template <class t_HEAD, class t_TAIL_01>
77651inline
77652Variant_Base<t_HEAD, t_TAIL_01,
77653 BSLS_COMPILERFEATURES_FILLT(17)
77654 >::Variant_Base(const Variant& original)
77655: AllocBase()
77656, d_type(bsl::variant_npos)
77657{
77658 if (!original.valueless_by_exception()) {
77659 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77660 copyConstructor(this);
77661 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77662 d_type = original.d_type;
77663 }
77664}
77665#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
77666
77667#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
77668template <class t_HEAD, class t_TAIL_01,
77669 class t_TAIL_02>
77670inline
77671Variant_Base<t_HEAD, t_TAIL_01,
77672 t_TAIL_02,
77673 BSLS_COMPILERFEATURES_FILLT(16)
77674 >::Variant_Base(const Variant& original)
77675: AllocBase()
77676, d_type(bsl::variant_npos)
77677{
77678 if (!original.valueless_by_exception()) {
77679 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77680 copyConstructor(this);
77681 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77682 d_type = original.d_type;
77683 }
77684}
77685#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
77686
77687#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
77688template <class t_HEAD, class t_TAIL_01,
77689 class t_TAIL_02,
77690 class t_TAIL_03>
77691inline
77692Variant_Base<t_HEAD, t_TAIL_01,
77693 t_TAIL_02,
77694 t_TAIL_03,
77695 BSLS_COMPILERFEATURES_FILLT(15)
77696 >::Variant_Base(const Variant& original)
77697: AllocBase()
77698, d_type(bsl::variant_npos)
77699{
77700 if (!original.valueless_by_exception()) {
77701 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77702 copyConstructor(this);
77703 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77704 d_type = original.d_type;
77705 }
77706}
77707#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
77708
77709#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
77710template <class t_HEAD, class t_TAIL_01,
77711 class t_TAIL_02,
77712 class t_TAIL_03,
77713 class t_TAIL_04>
77714inline
77715Variant_Base<t_HEAD, t_TAIL_01,
77716 t_TAIL_02,
77717 t_TAIL_03,
77718 t_TAIL_04,
77719 BSLS_COMPILERFEATURES_FILLT(14)
77720 >::Variant_Base(const Variant& original)
77721: AllocBase()
77722, d_type(bsl::variant_npos)
77723{
77724 if (!original.valueless_by_exception()) {
77725 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77726 copyConstructor(this);
77727 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77728 d_type = original.d_type;
77729 }
77730}
77731#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
77732
77733#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
77734template <class t_HEAD, class t_TAIL_01,
77735 class t_TAIL_02,
77736 class t_TAIL_03,
77737 class t_TAIL_04,
77738 class t_TAIL_05>
77739inline
77740Variant_Base<t_HEAD, t_TAIL_01,
77741 t_TAIL_02,
77742 t_TAIL_03,
77743 t_TAIL_04,
77744 t_TAIL_05,
77745 BSLS_COMPILERFEATURES_FILLT(13)
77746 >::Variant_Base(const Variant& original)
77747: AllocBase()
77748, d_type(bsl::variant_npos)
77749{
77750 if (!original.valueless_by_exception()) {
77751 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77752 copyConstructor(this);
77753 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77754 d_type = original.d_type;
77755 }
77756}
77757#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
77758
77759#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
77760template <class t_HEAD, class t_TAIL_01,
77761 class t_TAIL_02,
77762 class t_TAIL_03,
77763 class t_TAIL_04,
77764 class t_TAIL_05,
77765 class t_TAIL_06>
77766inline
77767Variant_Base<t_HEAD, t_TAIL_01,
77768 t_TAIL_02,
77769 t_TAIL_03,
77770 t_TAIL_04,
77771 t_TAIL_05,
77772 t_TAIL_06,
77773 BSLS_COMPILERFEATURES_FILLT(12)
77774 >::Variant_Base(const Variant& original)
77775: AllocBase()
77776, d_type(bsl::variant_npos)
77777{
77778 if (!original.valueless_by_exception()) {
77779 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77780 copyConstructor(this);
77781 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77782 d_type = original.d_type;
77783 }
77784}
77785#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
77786
77787#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
77788template <class t_HEAD, class t_TAIL_01,
77789 class t_TAIL_02,
77790 class t_TAIL_03,
77791 class t_TAIL_04,
77792 class t_TAIL_05,
77793 class t_TAIL_06,
77794 class t_TAIL_07>
77795inline
77796Variant_Base<t_HEAD, t_TAIL_01,
77797 t_TAIL_02,
77798 t_TAIL_03,
77799 t_TAIL_04,
77800 t_TAIL_05,
77801 t_TAIL_06,
77802 t_TAIL_07,
77803 BSLS_COMPILERFEATURES_FILLT(11)
77804 >::Variant_Base(const Variant& original)
77805: AllocBase()
77806, d_type(bsl::variant_npos)
77807{
77808 if (!original.valueless_by_exception()) {
77809 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77810 copyConstructor(this);
77811 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77812 d_type = original.d_type;
77813 }
77814}
77815#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
77816
77817#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
77818template <class t_HEAD, class t_TAIL_01,
77819 class t_TAIL_02,
77820 class t_TAIL_03,
77821 class t_TAIL_04,
77822 class t_TAIL_05,
77823 class t_TAIL_06,
77824 class t_TAIL_07,
77825 class t_TAIL_08>
77826inline
77827Variant_Base<t_HEAD, t_TAIL_01,
77828 t_TAIL_02,
77829 t_TAIL_03,
77830 t_TAIL_04,
77831 t_TAIL_05,
77832 t_TAIL_06,
77833 t_TAIL_07,
77834 t_TAIL_08,
77835 BSLS_COMPILERFEATURES_FILLT(10)
77836 >::Variant_Base(const Variant& original)
77837: AllocBase()
77838, d_type(bsl::variant_npos)
77839{
77840 if (!original.valueless_by_exception()) {
77841 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77842 copyConstructor(this);
77843 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77844 d_type = original.d_type;
77845 }
77846}
77847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
77848
77849#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
77850template <class t_HEAD, class t_TAIL_01,
77851 class t_TAIL_02,
77852 class t_TAIL_03,
77853 class t_TAIL_04,
77854 class t_TAIL_05,
77855 class t_TAIL_06,
77856 class t_TAIL_07,
77857 class t_TAIL_08,
77858 class t_TAIL_09>
77859inline
77860Variant_Base<t_HEAD, t_TAIL_01,
77861 t_TAIL_02,
77862 t_TAIL_03,
77863 t_TAIL_04,
77864 t_TAIL_05,
77865 t_TAIL_06,
77866 t_TAIL_07,
77867 t_TAIL_08,
77868 t_TAIL_09,
77869 BSLS_COMPILERFEATURES_FILLT( 9)
77870 >::Variant_Base(const Variant& original)
77871: AllocBase()
77872, d_type(bsl::variant_npos)
77873{
77874 if (!original.valueless_by_exception()) {
77875 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77876 copyConstructor(this);
77877 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77878 d_type = original.d_type;
77879 }
77880}
77881#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
77882
77883#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
77884template <class t_HEAD, class t_TAIL_01,
77885 class t_TAIL_02,
77886 class t_TAIL_03,
77887 class t_TAIL_04,
77888 class t_TAIL_05,
77889 class t_TAIL_06,
77890 class t_TAIL_07,
77891 class t_TAIL_08,
77892 class t_TAIL_09,
77893 class t_TAIL_10>
77894inline
77895Variant_Base<t_HEAD, t_TAIL_01,
77896 t_TAIL_02,
77897 t_TAIL_03,
77898 t_TAIL_04,
77899 t_TAIL_05,
77900 t_TAIL_06,
77901 t_TAIL_07,
77902 t_TAIL_08,
77903 t_TAIL_09,
77904 t_TAIL_10,
77905 BSLS_COMPILERFEATURES_FILLT( 8)
77906 >::Variant_Base(const Variant& original)
77907: AllocBase()
77908, d_type(bsl::variant_npos)
77909{
77910 if (!original.valueless_by_exception()) {
77911 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77912 copyConstructor(this);
77913 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77914 d_type = original.d_type;
77915 }
77916}
77917#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
77918
77919#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
77920template <class t_HEAD, class t_TAIL_01,
77921 class t_TAIL_02,
77922 class t_TAIL_03,
77923 class t_TAIL_04,
77924 class t_TAIL_05,
77925 class t_TAIL_06,
77926 class t_TAIL_07,
77927 class t_TAIL_08,
77928 class t_TAIL_09,
77929 class t_TAIL_10,
77930 class t_TAIL_11>
77931inline
77932Variant_Base<t_HEAD, t_TAIL_01,
77933 t_TAIL_02,
77934 t_TAIL_03,
77935 t_TAIL_04,
77936 t_TAIL_05,
77937 t_TAIL_06,
77938 t_TAIL_07,
77939 t_TAIL_08,
77940 t_TAIL_09,
77941 t_TAIL_10,
77942 t_TAIL_11,
77943 BSLS_COMPILERFEATURES_FILLT( 7)
77944 >::Variant_Base(const Variant& original)
77945: AllocBase()
77946, d_type(bsl::variant_npos)
77947{
77948 if (!original.valueless_by_exception()) {
77949 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77950 copyConstructor(this);
77951 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77952 d_type = original.d_type;
77953 }
77954}
77955#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
77956
77957#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
77958template <class t_HEAD, class t_TAIL_01,
77959 class t_TAIL_02,
77960 class t_TAIL_03,
77961 class t_TAIL_04,
77962 class t_TAIL_05,
77963 class t_TAIL_06,
77964 class t_TAIL_07,
77965 class t_TAIL_08,
77966 class t_TAIL_09,
77967 class t_TAIL_10,
77968 class t_TAIL_11,
77969 class t_TAIL_12>
77970inline
77971Variant_Base<t_HEAD, t_TAIL_01,
77972 t_TAIL_02,
77973 t_TAIL_03,
77974 t_TAIL_04,
77975 t_TAIL_05,
77976 t_TAIL_06,
77977 t_TAIL_07,
77978 t_TAIL_08,
77979 t_TAIL_09,
77980 t_TAIL_10,
77981 t_TAIL_11,
77982 t_TAIL_12,
77983 BSLS_COMPILERFEATURES_FILLT( 6)
77984 >::Variant_Base(const Variant& original)
77985: AllocBase()
77986, d_type(bsl::variant_npos)
77987{
77988 if (!original.valueless_by_exception()) {
77989 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
77990 copyConstructor(this);
77991 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
77992 d_type = original.d_type;
77993 }
77994}
77995#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
77996
77997#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
77998template <class t_HEAD, class t_TAIL_01,
77999 class t_TAIL_02,
78000 class t_TAIL_03,
78001 class t_TAIL_04,
78002 class t_TAIL_05,
78003 class t_TAIL_06,
78004 class t_TAIL_07,
78005 class t_TAIL_08,
78006 class t_TAIL_09,
78007 class t_TAIL_10,
78008 class t_TAIL_11,
78009 class t_TAIL_12,
78010 class t_TAIL_13>
78011inline
78012Variant_Base<t_HEAD, t_TAIL_01,
78013 t_TAIL_02,
78014 t_TAIL_03,
78015 t_TAIL_04,
78016 t_TAIL_05,
78017 t_TAIL_06,
78018 t_TAIL_07,
78019 t_TAIL_08,
78020 t_TAIL_09,
78021 t_TAIL_10,
78022 t_TAIL_11,
78023 t_TAIL_12,
78024 t_TAIL_13,
78025 BSLS_COMPILERFEATURES_FILLT( 5)
78026 >::Variant_Base(const Variant& original)
78027: AllocBase()
78028, d_type(bsl::variant_npos)
78029{
78030 if (!original.valueless_by_exception()) {
78031 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
78032 copyConstructor(this);
78033 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
78034 d_type = original.d_type;
78035 }
78036}
78037#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
78038
78039#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
78040template <class t_HEAD, class t_TAIL_01,
78041 class t_TAIL_02,
78042 class t_TAIL_03,
78043 class t_TAIL_04,
78044 class t_TAIL_05,
78045 class t_TAIL_06,
78046 class t_TAIL_07,
78047 class t_TAIL_08,
78048 class t_TAIL_09,
78049 class t_TAIL_10,
78050 class t_TAIL_11,
78051 class t_TAIL_12,
78052 class t_TAIL_13,
78053 class t_TAIL_14>
78054inline
78055Variant_Base<t_HEAD, t_TAIL_01,
78056 t_TAIL_02,
78057 t_TAIL_03,
78058 t_TAIL_04,
78059 t_TAIL_05,
78060 t_TAIL_06,
78061 t_TAIL_07,
78062 t_TAIL_08,
78063 t_TAIL_09,
78064 t_TAIL_10,
78065 t_TAIL_11,
78066 t_TAIL_12,
78067 t_TAIL_13,
78068 t_TAIL_14,
78069 BSLS_COMPILERFEATURES_FILLT( 4)
78070 >::Variant_Base(const Variant& original)
78071: AllocBase()
78072, d_type(bsl::variant_npos)
78073{
78074 if (!original.valueless_by_exception()) {
78075 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
78076 copyConstructor(this);
78077 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
78078 d_type = original.d_type;
78079 }
78080}
78081#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
78082
78083#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
78084template <class t_HEAD, class t_TAIL_01,
78085 class t_TAIL_02,
78086 class t_TAIL_03,
78087 class t_TAIL_04,
78088 class t_TAIL_05,
78089 class t_TAIL_06,
78090 class t_TAIL_07,
78091 class t_TAIL_08,
78092 class t_TAIL_09,
78093 class t_TAIL_10,
78094 class t_TAIL_11,
78095 class t_TAIL_12,
78096 class t_TAIL_13,
78097 class t_TAIL_14,
78098 class t_TAIL_15>
78099inline
78100Variant_Base<t_HEAD, t_TAIL_01,
78101 t_TAIL_02,
78102 t_TAIL_03,
78103 t_TAIL_04,
78104 t_TAIL_05,
78105 t_TAIL_06,
78106 t_TAIL_07,
78107 t_TAIL_08,
78108 t_TAIL_09,
78109 t_TAIL_10,
78110 t_TAIL_11,
78111 t_TAIL_12,
78112 t_TAIL_13,
78113 t_TAIL_14,
78114 t_TAIL_15,
78115 BSLS_COMPILERFEATURES_FILLT( 3)
78116 >::Variant_Base(const Variant& original)
78117: AllocBase()
78118, d_type(bsl::variant_npos)
78119{
78120 if (!original.valueless_by_exception()) {
78121 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
78122 copyConstructor(this);
78123 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
78124 d_type = original.d_type;
78125 }
78126}
78127#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
78128
78129#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
78130template <class t_HEAD, class t_TAIL_01,
78131 class t_TAIL_02,
78132 class t_TAIL_03,
78133 class t_TAIL_04,
78134 class t_TAIL_05,
78135 class t_TAIL_06,
78136 class t_TAIL_07,
78137 class t_TAIL_08,
78138 class t_TAIL_09,
78139 class t_TAIL_10,
78140 class t_TAIL_11,
78141 class t_TAIL_12,
78142 class t_TAIL_13,
78143 class t_TAIL_14,
78144 class t_TAIL_15,
78145 class t_TAIL_16>
78146inline
78147Variant_Base<t_HEAD, t_TAIL_01,
78148 t_TAIL_02,
78149 t_TAIL_03,
78150 t_TAIL_04,
78151 t_TAIL_05,
78152 t_TAIL_06,
78153 t_TAIL_07,
78154 t_TAIL_08,
78155 t_TAIL_09,
78156 t_TAIL_10,
78157 t_TAIL_11,
78158 t_TAIL_12,
78159 t_TAIL_13,
78160 t_TAIL_14,
78161 t_TAIL_15,
78162 t_TAIL_16,
78163 BSLS_COMPILERFEATURES_FILLT( 2)
78164 >::Variant_Base(const Variant& original)
78165: AllocBase()
78166, d_type(bsl::variant_npos)
78167{
78168 if (!original.valueless_by_exception()) {
78169 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
78170 copyConstructor(this);
78171 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
78172 d_type = original.d_type;
78173 }
78174}
78175#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
78176
78177#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
78178template <class t_HEAD, class t_TAIL_01,
78179 class t_TAIL_02,
78180 class t_TAIL_03,
78181 class t_TAIL_04,
78182 class t_TAIL_05,
78183 class t_TAIL_06,
78184 class t_TAIL_07,
78185 class t_TAIL_08,
78186 class t_TAIL_09,
78187 class t_TAIL_10,
78188 class t_TAIL_11,
78189 class t_TAIL_12,
78190 class t_TAIL_13,
78191 class t_TAIL_14,
78192 class t_TAIL_15,
78193 class t_TAIL_16,
78194 class t_TAIL_17>
78195inline
78196Variant_Base<t_HEAD, t_TAIL_01,
78197 t_TAIL_02,
78198 t_TAIL_03,
78199 t_TAIL_04,
78200 t_TAIL_05,
78201 t_TAIL_06,
78202 t_TAIL_07,
78203 t_TAIL_08,
78204 t_TAIL_09,
78205 t_TAIL_10,
78206 t_TAIL_11,
78207 t_TAIL_12,
78208 t_TAIL_13,
78209 t_TAIL_14,
78210 t_TAIL_15,
78211 t_TAIL_16,
78212 t_TAIL_17,
78213 BSLS_COMPILERFEATURES_FILLT( 1)
78214 >::Variant_Base(const Variant& original)
78215: AllocBase()
78216, d_type(bsl::variant_npos)
78217{
78218 if (!original.valueless_by_exception()) {
78219 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
78220 copyConstructor(this);
78221 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
78222 d_type = original.d_type;
78223 }
78224}
78225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
78226
78227#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
78228template <class t_HEAD, class t_TAIL_01,
78229 class t_TAIL_02,
78230 class t_TAIL_03,
78231 class t_TAIL_04,
78232 class t_TAIL_05,
78233 class t_TAIL_06,
78234 class t_TAIL_07,
78235 class t_TAIL_08,
78236 class t_TAIL_09,
78237 class t_TAIL_10,
78238 class t_TAIL_11,
78239 class t_TAIL_12,
78240 class t_TAIL_13,
78241 class t_TAIL_14,
78242 class t_TAIL_15,
78243 class t_TAIL_16,
78244 class t_TAIL_17,
78245 class t_TAIL_18>
78246inline
78247Variant_Base<t_HEAD, t_TAIL_01,
78248 t_TAIL_02,
78249 t_TAIL_03,
78250 t_TAIL_04,
78251 t_TAIL_05,
78252 t_TAIL_06,
78253 t_TAIL_07,
78254 t_TAIL_08,
78255 t_TAIL_09,
78256 t_TAIL_10,
78257 t_TAIL_11,
78258 t_TAIL_12,
78259 t_TAIL_13,
78260 t_TAIL_14,
78261 t_TAIL_15,
78262 t_TAIL_16,
78263 t_TAIL_17,
78264 t_TAIL_18,
78265 BSLS_COMPILERFEATURES_FILLT( 0)
78266 >::Variant_Base(const Variant& original)
78267: AllocBase()
78268, d_type(bsl::variant_npos)
78269{
78270 if (!original.valueless_by_exception()) {
78271 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
78272 copyConstructor(this);
78273 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
78274 d_type = original.d_type;
78275 }
78276}
78277#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
78278
78279
78280#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
78281template <class t_HEAD>
78282inline
78283Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
78284 BloombergLP::bslmf::MovableRef<Variant> original)
78285: AllocBase(MoveUtil::access(original))
78286, d_type(bsl::variant_npos)
78287{
78288 Variant& lvalue = original;
78289 if (!lvalue.valueless_by_exception()) {
78290 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78291 moveConstructor(this);
78292 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78293 d_type = lvalue.d_type;
78294 }
78295}
78296#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
78297
78298#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
78299template <class t_HEAD, class t_TAIL_01>
78300inline
78301Variant_Base<t_HEAD, t_TAIL_01,
78302 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
78303 BloombergLP::bslmf::MovableRef<Variant> original)
78304: AllocBase(MoveUtil::access(original))
78305, d_type(bsl::variant_npos)
78306{
78307 Variant& lvalue = original;
78308 if (!lvalue.valueless_by_exception()) {
78309 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78310 moveConstructor(this);
78311 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78312 d_type = lvalue.d_type;
78313 }
78314}
78315#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
78316
78317#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
78318template <class t_HEAD, class t_TAIL_01,
78319 class t_TAIL_02>
78320inline
78321Variant_Base<t_HEAD, t_TAIL_01,
78322 t_TAIL_02,
78323 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
78324 BloombergLP::bslmf::MovableRef<Variant> original)
78325: AllocBase(MoveUtil::access(original))
78326, d_type(bsl::variant_npos)
78327{
78328 Variant& lvalue = original;
78329 if (!lvalue.valueless_by_exception()) {
78330 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78331 moveConstructor(this);
78332 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78333 d_type = lvalue.d_type;
78334 }
78335}
78336#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
78337
78338#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
78339template <class t_HEAD, class t_TAIL_01,
78340 class t_TAIL_02,
78341 class t_TAIL_03>
78342inline
78343Variant_Base<t_HEAD, t_TAIL_01,
78344 t_TAIL_02,
78345 t_TAIL_03,
78346 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
78347 BloombergLP::bslmf::MovableRef<Variant> original)
78348: AllocBase(MoveUtil::access(original))
78349, d_type(bsl::variant_npos)
78350{
78351 Variant& lvalue = original;
78352 if (!lvalue.valueless_by_exception()) {
78353 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78354 moveConstructor(this);
78355 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78356 d_type = lvalue.d_type;
78357 }
78358}
78359#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
78360
78361#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
78362template <class t_HEAD, class t_TAIL_01,
78363 class t_TAIL_02,
78364 class t_TAIL_03,
78365 class t_TAIL_04>
78366inline
78367Variant_Base<t_HEAD, t_TAIL_01,
78368 t_TAIL_02,
78369 t_TAIL_03,
78370 t_TAIL_04,
78371 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
78372 BloombergLP::bslmf::MovableRef<Variant> original)
78373: AllocBase(MoveUtil::access(original))
78374, d_type(bsl::variant_npos)
78375{
78376 Variant& lvalue = original;
78377 if (!lvalue.valueless_by_exception()) {
78378 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78379 moveConstructor(this);
78380 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78381 d_type = lvalue.d_type;
78382 }
78383}
78384#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
78385
78386#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
78387template <class t_HEAD, class t_TAIL_01,
78388 class t_TAIL_02,
78389 class t_TAIL_03,
78390 class t_TAIL_04,
78391 class t_TAIL_05>
78392inline
78393Variant_Base<t_HEAD, t_TAIL_01,
78394 t_TAIL_02,
78395 t_TAIL_03,
78396 t_TAIL_04,
78397 t_TAIL_05,
78398 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
78399 BloombergLP::bslmf::MovableRef<Variant> original)
78400: AllocBase(MoveUtil::access(original))
78401, d_type(bsl::variant_npos)
78402{
78403 Variant& lvalue = original;
78404 if (!lvalue.valueless_by_exception()) {
78405 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78406 moveConstructor(this);
78407 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78408 d_type = lvalue.d_type;
78409 }
78410}
78411#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
78412
78413#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
78414template <class t_HEAD, class t_TAIL_01,
78415 class t_TAIL_02,
78416 class t_TAIL_03,
78417 class t_TAIL_04,
78418 class t_TAIL_05,
78419 class t_TAIL_06>
78420inline
78421Variant_Base<t_HEAD, t_TAIL_01,
78422 t_TAIL_02,
78423 t_TAIL_03,
78424 t_TAIL_04,
78425 t_TAIL_05,
78426 t_TAIL_06,
78427 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
78428 BloombergLP::bslmf::MovableRef<Variant> original)
78429: AllocBase(MoveUtil::access(original))
78430, d_type(bsl::variant_npos)
78431{
78432 Variant& lvalue = original;
78433 if (!lvalue.valueless_by_exception()) {
78434 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78435 moveConstructor(this);
78436 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78437 d_type = lvalue.d_type;
78438 }
78439}
78440#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
78441
78442#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
78443template <class t_HEAD, class t_TAIL_01,
78444 class t_TAIL_02,
78445 class t_TAIL_03,
78446 class t_TAIL_04,
78447 class t_TAIL_05,
78448 class t_TAIL_06,
78449 class t_TAIL_07>
78450inline
78451Variant_Base<t_HEAD, t_TAIL_01,
78452 t_TAIL_02,
78453 t_TAIL_03,
78454 t_TAIL_04,
78455 t_TAIL_05,
78456 t_TAIL_06,
78457 t_TAIL_07,
78458 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
78459 BloombergLP::bslmf::MovableRef<Variant> original)
78460: AllocBase(MoveUtil::access(original))
78461, d_type(bsl::variant_npos)
78462{
78463 Variant& lvalue = original;
78464 if (!lvalue.valueless_by_exception()) {
78465 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78466 moveConstructor(this);
78467 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78468 d_type = lvalue.d_type;
78469 }
78470}
78471#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
78472
78473#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
78474template <class t_HEAD, class t_TAIL_01,
78475 class t_TAIL_02,
78476 class t_TAIL_03,
78477 class t_TAIL_04,
78478 class t_TAIL_05,
78479 class t_TAIL_06,
78480 class t_TAIL_07,
78481 class t_TAIL_08>
78482inline
78483Variant_Base<t_HEAD, t_TAIL_01,
78484 t_TAIL_02,
78485 t_TAIL_03,
78486 t_TAIL_04,
78487 t_TAIL_05,
78488 t_TAIL_06,
78489 t_TAIL_07,
78490 t_TAIL_08,
78491 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
78492 BloombergLP::bslmf::MovableRef<Variant> original)
78493: AllocBase(MoveUtil::access(original))
78494, d_type(bsl::variant_npos)
78495{
78496 Variant& lvalue = original;
78497 if (!lvalue.valueless_by_exception()) {
78498 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78499 moveConstructor(this);
78500 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78501 d_type = lvalue.d_type;
78502 }
78503}
78504#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
78505
78506#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
78507template <class t_HEAD, class t_TAIL_01,
78508 class t_TAIL_02,
78509 class t_TAIL_03,
78510 class t_TAIL_04,
78511 class t_TAIL_05,
78512 class t_TAIL_06,
78513 class t_TAIL_07,
78514 class t_TAIL_08,
78515 class t_TAIL_09>
78516inline
78517Variant_Base<t_HEAD, t_TAIL_01,
78518 t_TAIL_02,
78519 t_TAIL_03,
78520 t_TAIL_04,
78521 t_TAIL_05,
78522 t_TAIL_06,
78523 t_TAIL_07,
78524 t_TAIL_08,
78525 t_TAIL_09,
78526 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
78527 BloombergLP::bslmf::MovableRef<Variant> original)
78528: AllocBase(MoveUtil::access(original))
78529, d_type(bsl::variant_npos)
78530{
78531 Variant& lvalue = original;
78532 if (!lvalue.valueless_by_exception()) {
78533 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78534 moveConstructor(this);
78535 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78536 d_type = lvalue.d_type;
78537 }
78538}
78539#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
78540
78541#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
78542template <class t_HEAD, class t_TAIL_01,
78543 class t_TAIL_02,
78544 class t_TAIL_03,
78545 class t_TAIL_04,
78546 class t_TAIL_05,
78547 class t_TAIL_06,
78548 class t_TAIL_07,
78549 class t_TAIL_08,
78550 class t_TAIL_09,
78551 class t_TAIL_10>
78552inline
78553Variant_Base<t_HEAD, t_TAIL_01,
78554 t_TAIL_02,
78555 t_TAIL_03,
78556 t_TAIL_04,
78557 t_TAIL_05,
78558 t_TAIL_06,
78559 t_TAIL_07,
78560 t_TAIL_08,
78561 t_TAIL_09,
78562 t_TAIL_10,
78563 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
78564 BloombergLP::bslmf::MovableRef<Variant> original)
78565: AllocBase(MoveUtil::access(original))
78566, d_type(bsl::variant_npos)
78567{
78568 Variant& lvalue = original;
78569 if (!lvalue.valueless_by_exception()) {
78570 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78571 moveConstructor(this);
78572 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78573 d_type = lvalue.d_type;
78574 }
78575}
78576#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
78577
78578#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
78579template <class t_HEAD, class t_TAIL_01,
78580 class t_TAIL_02,
78581 class t_TAIL_03,
78582 class t_TAIL_04,
78583 class t_TAIL_05,
78584 class t_TAIL_06,
78585 class t_TAIL_07,
78586 class t_TAIL_08,
78587 class t_TAIL_09,
78588 class t_TAIL_10,
78589 class t_TAIL_11>
78590inline
78591Variant_Base<t_HEAD, t_TAIL_01,
78592 t_TAIL_02,
78593 t_TAIL_03,
78594 t_TAIL_04,
78595 t_TAIL_05,
78596 t_TAIL_06,
78597 t_TAIL_07,
78598 t_TAIL_08,
78599 t_TAIL_09,
78600 t_TAIL_10,
78601 t_TAIL_11,
78602 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
78603 BloombergLP::bslmf::MovableRef<Variant> original)
78604: AllocBase(MoveUtil::access(original))
78605, d_type(bsl::variant_npos)
78606{
78607 Variant& lvalue = original;
78608 if (!lvalue.valueless_by_exception()) {
78609 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78610 moveConstructor(this);
78611 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78612 d_type = lvalue.d_type;
78613 }
78614}
78615#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
78616
78617#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
78618template <class t_HEAD, class t_TAIL_01,
78619 class t_TAIL_02,
78620 class t_TAIL_03,
78621 class t_TAIL_04,
78622 class t_TAIL_05,
78623 class t_TAIL_06,
78624 class t_TAIL_07,
78625 class t_TAIL_08,
78626 class t_TAIL_09,
78627 class t_TAIL_10,
78628 class t_TAIL_11,
78629 class t_TAIL_12>
78630inline
78631Variant_Base<t_HEAD, t_TAIL_01,
78632 t_TAIL_02,
78633 t_TAIL_03,
78634 t_TAIL_04,
78635 t_TAIL_05,
78636 t_TAIL_06,
78637 t_TAIL_07,
78638 t_TAIL_08,
78639 t_TAIL_09,
78640 t_TAIL_10,
78641 t_TAIL_11,
78642 t_TAIL_12,
78643 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
78644 BloombergLP::bslmf::MovableRef<Variant> original)
78645: AllocBase(MoveUtil::access(original))
78646, d_type(bsl::variant_npos)
78647{
78648 Variant& lvalue = original;
78649 if (!lvalue.valueless_by_exception()) {
78650 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78651 moveConstructor(this);
78652 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78653 d_type = lvalue.d_type;
78654 }
78655}
78656#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
78657
78658#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
78659template <class t_HEAD, class t_TAIL_01,
78660 class t_TAIL_02,
78661 class t_TAIL_03,
78662 class t_TAIL_04,
78663 class t_TAIL_05,
78664 class t_TAIL_06,
78665 class t_TAIL_07,
78666 class t_TAIL_08,
78667 class t_TAIL_09,
78668 class t_TAIL_10,
78669 class t_TAIL_11,
78670 class t_TAIL_12,
78671 class t_TAIL_13>
78672inline
78673Variant_Base<t_HEAD, t_TAIL_01,
78674 t_TAIL_02,
78675 t_TAIL_03,
78676 t_TAIL_04,
78677 t_TAIL_05,
78678 t_TAIL_06,
78679 t_TAIL_07,
78680 t_TAIL_08,
78681 t_TAIL_09,
78682 t_TAIL_10,
78683 t_TAIL_11,
78684 t_TAIL_12,
78685 t_TAIL_13,
78686 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
78687 BloombergLP::bslmf::MovableRef<Variant> original)
78688: AllocBase(MoveUtil::access(original))
78689, d_type(bsl::variant_npos)
78690{
78691 Variant& lvalue = original;
78692 if (!lvalue.valueless_by_exception()) {
78693 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78694 moveConstructor(this);
78695 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78696 d_type = lvalue.d_type;
78697 }
78698}
78699#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
78700
78701#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
78702template <class t_HEAD, class t_TAIL_01,
78703 class t_TAIL_02,
78704 class t_TAIL_03,
78705 class t_TAIL_04,
78706 class t_TAIL_05,
78707 class t_TAIL_06,
78708 class t_TAIL_07,
78709 class t_TAIL_08,
78710 class t_TAIL_09,
78711 class t_TAIL_10,
78712 class t_TAIL_11,
78713 class t_TAIL_12,
78714 class t_TAIL_13,
78715 class t_TAIL_14>
78716inline
78717Variant_Base<t_HEAD, t_TAIL_01,
78718 t_TAIL_02,
78719 t_TAIL_03,
78720 t_TAIL_04,
78721 t_TAIL_05,
78722 t_TAIL_06,
78723 t_TAIL_07,
78724 t_TAIL_08,
78725 t_TAIL_09,
78726 t_TAIL_10,
78727 t_TAIL_11,
78728 t_TAIL_12,
78729 t_TAIL_13,
78730 t_TAIL_14,
78731 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
78732 BloombergLP::bslmf::MovableRef<Variant> original)
78733: AllocBase(MoveUtil::access(original))
78734, d_type(bsl::variant_npos)
78735{
78736 Variant& lvalue = original;
78737 if (!lvalue.valueless_by_exception()) {
78738 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78739 moveConstructor(this);
78740 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78741 d_type = lvalue.d_type;
78742 }
78743}
78744#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
78745
78746#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
78747template <class t_HEAD, class t_TAIL_01,
78748 class t_TAIL_02,
78749 class t_TAIL_03,
78750 class t_TAIL_04,
78751 class t_TAIL_05,
78752 class t_TAIL_06,
78753 class t_TAIL_07,
78754 class t_TAIL_08,
78755 class t_TAIL_09,
78756 class t_TAIL_10,
78757 class t_TAIL_11,
78758 class t_TAIL_12,
78759 class t_TAIL_13,
78760 class t_TAIL_14,
78761 class t_TAIL_15>
78762inline
78763Variant_Base<t_HEAD, t_TAIL_01,
78764 t_TAIL_02,
78765 t_TAIL_03,
78766 t_TAIL_04,
78767 t_TAIL_05,
78768 t_TAIL_06,
78769 t_TAIL_07,
78770 t_TAIL_08,
78771 t_TAIL_09,
78772 t_TAIL_10,
78773 t_TAIL_11,
78774 t_TAIL_12,
78775 t_TAIL_13,
78776 t_TAIL_14,
78777 t_TAIL_15,
78778 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
78779 BloombergLP::bslmf::MovableRef<Variant> original)
78780: AllocBase(MoveUtil::access(original))
78781, d_type(bsl::variant_npos)
78782{
78783 Variant& lvalue = original;
78784 if (!lvalue.valueless_by_exception()) {
78785 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78786 moveConstructor(this);
78787 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78788 d_type = lvalue.d_type;
78789 }
78790}
78791#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
78792
78793#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
78794template <class t_HEAD, class t_TAIL_01,
78795 class t_TAIL_02,
78796 class t_TAIL_03,
78797 class t_TAIL_04,
78798 class t_TAIL_05,
78799 class t_TAIL_06,
78800 class t_TAIL_07,
78801 class t_TAIL_08,
78802 class t_TAIL_09,
78803 class t_TAIL_10,
78804 class t_TAIL_11,
78805 class t_TAIL_12,
78806 class t_TAIL_13,
78807 class t_TAIL_14,
78808 class t_TAIL_15,
78809 class t_TAIL_16>
78810inline
78811Variant_Base<t_HEAD, t_TAIL_01,
78812 t_TAIL_02,
78813 t_TAIL_03,
78814 t_TAIL_04,
78815 t_TAIL_05,
78816 t_TAIL_06,
78817 t_TAIL_07,
78818 t_TAIL_08,
78819 t_TAIL_09,
78820 t_TAIL_10,
78821 t_TAIL_11,
78822 t_TAIL_12,
78823 t_TAIL_13,
78824 t_TAIL_14,
78825 t_TAIL_15,
78826 t_TAIL_16,
78827 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
78828 BloombergLP::bslmf::MovableRef<Variant> original)
78829: AllocBase(MoveUtil::access(original))
78830, d_type(bsl::variant_npos)
78831{
78832 Variant& lvalue = original;
78833 if (!lvalue.valueless_by_exception()) {
78834 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78835 moveConstructor(this);
78836 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78837 d_type = lvalue.d_type;
78838 }
78839}
78840#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
78841
78842#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
78843template <class t_HEAD, class t_TAIL_01,
78844 class t_TAIL_02,
78845 class t_TAIL_03,
78846 class t_TAIL_04,
78847 class t_TAIL_05,
78848 class t_TAIL_06,
78849 class t_TAIL_07,
78850 class t_TAIL_08,
78851 class t_TAIL_09,
78852 class t_TAIL_10,
78853 class t_TAIL_11,
78854 class t_TAIL_12,
78855 class t_TAIL_13,
78856 class t_TAIL_14,
78857 class t_TAIL_15,
78858 class t_TAIL_16,
78859 class t_TAIL_17>
78860inline
78861Variant_Base<t_HEAD, t_TAIL_01,
78862 t_TAIL_02,
78863 t_TAIL_03,
78864 t_TAIL_04,
78865 t_TAIL_05,
78866 t_TAIL_06,
78867 t_TAIL_07,
78868 t_TAIL_08,
78869 t_TAIL_09,
78870 t_TAIL_10,
78871 t_TAIL_11,
78872 t_TAIL_12,
78873 t_TAIL_13,
78874 t_TAIL_14,
78875 t_TAIL_15,
78876 t_TAIL_16,
78877 t_TAIL_17,
78878 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
78879 BloombergLP::bslmf::MovableRef<Variant> original)
78880: AllocBase(MoveUtil::access(original))
78881, d_type(bsl::variant_npos)
78882{
78883 Variant& lvalue = original;
78884 if (!lvalue.valueless_by_exception()) {
78885 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78886 moveConstructor(this);
78887 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78888 d_type = lvalue.d_type;
78889 }
78890}
78891#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
78892
78893#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
78894template <class t_HEAD, class t_TAIL_01,
78895 class t_TAIL_02,
78896 class t_TAIL_03,
78897 class t_TAIL_04,
78898 class t_TAIL_05,
78899 class t_TAIL_06,
78900 class t_TAIL_07,
78901 class t_TAIL_08,
78902 class t_TAIL_09,
78903 class t_TAIL_10,
78904 class t_TAIL_11,
78905 class t_TAIL_12,
78906 class t_TAIL_13,
78907 class t_TAIL_14,
78908 class t_TAIL_15,
78909 class t_TAIL_16,
78910 class t_TAIL_17,
78911 class t_TAIL_18>
78912inline
78913Variant_Base<t_HEAD, t_TAIL_01,
78914 t_TAIL_02,
78915 t_TAIL_03,
78916 t_TAIL_04,
78917 t_TAIL_05,
78918 t_TAIL_06,
78919 t_TAIL_07,
78920 t_TAIL_08,
78921 t_TAIL_09,
78922 t_TAIL_10,
78923 t_TAIL_11,
78924 t_TAIL_12,
78925 t_TAIL_13,
78926 t_TAIL_14,
78927 t_TAIL_15,
78928 t_TAIL_16,
78929 t_TAIL_17,
78930 t_TAIL_18,
78931 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
78932 BloombergLP::bslmf::MovableRef<Variant> original)
78933: AllocBase(MoveUtil::access(original))
78934, d_type(bsl::variant_npos)
78935{
78936 Variant& lvalue = original;
78937 if (!lvalue.valueless_by_exception()) {
78938 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
78939 moveConstructor(this);
78940 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
78941 d_type = lvalue.d_type;
78942 }
78943}
78944#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
78945
78946
78947#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
78948template <class t_HEAD>
78949template <size_t t_INDEX>
78950inline
78951Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
78952 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
78953: AllocBase()
78954, d_type(t_INDEX)
78955{
78956 typedef typename bsl::remove_cv<
78958 Alt_Type;
78959
78960 BloombergLP::bslma::ConstructionUtil::construct(
78961 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
78962 AllocBase::mechanism());
78963}
78964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
78965
78966#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
78967template <class t_HEAD, class t_TAIL_01>
78968template <size_t t_INDEX>
78969inline
78970Variant_Base<t_HEAD, t_TAIL_01,
78971 BSLS_COMPILERFEATURES_FILLT(17)
78972 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
78973: AllocBase()
78974, d_type(t_INDEX)
78975{
78976 typedef typename bsl::remove_cv<
78978 Alt_Type;
78979
78980 BloombergLP::bslma::ConstructionUtil::construct(
78981 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
78982 AllocBase::mechanism());
78983}
78984#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
78985
78986#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
78987template <class t_HEAD, class t_TAIL_01,
78988 class t_TAIL_02>
78989template <size_t t_INDEX>
78990inline
78991Variant_Base<t_HEAD, t_TAIL_01,
78992 t_TAIL_02,
78993 BSLS_COMPILERFEATURES_FILLT(16)
78994 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
78995: AllocBase()
78996, d_type(t_INDEX)
78997{
78998 typedef typename bsl::remove_cv<
79000 Alt_Type;
79001
79002 BloombergLP::bslma::ConstructionUtil::construct(
79003 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79004 AllocBase::mechanism());
79005}
79006#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
79007
79008#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
79009template <class t_HEAD, class t_TAIL_01,
79010 class t_TAIL_02,
79011 class t_TAIL_03>
79012template <size_t t_INDEX>
79013inline
79014Variant_Base<t_HEAD, t_TAIL_01,
79015 t_TAIL_02,
79016 t_TAIL_03,
79017 BSLS_COMPILERFEATURES_FILLT(15)
79018 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79019: AllocBase()
79020, d_type(t_INDEX)
79021{
79022 typedef typename bsl::remove_cv<
79024 Alt_Type;
79025
79026 BloombergLP::bslma::ConstructionUtil::construct(
79027 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79028 AllocBase::mechanism());
79029}
79030#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
79031
79032#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
79033template <class t_HEAD, class t_TAIL_01,
79034 class t_TAIL_02,
79035 class t_TAIL_03,
79036 class t_TAIL_04>
79037template <size_t t_INDEX>
79038inline
79039Variant_Base<t_HEAD, t_TAIL_01,
79040 t_TAIL_02,
79041 t_TAIL_03,
79042 t_TAIL_04,
79043 BSLS_COMPILERFEATURES_FILLT(14)
79044 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79045: AllocBase()
79046, d_type(t_INDEX)
79047{
79048 typedef typename bsl::remove_cv<
79050 Alt_Type;
79051
79052 BloombergLP::bslma::ConstructionUtil::construct(
79053 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79054 AllocBase::mechanism());
79055}
79056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
79057
79058#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
79059template <class t_HEAD, class t_TAIL_01,
79060 class t_TAIL_02,
79061 class t_TAIL_03,
79062 class t_TAIL_04,
79063 class t_TAIL_05>
79064template <size_t t_INDEX>
79065inline
79066Variant_Base<t_HEAD, t_TAIL_01,
79067 t_TAIL_02,
79068 t_TAIL_03,
79069 t_TAIL_04,
79070 t_TAIL_05,
79071 BSLS_COMPILERFEATURES_FILLT(13)
79072 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79073: AllocBase()
79074, d_type(t_INDEX)
79075{
79076 typedef typename bsl::remove_cv<
79078 Alt_Type;
79079
79080 BloombergLP::bslma::ConstructionUtil::construct(
79081 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79082 AllocBase::mechanism());
79083}
79084#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
79085
79086#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
79087template <class t_HEAD, class t_TAIL_01,
79088 class t_TAIL_02,
79089 class t_TAIL_03,
79090 class t_TAIL_04,
79091 class t_TAIL_05,
79092 class t_TAIL_06>
79093template <size_t t_INDEX>
79094inline
79095Variant_Base<t_HEAD, t_TAIL_01,
79096 t_TAIL_02,
79097 t_TAIL_03,
79098 t_TAIL_04,
79099 t_TAIL_05,
79100 t_TAIL_06,
79101 BSLS_COMPILERFEATURES_FILLT(12)
79102 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79103: AllocBase()
79104, d_type(t_INDEX)
79105{
79106 typedef typename bsl::remove_cv<
79108 Alt_Type;
79109
79110 BloombergLP::bslma::ConstructionUtil::construct(
79111 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79112 AllocBase::mechanism());
79113}
79114#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
79115
79116#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
79117template <class t_HEAD, class t_TAIL_01,
79118 class t_TAIL_02,
79119 class t_TAIL_03,
79120 class t_TAIL_04,
79121 class t_TAIL_05,
79122 class t_TAIL_06,
79123 class t_TAIL_07>
79124template <size_t t_INDEX>
79125inline
79126Variant_Base<t_HEAD, t_TAIL_01,
79127 t_TAIL_02,
79128 t_TAIL_03,
79129 t_TAIL_04,
79130 t_TAIL_05,
79131 t_TAIL_06,
79132 t_TAIL_07,
79133 BSLS_COMPILERFEATURES_FILLT(11)
79134 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79135: AllocBase()
79136, d_type(t_INDEX)
79137{
79138 typedef typename bsl::remove_cv<
79140 Alt_Type;
79141
79142 BloombergLP::bslma::ConstructionUtil::construct(
79143 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79144 AllocBase::mechanism());
79145}
79146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
79147
79148#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
79149template <class t_HEAD, class t_TAIL_01,
79150 class t_TAIL_02,
79151 class t_TAIL_03,
79152 class t_TAIL_04,
79153 class t_TAIL_05,
79154 class t_TAIL_06,
79155 class t_TAIL_07,
79156 class t_TAIL_08>
79157template <size_t t_INDEX>
79158inline
79159Variant_Base<t_HEAD, t_TAIL_01,
79160 t_TAIL_02,
79161 t_TAIL_03,
79162 t_TAIL_04,
79163 t_TAIL_05,
79164 t_TAIL_06,
79165 t_TAIL_07,
79166 t_TAIL_08,
79167 BSLS_COMPILERFEATURES_FILLT(10)
79168 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79169: AllocBase()
79170, d_type(t_INDEX)
79171{
79172 typedef typename bsl::remove_cv<
79174 Alt_Type;
79175
79176 BloombergLP::bslma::ConstructionUtil::construct(
79177 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79178 AllocBase::mechanism());
79179}
79180#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
79181
79182#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
79183template <class t_HEAD, class t_TAIL_01,
79184 class t_TAIL_02,
79185 class t_TAIL_03,
79186 class t_TAIL_04,
79187 class t_TAIL_05,
79188 class t_TAIL_06,
79189 class t_TAIL_07,
79190 class t_TAIL_08,
79191 class t_TAIL_09>
79192template <size_t t_INDEX>
79193inline
79194Variant_Base<t_HEAD, t_TAIL_01,
79195 t_TAIL_02,
79196 t_TAIL_03,
79197 t_TAIL_04,
79198 t_TAIL_05,
79199 t_TAIL_06,
79200 t_TAIL_07,
79201 t_TAIL_08,
79202 t_TAIL_09,
79203 BSLS_COMPILERFEATURES_FILLT( 9)
79204 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79205: AllocBase()
79206, d_type(t_INDEX)
79207{
79208 typedef typename bsl::remove_cv<
79210 Alt_Type;
79211
79212 BloombergLP::bslma::ConstructionUtil::construct(
79213 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79214 AllocBase::mechanism());
79215}
79216#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
79217
79218#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
79219template <class t_HEAD, class t_TAIL_01,
79220 class t_TAIL_02,
79221 class t_TAIL_03,
79222 class t_TAIL_04,
79223 class t_TAIL_05,
79224 class t_TAIL_06,
79225 class t_TAIL_07,
79226 class t_TAIL_08,
79227 class t_TAIL_09,
79228 class t_TAIL_10>
79229template <size_t t_INDEX>
79230inline
79231Variant_Base<t_HEAD, t_TAIL_01,
79232 t_TAIL_02,
79233 t_TAIL_03,
79234 t_TAIL_04,
79235 t_TAIL_05,
79236 t_TAIL_06,
79237 t_TAIL_07,
79238 t_TAIL_08,
79239 t_TAIL_09,
79240 t_TAIL_10,
79241 BSLS_COMPILERFEATURES_FILLT( 8)
79242 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79243: AllocBase()
79244, d_type(t_INDEX)
79245{
79246 typedef typename bsl::remove_cv<
79248 Alt_Type;
79249
79250 BloombergLP::bslma::ConstructionUtil::construct(
79251 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79252 AllocBase::mechanism());
79253}
79254#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
79255
79256#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
79257template <class t_HEAD, class t_TAIL_01,
79258 class t_TAIL_02,
79259 class t_TAIL_03,
79260 class t_TAIL_04,
79261 class t_TAIL_05,
79262 class t_TAIL_06,
79263 class t_TAIL_07,
79264 class t_TAIL_08,
79265 class t_TAIL_09,
79266 class t_TAIL_10,
79267 class t_TAIL_11>
79268template <size_t t_INDEX>
79269inline
79270Variant_Base<t_HEAD, t_TAIL_01,
79271 t_TAIL_02,
79272 t_TAIL_03,
79273 t_TAIL_04,
79274 t_TAIL_05,
79275 t_TAIL_06,
79276 t_TAIL_07,
79277 t_TAIL_08,
79278 t_TAIL_09,
79279 t_TAIL_10,
79280 t_TAIL_11,
79281 BSLS_COMPILERFEATURES_FILLT( 7)
79282 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79283: AllocBase()
79284, d_type(t_INDEX)
79285{
79286 typedef typename bsl::remove_cv<
79288 Alt_Type;
79289
79290 BloombergLP::bslma::ConstructionUtil::construct(
79291 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79292 AllocBase::mechanism());
79293}
79294#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
79295
79296#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
79297template <class t_HEAD, class t_TAIL_01,
79298 class t_TAIL_02,
79299 class t_TAIL_03,
79300 class t_TAIL_04,
79301 class t_TAIL_05,
79302 class t_TAIL_06,
79303 class t_TAIL_07,
79304 class t_TAIL_08,
79305 class t_TAIL_09,
79306 class t_TAIL_10,
79307 class t_TAIL_11,
79308 class t_TAIL_12>
79309template <size_t t_INDEX>
79310inline
79311Variant_Base<t_HEAD, t_TAIL_01,
79312 t_TAIL_02,
79313 t_TAIL_03,
79314 t_TAIL_04,
79315 t_TAIL_05,
79316 t_TAIL_06,
79317 t_TAIL_07,
79318 t_TAIL_08,
79319 t_TAIL_09,
79320 t_TAIL_10,
79321 t_TAIL_11,
79322 t_TAIL_12,
79323 BSLS_COMPILERFEATURES_FILLT( 6)
79324 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79325: AllocBase()
79326, d_type(t_INDEX)
79327{
79328 typedef typename bsl::remove_cv<
79330 Alt_Type;
79331
79332 BloombergLP::bslma::ConstructionUtil::construct(
79333 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79334 AllocBase::mechanism());
79335}
79336#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
79337
79338#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
79339template <class t_HEAD, class t_TAIL_01,
79340 class t_TAIL_02,
79341 class t_TAIL_03,
79342 class t_TAIL_04,
79343 class t_TAIL_05,
79344 class t_TAIL_06,
79345 class t_TAIL_07,
79346 class t_TAIL_08,
79347 class t_TAIL_09,
79348 class t_TAIL_10,
79349 class t_TAIL_11,
79350 class t_TAIL_12,
79351 class t_TAIL_13>
79352template <size_t t_INDEX>
79353inline
79354Variant_Base<t_HEAD, t_TAIL_01,
79355 t_TAIL_02,
79356 t_TAIL_03,
79357 t_TAIL_04,
79358 t_TAIL_05,
79359 t_TAIL_06,
79360 t_TAIL_07,
79361 t_TAIL_08,
79362 t_TAIL_09,
79363 t_TAIL_10,
79364 t_TAIL_11,
79365 t_TAIL_12,
79366 t_TAIL_13,
79367 BSLS_COMPILERFEATURES_FILLT( 5)
79368 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79369: AllocBase()
79370, d_type(t_INDEX)
79371{
79372 typedef typename bsl::remove_cv<
79374 Alt_Type;
79375
79376 BloombergLP::bslma::ConstructionUtil::construct(
79377 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79378 AllocBase::mechanism());
79379}
79380#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
79381
79382#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
79383template <class t_HEAD, class t_TAIL_01,
79384 class t_TAIL_02,
79385 class t_TAIL_03,
79386 class t_TAIL_04,
79387 class t_TAIL_05,
79388 class t_TAIL_06,
79389 class t_TAIL_07,
79390 class t_TAIL_08,
79391 class t_TAIL_09,
79392 class t_TAIL_10,
79393 class t_TAIL_11,
79394 class t_TAIL_12,
79395 class t_TAIL_13,
79396 class t_TAIL_14>
79397template <size_t t_INDEX>
79398inline
79399Variant_Base<t_HEAD, t_TAIL_01,
79400 t_TAIL_02,
79401 t_TAIL_03,
79402 t_TAIL_04,
79403 t_TAIL_05,
79404 t_TAIL_06,
79405 t_TAIL_07,
79406 t_TAIL_08,
79407 t_TAIL_09,
79408 t_TAIL_10,
79409 t_TAIL_11,
79410 t_TAIL_12,
79411 t_TAIL_13,
79412 t_TAIL_14,
79413 BSLS_COMPILERFEATURES_FILLT( 4)
79414 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79415: AllocBase()
79416, d_type(t_INDEX)
79417{
79418 typedef typename bsl::remove_cv<
79420 Alt_Type;
79421
79422 BloombergLP::bslma::ConstructionUtil::construct(
79423 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79424 AllocBase::mechanism());
79425}
79426#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
79427
79428#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
79429template <class t_HEAD, class t_TAIL_01,
79430 class t_TAIL_02,
79431 class t_TAIL_03,
79432 class t_TAIL_04,
79433 class t_TAIL_05,
79434 class t_TAIL_06,
79435 class t_TAIL_07,
79436 class t_TAIL_08,
79437 class t_TAIL_09,
79438 class t_TAIL_10,
79439 class t_TAIL_11,
79440 class t_TAIL_12,
79441 class t_TAIL_13,
79442 class t_TAIL_14,
79443 class t_TAIL_15>
79444template <size_t t_INDEX>
79445inline
79446Variant_Base<t_HEAD, t_TAIL_01,
79447 t_TAIL_02,
79448 t_TAIL_03,
79449 t_TAIL_04,
79450 t_TAIL_05,
79451 t_TAIL_06,
79452 t_TAIL_07,
79453 t_TAIL_08,
79454 t_TAIL_09,
79455 t_TAIL_10,
79456 t_TAIL_11,
79457 t_TAIL_12,
79458 t_TAIL_13,
79459 t_TAIL_14,
79460 t_TAIL_15,
79461 BSLS_COMPILERFEATURES_FILLT( 3)
79462 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79463: AllocBase()
79464, d_type(t_INDEX)
79465{
79466 typedef typename bsl::remove_cv<
79468 Alt_Type;
79469
79470 BloombergLP::bslma::ConstructionUtil::construct(
79471 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79472 AllocBase::mechanism());
79473}
79474#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
79475
79476#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
79477template <class t_HEAD, class t_TAIL_01,
79478 class t_TAIL_02,
79479 class t_TAIL_03,
79480 class t_TAIL_04,
79481 class t_TAIL_05,
79482 class t_TAIL_06,
79483 class t_TAIL_07,
79484 class t_TAIL_08,
79485 class t_TAIL_09,
79486 class t_TAIL_10,
79487 class t_TAIL_11,
79488 class t_TAIL_12,
79489 class t_TAIL_13,
79490 class t_TAIL_14,
79491 class t_TAIL_15,
79492 class t_TAIL_16>
79493template <size_t t_INDEX>
79494inline
79495Variant_Base<t_HEAD, t_TAIL_01,
79496 t_TAIL_02,
79497 t_TAIL_03,
79498 t_TAIL_04,
79499 t_TAIL_05,
79500 t_TAIL_06,
79501 t_TAIL_07,
79502 t_TAIL_08,
79503 t_TAIL_09,
79504 t_TAIL_10,
79505 t_TAIL_11,
79506 t_TAIL_12,
79507 t_TAIL_13,
79508 t_TAIL_14,
79509 t_TAIL_15,
79510 t_TAIL_16,
79511 BSLS_COMPILERFEATURES_FILLT( 2)
79512 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79513: AllocBase()
79514, d_type(t_INDEX)
79515{
79516 typedef typename bsl::remove_cv<
79518 Alt_Type;
79519
79520 BloombergLP::bslma::ConstructionUtil::construct(
79521 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79522 AllocBase::mechanism());
79523}
79524#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
79525
79526#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
79527template <class t_HEAD, class t_TAIL_01,
79528 class t_TAIL_02,
79529 class t_TAIL_03,
79530 class t_TAIL_04,
79531 class t_TAIL_05,
79532 class t_TAIL_06,
79533 class t_TAIL_07,
79534 class t_TAIL_08,
79535 class t_TAIL_09,
79536 class t_TAIL_10,
79537 class t_TAIL_11,
79538 class t_TAIL_12,
79539 class t_TAIL_13,
79540 class t_TAIL_14,
79541 class t_TAIL_15,
79542 class t_TAIL_16,
79543 class t_TAIL_17>
79544template <size_t t_INDEX>
79545inline
79546Variant_Base<t_HEAD, t_TAIL_01,
79547 t_TAIL_02,
79548 t_TAIL_03,
79549 t_TAIL_04,
79550 t_TAIL_05,
79551 t_TAIL_06,
79552 t_TAIL_07,
79553 t_TAIL_08,
79554 t_TAIL_09,
79555 t_TAIL_10,
79556 t_TAIL_11,
79557 t_TAIL_12,
79558 t_TAIL_13,
79559 t_TAIL_14,
79560 t_TAIL_15,
79561 t_TAIL_16,
79562 t_TAIL_17,
79563 BSLS_COMPILERFEATURES_FILLT( 1)
79564 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79565: AllocBase()
79566, d_type(t_INDEX)
79567{
79568 typedef typename bsl::remove_cv<
79570 Alt_Type;
79571
79572 BloombergLP::bslma::ConstructionUtil::construct(
79573 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79574 AllocBase::mechanism());
79575}
79576#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
79577
79578#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
79579template <class t_HEAD, class t_TAIL_01,
79580 class t_TAIL_02,
79581 class t_TAIL_03,
79582 class t_TAIL_04,
79583 class t_TAIL_05,
79584 class t_TAIL_06,
79585 class t_TAIL_07,
79586 class t_TAIL_08,
79587 class t_TAIL_09,
79588 class t_TAIL_10,
79589 class t_TAIL_11,
79590 class t_TAIL_12,
79591 class t_TAIL_13,
79592 class t_TAIL_14,
79593 class t_TAIL_15,
79594 class t_TAIL_16,
79595 class t_TAIL_17,
79596 class t_TAIL_18>
79597template <size_t t_INDEX>
79598inline
79599Variant_Base<t_HEAD, t_TAIL_01,
79600 t_TAIL_02,
79601 t_TAIL_03,
79602 t_TAIL_04,
79603 t_TAIL_05,
79604 t_TAIL_06,
79605 t_TAIL_07,
79606 t_TAIL_08,
79607 t_TAIL_09,
79608 t_TAIL_10,
79609 t_TAIL_11,
79610 t_TAIL_12,
79611 t_TAIL_13,
79612 t_TAIL_14,
79613 t_TAIL_15,
79614 t_TAIL_16,
79615 t_TAIL_17,
79616 t_TAIL_18,
79617 BSLS_COMPILERFEATURES_FILLT( 0)
79618 >::Variant_Base(bsl::in_place_index_t<t_INDEX>)
79619: AllocBase()
79620, d_type(t_INDEX)
79621{
79622 typedef typename bsl::remove_cv<
79624 Alt_Type;
79625
79626 BloombergLP::bslma::ConstructionUtil::construct(
79627 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79628 AllocBase::mechanism());
79629}
79630#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
79631
79632
79633#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
79634template <class t_HEAD>
79635template <size_t t_INDEX, class t_ARG_01>
79636inline
79637Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
79639 const t_ARG_01& arg_01)
79640: AllocBase()
79641, d_type(t_INDEX)
79642{
79643 typedef typename bsl::remove_cv<
79645 Alt_Type;
79646
79647 BloombergLP::bslma::ConstructionUtil::construct(
79648 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79649 AllocBase::mechanism(),
79650 arg_01);
79651}
79652#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
79653
79654#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
79655template <class t_HEAD, class t_TAIL_01>
79656template <size_t t_INDEX, class t_ARG_01>
79657inline
79658Variant_Base<t_HEAD, t_TAIL_01,
79659 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
79661 const t_ARG_01& arg_01)
79662: AllocBase()
79663, d_type(t_INDEX)
79664{
79665 typedef typename bsl::remove_cv<
79667 Alt_Type;
79668
79669 BloombergLP::bslma::ConstructionUtil::construct(
79670 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79671 AllocBase::mechanism(),
79672 arg_01);
79673}
79674#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
79675
79676#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
79677template <class t_HEAD, class t_TAIL_01,
79678 class t_TAIL_02>
79679template <size_t t_INDEX, class t_ARG_01>
79680inline
79681Variant_Base<t_HEAD, t_TAIL_01,
79682 t_TAIL_02,
79683 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
79685 const t_ARG_01& arg_01)
79686: AllocBase()
79687, d_type(t_INDEX)
79688{
79689 typedef typename bsl::remove_cv<
79691 Alt_Type;
79692
79693 BloombergLP::bslma::ConstructionUtil::construct(
79694 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79695 AllocBase::mechanism(),
79696 arg_01);
79697}
79698#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
79699
79700#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
79701template <class t_HEAD, class t_TAIL_01,
79702 class t_TAIL_02,
79703 class t_TAIL_03>
79704template <size_t t_INDEX, class t_ARG_01>
79705inline
79706Variant_Base<t_HEAD, t_TAIL_01,
79707 t_TAIL_02,
79708 t_TAIL_03,
79709 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
79711 const t_ARG_01& arg_01)
79712: AllocBase()
79713, d_type(t_INDEX)
79714{
79715 typedef typename bsl::remove_cv<
79717 Alt_Type;
79718
79719 BloombergLP::bslma::ConstructionUtil::construct(
79720 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79721 AllocBase::mechanism(),
79722 arg_01);
79723}
79724#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
79725
79726#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
79727template <class t_HEAD, class t_TAIL_01,
79728 class t_TAIL_02,
79729 class t_TAIL_03,
79730 class t_TAIL_04>
79731template <size_t t_INDEX, class t_ARG_01>
79732inline
79733Variant_Base<t_HEAD, t_TAIL_01,
79734 t_TAIL_02,
79735 t_TAIL_03,
79736 t_TAIL_04,
79737 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
79739 const t_ARG_01& arg_01)
79740: AllocBase()
79741, d_type(t_INDEX)
79742{
79743 typedef typename bsl::remove_cv<
79745 Alt_Type;
79746
79747 BloombergLP::bslma::ConstructionUtil::construct(
79748 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79749 AllocBase::mechanism(),
79750 arg_01);
79751}
79752#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
79753
79754#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
79755template <class t_HEAD, class t_TAIL_01,
79756 class t_TAIL_02,
79757 class t_TAIL_03,
79758 class t_TAIL_04,
79759 class t_TAIL_05>
79760template <size_t t_INDEX, class t_ARG_01>
79761inline
79762Variant_Base<t_HEAD, t_TAIL_01,
79763 t_TAIL_02,
79764 t_TAIL_03,
79765 t_TAIL_04,
79766 t_TAIL_05,
79767 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
79769 const t_ARG_01& arg_01)
79770: AllocBase()
79771, d_type(t_INDEX)
79772{
79773 typedef typename bsl::remove_cv<
79775 Alt_Type;
79776
79777 BloombergLP::bslma::ConstructionUtil::construct(
79778 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79779 AllocBase::mechanism(),
79780 arg_01);
79781}
79782#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
79783
79784#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
79785template <class t_HEAD, class t_TAIL_01,
79786 class t_TAIL_02,
79787 class t_TAIL_03,
79788 class t_TAIL_04,
79789 class t_TAIL_05,
79790 class t_TAIL_06>
79791template <size_t t_INDEX, class t_ARG_01>
79792inline
79793Variant_Base<t_HEAD, t_TAIL_01,
79794 t_TAIL_02,
79795 t_TAIL_03,
79796 t_TAIL_04,
79797 t_TAIL_05,
79798 t_TAIL_06,
79799 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
79801 const t_ARG_01& arg_01)
79802: AllocBase()
79803, d_type(t_INDEX)
79804{
79805 typedef typename bsl::remove_cv<
79807 Alt_Type;
79808
79809 BloombergLP::bslma::ConstructionUtil::construct(
79810 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79811 AllocBase::mechanism(),
79812 arg_01);
79813}
79814#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
79815
79816#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
79817template <class t_HEAD, class t_TAIL_01,
79818 class t_TAIL_02,
79819 class t_TAIL_03,
79820 class t_TAIL_04,
79821 class t_TAIL_05,
79822 class t_TAIL_06,
79823 class t_TAIL_07>
79824template <size_t t_INDEX, class t_ARG_01>
79825inline
79826Variant_Base<t_HEAD, t_TAIL_01,
79827 t_TAIL_02,
79828 t_TAIL_03,
79829 t_TAIL_04,
79830 t_TAIL_05,
79831 t_TAIL_06,
79832 t_TAIL_07,
79833 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
79835 const t_ARG_01& arg_01)
79836: AllocBase()
79837, d_type(t_INDEX)
79838{
79839 typedef typename bsl::remove_cv<
79841 Alt_Type;
79842
79843 BloombergLP::bslma::ConstructionUtil::construct(
79844 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79845 AllocBase::mechanism(),
79846 arg_01);
79847}
79848#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
79849
79850#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
79851template <class t_HEAD, class t_TAIL_01,
79852 class t_TAIL_02,
79853 class t_TAIL_03,
79854 class t_TAIL_04,
79855 class t_TAIL_05,
79856 class t_TAIL_06,
79857 class t_TAIL_07,
79858 class t_TAIL_08>
79859template <size_t t_INDEX, class t_ARG_01>
79860inline
79861Variant_Base<t_HEAD, t_TAIL_01,
79862 t_TAIL_02,
79863 t_TAIL_03,
79864 t_TAIL_04,
79865 t_TAIL_05,
79866 t_TAIL_06,
79867 t_TAIL_07,
79868 t_TAIL_08,
79869 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
79871 const t_ARG_01& arg_01)
79872: AllocBase()
79873, d_type(t_INDEX)
79874{
79875 typedef typename bsl::remove_cv<
79877 Alt_Type;
79878
79879 BloombergLP::bslma::ConstructionUtil::construct(
79880 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79881 AllocBase::mechanism(),
79882 arg_01);
79883}
79884#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
79885
79886#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
79887template <class t_HEAD, class t_TAIL_01,
79888 class t_TAIL_02,
79889 class t_TAIL_03,
79890 class t_TAIL_04,
79891 class t_TAIL_05,
79892 class t_TAIL_06,
79893 class t_TAIL_07,
79894 class t_TAIL_08,
79895 class t_TAIL_09>
79896template <size_t t_INDEX, class t_ARG_01>
79897inline
79898Variant_Base<t_HEAD, t_TAIL_01,
79899 t_TAIL_02,
79900 t_TAIL_03,
79901 t_TAIL_04,
79902 t_TAIL_05,
79903 t_TAIL_06,
79904 t_TAIL_07,
79905 t_TAIL_08,
79906 t_TAIL_09,
79907 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
79909 const t_ARG_01& arg_01)
79910: AllocBase()
79911, d_type(t_INDEX)
79912{
79913 typedef typename bsl::remove_cv<
79915 Alt_Type;
79916
79917 BloombergLP::bslma::ConstructionUtil::construct(
79918 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79919 AllocBase::mechanism(),
79920 arg_01);
79921}
79922#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
79923
79924#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
79925template <class t_HEAD, class t_TAIL_01,
79926 class t_TAIL_02,
79927 class t_TAIL_03,
79928 class t_TAIL_04,
79929 class t_TAIL_05,
79930 class t_TAIL_06,
79931 class t_TAIL_07,
79932 class t_TAIL_08,
79933 class t_TAIL_09,
79934 class t_TAIL_10>
79935template <size_t t_INDEX, class t_ARG_01>
79936inline
79937Variant_Base<t_HEAD, t_TAIL_01,
79938 t_TAIL_02,
79939 t_TAIL_03,
79940 t_TAIL_04,
79941 t_TAIL_05,
79942 t_TAIL_06,
79943 t_TAIL_07,
79944 t_TAIL_08,
79945 t_TAIL_09,
79946 t_TAIL_10,
79947 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
79949 const t_ARG_01& arg_01)
79950: AllocBase()
79951, d_type(t_INDEX)
79952{
79953 typedef typename bsl::remove_cv<
79955 Alt_Type;
79956
79957 BloombergLP::bslma::ConstructionUtil::construct(
79958 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
79959 AllocBase::mechanism(),
79960 arg_01);
79961}
79962#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
79963
79964#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
79965template <class t_HEAD, class t_TAIL_01,
79966 class t_TAIL_02,
79967 class t_TAIL_03,
79968 class t_TAIL_04,
79969 class t_TAIL_05,
79970 class t_TAIL_06,
79971 class t_TAIL_07,
79972 class t_TAIL_08,
79973 class t_TAIL_09,
79974 class t_TAIL_10,
79975 class t_TAIL_11>
79976template <size_t t_INDEX, class t_ARG_01>
79977inline
79978Variant_Base<t_HEAD, t_TAIL_01,
79979 t_TAIL_02,
79980 t_TAIL_03,
79981 t_TAIL_04,
79982 t_TAIL_05,
79983 t_TAIL_06,
79984 t_TAIL_07,
79985 t_TAIL_08,
79986 t_TAIL_09,
79987 t_TAIL_10,
79988 t_TAIL_11,
79989 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
79991 const t_ARG_01& arg_01)
79992: AllocBase()
79993, d_type(t_INDEX)
79994{
79995 typedef typename bsl::remove_cv<
79997 Alt_Type;
79998
79999 BloombergLP::bslma::ConstructionUtil::construct(
80000 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80001 AllocBase::mechanism(),
80002 arg_01);
80003}
80004#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
80005
80006#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
80007template <class t_HEAD, class t_TAIL_01,
80008 class t_TAIL_02,
80009 class t_TAIL_03,
80010 class t_TAIL_04,
80011 class t_TAIL_05,
80012 class t_TAIL_06,
80013 class t_TAIL_07,
80014 class t_TAIL_08,
80015 class t_TAIL_09,
80016 class t_TAIL_10,
80017 class t_TAIL_11,
80018 class t_TAIL_12>
80019template <size_t t_INDEX, class t_ARG_01>
80020inline
80021Variant_Base<t_HEAD, t_TAIL_01,
80022 t_TAIL_02,
80023 t_TAIL_03,
80024 t_TAIL_04,
80025 t_TAIL_05,
80026 t_TAIL_06,
80027 t_TAIL_07,
80028 t_TAIL_08,
80029 t_TAIL_09,
80030 t_TAIL_10,
80031 t_TAIL_11,
80032 t_TAIL_12,
80033 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
80035 const t_ARG_01& arg_01)
80036: AllocBase()
80037, d_type(t_INDEX)
80038{
80039 typedef typename bsl::remove_cv<
80041 Alt_Type;
80042
80043 BloombergLP::bslma::ConstructionUtil::construct(
80044 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80045 AllocBase::mechanism(),
80046 arg_01);
80047}
80048#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
80049
80050#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
80051template <class t_HEAD, class t_TAIL_01,
80052 class t_TAIL_02,
80053 class t_TAIL_03,
80054 class t_TAIL_04,
80055 class t_TAIL_05,
80056 class t_TAIL_06,
80057 class t_TAIL_07,
80058 class t_TAIL_08,
80059 class t_TAIL_09,
80060 class t_TAIL_10,
80061 class t_TAIL_11,
80062 class t_TAIL_12,
80063 class t_TAIL_13>
80064template <size_t t_INDEX, class t_ARG_01>
80065inline
80066Variant_Base<t_HEAD, t_TAIL_01,
80067 t_TAIL_02,
80068 t_TAIL_03,
80069 t_TAIL_04,
80070 t_TAIL_05,
80071 t_TAIL_06,
80072 t_TAIL_07,
80073 t_TAIL_08,
80074 t_TAIL_09,
80075 t_TAIL_10,
80076 t_TAIL_11,
80077 t_TAIL_12,
80078 t_TAIL_13,
80079 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
80081 const t_ARG_01& arg_01)
80082: AllocBase()
80083, d_type(t_INDEX)
80084{
80085 typedef typename bsl::remove_cv<
80087 Alt_Type;
80088
80089 BloombergLP::bslma::ConstructionUtil::construct(
80090 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80091 AllocBase::mechanism(),
80092 arg_01);
80093}
80094#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
80095
80096#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
80097template <class t_HEAD, class t_TAIL_01,
80098 class t_TAIL_02,
80099 class t_TAIL_03,
80100 class t_TAIL_04,
80101 class t_TAIL_05,
80102 class t_TAIL_06,
80103 class t_TAIL_07,
80104 class t_TAIL_08,
80105 class t_TAIL_09,
80106 class t_TAIL_10,
80107 class t_TAIL_11,
80108 class t_TAIL_12,
80109 class t_TAIL_13,
80110 class t_TAIL_14>
80111template <size_t t_INDEX, class t_ARG_01>
80112inline
80113Variant_Base<t_HEAD, t_TAIL_01,
80114 t_TAIL_02,
80115 t_TAIL_03,
80116 t_TAIL_04,
80117 t_TAIL_05,
80118 t_TAIL_06,
80119 t_TAIL_07,
80120 t_TAIL_08,
80121 t_TAIL_09,
80122 t_TAIL_10,
80123 t_TAIL_11,
80124 t_TAIL_12,
80125 t_TAIL_13,
80126 t_TAIL_14,
80127 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
80129 const t_ARG_01& arg_01)
80130: AllocBase()
80131, d_type(t_INDEX)
80132{
80133 typedef typename bsl::remove_cv<
80135 Alt_Type;
80136
80137 BloombergLP::bslma::ConstructionUtil::construct(
80138 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80139 AllocBase::mechanism(),
80140 arg_01);
80141}
80142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
80143
80144#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
80145template <class t_HEAD, class t_TAIL_01,
80146 class t_TAIL_02,
80147 class t_TAIL_03,
80148 class t_TAIL_04,
80149 class t_TAIL_05,
80150 class t_TAIL_06,
80151 class t_TAIL_07,
80152 class t_TAIL_08,
80153 class t_TAIL_09,
80154 class t_TAIL_10,
80155 class t_TAIL_11,
80156 class t_TAIL_12,
80157 class t_TAIL_13,
80158 class t_TAIL_14,
80159 class t_TAIL_15>
80160template <size_t t_INDEX, class t_ARG_01>
80161inline
80162Variant_Base<t_HEAD, t_TAIL_01,
80163 t_TAIL_02,
80164 t_TAIL_03,
80165 t_TAIL_04,
80166 t_TAIL_05,
80167 t_TAIL_06,
80168 t_TAIL_07,
80169 t_TAIL_08,
80170 t_TAIL_09,
80171 t_TAIL_10,
80172 t_TAIL_11,
80173 t_TAIL_12,
80174 t_TAIL_13,
80175 t_TAIL_14,
80176 t_TAIL_15,
80177 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
80179 const t_ARG_01& arg_01)
80180: AllocBase()
80181, d_type(t_INDEX)
80182{
80183 typedef typename bsl::remove_cv<
80185 Alt_Type;
80186
80187 BloombergLP::bslma::ConstructionUtil::construct(
80188 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80189 AllocBase::mechanism(),
80190 arg_01);
80191}
80192#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
80193
80194#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
80195template <class t_HEAD, class t_TAIL_01,
80196 class t_TAIL_02,
80197 class t_TAIL_03,
80198 class t_TAIL_04,
80199 class t_TAIL_05,
80200 class t_TAIL_06,
80201 class t_TAIL_07,
80202 class t_TAIL_08,
80203 class t_TAIL_09,
80204 class t_TAIL_10,
80205 class t_TAIL_11,
80206 class t_TAIL_12,
80207 class t_TAIL_13,
80208 class t_TAIL_14,
80209 class t_TAIL_15,
80210 class t_TAIL_16>
80211template <size_t t_INDEX, class t_ARG_01>
80212inline
80213Variant_Base<t_HEAD, t_TAIL_01,
80214 t_TAIL_02,
80215 t_TAIL_03,
80216 t_TAIL_04,
80217 t_TAIL_05,
80218 t_TAIL_06,
80219 t_TAIL_07,
80220 t_TAIL_08,
80221 t_TAIL_09,
80222 t_TAIL_10,
80223 t_TAIL_11,
80224 t_TAIL_12,
80225 t_TAIL_13,
80226 t_TAIL_14,
80227 t_TAIL_15,
80228 t_TAIL_16,
80229 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
80231 const t_ARG_01& arg_01)
80232: AllocBase()
80233, d_type(t_INDEX)
80234{
80235 typedef typename bsl::remove_cv<
80237 Alt_Type;
80238
80239 BloombergLP::bslma::ConstructionUtil::construct(
80240 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80241 AllocBase::mechanism(),
80242 arg_01);
80243}
80244#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
80245
80246#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
80247template <class t_HEAD, class t_TAIL_01,
80248 class t_TAIL_02,
80249 class t_TAIL_03,
80250 class t_TAIL_04,
80251 class t_TAIL_05,
80252 class t_TAIL_06,
80253 class t_TAIL_07,
80254 class t_TAIL_08,
80255 class t_TAIL_09,
80256 class t_TAIL_10,
80257 class t_TAIL_11,
80258 class t_TAIL_12,
80259 class t_TAIL_13,
80260 class t_TAIL_14,
80261 class t_TAIL_15,
80262 class t_TAIL_16,
80263 class t_TAIL_17>
80264template <size_t t_INDEX, class t_ARG_01>
80265inline
80266Variant_Base<t_HEAD, t_TAIL_01,
80267 t_TAIL_02,
80268 t_TAIL_03,
80269 t_TAIL_04,
80270 t_TAIL_05,
80271 t_TAIL_06,
80272 t_TAIL_07,
80273 t_TAIL_08,
80274 t_TAIL_09,
80275 t_TAIL_10,
80276 t_TAIL_11,
80277 t_TAIL_12,
80278 t_TAIL_13,
80279 t_TAIL_14,
80280 t_TAIL_15,
80281 t_TAIL_16,
80282 t_TAIL_17,
80283 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
80285 const t_ARG_01& arg_01)
80286: AllocBase()
80287, d_type(t_INDEX)
80288{
80289 typedef typename bsl::remove_cv<
80291 Alt_Type;
80292
80293 BloombergLP::bslma::ConstructionUtil::construct(
80294 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80295 AllocBase::mechanism(),
80296 arg_01);
80297}
80298#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
80299
80300#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
80301template <class t_HEAD, class t_TAIL_01,
80302 class t_TAIL_02,
80303 class t_TAIL_03,
80304 class t_TAIL_04,
80305 class t_TAIL_05,
80306 class t_TAIL_06,
80307 class t_TAIL_07,
80308 class t_TAIL_08,
80309 class t_TAIL_09,
80310 class t_TAIL_10,
80311 class t_TAIL_11,
80312 class t_TAIL_12,
80313 class t_TAIL_13,
80314 class t_TAIL_14,
80315 class t_TAIL_15,
80316 class t_TAIL_16,
80317 class t_TAIL_17,
80318 class t_TAIL_18>
80319template <size_t t_INDEX, class t_ARG_01>
80320inline
80321Variant_Base<t_HEAD, t_TAIL_01,
80322 t_TAIL_02,
80323 t_TAIL_03,
80324 t_TAIL_04,
80325 t_TAIL_05,
80326 t_TAIL_06,
80327 t_TAIL_07,
80328 t_TAIL_08,
80329 t_TAIL_09,
80330 t_TAIL_10,
80331 t_TAIL_11,
80332 t_TAIL_12,
80333 t_TAIL_13,
80334 t_TAIL_14,
80335 t_TAIL_15,
80336 t_TAIL_16,
80337 t_TAIL_17,
80338 t_TAIL_18,
80339 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
80341 const t_ARG_01& arg_01)
80342: AllocBase()
80343, d_type(t_INDEX)
80344{
80345 typedef typename bsl::remove_cv<
80347 Alt_Type;
80348
80349 BloombergLP::bslma::ConstructionUtil::construct(
80350 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80351 AllocBase::mechanism(),
80352 arg_01);
80353}
80354#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
80355
80356
80357#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
80358template <class t_HEAD>
80359template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80360inline
80361Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
80363 const t_ARG_01& arg_01,
80364 const t_ARG_02& arg_02)
80365: AllocBase()
80366, d_type(t_INDEX)
80367{
80368 typedef typename bsl::remove_cv<
80370 Alt_Type;
80371
80372 BloombergLP::bslma::ConstructionUtil::construct(
80373 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80374 AllocBase::mechanism(),
80375 arg_01,
80376 arg_02);
80377}
80378#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
80379
80380#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
80381template <class t_HEAD, class t_TAIL_01>
80382template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80383inline
80384Variant_Base<t_HEAD, t_TAIL_01,
80385 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
80387 const t_ARG_01& arg_01,
80388 const t_ARG_02& arg_02)
80389: AllocBase()
80390, d_type(t_INDEX)
80391{
80392 typedef typename bsl::remove_cv<
80394 Alt_Type;
80395
80396 BloombergLP::bslma::ConstructionUtil::construct(
80397 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80398 AllocBase::mechanism(),
80399 arg_01,
80400 arg_02);
80401}
80402#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
80403
80404#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
80405template <class t_HEAD, class t_TAIL_01,
80406 class t_TAIL_02>
80407template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80408inline
80409Variant_Base<t_HEAD, t_TAIL_01,
80410 t_TAIL_02,
80411 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
80413 const t_ARG_01& arg_01,
80414 const t_ARG_02& arg_02)
80415: AllocBase()
80416, d_type(t_INDEX)
80417{
80418 typedef typename bsl::remove_cv<
80420 Alt_Type;
80421
80422 BloombergLP::bslma::ConstructionUtil::construct(
80423 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80424 AllocBase::mechanism(),
80425 arg_01,
80426 arg_02);
80427}
80428#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
80429
80430#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
80431template <class t_HEAD, class t_TAIL_01,
80432 class t_TAIL_02,
80433 class t_TAIL_03>
80434template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80435inline
80436Variant_Base<t_HEAD, t_TAIL_01,
80437 t_TAIL_02,
80438 t_TAIL_03,
80439 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
80441 const t_ARG_01& arg_01,
80442 const t_ARG_02& arg_02)
80443: AllocBase()
80444, d_type(t_INDEX)
80445{
80446 typedef typename bsl::remove_cv<
80448 Alt_Type;
80449
80450 BloombergLP::bslma::ConstructionUtil::construct(
80451 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80452 AllocBase::mechanism(),
80453 arg_01,
80454 arg_02);
80455}
80456#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
80457
80458#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
80459template <class t_HEAD, class t_TAIL_01,
80460 class t_TAIL_02,
80461 class t_TAIL_03,
80462 class t_TAIL_04>
80463template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80464inline
80465Variant_Base<t_HEAD, t_TAIL_01,
80466 t_TAIL_02,
80467 t_TAIL_03,
80468 t_TAIL_04,
80469 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
80471 const t_ARG_01& arg_01,
80472 const t_ARG_02& arg_02)
80473: AllocBase()
80474, d_type(t_INDEX)
80475{
80476 typedef typename bsl::remove_cv<
80478 Alt_Type;
80479
80480 BloombergLP::bslma::ConstructionUtil::construct(
80481 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80482 AllocBase::mechanism(),
80483 arg_01,
80484 arg_02);
80485}
80486#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
80487
80488#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
80489template <class t_HEAD, class t_TAIL_01,
80490 class t_TAIL_02,
80491 class t_TAIL_03,
80492 class t_TAIL_04,
80493 class t_TAIL_05>
80494template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80495inline
80496Variant_Base<t_HEAD, t_TAIL_01,
80497 t_TAIL_02,
80498 t_TAIL_03,
80499 t_TAIL_04,
80500 t_TAIL_05,
80501 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
80503 const t_ARG_01& arg_01,
80504 const t_ARG_02& arg_02)
80505: AllocBase()
80506, d_type(t_INDEX)
80507{
80508 typedef typename bsl::remove_cv<
80510 Alt_Type;
80511
80512 BloombergLP::bslma::ConstructionUtil::construct(
80513 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80514 AllocBase::mechanism(),
80515 arg_01,
80516 arg_02);
80517}
80518#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
80519
80520#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
80521template <class t_HEAD, class t_TAIL_01,
80522 class t_TAIL_02,
80523 class t_TAIL_03,
80524 class t_TAIL_04,
80525 class t_TAIL_05,
80526 class t_TAIL_06>
80527template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80528inline
80529Variant_Base<t_HEAD, t_TAIL_01,
80530 t_TAIL_02,
80531 t_TAIL_03,
80532 t_TAIL_04,
80533 t_TAIL_05,
80534 t_TAIL_06,
80535 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
80537 const t_ARG_01& arg_01,
80538 const t_ARG_02& arg_02)
80539: AllocBase()
80540, d_type(t_INDEX)
80541{
80542 typedef typename bsl::remove_cv<
80544 Alt_Type;
80545
80546 BloombergLP::bslma::ConstructionUtil::construct(
80547 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80548 AllocBase::mechanism(),
80549 arg_01,
80550 arg_02);
80551}
80552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
80553
80554#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
80555template <class t_HEAD, class t_TAIL_01,
80556 class t_TAIL_02,
80557 class t_TAIL_03,
80558 class t_TAIL_04,
80559 class t_TAIL_05,
80560 class t_TAIL_06,
80561 class t_TAIL_07>
80562template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80563inline
80564Variant_Base<t_HEAD, t_TAIL_01,
80565 t_TAIL_02,
80566 t_TAIL_03,
80567 t_TAIL_04,
80568 t_TAIL_05,
80569 t_TAIL_06,
80570 t_TAIL_07,
80571 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
80573 const t_ARG_01& arg_01,
80574 const t_ARG_02& arg_02)
80575: AllocBase()
80576, d_type(t_INDEX)
80577{
80578 typedef typename bsl::remove_cv<
80580 Alt_Type;
80581
80582 BloombergLP::bslma::ConstructionUtil::construct(
80583 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80584 AllocBase::mechanism(),
80585 arg_01,
80586 arg_02);
80587}
80588#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
80589
80590#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
80591template <class t_HEAD, class t_TAIL_01,
80592 class t_TAIL_02,
80593 class t_TAIL_03,
80594 class t_TAIL_04,
80595 class t_TAIL_05,
80596 class t_TAIL_06,
80597 class t_TAIL_07,
80598 class t_TAIL_08>
80599template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80600inline
80601Variant_Base<t_HEAD, t_TAIL_01,
80602 t_TAIL_02,
80603 t_TAIL_03,
80604 t_TAIL_04,
80605 t_TAIL_05,
80606 t_TAIL_06,
80607 t_TAIL_07,
80608 t_TAIL_08,
80609 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
80611 const t_ARG_01& arg_01,
80612 const t_ARG_02& arg_02)
80613: AllocBase()
80614, d_type(t_INDEX)
80615{
80616 typedef typename bsl::remove_cv<
80618 Alt_Type;
80619
80620 BloombergLP::bslma::ConstructionUtil::construct(
80621 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80622 AllocBase::mechanism(),
80623 arg_01,
80624 arg_02);
80625}
80626#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
80627
80628#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
80629template <class t_HEAD, class t_TAIL_01,
80630 class t_TAIL_02,
80631 class t_TAIL_03,
80632 class t_TAIL_04,
80633 class t_TAIL_05,
80634 class t_TAIL_06,
80635 class t_TAIL_07,
80636 class t_TAIL_08,
80637 class t_TAIL_09>
80638template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80639inline
80640Variant_Base<t_HEAD, t_TAIL_01,
80641 t_TAIL_02,
80642 t_TAIL_03,
80643 t_TAIL_04,
80644 t_TAIL_05,
80645 t_TAIL_06,
80646 t_TAIL_07,
80647 t_TAIL_08,
80648 t_TAIL_09,
80649 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
80651 const t_ARG_01& arg_01,
80652 const t_ARG_02& arg_02)
80653: AllocBase()
80654, d_type(t_INDEX)
80655{
80656 typedef typename bsl::remove_cv<
80658 Alt_Type;
80659
80660 BloombergLP::bslma::ConstructionUtil::construct(
80661 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80662 AllocBase::mechanism(),
80663 arg_01,
80664 arg_02);
80665}
80666#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
80667
80668#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
80669template <class t_HEAD, class t_TAIL_01,
80670 class t_TAIL_02,
80671 class t_TAIL_03,
80672 class t_TAIL_04,
80673 class t_TAIL_05,
80674 class t_TAIL_06,
80675 class t_TAIL_07,
80676 class t_TAIL_08,
80677 class t_TAIL_09,
80678 class t_TAIL_10>
80679template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80680inline
80681Variant_Base<t_HEAD, t_TAIL_01,
80682 t_TAIL_02,
80683 t_TAIL_03,
80684 t_TAIL_04,
80685 t_TAIL_05,
80686 t_TAIL_06,
80687 t_TAIL_07,
80688 t_TAIL_08,
80689 t_TAIL_09,
80690 t_TAIL_10,
80691 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
80693 const t_ARG_01& arg_01,
80694 const t_ARG_02& arg_02)
80695: AllocBase()
80696, d_type(t_INDEX)
80697{
80698 typedef typename bsl::remove_cv<
80700 Alt_Type;
80701
80702 BloombergLP::bslma::ConstructionUtil::construct(
80703 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80704 AllocBase::mechanism(),
80705 arg_01,
80706 arg_02);
80707}
80708#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
80709
80710#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
80711template <class t_HEAD, class t_TAIL_01,
80712 class t_TAIL_02,
80713 class t_TAIL_03,
80714 class t_TAIL_04,
80715 class t_TAIL_05,
80716 class t_TAIL_06,
80717 class t_TAIL_07,
80718 class t_TAIL_08,
80719 class t_TAIL_09,
80720 class t_TAIL_10,
80721 class t_TAIL_11>
80722template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80723inline
80724Variant_Base<t_HEAD, t_TAIL_01,
80725 t_TAIL_02,
80726 t_TAIL_03,
80727 t_TAIL_04,
80728 t_TAIL_05,
80729 t_TAIL_06,
80730 t_TAIL_07,
80731 t_TAIL_08,
80732 t_TAIL_09,
80733 t_TAIL_10,
80734 t_TAIL_11,
80735 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
80737 const t_ARG_01& arg_01,
80738 const t_ARG_02& arg_02)
80739: AllocBase()
80740, d_type(t_INDEX)
80741{
80742 typedef typename bsl::remove_cv<
80744 Alt_Type;
80745
80746 BloombergLP::bslma::ConstructionUtil::construct(
80747 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80748 AllocBase::mechanism(),
80749 arg_01,
80750 arg_02);
80751}
80752#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
80753
80754#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
80755template <class t_HEAD, class t_TAIL_01,
80756 class t_TAIL_02,
80757 class t_TAIL_03,
80758 class t_TAIL_04,
80759 class t_TAIL_05,
80760 class t_TAIL_06,
80761 class t_TAIL_07,
80762 class t_TAIL_08,
80763 class t_TAIL_09,
80764 class t_TAIL_10,
80765 class t_TAIL_11,
80766 class t_TAIL_12>
80767template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80768inline
80769Variant_Base<t_HEAD, t_TAIL_01,
80770 t_TAIL_02,
80771 t_TAIL_03,
80772 t_TAIL_04,
80773 t_TAIL_05,
80774 t_TAIL_06,
80775 t_TAIL_07,
80776 t_TAIL_08,
80777 t_TAIL_09,
80778 t_TAIL_10,
80779 t_TAIL_11,
80780 t_TAIL_12,
80781 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
80783 const t_ARG_01& arg_01,
80784 const t_ARG_02& arg_02)
80785: AllocBase()
80786, d_type(t_INDEX)
80787{
80788 typedef typename bsl::remove_cv<
80790 Alt_Type;
80791
80792 BloombergLP::bslma::ConstructionUtil::construct(
80793 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80794 AllocBase::mechanism(),
80795 arg_01,
80796 arg_02);
80797}
80798#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
80799
80800#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
80801template <class t_HEAD, class t_TAIL_01,
80802 class t_TAIL_02,
80803 class t_TAIL_03,
80804 class t_TAIL_04,
80805 class t_TAIL_05,
80806 class t_TAIL_06,
80807 class t_TAIL_07,
80808 class t_TAIL_08,
80809 class t_TAIL_09,
80810 class t_TAIL_10,
80811 class t_TAIL_11,
80812 class t_TAIL_12,
80813 class t_TAIL_13>
80814template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80815inline
80816Variant_Base<t_HEAD, t_TAIL_01,
80817 t_TAIL_02,
80818 t_TAIL_03,
80819 t_TAIL_04,
80820 t_TAIL_05,
80821 t_TAIL_06,
80822 t_TAIL_07,
80823 t_TAIL_08,
80824 t_TAIL_09,
80825 t_TAIL_10,
80826 t_TAIL_11,
80827 t_TAIL_12,
80828 t_TAIL_13,
80829 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
80831 const t_ARG_01& arg_01,
80832 const t_ARG_02& arg_02)
80833: AllocBase()
80834, d_type(t_INDEX)
80835{
80836 typedef typename bsl::remove_cv<
80838 Alt_Type;
80839
80840 BloombergLP::bslma::ConstructionUtil::construct(
80841 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80842 AllocBase::mechanism(),
80843 arg_01,
80844 arg_02);
80845}
80846#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
80847
80848#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
80849template <class t_HEAD, class t_TAIL_01,
80850 class t_TAIL_02,
80851 class t_TAIL_03,
80852 class t_TAIL_04,
80853 class t_TAIL_05,
80854 class t_TAIL_06,
80855 class t_TAIL_07,
80856 class t_TAIL_08,
80857 class t_TAIL_09,
80858 class t_TAIL_10,
80859 class t_TAIL_11,
80860 class t_TAIL_12,
80861 class t_TAIL_13,
80862 class t_TAIL_14>
80863template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80864inline
80865Variant_Base<t_HEAD, t_TAIL_01,
80866 t_TAIL_02,
80867 t_TAIL_03,
80868 t_TAIL_04,
80869 t_TAIL_05,
80870 t_TAIL_06,
80871 t_TAIL_07,
80872 t_TAIL_08,
80873 t_TAIL_09,
80874 t_TAIL_10,
80875 t_TAIL_11,
80876 t_TAIL_12,
80877 t_TAIL_13,
80878 t_TAIL_14,
80879 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
80881 const t_ARG_01& arg_01,
80882 const t_ARG_02& arg_02)
80883: AllocBase()
80884, d_type(t_INDEX)
80885{
80886 typedef typename bsl::remove_cv<
80888 Alt_Type;
80889
80890 BloombergLP::bslma::ConstructionUtil::construct(
80891 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80892 AllocBase::mechanism(),
80893 arg_01,
80894 arg_02);
80895}
80896#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
80897
80898#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
80899template <class t_HEAD, class t_TAIL_01,
80900 class t_TAIL_02,
80901 class t_TAIL_03,
80902 class t_TAIL_04,
80903 class t_TAIL_05,
80904 class t_TAIL_06,
80905 class t_TAIL_07,
80906 class t_TAIL_08,
80907 class t_TAIL_09,
80908 class t_TAIL_10,
80909 class t_TAIL_11,
80910 class t_TAIL_12,
80911 class t_TAIL_13,
80912 class t_TAIL_14,
80913 class t_TAIL_15>
80914template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80915inline
80916Variant_Base<t_HEAD, t_TAIL_01,
80917 t_TAIL_02,
80918 t_TAIL_03,
80919 t_TAIL_04,
80920 t_TAIL_05,
80921 t_TAIL_06,
80922 t_TAIL_07,
80923 t_TAIL_08,
80924 t_TAIL_09,
80925 t_TAIL_10,
80926 t_TAIL_11,
80927 t_TAIL_12,
80928 t_TAIL_13,
80929 t_TAIL_14,
80930 t_TAIL_15,
80931 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
80933 const t_ARG_01& arg_01,
80934 const t_ARG_02& arg_02)
80935: AllocBase()
80936, d_type(t_INDEX)
80937{
80938 typedef typename bsl::remove_cv<
80940 Alt_Type;
80941
80942 BloombergLP::bslma::ConstructionUtil::construct(
80943 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80944 AllocBase::mechanism(),
80945 arg_01,
80946 arg_02);
80947}
80948#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
80949
80950#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
80951template <class t_HEAD, class t_TAIL_01,
80952 class t_TAIL_02,
80953 class t_TAIL_03,
80954 class t_TAIL_04,
80955 class t_TAIL_05,
80956 class t_TAIL_06,
80957 class t_TAIL_07,
80958 class t_TAIL_08,
80959 class t_TAIL_09,
80960 class t_TAIL_10,
80961 class t_TAIL_11,
80962 class t_TAIL_12,
80963 class t_TAIL_13,
80964 class t_TAIL_14,
80965 class t_TAIL_15,
80966 class t_TAIL_16>
80967template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
80968inline
80969Variant_Base<t_HEAD, t_TAIL_01,
80970 t_TAIL_02,
80971 t_TAIL_03,
80972 t_TAIL_04,
80973 t_TAIL_05,
80974 t_TAIL_06,
80975 t_TAIL_07,
80976 t_TAIL_08,
80977 t_TAIL_09,
80978 t_TAIL_10,
80979 t_TAIL_11,
80980 t_TAIL_12,
80981 t_TAIL_13,
80982 t_TAIL_14,
80983 t_TAIL_15,
80984 t_TAIL_16,
80985 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
80987 const t_ARG_01& arg_01,
80988 const t_ARG_02& arg_02)
80989: AllocBase()
80990, d_type(t_INDEX)
80991{
80992 typedef typename bsl::remove_cv<
80994 Alt_Type;
80995
80996 BloombergLP::bslma::ConstructionUtil::construct(
80997 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
80998 AllocBase::mechanism(),
80999 arg_01,
81000 arg_02);
81001}
81002#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
81003
81004#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
81005template <class t_HEAD, class t_TAIL_01,
81006 class t_TAIL_02,
81007 class t_TAIL_03,
81008 class t_TAIL_04,
81009 class t_TAIL_05,
81010 class t_TAIL_06,
81011 class t_TAIL_07,
81012 class t_TAIL_08,
81013 class t_TAIL_09,
81014 class t_TAIL_10,
81015 class t_TAIL_11,
81016 class t_TAIL_12,
81017 class t_TAIL_13,
81018 class t_TAIL_14,
81019 class t_TAIL_15,
81020 class t_TAIL_16,
81021 class t_TAIL_17>
81022template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
81023inline
81024Variant_Base<t_HEAD, t_TAIL_01,
81025 t_TAIL_02,
81026 t_TAIL_03,
81027 t_TAIL_04,
81028 t_TAIL_05,
81029 t_TAIL_06,
81030 t_TAIL_07,
81031 t_TAIL_08,
81032 t_TAIL_09,
81033 t_TAIL_10,
81034 t_TAIL_11,
81035 t_TAIL_12,
81036 t_TAIL_13,
81037 t_TAIL_14,
81038 t_TAIL_15,
81039 t_TAIL_16,
81040 t_TAIL_17,
81041 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
81043 const t_ARG_01& arg_01,
81044 const t_ARG_02& arg_02)
81045: AllocBase()
81046, d_type(t_INDEX)
81047{
81048 typedef typename bsl::remove_cv<
81050 Alt_Type;
81051
81052 BloombergLP::bslma::ConstructionUtil::construct(
81053 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81054 AllocBase::mechanism(),
81055 arg_01,
81056 arg_02);
81057}
81058#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
81059
81060#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
81061template <class t_HEAD, class t_TAIL_01,
81062 class t_TAIL_02,
81063 class t_TAIL_03,
81064 class t_TAIL_04,
81065 class t_TAIL_05,
81066 class t_TAIL_06,
81067 class t_TAIL_07,
81068 class t_TAIL_08,
81069 class t_TAIL_09,
81070 class t_TAIL_10,
81071 class t_TAIL_11,
81072 class t_TAIL_12,
81073 class t_TAIL_13,
81074 class t_TAIL_14,
81075 class t_TAIL_15,
81076 class t_TAIL_16,
81077 class t_TAIL_17,
81078 class t_TAIL_18>
81079template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
81080inline
81081Variant_Base<t_HEAD, t_TAIL_01,
81082 t_TAIL_02,
81083 t_TAIL_03,
81084 t_TAIL_04,
81085 t_TAIL_05,
81086 t_TAIL_06,
81087 t_TAIL_07,
81088 t_TAIL_08,
81089 t_TAIL_09,
81090 t_TAIL_10,
81091 t_TAIL_11,
81092 t_TAIL_12,
81093 t_TAIL_13,
81094 t_TAIL_14,
81095 t_TAIL_15,
81096 t_TAIL_16,
81097 t_TAIL_17,
81098 t_TAIL_18,
81099 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
81101 const t_ARG_01& arg_01,
81102 const t_ARG_02& arg_02)
81103: AllocBase()
81104, d_type(t_INDEX)
81105{
81106 typedef typename bsl::remove_cv<
81108 Alt_Type;
81109
81110 BloombergLP::bslma::ConstructionUtil::construct(
81111 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81112 AllocBase::mechanism(),
81113 arg_01,
81114 arg_02);
81115}
81116#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
81117
81118
81119#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
81120template <class t_HEAD>
81121template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81122inline
81123Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
81125 const t_ARG_01& arg_01,
81126 const t_ARG_02& arg_02,
81127 const t_ARG_03& arg_03)
81128: AllocBase()
81129, d_type(t_INDEX)
81130{
81131 typedef typename bsl::remove_cv<
81133 Alt_Type;
81134
81135 BloombergLP::bslma::ConstructionUtil::construct(
81136 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81137 AllocBase::mechanism(),
81138 arg_01,
81139 arg_02,
81140 arg_03);
81141}
81142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
81143
81144#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
81145template <class t_HEAD, class t_TAIL_01>
81146template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81147inline
81148Variant_Base<t_HEAD, t_TAIL_01,
81149 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
81151 const t_ARG_01& arg_01,
81152 const t_ARG_02& arg_02,
81153 const t_ARG_03& arg_03)
81154: AllocBase()
81155, d_type(t_INDEX)
81156{
81157 typedef typename bsl::remove_cv<
81159 Alt_Type;
81160
81161 BloombergLP::bslma::ConstructionUtil::construct(
81162 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81163 AllocBase::mechanism(),
81164 arg_01,
81165 arg_02,
81166 arg_03);
81167}
81168#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
81169
81170#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
81171template <class t_HEAD, class t_TAIL_01,
81172 class t_TAIL_02>
81173template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81174inline
81175Variant_Base<t_HEAD, t_TAIL_01,
81176 t_TAIL_02,
81177 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
81179 const t_ARG_01& arg_01,
81180 const t_ARG_02& arg_02,
81181 const t_ARG_03& arg_03)
81182: AllocBase()
81183, d_type(t_INDEX)
81184{
81185 typedef typename bsl::remove_cv<
81187 Alt_Type;
81188
81189 BloombergLP::bslma::ConstructionUtil::construct(
81190 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81191 AllocBase::mechanism(),
81192 arg_01,
81193 arg_02,
81194 arg_03);
81195}
81196#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
81197
81198#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
81199template <class t_HEAD, class t_TAIL_01,
81200 class t_TAIL_02,
81201 class t_TAIL_03>
81202template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81203inline
81204Variant_Base<t_HEAD, t_TAIL_01,
81205 t_TAIL_02,
81206 t_TAIL_03,
81207 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
81209 const t_ARG_01& arg_01,
81210 const t_ARG_02& arg_02,
81211 const t_ARG_03& arg_03)
81212: AllocBase()
81213, d_type(t_INDEX)
81214{
81215 typedef typename bsl::remove_cv<
81217 Alt_Type;
81218
81219 BloombergLP::bslma::ConstructionUtil::construct(
81220 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81221 AllocBase::mechanism(),
81222 arg_01,
81223 arg_02,
81224 arg_03);
81225}
81226#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
81227
81228#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
81229template <class t_HEAD, class t_TAIL_01,
81230 class t_TAIL_02,
81231 class t_TAIL_03,
81232 class t_TAIL_04>
81233template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81234inline
81235Variant_Base<t_HEAD, t_TAIL_01,
81236 t_TAIL_02,
81237 t_TAIL_03,
81238 t_TAIL_04,
81239 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
81241 const t_ARG_01& arg_01,
81242 const t_ARG_02& arg_02,
81243 const t_ARG_03& arg_03)
81244: AllocBase()
81245, d_type(t_INDEX)
81246{
81247 typedef typename bsl::remove_cv<
81249 Alt_Type;
81250
81251 BloombergLP::bslma::ConstructionUtil::construct(
81252 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81253 AllocBase::mechanism(),
81254 arg_01,
81255 arg_02,
81256 arg_03);
81257}
81258#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
81259
81260#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
81261template <class t_HEAD, class t_TAIL_01,
81262 class t_TAIL_02,
81263 class t_TAIL_03,
81264 class t_TAIL_04,
81265 class t_TAIL_05>
81266template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81267inline
81268Variant_Base<t_HEAD, t_TAIL_01,
81269 t_TAIL_02,
81270 t_TAIL_03,
81271 t_TAIL_04,
81272 t_TAIL_05,
81273 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
81275 const t_ARG_01& arg_01,
81276 const t_ARG_02& arg_02,
81277 const t_ARG_03& arg_03)
81278: AllocBase()
81279, d_type(t_INDEX)
81280{
81281 typedef typename bsl::remove_cv<
81283 Alt_Type;
81284
81285 BloombergLP::bslma::ConstructionUtil::construct(
81286 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81287 AllocBase::mechanism(),
81288 arg_01,
81289 arg_02,
81290 arg_03);
81291}
81292#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
81293
81294#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
81295template <class t_HEAD, class t_TAIL_01,
81296 class t_TAIL_02,
81297 class t_TAIL_03,
81298 class t_TAIL_04,
81299 class t_TAIL_05,
81300 class t_TAIL_06>
81301template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81302inline
81303Variant_Base<t_HEAD, t_TAIL_01,
81304 t_TAIL_02,
81305 t_TAIL_03,
81306 t_TAIL_04,
81307 t_TAIL_05,
81308 t_TAIL_06,
81309 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
81311 const t_ARG_01& arg_01,
81312 const t_ARG_02& arg_02,
81313 const t_ARG_03& arg_03)
81314: AllocBase()
81315, d_type(t_INDEX)
81316{
81317 typedef typename bsl::remove_cv<
81319 Alt_Type;
81320
81321 BloombergLP::bslma::ConstructionUtil::construct(
81322 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81323 AllocBase::mechanism(),
81324 arg_01,
81325 arg_02,
81326 arg_03);
81327}
81328#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
81329
81330#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
81331template <class t_HEAD, class t_TAIL_01,
81332 class t_TAIL_02,
81333 class t_TAIL_03,
81334 class t_TAIL_04,
81335 class t_TAIL_05,
81336 class t_TAIL_06,
81337 class t_TAIL_07>
81338template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81339inline
81340Variant_Base<t_HEAD, t_TAIL_01,
81341 t_TAIL_02,
81342 t_TAIL_03,
81343 t_TAIL_04,
81344 t_TAIL_05,
81345 t_TAIL_06,
81346 t_TAIL_07,
81347 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
81349 const t_ARG_01& arg_01,
81350 const t_ARG_02& arg_02,
81351 const t_ARG_03& arg_03)
81352: AllocBase()
81353, d_type(t_INDEX)
81354{
81355 typedef typename bsl::remove_cv<
81357 Alt_Type;
81358
81359 BloombergLP::bslma::ConstructionUtil::construct(
81360 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81361 AllocBase::mechanism(),
81362 arg_01,
81363 arg_02,
81364 arg_03);
81365}
81366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
81367
81368#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
81369template <class t_HEAD, class t_TAIL_01,
81370 class t_TAIL_02,
81371 class t_TAIL_03,
81372 class t_TAIL_04,
81373 class t_TAIL_05,
81374 class t_TAIL_06,
81375 class t_TAIL_07,
81376 class t_TAIL_08>
81377template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81378inline
81379Variant_Base<t_HEAD, t_TAIL_01,
81380 t_TAIL_02,
81381 t_TAIL_03,
81382 t_TAIL_04,
81383 t_TAIL_05,
81384 t_TAIL_06,
81385 t_TAIL_07,
81386 t_TAIL_08,
81387 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
81389 const t_ARG_01& arg_01,
81390 const t_ARG_02& arg_02,
81391 const t_ARG_03& arg_03)
81392: AllocBase()
81393, d_type(t_INDEX)
81394{
81395 typedef typename bsl::remove_cv<
81397 Alt_Type;
81398
81399 BloombergLP::bslma::ConstructionUtil::construct(
81400 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81401 AllocBase::mechanism(),
81402 arg_01,
81403 arg_02,
81404 arg_03);
81405}
81406#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
81407
81408#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
81409template <class t_HEAD, class t_TAIL_01,
81410 class t_TAIL_02,
81411 class t_TAIL_03,
81412 class t_TAIL_04,
81413 class t_TAIL_05,
81414 class t_TAIL_06,
81415 class t_TAIL_07,
81416 class t_TAIL_08,
81417 class t_TAIL_09>
81418template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81419inline
81420Variant_Base<t_HEAD, t_TAIL_01,
81421 t_TAIL_02,
81422 t_TAIL_03,
81423 t_TAIL_04,
81424 t_TAIL_05,
81425 t_TAIL_06,
81426 t_TAIL_07,
81427 t_TAIL_08,
81428 t_TAIL_09,
81429 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
81431 const t_ARG_01& arg_01,
81432 const t_ARG_02& arg_02,
81433 const t_ARG_03& arg_03)
81434: AllocBase()
81435, d_type(t_INDEX)
81436{
81437 typedef typename bsl::remove_cv<
81439 Alt_Type;
81440
81441 BloombergLP::bslma::ConstructionUtil::construct(
81442 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81443 AllocBase::mechanism(),
81444 arg_01,
81445 arg_02,
81446 arg_03);
81447}
81448#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
81449
81450#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
81451template <class t_HEAD, class t_TAIL_01,
81452 class t_TAIL_02,
81453 class t_TAIL_03,
81454 class t_TAIL_04,
81455 class t_TAIL_05,
81456 class t_TAIL_06,
81457 class t_TAIL_07,
81458 class t_TAIL_08,
81459 class t_TAIL_09,
81460 class t_TAIL_10>
81461template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81462inline
81463Variant_Base<t_HEAD, t_TAIL_01,
81464 t_TAIL_02,
81465 t_TAIL_03,
81466 t_TAIL_04,
81467 t_TAIL_05,
81468 t_TAIL_06,
81469 t_TAIL_07,
81470 t_TAIL_08,
81471 t_TAIL_09,
81472 t_TAIL_10,
81473 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
81475 const t_ARG_01& arg_01,
81476 const t_ARG_02& arg_02,
81477 const t_ARG_03& arg_03)
81478: AllocBase()
81479, d_type(t_INDEX)
81480{
81481 typedef typename bsl::remove_cv<
81483 Alt_Type;
81484
81485 BloombergLP::bslma::ConstructionUtil::construct(
81486 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81487 AllocBase::mechanism(),
81488 arg_01,
81489 arg_02,
81490 arg_03);
81491}
81492#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
81493
81494#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
81495template <class t_HEAD, class t_TAIL_01,
81496 class t_TAIL_02,
81497 class t_TAIL_03,
81498 class t_TAIL_04,
81499 class t_TAIL_05,
81500 class t_TAIL_06,
81501 class t_TAIL_07,
81502 class t_TAIL_08,
81503 class t_TAIL_09,
81504 class t_TAIL_10,
81505 class t_TAIL_11>
81506template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81507inline
81508Variant_Base<t_HEAD, t_TAIL_01,
81509 t_TAIL_02,
81510 t_TAIL_03,
81511 t_TAIL_04,
81512 t_TAIL_05,
81513 t_TAIL_06,
81514 t_TAIL_07,
81515 t_TAIL_08,
81516 t_TAIL_09,
81517 t_TAIL_10,
81518 t_TAIL_11,
81519 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
81521 const t_ARG_01& arg_01,
81522 const t_ARG_02& arg_02,
81523 const t_ARG_03& arg_03)
81524: AllocBase()
81525, d_type(t_INDEX)
81526{
81527 typedef typename bsl::remove_cv<
81529 Alt_Type;
81530
81531 BloombergLP::bslma::ConstructionUtil::construct(
81532 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81533 AllocBase::mechanism(),
81534 arg_01,
81535 arg_02,
81536 arg_03);
81537}
81538#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
81539
81540#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
81541template <class t_HEAD, class t_TAIL_01,
81542 class t_TAIL_02,
81543 class t_TAIL_03,
81544 class t_TAIL_04,
81545 class t_TAIL_05,
81546 class t_TAIL_06,
81547 class t_TAIL_07,
81548 class t_TAIL_08,
81549 class t_TAIL_09,
81550 class t_TAIL_10,
81551 class t_TAIL_11,
81552 class t_TAIL_12>
81553template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81554inline
81555Variant_Base<t_HEAD, t_TAIL_01,
81556 t_TAIL_02,
81557 t_TAIL_03,
81558 t_TAIL_04,
81559 t_TAIL_05,
81560 t_TAIL_06,
81561 t_TAIL_07,
81562 t_TAIL_08,
81563 t_TAIL_09,
81564 t_TAIL_10,
81565 t_TAIL_11,
81566 t_TAIL_12,
81567 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
81569 const t_ARG_01& arg_01,
81570 const t_ARG_02& arg_02,
81571 const t_ARG_03& arg_03)
81572: AllocBase()
81573, d_type(t_INDEX)
81574{
81575 typedef typename bsl::remove_cv<
81577 Alt_Type;
81578
81579 BloombergLP::bslma::ConstructionUtil::construct(
81580 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81581 AllocBase::mechanism(),
81582 arg_01,
81583 arg_02,
81584 arg_03);
81585}
81586#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
81587
81588#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
81589template <class t_HEAD, class t_TAIL_01,
81590 class t_TAIL_02,
81591 class t_TAIL_03,
81592 class t_TAIL_04,
81593 class t_TAIL_05,
81594 class t_TAIL_06,
81595 class t_TAIL_07,
81596 class t_TAIL_08,
81597 class t_TAIL_09,
81598 class t_TAIL_10,
81599 class t_TAIL_11,
81600 class t_TAIL_12,
81601 class t_TAIL_13>
81602template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81603inline
81604Variant_Base<t_HEAD, t_TAIL_01,
81605 t_TAIL_02,
81606 t_TAIL_03,
81607 t_TAIL_04,
81608 t_TAIL_05,
81609 t_TAIL_06,
81610 t_TAIL_07,
81611 t_TAIL_08,
81612 t_TAIL_09,
81613 t_TAIL_10,
81614 t_TAIL_11,
81615 t_TAIL_12,
81616 t_TAIL_13,
81617 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
81619 const t_ARG_01& arg_01,
81620 const t_ARG_02& arg_02,
81621 const t_ARG_03& arg_03)
81622: AllocBase()
81623, d_type(t_INDEX)
81624{
81625 typedef typename bsl::remove_cv<
81627 Alt_Type;
81628
81629 BloombergLP::bslma::ConstructionUtil::construct(
81630 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81631 AllocBase::mechanism(),
81632 arg_01,
81633 arg_02,
81634 arg_03);
81635}
81636#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
81637
81638#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
81639template <class t_HEAD, class t_TAIL_01,
81640 class t_TAIL_02,
81641 class t_TAIL_03,
81642 class t_TAIL_04,
81643 class t_TAIL_05,
81644 class t_TAIL_06,
81645 class t_TAIL_07,
81646 class t_TAIL_08,
81647 class t_TAIL_09,
81648 class t_TAIL_10,
81649 class t_TAIL_11,
81650 class t_TAIL_12,
81651 class t_TAIL_13,
81652 class t_TAIL_14>
81653template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81654inline
81655Variant_Base<t_HEAD, t_TAIL_01,
81656 t_TAIL_02,
81657 t_TAIL_03,
81658 t_TAIL_04,
81659 t_TAIL_05,
81660 t_TAIL_06,
81661 t_TAIL_07,
81662 t_TAIL_08,
81663 t_TAIL_09,
81664 t_TAIL_10,
81665 t_TAIL_11,
81666 t_TAIL_12,
81667 t_TAIL_13,
81668 t_TAIL_14,
81669 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
81671 const t_ARG_01& arg_01,
81672 const t_ARG_02& arg_02,
81673 const t_ARG_03& arg_03)
81674: AllocBase()
81675, d_type(t_INDEX)
81676{
81677 typedef typename bsl::remove_cv<
81679 Alt_Type;
81680
81681 BloombergLP::bslma::ConstructionUtil::construct(
81682 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81683 AllocBase::mechanism(),
81684 arg_01,
81685 arg_02,
81686 arg_03);
81687}
81688#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
81689
81690#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
81691template <class t_HEAD, class t_TAIL_01,
81692 class t_TAIL_02,
81693 class t_TAIL_03,
81694 class t_TAIL_04,
81695 class t_TAIL_05,
81696 class t_TAIL_06,
81697 class t_TAIL_07,
81698 class t_TAIL_08,
81699 class t_TAIL_09,
81700 class t_TAIL_10,
81701 class t_TAIL_11,
81702 class t_TAIL_12,
81703 class t_TAIL_13,
81704 class t_TAIL_14,
81705 class t_TAIL_15>
81706template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81707inline
81708Variant_Base<t_HEAD, t_TAIL_01,
81709 t_TAIL_02,
81710 t_TAIL_03,
81711 t_TAIL_04,
81712 t_TAIL_05,
81713 t_TAIL_06,
81714 t_TAIL_07,
81715 t_TAIL_08,
81716 t_TAIL_09,
81717 t_TAIL_10,
81718 t_TAIL_11,
81719 t_TAIL_12,
81720 t_TAIL_13,
81721 t_TAIL_14,
81722 t_TAIL_15,
81723 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
81725 const t_ARG_01& arg_01,
81726 const t_ARG_02& arg_02,
81727 const t_ARG_03& arg_03)
81728: AllocBase()
81729, d_type(t_INDEX)
81730{
81731 typedef typename bsl::remove_cv<
81733 Alt_Type;
81734
81735 BloombergLP::bslma::ConstructionUtil::construct(
81736 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81737 AllocBase::mechanism(),
81738 arg_01,
81739 arg_02,
81740 arg_03);
81741}
81742#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
81743
81744#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
81745template <class t_HEAD, class t_TAIL_01,
81746 class t_TAIL_02,
81747 class t_TAIL_03,
81748 class t_TAIL_04,
81749 class t_TAIL_05,
81750 class t_TAIL_06,
81751 class t_TAIL_07,
81752 class t_TAIL_08,
81753 class t_TAIL_09,
81754 class t_TAIL_10,
81755 class t_TAIL_11,
81756 class t_TAIL_12,
81757 class t_TAIL_13,
81758 class t_TAIL_14,
81759 class t_TAIL_15,
81760 class t_TAIL_16>
81761template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81762inline
81763Variant_Base<t_HEAD, t_TAIL_01,
81764 t_TAIL_02,
81765 t_TAIL_03,
81766 t_TAIL_04,
81767 t_TAIL_05,
81768 t_TAIL_06,
81769 t_TAIL_07,
81770 t_TAIL_08,
81771 t_TAIL_09,
81772 t_TAIL_10,
81773 t_TAIL_11,
81774 t_TAIL_12,
81775 t_TAIL_13,
81776 t_TAIL_14,
81777 t_TAIL_15,
81778 t_TAIL_16,
81779 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
81781 const t_ARG_01& arg_01,
81782 const t_ARG_02& arg_02,
81783 const t_ARG_03& arg_03)
81784: AllocBase()
81785, d_type(t_INDEX)
81786{
81787 typedef typename bsl::remove_cv<
81789 Alt_Type;
81790
81791 BloombergLP::bslma::ConstructionUtil::construct(
81792 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81793 AllocBase::mechanism(),
81794 arg_01,
81795 arg_02,
81796 arg_03);
81797}
81798#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
81799
81800#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
81801template <class t_HEAD, class t_TAIL_01,
81802 class t_TAIL_02,
81803 class t_TAIL_03,
81804 class t_TAIL_04,
81805 class t_TAIL_05,
81806 class t_TAIL_06,
81807 class t_TAIL_07,
81808 class t_TAIL_08,
81809 class t_TAIL_09,
81810 class t_TAIL_10,
81811 class t_TAIL_11,
81812 class t_TAIL_12,
81813 class t_TAIL_13,
81814 class t_TAIL_14,
81815 class t_TAIL_15,
81816 class t_TAIL_16,
81817 class t_TAIL_17>
81818template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81819inline
81820Variant_Base<t_HEAD, t_TAIL_01,
81821 t_TAIL_02,
81822 t_TAIL_03,
81823 t_TAIL_04,
81824 t_TAIL_05,
81825 t_TAIL_06,
81826 t_TAIL_07,
81827 t_TAIL_08,
81828 t_TAIL_09,
81829 t_TAIL_10,
81830 t_TAIL_11,
81831 t_TAIL_12,
81832 t_TAIL_13,
81833 t_TAIL_14,
81834 t_TAIL_15,
81835 t_TAIL_16,
81836 t_TAIL_17,
81837 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
81839 const t_ARG_01& arg_01,
81840 const t_ARG_02& arg_02,
81841 const t_ARG_03& arg_03)
81842: AllocBase()
81843, d_type(t_INDEX)
81844{
81845 typedef typename bsl::remove_cv<
81847 Alt_Type;
81848
81849 BloombergLP::bslma::ConstructionUtil::construct(
81850 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81851 AllocBase::mechanism(),
81852 arg_01,
81853 arg_02,
81854 arg_03);
81855}
81856#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
81857
81858#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
81859template <class t_HEAD, class t_TAIL_01,
81860 class t_TAIL_02,
81861 class t_TAIL_03,
81862 class t_TAIL_04,
81863 class t_TAIL_05,
81864 class t_TAIL_06,
81865 class t_TAIL_07,
81866 class t_TAIL_08,
81867 class t_TAIL_09,
81868 class t_TAIL_10,
81869 class t_TAIL_11,
81870 class t_TAIL_12,
81871 class t_TAIL_13,
81872 class t_TAIL_14,
81873 class t_TAIL_15,
81874 class t_TAIL_16,
81875 class t_TAIL_17,
81876 class t_TAIL_18>
81877template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
81878inline
81879Variant_Base<t_HEAD, t_TAIL_01,
81880 t_TAIL_02,
81881 t_TAIL_03,
81882 t_TAIL_04,
81883 t_TAIL_05,
81884 t_TAIL_06,
81885 t_TAIL_07,
81886 t_TAIL_08,
81887 t_TAIL_09,
81888 t_TAIL_10,
81889 t_TAIL_11,
81890 t_TAIL_12,
81891 t_TAIL_13,
81892 t_TAIL_14,
81893 t_TAIL_15,
81894 t_TAIL_16,
81895 t_TAIL_17,
81896 t_TAIL_18,
81897 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
81899 const t_ARG_01& arg_01,
81900 const t_ARG_02& arg_02,
81901 const t_ARG_03& arg_03)
81902: AllocBase()
81903, d_type(t_INDEX)
81904{
81905 typedef typename bsl::remove_cv<
81907 Alt_Type;
81908
81909 BloombergLP::bslma::ConstructionUtil::construct(
81910 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81911 AllocBase::mechanism(),
81912 arg_01,
81913 arg_02,
81914 arg_03);
81915}
81916#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
81917
81918
81919#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
81920template <class t_HEAD>
81921template <size_t t_INDEX,
81922 class t_ARG_01,
81923 class t_ARG_02,
81924 class t_ARG_03,
81925 class t_ARG_04>
81926inline
81927Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
81928 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
81929 const t_ARG_01& arg_01,
81930 const t_ARG_02& arg_02,
81931 const t_ARG_03& arg_03,
81932 const t_ARG_04& arg_04)
81933: AllocBase()
81934, d_type(t_INDEX)
81935{
81936 typedef typename bsl::remove_cv<
81938 Alt_Type;
81939
81940 BloombergLP::bslma::ConstructionUtil::construct(
81941 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81942 AllocBase::mechanism(),
81943 arg_01,
81944 arg_02,
81945 arg_03,
81946 arg_04);
81947}
81948#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
81949
81950#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
81951template <class t_HEAD, class t_TAIL_01>
81952template <size_t t_INDEX,
81953 class t_ARG_01,
81954 class t_ARG_02,
81955 class t_ARG_03,
81956 class t_ARG_04>
81957inline
81958Variant_Base<t_HEAD, t_TAIL_01,
81959 BSLS_COMPILERFEATURES_FILLT(17)
81960 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
81961 const t_ARG_01& arg_01,
81962 const t_ARG_02& arg_02,
81963 const t_ARG_03& arg_03,
81964 const t_ARG_04& arg_04)
81965: AllocBase()
81966, d_type(t_INDEX)
81967{
81968 typedef typename bsl::remove_cv<
81970 Alt_Type;
81971
81972 BloombergLP::bslma::ConstructionUtil::construct(
81973 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
81974 AllocBase::mechanism(),
81975 arg_01,
81976 arg_02,
81977 arg_03,
81978 arg_04);
81979}
81980#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
81981
81982#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
81983template <class t_HEAD, class t_TAIL_01,
81984 class t_TAIL_02>
81985template <size_t t_INDEX,
81986 class t_ARG_01,
81987 class t_ARG_02,
81988 class t_ARG_03,
81989 class t_ARG_04>
81990inline
81991Variant_Base<t_HEAD, t_TAIL_01,
81992 t_TAIL_02,
81993 BSLS_COMPILERFEATURES_FILLT(16)
81994 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
81995 const t_ARG_01& arg_01,
81996 const t_ARG_02& arg_02,
81997 const t_ARG_03& arg_03,
81998 const t_ARG_04& arg_04)
81999: AllocBase()
82000, d_type(t_INDEX)
82001{
82002 typedef typename bsl::remove_cv<
82004 Alt_Type;
82005
82006 BloombergLP::bslma::ConstructionUtil::construct(
82007 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82008 AllocBase::mechanism(),
82009 arg_01,
82010 arg_02,
82011 arg_03,
82012 arg_04);
82013}
82014#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
82015
82016#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
82017template <class t_HEAD, class t_TAIL_01,
82018 class t_TAIL_02,
82019 class t_TAIL_03>
82020template <size_t t_INDEX,
82021 class t_ARG_01,
82022 class t_ARG_02,
82023 class t_ARG_03,
82024 class t_ARG_04>
82025inline
82026Variant_Base<t_HEAD, t_TAIL_01,
82027 t_TAIL_02,
82028 t_TAIL_03,
82029 BSLS_COMPILERFEATURES_FILLT(15)
82030 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82031 const t_ARG_01& arg_01,
82032 const t_ARG_02& arg_02,
82033 const t_ARG_03& arg_03,
82034 const t_ARG_04& arg_04)
82035: AllocBase()
82036, d_type(t_INDEX)
82037{
82038 typedef typename bsl::remove_cv<
82040 Alt_Type;
82041
82042 BloombergLP::bslma::ConstructionUtil::construct(
82043 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82044 AllocBase::mechanism(),
82045 arg_01,
82046 arg_02,
82047 arg_03,
82048 arg_04);
82049}
82050#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
82051
82052#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
82053template <class t_HEAD, class t_TAIL_01,
82054 class t_TAIL_02,
82055 class t_TAIL_03,
82056 class t_TAIL_04>
82057template <size_t t_INDEX,
82058 class t_ARG_01,
82059 class t_ARG_02,
82060 class t_ARG_03,
82061 class t_ARG_04>
82062inline
82063Variant_Base<t_HEAD, t_TAIL_01,
82064 t_TAIL_02,
82065 t_TAIL_03,
82066 t_TAIL_04,
82067 BSLS_COMPILERFEATURES_FILLT(14)
82068 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82069 const t_ARG_01& arg_01,
82070 const t_ARG_02& arg_02,
82071 const t_ARG_03& arg_03,
82072 const t_ARG_04& arg_04)
82073: AllocBase()
82074, d_type(t_INDEX)
82075{
82076 typedef typename bsl::remove_cv<
82078 Alt_Type;
82079
82080 BloombergLP::bslma::ConstructionUtil::construct(
82081 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82082 AllocBase::mechanism(),
82083 arg_01,
82084 arg_02,
82085 arg_03,
82086 arg_04);
82087}
82088#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
82089
82090#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
82091template <class t_HEAD, class t_TAIL_01,
82092 class t_TAIL_02,
82093 class t_TAIL_03,
82094 class t_TAIL_04,
82095 class t_TAIL_05>
82096template <size_t t_INDEX,
82097 class t_ARG_01,
82098 class t_ARG_02,
82099 class t_ARG_03,
82100 class t_ARG_04>
82101inline
82102Variant_Base<t_HEAD, t_TAIL_01,
82103 t_TAIL_02,
82104 t_TAIL_03,
82105 t_TAIL_04,
82106 t_TAIL_05,
82107 BSLS_COMPILERFEATURES_FILLT(13)
82108 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82109 const t_ARG_01& arg_01,
82110 const t_ARG_02& arg_02,
82111 const t_ARG_03& arg_03,
82112 const t_ARG_04& arg_04)
82113: AllocBase()
82114, d_type(t_INDEX)
82115{
82116 typedef typename bsl::remove_cv<
82118 Alt_Type;
82119
82120 BloombergLP::bslma::ConstructionUtil::construct(
82121 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82122 AllocBase::mechanism(),
82123 arg_01,
82124 arg_02,
82125 arg_03,
82126 arg_04);
82127}
82128#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
82129
82130#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
82131template <class t_HEAD, class t_TAIL_01,
82132 class t_TAIL_02,
82133 class t_TAIL_03,
82134 class t_TAIL_04,
82135 class t_TAIL_05,
82136 class t_TAIL_06>
82137template <size_t t_INDEX,
82138 class t_ARG_01,
82139 class t_ARG_02,
82140 class t_ARG_03,
82141 class t_ARG_04>
82142inline
82143Variant_Base<t_HEAD, t_TAIL_01,
82144 t_TAIL_02,
82145 t_TAIL_03,
82146 t_TAIL_04,
82147 t_TAIL_05,
82148 t_TAIL_06,
82149 BSLS_COMPILERFEATURES_FILLT(12)
82150 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82151 const t_ARG_01& arg_01,
82152 const t_ARG_02& arg_02,
82153 const t_ARG_03& arg_03,
82154 const t_ARG_04& arg_04)
82155: AllocBase()
82156, d_type(t_INDEX)
82157{
82158 typedef typename bsl::remove_cv<
82160 Alt_Type;
82161
82162 BloombergLP::bslma::ConstructionUtil::construct(
82163 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82164 AllocBase::mechanism(),
82165 arg_01,
82166 arg_02,
82167 arg_03,
82168 arg_04);
82169}
82170#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
82171
82172#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
82173template <class t_HEAD, class t_TAIL_01,
82174 class t_TAIL_02,
82175 class t_TAIL_03,
82176 class t_TAIL_04,
82177 class t_TAIL_05,
82178 class t_TAIL_06,
82179 class t_TAIL_07>
82180template <size_t t_INDEX,
82181 class t_ARG_01,
82182 class t_ARG_02,
82183 class t_ARG_03,
82184 class t_ARG_04>
82185inline
82186Variant_Base<t_HEAD, t_TAIL_01,
82187 t_TAIL_02,
82188 t_TAIL_03,
82189 t_TAIL_04,
82190 t_TAIL_05,
82191 t_TAIL_06,
82192 t_TAIL_07,
82193 BSLS_COMPILERFEATURES_FILLT(11)
82194 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82195 const t_ARG_01& arg_01,
82196 const t_ARG_02& arg_02,
82197 const t_ARG_03& arg_03,
82198 const t_ARG_04& arg_04)
82199: AllocBase()
82200, d_type(t_INDEX)
82201{
82202 typedef typename bsl::remove_cv<
82204 Alt_Type;
82205
82206 BloombergLP::bslma::ConstructionUtil::construct(
82207 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82208 AllocBase::mechanism(),
82209 arg_01,
82210 arg_02,
82211 arg_03,
82212 arg_04);
82213}
82214#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
82215
82216#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
82217template <class t_HEAD, class t_TAIL_01,
82218 class t_TAIL_02,
82219 class t_TAIL_03,
82220 class t_TAIL_04,
82221 class t_TAIL_05,
82222 class t_TAIL_06,
82223 class t_TAIL_07,
82224 class t_TAIL_08>
82225template <size_t t_INDEX,
82226 class t_ARG_01,
82227 class t_ARG_02,
82228 class t_ARG_03,
82229 class t_ARG_04>
82230inline
82231Variant_Base<t_HEAD, t_TAIL_01,
82232 t_TAIL_02,
82233 t_TAIL_03,
82234 t_TAIL_04,
82235 t_TAIL_05,
82236 t_TAIL_06,
82237 t_TAIL_07,
82238 t_TAIL_08,
82239 BSLS_COMPILERFEATURES_FILLT(10)
82240 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82241 const t_ARG_01& arg_01,
82242 const t_ARG_02& arg_02,
82243 const t_ARG_03& arg_03,
82244 const t_ARG_04& arg_04)
82245: AllocBase()
82246, d_type(t_INDEX)
82247{
82248 typedef typename bsl::remove_cv<
82250 Alt_Type;
82251
82252 BloombergLP::bslma::ConstructionUtil::construct(
82253 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82254 AllocBase::mechanism(),
82255 arg_01,
82256 arg_02,
82257 arg_03,
82258 arg_04);
82259}
82260#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
82261
82262#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
82263template <class t_HEAD, class t_TAIL_01,
82264 class t_TAIL_02,
82265 class t_TAIL_03,
82266 class t_TAIL_04,
82267 class t_TAIL_05,
82268 class t_TAIL_06,
82269 class t_TAIL_07,
82270 class t_TAIL_08,
82271 class t_TAIL_09>
82272template <size_t t_INDEX,
82273 class t_ARG_01,
82274 class t_ARG_02,
82275 class t_ARG_03,
82276 class t_ARG_04>
82277inline
82278Variant_Base<t_HEAD, t_TAIL_01,
82279 t_TAIL_02,
82280 t_TAIL_03,
82281 t_TAIL_04,
82282 t_TAIL_05,
82283 t_TAIL_06,
82284 t_TAIL_07,
82285 t_TAIL_08,
82286 t_TAIL_09,
82287 BSLS_COMPILERFEATURES_FILLT( 9)
82288 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82289 const t_ARG_01& arg_01,
82290 const t_ARG_02& arg_02,
82291 const t_ARG_03& arg_03,
82292 const t_ARG_04& arg_04)
82293: AllocBase()
82294, d_type(t_INDEX)
82295{
82296 typedef typename bsl::remove_cv<
82298 Alt_Type;
82299
82300 BloombergLP::bslma::ConstructionUtil::construct(
82301 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82302 AllocBase::mechanism(),
82303 arg_01,
82304 arg_02,
82305 arg_03,
82306 arg_04);
82307}
82308#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
82309
82310#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
82311template <class t_HEAD, class t_TAIL_01,
82312 class t_TAIL_02,
82313 class t_TAIL_03,
82314 class t_TAIL_04,
82315 class t_TAIL_05,
82316 class t_TAIL_06,
82317 class t_TAIL_07,
82318 class t_TAIL_08,
82319 class t_TAIL_09,
82320 class t_TAIL_10>
82321template <size_t t_INDEX,
82322 class t_ARG_01,
82323 class t_ARG_02,
82324 class t_ARG_03,
82325 class t_ARG_04>
82326inline
82327Variant_Base<t_HEAD, t_TAIL_01,
82328 t_TAIL_02,
82329 t_TAIL_03,
82330 t_TAIL_04,
82331 t_TAIL_05,
82332 t_TAIL_06,
82333 t_TAIL_07,
82334 t_TAIL_08,
82335 t_TAIL_09,
82336 t_TAIL_10,
82337 BSLS_COMPILERFEATURES_FILLT( 8)
82338 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82339 const t_ARG_01& arg_01,
82340 const t_ARG_02& arg_02,
82341 const t_ARG_03& arg_03,
82342 const t_ARG_04& arg_04)
82343: AllocBase()
82344, d_type(t_INDEX)
82345{
82346 typedef typename bsl::remove_cv<
82348 Alt_Type;
82349
82350 BloombergLP::bslma::ConstructionUtil::construct(
82351 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82352 AllocBase::mechanism(),
82353 arg_01,
82354 arg_02,
82355 arg_03,
82356 arg_04);
82357}
82358#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
82359
82360#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
82361template <class t_HEAD, class t_TAIL_01,
82362 class t_TAIL_02,
82363 class t_TAIL_03,
82364 class t_TAIL_04,
82365 class t_TAIL_05,
82366 class t_TAIL_06,
82367 class t_TAIL_07,
82368 class t_TAIL_08,
82369 class t_TAIL_09,
82370 class t_TAIL_10,
82371 class t_TAIL_11>
82372template <size_t t_INDEX,
82373 class t_ARG_01,
82374 class t_ARG_02,
82375 class t_ARG_03,
82376 class t_ARG_04>
82377inline
82378Variant_Base<t_HEAD, t_TAIL_01,
82379 t_TAIL_02,
82380 t_TAIL_03,
82381 t_TAIL_04,
82382 t_TAIL_05,
82383 t_TAIL_06,
82384 t_TAIL_07,
82385 t_TAIL_08,
82386 t_TAIL_09,
82387 t_TAIL_10,
82388 t_TAIL_11,
82389 BSLS_COMPILERFEATURES_FILLT( 7)
82390 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82391 const t_ARG_01& arg_01,
82392 const t_ARG_02& arg_02,
82393 const t_ARG_03& arg_03,
82394 const t_ARG_04& arg_04)
82395: AllocBase()
82396, d_type(t_INDEX)
82397{
82398 typedef typename bsl::remove_cv<
82400 Alt_Type;
82401
82402 BloombergLP::bslma::ConstructionUtil::construct(
82403 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82404 AllocBase::mechanism(),
82405 arg_01,
82406 arg_02,
82407 arg_03,
82408 arg_04);
82409}
82410#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
82411
82412#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
82413template <class t_HEAD, class t_TAIL_01,
82414 class t_TAIL_02,
82415 class t_TAIL_03,
82416 class t_TAIL_04,
82417 class t_TAIL_05,
82418 class t_TAIL_06,
82419 class t_TAIL_07,
82420 class t_TAIL_08,
82421 class t_TAIL_09,
82422 class t_TAIL_10,
82423 class t_TAIL_11,
82424 class t_TAIL_12>
82425template <size_t t_INDEX,
82426 class t_ARG_01,
82427 class t_ARG_02,
82428 class t_ARG_03,
82429 class t_ARG_04>
82430inline
82431Variant_Base<t_HEAD, t_TAIL_01,
82432 t_TAIL_02,
82433 t_TAIL_03,
82434 t_TAIL_04,
82435 t_TAIL_05,
82436 t_TAIL_06,
82437 t_TAIL_07,
82438 t_TAIL_08,
82439 t_TAIL_09,
82440 t_TAIL_10,
82441 t_TAIL_11,
82442 t_TAIL_12,
82443 BSLS_COMPILERFEATURES_FILLT( 6)
82444 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82445 const t_ARG_01& arg_01,
82446 const t_ARG_02& arg_02,
82447 const t_ARG_03& arg_03,
82448 const t_ARG_04& arg_04)
82449: AllocBase()
82450, d_type(t_INDEX)
82451{
82452 typedef typename bsl::remove_cv<
82454 Alt_Type;
82455
82456 BloombergLP::bslma::ConstructionUtil::construct(
82457 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82458 AllocBase::mechanism(),
82459 arg_01,
82460 arg_02,
82461 arg_03,
82462 arg_04);
82463}
82464#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
82465
82466#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
82467template <class t_HEAD, class t_TAIL_01,
82468 class t_TAIL_02,
82469 class t_TAIL_03,
82470 class t_TAIL_04,
82471 class t_TAIL_05,
82472 class t_TAIL_06,
82473 class t_TAIL_07,
82474 class t_TAIL_08,
82475 class t_TAIL_09,
82476 class t_TAIL_10,
82477 class t_TAIL_11,
82478 class t_TAIL_12,
82479 class t_TAIL_13>
82480template <size_t t_INDEX,
82481 class t_ARG_01,
82482 class t_ARG_02,
82483 class t_ARG_03,
82484 class t_ARG_04>
82485inline
82486Variant_Base<t_HEAD, t_TAIL_01,
82487 t_TAIL_02,
82488 t_TAIL_03,
82489 t_TAIL_04,
82490 t_TAIL_05,
82491 t_TAIL_06,
82492 t_TAIL_07,
82493 t_TAIL_08,
82494 t_TAIL_09,
82495 t_TAIL_10,
82496 t_TAIL_11,
82497 t_TAIL_12,
82498 t_TAIL_13,
82499 BSLS_COMPILERFEATURES_FILLT( 5)
82500 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82501 const t_ARG_01& arg_01,
82502 const t_ARG_02& arg_02,
82503 const t_ARG_03& arg_03,
82504 const t_ARG_04& arg_04)
82505: AllocBase()
82506, d_type(t_INDEX)
82507{
82508 typedef typename bsl::remove_cv<
82510 Alt_Type;
82511
82512 BloombergLP::bslma::ConstructionUtil::construct(
82513 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82514 AllocBase::mechanism(),
82515 arg_01,
82516 arg_02,
82517 arg_03,
82518 arg_04);
82519}
82520#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
82521
82522#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
82523template <class t_HEAD, class t_TAIL_01,
82524 class t_TAIL_02,
82525 class t_TAIL_03,
82526 class t_TAIL_04,
82527 class t_TAIL_05,
82528 class t_TAIL_06,
82529 class t_TAIL_07,
82530 class t_TAIL_08,
82531 class t_TAIL_09,
82532 class t_TAIL_10,
82533 class t_TAIL_11,
82534 class t_TAIL_12,
82535 class t_TAIL_13,
82536 class t_TAIL_14>
82537template <size_t t_INDEX,
82538 class t_ARG_01,
82539 class t_ARG_02,
82540 class t_ARG_03,
82541 class t_ARG_04>
82542inline
82543Variant_Base<t_HEAD, t_TAIL_01,
82544 t_TAIL_02,
82545 t_TAIL_03,
82546 t_TAIL_04,
82547 t_TAIL_05,
82548 t_TAIL_06,
82549 t_TAIL_07,
82550 t_TAIL_08,
82551 t_TAIL_09,
82552 t_TAIL_10,
82553 t_TAIL_11,
82554 t_TAIL_12,
82555 t_TAIL_13,
82556 t_TAIL_14,
82557 BSLS_COMPILERFEATURES_FILLT( 4)
82558 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82559 const t_ARG_01& arg_01,
82560 const t_ARG_02& arg_02,
82561 const t_ARG_03& arg_03,
82562 const t_ARG_04& arg_04)
82563: AllocBase()
82564, d_type(t_INDEX)
82565{
82566 typedef typename bsl::remove_cv<
82568 Alt_Type;
82569
82570 BloombergLP::bslma::ConstructionUtil::construct(
82571 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82572 AllocBase::mechanism(),
82573 arg_01,
82574 arg_02,
82575 arg_03,
82576 arg_04);
82577}
82578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
82579
82580#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
82581template <class t_HEAD, class t_TAIL_01,
82582 class t_TAIL_02,
82583 class t_TAIL_03,
82584 class t_TAIL_04,
82585 class t_TAIL_05,
82586 class t_TAIL_06,
82587 class t_TAIL_07,
82588 class t_TAIL_08,
82589 class t_TAIL_09,
82590 class t_TAIL_10,
82591 class t_TAIL_11,
82592 class t_TAIL_12,
82593 class t_TAIL_13,
82594 class t_TAIL_14,
82595 class t_TAIL_15>
82596template <size_t t_INDEX,
82597 class t_ARG_01,
82598 class t_ARG_02,
82599 class t_ARG_03,
82600 class t_ARG_04>
82601inline
82602Variant_Base<t_HEAD, t_TAIL_01,
82603 t_TAIL_02,
82604 t_TAIL_03,
82605 t_TAIL_04,
82606 t_TAIL_05,
82607 t_TAIL_06,
82608 t_TAIL_07,
82609 t_TAIL_08,
82610 t_TAIL_09,
82611 t_TAIL_10,
82612 t_TAIL_11,
82613 t_TAIL_12,
82614 t_TAIL_13,
82615 t_TAIL_14,
82616 t_TAIL_15,
82617 BSLS_COMPILERFEATURES_FILLT( 3)
82618 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82619 const t_ARG_01& arg_01,
82620 const t_ARG_02& arg_02,
82621 const t_ARG_03& arg_03,
82622 const t_ARG_04& arg_04)
82623: AllocBase()
82624, d_type(t_INDEX)
82625{
82626 typedef typename bsl::remove_cv<
82628 Alt_Type;
82629
82630 BloombergLP::bslma::ConstructionUtil::construct(
82631 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82632 AllocBase::mechanism(),
82633 arg_01,
82634 arg_02,
82635 arg_03,
82636 arg_04);
82637}
82638#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
82639
82640#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
82641template <class t_HEAD, class t_TAIL_01,
82642 class t_TAIL_02,
82643 class t_TAIL_03,
82644 class t_TAIL_04,
82645 class t_TAIL_05,
82646 class t_TAIL_06,
82647 class t_TAIL_07,
82648 class t_TAIL_08,
82649 class t_TAIL_09,
82650 class t_TAIL_10,
82651 class t_TAIL_11,
82652 class t_TAIL_12,
82653 class t_TAIL_13,
82654 class t_TAIL_14,
82655 class t_TAIL_15,
82656 class t_TAIL_16>
82657template <size_t t_INDEX,
82658 class t_ARG_01,
82659 class t_ARG_02,
82660 class t_ARG_03,
82661 class t_ARG_04>
82662inline
82663Variant_Base<t_HEAD, t_TAIL_01,
82664 t_TAIL_02,
82665 t_TAIL_03,
82666 t_TAIL_04,
82667 t_TAIL_05,
82668 t_TAIL_06,
82669 t_TAIL_07,
82670 t_TAIL_08,
82671 t_TAIL_09,
82672 t_TAIL_10,
82673 t_TAIL_11,
82674 t_TAIL_12,
82675 t_TAIL_13,
82676 t_TAIL_14,
82677 t_TAIL_15,
82678 t_TAIL_16,
82679 BSLS_COMPILERFEATURES_FILLT( 2)
82680 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82681 const t_ARG_01& arg_01,
82682 const t_ARG_02& arg_02,
82683 const t_ARG_03& arg_03,
82684 const t_ARG_04& arg_04)
82685: AllocBase()
82686, d_type(t_INDEX)
82687{
82688 typedef typename bsl::remove_cv<
82690 Alt_Type;
82691
82692 BloombergLP::bslma::ConstructionUtil::construct(
82693 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82694 AllocBase::mechanism(),
82695 arg_01,
82696 arg_02,
82697 arg_03,
82698 arg_04);
82699}
82700#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
82701
82702#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
82703template <class t_HEAD, class t_TAIL_01,
82704 class t_TAIL_02,
82705 class t_TAIL_03,
82706 class t_TAIL_04,
82707 class t_TAIL_05,
82708 class t_TAIL_06,
82709 class t_TAIL_07,
82710 class t_TAIL_08,
82711 class t_TAIL_09,
82712 class t_TAIL_10,
82713 class t_TAIL_11,
82714 class t_TAIL_12,
82715 class t_TAIL_13,
82716 class t_TAIL_14,
82717 class t_TAIL_15,
82718 class t_TAIL_16,
82719 class t_TAIL_17>
82720template <size_t t_INDEX,
82721 class t_ARG_01,
82722 class t_ARG_02,
82723 class t_ARG_03,
82724 class t_ARG_04>
82725inline
82726Variant_Base<t_HEAD, t_TAIL_01,
82727 t_TAIL_02,
82728 t_TAIL_03,
82729 t_TAIL_04,
82730 t_TAIL_05,
82731 t_TAIL_06,
82732 t_TAIL_07,
82733 t_TAIL_08,
82734 t_TAIL_09,
82735 t_TAIL_10,
82736 t_TAIL_11,
82737 t_TAIL_12,
82738 t_TAIL_13,
82739 t_TAIL_14,
82740 t_TAIL_15,
82741 t_TAIL_16,
82742 t_TAIL_17,
82743 BSLS_COMPILERFEATURES_FILLT( 1)
82744 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82745 const t_ARG_01& arg_01,
82746 const t_ARG_02& arg_02,
82747 const t_ARG_03& arg_03,
82748 const t_ARG_04& arg_04)
82749: AllocBase()
82750, d_type(t_INDEX)
82751{
82752 typedef typename bsl::remove_cv<
82754 Alt_Type;
82755
82756 BloombergLP::bslma::ConstructionUtil::construct(
82757 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82758 AllocBase::mechanism(),
82759 arg_01,
82760 arg_02,
82761 arg_03,
82762 arg_04);
82763}
82764#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
82765
82766#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
82767template <class t_HEAD, class t_TAIL_01,
82768 class t_TAIL_02,
82769 class t_TAIL_03,
82770 class t_TAIL_04,
82771 class t_TAIL_05,
82772 class t_TAIL_06,
82773 class t_TAIL_07,
82774 class t_TAIL_08,
82775 class t_TAIL_09,
82776 class t_TAIL_10,
82777 class t_TAIL_11,
82778 class t_TAIL_12,
82779 class t_TAIL_13,
82780 class t_TAIL_14,
82781 class t_TAIL_15,
82782 class t_TAIL_16,
82783 class t_TAIL_17,
82784 class t_TAIL_18>
82785template <size_t t_INDEX,
82786 class t_ARG_01,
82787 class t_ARG_02,
82788 class t_ARG_03,
82789 class t_ARG_04>
82790inline
82791Variant_Base<t_HEAD, t_TAIL_01,
82792 t_TAIL_02,
82793 t_TAIL_03,
82794 t_TAIL_04,
82795 t_TAIL_05,
82796 t_TAIL_06,
82797 t_TAIL_07,
82798 t_TAIL_08,
82799 t_TAIL_09,
82800 t_TAIL_10,
82801 t_TAIL_11,
82802 t_TAIL_12,
82803 t_TAIL_13,
82804 t_TAIL_14,
82805 t_TAIL_15,
82806 t_TAIL_16,
82807 t_TAIL_17,
82808 t_TAIL_18,
82809 BSLS_COMPILERFEATURES_FILLT( 0)
82810 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82811 const t_ARG_01& arg_01,
82812 const t_ARG_02& arg_02,
82813 const t_ARG_03& arg_03,
82814 const t_ARG_04& arg_04)
82815: AllocBase()
82816, d_type(t_INDEX)
82817{
82818 typedef typename bsl::remove_cv<
82820 Alt_Type;
82821
82822 BloombergLP::bslma::ConstructionUtil::construct(
82823 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82824 AllocBase::mechanism(),
82825 arg_01,
82826 arg_02,
82827 arg_03,
82828 arg_04);
82829}
82830#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
82831
82832
82833#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
82834template <class t_HEAD>
82835template <size_t t_INDEX,
82836 class t_ARG_01,
82837 class t_ARG_02,
82838 class t_ARG_03,
82839 class t_ARG_04,
82840 class t_ARG_05>
82841inline
82842Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
82843 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82844 const t_ARG_01& arg_01,
82845 const t_ARG_02& arg_02,
82846 const t_ARG_03& arg_03,
82847 const t_ARG_04& arg_04,
82848 const t_ARG_05& arg_05)
82849: AllocBase()
82850, d_type(t_INDEX)
82851{
82852 typedef typename bsl::remove_cv<
82854 Alt_Type;
82855
82856 BloombergLP::bslma::ConstructionUtil::construct(
82857 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82858 AllocBase::mechanism(),
82859 arg_01,
82860 arg_02,
82861 arg_03,
82862 arg_04,
82863 arg_05);
82864}
82865#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
82866
82867#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
82868template <class t_HEAD, class t_TAIL_01>
82869template <size_t t_INDEX,
82870 class t_ARG_01,
82871 class t_ARG_02,
82872 class t_ARG_03,
82873 class t_ARG_04,
82874 class t_ARG_05>
82875inline
82876Variant_Base<t_HEAD, t_TAIL_01,
82877 BSLS_COMPILERFEATURES_FILLT(17)
82878 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82879 const t_ARG_01& arg_01,
82880 const t_ARG_02& arg_02,
82881 const t_ARG_03& arg_03,
82882 const t_ARG_04& arg_04,
82883 const t_ARG_05& arg_05)
82884: AllocBase()
82885, d_type(t_INDEX)
82886{
82887 typedef typename bsl::remove_cv<
82889 Alt_Type;
82890
82891 BloombergLP::bslma::ConstructionUtil::construct(
82892 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82893 AllocBase::mechanism(),
82894 arg_01,
82895 arg_02,
82896 arg_03,
82897 arg_04,
82898 arg_05);
82899}
82900#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
82901
82902#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
82903template <class t_HEAD, class t_TAIL_01,
82904 class t_TAIL_02>
82905template <size_t t_INDEX,
82906 class t_ARG_01,
82907 class t_ARG_02,
82908 class t_ARG_03,
82909 class t_ARG_04,
82910 class t_ARG_05>
82911inline
82912Variant_Base<t_HEAD, t_TAIL_01,
82913 t_TAIL_02,
82914 BSLS_COMPILERFEATURES_FILLT(16)
82915 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82916 const t_ARG_01& arg_01,
82917 const t_ARG_02& arg_02,
82918 const t_ARG_03& arg_03,
82919 const t_ARG_04& arg_04,
82920 const t_ARG_05& arg_05)
82921: AllocBase()
82922, d_type(t_INDEX)
82923{
82924 typedef typename bsl::remove_cv<
82926 Alt_Type;
82927
82928 BloombergLP::bslma::ConstructionUtil::construct(
82929 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82930 AllocBase::mechanism(),
82931 arg_01,
82932 arg_02,
82933 arg_03,
82934 arg_04,
82935 arg_05);
82936}
82937#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
82938
82939#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
82940template <class t_HEAD, class t_TAIL_01,
82941 class t_TAIL_02,
82942 class t_TAIL_03>
82943template <size_t t_INDEX,
82944 class t_ARG_01,
82945 class t_ARG_02,
82946 class t_ARG_03,
82947 class t_ARG_04,
82948 class t_ARG_05>
82949inline
82950Variant_Base<t_HEAD, t_TAIL_01,
82951 t_TAIL_02,
82952 t_TAIL_03,
82953 BSLS_COMPILERFEATURES_FILLT(15)
82954 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82955 const t_ARG_01& arg_01,
82956 const t_ARG_02& arg_02,
82957 const t_ARG_03& arg_03,
82958 const t_ARG_04& arg_04,
82959 const t_ARG_05& arg_05)
82960: AllocBase()
82961, d_type(t_INDEX)
82962{
82963 typedef typename bsl::remove_cv<
82965 Alt_Type;
82966
82967 BloombergLP::bslma::ConstructionUtil::construct(
82968 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
82969 AllocBase::mechanism(),
82970 arg_01,
82971 arg_02,
82972 arg_03,
82973 arg_04,
82974 arg_05);
82975}
82976#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
82977
82978#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
82979template <class t_HEAD, class t_TAIL_01,
82980 class t_TAIL_02,
82981 class t_TAIL_03,
82982 class t_TAIL_04>
82983template <size_t t_INDEX,
82984 class t_ARG_01,
82985 class t_ARG_02,
82986 class t_ARG_03,
82987 class t_ARG_04,
82988 class t_ARG_05>
82989inline
82990Variant_Base<t_HEAD, t_TAIL_01,
82991 t_TAIL_02,
82992 t_TAIL_03,
82993 t_TAIL_04,
82994 BSLS_COMPILERFEATURES_FILLT(14)
82995 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
82996 const t_ARG_01& arg_01,
82997 const t_ARG_02& arg_02,
82998 const t_ARG_03& arg_03,
82999 const t_ARG_04& arg_04,
83000 const t_ARG_05& arg_05)
83001: AllocBase()
83002, d_type(t_INDEX)
83003{
83004 typedef typename bsl::remove_cv<
83006 Alt_Type;
83007
83008 BloombergLP::bslma::ConstructionUtil::construct(
83009 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83010 AllocBase::mechanism(),
83011 arg_01,
83012 arg_02,
83013 arg_03,
83014 arg_04,
83015 arg_05);
83016}
83017#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
83018
83019#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
83020template <class t_HEAD, class t_TAIL_01,
83021 class t_TAIL_02,
83022 class t_TAIL_03,
83023 class t_TAIL_04,
83024 class t_TAIL_05>
83025template <size_t t_INDEX,
83026 class t_ARG_01,
83027 class t_ARG_02,
83028 class t_ARG_03,
83029 class t_ARG_04,
83030 class t_ARG_05>
83031inline
83032Variant_Base<t_HEAD, t_TAIL_01,
83033 t_TAIL_02,
83034 t_TAIL_03,
83035 t_TAIL_04,
83036 t_TAIL_05,
83037 BSLS_COMPILERFEATURES_FILLT(13)
83038 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83039 const t_ARG_01& arg_01,
83040 const t_ARG_02& arg_02,
83041 const t_ARG_03& arg_03,
83042 const t_ARG_04& arg_04,
83043 const t_ARG_05& arg_05)
83044: AllocBase()
83045, d_type(t_INDEX)
83046{
83047 typedef typename bsl::remove_cv<
83049 Alt_Type;
83050
83051 BloombergLP::bslma::ConstructionUtil::construct(
83052 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83053 AllocBase::mechanism(),
83054 arg_01,
83055 arg_02,
83056 arg_03,
83057 arg_04,
83058 arg_05);
83059}
83060#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
83061
83062#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
83063template <class t_HEAD, class t_TAIL_01,
83064 class t_TAIL_02,
83065 class t_TAIL_03,
83066 class t_TAIL_04,
83067 class t_TAIL_05,
83068 class t_TAIL_06>
83069template <size_t t_INDEX,
83070 class t_ARG_01,
83071 class t_ARG_02,
83072 class t_ARG_03,
83073 class t_ARG_04,
83074 class t_ARG_05>
83075inline
83076Variant_Base<t_HEAD, t_TAIL_01,
83077 t_TAIL_02,
83078 t_TAIL_03,
83079 t_TAIL_04,
83080 t_TAIL_05,
83081 t_TAIL_06,
83082 BSLS_COMPILERFEATURES_FILLT(12)
83083 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83084 const t_ARG_01& arg_01,
83085 const t_ARG_02& arg_02,
83086 const t_ARG_03& arg_03,
83087 const t_ARG_04& arg_04,
83088 const t_ARG_05& arg_05)
83089: AllocBase()
83090, d_type(t_INDEX)
83091{
83092 typedef typename bsl::remove_cv<
83094 Alt_Type;
83095
83096 BloombergLP::bslma::ConstructionUtil::construct(
83097 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83098 AllocBase::mechanism(),
83099 arg_01,
83100 arg_02,
83101 arg_03,
83102 arg_04,
83103 arg_05);
83104}
83105#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
83106
83107#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
83108template <class t_HEAD, class t_TAIL_01,
83109 class t_TAIL_02,
83110 class t_TAIL_03,
83111 class t_TAIL_04,
83112 class t_TAIL_05,
83113 class t_TAIL_06,
83114 class t_TAIL_07>
83115template <size_t t_INDEX,
83116 class t_ARG_01,
83117 class t_ARG_02,
83118 class t_ARG_03,
83119 class t_ARG_04,
83120 class t_ARG_05>
83121inline
83122Variant_Base<t_HEAD, t_TAIL_01,
83123 t_TAIL_02,
83124 t_TAIL_03,
83125 t_TAIL_04,
83126 t_TAIL_05,
83127 t_TAIL_06,
83128 t_TAIL_07,
83129 BSLS_COMPILERFEATURES_FILLT(11)
83130 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83131 const t_ARG_01& arg_01,
83132 const t_ARG_02& arg_02,
83133 const t_ARG_03& arg_03,
83134 const t_ARG_04& arg_04,
83135 const t_ARG_05& arg_05)
83136: AllocBase()
83137, d_type(t_INDEX)
83138{
83139 typedef typename bsl::remove_cv<
83141 Alt_Type;
83142
83143 BloombergLP::bslma::ConstructionUtil::construct(
83144 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83145 AllocBase::mechanism(),
83146 arg_01,
83147 arg_02,
83148 arg_03,
83149 arg_04,
83150 arg_05);
83151}
83152#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
83153
83154#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
83155template <class t_HEAD, class t_TAIL_01,
83156 class t_TAIL_02,
83157 class t_TAIL_03,
83158 class t_TAIL_04,
83159 class t_TAIL_05,
83160 class t_TAIL_06,
83161 class t_TAIL_07,
83162 class t_TAIL_08>
83163template <size_t t_INDEX,
83164 class t_ARG_01,
83165 class t_ARG_02,
83166 class t_ARG_03,
83167 class t_ARG_04,
83168 class t_ARG_05>
83169inline
83170Variant_Base<t_HEAD, t_TAIL_01,
83171 t_TAIL_02,
83172 t_TAIL_03,
83173 t_TAIL_04,
83174 t_TAIL_05,
83175 t_TAIL_06,
83176 t_TAIL_07,
83177 t_TAIL_08,
83178 BSLS_COMPILERFEATURES_FILLT(10)
83179 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83180 const t_ARG_01& arg_01,
83181 const t_ARG_02& arg_02,
83182 const t_ARG_03& arg_03,
83183 const t_ARG_04& arg_04,
83184 const t_ARG_05& arg_05)
83185: AllocBase()
83186, d_type(t_INDEX)
83187{
83188 typedef typename bsl::remove_cv<
83190 Alt_Type;
83191
83192 BloombergLP::bslma::ConstructionUtil::construct(
83193 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83194 AllocBase::mechanism(),
83195 arg_01,
83196 arg_02,
83197 arg_03,
83198 arg_04,
83199 arg_05);
83200}
83201#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
83202
83203#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
83204template <class t_HEAD, class t_TAIL_01,
83205 class t_TAIL_02,
83206 class t_TAIL_03,
83207 class t_TAIL_04,
83208 class t_TAIL_05,
83209 class t_TAIL_06,
83210 class t_TAIL_07,
83211 class t_TAIL_08,
83212 class t_TAIL_09>
83213template <size_t t_INDEX,
83214 class t_ARG_01,
83215 class t_ARG_02,
83216 class t_ARG_03,
83217 class t_ARG_04,
83218 class t_ARG_05>
83219inline
83220Variant_Base<t_HEAD, t_TAIL_01,
83221 t_TAIL_02,
83222 t_TAIL_03,
83223 t_TAIL_04,
83224 t_TAIL_05,
83225 t_TAIL_06,
83226 t_TAIL_07,
83227 t_TAIL_08,
83228 t_TAIL_09,
83229 BSLS_COMPILERFEATURES_FILLT( 9)
83230 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83231 const t_ARG_01& arg_01,
83232 const t_ARG_02& arg_02,
83233 const t_ARG_03& arg_03,
83234 const t_ARG_04& arg_04,
83235 const t_ARG_05& arg_05)
83236: AllocBase()
83237, d_type(t_INDEX)
83238{
83239 typedef typename bsl::remove_cv<
83241 Alt_Type;
83242
83243 BloombergLP::bslma::ConstructionUtil::construct(
83244 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83245 AllocBase::mechanism(),
83246 arg_01,
83247 arg_02,
83248 arg_03,
83249 arg_04,
83250 arg_05);
83251}
83252#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
83253
83254#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
83255template <class t_HEAD, class t_TAIL_01,
83256 class t_TAIL_02,
83257 class t_TAIL_03,
83258 class t_TAIL_04,
83259 class t_TAIL_05,
83260 class t_TAIL_06,
83261 class t_TAIL_07,
83262 class t_TAIL_08,
83263 class t_TAIL_09,
83264 class t_TAIL_10>
83265template <size_t t_INDEX,
83266 class t_ARG_01,
83267 class t_ARG_02,
83268 class t_ARG_03,
83269 class t_ARG_04,
83270 class t_ARG_05>
83271inline
83272Variant_Base<t_HEAD, t_TAIL_01,
83273 t_TAIL_02,
83274 t_TAIL_03,
83275 t_TAIL_04,
83276 t_TAIL_05,
83277 t_TAIL_06,
83278 t_TAIL_07,
83279 t_TAIL_08,
83280 t_TAIL_09,
83281 t_TAIL_10,
83282 BSLS_COMPILERFEATURES_FILLT( 8)
83283 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83284 const t_ARG_01& arg_01,
83285 const t_ARG_02& arg_02,
83286 const t_ARG_03& arg_03,
83287 const t_ARG_04& arg_04,
83288 const t_ARG_05& arg_05)
83289: AllocBase()
83290, d_type(t_INDEX)
83291{
83292 typedef typename bsl::remove_cv<
83294 Alt_Type;
83295
83296 BloombergLP::bslma::ConstructionUtil::construct(
83297 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83298 AllocBase::mechanism(),
83299 arg_01,
83300 arg_02,
83301 arg_03,
83302 arg_04,
83303 arg_05);
83304}
83305#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
83306
83307#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
83308template <class t_HEAD, class t_TAIL_01,
83309 class t_TAIL_02,
83310 class t_TAIL_03,
83311 class t_TAIL_04,
83312 class t_TAIL_05,
83313 class t_TAIL_06,
83314 class t_TAIL_07,
83315 class t_TAIL_08,
83316 class t_TAIL_09,
83317 class t_TAIL_10,
83318 class t_TAIL_11>
83319template <size_t t_INDEX,
83320 class t_ARG_01,
83321 class t_ARG_02,
83322 class t_ARG_03,
83323 class t_ARG_04,
83324 class t_ARG_05>
83325inline
83326Variant_Base<t_HEAD, t_TAIL_01,
83327 t_TAIL_02,
83328 t_TAIL_03,
83329 t_TAIL_04,
83330 t_TAIL_05,
83331 t_TAIL_06,
83332 t_TAIL_07,
83333 t_TAIL_08,
83334 t_TAIL_09,
83335 t_TAIL_10,
83336 t_TAIL_11,
83337 BSLS_COMPILERFEATURES_FILLT( 7)
83338 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83339 const t_ARG_01& arg_01,
83340 const t_ARG_02& arg_02,
83341 const t_ARG_03& arg_03,
83342 const t_ARG_04& arg_04,
83343 const t_ARG_05& arg_05)
83344: AllocBase()
83345, d_type(t_INDEX)
83346{
83347 typedef typename bsl::remove_cv<
83349 Alt_Type;
83350
83351 BloombergLP::bslma::ConstructionUtil::construct(
83352 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83353 AllocBase::mechanism(),
83354 arg_01,
83355 arg_02,
83356 arg_03,
83357 arg_04,
83358 arg_05);
83359}
83360#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
83361
83362#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
83363template <class t_HEAD, class t_TAIL_01,
83364 class t_TAIL_02,
83365 class t_TAIL_03,
83366 class t_TAIL_04,
83367 class t_TAIL_05,
83368 class t_TAIL_06,
83369 class t_TAIL_07,
83370 class t_TAIL_08,
83371 class t_TAIL_09,
83372 class t_TAIL_10,
83373 class t_TAIL_11,
83374 class t_TAIL_12>
83375template <size_t t_INDEX,
83376 class t_ARG_01,
83377 class t_ARG_02,
83378 class t_ARG_03,
83379 class t_ARG_04,
83380 class t_ARG_05>
83381inline
83382Variant_Base<t_HEAD, t_TAIL_01,
83383 t_TAIL_02,
83384 t_TAIL_03,
83385 t_TAIL_04,
83386 t_TAIL_05,
83387 t_TAIL_06,
83388 t_TAIL_07,
83389 t_TAIL_08,
83390 t_TAIL_09,
83391 t_TAIL_10,
83392 t_TAIL_11,
83393 t_TAIL_12,
83394 BSLS_COMPILERFEATURES_FILLT( 6)
83395 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83396 const t_ARG_01& arg_01,
83397 const t_ARG_02& arg_02,
83398 const t_ARG_03& arg_03,
83399 const t_ARG_04& arg_04,
83400 const t_ARG_05& arg_05)
83401: AllocBase()
83402, d_type(t_INDEX)
83403{
83404 typedef typename bsl::remove_cv<
83406 Alt_Type;
83407
83408 BloombergLP::bslma::ConstructionUtil::construct(
83409 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83410 AllocBase::mechanism(),
83411 arg_01,
83412 arg_02,
83413 arg_03,
83414 arg_04,
83415 arg_05);
83416}
83417#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
83418
83419#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
83420template <class t_HEAD, class t_TAIL_01,
83421 class t_TAIL_02,
83422 class t_TAIL_03,
83423 class t_TAIL_04,
83424 class t_TAIL_05,
83425 class t_TAIL_06,
83426 class t_TAIL_07,
83427 class t_TAIL_08,
83428 class t_TAIL_09,
83429 class t_TAIL_10,
83430 class t_TAIL_11,
83431 class t_TAIL_12,
83432 class t_TAIL_13>
83433template <size_t t_INDEX,
83434 class t_ARG_01,
83435 class t_ARG_02,
83436 class t_ARG_03,
83437 class t_ARG_04,
83438 class t_ARG_05>
83439inline
83440Variant_Base<t_HEAD, t_TAIL_01,
83441 t_TAIL_02,
83442 t_TAIL_03,
83443 t_TAIL_04,
83444 t_TAIL_05,
83445 t_TAIL_06,
83446 t_TAIL_07,
83447 t_TAIL_08,
83448 t_TAIL_09,
83449 t_TAIL_10,
83450 t_TAIL_11,
83451 t_TAIL_12,
83452 t_TAIL_13,
83453 BSLS_COMPILERFEATURES_FILLT( 5)
83454 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83455 const t_ARG_01& arg_01,
83456 const t_ARG_02& arg_02,
83457 const t_ARG_03& arg_03,
83458 const t_ARG_04& arg_04,
83459 const t_ARG_05& arg_05)
83460: AllocBase()
83461, d_type(t_INDEX)
83462{
83463 typedef typename bsl::remove_cv<
83465 Alt_Type;
83466
83467 BloombergLP::bslma::ConstructionUtil::construct(
83468 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83469 AllocBase::mechanism(),
83470 arg_01,
83471 arg_02,
83472 arg_03,
83473 arg_04,
83474 arg_05);
83475}
83476#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
83477
83478#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
83479template <class t_HEAD, class t_TAIL_01,
83480 class t_TAIL_02,
83481 class t_TAIL_03,
83482 class t_TAIL_04,
83483 class t_TAIL_05,
83484 class t_TAIL_06,
83485 class t_TAIL_07,
83486 class t_TAIL_08,
83487 class t_TAIL_09,
83488 class t_TAIL_10,
83489 class t_TAIL_11,
83490 class t_TAIL_12,
83491 class t_TAIL_13,
83492 class t_TAIL_14>
83493template <size_t t_INDEX,
83494 class t_ARG_01,
83495 class t_ARG_02,
83496 class t_ARG_03,
83497 class t_ARG_04,
83498 class t_ARG_05>
83499inline
83500Variant_Base<t_HEAD, t_TAIL_01,
83501 t_TAIL_02,
83502 t_TAIL_03,
83503 t_TAIL_04,
83504 t_TAIL_05,
83505 t_TAIL_06,
83506 t_TAIL_07,
83507 t_TAIL_08,
83508 t_TAIL_09,
83509 t_TAIL_10,
83510 t_TAIL_11,
83511 t_TAIL_12,
83512 t_TAIL_13,
83513 t_TAIL_14,
83514 BSLS_COMPILERFEATURES_FILLT( 4)
83515 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83516 const t_ARG_01& arg_01,
83517 const t_ARG_02& arg_02,
83518 const t_ARG_03& arg_03,
83519 const t_ARG_04& arg_04,
83520 const t_ARG_05& arg_05)
83521: AllocBase()
83522, d_type(t_INDEX)
83523{
83524 typedef typename bsl::remove_cv<
83526 Alt_Type;
83527
83528 BloombergLP::bslma::ConstructionUtil::construct(
83529 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83530 AllocBase::mechanism(),
83531 arg_01,
83532 arg_02,
83533 arg_03,
83534 arg_04,
83535 arg_05);
83536}
83537#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
83538
83539#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
83540template <class t_HEAD, class t_TAIL_01,
83541 class t_TAIL_02,
83542 class t_TAIL_03,
83543 class t_TAIL_04,
83544 class t_TAIL_05,
83545 class t_TAIL_06,
83546 class t_TAIL_07,
83547 class t_TAIL_08,
83548 class t_TAIL_09,
83549 class t_TAIL_10,
83550 class t_TAIL_11,
83551 class t_TAIL_12,
83552 class t_TAIL_13,
83553 class t_TAIL_14,
83554 class t_TAIL_15>
83555template <size_t t_INDEX,
83556 class t_ARG_01,
83557 class t_ARG_02,
83558 class t_ARG_03,
83559 class t_ARG_04,
83560 class t_ARG_05>
83561inline
83562Variant_Base<t_HEAD, t_TAIL_01,
83563 t_TAIL_02,
83564 t_TAIL_03,
83565 t_TAIL_04,
83566 t_TAIL_05,
83567 t_TAIL_06,
83568 t_TAIL_07,
83569 t_TAIL_08,
83570 t_TAIL_09,
83571 t_TAIL_10,
83572 t_TAIL_11,
83573 t_TAIL_12,
83574 t_TAIL_13,
83575 t_TAIL_14,
83576 t_TAIL_15,
83577 BSLS_COMPILERFEATURES_FILLT( 3)
83578 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83579 const t_ARG_01& arg_01,
83580 const t_ARG_02& arg_02,
83581 const t_ARG_03& arg_03,
83582 const t_ARG_04& arg_04,
83583 const t_ARG_05& arg_05)
83584: AllocBase()
83585, d_type(t_INDEX)
83586{
83587 typedef typename bsl::remove_cv<
83589 Alt_Type;
83590
83591 BloombergLP::bslma::ConstructionUtil::construct(
83592 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83593 AllocBase::mechanism(),
83594 arg_01,
83595 arg_02,
83596 arg_03,
83597 arg_04,
83598 arg_05);
83599}
83600#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
83601
83602#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
83603template <class t_HEAD, class t_TAIL_01,
83604 class t_TAIL_02,
83605 class t_TAIL_03,
83606 class t_TAIL_04,
83607 class t_TAIL_05,
83608 class t_TAIL_06,
83609 class t_TAIL_07,
83610 class t_TAIL_08,
83611 class t_TAIL_09,
83612 class t_TAIL_10,
83613 class t_TAIL_11,
83614 class t_TAIL_12,
83615 class t_TAIL_13,
83616 class t_TAIL_14,
83617 class t_TAIL_15,
83618 class t_TAIL_16>
83619template <size_t t_INDEX,
83620 class t_ARG_01,
83621 class t_ARG_02,
83622 class t_ARG_03,
83623 class t_ARG_04,
83624 class t_ARG_05>
83625inline
83626Variant_Base<t_HEAD, t_TAIL_01,
83627 t_TAIL_02,
83628 t_TAIL_03,
83629 t_TAIL_04,
83630 t_TAIL_05,
83631 t_TAIL_06,
83632 t_TAIL_07,
83633 t_TAIL_08,
83634 t_TAIL_09,
83635 t_TAIL_10,
83636 t_TAIL_11,
83637 t_TAIL_12,
83638 t_TAIL_13,
83639 t_TAIL_14,
83640 t_TAIL_15,
83641 t_TAIL_16,
83642 BSLS_COMPILERFEATURES_FILLT( 2)
83643 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83644 const t_ARG_01& arg_01,
83645 const t_ARG_02& arg_02,
83646 const t_ARG_03& arg_03,
83647 const t_ARG_04& arg_04,
83648 const t_ARG_05& arg_05)
83649: AllocBase()
83650, d_type(t_INDEX)
83651{
83652 typedef typename bsl::remove_cv<
83654 Alt_Type;
83655
83656 BloombergLP::bslma::ConstructionUtil::construct(
83657 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83658 AllocBase::mechanism(),
83659 arg_01,
83660 arg_02,
83661 arg_03,
83662 arg_04,
83663 arg_05);
83664}
83665#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
83666
83667#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
83668template <class t_HEAD, class t_TAIL_01,
83669 class t_TAIL_02,
83670 class t_TAIL_03,
83671 class t_TAIL_04,
83672 class t_TAIL_05,
83673 class t_TAIL_06,
83674 class t_TAIL_07,
83675 class t_TAIL_08,
83676 class t_TAIL_09,
83677 class t_TAIL_10,
83678 class t_TAIL_11,
83679 class t_TAIL_12,
83680 class t_TAIL_13,
83681 class t_TAIL_14,
83682 class t_TAIL_15,
83683 class t_TAIL_16,
83684 class t_TAIL_17>
83685template <size_t t_INDEX,
83686 class t_ARG_01,
83687 class t_ARG_02,
83688 class t_ARG_03,
83689 class t_ARG_04,
83690 class t_ARG_05>
83691inline
83692Variant_Base<t_HEAD, t_TAIL_01,
83693 t_TAIL_02,
83694 t_TAIL_03,
83695 t_TAIL_04,
83696 t_TAIL_05,
83697 t_TAIL_06,
83698 t_TAIL_07,
83699 t_TAIL_08,
83700 t_TAIL_09,
83701 t_TAIL_10,
83702 t_TAIL_11,
83703 t_TAIL_12,
83704 t_TAIL_13,
83705 t_TAIL_14,
83706 t_TAIL_15,
83707 t_TAIL_16,
83708 t_TAIL_17,
83709 BSLS_COMPILERFEATURES_FILLT( 1)
83710 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83711 const t_ARG_01& arg_01,
83712 const t_ARG_02& arg_02,
83713 const t_ARG_03& arg_03,
83714 const t_ARG_04& arg_04,
83715 const t_ARG_05& arg_05)
83716: AllocBase()
83717, d_type(t_INDEX)
83718{
83719 typedef typename bsl::remove_cv<
83721 Alt_Type;
83722
83723 BloombergLP::bslma::ConstructionUtil::construct(
83724 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83725 AllocBase::mechanism(),
83726 arg_01,
83727 arg_02,
83728 arg_03,
83729 arg_04,
83730 arg_05);
83731}
83732#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
83733
83734#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
83735template <class t_HEAD, class t_TAIL_01,
83736 class t_TAIL_02,
83737 class t_TAIL_03,
83738 class t_TAIL_04,
83739 class t_TAIL_05,
83740 class t_TAIL_06,
83741 class t_TAIL_07,
83742 class t_TAIL_08,
83743 class t_TAIL_09,
83744 class t_TAIL_10,
83745 class t_TAIL_11,
83746 class t_TAIL_12,
83747 class t_TAIL_13,
83748 class t_TAIL_14,
83749 class t_TAIL_15,
83750 class t_TAIL_16,
83751 class t_TAIL_17,
83752 class t_TAIL_18>
83753template <size_t t_INDEX,
83754 class t_ARG_01,
83755 class t_ARG_02,
83756 class t_ARG_03,
83757 class t_ARG_04,
83758 class t_ARG_05>
83759inline
83760Variant_Base<t_HEAD, t_TAIL_01,
83761 t_TAIL_02,
83762 t_TAIL_03,
83763 t_TAIL_04,
83764 t_TAIL_05,
83765 t_TAIL_06,
83766 t_TAIL_07,
83767 t_TAIL_08,
83768 t_TAIL_09,
83769 t_TAIL_10,
83770 t_TAIL_11,
83771 t_TAIL_12,
83772 t_TAIL_13,
83773 t_TAIL_14,
83774 t_TAIL_15,
83775 t_TAIL_16,
83776 t_TAIL_17,
83777 t_TAIL_18,
83778 BSLS_COMPILERFEATURES_FILLT( 0)
83779 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83780 const t_ARG_01& arg_01,
83781 const t_ARG_02& arg_02,
83782 const t_ARG_03& arg_03,
83783 const t_ARG_04& arg_04,
83784 const t_ARG_05& arg_05)
83785: AllocBase()
83786, d_type(t_INDEX)
83787{
83788 typedef typename bsl::remove_cv<
83790 Alt_Type;
83791
83792 BloombergLP::bslma::ConstructionUtil::construct(
83793 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83794 AllocBase::mechanism(),
83795 arg_01,
83796 arg_02,
83797 arg_03,
83798 arg_04,
83799 arg_05);
83800}
83801#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
83802
83803
83804#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
83805template <class t_HEAD>
83806template <size_t t_INDEX,
83807 class t_ARG_01,
83808 class t_ARG_02,
83809 class t_ARG_03,
83810 class t_ARG_04,
83811 class t_ARG_05,
83812 class t_ARG_06>
83813inline
83814Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
83815 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83816 const t_ARG_01& arg_01,
83817 const t_ARG_02& arg_02,
83818 const t_ARG_03& arg_03,
83819 const t_ARG_04& arg_04,
83820 const t_ARG_05& arg_05,
83821 const t_ARG_06& arg_06)
83822: AllocBase()
83823, d_type(t_INDEX)
83824{
83825 typedef typename bsl::remove_cv<
83827 Alt_Type;
83828
83829 BloombergLP::bslma::ConstructionUtil::construct(
83830 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83831 AllocBase::mechanism(),
83832 arg_01,
83833 arg_02,
83834 arg_03,
83835 arg_04,
83836 arg_05,
83837 arg_06);
83838}
83839#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
83840
83841#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
83842template <class t_HEAD, class t_TAIL_01>
83843template <size_t t_INDEX,
83844 class t_ARG_01,
83845 class t_ARG_02,
83846 class t_ARG_03,
83847 class t_ARG_04,
83848 class t_ARG_05,
83849 class t_ARG_06>
83850inline
83851Variant_Base<t_HEAD, t_TAIL_01,
83852 BSLS_COMPILERFEATURES_FILLT(17)
83853 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83854 const t_ARG_01& arg_01,
83855 const t_ARG_02& arg_02,
83856 const t_ARG_03& arg_03,
83857 const t_ARG_04& arg_04,
83858 const t_ARG_05& arg_05,
83859 const t_ARG_06& arg_06)
83860: AllocBase()
83861, d_type(t_INDEX)
83862{
83863 typedef typename bsl::remove_cv<
83865 Alt_Type;
83866
83867 BloombergLP::bslma::ConstructionUtil::construct(
83868 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83869 AllocBase::mechanism(),
83870 arg_01,
83871 arg_02,
83872 arg_03,
83873 arg_04,
83874 arg_05,
83875 arg_06);
83876}
83877#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
83878
83879#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
83880template <class t_HEAD, class t_TAIL_01,
83881 class t_TAIL_02>
83882template <size_t t_INDEX,
83883 class t_ARG_01,
83884 class t_ARG_02,
83885 class t_ARG_03,
83886 class t_ARG_04,
83887 class t_ARG_05,
83888 class t_ARG_06>
83889inline
83890Variant_Base<t_HEAD, t_TAIL_01,
83891 t_TAIL_02,
83892 BSLS_COMPILERFEATURES_FILLT(16)
83893 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83894 const t_ARG_01& arg_01,
83895 const t_ARG_02& arg_02,
83896 const t_ARG_03& arg_03,
83897 const t_ARG_04& arg_04,
83898 const t_ARG_05& arg_05,
83899 const t_ARG_06& arg_06)
83900: AllocBase()
83901, d_type(t_INDEX)
83902{
83903 typedef typename bsl::remove_cv<
83905 Alt_Type;
83906
83907 BloombergLP::bslma::ConstructionUtil::construct(
83908 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83909 AllocBase::mechanism(),
83910 arg_01,
83911 arg_02,
83912 arg_03,
83913 arg_04,
83914 arg_05,
83915 arg_06);
83916}
83917#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
83918
83919#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
83920template <class t_HEAD, class t_TAIL_01,
83921 class t_TAIL_02,
83922 class t_TAIL_03>
83923template <size_t t_INDEX,
83924 class t_ARG_01,
83925 class t_ARG_02,
83926 class t_ARG_03,
83927 class t_ARG_04,
83928 class t_ARG_05,
83929 class t_ARG_06>
83930inline
83931Variant_Base<t_HEAD, t_TAIL_01,
83932 t_TAIL_02,
83933 t_TAIL_03,
83934 BSLS_COMPILERFEATURES_FILLT(15)
83935 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83936 const t_ARG_01& arg_01,
83937 const t_ARG_02& arg_02,
83938 const t_ARG_03& arg_03,
83939 const t_ARG_04& arg_04,
83940 const t_ARG_05& arg_05,
83941 const t_ARG_06& arg_06)
83942: AllocBase()
83943, d_type(t_INDEX)
83944{
83945 typedef typename bsl::remove_cv<
83947 Alt_Type;
83948
83949 BloombergLP::bslma::ConstructionUtil::construct(
83950 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83951 AllocBase::mechanism(),
83952 arg_01,
83953 arg_02,
83954 arg_03,
83955 arg_04,
83956 arg_05,
83957 arg_06);
83958}
83959#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
83960
83961#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
83962template <class t_HEAD, class t_TAIL_01,
83963 class t_TAIL_02,
83964 class t_TAIL_03,
83965 class t_TAIL_04>
83966template <size_t t_INDEX,
83967 class t_ARG_01,
83968 class t_ARG_02,
83969 class t_ARG_03,
83970 class t_ARG_04,
83971 class t_ARG_05,
83972 class t_ARG_06>
83973inline
83974Variant_Base<t_HEAD, t_TAIL_01,
83975 t_TAIL_02,
83976 t_TAIL_03,
83977 t_TAIL_04,
83978 BSLS_COMPILERFEATURES_FILLT(14)
83979 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
83980 const t_ARG_01& arg_01,
83981 const t_ARG_02& arg_02,
83982 const t_ARG_03& arg_03,
83983 const t_ARG_04& arg_04,
83984 const t_ARG_05& arg_05,
83985 const t_ARG_06& arg_06)
83986: AllocBase()
83987, d_type(t_INDEX)
83988{
83989 typedef typename bsl::remove_cv<
83991 Alt_Type;
83992
83993 BloombergLP::bslma::ConstructionUtil::construct(
83994 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
83995 AllocBase::mechanism(),
83996 arg_01,
83997 arg_02,
83998 arg_03,
83999 arg_04,
84000 arg_05,
84001 arg_06);
84002}
84003#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
84004
84005#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
84006template <class t_HEAD, class t_TAIL_01,
84007 class t_TAIL_02,
84008 class t_TAIL_03,
84009 class t_TAIL_04,
84010 class t_TAIL_05>
84011template <size_t t_INDEX,
84012 class t_ARG_01,
84013 class t_ARG_02,
84014 class t_ARG_03,
84015 class t_ARG_04,
84016 class t_ARG_05,
84017 class t_ARG_06>
84018inline
84019Variant_Base<t_HEAD, t_TAIL_01,
84020 t_TAIL_02,
84021 t_TAIL_03,
84022 t_TAIL_04,
84023 t_TAIL_05,
84024 BSLS_COMPILERFEATURES_FILLT(13)
84025 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84026 const t_ARG_01& arg_01,
84027 const t_ARG_02& arg_02,
84028 const t_ARG_03& arg_03,
84029 const t_ARG_04& arg_04,
84030 const t_ARG_05& arg_05,
84031 const t_ARG_06& arg_06)
84032: AllocBase()
84033, d_type(t_INDEX)
84034{
84035 typedef typename bsl::remove_cv<
84037 Alt_Type;
84038
84039 BloombergLP::bslma::ConstructionUtil::construct(
84040 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84041 AllocBase::mechanism(),
84042 arg_01,
84043 arg_02,
84044 arg_03,
84045 arg_04,
84046 arg_05,
84047 arg_06);
84048}
84049#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
84050
84051#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
84052template <class t_HEAD, class t_TAIL_01,
84053 class t_TAIL_02,
84054 class t_TAIL_03,
84055 class t_TAIL_04,
84056 class t_TAIL_05,
84057 class t_TAIL_06>
84058template <size_t t_INDEX,
84059 class t_ARG_01,
84060 class t_ARG_02,
84061 class t_ARG_03,
84062 class t_ARG_04,
84063 class t_ARG_05,
84064 class t_ARG_06>
84065inline
84066Variant_Base<t_HEAD, t_TAIL_01,
84067 t_TAIL_02,
84068 t_TAIL_03,
84069 t_TAIL_04,
84070 t_TAIL_05,
84071 t_TAIL_06,
84072 BSLS_COMPILERFEATURES_FILLT(12)
84073 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84074 const t_ARG_01& arg_01,
84075 const t_ARG_02& arg_02,
84076 const t_ARG_03& arg_03,
84077 const t_ARG_04& arg_04,
84078 const t_ARG_05& arg_05,
84079 const t_ARG_06& arg_06)
84080: AllocBase()
84081, d_type(t_INDEX)
84082{
84083 typedef typename bsl::remove_cv<
84085 Alt_Type;
84086
84087 BloombergLP::bslma::ConstructionUtil::construct(
84088 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84089 AllocBase::mechanism(),
84090 arg_01,
84091 arg_02,
84092 arg_03,
84093 arg_04,
84094 arg_05,
84095 arg_06);
84096}
84097#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
84098
84099#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
84100template <class t_HEAD, class t_TAIL_01,
84101 class t_TAIL_02,
84102 class t_TAIL_03,
84103 class t_TAIL_04,
84104 class t_TAIL_05,
84105 class t_TAIL_06,
84106 class t_TAIL_07>
84107template <size_t t_INDEX,
84108 class t_ARG_01,
84109 class t_ARG_02,
84110 class t_ARG_03,
84111 class t_ARG_04,
84112 class t_ARG_05,
84113 class t_ARG_06>
84114inline
84115Variant_Base<t_HEAD, t_TAIL_01,
84116 t_TAIL_02,
84117 t_TAIL_03,
84118 t_TAIL_04,
84119 t_TAIL_05,
84120 t_TAIL_06,
84121 t_TAIL_07,
84122 BSLS_COMPILERFEATURES_FILLT(11)
84123 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84124 const t_ARG_01& arg_01,
84125 const t_ARG_02& arg_02,
84126 const t_ARG_03& arg_03,
84127 const t_ARG_04& arg_04,
84128 const t_ARG_05& arg_05,
84129 const t_ARG_06& arg_06)
84130: AllocBase()
84131, d_type(t_INDEX)
84132{
84133 typedef typename bsl::remove_cv<
84135 Alt_Type;
84136
84137 BloombergLP::bslma::ConstructionUtil::construct(
84138 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84139 AllocBase::mechanism(),
84140 arg_01,
84141 arg_02,
84142 arg_03,
84143 arg_04,
84144 arg_05,
84145 arg_06);
84146}
84147#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
84148
84149#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
84150template <class t_HEAD, class t_TAIL_01,
84151 class t_TAIL_02,
84152 class t_TAIL_03,
84153 class t_TAIL_04,
84154 class t_TAIL_05,
84155 class t_TAIL_06,
84156 class t_TAIL_07,
84157 class t_TAIL_08>
84158template <size_t t_INDEX,
84159 class t_ARG_01,
84160 class t_ARG_02,
84161 class t_ARG_03,
84162 class t_ARG_04,
84163 class t_ARG_05,
84164 class t_ARG_06>
84165inline
84166Variant_Base<t_HEAD, t_TAIL_01,
84167 t_TAIL_02,
84168 t_TAIL_03,
84169 t_TAIL_04,
84170 t_TAIL_05,
84171 t_TAIL_06,
84172 t_TAIL_07,
84173 t_TAIL_08,
84174 BSLS_COMPILERFEATURES_FILLT(10)
84175 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84176 const t_ARG_01& arg_01,
84177 const t_ARG_02& arg_02,
84178 const t_ARG_03& arg_03,
84179 const t_ARG_04& arg_04,
84180 const t_ARG_05& arg_05,
84181 const t_ARG_06& arg_06)
84182: AllocBase()
84183, d_type(t_INDEX)
84184{
84185 typedef typename bsl::remove_cv<
84187 Alt_Type;
84188
84189 BloombergLP::bslma::ConstructionUtil::construct(
84190 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84191 AllocBase::mechanism(),
84192 arg_01,
84193 arg_02,
84194 arg_03,
84195 arg_04,
84196 arg_05,
84197 arg_06);
84198}
84199#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
84200
84201#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
84202template <class t_HEAD, class t_TAIL_01,
84203 class t_TAIL_02,
84204 class t_TAIL_03,
84205 class t_TAIL_04,
84206 class t_TAIL_05,
84207 class t_TAIL_06,
84208 class t_TAIL_07,
84209 class t_TAIL_08,
84210 class t_TAIL_09>
84211template <size_t t_INDEX,
84212 class t_ARG_01,
84213 class t_ARG_02,
84214 class t_ARG_03,
84215 class t_ARG_04,
84216 class t_ARG_05,
84217 class t_ARG_06>
84218inline
84219Variant_Base<t_HEAD, t_TAIL_01,
84220 t_TAIL_02,
84221 t_TAIL_03,
84222 t_TAIL_04,
84223 t_TAIL_05,
84224 t_TAIL_06,
84225 t_TAIL_07,
84226 t_TAIL_08,
84227 t_TAIL_09,
84228 BSLS_COMPILERFEATURES_FILLT( 9)
84229 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84230 const t_ARG_01& arg_01,
84231 const t_ARG_02& arg_02,
84232 const t_ARG_03& arg_03,
84233 const t_ARG_04& arg_04,
84234 const t_ARG_05& arg_05,
84235 const t_ARG_06& arg_06)
84236: AllocBase()
84237, d_type(t_INDEX)
84238{
84239 typedef typename bsl::remove_cv<
84241 Alt_Type;
84242
84243 BloombergLP::bslma::ConstructionUtil::construct(
84244 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84245 AllocBase::mechanism(),
84246 arg_01,
84247 arg_02,
84248 arg_03,
84249 arg_04,
84250 arg_05,
84251 arg_06);
84252}
84253#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
84254
84255#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
84256template <class t_HEAD, class t_TAIL_01,
84257 class t_TAIL_02,
84258 class t_TAIL_03,
84259 class t_TAIL_04,
84260 class t_TAIL_05,
84261 class t_TAIL_06,
84262 class t_TAIL_07,
84263 class t_TAIL_08,
84264 class t_TAIL_09,
84265 class t_TAIL_10>
84266template <size_t t_INDEX,
84267 class t_ARG_01,
84268 class t_ARG_02,
84269 class t_ARG_03,
84270 class t_ARG_04,
84271 class t_ARG_05,
84272 class t_ARG_06>
84273inline
84274Variant_Base<t_HEAD, t_TAIL_01,
84275 t_TAIL_02,
84276 t_TAIL_03,
84277 t_TAIL_04,
84278 t_TAIL_05,
84279 t_TAIL_06,
84280 t_TAIL_07,
84281 t_TAIL_08,
84282 t_TAIL_09,
84283 t_TAIL_10,
84284 BSLS_COMPILERFEATURES_FILLT( 8)
84285 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84286 const t_ARG_01& arg_01,
84287 const t_ARG_02& arg_02,
84288 const t_ARG_03& arg_03,
84289 const t_ARG_04& arg_04,
84290 const t_ARG_05& arg_05,
84291 const t_ARG_06& arg_06)
84292: AllocBase()
84293, d_type(t_INDEX)
84294{
84295 typedef typename bsl::remove_cv<
84297 Alt_Type;
84298
84299 BloombergLP::bslma::ConstructionUtil::construct(
84300 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84301 AllocBase::mechanism(),
84302 arg_01,
84303 arg_02,
84304 arg_03,
84305 arg_04,
84306 arg_05,
84307 arg_06);
84308}
84309#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
84310
84311#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
84312template <class t_HEAD, class t_TAIL_01,
84313 class t_TAIL_02,
84314 class t_TAIL_03,
84315 class t_TAIL_04,
84316 class t_TAIL_05,
84317 class t_TAIL_06,
84318 class t_TAIL_07,
84319 class t_TAIL_08,
84320 class t_TAIL_09,
84321 class t_TAIL_10,
84322 class t_TAIL_11>
84323template <size_t t_INDEX,
84324 class t_ARG_01,
84325 class t_ARG_02,
84326 class t_ARG_03,
84327 class t_ARG_04,
84328 class t_ARG_05,
84329 class t_ARG_06>
84330inline
84331Variant_Base<t_HEAD, t_TAIL_01,
84332 t_TAIL_02,
84333 t_TAIL_03,
84334 t_TAIL_04,
84335 t_TAIL_05,
84336 t_TAIL_06,
84337 t_TAIL_07,
84338 t_TAIL_08,
84339 t_TAIL_09,
84340 t_TAIL_10,
84341 t_TAIL_11,
84342 BSLS_COMPILERFEATURES_FILLT( 7)
84343 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84344 const t_ARG_01& arg_01,
84345 const t_ARG_02& arg_02,
84346 const t_ARG_03& arg_03,
84347 const t_ARG_04& arg_04,
84348 const t_ARG_05& arg_05,
84349 const t_ARG_06& arg_06)
84350: AllocBase()
84351, d_type(t_INDEX)
84352{
84353 typedef typename bsl::remove_cv<
84355 Alt_Type;
84356
84357 BloombergLP::bslma::ConstructionUtil::construct(
84358 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84359 AllocBase::mechanism(),
84360 arg_01,
84361 arg_02,
84362 arg_03,
84363 arg_04,
84364 arg_05,
84365 arg_06);
84366}
84367#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
84368
84369#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
84370template <class t_HEAD, class t_TAIL_01,
84371 class t_TAIL_02,
84372 class t_TAIL_03,
84373 class t_TAIL_04,
84374 class t_TAIL_05,
84375 class t_TAIL_06,
84376 class t_TAIL_07,
84377 class t_TAIL_08,
84378 class t_TAIL_09,
84379 class t_TAIL_10,
84380 class t_TAIL_11,
84381 class t_TAIL_12>
84382template <size_t t_INDEX,
84383 class t_ARG_01,
84384 class t_ARG_02,
84385 class t_ARG_03,
84386 class t_ARG_04,
84387 class t_ARG_05,
84388 class t_ARG_06>
84389inline
84390Variant_Base<t_HEAD, t_TAIL_01,
84391 t_TAIL_02,
84392 t_TAIL_03,
84393 t_TAIL_04,
84394 t_TAIL_05,
84395 t_TAIL_06,
84396 t_TAIL_07,
84397 t_TAIL_08,
84398 t_TAIL_09,
84399 t_TAIL_10,
84400 t_TAIL_11,
84401 t_TAIL_12,
84402 BSLS_COMPILERFEATURES_FILLT( 6)
84403 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84404 const t_ARG_01& arg_01,
84405 const t_ARG_02& arg_02,
84406 const t_ARG_03& arg_03,
84407 const t_ARG_04& arg_04,
84408 const t_ARG_05& arg_05,
84409 const t_ARG_06& arg_06)
84410: AllocBase()
84411, d_type(t_INDEX)
84412{
84413 typedef typename bsl::remove_cv<
84415 Alt_Type;
84416
84417 BloombergLP::bslma::ConstructionUtil::construct(
84418 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84419 AllocBase::mechanism(),
84420 arg_01,
84421 arg_02,
84422 arg_03,
84423 arg_04,
84424 arg_05,
84425 arg_06);
84426}
84427#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
84428
84429#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
84430template <class t_HEAD, class t_TAIL_01,
84431 class t_TAIL_02,
84432 class t_TAIL_03,
84433 class t_TAIL_04,
84434 class t_TAIL_05,
84435 class t_TAIL_06,
84436 class t_TAIL_07,
84437 class t_TAIL_08,
84438 class t_TAIL_09,
84439 class t_TAIL_10,
84440 class t_TAIL_11,
84441 class t_TAIL_12,
84442 class t_TAIL_13>
84443template <size_t t_INDEX,
84444 class t_ARG_01,
84445 class t_ARG_02,
84446 class t_ARG_03,
84447 class t_ARG_04,
84448 class t_ARG_05,
84449 class t_ARG_06>
84450inline
84451Variant_Base<t_HEAD, t_TAIL_01,
84452 t_TAIL_02,
84453 t_TAIL_03,
84454 t_TAIL_04,
84455 t_TAIL_05,
84456 t_TAIL_06,
84457 t_TAIL_07,
84458 t_TAIL_08,
84459 t_TAIL_09,
84460 t_TAIL_10,
84461 t_TAIL_11,
84462 t_TAIL_12,
84463 t_TAIL_13,
84464 BSLS_COMPILERFEATURES_FILLT( 5)
84465 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84466 const t_ARG_01& arg_01,
84467 const t_ARG_02& arg_02,
84468 const t_ARG_03& arg_03,
84469 const t_ARG_04& arg_04,
84470 const t_ARG_05& arg_05,
84471 const t_ARG_06& arg_06)
84472: AllocBase()
84473, d_type(t_INDEX)
84474{
84475 typedef typename bsl::remove_cv<
84477 Alt_Type;
84478
84479 BloombergLP::bslma::ConstructionUtil::construct(
84480 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84481 AllocBase::mechanism(),
84482 arg_01,
84483 arg_02,
84484 arg_03,
84485 arg_04,
84486 arg_05,
84487 arg_06);
84488}
84489#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
84490
84491#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
84492template <class t_HEAD, class t_TAIL_01,
84493 class t_TAIL_02,
84494 class t_TAIL_03,
84495 class t_TAIL_04,
84496 class t_TAIL_05,
84497 class t_TAIL_06,
84498 class t_TAIL_07,
84499 class t_TAIL_08,
84500 class t_TAIL_09,
84501 class t_TAIL_10,
84502 class t_TAIL_11,
84503 class t_TAIL_12,
84504 class t_TAIL_13,
84505 class t_TAIL_14>
84506template <size_t t_INDEX,
84507 class t_ARG_01,
84508 class t_ARG_02,
84509 class t_ARG_03,
84510 class t_ARG_04,
84511 class t_ARG_05,
84512 class t_ARG_06>
84513inline
84514Variant_Base<t_HEAD, t_TAIL_01,
84515 t_TAIL_02,
84516 t_TAIL_03,
84517 t_TAIL_04,
84518 t_TAIL_05,
84519 t_TAIL_06,
84520 t_TAIL_07,
84521 t_TAIL_08,
84522 t_TAIL_09,
84523 t_TAIL_10,
84524 t_TAIL_11,
84525 t_TAIL_12,
84526 t_TAIL_13,
84527 t_TAIL_14,
84528 BSLS_COMPILERFEATURES_FILLT( 4)
84529 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84530 const t_ARG_01& arg_01,
84531 const t_ARG_02& arg_02,
84532 const t_ARG_03& arg_03,
84533 const t_ARG_04& arg_04,
84534 const t_ARG_05& arg_05,
84535 const t_ARG_06& arg_06)
84536: AllocBase()
84537, d_type(t_INDEX)
84538{
84539 typedef typename bsl::remove_cv<
84541 Alt_Type;
84542
84543 BloombergLP::bslma::ConstructionUtil::construct(
84544 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84545 AllocBase::mechanism(),
84546 arg_01,
84547 arg_02,
84548 arg_03,
84549 arg_04,
84550 arg_05,
84551 arg_06);
84552}
84553#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
84554
84555#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
84556template <class t_HEAD, class t_TAIL_01,
84557 class t_TAIL_02,
84558 class t_TAIL_03,
84559 class t_TAIL_04,
84560 class t_TAIL_05,
84561 class t_TAIL_06,
84562 class t_TAIL_07,
84563 class t_TAIL_08,
84564 class t_TAIL_09,
84565 class t_TAIL_10,
84566 class t_TAIL_11,
84567 class t_TAIL_12,
84568 class t_TAIL_13,
84569 class t_TAIL_14,
84570 class t_TAIL_15>
84571template <size_t t_INDEX,
84572 class t_ARG_01,
84573 class t_ARG_02,
84574 class t_ARG_03,
84575 class t_ARG_04,
84576 class t_ARG_05,
84577 class t_ARG_06>
84578inline
84579Variant_Base<t_HEAD, t_TAIL_01,
84580 t_TAIL_02,
84581 t_TAIL_03,
84582 t_TAIL_04,
84583 t_TAIL_05,
84584 t_TAIL_06,
84585 t_TAIL_07,
84586 t_TAIL_08,
84587 t_TAIL_09,
84588 t_TAIL_10,
84589 t_TAIL_11,
84590 t_TAIL_12,
84591 t_TAIL_13,
84592 t_TAIL_14,
84593 t_TAIL_15,
84594 BSLS_COMPILERFEATURES_FILLT( 3)
84595 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84596 const t_ARG_01& arg_01,
84597 const t_ARG_02& arg_02,
84598 const t_ARG_03& arg_03,
84599 const t_ARG_04& arg_04,
84600 const t_ARG_05& arg_05,
84601 const t_ARG_06& arg_06)
84602: AllocBase()
84603, d_type(t_INDEX)
84604{
84605 typedef typename bsl::remove_cv<
84607 Alt_Type;
84608
84609 BloombergLP::bslma::ConstructionUtil::construct(
84610 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84611 AllocBase::mechanism(),
84612 arg_01,
84613 arg_02,
84614 arg_03,
84615 arg_04,
84616 arg_05,
84617 arg_06);
84618}
84619#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
84620
84621#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
84622template <class t_HEAD, class t_TAIL_01,
84623 class t_TAIL_02,
84624 class t_TAIL_03,
84625 class t_TAIL_04,
84626 class t_TAIL_05,
84627 class t_TAIL_06,
84628 class t_TAIL_07,
84629 class t_TAIL_08,
84630 class t_TAIL_09,
84631 class t_TAIL_10,
84632 class t_TAIL_11,
84633 class t_TAIL_12,
84634 class t_TAIL_13,
84635 class t_TAIL_14,
84636 class t_TAIL_15,
84637 class t_TAIL_16>
84638template <size_t t_INDEX,
84639 class t_ARG_01,
84640 class t_ARG_02,
84641 class t_ARG_03,
84642 class t_ARG_04,
84643 class t_ARG_05,
84644 class t_ARG_06>
84645inline
84646Variant_Base<t_HEAD, t_TAIL_01,
84647 t_TAIL_02,
84648 t_TAIL_03,
84649 t_TAIL_04,
84650 t_TAIL_05,
84651 t_TAIL_06,
84652 t_TAIL_07,
84653 t_TAIL_08,
84654 t_TAIL_09,
84655 t_TAIL_10,
84656 t_TAIL_11,
84657 t_TAIL_12,
84658 t_TAIL_13,
84659 t_TAIL_14,
84660 t_TAIL_15,
84661 t_TAIL_16,
84662 BSLS_COMPILERFEATURES_FILLT( 2)
84663 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84664 const t_ARG_01& arg_01,
84665 const t_ARG_02& arg_02,
84666 const t_ARG_03& arg_03,
84667 const t_ARG_04& arg_04,
84668 const t_ARG_05& arg_05,
84669 const t_ARG_06& arg_06)
84670: AllocBase()
84671, d_type(t_INDEX)
84672{
84673 typedef typename bsl::remove_cv<
84675 Alt_Type;
84676
84677 BloombergLP::bslma::ConstructionUtil::construct(
84678 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84679 AllocBase::mechanism(),
84680 arg_01,
84681 arg_02,
84682 arg_03,
84683 arg_04,
84684 arg_05,
84685 arg_06);
84686}
84687#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
84688
84689#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
84690template <class t_HEAD, class t_TAIL_01,
84691 class t_TAIL_02,
84692 class t_TAIL_03,
84693 class t_TAIL_04,
84694 class t_TAIL_05,
84695 class t_TAIL_06,
84696 class t_TAIL_07,
84697 class t_TAIL_08,
84698 class t_TAIL_09,
84699 class t_TAIL_10,
84700 class t_TAIL_11,
84701 class t_TAIL_12,
84702 class t_TAIL_13,
84703 class t_TAIL_14,
84704 class t_TAIL_15,
84705 class t_TAIL_16,
84706 class t_TAIL_17>
84707template <size_t t_INDEX,
84708 class t_ARG_01,
84709 class t_ARG_02,
84710 class t_ARG_03,
84711 class t_ARG_04,
84712 class t_ARG_05,
84713 class t_ARG_06>
84714inline
84715Variant_Base<t_HEAD, t_TAIL_01,
84716 t_TAIL_02,
84717 t_TAIL_03,
84718 t_TAIL_04,
84719 t_TAIL_05,
84720 t_TAIL_06,
84721 t_TAIL_07,
84722 t_TAIL_08,
84723 t_TAIL_09,
84724 t_TAIL_10,
84725 t_TAIL_11,
84726 t_TAIL_12,
84727 t_TAIL_13,
84728 t_TAIL_14,
84729 t_TAIL_15,
84730 t_TAIL_16,
84731 t_TAIL_17,
84732 BSLS_COMPILERFEATURES_FILLT( 1)
84733 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84734 const t_ARG_01& arg_01,
84735 const t_ARG_02& arg_02,
84736 const t_ARG_03& arg_03,
84737 const t_ARG_04& arg_04,
84738 const t_ARG_05& arg_05,
84739 const t_ARG_06& arg_06)
84740: AllocBase()
84741, d_type(t_INDEX)
84742{
84743 typedef typename bsl::remove_cv<
84745 Alt_Type;
84746
84747 BloombergLP::bslma::ConstructionUtil::construct(
84748 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84749 AllocBase::mechanism(),
84750 arg_01,
84751 arg_02,
84752 arg_03,
84753 arg_04,
84754 arg_05,
84755 arg_06);
84756}
84757#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
84758
84759#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
84760template <class t_HEAD, class t_TAIL_01,
84761 class t_TAIL_02,
84762 class t_TAIL_03,
84763 class t_TAIL_04,
84764 class t_TAIL_05,
84765 class t_TAIL_06,
84766 class t_TAIL_07,
84767 class t_TAIL_08,
84768 class t_TAIL_09,
84769 class t_TAIL_10,
84770 class t_TAIL_11,
84771 class t_TAIL_12,
84772 class t_TAIL_13,
84773 class t_TAIL_14,
84774 class t_TAIL_15,
84775 class t_TAIL_16,
84776 class t_TAIL_17,
84777 class t_TAIL_18>
84778template <size_t t_INDEX,
84779 class t_ARG_01,
84780 class t_ARG_02,
84781 class t_ARG_03,
84782 class t_ARG_04,
84783 class t_ARG_05,
84784 class t_ARG_06>
84785inline
84786Variant_Base<t_HEAD, t_TAIL_01,
84787 t_TAIL_02,
84788 t_TAIL_03,
84789 t_TAIL_04,
84790 t_TAIL_05,
84791 t_TAIL_06,
84792 t_TAIL_07,
84793 t_TAIL_08,
84794 t_TAIL_09,
84795 t_TAIL_10,
84796 t_TAIL_11,
84797 t_TAIL_12,
84798 t_TAIL_13,
84799 t_TAIL_14,
84800 t_TAIL_15,
84801 t_TAIL_16,
84802 t_TAIL_17,
84803 t_TAIL_18,
84804 BSLS_COMPILERFEATURES_FILLT( 0)
84805 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84806 const t_ARG_01& arg_01,
84807 const t_ARG_02& arg_02,
84808 const t_ARG_03& arg_03,
84809 const t_ARG_04& arg_04,
84810 const t_ARG_05& arg_05,
84811 const t_ARG_06& arg_06)
84812: AllocBase()
84813, d_type(t_INDEX)
84814{
84815 typedef typename bsl::remove_cv<
84817 Alt_Type;
84818
84819 BloombergLP::bslma::ConstructionUtil::construct(
84820 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84821 AllocBase::mechanism(),
84822 arg_01,
84823 arg_02,
84824 arg_03,
84825 arg_04,
84826 arg_05,
84827 arg_06);
84828}
84829#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
84830
84831
84832#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
84833template <class t_HEAD>
84834template <size_t t_INDEX,
84835 class t_ARG_01,
84836 class t_ARG_02,
84837 class t_ARG_03,
84838 class t_ARG_04,
84839 class t_ARG_05,
84840 class t_ARG_06,
84841 class t_ARG_07>
84842inline
84843Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
84844 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84845 const t_ARG_01& arg_01,
84846 const t_ARG_02& arg_02,
84847 const t_ARG_03& arg_03,
84848 const t_ARG_04& arg_04,
84849 const t_ARG_05& arg_05,
84850 const t_ARG_06& arg_06,
84851 const t_ARG_07& arg_07)
84852: AllocBase()
84853, d_type(t_INDEX)
84854{
84855 typedef typename bsl::remove_cv<
84857 Alt_Type;
84858
84859 BloombergLP::bslma::ConstructionUtil::construct(
84860 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84861 AllocBase::mechanism(),
84862 arg_01,
84863 arg_02,
84864 arg_03,
84865 arg_04,
84866 arg_05,
84867 arg_06,
84868 arg_07);
84869}
84870#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
84871
84872#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
84873template <class t_HEAD, class t_TAIL_01>
84874template <size_t t_INDEX,
84875 class t_ARG_01,
84876 class t_ARG_02,
84877 class t_ARG_03,
84878 class t_ARG_04,
84879 class t_ARG_05,
84880 class t_ARG_06,
84881 class t_ARG_07>
84882inline
84883Variant_Base<t_HEAD, t_TAIL_01,
84884 BSLS_COMPILERFEATURES_FILLT(17)
84885 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84886 const t_ARG_01& arg_01,
84887 const t_ARG_02& arg_02,
84888 const t_ARG_03& arg_03,
84889 const t_ARG_04& arg_04,
84890 const t_ARG_05& arg_05,
84891 const t_ARG_06& arg_06,
84892 const t_ARG_07& arg_07)
84893: AllocBase()
84894, d_type(t_INDEX)
84895{
84896 typedef typename bsl::remove_cv<
84898 Alt_Type;
84899
84900 BloombergLP::bslma::ConstructionUtil::construct(
84901 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84902 AllocBase::mechanism(),
84903 arg_01,
84904 arg_02,
84905 arg_03,
84906 arg_04,
84907 arg_05,
84908 arg_06,
84909 arg_07);
84910}
84911#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
84912
84913#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
84914template <class t_HEAD, class t_TAIL_01,
84915 class t_TAIL_02>
84916template <size_t t_INDEX,
84917 class t_ARG_01,
84918 class t_ARG_02,
84919 class t_ARG_03,
84920 class t_ARG_04,
84921 class t_ARG_05,
84922 class t_ARG_06,
84923 class t_ARG_07>
84924inline
84925Variant_Base<t_HEAD, t_TAIL_01,
84926 t_TAIL_02,
84927 BSLS_COMPILERFEATURES_FILLT(16)
84928 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84929 const t_ARG_01& arg_01,
84930 const t_ARG_02& arg_02,
84931 const t_ARG_03& arg_03,
84932 const t_ARG_04& arg_04,
84933 const t_ARG_05& arg_05,
84934 const t_ARG_06& arg_06,
84935 const t_ARG_07& arg_07)
84936: AllocBase()
84937, d_type(t_INDEX)
84938{
84939 typedef typename bsl::remove_cv<
84941 Alt_Type;
84942
84943 BloombergLP::bslma::ConstructionUtil::construct(
84944 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84945 AllocBase::mechanism(),
84946 arg_01,
84947 arg_02,
84948 arg_03,
84949 arg_04,
84950 arg_05,
84951 arg_06,
84952 arg_07);
84953}
84954#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
84955
84956#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
84957template <class t_HEAD, class t_TAIL_01,
84958 class t_TAIL_02,
84959 class t_TAIL_03>
84960template <size_t t_INDEX,
84961 class t_ARG_01,
84962 class t_ARG_02,
84963 class t_ARG_03,
84964 class t_ARG_04,
84965 class t_ARG_05,
84966 class t_ARG_06,
84967 class t_ARG_07>
84968inline
84969Variant_Base<t_HEAD, t_TAIL_01,
84970 t_TAIL_02,
84971 t_TAIL_03,
84972 BSLS_COMPILERFEATURES_FILLT(15)
84973 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
84974 const t_ARG_01& arg_01,
84975 const t_ARG_02& arg_02,
84976 const t_ARG_03& arg_03,
84977 const t_ARG_04& arg_04,
84978 const t_ARG_05& arg_05,
84979 const t_ARG_06& arg_06,
84980 const t_ARG_07& arg_07)
84981: AllocBase()
84982, d_type(t_INDEX)
84983{
84984 typedef typename bsl::remove_cv<
84986 Alt_Type;
84987
84988 BloombergLP::bslma::ConstructionUtil::construct(
84989 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
84990 AllocBase::mechanism(),
84991 arg_01,
84992 arg_02,
84993 arg_03,
84994 arg_04,
84995 arg_05,
84996 arg_06,
84997 arg_07);
84998}
84999#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
85000
85001#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
85002template <class t_HEAD, class t_TAIL_01,
85003 class t_TAIL_02,
85004 class t_TAIL_03,
85005 class t_TAIL_04>
85006template <size_t t_INDEX,
85007 class t_ARG_01,
85008 class t_ARG_02,
85009 class t_ARG_03,
85010 class t_ARG_04,
85011 class t_ARG_05,
85012 class t_ARG_06,
85013 class t_ARG_07>
85014inline
85015Variant_Base<t_HEAD, t_TAIL_01,
85016 t_TAIL_02,
85017 t_TAIL_03,
85018 t_TAIL_04,
85019 BSLS_COMPILERFEATURES_FILLT(14)
85020 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85021 const t_ARG_01& arg_01,
85022 const t_ARG_02& arg_02,
85023 const t_ARG_03& arg_03,
85024 const t_ARG_04& arg_04,
85025 const t_ARG_05& arg_05,
85026 const t_ARG_06& arg_06,
85027 const t_ARG_07& arg_07)
85028: AllocBase()
85029, d_type(t_INDEX)
85030{
85031 typedef typename bsl::remove_cv<
85033 Alt_Type;
85034
85035 BloombergLP::bslma::ConstructionUtil::construct(
85036 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85037 AllocBase::mechanism(),
85038 arg_01,
85039 arg_02,
85040 arg_03,
85041 arg_04,
85042 arg_05,
85043 arg_06,
85044 arg_07);
85045}
85046#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
85047
85048#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
85049template <class t_HEAD, class t_TAIL_01,
85050 class t_TAIL_02,
85051 class t_TAIL_03,
85052 class t_TAIL_04,
85053 class t_TAIL_05>
85054template <size_t t_INDEX,
85055 class t_ARG_01,
85056 class t_ARG_02,
85057 class t_ARG_03,
85058 class t_ARG_04,
85059 class t_ARG_05,
85060 class t_ARG_06,
85061 class t_ARG_07>
85062inline
85063Variant_Base<t_HEAD, t_TAIL_01,
85064 t_TAIL_02,
85065 t_TAIL_03,
85066 t_TAIL_04,
85067 t_TAIL_05,
85068 BSLS_COMPILERFEATURES_FILLT(13)
85069 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85070 const t_ARG_01& arg_01,
85071 const t_ARG_02& arg_02,
85072 const t_ARG_03& arg_03,
85073 const t_ARG_04& arg_04,
85074 const t_ARG_05& arg_05,
85075 const t_ARG_06& arg_06,
85076 const t_ARG_07& arg_07)
85077: AllocBase()
85078, d_type(t_INDEX)
85079{
85080 typedef typename bsl::remove_cv<
85082 Alt_Type;
85083
85084 BloombergLP::bslma::ConstructionUtil::construct(
85085 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85086 AllocBase::mechanism(),
85087 arg_01,
85088 arg_02,
85089 arg_03,
85090 arg_04,
85091 arg_05,
85092 arg_06,
85093 arg_07);
85094}
85095#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
85096
85097#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
85098template <class t_HEAD, class t_TAIL_01,
85099 class t_TAIL_02,
85100 class t_TAIL_03,
85101 class t_TAIL_04,
85102 class t_TAIL_05,
85103 class t_TAIL_06>
85104template <size_t t_INDEX,
85105 class t_ARG_01,
85106 class t_ARG_02,
85107 class t_ARG_03,
85108 class t_ARG_04,
85109 class t_ARG_05,
85110 class t_ARG_06,
85111 class t_ARG_07>
85112inline
85113Variant_Base<t_HEAD, t_TAIL_01,
85114 t_TAIL_02,
85115 t_TAIL_03,
85116 t_TAIL_04,
85117 t_TAIL_05,
85118 t_TAIL_06,
85119 BSLS_COMPILERFEATURES_FILLT(12)
85120 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85121 const t_ARG_01& arg_01,
85122 const t_ARG_02& arg_02,
85123 const t_ARG_03& arg_03,
85124 const t_ARG_04& arg_04,
85125 const t_ARG_05& arg_05,
85126 const t_ARG_06& arg_06,
85127 const t_ARG_07& arg_07)
85128: AllocBase()
85129, d_type(t_INDEX)
85130{
85131 typedef typename bsl::remove_cv<
85133 Alt_Type;
85134
85135 BloombergLP::bslma::ConstructionUtil::construct(
85136 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85137 AllocBase::mechanism(),
85138 arg_01,
85139 arg_02,
85140 arg_03,
85141 arg_04,
85142 arg_05,
85143 arg_06,
85144 arg_07);
85145}
85146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
85147
85148#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
85149template <class t_HEAD, class t_TAIL_01,
85150 class t_TAIL_02,
85151 class t_TAIL_03,
85152 class t_TAIL_04,
85153 class t_TAIL_05,
85154 class t_TAIL_06,
85155 class t_TAIL_07>
85156template <size_t t_INDEX,
85157 class t_ARG_01,
85158 class t_ARG_02,
85159 class t_ARG_03,
85160 class t_ARG_04,
85161 class t_ARG_05,
85162 class t_ARG_06,
85163 class t_ARG_07>
85164inline
85165Variant_Base<t_HEAD, t_TAIL_01,
85166 t_TAIL_02,
85167 t_TAIL_03,
85168 t_TAIL_04,
85169 t_TAIL_05,
85170 t_TAIL_06,
85171 t_TAIL_07,
85172 BSLS_COMPILERFEATURES_FILLT(11)
85173 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85174 const t_ARG_01& arg_01,
85175 const t_ARG_02& arg_02,
85176 const t_ARG_03& arg_03,
85177 const t_ARG_04& arg_04,
85178 const t_ARG_05& arg_05,
85179 const t_ARG_06& arg_06,
85180 const t_ARG_07& arg_07)
85181: AllocBase()
85182, d_type(t_INDEX)
85183{
85184 typedef typename bsl::remove_cv<
85186 Alt_Type;
85187
85188 BloombergLP::bslma::ConstructionUtil::construct(
85189 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85190 AllocBase::mechanism(),
85191 arg_01,
85192 arg_02,
85193 arg_03,
85194 arg_04,
85195 arg_05,
85196 arg_06,
85197 arg_07);
85198}
85199#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
85200
85201#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
85202template <class t_HEAD, class t_TAIL_01,
85203 class t_TAIL_02,
85204 class t_TAIL_03,
85205 class t_TAIL_04,
85206 class t_TAIL_05,
85207 class t_TAIL_06,
85208 class t_TAIL_07,
85209 class t_TAIL_08>
85210template <size_t t_INDEX,
85211 class t_ARG_01,
85212 class t_ARG_02,
85213 class t_ARG_03,
85214 class t_ARG_04,
85215 class t_ARG_05,
85216 class t_ARG_06,
85217 class t_ARG_07>
85218inline
85219Variant_Base<t_HEAD, t_TAIL_01,
85220 t_TAIL_02,
85221 t_TAIL_03,
85222 t_TAIL_04,
85223 t_TAIL_05,
85224 t_TAIL_06,
85225 t_TAIL_07,
85226 t_TAIL_08,
85227 BSLS_COMPILERFEATURES_FILLT(10)
85228 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85229 const t_ARG_01& arg_01,
85230 const t_ARG_02& arg_02,
85231 const t_ARG_03& arg_03,
85232 const t_ARG_04& arg_04,
85233 const t_ARG_05& arg_05,
85234 const t_ARG_06& arg_06,
85235 const t_ARG_07& arg_07)
85236: AllocBase()
85237, d_type(t_INDEX)
85238{
85239 typedef typename bsl::remove_cv<
85241 Alt_Type;
85242
85243 BloombergLP::bslma::ConstructionUtil::construct(
85244 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85245 AllocBase::mechanism(),
85246 arg_01,
85247 arg_02,
85248 arg_03,
85249 arg_04,
85250 arg_05,
85251 arg_06,
85252 arg_07);
85253}
85254#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
85255
85256#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
85257template <class t_HEAD, class t_TAIL_01,
85258 class t_TAIL_02,
85259 class t_TAIL_03,
85260 class t_TAIL_04,
85261 class t_TAIL_05,
85262 class t_TAIL_06,
85263 class t_TAIL_07,
85264 class t_TAIL_08,
85265 class t_TAIL_09>
85266template <size_t t_INDEX,
85267 class t_ARG_01,
85268 class t_ARG_02,
85269 class t_ARG_03,
85270 class t_ARG_04,
85271 class t_ARG_05,
85272 class t_ARG_06,
85273 class t_ARG_07>
85274inline
85275Variant_Base<t_HEAD, t_TAIL_01,
85276 t_TAIL_02,
85277 t_TAIL_03,
85278 t_TAIL_04,
85279 t_TAIL_05,
85280 t_TAIL_06,
85281 t_TAIL_07,
85282 t_TAIL_08,
85283 t_TAIL_09,
85284 BSLS_COMPILERFEATURES_FILLT( 9)
85285 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85286 const t_ARG_01& arg_01,
85287 const t_ARG_02& arg_02,
85288 const t_ARG_03& arg_03,
85289 const t_ARG_04& arg_04,
85290 const t_ARG_05& arg_05,
85291 const t_ARG_06& arg_06,
85292 const t_ARG_07& arg_07)
85293: AllocBase()
85294, d_type(t_INDEX)
85295{
85296 typedef typename bsl::remove_cv<
85298 Alt_Type;
85299
85300 BloombergLP::bslma::ConstructionUtil::construct(
85301 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85302 AllocBase::mechanism(),
85303 arg_01,
85304 arg_02,
85305 arg_03,
85306 arg_04,
85307 arg_05,
85308 arg_06,
85309 arg_07);
85310}
85311#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
85312
85313#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
85314template <class t_HEAD, class t_TAIL_01,
85315 class t_TAIL_02,
85316 class t_TAIL_03,
85317 class t_TAIL_04,
85318 class t_TAIL_05,
85319 class t_TAIL_06,
85320 class t_TAIL_07,
85321 class t_TAIL_08,
85322 class t_TAIL_09,
85323 class t_TAIL_10>
85324template <size_t t_INDEX,
85325 class t_ARG_01,
85326 class t_ARG_02,
85327 class t_ARG_03,
85328 class t_ARG_04,
85329 class t_ARG_05,
85330 class t_ARG_06,
85331 class t_ARG_07>
85332inline
85333Variant_Base<t_HEAD, t_TAIL_01,
85334 t_TAIL_02,
85335 t_TAIL_03,
85336 t_TAIL_04,
85337 t_TAIL_05,
85338 t_TAIL_06,
85339 t_TAIL_07,
85340 t_TAIL_08,
85341 t_TAIL_09,
85342 t_TAIL_10,
85343 BSLS_COMPILERFEATURES_FILLT( 8)
85344 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85345 const t_ARG_01& arg_01,
85346 const t_ARG_02& arg_02,
85347 const t_ARG_03& arg_03,
85348 const t_ARG_04& arg_04,
85349 const t_ARG_05& arg_05,
85350 const t_ARG_06& arg_06,
85351 const t_ARG_07& arg_07)
85352: AllocBase()
85353, d_type(t_INDEX)
85354{
85355 typedef typename bsl::remove_cv<
85357 Alt_Type;
85358
85359 BloombergLP::bslma::ConstructionUtil::construct(
85360 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85361 AllocBase::mechanism(),
85362 arg_01,
85363 arg_02,
85364 arg_03,
85365 arg_04,
85366 arg_05,
85367 arg_06,
85368 arg_07);
85369}
85370#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
85371
85372#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
85373template <class t_HEAD, class t_TAIL_01,
85374 class t_TAIL_02,
85375 class t_TAIL_03,
85376 class t_TAIL_04,
85377 class t_TAIL_05,
85378 class t_TAIL_06,
85379 class t_TAIL_07,
85380 class t_TAIL_08,
85381 class t_TAIL_09,
85382 class t_TAIL_10,
85383 class t_TAIL_11>
85384template <size_t t_INDEX,
85385 class t_ARG_01,
85386 class t_ARG_02,
85387 class t_ARG_03,
85388 class t_ARG_04,
85389 class t_ARG_05,
85390 class t_ARG_06,
85391 class t_ARG_07>
85392inline
85393Variant_Base<t_HEAD, t_TAIL_01,
85394 t_TAIL_02,
85395 t_TAIL_03,
85396 t_TAIL_04,
85397 t_TAIL_05,
85398 t_TAIL_06,
85399 t_TAIL_07,
85400 t_TAIL_08,
85401 t_TAIL_09,
85402 t_TAIL_10,
85403 t_TAIL_11,
85404 BSLS_COMPILERFEATURES_FILLT( 7)
85405 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85406 const t_ARG_01& arg_01,
85407 const t_ARG_02& arg_02,
85408 const t_ARG_03& arg_03,
85409 const t_ARG_04& arg_04,
85410 const t_ARG_05& arg_05,
85411 const t_ARG_06& arg_06,
85412 const t_ARG_07& arg_07)
85413: AllocBase()
85414, d_type(t_INDEX)
85415{
85416 typedef typename bsl::remove_cv<
85418 Alt_Type;
85419
85420 BloombergLP::bslma::ConstructionUtil::construct(
85421 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85422 AllocBase::mechanism(),
85423 arg_01,
85424 arg_02,
85425 arg_03,
85426 arg_04,
85427 arg_05,
85428 arg_06,
85429 arg_07);
85430}
85431#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
85432
85433#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
85434template <class t_HEAD, class t_TAIL_01,
85435 class t_TAIL_02,
85436 class t_TAIL_03,
85437 class t_TAIL_04,
85438 class t_TAIL_05,
85439 class t_TAIL_06,
85440 class t_TAIL_07,
85441 class t_TAIL_08,
85442 class t_TAIL_09,
85443 class t_TAIL_10,
85444 class t_TAIL_11,
85445 class t_TAIL_12>
85446template <size_t t_INDEX,
85447 class t_ARG_01,
85448 class t_ARG_02,
85449 class t_ARG_03,
85450 class t_ARG_04,
85451 class t_ARG_05,
85452 class t_ARG_06,
85453 class t_ARG_07>
85454inline
85455Variant_Base<t_HEAD, t_TAIL_01,
85456 t_TAIL_02,
85457 t_TAIL_03,
85458 t_TAIL_04,
85459 t_TAIL_05,
85460 t_TAIL_06,
85461 t_TAIL_07,
85462 t_TAIL_08,
85463 t_TAIL_09,
85464 t_TAIL_10,
85465 t_TAIL_11,
85466 t_TAIL_12,
85467 BSLS_COMPILERFEATURES_FILLT( 6)
85468 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85469 const t_ARG_01& arg_01,
85470 const t_ARG_02& arg_02,
85471 const t_ARG_03& arg_03,
85472 const t_ARG_04& arg_04,
85473 const t_ARG_05& arg_05,
85474 const t_ARG_06& arg_06,
85475 const t_ARG_07& arg_07)
85476: AllocBase()
85477, d_type(t_INDEX)
85478{
85479 typedef typename bsl::remove_cv<
85481 Alt_Type;
85482
85483 BloombergLP::bslma::ConstructionUtil::construct(
85484 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85485 AllocBase::mechanism(),
85486 arg_01,
85487 arg_02,
85488 arg_03,
85489 arg_04,
85490 arg_05,
85491 arg_06,
85492 arg_07);
85493}
85494#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
85495
85496#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
85497template <class t_HEAD, class t_TAIL_01,
85498 class t_TAIL_02,
85499 class t_TAIL_03,
85500 class t_TAIL_04,
85501 class t_TAIL_05,
85502 class t_TAIL_06,
85503 class t_TAIL_07,
85504 class t_TAIL_08,
85505 class t_TAIL_09,
85506 class t_TAIL_10,
85507 class t_TAIL_11,
85508 class t_TAIL_12,
85509 class t_TAIL_13>
85510template <size_t t_INDEX,
85511 class t_ARG_01,
85512 class t_ARG_02,
85513 class t_ARG_03,
85514 class t_ARG_04,
85515 class t_ARG_05,
85516 class t_ARG_06,
85517 class t_ARG_07>
85518inline
85519Variant_Base<t_HEAD, t_TAIL_01,
85520 t_TAIL_02,
85521 t_TAIL_03,
85522 t_TAIL_04,
85523 t_TAIL_05,
85524 t_TAIL_06,
85525 t_TAIL_07,
85526 t_TAIL_08,
85527 t_TAIL_09,
85528 t_TAIL_10,
85529 t_TAIL_11,
85530 t_TAIL_12,
85531 t_TAIL_13,
85532 BSLS_COMPILERFEATURES_FILLT( 5)
85533 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85534 const t_ARG_01& arg_01,
85535 const t_ARG_02& arg_02,
85536 const t_ARG_03& arg_03,
85537 const t_ARG_04& arg_04,
85538 const t_ARG_05& arg_05,
85539 const t_ARG_06& arg_06,
85540 const t_ARG_07& arg_07)
85541: AllocBase()
85542, d_type(t_INDEX)
85543{
85544 typedef typename bsl::remove_cv<
85546 Alt_Type;
85547
85548 BloombergLP::bslma::ConstructionUtil::construct(
85549 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85550 AllocBase::mechanism(),
85551 arg_01,
85552 arg_02,
85553 arg_03,
85554 arg_04,
85555 arg_05,
85556 arg_06,
85557 arg_07);
85558}
85559#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
85560
85561#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
85562template <class t_HEAD, class t_TAIL_01,
85563 class t_TAIL_02,
85564 class t_TAIL_03,
85565 class t_TAIL_04,
85566 class t_TAIL_05,
85567 class t_TAIL_06,
85568 class t_TAIL_07,
85569 class t_TAIL_08,
85570 class t_TAIL_09,
85571 class t_TAIL_10,
85572 class t_TAIL_11,
85573 class t_TAIL_12,
85574 class t_TAIL_13,
85575 class t_TAIL_14>
85576template <size_t t_INDEX,
85577 class t_ARG_01,
85578 class t_ARG_02,
85579 class t_ARG_03,
85580 class t_ARG_04,
85581 class t_ARG_05,
85582 class t_ARG_06,
85583 class t_ARG_07>
85584inline
85585Variant_Base<t_HEAD, t_TAIL_01,
85586 t_TAIL_02,
85587 t_TAIL_03,
85588 t_TAIL_04,
85589 t_TAIL_05,
85590 t_TAIL_06,
85591 t_TAIL_07,
85592 t_TAIL_08,
85593 t_TAIL_09,
85594 t_TAIL_10,
85595 t_TAIL_11,
85596 t_TAIL_12,
85597 t_TAIL_13,
85598 t_TAIL_14,
85599 BSLS_COMPILERFEATURES_FILLT( 4)
85600 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85601 const t_ARG_01& arg_01,
85602 const t_ARG_02& arg_02,
85603 const t_ARG_03& arg_03,
85604 const t_ARG_04& arg_04,
85605 const t_ARG_05& arg_05,
85606 const t_ARG_06& arg_06,
85607 const t_ARG_07& arg_07)
85608: AllocBase()
85609, d_type(t_INDEX)
85610{
85611 typedef typename bsl::remove_cv<
85613 Alt_Type;
85614
85615 BloombergLP::bslma::ConstructionUtil::construct(
85616 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85617 AllocBase::mechanism(),
85618 arg_01,
85619 arg_02,
85620 arg_03,
85621 arg_04,
85622 arg_05,
85623 arg_06,
85624 arg_07);
85625}
85626#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
85627
85628#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
85629template <class t_HEAD, class t_TAIL_01,
85630 class t_TAIL_02,
85631 class t_TAIL_03,
85632 class t_TAIL_04,
85633 class t_TAIL_05,
85634 class t_TAIL_06,
85635 class t_TAIL_07,
85636 class t_TAIL_08,
85637 class t_TAIL_09,
85638 class t_TAIL_10,
85639 class t_TAIL_11,
85640 class t_TAIL_12,
85641 class t_TAIL_13,
85642 class t_TAIL_14,
85643 class t_TAIL_15>
85644template <size_t t_INDEX,
85645 class t_ARG_01,
85646 class t_ARG_02,
85647 class t_ARG_03,
85648 class t_ARG_04,
85649 class t_ARG_05,
85650 class t_ARG_06,
85651 class t_ARG_07>
85652inline
85653Variant_Base<t_HEAD, t_TAIL_01,
85654 t_TAIL_02,
85655 t_TAIL_03,
85656 t_TAIL_04,
85657 t_TAIL_05,
85658 t_TAIL_06,
85659 t_TAIL_07,
85660 t_TAIL_08,
85661 t_TAIL_09,
85662 t_TAIL_10,
85663 t_TAIL_11,
85664 t_TAIL_12,
85665 t_TAIL_13,
85666 t_TAIL_14,
85667 t_TAIL_15,
85668 BSLS_COMPILERFEATURES_FILLT( 3)
85669 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85670 const t_ARG_01& arg_01,
85671 const t_ARG_02& arg_02,
85672 const t_ARG_03& arg_03,
85673 const t_ARG_04& arg_04,
85674 const t_ARG_05& arg_05,
85675 const t_ARG_06& arg_06,
85676 const t_ARG_07& arg_07)
85677: AllocBase()
85678, d_type(t_INDEX)
85679{
85680 typedef typename bsl::remove_cv<
85682 Alt_Type;
85683
85684 BloombergLP::bslma::ConstructionUtil::construct(
85685 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85686 AllocBase::mechanism(),
85687 arg_01,
85688 arg_02,
85689 arg_03,
85690 arg_04,
85691 arg_05,
85692 arg_06,
85693 arg_07);
85694}
85695#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
85696
85697#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
85698template <class t_HEAD, class t_TAIL_01,
85699 class t_TAIL_02,
85700 class t_TAIL_03,
85701 class t_TAIL_04,
85702 class t_TAIL_05,
85703 class t_TAIL_06,
85704 class t_TAIL_07,
85705 class t_TAIL_08,
85706 class t_TAIL_09,
85707 class t_TAIL_10,
85708 class t_TAIL_11,
85709 class t_TAIL_12,
85710 class t_TAIL_13,
85711 class t_TAIL_14,
85712 class t_TAIL_15,
85713 class t_TAIL_16>
85714template <size_t t_INDEX,
85715 class t_ARG_01,
85716 class t_ARG_02,
85717 class t_ARG_03,
85718 class t_ARG_04,
85719 class t_ARG_05,
85720 class t_ARG_06,
85721 class t_ARG_07>
85722inline
85723Variant_Base<t_HEAD, t_TAIL_01,
85724 t_TAIL_02,
85725 t_TAIL_03,
85726 t_TAIL_04,
85727 t_TAIL_05,
85728 t_TAIL_06,
85729 t_TAIL_07,
85730 t_TAIL_08,
85731 t_TAIL_09,
85732 t_TAIL_10,
85733 t_TAIL_11,
85734 t_TAIL_12,
85735 t_TAIL_13,
85736 t_TAIL_14,
85737 t_TAIL_15,
85738 t_TAIL_16,
85739 BSLS_COMPILERFEATURES_FILLT( 2)
85740 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85741 const t_ARG_01& arg_01,
85742 const t_ARG_02& arg_02,
85743 const t_ARG_03& arg_03,
85744 const t_ARG_04& arg_04,
85745 const t_ARG_05& arg_05,
85746 const t_ARG_06& arg_06,
85747 const t_ARG_07& arg_07)
85748: AllocBase()
85749, d_type(t_INDEX)
85750{
85751 typedef typename bsl::remove_cv<
85753 Alt_Type;
85754
85755 BloombergLP::bslma::ConstructionUtil::construct(
85756 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85757 AllocBase::mechanism(),
85758 arg_01,
85759 arg_02,
85760 arg_03,
85761 arg_04,
85762 arg_05,
85763 arg_06,
85764 arg_07);
85765}
85766#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
85767
85768#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
85769template <class t_HEAD, class t_TAIL_01,
85770 class t_TAIL_02,
85771 class t_TAIL_03,
85772 class t_TAIL_04,
85773 class t_TAIL_05,
85774 class t_TAIL_06,
85775 class t_TAIL_07,
85776 class t_TAIL_08,
85777 class t_TAIL_09,
85778 class t_TAIL_10,
85779 class t_TAIL_11,
85780 class t_TAIL_12,
85781 class t_TAIL_13,
85782 class t_TAIL_14,
85783 class t_TAIL_15,
85784 class t_TAIL_16,
85785 class t_TAIL_17>
85786template <size_t t_INDEX,
85787 class t_ARG_01,
85788 class t_ARG_02,
85789 class t_ARG_03,
85790 class t_ARG_04,
85791 class t_ARG_05,
85792 class t_ARG_06,
85793 class t_ARG_07>
85794inline
85795Variant_Base<t_HEAD, t_TAIL_01,
85796 t_TAIL_02,
85797 t_TAIL_03,
85798 t_TAIL_04,
85799 t_TAIL_05,
85800 t_TAIL_06,
85801 t_TAIL_07,
85802 t_TAIL_08,
85803 t_TAIL_09,
85804 t_TAIL_10,
85805 t_TAIL_11,
85806 t_TAIL_12,
85807 t_TAIL_13,
85808 t_TAIL_14,
85809 t_TAIL_15,
85810 t_TAIL_16,
85811 t_TAIL_17,
85812 BSLS_COMPILERFEATURES_FILLT( 1)
85813 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85814 const t_ARG_01& arg_01,
85815 const t_ARG_02& arg_02,
85816 const t_ARG_03& arg_03,
85817 const t_ARG_04& arg_04,
85818 const t_ARG_05& arg_05,
85819 const t_ARG_06& arg_06,
85820 const t_ARG_07& arg_07)
85821: AllocBase()
85822, d_type(t_INDEX)
85823{
85824 typedef typename bsl::remove_cv<
85826 Alt_Type;
85827
85828 BloombergLP::bslma::ConstructionUtil::construct(
85829 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85830 AllocBase::mechanism(),
85831 arg_01,
85832 arg_02,
85833 arg_03,
85834 arg_04,
85835 arg_05,
85836 arg_06,
85837 arg_07);
85838}
85839#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
85840
85841#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
85842template <class t_HEAD, class t_TAIL_01,
85843 class t_TAIL_02,
85844 class t_TAIL_03,
85845 class t_TAIL_04,
85846 class t_TAIL_05,
85847 class t_TAIL_06,
85848 class t_TAIL_07,
85849 class t_TAIL_08,
85850 class t_TAIL_09,
85851 class t_TAIL_10,
85852 class t_TAIL_11,
85853 class t_TAIL_12,
85854 class t_TAIL_13,
85855 class t_TAIL_14,
85856 class t_TAIL_15,
85857 class t_TAIL_16,
85858 class t_TAIL_17,
85859 class t_TAIL_18>
85860template <size_t t_INDEX,
85861 class t_ARG_01,
85862 class t_ARG_02,
85863 class t_ARG_03,
85864 class t_ARG_04,
85865 class t_ARG_05,
85866 class t_ARG_06,
85867 class t_ARG_07>
85868inline
85869Variant_Base<t_HEAD, t_TAIL_01,
85870 t_TAIL_02,
85871 t_TAIL_03,
85872 t_TAIL_04,
85873 t_TAIL_05,
85874 t_TAIL_06,
85875 t_TAIL_07,
85876 t_TAIL_08,
85877 t_TAIL_09,
85878 t_TAIL_10,
85879 t_TAIL_11,
85880 t_TAIL_12,
85881 t_TAIL_13,
85882 t_TAIL_14,
85883 t_TAIL_15,
85884 t_TAIL_16,
85885 t_TAIL_17,
85886 t_TAIL_18,
85887 BSLS_COMPILERFEATURES_FILLT( 0)
85888 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85889 const t_ARG_01& arg_01,
85890 const t_ARG_02& arg_02,
85891 const t_ARG_03& arg_03,
85892 const t_ARG_04& arg_04,
85893 const t_ARG_05& arg_05,
85894 const t_ARG_06& arg_06,
85895 const t_ARG_07& arg_07)
85896: AllocBase()
85897, d_type(t_INDEX)
85898{
85899 typedef typename bsl::remove_cv<
85901 Alt_Type;
85902
85903 BloombergLP::bslma::ConstructionUtil::construct(
85904 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85905 AllocBase::mechanism(),
85906 arg_01,
85907 arg_02,
85908 arg_03,
85909 arg_04,
85910 arg_05,
85911 arg_06,
85912 arg_07);
85913}
85914#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
85915
85916
85917#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
85918template <class t_HEAD>
85919template <size_t t_INDEX,
85920 class t_ARG_01,
85921 class t_ARG_02,
85922 class t_ARG_03,
85923 class t_ARG_04,
85924 class t_ARG_05,
85925 class t_ARG_06,
85926 class t_ARG_07,
85927 class t_ARG_08>
85928inline
85929Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
85930 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85931 const t_ARG_01& arg_01,
85932 const t_ARG_02& arg_02,
85933 const t_ARG_03& arg_03,
85934 const t_ARG_04& arg_04,
85935 const t_ARG_05& arg_05,
85936 const t_ARG_06& arg_06,
85937 const t_ARG_07& arg_07,
85938 const t_ARG_08& arg_08)
85939: AllocBase()
85940, d_type(t_INDEX)
85941{
85942 typedef typename bsl::remove_cv<
85944 Alt_Type;
85945
85946 BloombergLP::bslma::ConstructionUtil::construct(
85947 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85948 AllocBase::mechanism(),
85949 arg_01,
85950 arg_02,
85951 arg_03,
85952 arg_04,
85953 arg_05,
85954 arg_06,
85955 arg_07,
85956 arg_08);
85957}
85958#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
85959
85960#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
85961template <class t_HEAD, class t_TAIL_01>
85962template <size_t t_INDEX,
85963 class t_ARG_01,
85964 class t_ARG_02,
85965 class t_ARG_03,
85966 class t_ARG_04,
85967 class t_ARG_05,
85968 class t_ARG_06,
85969 class t_ARG_07,
85970 class t_ARG_08>
85971inline
85972Variant_Base<t_HEAD, t_TAIL_01,
85973 BSLS_COMPILERFEATURES_FILLT(17)
85974 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
85975 const t_ARG_01& arg_01,
85976 const t_ARG_02& arg_02,
85977 const t_ARG_03& arg_03,
85978 const t_ARG_04& arg_04,
85979 const t_ARG_05& arg_05,
85980 const t_ARG_06& arg_06,
85981 const t_ARG_07& arg_07,
85982 const t_ARG_08& arg_08)
85983: AllocBase()
85984, d_type(t_INDEX)
85985{
85986 typedef typename bsl::remove_cv<
85988 Alt_Type;
85989
85990 BloombergLP::bslma::ConstructionUtil::construct(
85991 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
85992 AllocBase::mechanism(),
85993 arg_01,
85994 arg_02,
85995 arg_03,
85996 arg_04,
85997 arg_05,
85998 arg_06,
85999 arg_07,
86000 arg_08);
86001}
86002#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
86003
86004#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
86005template <class t_HEAD, class t_TAIL_01,
86006 class t_TAIL_02>
86007template <size_t t_INDEX,
86008 class t_ARG_01,
86009 class t_ARG_02,
86010 class t_ARG_03,
86011 class t_ARG_04,
86012 class t_ARG_05,
86013 class t_ARG_06,
86014 class t_ARG_07,
86015 class t_ARG_08>
86016inline
86017Variant_Base<t_HEAD, t_TAIL_01,
86018 t_TAIL_02,
86019 BSLS_COMPILERFEATURES_FILLT(16)
86020 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86021 const t_ARG_01& arg_01,
86022 const t_ARG_02& arg_02,
86023 const t_ARG_03& arg_03,
86024 const t_ARG_04& arg_04,
86025 const t_ARG_05& arg_05,
86026 const t_ARG_06& arg_06,
86027 const t_ARG_07& arg_07,
86028 const t_ARG_08& arg_08)
86029: AllocBase()
86030, d_type(t_INDEX)
86031{
86032 typedef typename bsl::remove_cv<
86034 Alt_Type;
86035
86036 BloombergLP::bslma::ConstructionUtil::construct(
86037 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86038 AllocBase::mechanism(),
86039 arg_01,
86040 arg_02,
86041 arg_03,
86042 arg_04,
86043 arg_05,
86044 arg_06,
86045 arg_07,
86046 arg_08);
86047}
86048#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
86049
86050#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
86051template <class t_HEAD, class t_TAIL_01,
86052 class t_TAIL_02,
86053 class t_TAIL_03>
86054template <size_t t_INDEX,
86055 class t_ARG_01,
86056 class t_ARG_02,
86057 class t_ARG_03,
86058 class t_ARG_04,
86059 class t_ARG_05,
86060 class t_ARG_06,
86061 class t_ARG_07,
86062 class t_ARG_08>
86063inline
86064Variant_Base<t_HEAD, t_TAIL_01,
86065 t_TAIL_02,
86066 t_TAIL_03,
86067 BSLS_COMPILERFEATURES_FILLT(15)
86068 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86069 const t_ARG_01& arg_01,
86070 const t_ARG_02& arg_02,
86071 const t_ARG_03& arg_03,
86072 const t_ARG_04& arg_04,
86073 const t_ARG_05& arg_05,
86074 const t_ARG_06& arg_06,
86075 const t_ARG_07& arg_07,
86076 const t_ARG_08& arg_08)
86077: AllocBase()
86078, d_type(t_INDEX)
86079{
86080 typedef typename bsl::remove_cv<
86082 Alt_Type;
86083
86084 BloombergLP::bslma::ConstructionUtil::construct(
86085 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86086 AllocBase::mechanism(),
86087 arg_01,
86088 arg_02,
86089 arg_03,
86090 arg_04,
86091 arg_05,
86092 arg_06,
86093 arg_07,
86094 arg_08);
86095}
86096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
86097
86098#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
86099template <class t_HEAD, class t_TAIL_01,
86100 class t_TAIL_02,
86101 class t_TAIL_03,
86102 class t_TAIL_04>
86103template <size_t t_INDEX,
86104 class t_ARG_01,
86105 class t_ARG_02,
86106 class t_ARG_03,
86107 class t_ARG_04,
86108 class t_ARG_05,
86109 class t_ARG_06,
86110 class t_ARG_07,
86111 class t_ARG_08>
86112inline
86113Variant_Base<t_HEAD, t_TAIL_01,
86114 t_TAIL_02,
86115 t_TAIL_03,
86116 t_TAIL_04,
86117 BSLS_COMPILERFEATURES_FILLT(14)
86118 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86119 const t_ARG_01& arg_01,
86120 const t_ARG_02& arg_02,
86121 const t_ARG_03& arg_03,
86122 const t_ARG_04& arg_04,
86123 const t_ARG_05& arg_05,
86124 const t_ARG_06& arg_06,
86125 const t_ARG_07& arg_07,
86126 const t_ARG_08& arg_08)
86127: AllocBase()
86128, d_type(t_INDEX)
86129{
86130 typedef typename bsl::remove_cv<
86132 Alt_Type;
86133
86134 BloombergLP::bslma::ConstructionUtil::construct(
86135 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86136 AllocBase::mechanism(),
86137 arg_01,
86138 arg_02,
86139 arg_03,
86140 arg_04,
86141 arg_05,
86142 arg_06,
86143 arg_07,
86144 arg_08);
86145}
86146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
86147
86148#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
86149template <class t_HEAD, class t_TAIL_01,
86150 class t_TAIL_02,
86151 class t_TAIL_03,
86152 class t_TAIL_04,
86153 class t_TAIL_05>
86154template <size_t t_INDEX,
86155 class t_ARG_01,
86156 class t_ARG_02,
86157 class t_ARG_03,
86158 class t_ARG_04,
86159 class t_ARG_05,
86160 class t_ARG_06,
86161 class t_ARG_07,
86162 class t_ARG_08>
86163inline
86164Variant_Base<t_HEAD, t_TAIL_01,
86165 t_TAIL_02,
86166 t_TAIL_03,
86167 t_TAIL_04,
86168 t_TAIL_05,
86169 BSLS_COMPILERFEATURES_FILLT(13)
86170 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86171 const t_ARG_01& arg_01,
86172 const t_ARG_02& arg_02,
86173 const t_ARG_03& arg_03,
86174 const t_ARG_04& arg_04,
86175 const t_ARG_05& arg_05,
86176 const t_ARG_06& arg_06,
86177 const t_ARG_07& arg_07,
86178 const t_ARG_08& arg_08)
86179: AllocBase()
86180, d_type(t_INDEX)
86181{
86182 typedef typename bsl::remove_cv<
86184 Alt_Type;
86185
86186 BloombergLP::bslma::ConstructionUtil::construct(
86187 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86188 AllocBase::mechanism(),
86189 arg_01,
86190 arg_02,
86191 arg_03,
86192 arg_04,
86193 arg_05,
86194 arg_06,
86195 arg_07,
86196 arg_08);
86197}
86198#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
86199
86200#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
86201template <class t_HEAD, class t_TAIL_01,
86202 class t_TAIL_02,
86203 class t_TAIL_03,
86204 class t_TAIL_04,
86205 class t_TAIL_05,
86206 class t_TAIL_06>
86207template <size_t t_INDEX,
86208 class t_ARG_01,
86209 class t_ARG_02,
86210 class t_ARG_03,
86211 class t_ARG_04,
86212 class t_ARG_05,
86213 class t_ARG_06,
86214 class t_ARG_07,
86215 class t_ARG_08>
86216inline
86217Variant_Base<t_HEAD, t_TAIL_01,
86218 t_TAIL_02,
86219 t_TAIL_03,
86220 t_TAIL_04,
86221 t_TAIL_05,
86222 t_TAIL_06,
86223 BSLS_COMPILERFEATURES_FILLT(12)
86224 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86225 const t_ARG_01& arg_01,
86226 const t_ARG_02& arg_02,
86227 const t_ARG_03& arg_03,
86228 const t_ARG_04& arg_04,
86229 const t_ARG_05& arg_05,
86230 const t_ARG_06& arg_06,
86231 const t_ARG_07& arg_07,
86232 const t_ARG_08& arg_08)
86233: AllocBase()
86234, d_type(t_INDEX)
86235{
86236 typedef typename bsl::remove_cv<
86238 Alt_Type;
86239
86240 BloombergLP::bslma::ConstructionUtil::construct(
86241 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86242 AllocBase::mechanism(),
86243 arg_01,
86244 arg_02,
86245 arg_03,
86246 arg_04,
86247 arg_05,
86248 arg_06,
86249 arg_07,
86250 arg_08);
86251}
86252#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
86253
86254#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
86255template <class t_HEAD, class t_TAIL_01,
86256 class t_TAIL_02,
86257 class t_TAIL_03,
86258 class t_TAIL_04,
86259 class t_TAIL_05,
86260 class t_TAIL_06,
86261 class t_TAIL_07>
86262template <size_t t_INDEX,
86263 class t_ARG_01,
86264 class t_ARG_02,
86265 class t_ARG_03,
86266 class t_ARG_04,
86267 class t_ARG_05,
86268 class t_ARG_06,
86269 class t_ARG_07,
86270 class t_ARG_08>
86271inline
86272Variant_Base<t_HEAD, t_TAIL_01,
86273 t_TAIL_02,
86274 t_TAIL_03,
86275 t_TAIL_04,
86276 t_TAIL_05,
86277 t_TAIL_06,
86278 t_TAIL_07,
86279 BSLS_COMPILERFEATURES_FILLT(11)
86280 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86281 const t_ARG_01& arg_01,
86282 const t_ARG_02& arg_02,
86283 const t_ARG_03& arg_03,
86284 const t_ARG_04& arg_04,
86285 const t_ARG_05& arg_05,
86286 const t_ARG_06& arg_06,
86287 const t_ARG_07& arg_07,
86288 const t_ARG_08& arg_08)
86289: AllocBase()
86290, d_type(t_INDEX)
86291{
86292 typedef typename bsl::remove_cv<
86294 Alt_Type;
86295
86296 BloombergLP::bslma::ConstructionUtil::construct(
86297 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86298 AllocBase::mechanism(),
86299 arg_01,
86300 arg_02,
86301 arg_03,
86302 arg_04,
86303 arg_05,
86304 arg_06,
86305 arg_07,
86306 arg_08);
86307}
86308#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
86309
86310#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
86311template <class t_HEAD, class t_TAIL_01,
86312 class t_TAIL_02,
86313 class t_TAIL_03,
86314 class t_TAIL_04,
86315 class t_TAIL_05,
86316 class t_TAIL_06,
86317 class t_TAIL_07,
86318 class t_TAIL_08>
86319template <size_t t_INDEX,
86320 class t_ARG_01,
86321 class t_ARG_02,
86322 class t_ARG_03,
86323 class t_ARG_04,
86324 class t_ARG_05,
86325 class t_ARG_06,
86326 class t_ARG_07,
86327 class t_ARG_08>
86328inline
86329Variant_Base<t_HEAD, t_TAIL_01,
86330 t_TAIL_02,
86331 t_TAIL_03,
86332 t_TAIL_04,
86333 t_TAIL_05,
86334 t_TAIL_06,
86335 t_TAIL_07,
86336 t_TAIL_08,
86337 BSLS_COMPILERFEATURES_FILLT(10)
86338 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86339 const t_ARG_01& arg_01,
86340 const t_ARG_02& arg_02,
86341 const t_ARG_03& arg_03,
86342 const t_ARG_04& arg_04,
86343 const t_ARG_05& arg_05,
86344 const t_ARG_06& arg_06,
86345 const t_ARG_07& arg_07,
86346 const t_ARG_08& arg_08)
86347: AllocBase()
86348, d_type(t_INDEX)
86349{
86350 typedef typename bsl::remove_cv<
86352 Alt_Type;
86353
86354 BloombergLP::bslma::ConstructionUtil::construct(
86355 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86356 AllocBase::mechanism(),
86357 arg_01,
86358 arg_02,
86359 arg_03,
86360 arg_04,
86361 arg_05,
86362 arg_06,
86363 arg_07,
86364 arg_08);
86365}
86366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
86367
86368#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
86369template <class t_HEAD, class t_TAIL_01,
86370 class t_TAIL_02,
86371 class t_TAIL_03,
86372 class t_TAIL_04,
86373 class t_TAIL_05,
86374 class t_TAIL_06,
86375 class t_TAIL_07,
86376 class t_TAIL_08,
86377 class t_TAIL_09>
86378template <size_t t_INDEX,
86379 class t_ARG_01,
86380 class t_ARG_02,
86381 class t_ARG_03,
86382 class t_ARG_04,
86383 class t_ARG_05,
86384 class t_ARG_06,
86385 class t_ARG_07,
86386 class t_ARG_08>
86387inline
86388Variant_Base<t_HEAD, t_TAIL_01,
86389 t_TAIL_02,
86390 t_TAIL_03,
86391 t_TAIL_04,
86392 t_TAIL_05,
86393 t_TAIL_06,
86394 t_TAIL_07,
86395 t_TAIL_08,
86396 t_TAIL_09,
86397 BSLS_COMPILERFEATURES_FILLT( 9)
86398 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86399 const t_ARG_01& arg_01,
86400 const t_ARG_02& arg_02,
86401 const t_ARG_03& arg_03,
86402 const t_ARG_04& arg_04,
86403 const t_ARG_05& arg_05,
86404 const t_ARG_06& arg_06,
86405 const t_ARG_07& arg_07,
86406 const t_ARG_08& arg_08)
86407: AllocBase()
86408, d_type(t_INDEX)
86409{
86410 typedef typename bsl::remove_cv<
86412 Alt_Type;
86413
86414 BloombergLP::bslma::ConstructionUtil::construct(
86415 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86416 AllocBase::mechanism(),
86417 arg_01,
86418 arg_02,
86419 arg_03,
86420 arg_04,
86421 arg_05,
86422 arg_06,
86423 arg_07,
86424 arg_08);
86425}
86426#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
86427
86428#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
86429template <class t_HEAD, class t_TAIL_01,
86430 class t_TAIL_02,
86431 class t_TAIL_03,
86432 class t_TAIL_04,
86433 class t_TAIL_05,
86434 class t_TAIL_06,
86435 class t_TAIL_07,
86436 class t_TAIL_08,
86437 class t_TAIL_09,
86438 class t_TAIL_10>
86439template <size_t t_INDEX,
86440 class t_ARG_01,
86441 class t_ARG_02,
86442 class t_ARG_03,
86443 class t_ARG_04,
86444 class t_ARG_05,
86445 class t_ARG_06,
86446 class t_ARG_07,
86447 class t_ARG_08>
86448inline
86449Variant_Base<t_HEAD, t_TAIL_01,
86450 t_TAIL_02,
86451 t_TAIL_03,
86452 t_TAIL_04,
86453 t_TAIL_05,
86454 t_TAIL_06,
86455 t_TAIL_07,
86456 t_TAIL_08,
86457 t_TAIL_09,
86458 t_TAIL_10,
86459 BSLS_COMPILERFEATURES_FILLT( 8)
86460 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86461 const t_ARG_01& arg_01,
86462 const t_ARG_02& arg_02,
86463 const t_ARG_03& arg_03,
86464 const t_ARG_04& arg_04,
86465 const t_ARG_05& arg_05,
86466 const t_ARG_06& arg_06,
86467 const t_ARG_07& arg_07,
86468 const t_ARG_08& arg_08)
86469: AllocBase()
86470, d_type(t_INDEX)
86471{
86472 typedef typename bsl::remove_cv<
86474 Alt_Type;
86475
86476 BloombergLP::bslma::ConstructionUtil::construct(
86477 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86478 AllocBase::mechanism(),
86479 arg_01,
86480 arg_02,
86481 arg_03,
86482 arg_04,
86483 arg_05,
86484 arg_06,
86485 arg_07,
86486 arg_08);
86487}
86488#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
86489
86490#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
86491template <class t_HEAD, class t_TAIL_01,
86492 class t_TAIL_02,
86493 class t_TAIL_03,
86494 class t_TAIL_04,
86495 class t_TAIL_05,
86496 class t_TAIL_06,
86497 class t_TAIL_07,
86498 class t_TAIL_08,
86499 class t_TAIL_09,
86500 class t_TAIL_10,
86501 class t_TAIL_11>
86502template <size_t t_INDEX,
86503 class t_ARG_01,
86504 class t_ARG_02,
86505 class t_ARG_03,
86506 class t_ARG_04,
86507 class t_ARG_05,
86508 class t_ARG_06,
86509 class t_ARG_07,
86510 class t_ARG_08>
86511inline
86512Variant_Base<t_HEAD, t_TAIL_01,
86513 t_TAIL_02,
86514 t_TAIL_03,
86515 t_TAIL_04,
86516 t_TAIL_05,
86517 t_TAIL_06,
86518 t_TAIL_07,
86519 t_TAIL_08,
86520 t_TAIL_09,
86521 t_TAIL_10,
86522 t_TAIL_11,
86523 BSLS_COMPILERFEATURES_FILLT( 7)
86524 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86525 const t_ARG_01& arg_01,
86526 const t_ARG_02& arg_02,
86527 const t_ARG_03& arg_03,
86528 const t_ARG_04& arg_04,
86529 const t_ARG_05& arg_05,
86530 const t_ARG_06& arg_06,
86531 const t_ARG_07& arg_07,
86532 const t_ARG_08& arg_08)
86533: AllocBase()
86534, d_type(t_INDEX)
86535{
86536 typedef typename bsl::remove_cv<
86538 Alt_Type;
86539
86540 BloombergLP::bslma::ConstructionUtil::construct(
86541 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86542 AllocBase::mechanism(),
86543 arg_01,
86544 arg_02,
86545 arg_03,
86546 arg_04,
86547 arg_05,
86548 arg_06,
86549 arg_07,
86550 arg_08);
86551}
86552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
86553
86554#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
86555template <class t_HEAD, class t_TAIL_01,
86556 class t_TAIL_02,
86557 class t_TAIL_03,
86558 class t_TAIL_04,
86559 class t_TAIL_05,
86560 class t_TAIL_06,
86561 class t_TAIL_07,
86562 class t_TAIL_08,
86563 class t_TAIL_09,
86564 class t_TAIL_10,
86565 class t_TAIL_11,
86566 class t_TAIL_12>
86567template <size_t t_INDEX,
86568 class t_ARG_01,
86569 class t_ARG_02,
86570 class t_ARG_03,
86571 class t_ARG_04,
86572 class t_ARG_05,
86573 class t_ARG_06,
86574 class t_ARG_07,
86575 class t_ARG_08>
86576inline
86577Variant_Base<t_HEAD, t_TAIL_01,
86578 t_TAIL_02,
86579 t_TAIL_03,
86580 t_TAIL_04,
86581 t_TAIL_05,
86582 t_TAIL_06,
86583 t_TAIL_07,
86584 t_TAIL_08,
86585 t_TAIL_09,
86586 t_TAIL_10,
86587 t_TAIL_11,
86588 t_TAIL_12,
86589 BSLS_COMPILERFEATURES_FILLT( 6)
86590 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86591 const t_ARG_01& arg_01,
86592 const t_ARG_02& arg_02,
86593 const t_ARG_03& arg_03,
86594 const t_ARG_04& arg_04,
86595 const t_ARG_05& arg_05,
86596 const t_ARG_06& arg_06,
86597 const t_ARG_07& arg_07,
86598 const t_ARG_08& arg_08)
86599: AllocBase()
86600, d_type(t_INDEX)
86601{
86602 typedef typename bsl::remove_cv<
86604 Alt_Type;
86605
86606 BloombergLP::bslma::ConstructionUtil::construct(
86607 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86608 AllocBase::mechanism(),
86609 arg_01,
86610 arg_02,
86611 arg_03,
86612 arg_04,
86613 arg_05,
86614 arg_06,
86615 arg_07,
86616 arg_08);
86617}
86618#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
86619
86620#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
86621template <class t_HEAD, class t_TAIL_01,
86622 class t_TAIL_02,
86623 class t_TAIL_03,
86624 class t_TAIL_04,
86625 class t_TAIL_05,
86626 class t_TAIL_06,
86627 class t_TAIL_07,
86628 class t_TAIL_08,
86629 class t_TAIL_09,
86630 class t_TAIL_10,
86631 class t_TAIL_11,
86632 class t_TAIL_12,
86633 class t_TAIL_13>
86634template <size_t t_INDEX,
86635 class t_ARG_01,
86636 class t_ARG_02,
86637 class t_ARG_03,
86638 class t_ARG_04,
86639 class t_ARG_05,
86640 class t_ARG_06,
86641 class t_ARG_07,
86642 class t_ARG_08>
86643inline
86644Variant_Base<t_HEAD, t_TAIL_01,
86645 t_TAIL_02,
86646 t_TAIL_03,
86647 t_TAIL_04,
86648 t_TAIL_05,
86649 t_TAIL_06,
86650 t_TAIL_07,
86651 t_TAIL_08,
86652 t_TAIL_09,
86653 t_TAIL_10,
86654 t_TAIL_11,
86655 t_TAIL_12,
86656 t_TAIL_13,
86657 BSLS_COMPILERFEATURES_FILLT( 5)
86658 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86659 const t_ARG_01& arg_01,
86660 const t_ARG_02& arg_02,
86661 const t_ARG_03& arg_03,
86662 const t_ARG_04& arg_04,
86663 const t_ARG_05& arg_05,
86664 const t_ARG_06& arg_06,
86665 const t_ARG_07& arg_07,
86666 const t_ARG_08& arg_08)
86667: AllocBase()
86668, d_type(t_INDEX)
86669{
86670 typedef typename bsl::remove_cv<
86672 Alt_Type;
86673
86674 BloombergLP::bslma::ConstructionUtil::construct(
86675 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86676 AllocBase::mechanism(),
86677 arg_01,
86678 arg_02,
86679 arg_03,
86680 arg_04,
86681 arg_05,
86682 arg_06,
86683 arg_07,
86684 arg_08);
86685}
86686#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
86687
86688#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
86689template <class t_HEAD, class t_TAIL_01,
86690 class t_TAIL_02,
86691 class t_TAIL_03,
86692 class t_TAIL_04,
86693 class t_TAIL_05,
86694 class t_TAIL_06,
86695 class t_TAIL_07,
86696 class t_TAIL_08,
86697 class t_TAIL_09,
86698 class t_TAIL_10,
86699 class t_TAIL_11,
86700 class t_TAIL_12,
86701 class t_TAIL_13,
86702 class t_TAIL_14>
86703template <size_t t_INDEX,
86704 class t_ARG_01,
86705 class t_ARG_02,
86706 class t_ARG_03,
86707 class t_ARG_04,
86708 class t_ARG_05,
86709 class t_ARG_06,
86710 class t_ARG_07,
86711 class t_ARG_08>
86712inline
86713Variant_Base<t_HEAD, t_TAIL_01,
86714 t_TAIL_02,
86715 t_TAIL_03,
86716 t_TAIL_04,
86717 t_TAIL_05,
86718 t_TAIL_06,
86719 t_TAIL_07,
86720 t_TAIL_08,
86721 t_TAIL_09,
86722 t_TAIL_10,
86723 t_TAIL_11,
86724 t_TAIL_12,
86725 t_TAIL_13,
86726 t_TAIL_14,
86727 BSLS_COMPILERFEATURES_FILLT( 4)
86728 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86729 const t_ARG_01& arg_01,
86730 const t_ARG_02& arg_02,
86731 const t_ARG_03& arg_03,
86732 const t_ARG_04& arg_04,
86733 const t_ARG_05& arg_05,
86734 const t_ARG_06& arg_06,
86735 const t_ARG_07& arg_07,
86736 const t_ARG_08& arg_08)
86737: AllocBase()
86738, d_type(t_INDEX)
86739{
86740 typedef typename bsl::remove_cv<
86742 Alt_Type;
86743
86744 BloombergLP::bslma::ConstructionUtil::construct(
86745 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86746 AllocBase::mechanism(),
86747 arg_01,
86748 arg_02,
86749 arg_03,
86750 arg_04,
86751 arg_05,
86752 arg_06,
86753 arg_07,
86754 arg_08);
86755}
86756#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
86757
86758#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
86759template <class t_HEAD, class t_TAIL_01,
86760 class t_TAIL_02,
86761 class t_TAIL_03,
86762 class t_TAIL_04,
86763 class t_TAIL_05,
86764 class t_TAIL_06,
86765 class t_TAIL_07,
86766 class t_TAIL_08,
86767 class t_TAIL_09,
86768 class t_TAIL_10,
86769 class t_TAIL_11,
86770 class t_TAIL_12,
86771 class t_TAIL_13,
86772 class t_TAIL_14,
86773 class t_TAIL_15>
86774template <size_t t_INDEX,
86775 class t_ARG_01,
86776 class t_ARG_02,
86777 class t_ARG_03,
86778 class t_ARG_04,
86779 class t_ARG_05,
86780 class t_ARG_06,
86781 class t_ARG_07,
86782 class t_ARG_08>
86783inline
86784Variant_Base<t_HEAD, t_TAIL_01,
86785 t_TAIL_02,
86786 t_TAIL_03,
86787 t_TAIL_04,
86788 t_TAIL_05,
86789 t_TAIL_06,
86790 t_TAIL_07,
86791 t_TAIL_08,
86792 t_TAIL_09,
86793 t_TAIL_10,
86794 t_TAIL_11,
86795 t_TAIL_12,
86796 t_TAIL_13,
86797 t_TAIL_14,
86798 t_TAIL_15,
86799 BSLS_COMPILERFEATURES_FILLT( 3)
86800 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86801 const t_ARG_01& arg_01,
86802 const t_ARG_02& arg_02,
86803 const t_ARG_03& arg_03,
86804 const t_ARG_04& arg_04,
86805 const t_ARG_05& arg_05,
86806 const t_ARG_06& arg_06,
86807 const t_ARG_07& arg_07,
86808 const t_ARG_08& arg_08)
86809: AllocBase()
86810, d_type(t_INDEX)
86811{
86812 typedef typename bsl::remove_cv<
86814 Alt_Type;
86815
86816 BloombergLP::bslma::ConstructionUtil::construct(
86817 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86818 AllocBase::mechanism(),
86819 arg_01,
86820 arg_02,
86821 arg_03,
86822 arg_04,
86823 arg_05,
86824 arg_06,
86825 arg_07,
86826 arg_08);
86827}
86828#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
86829
86830#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
86831template <class t_HEAD, class t_TAIL_01,
86832 class t_TAIL_02,
86833 class t_TAIL_03,
86834 class t_TAIL_04,
86835 class t_TAIL_05,
86836 class t_TAIL_06,
86837 class t_TAIL_07,
86838 class t_TAIL_08,
86839 class t_TAIL_09,
86840 class t_TAIL_10,
86841 class t_TAIL_11,
86842 class t_TAIL_12,
86843 class t_TAIL_13,
86844 class t_TAIL_14,
86845 class t_TAIL_15,
86846 class t_TAIL_16>
86847template <size_t t_INDEX,
86848 class t_ARG_01,
86849 class t_ARG_02,
86850 class t_ARG_03,
86851 class t_ARG_04,
86852 class t_ARG_05,
86853 class t_ARG_06,
86854 class t_ARG_07,
86855 class t_ARG_08>
86856inline
86857Variant_Base<t_HEAD, t_TAIL_01,
86858 t_TAIL_02,
86859 t_TAIL_03,
86860 t_TAIL_04,
86861 t_TAIL_05,
86862 t_TAIL_06,
86863 t_TAIL_07,
86864 t_TAIL_08,
86865 t_TAIL_09,
86866 t_TAIL_10,
86867 t_TAIL_11,
86868 t_TAIL_12,
86869 t_TAIL_13,
86870 t_TAIL_14,
86871 t_TAIL_15,
86872 t_TAIL_16,
86873 BSLS_COMPILERFEATURES_FILLT( 2)
86874 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86875 const t_ARG_01& arg_01,
86876 const t_ARG_02& arg_02,
86877 const t_ARG_03& arg_03,
86878 const t_ARG_04& arg_04,
86879 const t_ARG_05& arg_05,
86880 const t_ARG_06& arg_06,
86881 const t_ARG_07& arg_07,
86882 const t_ARG_08& arg_08)
86883: AllocBase()
86884, d_type(t_INDEX)
86885{
86886 typedef typename bsl::remove_cv<
86888 Alt_Type;
86889
86890 BloombergLP::bslma::ConstructionUtil::construct(
86891 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86892 AllocBase::mechanism(),
86893 arg_01,
86894 arg_02,
86895 arg_03,
86896 arg_04,
86897 arg_05,
86898 arg_06,
86899 arg_07,
86900 arg_08);
86901}
86902#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
86903
86904#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
86905template <class t_HEAD, class t_TAIL_01,
86906 class t_TAIL_02,
86907 class t_TAIL_03,
86908 class t_TAIL_04,
86909 class t_TAIL_05,
86910 class t_TAIL_06,
86911 class t_TAIL_07,
86912 class t_TAIL_08,
86913 class t_TAIL_09,
86914 class t_TAIL_10,
86915 class t_TAIL_11,
86916 class t_TAIL_12,
86917 class t_TAIL_13,
86918 class t_TAIL_14,
86919 class t_TAIL_15,
86920 class t_TAIL_16,
86921 class t_TAIL_17>
86922template <size_t t_INDEX,
86923 class t_ARG_01,
86924 class t_ARG_02,
86925 class t_ARG_03,
86926 class t_ARG_04,
86927 class t_ARG_05,
86928 class t_ARG_06,
86929 class t_ARG_07,
86930 class t_ARG_08>
86931inline
86932Variant_Base<t_HEAD, t_TAIL_01,
86933 t_TAIL_02,
86934 t_TAIL_03,
86935 t_TAIL_04,
86936 t_TAIL_05,
86937 t_TAIL_06,
86938 t_TAIL_07,
86939 t_TAIL_08,
86940 t_TAIL_09,
86941 t_TAIL_10,
86942 t_TAIL_11,
86943 t_TAIL_12,
86944 t_TAIL_13,
86945 t_TAIL_14,
86946 t_TAIL_15,
86947 t_TAIL_16,
86948 t_TAIL_17,
86949 BSLS_COMPILERFEATURES_FILLT( 1)
86950 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
86951 const t_ARG_01& arg_01,
86952 const t_ARG_02& arg_02,
86953 const t_ARG_03& arg_03,
86954 const t_ARG_04& arg_04,
86955 const t_ARG_05& arg_05,
86956 const t_ARG_06& arg_06,
86957 const t_ARG_07& arg_07,
86958 const t_ARG_08& arg_08)
86959: AllocBase()
86960, d_type(t_INDEX)
86961{
86962 typedef typename bsl::remove_cv<
86964 Alt_Type;
86965
86966 BloombergLP::bslma::ConstructionUtil::construct(
86967 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
86968 AllocBase::mechanism(),
86969 arg_01,
86970 arg_02,
86971 arg_03,
86972 arg_04,
86973 arg_05,
86974 arg_06,
86975 arg_07,
86976 arg_08);
86977}
86978#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
86979
86980#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
86981template <class t_HEAD, class t_TAIL_01,
86982 class t_TAIL_02,
86983 class t_TAIL_03,
86984 class t_TAIL_04,
86985 class t_TAIL_05,
86986 class t_TAIL_06,
86987 class t_TAIL_07,
86988 class t_TAIL_08,
86989 class t_TAIL_09,
86990 class t_TAIL_10,
86991 class t_TAIL_11,
86992 class t_TAIL_12,
86993 class t_TAIL_13,
86994 class t_TAIL_14,
86995 class t_TAIL_15,
86996 class t_TAIL_16,
86997 class t_TAIL_17,
86998 class t_TAIL_18>
86999template <size_t t_INDEX,
87000 class t_ARG_01,
87001 class t_ARG_02,
87002 class t_ARG_03,
87003 class t_ARG_04,
87004 class t_ARG_05,
87005 class t_ARG_06,
87006 class t_ARG_07,
87007 class t_ARG_08>
87008inline
87009Variant_Base<t_HEAD, t_TAIL_01,
87010 t_TAIL_02,
87011 t_TAIL_03,
87012 t_TAIL_04,
87013 t_TAIL_05,
87014 t_TAIL_06,
87015 t_TAIL_07,
87016 t_TAIL_08,
87017 t_TAIL_09,
87018 t_TAIL_10,
87019 t_TAIL_11,
87020 t_TAIL_12,
87021 t_TAIL_13,
87022 t_TAIL_14,
87023 t_TAIL_15,
87024 t_TAIL_16,
87025 t_TAIL_17,
87026 t_TAIL_18,
87027 BSLS_COMPILERFEATURES_FILLT( 0)
87028 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87029 const t_ARG_01& arg_01,
87030 const t_ARG_02& arg_02,
87031 const t_ARG_03& arg_03,
87032 const t_ARG_04& arg_04,
87033 const t_ARG_05& arg_05,
87034 const t_ARG_06& arg_06,
87035 const t_ARG_07& arg_07,
87036 const t_ARG_08& arg_08)
87037: AllocBase()
87038, d_type(t_INDEX)
87039{
87040 typedef typename bsl::remove_cv<
87042 Alt_Type;
87043
87044 BloombergLP::bslma::ConstructionUtil::construct(
87045 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87046 AllocBase::mechanism(),
87047 arg_01,
87048 arg_02,
87049 arg_03,
87050 arg_04,
87051 arg_05,
87052 arg_06,
87053 arg_07,
87054 arg_08);
87055}
87056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
87057
87058
87059#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
87060template <class t_HEAD>
87061template <size_t t_INDEX,
87062 class t_ARG_01,
87063 class t_ARG_02,
87064 class t_ARG_03,
87065 class t_ARG_04,
87066 class t_ARG_05,
87067 class t_ARG_06,
87068 class t_ARG_07,
87069 class t_ARG_08,
87070 class t_ARG_09>
87071inline
87072Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
87073 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87074 const t_ARG_01& arg_01,
87075 const t_ARG_02& arg_02,
87076 const t_ARG_03& arg_03,
87077 const t_ARG_04& arg_04,
87078 const t_ARG_05& arg_05,
87079 const t_ARG_06& arg_06,
87080 const t_ARG_07& arg_07,
87081 const t_ARG_08& arg_08,
87082 const t_ARG_09& arg_09)
87083: AllocBase()
87084, d_type(t_INDEX)
87085{
87086 typedef typename bsl::remove_cv<
87088 Alt_Type;
87089
87090 BloombergLP::bslma::ConstructionUtil::construct(
87091 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87092 AllocBase::mechanism(),
87093 arg_01,
87094 arg_02,
87095 arg_03,
87096 arg_04,
87097 arg_05,
87098 arg_06,
87099 arg_07,
87100 arg_08,
87101 arg_09);
87102}
87103#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
87104
87105#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
87106template <class t_HEAD, class t_TAIL_01>
87107template <size_t t_INDEX,
87108 class t_ARG_01,
87109 class t_ARG_02,
87110 class t_ARG_03,
87111 class t_ARG_04,
87112 class t_ARG_05,
87113 class t_ARG_06,
87114 class t_ARG_07,
87115 class t_ARG_08,
87116 class t_ARG_09>
87117inline
87118Variant_Base<t_HEAD, t_TAIL_01,
87119 BSLS_COMPILERFEATURES_FILLT(17)
87120 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87121 const t_ARG_01& arg_01,
87122 const t_ARG_02& arg_02,
87123 const t_ARG_03& arg_03,
87124 const t_ARG_04& arg_04,
87125 const t_ARG_05& arg_05,
87126 const t_ARG_06& arg_06,
87127 const t_ARG_07& arg_07,
87128 const t_ARG_08& arg_08,
87129 const t_ARG_09& arg_09)
87130: AllocBase()
87131, d_type(t_INDEX)
87132{
87133 typedef typename bsl::remove_cv<
87135 Alt_Type;
87136
87137 BloombergLP::bslma::ConstructionUtil::construct(
87138 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87139 AllocBase::mechanism(),
87140 arg_01,
87141 arg_02,
87142 arg_03,
87143 arg_04,
87144 arg_05,
87145 arg_06,
87146 arg_07,
87147 arg_08,
87148 arg_09);
87149}
87150#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
87151
87152#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
87153template <class t_HEAD, class t_TAIL_01,
87154 class t_TAIL_02>
87155template <size_t t_INDEX,
87156 class t_ARG_01,
87157 class t_ARG_02,
87158 class t_ARG_03,
87159 class t_ARG_04,
87160 class t_ARG_05,
87161 class t_ARG_06,
87162 class t_ARG_07,
87163 class t_ARG_08,
87164 class t_ARG_09>
87165inline
87166Variant_Base<t_HEAD, t_TAIL_01,
87167 t_TAIL_02,
87168 BSLS_COMPILERFEATURES_FILLT(16)
87169 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87170 const t_ARG_01& arg_01,
87171 const t_ARG_02& arg_02,
87172 const t_ARG_03& arg_03,
87173 const t_ARG_04& arg_04,
87174 const t_ARG_05& arg_05,
87175 const t_ARG_06& arg_06,
87176 const t_ARG_07& arg_07,
87177 const t_ARG_08& arg_08,
87178 const t_ARG_09& arg_09)
87179: AllocBase()
87180, d_type(t_INDEX)
87181{
87182 typedef typename bsl::remove_cv<
87184 Alt_Type;
87185
87186 BloombergLP::bslma::ConstructionUtil::construct(
87187 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87188 AllocBase::mechanism(),
87189 arg_01,
87190 arg_02,
87191 arg_03,
87192 arg_04,
87193 arg_05,
87194 arg_06,
87195 arg_07,
87196 arg_08,
87197 arg_09);
87198}
87199#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
87200
87201#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
87202template <class t_HEAD, class t_TAIL_01,
87203 class t_TAIL_02,
87204 class t_TAIL_03>
87205template <size_t t_INDEX,
87206 class t_ARG_01,
87207 class t_ARG_02,
87208 class t_ARG_03,
87209 class t_ARG_04,
87210 class t_ARG_05,
87211 class t_ARG_06,
87212 class t_ARG_07,
87213 class t_ARG_08,
87214 class t_ARG_09>
87215inline
87216Variant_Base<t_HEAD, t_TAIL_01,
87217 t_TAIL_02,
87218 t_TAIL_03,
87219 BSLS_COMPILERFEATURES_FILLT(15)
87220 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87221 const t_ARG_01& arg_01,
87222 const t_ARG_02& arg_02,
87223 const t_ARG_03& arg_03,
87224 const t_ARG_04& arg_04,
87225 const t_ARG_05& arg_05,
87226 const t_ARG_06& arg_06,
87227 const t_ARG_07& arg_07,
87228 const t_ARG_08& arg_08,
87229 const t_ARG_09& arg_09)
87230: AllocBase()
87231, d_type(t_INDEX)
87232{
87233 typedef typename bsl::remove_cv<
87235 Alt_Type;
87236
87237 BloombergLP::bslma::ConstructionUtil::construct(
87238 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87239 AllocBase::mechanism(),
87240 arg_01,
87241 arg_02,
87242 arg_03,
87243 arg_04,
87244 arg_05,
87245 arg_06,
87246 arg_07,
87247 arg_08,
87248 arg_09);
87249}
87250#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
87251
87252#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
87253template <class t_HEAD, class t_TAIL_01,
87254 class t_TAIL_02,
87255 class t_TAIL_03,
87256 class t_TAIL_04>
87257template <size_t t_INDEX,
87258 class t_ARG_01,
87259 class t_ARG_02,
87260 class t_ARG_03,
87261 class t_ARG_04,
87262 class t_ARG_05,
87263 class t_ARG_06,
87264 class t_ARG_07,
87265 class t_ARG_08,
87266 class t_ARG_09>
87267inline
87268Variant_Base<t_HEAD, t_TAIL_01,
87269 t_TAIL_02,
87270 t_TAIL_03,
87271 t_TAIL_04,
87272 BSLS_COMPILERFEATURES_FILLT(14)
87273 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87274 const t_ARG_01& arg_01,
87275 const t_ARG_02& arg_02,
87276 const t_ARG_03& arg_03,
87277 const t_ARG_04& arg_04,
87278 const t_ARG_05& arg_05,
87279 const t_ARG_06& arg_06,
87280 const t_ARG_07& arg_07,
87281 const t_ARG_08& arg_08,
87282 const t_ARG_09& arg_09)
87283: AllocBase()
87284, d_type(t_INDEX)
87285{
87286 typedef typename bsl::remove_cv<
87288 Alt_Type;
87289
87290 BloombergLP::bslma::ConstructionUtil::construct(
87291 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87292 AllocBase::mechanism(),
87293 arg_01,
87294 arg_02,
87295 arg_03,
87296 arg_04,
87297 arg_05,
87298 arg_06,
87299 arg_07,
87300 arg_08,
87301 arg_09);
87302}
87303#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
87304
87305#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
87306template <class t_HEAD, class t_TAIL_01,
87307 class t_TAIL_02,
87308 class t_TAIL_03,
87309 class t_TAIL_04,
87310 class t_TAIL_05>
87311template <size_t t_INDEX,
87312 class t_ARG_01,
87313 class t_ARG_02,
87314 class t_ARG_03,
87315 class t_ARG_04,
87316 class t_ARG_05,
87317 class t_ARG_06,
87318 class t_ARG_07,
87319 class t_ARG_08,
87320 class t_ARG_09>
87321inline
87322Variant_Base<t_HEAD, t_TAIL_01,
87323 t_TAIL_02,
87324 t_TAIL_03,
87325 t_TAIL_04,
87326 t_TAIL_05,
87327 BSLS_COMPILERFEATURES_FILLT(13)
87328 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87329 const t_ARG_01& arg_01,
87330 const t_ARG_02& arg_02,
87331 const t_ARG_03& arg_03,
87332 const t_ARG_04& arg_04,
87333 const t_ARG_05& arg_05,
87334 const t_ARG_06& arg_06,
87335 const t_ARG_07& arg_07,
87336 const t_ARG_08& arg_08,
87337 const t_ARG_09& arg_09)
87338: AllocBase()
87339, d_type(t_INDEX)
87340{
87341 typedef typename bsl::remove_cv<
87343 Alt_Type;
87344
87345 BloombergLP::bslma::ConstructionUtil::construct(
87346 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87347 AllocBase::mechanism(),
87348 arg_01,
87349 arg_02,
87350 arg_03,
87351 arg_04,
87352 arg_05,
87353 arg_06,
87354 arg_07,
87355 arg_08,
87356 arg_09);
87357}
87358#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
87359
87360#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
87361template <class t_HEAD, class t_TAIL_01,
87362 class t_TAIL_02,
87363 class t_TAIL_03,
87364 class t_TAIL_04,
87365 class t_TAIL_05,
87366 class t_TAIL_06>
87367template <size_t t_INDEX,
87368 class t_ARG_01,
87369 class t_ARG_02,
87370 class t_ARG_03,
87371 class t_ARG_04,
87372 class t_ARG_05,
87373 class t_ARG_06,
87374 class t_ARG_07,
87375 class t_ARG_08,
87376 class t_ARG_09>
87377inline
87378Variant_Base<t_HEAD, t_TAIL_01,
87379 t_TAIL_02,
87380 t_TAIL_03,
87381 t_TAIL_04,
87382 t_TAIL_05,
87383 t_TAIL_06,
87384 BSLS_COMPILERFEATURES_FILLT(12)
87385 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87386 const t_ARG_01& arg_01,
87387 const t_ARG_02& arg_02,
87388 const t_ARG_03& arg_03,
87389 const t_ARG_04& arg_04,
87390 const t_ARG_05& arg_05,
87391 const t_ARG_06& arg_06,
87392 const t_ARG_07& arg_07,
87393 const t_ARG_08& arg_08,
87394 const t_ARG_09& arg_09)
87395: AllocBase()
87396, d_type(t_INDEX)
87397{
87398 typedef typename bsl::remove_cv<
87400 Alt_Type;
87401
87402 BloombergLP::bslma::ConstructionUtil::construct(
87403 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87404 AllocBase::mechanism(),
87405 arg_01,
87406 arg_02,
87407 arg_03,
87408 arg_04,
87409 arg_05,
87410 arg_06,
87411 arg_07,
87412 arg_08,
87413 arg_09);
87414}
87415#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
87416
87417#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
87418template <class t_HEAD, class t_TAIL_01,
87419 class t_TAIL_02,
87420 class t_TAIL_03,
87421 class t_TAIL_04,
87422 class t_TAIL_05,
87423 class t_TAIL_06,
87424 class t_TAIL_07>
87425template <size_t t_INDEX,
87426 class t_ARG_01,
87427 class t_ARG_02,
87428 class t_ARG_03,
87429 class t_ARG_04,
87430 class t_ARG_05,
87431 class t_ARG_06,
87432 class t_ARG_07,
87433 class t_ARG_08,
87434 class t_ARG_09>
87435inline
87436Variant_Base<t_HEAD, t_TAIL_01,
87437 t_TAIL_02,
87438 t_TAIL_03,
87439 t_TAIL_04,
87440 t_TAIL_05,
87441 t_TAIL_06,
87442 t_TAIL_07,
87443 BSLS_COMPILERFEATURES_FILLT(11)
87444 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87445 const t_ARG_01& arg_01,
87446 const t_ARG_02& arg_02,
87447 const t_ARG_03& arg_03,
87448 const t_ARG_04& arg_04,
87449 const t_ARG_05& arg_05,
87450 const t_ARG_06& arg_06,
87451 const t_ARG_07& arg_07,
87452 const t_ARG_08& arg_08,
87453 const t_ARG_09& arg_09)
87454: AllocBase()
87455, d_type(t_INDEX)
87456{
87457 typedef typename bsl::remove_cv<
87459 Alt_Type;
87460
87461 BloombergLP::bslma::ConstructionUtil::construct(
87462 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87463 AllocBase::mechanism(),
87464 arg_01,
87465 arg_02,
87466 arg_03,
87467 arg_04,
87468 arg_05,
87469 arg_06,
87470 arg_07,
87471 arg_08,
87472 arg_09);
87473}
87474#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
87475
87476#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
87477template <class t_HEAD, class t_TAIL_01,
87478 class t_TAIL_02,
87479 class t_TAIL_03,
87480 class t_TAIL_04,
87481 class t_TAIL_05,
87482 class t_TAIL_06,
87483 class t_TAIL_07,
87484 class t_TAIL_08>
87485template <size_t t_INDEX,
87486 class t_ARG_01,
87487 class t_ARG_02,
87488 class t_ARG_03,
87489 class t_ARG_04,
87490 class t_ARG_05,
87491 class t_ARG_06,
87492 class t_ARG_07,
87493 class t_ARG_08,
87494 class t_ARG_09>
87495inline
87496Variant_Base<t_HEAD, t_TAIL_01,
87497 t_TAIL_02,
87498 t_TAIL_03,
87499 t_TAIL_04,
87500 t_TAIL_05,
87501 t_TAIL_06,
87502 t_TAIL_07,
87503 t_TAIL_08,
87504 BSLS_COMPILERFEATURES_FILLT(10)
87505 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87506 const t_ARG_01& arg_01,
87507 const t_ARG_02& arg_02,
87508 const t_ARG_03& arg_03,
87509 const t_ARG_04& arg_04,
87510 const t_ARG_05& arg_05,
87511 const t_ARG_06& arg_06,
87512 const t_ARG_07& arg_07,
87513 const t_ARG_08& arg_08,
87514 const t_ARG_09& arg_09)
87515: AllocBase()
87516, d_type(t_INDEX)
87517{
87518 typedef typename bsl::remove_cv<
87520 Alt_Type;
87521
87522 BloombergLP::bslma::ConstructionUtil::construct(
87523 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87524 AllocBase::mechanism(),
87525 arg_01,
87526 arg_02,
87527 arg_03,
87528 arg_04,
87529 arg_05,
87530 arg_06,
87531 arg_07,
87532 arg_08,
87533 arg_09);
87534}
87535#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
87536
87537#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
87538template <class t_HEAD, class t_TAIL_01,
87539 class t_TAIL_02,
87540 class t_TAIL_03,
87541 class t_TAIL_04,
87542 class t_TAIL_05,
87543 class t_TAIL_06,
87544 class t_TAIL_07,
87545 class t_TAIL_08,
87546 class t_TAIL_09>
87547template <size_t t_INDEX,
87548 class t_ARG_01,
87549 class t_ARG_02,
87550 class t_ARG_03,
87551 class t_ARG_04,
87552 class t_ARG_05,
87553 class t_ARG_06,
87554 class t_ARG_07,
87555 class t_ARG_08,
87556 class t_ARG_09>
87557inline
87558Variant_Base<t_HEAD, t_TAIL_01,
87559 t_TAIL_02,
87560 t_TAIL_03,
87561 t_TAIL_04,
87562 t_TAIL_05,
87563 t_TAIL_06,
87564 t_TAIL_07,
87565 t_TAIL_08,
87566 t_TAIL_09,
87567 BSLS_COMPILERFEATURES_FILLT( 9)
87568 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87569 const t_ARG_01& arg_01,
87570 const t_ARG_02& arg_02,
87571 const t_ARG_03& arg_03,
87572 const t_ARG_04& arg_04,
87573 const t_ARG_05& arg_05,
87574 const t_ARG_06& arg_06,
87575 const t_ARG_07& arg_07,
87576 const t_ARG_08& arg_08,
87577 const t_ARG_09& arg_09)
87578: AllocBase()
87579, d_type(t_INDEX)
87580{
87581 typedef typename bsl::remove_cv<
87583 Alt_Type;
87584
87585 BloombergLP::bslma::ConstructionUtil::construct(
87586 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87587 AllocBase::mechanism(),
87588 arg_01,
87589 arg_02,
87590 arg_03,
87591 arg_04,
87592 arg_05,
87593 arg_06,
87594 arg_07,
87595 arg_08,
87596 arg_09);
87597}
87598#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
87599
87600#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
87601template <class t_HEAD, class t_TAIL_01,
87602 class t_TAIL_02,
87603 class t_TAIL_03,
87604 class t_TAIL_04,
87605 class t_TAIL_05,
87606 class t_TAIL_06,
87607 class t_TAIL_07,
87608 class t_TAIL_08,
87609 class t_TAIL_09,
87610 class t_TAIL_10>
87611template <size_t t_INDEX,
87612 class t_ARG_01,
87613 class t_ARG_02,
87614 class t_ARG_03,
87615 class t_ARG_04,
87616 class t_ARG_05,
87617 class t_ARG_06,
87618 class t_ARG_07,
87619 class t_ARG_08,
87620 class t_ARG_09>
87621inline
87622Variant_Base<t_HEAD, t_TAIL_01,
87623 t_TAIL_02,
87624 t_TAIL_03,
87625 t_TAIL_04,
87626 t_TAIL_05,
87627 t_TAIL_06,
87628 t_TAIL_07,
87629 t_TAIL_08,
87630 t_TAIL_09,
87631 t_TAIL_10,
87632 BSLS_COMPILERFEATURES_FILLT( 8)
87633 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87634 const t_ARG_01& arg_01,
87635 const t_ARG_02& arg_02,
87636 const t_ARG_03& arg_03,
87637 const t_ARG_04& arg_04,
87638 const t_ARG_05& arg_05,
87639 const t_ARG_06& arg_06,
87640 const t_ARG_07& arg_07,
87641 const t_ARG_08& arg_08,
87642 const t_ARG_09& arg_09)
87643: AllocBase()
87644, d_type(t_INDEX)
87645{
87646 typedef typename bsl::remove_cv<
87648 Alt_Type;
87649
87650 BloombergLP::bslma::ConstructionUtil::construct(
87651 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87652 AllocBase::mechanism(),
87653 arg_01,
87654 arg_02,
87655 arg_03,
87656 arg_04,
87657 arg_05,
87658 arg_06,
87659 arg_07,
87660 arg_08,
87661 arg_09);
87662}
87663#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
87664
87665#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
87666template <class t_HEAD, class t_TAIL_01,
87667 class t_TAIL_02,
87668 class t_TAIL_03,
87669 class t_TAIL_04,
87670 class t_TAIL_05,
87671 class t_TAIL_06,
87672 class t_TAIL_07,
87673 class t_TAIL_08,
87674 class t_TAIL_09,
87675 class t_TAIL_10,
87676 class t_TAIL_11>
87677template <size_t t_INDEX,
87678 class t_ARG_01,
87679 class t_ARG_02,
87680 class t_ARG_03,
87681 class t_ARG_04,
87682 class t_ARG_05,
87683 class t_ARG_06,
87684 class t_ARG_07,
87685 class t_ARG_08,
87686 class t_ARG_09>
87687inline
87688Variant_Base<t_HEAD, t_TAIL_01,
87689 t_TAIL_02,
87690 t_TAIL_03,
87691 t_TAIL_04,
87692 t_TAIL_05,
87693 t_TAIL_06,
87694 t_TAIL_07,
87695 t_TAIL_08,
87696 t_TAIL_09,
87697 t_TAIL_10,
87698 t_TAIL_11,
87699 BSLS_COMPILERFEATURES_FILLT( 7)
87700 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87701 const t_ARG_01& arg_01,
87702 const t_ARG_02& arg_02,
87703 const t_ARG_03& arg_03,
87704 const t_ARG_04& arg_04,
87705 const t_ARG_05& arg_05,
87706 const t_ARG_06& arg_06,
87707 const t_ARG_07& arg_07,
87708 const t_ARG_08& arg_08,
87709 const t_ARG_09& arg_09)
87710: AllocBase()
87711, d_type(t_INDEX)
87712{
87713 typedef typename bsl::remove_cv<
87715 Alt_Type;
87716
87717 BloombergLP::bslma::ConstructionUtil::construct(
87718 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87719 AllocBase::mechanism(),
87720 arg_01,
87721 arg_02,
87722 arg_03,
87723 arg_04,
87724 arg_05,
87725 arg_06,
87726 arg_07,
87727 arg_08,
87728 arg_09);
87729}
87730#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
87731
87732#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
87733template <class t_HEAD, class t_TAIL_01,
87734 class t_TAIL_02,
87735 class t_TAIL_03,
87736 class t_TAIL_04,
87737 class t_TAIL_05,
87738 class t_TAIL_06,
87739 class t_TAIL_07,
87740 class t_TAIL_08,
87741 class t_TAIL_09,
87742 class t_TAIL_10,
87743 class t_TAIL_11,
87744 class t_TAIL_12>
87745template <size_t t_INDEX,
87746 class t_ARG_01,
87747 class t_ARG_02,
87748 class t_ARG_03,
87749 class t_ARG_04,
87750 class t_ARG_05,
87751 class t_ARG_06,
87752 class t_ARG_07,
87753 class t_ARG_08,
87754 class t_ARG_09>
87755inline
87756Variant_Base<t_HEAD, t_TAIL_01,
87757 t_TAIL_02,
87758 t_TAIL_03,
87759 t_TAIL_04,
87760 t_TAIL_05,
87761 t_TAIL_06,
87762 t_TAIL_07,
87763 t_TAIL_08,
87764 t_TAIL_09,
87765 t_TAIL_10,
87766 t_TAIL_11,
87767 t_TAIL_12,
87768 BSLS_COMPILERFEATURES_FILLT( 6)
87769 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87770 const t_ARG_01& arg_01,
87771 const t_ARG_02& arg_02,
87772 const t_ARG_03& arg_03,
87773 const t_ARG_04& arg_04,
87774 const t_ARG_05& arg_05,
87775 const t_ARG_06& arg_06,
87776 const t_ARG_07& arg_07,
87777 const t_ARG_08& arg_08,
87778 const t_ARG_09& arg_09)
87779: AllocBase()
87780, d_type(t_INDEX)
87781{
87782 typedef typename bsl::remove_cv<
87784 Alt_Type;
87785
87786 BloombergLP::bslma::ConstructionUtil::construct(
87787 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87788 AllocBase::mechanism(),
87789 arg_01,
87790 arg_02,
87791 arg_03,
87792 arg_04,
87793 arg_05,
87794 arg_06,
87795 arg_07,
87796 arg_08,
87797 arg_09);
87798}
87799#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
87800
87801#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
87802template <class t_HEAD, class t_TAIL_01,
87803 class t_TAIL_02,
87804 class t_TAIL_03,
87805 class t_TAIL_04,
87806 class t_TAIL_05,
87807 class t_TAIL_06,
87808 class t_TAIL_07,
87809 class t_TAIL_08,
87810 class t_TAIL_09,
87811 class t_TAIL_10,
87812 class t_TAIL_11,
87813 class t_TAIL_12,
87814 class t_TAIL_13>
87815template <size_t t_INDEX,
87816 class t_ARG_01,
87817 class t_ARG_02,
87818 class t_ARG_03,
87819 class t_ARG_04,
87820 class t_ARG_05,
87821 class t_ARG_06,
87822 class t_ARG_07,
87823 class t_ARG_08,
87824 class t_ARG_09>
87825inline
87826Variant_Base<t_HEAD, t_TAIL_01,
87827 t_TAIL_02,
87828 t_TAIL_03,
87829 t_TAIL_04,
87830 t_TAIL_05,
87831 t_TAIL_06,
87832 t_TAIL_07,
87833 t_TAIL_08,
87834 t_TAIL_09,
87835 t_TAIL_10,
87836 t_TAIL_11,
87837 t_TAIL_12,
87838 t_TAIL_13,
87839 BSLS_COMPILERFEATURES_FILLT( 5)
87840 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87841 const t_ARG_01& arg_01,
87842 const t_ARG_02& arg_02,
87843 const t_ARG_03& arg_03,
87844 const t_ARG_04& arg_04,
87845 const t_ARG_05& arg_05,
87846 const t_ARG_06& arg_06,
87847 const t_ARG_07& arg_07,
87848 const t_ARG_08& arg_08,
87849 const t_ARG_09& arg_09)
87850: AllocBase()
87851, d_type(t_INDEX)
87852{
87853 typedef typename bsl::remove_cv<
87855 Alt_Type;
87856
87857 BloombergLP::bslma::ConstructionUtil::construct(
87858 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87859 AllocBase::mechanism(),
87860 arg_01,
87861 arg_02,
87862 arg_03,
87863 arg_04,
87864 arg_05,
87865 arg_06,
87866 arg_07,
87867 arg_08,
87868 arg_09);
87869}
87870#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
87871
87872#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
87873template <class t_HEAD, class t_TAIL_01,
87874 class t_TAIL_02,
87875 class t_TAIL_03,
87876 class t_TAIL_04,
87877 class t_TAIL_05,
87878 class t_TAIL_06,
87879 class t_TAIL_07,
87880 class t_TAIL_08,
87881 class t_TAIL_09,
87882 class t_TAIL_10,
87883 class t_TAIL_11,
87884 class t_TAIL_12,
87885 class t_TAIL_13,
87886 class t_TAIL_14>
87887template <size_t t_INDEX,
87888 class t_ARG_01,
87889 class t_ARG_02,
87890 class t_ARG_03,
87891 class t_ARG_04,
87892 class t_ARG_05,
87893 class t_ARG_06,
87894 class t_ARG_07,
87895 class t_ARG_08,
87896 class t_ARG_09>
87897inline
87898Variant_Base<t_HEAD, t_TAIL_01,
87899 t_TAIL_02,
87900 t_TAIL_03,
87901 t_TAIL_04,
87902 t_TAIL_05,
87903 t_TAIL_06,
87904 t_TAIL_07,
87905 t_TAIL_08,
87906 t_TAIL_09,
87907 t_TAIL_10,
87908 t_TAIL_11,
87909 t_TAIL_12,
87910 t_TAIL_13,
87911 t_TAIL_14,
87912 BSLS_COMPILERFEATURES_FILLT( 4)
87913 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87914 const t_ARG_01& arg_01,
87915 const t_ARG_02& arg_02,
87916 const t_ARG_03& arg_03,
87917 const t_ARG_04& arg_04,
87918 const t_ARG_05& arg_05,
87919 const t_ARG_06& arg_06,
87920 const t_ARG_07& arg_07,
87921 const t_ARG_08& arg_08,
87922 const t_ARG_09& arg_09)
87923: AllocBase()
87924, d_type(t_INDEX)
87925{
87926 typedef typename bsl::remove_cv<
87928 Alt_Type;
87929
87930 BloombergLP::bslma::ConstructionUtil::construct(
87931 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
87932 AllocBase::mechanism(),
87933 arg_01,
87934 arg_02,
87935 arg_03,
87936 arg_04,
87937 arg_05,
87938 arg_06,
87939 arg_07,
87940 arg_08,
87941 arg_09);
87942}
87943#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
87944
87945#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
87946template <class t_HEAD, class t_TAIL_01,
87947 class t_TAIL_02,
87948 class t_TAIL_03,
87949 class t_TAIL_04,
87950 class t_TAIL_05,
87951 class t_TAIL_06,
87952 class t_TAIL_07,
87953 class t_TAIL_08,
87954 class t_TAIL_09,
87955 class t_TAIL_10,
87956 class t_TAIL_11,
87957 class t_TAIL_12,
87958 class t_TAIL_13,
87959 class t_TAIL_14,
87960 class t_TAIL_15>
87961template <size_t t_INDEX,
87962 class t_ARG_01,
87963 class t_ARG_02,
87964 class t_ARG_03,
87965 class t_ARG_04,
87966 class t_ARG_05,
87967 class t_ARG_06,
87968 class t_ARG_07,
87969 class t_ARG_08,
87970 class t_ARG_09>
87971inline
87972Variant_Base<t_HEAD, t_TAIL_01,
87973 t_TAIL_02,
87974 t_TAIL_03,
87975 t_TAIL_04,
87976 t_TAIL_05,
87977 t_TAIL_06,
87978 t_TAIL_07,
87979 t_TAIL_08,
87980 t_TAIL_09,
87981 t_TAIL_10,
87982 t_TAIL_11,
87983 t_TAIL_12,
87984 t_TAIL_13,
87985 t_TAIL_14,
87986 t_TAIL_15,
87987 BSLS_COMPILERFEATURES_FILLT( 3)
87988 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
87989 const t_ARG_01& arg_01,
87990 const t_ARG_02& arg_02,
87991 const t_ARG_03& arg_03,
87992 const t_ARG_04& arg_04,
87993 const t_ARG_05& arg_05,
87994 const t_ARG_06& arg_06,
87995 const t_ARG_07& arg_07,
87996 const t_ARG_08& arg_08,
87997 const t_ARG_09& arg_09)
87998: AllocBase()
87999, d_type(t_INDEX)
88000{
88001 typedef typename bsl::remove_cv<
88003 Alt_Type;
88004
88005 BloombergLP::bslma::ConstructionUtil::construct(
88006 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88007 AllocBase::mechanism(),
88008 arg_01,
88009 arg_02,
88010 arg_03,
88011 arg_04,
88012 arg_05,
88013 arg_06,
88014 arg_07,
88015 arg_08,
88016 arg_09);
88017}
88018#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
88019
88020#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
88021template <class t_HEAD, class t_TAIL_01,
88022 class t_TAIL_02,
88023 class t_TAIL_03,
88024 class t_TAIL_04,
88025 class t_TAIL_05,
88026 class t_TAIL_06,
88027 class t_TAIL_07,
88028 class t_TAIL_08,
88029 class t_TAIL_09,
88030 class t_TAIL_10,
88031 class t_TAIL_11,
88032 class t_TAIL_12,
88033 class t_TAIL_13,
88034 class t_TAIL_14,
88035 class t_TAIL_15,
88036 class t_TAIL_16>
88037template <size_t t_INDEX,
88038 class t_ARG_01,
88039 class t_ARG_02,
88040 class t_ARG_03,
88041 class t_ARG_04,
88042 class t_ARG_05,
88043 class t_ARG_06,
88044 class t_ARG_07,
88045 class t_ARG_08,
88046 class t_ARG_09>
88047inline
88048Variant_Base<t_HEAD, t_TAIL_01,
88049 t_TAIL_02,
88050 t_TAIL_03,
88051 t_TAIL_04,
88052 t_TAIL_05,
88053 t_TAIL_06,
88054 t_TAIL_07,
88055 t_TAIL_08,
88056 t_TAIL_09,
88057 t_TAIL_10,
88058 t_TAIL_11,
88059 t_TAIL_12,
88060 t_TAIL_13,
88061 t_TAIL_14,
88062 t_TAIL_15,
88063 t_TAIL_16,
88064 BSLS_COMPILERFEATURES_FILLT( 2)
88065 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88066 const t_ARG_01& arg_01,
88067 const t_ARG_02& arg_02,
88068 const t_ARG_03& arg_03,
88069 const t_ARG_04& arg_04,
88070 const t_ARG_05& arg_05,
88071 const t_ARG_06& arg_06,
88072 const t_ARG_07& arg_07,
88073 const t_ARG_08& arg_08,
88074 const t_ARG_09& arg_09)
88075: AllocBase()
88076, d_type(t_INDEX)
88077{
88078 typedef typename bsl::remove_cv<
88080 Alt_Type;
88081
88082 BloombergLP::bslma::ConstructionUtil::construct(
88083 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88084 AllocBase::mechanism(),
88085 arg_01,
88086 arg_02,
88087 arg_03,
88088 arg_04,
88089 arg_05,
88090 arg_06,
88091 arg_07,
88092 arg_08,
88093 arg_09);
88094}
88095#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
88096
88097#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
88098template <class t_HEAD, class t_TAIL_01,
88099 class t_TAIL_02,
88100 class t_TAIL_03,
88101 class t_TAIL_04,
88102 class t_TAIL_05,
88103 class t_TAIL_06,
88104 class t_TAIL_07,
88105 class t_TAIL_08,
88106 class t_TAIL_09,
88107 class t_TAIL_10,
88108 class t_TAIL_11,
88109 class t_TAIL_12,
88110 class t_TAIL_13,
88111 class t_TAIL_14,
88112 class t_TAIL_15,
88113 class t_TAIL_16,
88114 class t_TAIL_17>
88115template <size_t t_INDEX,
88116 class t_ARG_01,
88117 class t_ARG_02,
88118 class t_ARG_03,
88119 class t_ARG_04,
88120 class t_ARG_05,
88121 class t_ARG_06,
88122 class t_ARG_07,
88123 class t_ARG_08,
88124 class t_ARG_09>
88125inline
88126Variant_Base<t_HEAD, t_TAIL_01,
88127 t_TAIL_02,
88128 t_TAIL_03,
88129 t_TAIL_04,
88130 t_TAIL_05,
88131 t_TAIL_06,
88132 t_TAIL_07,
88133 t_TAIL_08,
88134 t_TAIL_09,
88135 t_TAIL_10,
88136 t_TAIL_11,
88137 t_TAIL_12,
88138 t_TAIL_13,
88139 t_TAIL_14,
88140 t_TAIL_15,
88141 t_TAIL_16,
88142 t_TAIL_17,
88143 BSLS_COMPILERFEATURES_FILLT( 1)
88144 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88145 const t_ARG_01& arg_01,
88146 const t_ARG_02& arg_02,
88147 const t_ARG_03& arg_03,
88148 const t_ARG_04& arg_04,
88149 const t_ARG_05& arg_05,
88150 const t_ARG_06& arg_06,
88151 const t_ARG_07& arg_07,
88152 const t_ARG_08& arg_08,
88153 const t_ARG_09& arg_09)
88154: AllocBase()
88155, d_type(t_INDEX)
88156{
88157 typedef typename bsl::remove_cv<
88159 Alt_Type;
88160
88161 BloombergLP::bslma::ConstructionUtil::construct(
88162 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88163 AllocBase::mechanism(),
88164 arg_01,
88165 arg_02,
88166 arg_03,
88167 arg_04,
88168 arg_05,
88169 arg_06,
88170 arg_07,
88171 arg_08,
88172 arg_09);
88173}
88174#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
88175
88176#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
88177template <class t_HEAD, class t_TAIL_01,
88178 class t_TAIL_02,
88179 class t_TAIL_03,
88180 class t_TAIL_04,
88181 class t_TAIL_05,
88182 class t_TAIL_06,
88183 class t_TAIL_07,
88184 class t_TAIL_08,
88185 class t_TAIL_09,
88186 class t_TAIL_10,
88187 class t_TAIL_11,
88188 class t_TAIL_12,
88189 class t_TAIL_13,
88190 class t_TAIL_14,
88191 class t_TAIL_15,
88192 class t_TAIL_16,
88193 class t_TAIL_17,
88194 class t_TAIL_18>
88195template <size_t t_INDEX,
88196 class t_ARG_01,
88197 class t_ARG_02,
88198 class t_ARG_03,
88199 class t_ARG_04,
88200 class t_ARG_05,
88201 class t_ARG_06,
88202 class t_ARG_07,
88203 class t_ARG_08,
88204 class t_ARG_09>
88205inline
88206Variant_Base<t_HEAD, t_TAIL_01,
88207 t_TAIL_02,
88208 t_TAIL_03,
88209 t_TAIL_04,
88210 t_TAIL_05,
88211 t_TAIL_06,
88212 t_TAIL_07,
88213 t_TAIL_08,
88214 t_TAIL_09,
88215 t_TAIL_10,
88216 t_TAIL_11,
88217 t_TAIL_12,
88218 t_TAIL_13,
88219 t_TAIL_14,
88220 t_TAIL_15,
88221 t_TAIL_16,
88222 t_TAIL_17,
88223 t_TAIL_18,
88224 BSLS_COMPILERFEATURES_FILLT( 0)
88225 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88226 const t_ARG_01& arg_01,
88227 const t_ARG_02& arg_02,
88228 const t_ARG_03& arg_03,
88229 const t_ARG_04& arg_04,
88230 const t_ARG_05& arg_05,
88231 const t_ARG_06& arg_06,
88232 const t_ARG_07& arg_07,
88233 const t_ARG_08& arg_08,
88234 const t_ARG_09& arg_09)
88235: AllocBase()
88236, d_type(t_INDEX)
88237{
88238 typedef typename bsl::remove_cv<
88240 Alt_Type;
88241
88242 BloombergLP::bslma::ConstructionUtil::construct(
88243 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88244 AllocBase::mechanism(),
88245 arg_01,
88246 arg_02,
88247 arg_03,
88248 arg_04,
88249 arg_05,
88250 arg_06,
88251 arg_07,
88252 arg_08,
88253 arg_09);
88254}
88255#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
88256
88257
88258#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
88259template <class t_HEAD>
88260template <size_t t_INDEX,
88261 class t_ARG_01,
88262 class t_ARG_02,
88263 class t_ARG_03,
88264 class t_ARG_04,
88265 class t_ARG_05,
88266 class t_ARG_06,
88267 class t_ARG_07,
88268 class t_ARG_08,
88269 class t_ARG_09,
88270 class t_ARG_10>
88271inline
88272Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
88273 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88274 const t_ARG_01& arg_01,
88275 const t_ARG_02& arg_02,
88276 const t_ARG_03& arg_03,
88277 const t_ARG_04& arg_04,
88278 const t_ARG_05& arg_05,
88279 const t_ARG_06& arg_06,
88280 const t_ARG_07& arg_07,
88281 const t_ARG_08& arg_08,
88282 const t_ARG_09& arg_09,
88283 const t_ARG_10& arg_10)
88284: AllocBase()
88285, d_type(t_INDEX)
88286{
88287 typedef typename bsl::remove_cv<
88289 Alt_Type;
88290
88291 BloombergLP::bslma::ConstructionUtil::construct(
88292 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88293 AllocBase::mechanism(),
88294 arg_01,
88295 arg_02,
88296 arg_03,
88297 arg_04,
88298 arg_05,
88299 arg_06,
88300 arg_07,
88301 arg_08,
88302 arg_09,
88303 arg_10);
88304}
88305#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
88306
88307#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
88308template <class t_HEAD, class t_TAIL_01>
88309template <size_t t_INDEX,
88310 class t_ARG_01,
88311 class t_ARG_02,
88312 class t_ARG_03,
88313 class t_ARG_04,
88314 class t_ARG_05,
88315 class t_ARG_06,
88316 class t_ARG_07,
88317 class t_ARG_08,
88318 class t_ARG_09,
88319 class t_ARG_10>
88320inline
88321Variant_Base<t_HEAD, t_TAIL_01,
88322 BSLS_COMPILERFEATURES_FILLT(17)
88323 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88324 const t_ARG_01& arg_01,
88325 const t_ARG_02& arg_02,
88326 const t_ARG_03& arg_03,
88327 const t_ARG_04& arg_04,
88328 const t_ARG_05& arg_05,
88329 const t_ARG_06& arg_06,
88330 const t_ARG_07& arg_07,
88331 const t_ARG_08& arg_08,
88332 const t_ARG_09& arg_09,
88333 const t_ARG_10& arg_10)
88334: AllocBase()
88335, d_type(t_INDEX)
88336{
88337 typedef typename bsl::remove_cv<
88339 Alt_Type;
88340
88341 BloombergLP::bslma::ConstructionUtil::construct(
88342 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88343 AllocBase::mechanism(),
88344 arg_01,
88345 arg_02,
88346 arg_03,
88347 arg_04,
88348 arg_05,
88349 arg_06,
88350 arg_07,
88351 arg_08,
88352 arg_09,
88353 arg_10);
88354}
88355#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
88356
88357#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
88358template <class t_HEAD, class t_TAIL_01,
88359 class t_TAIL_02>
88360template <size_t t_INDEX,
88361 class t_ARG_01,
88362 class t_ARG_02,
88363 class t_ARG_03,
88364 class t_ARG_04,
88365 class t_ARG_05,
88366 class t_ARG_06,
88367 class t_ARG_07,
88368 class t_ARG_08,
88369 class t_ARG_09,
88370 class t_ARG_10>
88371inline
88372Variant_Base<t_HEAD, t_TAIL_01,
88373 t_TAIL_02,
88374 BSLS_COMPILERFEATURES_FILLT(16)
88375 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88376 const t_ARG_01& arg_01,
88377 const t_ARG_02& arg_02,
88378 const t_ARG_03& arg_03,
88379 const t_ARG_04& arg_04,
88380 const t_ARG_05& arg_05,
88381 const t_ARG_06& arg_06,
88382 const t_ARG_07& arg_07,
88383 const t_ARG_08& arg_08,
88384 const t_ARG_09& arg_09,
88385 const t_ARG_10& arg_10)
88386: AllocBase()
88387, d_type(t_INDEX)
88388{
88389 typedef typename bsl::remove_cv<
88391 Alt_Type;
88392
88393 BloombergLP::bslma::ConstructionUtil::construct(
88394 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88395 AllocBase::mechanism(),
88396 arg_01,
88397 arg_02,
88398 arg_03,
88399 arg_04,
88400 arg_05,
88401 arg_06,
88402 arg_07,
88403 arg_08,
88404 arg_09,
88405 arg_10);
88406}
88407#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
88408
88409#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
88410template <class t_HEAD, class t_TAIL_01,
88411 class t_TAIL_02,
88412 class t_TAIL_03>
88413template <size_t t_INDEX,
88414 class t_ARG_01,
88415 class t_ARG_02,
88416 class t_ARG_03,
88417 class t_ARG_04,
88418 class t_ARG_05,
88419 class t_ARG_06,
88420 class t_ARG_07,
88421 class t_ARG_08,
88422 class t_ARG_09,
88423 class t_ARG_10>
88424inline
88425Variant_Base<t_HEAD, t_TAIL_01,
88426 t_TAIL_02,
88427 t_TAIL_03,
88428 BSLS_COMPILERFEATURES_FILLT(15)
88429 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88430 const t_ARG_01& arg_01,
88431 const t_ARG_02& arg_02,
88432 const t_ARG_03& arg_03,
88433 const t_ARG_04& arg_04,
88434 const t_ARG_05& arg_05,
88435 const t_ARG_06& arg_06,
88436 const t_ARG_07& arg_07,
88437 const t_ARG_08& arg_08,
88438 const t_ARG_09& arg_09,
88439 const t_ARG_10& arg_10)
88440: AllocBase()
88441, d_type(t_INDEX)
88442{
88443 typedef typename bsl::remove_cv<
88445 Alt_Type;
88446
88447 BloombergLP::bslma::ConstructionUtil::construct(
88448 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88449 AllocBase::mechanism(),
88450 arg_01,
88451 arg_02,
88452 arg_03,
88453 arg_04,
88454 arg_05,
88455 arg_06,
88456 arg_07,
88457 arg_08,
88458 arg_09,
88459 arg_10);
88460}
88461#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
88462
88463#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
88464template <class t_HEAD, class t_TAIL_01,
88465 class t_TAIL_02,
88466 class t_TAIL_03,
88467 class t_TAIL_04>
88468template <size_t t_INDEX,
88469 class t_ARG_01,
88470 class t_ARG_02,
88471 class t_ARG_03,
88472 class t_ARG_04,
88473 class t_ARG_05,
88474 class t_ARG_06,
88475 class t_ARG_07,
88476 class t_ARG_08,
88477 class t_ARG_09,
88478 class t_ARG_10>
88479inline
88480Variant_Base<t_HEAD, t_TAIL_01,
88481 t_TAIL_02,
88482 t_TAIL_03,
88483 t_TAIL_04,
88484 BSLS_COMPILERFEATURES_FILLT(14)
88485 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88486 const t_ARG_01& arg_01,
88487 const t_ARG_02& arg_02,
88488 const t_ARG_03& arg_03,
88489 const t_ARG_04& arg_04,
88490 const t_ARG_05& arg_05,
88491 const t_ARG_06& arg_06,
88492 const t_ARG_07& arg_07,
88493 const t_ARG_08& arg_08,
88494 const t_ARG_09& arg_09,
88495 const t_ARG_10& arg_10)
88496: AllocBase()
88497, d_type(t_INDEX)
88498{
88499 typedef typename bsl::remove_cv<
88501 Alt_Type;
88502
88503 BloombergLP::bslma::ConstructionUtil::construct(
88504 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88505 AllocBase::mechanism(),
88506 arg_01,
88507 arg_02,
88508 arg_03,
88509 arg_04,
88510 arg_05,
88511 arg_06,
88512 arg_07,
88513 arg_08,
88514 arg_09,
88515 arg_10);
88516}
88517#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
88518
88519#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
88520template <class t_HEAD, class t_TAIL_01,
88521 class t_TAIL_02,
88522 class t_TAIL_03,
88523 class t_TAIL_04,
88524 class t_TAIL_05>
88525template <size_t t_INDEX,
88526 class t_ARG_01,
88527 class t_ARG_02,
88528 class t_ARG_03,
88529 class t_ARG_04,
88530 class t_ARG_05,
88531 class t_ARG_06,
88532 class t_ARG_07,
88533 class t_ARG_08,
88534 class t_ARG_09,
88535 class t_ARG_10>
88536inline
88537Variant_Base<t_HEAD, t_TAIL_01,
88538 t_TAIL_02,
88539 t_TAIL_03,
88540 t_TAIL_04,
88541 t_TAIL_05,
88542 BSLS_COMPILERFEATURES_FILLT(13)
88543 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88544 const t_ARG_01& arg_01,
88545 const t_ARG_02& arg_02,
88546 const t_ARG_03& arg_03,
88547 const t_ARG_04& arg_04,
88548 const t_ARG_05& arg_05,
88549 const t_ARG_06& arg_06,
88550 const t_ARG_07& arg_07,
88551 const t_ARG_08& arg_08,
88552 const t_ARG_09& arg_09,
88553 const t_ARG_10& arg_10)
88554: AllocBase()
88555, d_type(t_INDEX)
88556{
88557 typedef typename bsl::remove_cv<
88559 Alt_Type;
88560
88561 BloombergLP::bslma::ConstructionUtil::construct(
88562 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88563 AllocBase::mechanism(),
88564 arg_01,
88565 arg_02,
88566 arg_03,
88567 arg_04,
88568 arg_05,
88569 arg_06,
88570 arg_07,
88571 arg_08,
88572 arg_09,
88573 arg_10);
88574}
88575#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
88576
88577#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
88578template <class t_HEAD, class t_TAIL_01,
88579 class t_TAIL_02,
88580 class t_TAIL_03,
88581 class t_TAIL_04,
88582 class t_TAIL_05,
88583 class t_TAIL_06>
88584template <size_t t_INDEX,
88585 class t_ARG_01,
88586 class t_ARG_02,
88587 class t_ARG_03,
88588 class t_ARG_04,
88589 class t_ARG_05,
88590 class t_ARG_06,
88591 class t_ARG_07,
88592 class t_ARG_08,
88593 class t_ARG_09,
88594 class t_ARG_10>
88595inline
88596Variant_Base<t_HEAD, t_TAIL_01,
88597 t_TAIL_02,
88598 t_TAIL_03,
88599 t_TAIL_04,
88600 t_TAIL_05,
88601 t_TAIL_06,
88602 BSLS_COMPILERFEATURES_FILLT(12)
88603 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88604 const t_ARG_01& arg_01,
88605 const t_ARG_02& arg_02,
88606 const t_ARG_03& arg_03,
88607 const t_ARG_04& arg_04,
88608 const t_ARG_05& arg_05,
88609 const t_ARG_06& arg_06,
88610 const t_ARG_07& arg_07,
88611 const t_ARG_08& arg_08,
88612 const t_ARG_09& arg_09,
88613 const t_ARG_10& arg_10)
88614: AllocBase()
88615, d_type(t_INDEX)
88616{
88617 typedef typename bsl::remove_cv<
88619 Alt_Type;
88620
88621 BloombergLP::bslma::ConstructionUtil::construct(
88622 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88623 AllocBase::mechanism(),
88624 arg_01,
88625 arg_02,
88626 arg_03,
88627 arg_04,
88628 arg_05,
88629 arg_06,
88630 arg_07,
88631 arg_08,
88632 arg_09,
88633 arg_10);
88634}
88635#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
88636
88637#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
88638template <class t_HEAD, class t_TAIL_01,
88639 class t_TAIL_02,
88640 class t_TAIL_03,
88641 class t_TAIL_04,
88642 class t_TAIL_05,
88643 class t_TAIL_06,
88644 class t_TAIL_07>
88645template <size_t t_INDEX,
88646 class t_ARG_01,
88647 class t_ARG_02,
88648 class t_ARG_03,
88649 class t_ARG_04,
88650 class t_ARG_05,
88651 class t_ARG_06,
88652 class t_ARG_07,
88653 class t_ARG_08,
88654 class t_ARG_09,
88655 class t_ARG_10>
88656inline
88657Variant_Base<t_HEAD, t_TAIL_01,
88658 t_TAIL_02,
88659 t_TAIL_03,
88660 t_TAIL_04,
88661 t_TAIL_05,
88662 t_TAIL_06,
88663 t_TAIL_07,
88664 BSLS_COMPILERFEATURES_FILLT(11)
88665 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88666 const t_ARG_01& arg_01,
88667 const t_ARG_02& arg_02,
88668 const t_ARG_03& arg_03,
88669 const t_ARG_04& arg_04,
88670 const t_ARG_05& arg_05,
88671 const t_ARG_06& arg_06,
88672 const t_ARG_07& arg_07,
88673 const t_ARG_08& arg_08,
88674 const t_ARG_09& arg_09,
88675 const t_ARG_10& arg_10)
88676: AllocBase()
88677, d_type(t_INDEX)
88678{
88679 typedef typename bsl::remove_cv<
88681 Alt_Type;
88682
88683 BloombergLP::bslma::ConstructionUtil::construct(
88684 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88685 AllocBase::mechanism(),
88686 arg_01,
88687 arg_02,
88688 arg_03,
88689 arg_04,
88690 arg_05,
88691 arg_06,
88692 arg_07,
88693 arg_08,
88694 arg_09,
88695 arg_10);
88696}
88697#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
88698
88699#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
88700template <class t_HEAD, class t_TAIL_01,
88701 class t_TAIL_02,
88702 class t_TAIL_03,
88703 class t_TAIL_04,
88704 class t_TAIL_05,
88705 class t_TAIL_06,
88706 class t_TAIL_07,
88707 class t_TAIL_08>
88708template <size_t t_INDEX,
88709 class t_ARG_01,
88710 class t_ARG_02,
88711 class t_ARG_03,
88712 class t_ARG_04,
88713 class t_ARG_05,
88714 class t_ARG_06,
88715 class t_ARG_07,
88716 class t_ARG_08,
88717 class t_ARG_09,
88718 class t_ARG_10>
88719inline
88720Variant_Base<t_HEAD, t_TAIL_01,
88721 t_TAIL_02,
88722 t_TAIL_03,
88723 t_TAIL_04,
88724 t_TAIL_05,
88725 t_TAIL_06,
88726 t_TAIL_07,
88727 t_TAIL_08,
88728 BSLS_COMPILERFEATURES_FILLT(10)
88729 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88730 const t_ARG_01& arg_01,
88731 const t_ARG_02& arg_02,
88732 const t_ARG_03& arg_03,
88733 const t_ARG_04& arg_04,
88734 const t_ARG_05& arg_05,
88735 const t_ARG_06& arg_06,
88736 const t_ARG_07& arg_07,
88737 const t_ARG_08& arg_08,
88738 const t_ARG_09& arg_09,
88739 const t_ARG_10& arg_10)
88740: AllocBase()
88741, d_type(t_INDEX)
88742{
88743 typedef typename bsl::remove_cv<
88745 Alt_Type;
88746
88747 BloombergLP::bslma::ConstructionUtil::construct(
88748 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88749 AllocBase::mechanism(),
88750 arg_01,
88751 arg_02,
88752 arg_03,
88753 arg_04,
88754 arg_05,
88755 arg_06,
88756 arg_07,
88757 arg_08,
88758 arg_09,
88759 arg_10);
88760}
88761#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
88762
88763#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
88764template <class t_HEAD, class t_TAIL_01,
88765 class t_TAIL_02,
88766 class t_TAIL_03,
88767 class t_TAIL_04,
88768 class t_TAIL_05,
88769 class t_TAIL_06,
88770 class t_TAIL_07,
88771 class t_TAIL_08,
88772 class t_TAIL_09>
88773template <size_t t_INDEX,
88774 class t_ARG_01,
88775 class t_ARG_02,
88776 class t_ARG_03,
88777 class t_ARG_04,
88778 class t_ARG_05,
88779 class t_ARG_06,
88780 class t_ARG_07,
88781 class t_ARG_08,
88782 class t_ARG_09,
88783 class t_ARG_10>
88784inline
88785Variant_Base<t_HEAD, t_TAIL_01,
88786 t_TAIL_02,
88787 t_TAIL_03,
88788 t_TAIL_04,
88789 t_TAIL_05,
88790 t_TAIL_06,
88791 t_TAIL_07,
88792 t_TAIL_08,
88793 t_TAIL_09,
88794 BSLS_COMPILERFEATURES_FILLT( 9)
88795 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88796 const t_ARG_01& arg_01,
88797 const t_ARG_02& arg_02,
88798 const t_ARG_03& arg_03,
88799 const t_ARG_04& arg_04,
88800 const t_ARG_05& arg_05,
88801 const t_ARG_06& arg_06,
88802 const t_ARG_07& arg_07,
88803 const t_ARG_08& arg_08,
88804 const t_ARG_09& arg_09,
88805 const t_ARG_10& arg_10)
88806: AllocBase()
88807, d_type(t_INDEX)
88808{
88809 typedef typename bsl::remove_cv<
88811 Alt_Type;
88812
88813 BloombergLP::bslma::ConstructionUtil::construct(
88814 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88815 AllocBase::mechanism(),
88816 arg_01,
88817 arg_02,
88818 arg_03,
88819 arg_04,
88820 arg_05,
88821 arg_06,
88822 arg_07,
88823 arg_08,
88824 arg_09,
88825 arg_10);
88826}
88827#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
88828
88829#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
88830template <class t_HEAD, class t_TAIL_01,
88831 class t_TAIL_02,
88832 class t_TAIL_03,
88833 class t_TAIL_04,
88834 class t_TAIL_05,
88835 class t_TAIL_06,
88836 class t_TAIL_07,
88837 class t_TAIL_08,
88838 class t_TAIL_09,
88839 class t_TAIL_10>
88840template <size_t t_INDEX,
88841 class t_ARG_01,
88842 class t_ARG_02,
88843 class t_ARG_03,
88844 class t_ARG_04,
88845 class t_ARG_05,
88846 class t_ARG_06,
88847 class t_ARG_07,
88848 class t_ARG_08,
88849 class t_ARG_09,
88850 class t_ARG_10>
88851inline
88852Variant_Base<t_HEAD, t_TAIL_01,
88853 t_TAIL_02,
88854 t_TAIL_03,
88855 t_TAIL_04,
88856 t_TAIL_05,
88857 t_TAIL_06,
88858 t_TAIL_07,
88859 t_TAIL_08,
88860 t_TAIL_09,
88861 t_TAIL_10,
88862 BSLS_COMPILERFEATURES_FILLT( 8)
88863 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88864 const t_ARG_01& arg_01,
88865 const t_ARG_02& arg_02,
88866 const t_ARG_03& arg_03,
88867 const t_ARG_04& arg_04,
88868 const t_ARG_05& arg_05,
88869 const t_ARG_06& arg_06,
88870 const t_ARG_07& arg_07,
88871 const t_ARG_08& arg_08,
88872 const t_ARG_09& arg_09,
88873 const t_ARG_10& arg_10)
88874: AllocBase()
88875, d_type(t_INDEX)
88876{
88877 typedef typename bsl::remove_cv<
88879 Alt_Type;
88880
88881 BloombergLP::bslma::ConstructionUtil::construct(
88882 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88883 AllocBase::mechanism(),
88884 arg_01,
88885 arg_02,
88886 arg_03,
88887 arg_04,
88888 arg_05,
88889 arg_06,
88890 arg_07,
88891 arg_08,
88892 arg_09,
88893 arg_10);
88894}
88895#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
88896
88897#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
88898template <class t_HEAD, class t_TAIL_01,
88899 class t_TAIL_02,
88900 class t_TAIL_03,
88901 class t_TAIL_04,
88902 class t_TAIL_05,
88903 class t_TAIL_06,
88904 class t_TAIL_07,
88905 class t_TAIL_08,
88906 class t_TAIL_09,
88907 class t_TAIL_10,
88908 class t_TAIL_11>
88909template <size_t t_INDEX,
88910 class t_ARG_01,
88911 class t_ARG_02,
88912 class t_ARG_03,
88913 class t_ARG_04,
88914 class t_ARG_05,
88915 class t_ARG_06,
88916 class t_ARG_07,
88917 class t_ARG_08,
88918 class t_ARG_09,
88919 class t_ARG_10>
88920inline
88921Variant_Base<t_HEAD, t_TAIL_01,
88922 t_TAIL_02,
88923 t_TAIL_03,
88924 t_TAIL_04,
88925 t_TAIL_05,
88926 t_TAIL_06,
88927 t_TAIL_07,
88928 t_TAIL_08,
88929 t_TAIL_09,
88930 t_TAIL_10,
88931 t_TAIL_11,
88932 BSLS_COMPILERFEATURES_FILLT( 7)
88933 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
88934 const t_ARG_01& arg_01,
88935 const t_ARG_02& arg_02,
88936 const t_ARG_03& arg_03,
88937 const t_ARG_04& arg_04,
88938 const t_ARG_05& arg_05,
88939 const t_ARG_06& arg_06,
88940 const t_ARG_07& arg_07,
88941 const t_ARG_08& arg_08,
88942 const t_ARG_09& arg_09,
88943 const t_ARG_10& arg_10)
88944: AllocBase()
88945, d_type(t_INDEX)
88946{
88947 typedef typename bsl::remove_cv<
88949 Alt_Type;
88950
88951 BloombergLP::bslma::ConstructionUtil::construct(
88952 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
88953 AllocBase::mechanism(),
88954 arg_01,
88955 arg_02,
88956 arg_03,
88957 arg_04,
88958 arg_05,
88959 arg_06,
88960 arg_07,
88961 arg_08,
88962 arg_09,
88963 arg_10);
88964}
88965#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
88966
88967#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
88968template <class t_HEAD, class t_TAIL_01,
88969 class t_TAIL_02,
88970 class t_TAIL_03,
88971 class t_TAIL_04,
88972 class t_TAIL_05,
88973 class t_TAIL_06,
88974 class t_TAIL_07,
88975 class t_TAIL_08,
88976 class t_TAIL_09,
88977 class t_TAIL_10,
88978 class t_TAIL_11,
88979 class t_TAIL_12>
88980template <size_t t_INDEX,
88981 class t_ARG_01,
88982 class t_ARG_02,
88983 class t_ARG_03,
88984 class t_ARG_04,
88985 class t_ARG_05,
88986 class t_ARG_06,
88987 class t_ARG_07,
88988 class t_ARG_08,
88989 class t_ARG_09,
88990 class t_ARG_10>
88991inline
88992Variant_Base<t_HEAD, t_TAIL_01,
88993 t_TAIL_02,
88994 t_TAIL_03,
88995 t_TAIL_04,
88996 t_TAIL_05,
88997 t_TAIL_06,
88998 t_TAIL_07,
88999 t_TAIL_08,
89000 t_TAIL_09,
89001 t_TAIL_10,
89002 t_TAIL_11,
89003 t_TAIL_12,
89004 BSLS_COMPILERFEATURES_FILLT( 6)
89005 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
89006 const t_ARG_01& arg_01,
89007 const t_ARG_02& arg_02,
89008 const t_ARG_03& arg_03,
89009 const t_ARG_04& arg_04,
89010 const t_ARG_05& arg_05,
89011 const t_ARG_06& arg_06,
89012 const t_ARG_07& arg_07,
89013 const t_ARG_08& arg_08,
89014 const t_ARG_09& arg_09,
89015 const t_ARG_10& arg_10)
89016: AllocBase()
89017, d_type(t_INDEX)
89018{
89019 typedef typename bsl::remove_cv<
89021 Alt_Type;
89022
89023 BloombergLP::bslma::ConstructionUtil::construct(
89024 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
89025 AllocBase::mechanism(),
89026 arg_01,
89027 arg_02,
89028 arg_03,
89029 arg_04,
89030 arg_05,
89031 arg_06,
89032 arg_07,
89033 arg_08,
89034 arg_09,
89035 arg_10);
89036}
89037#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
89038
89039#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
89040template <class t_HEAD, class t_TAIL_01,
89041 class t_TAIL_02,
89042 class t_TAIL_03,
89043 class t_TAIL_04,
89044 class t_TAIL_05,
89045 class t_TAIL_06,
89046 class t_TAIL_07,
89047 class t_TAIL_08,
89048 class t_TAIL_09,
89049 class t_TAIL_10,
89050 class t_TAIL_11,
89051 class t_TAIL_12,
89052 class t_TAIL_13>
89053template <size_t t_INDEX,
89054 class t_ARG_01,
89055 class t_ARG_02,
89056 class t_ARG_03,
89057 class t_ARG_04,
89058 class t_ARG_05,
89059 class t_ARG_06,
89060 class t_ARG_07,
89061 class t_ARG_08,
89062 class t_ARG_09,
89063 class t_ARG_10>
89064inline
89065Variant_Base<t_HEAD, t_TAIL_01,
89066 t_TAIL_02,
89067 t_TAIL_03,
89068 t_TAIL_04,
89069 t_TAIL_05,
89070 t_TAIL_06,
89071 t_TAIL_07,
89072 t_TAIL_08,
89073 t_TAIL_09,
89074 t_TAIL_10,
89075 t_TAIL_11,
89076 t_TAIL_12,
89077 t_TAIL_13,
89078 BSLS_COMPILERFEATURES_FILLT( 5)
89079 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
89080 const t_ARG_01& arg_01,
89081 const t_ARG_02& arg_02,
89082 const t_ARG_03& arg_03,
89083 const t_ARG_04& arg_04,
89084 const t_ARG_05& arg_05,
89085 const t_ARG_06& arg_06,
89086 const t_ARG_07& arg_07,
89087 const t_ARG_08& arg_08,
89088 const t_ARG_09& arg_09,
89089 const t_ARG_10& arg_10)
89090: AllocBase()
89091, d_type(t_INDEX)
89092{
89093 typedef typename bsl::remove_cv<
89095 Alt_Type;
89096
89097 BloombergLP::bslma::ConstructionUtil::construct(
89098 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
89099 AllocBase::mechanism(),
89100 arg_01,
89101 arg_02,
89102 arg_03,
89103 arg_04,
89104 arg_05,
89105 arg_06,
89106 arg_07,
89107 arg_08,
89108 arg_09,
89109 arg_10);
89110}
89111#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
89112
89113#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
89114template <class t_HEAD, class t_TAIL_01,
89115 class t_TAIL_02,
89116 class t_TAIL_03,
89117 class t_TAIL_04,
89118 class t_TAIL_05,
89119 class t_TAIL_06,
89120 class t_TAIL_07,
89121 class t_TAIL_08,
89122 class t_TAIL_09,
89123 class t_TAIL_10,
89124 class t_TAIL_11,
89125 class t_TAIL_12,
89126 class t_TAIL_13,
89127 class t_TAIL_14>
89128template <size_t t_INDEX,
89129 class t_ARG_01,
89130 class t_ARG_02,
89131 class t_ARG_03,
89132 class t_ARG_04,
89133 class t_ARG_05,
89134 class t_ARG_06,
89135 class t_ARG_07,
89136 class t_ARG_08,
89137 class t_ARG_09,
89138 class t_ARG_10>
89139inline
89140Variant_Base<t_HEAD, t_TAIL_01,
89141 t_TAIL_02,
89142 t_TAIL_03,
89143 t_TAIL_04,
89144 t_TAIL_05,
89145 t_TAIL_06,
89146 t_TAIL_07,
89147 t_TAIL_08,
89148 t_TAIL_09,
89149 t_TAIL_10,
89150 t_TAIL_11,
89151 t_TAIL_12,
89152 t_TAIL_13,
89153 t_TAIL_14,
89154 BSLS_COMPILERFEATURES_FILLT( 4)
89155 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
89156 const t_ARG_01& arg_01,
89157 const t_ARG_02& arg_02,
89158 const t_ARG_03& arg_03,
89159 const t_ARG_04& arg_04,
89160 const t_ARG_05& arg_05,
89161 const t_ARG_06& arg_06,
89162 const t_ARG_07& arg_07,
89163 const t_ARG_08& arg_08,
89164 const t_ARG_09& arg_09,
89165 const t_ARG_10& arg_10)
89166: AllocBase()
89167, d_type(t_INDEX)
89168{
89169 typedef typename bsl::remove_cv<
89171 Alt_Type;
89172
89173 BloombergLP::bslma::ConstructionUtil::construct(
89174 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
89175 AllocBase::mechanism(),
89176 arg_01,
89177 arg_02,
89178 arg_03,
89179 arg_04,
89180 arg_05,
89181 arg_06,
89182 arg_07,
89183 arg_08,
89184 arg_09,
89185 arg_10);
89186}
89187#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
89188
89189#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
89190template <class t_HEAD, class t_TAIL_01,
89191 class t_TAIL_02,
89192 class t_TAIL_03,
89193 class t_TAIL_04,
89194 class t_TAIL_05,
89195 class t_TAIL_06,
89196 class t_TAIL_07,
89197 class t_TAIL_08,
89198 class t_TAIL_09,
89199 class t_TAIL_10,
89200 class t_TAIL_11,
89201 class t_TAIL_12,
89202 class t_TAIL_13,
89203 class t_TAIL_14,
89204 class t_TAIL_15>
89205template <size_t t_INDEX,
89206 class t_ARG_01,
89207 class t_ARG_02,
89208 class t_ARG_03,
89209 class t_ARG_04,
89210 class t_ARG_05,
89211 class t_ARG_06,
89212 class t_ARG_07,
89213 class t_ARG_08,
89214 class t_ARG_09,
89215 class t_ARG_10>
89216inline
89217Variant_Base<t_HEAD, t_TAIL_01,
89218 t_TAIL_02,
89219 t_TAIL_03,
89220 t_TAIL_04,
89221 t_TAIL_05,
89222 t_TAIL_06,
89223 t_TAIL_07,
89224 t_TAIL_08,
89225 t_TAIL_09,
89226 t_TAIL_10,
89227 t_TAIL_11,
89228 t_TAIL_12,
89229 t_TAIL_13,
89230 t_TAIL_14,
89231 t_TAIL_15,
89232 BSLS_COMPILERFEATURES_FILLT( 3)
89233 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
89234 const t_ARG_01& arg_01,
89235 const t_ARG_02& arg_02,
89236 const t_ARG_03& arg_03,
89237 const t_ARG_04& arg_04,
89238 const t_ARG_05& arg_05,
89239 const t_ARG_06& arg_06,
89240 const t_ARG_07& arg_07,
89241 const t_ARG_08& arg_08,
89242 const t_ARG_09& arg_09,
89243 const t_ARG_10& arg_10)
89244: AllocBase()
89245, d_type(t_INDEX)
89246{
89247 typedef typename bsl::remove_cv<
89249 Alt_Type;
89250
89251 BloombergLP::bslma::ConstructionUtil::construct(
89252 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
89253 AllocBase::mechanism(),
89254 arg_01,
89255 arg_02,
89256 arg_03,
89257 arg_04,
89258 arg_05,
89259 arg_06,
89260 arg_07,
89261 arg_08,
89262 arg_09,
89263 arg_10);
89264}
89265#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
89266
89267#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
89268template <class t_HEAD, class t_TAIL_01,
89269 class t_TAIL_02,
89270 class t_TAIL_03,
89271 class t_TAIL_04,
89272 class t_TAIL_05,
89273 class t_TAIL_06,
89274 class t_TAIL_07,
89275 class t_TAIL_08,
89276 class t_TAIL_09,
89277 class t_TAIL_10,
89278 class t_TAIL_11,
89279 class t_TAIL_12,
89280 class t_TAIL_13,
89281 class t_TAIL_14,
89282 class t_TAIL_15,
89283 class t_TAIL_16>
89284template <size_t t_INDEX,
89285 class t_ARG_01,
89286 class t_ARG_02,
89287 class t_ARG_03,
89288 class t_ARG_04,
89289 class t_ARG_05,
89290 class t_ARG_06,
89291 class t_ARG_07,
89292 class t_ARG_08,
89293 class t_ARG_09,
89294 class t_ARG_10>
89295inline
89296Variant_Base<t_HEAD, t_TAIL_01,
89297 t_TAIL_02,
89298 t_TAIL_03,
89299 t_TAIL_04,
89300 t_TAIL_05,
89301 t_TAIL_06,
89302 t_TAIL_07,
89303 t_TAIL_08,
89304 t_TAIL_09,
89305 t_TAIL_10,
89306 t_TAIL_11,
89307 t_TAIL_12,
89308 t_TAIL_13,
89309 t_TAIL_14,
89310 t_TAIL_15,
89311 t_TAIL_16,
89312 BSLS_COMPILERFEATURES_FILLT( 2)
89313 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
89314 const t_ARG_01& arg_01,
89315 const t_ARG_02& arg_02,
89316 const t_ARG_03& arg_03,
89317 const t_ARG_04& arg_04,
89318 const t_ARG_05& arg_05,
89319 const t_ARG_06& arg_06,
89320 const t_ARG_07& arg_07,
89321 const t_ARG_08& arg_08,
89322 const t_ARG_09& arg_09,
89323 const t_ARG_10& arg_10)
89324: AllocBase()
89325, d_type(t_INDEX)
89326{
89327 typedef typename bsl::remove_cv<
89329 Alt_Type;
89330
89331 BloombergLP::bslma::ConstructionUtil::construct(
89332 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
89333 AllocBase::mechanism(),
89334 arg_01,
89335 arg_02,
89336 arg_03,
89337 arg_04,
89338 arg_05,
89339 arg_06,
89340 arg_07,
89341 arg_08,
89342 arg_09,
89343 arg_10);
89344}
89345#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
89346
89347#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
89348template <class t_HEAD, class t_TAIL_01,
89349 class t_TAIL_02,
89350 class t_TAIL_03,
89351 class t_TAIL_04,
89352 class t_TAIL_05,
89353 class t_TAIL_06,
89354 class t_TAIL_07,
89355 class t_TAIL_08,
89356 class t_TAIL_09,
89357 class t_TAIL_10,
89358 class t_TAIL_11,
89359 class t_TAIL_12,
89360 class t_TAIL_13,
89361 class t_TAIL_14,
89362 class t_TAIL_15,
89363 class t_TAIL_16,
89364 class t_TAIL_17>
89365template <size_t t_INDEX,
89366 class t_ARG_01,
89367 class t_ARG_02,
89368 class t_ARG_03,
89369 class t_ARG_04,
89370 class t_ARG_05,
89371 class t_ARG_06,
89372 class t_ARG_07,
89373 class t_ARG_08,
89374 class t_ARG_09,
89375 class t_ARG_10>
89376inline
89377Variant_Base<t_HEAD, t_TAIL_01,
89378 t_TAIL_02,
89379 t_TAIL_03,
89380 t_TAIL_04,
89381 t_TAIL_05,
89382 t_TAIL_06,
89383 t_TAIL_07,
89384 t_TAIL_08,
89385 t_TAIL_09,
89386 t_TAIL_10,
89387 t_TAIL_11,
89388 t_TAIL_12,
89389 t_TAIL_13,
89390 t_TAIL_14,
89391 t_TAIL_15,
89392 t_TAIL_16,
89393 t_TAIL_17,
89394 BSLS_COMPILERFEATURES_FILLT( 1)
89395 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
89396 const t_ARG_01& arg_01,
89397 const t_ARG_02& arg_02,
89398 const t_ARG_03& arg_03,
89399 const t_ARG_04& arg_04,
89400 const t_ARG_05& arg_05,
89401 const t_ARG_06& arg_06,
89402 const t_ARG_07& arg_07,
89403 const t_ARG_08& arg_08,
89404 const t_ARG_09& arg_09,
89405 const t_ARG_10& arg_10)
89406: AllocBase()
89407, d_type(t_INDEX)
89408{
89409 typedef typename bsl::remove_cv<
89411 Alt_Type;
89412
89413 BloombergLP::bslma::ConstructionUtil::construct(
89414 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
89415 AllocBase::mechanism(),
89416 arg_01,
89417 arg_02,
89418 arg_03,
89419 arg_04,
89420 arg_05,
89421 arg_06,
89422 arg_07,
89423 arg_08,
89424 arg_09,
89425 arg_10);
89426}
89427#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
89428
89429#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
89430template <class t_HEAD, class t_TAIL_01,
89431 class t_TAIL_02,
89432 class t_TAIL_03,
89433 class t_TAIL_04,
89434 class t_TAIL_05,
89435 class t_TAIL_06,
89436 class t_TAIL_07,
89437 class t_TAIL_08,
89438 class t_TAIL_09,
89439 class t_TAIL_10,
89440 class t_TAIL_11,
89441 class t_TAIL_12,
89442 class t_TAIL_13,
89443 class t_TAIL_14,
89444 class t_TAIL_15,
89445 class t_TAIL_16,
89446 class t_TAIL_17,
89447 class t_TAIL_18>
89448template <size_t t_INDEX,
89449 class t_ARG_01,
89450 class t_ARG_02,
89451 class t_ARG_03,
89452 class t_ARG_04,
89453 class t_ARG_05,
89454 class t_ARG_06,
89455 class t_ARG_07,
89456 class t_ARG_08,
89457 class t_ARG_09,
89458 class t_ARG_10>
89459inline
89460Variant_Base<t_HEAD, t_TAIL_01,
89461 t_TAIL_02,
89462 t_TAIL_03,
89463 t_TAIL_04,
89464 t_TAIL_05,
89465 t_TAIL_06,
89466 t_TAIL_07,
89467 t_TAIL_08,
89468 t_TAIL_09,
89469 t_TAIL_10,
89470 t_TAIL_11,
89471 t_TAIL_12,
89472 t_TAIL_13,
89473 t_TAIL_14,
89474 t_TAIL_15,
89475 t_TAIL_16,
89476 t_TAIL_17,
89477 t_TAIL_18,
89478 BSLS_COMPILERFEATURES_FILLT( 0)
89479 >::Variant_Base(bsl::in_place_index_t<t_INDEX>,
89480 const t_ARG_01& arg_01,
89481 const t_ARG_02& arg_02,
89482 const t_ARG_03& arg_03,
89483 const t_ARG_04& arg_04,
89484 const t_ARG_05& arg_05,
89485 const t_ARG_06& arg_06,
89486 const t_ARG_07& arg_07,
89487 const t_ARG_08& arg_08,
89488 const t_ARG_09& arg_09,
89489 const t_ARG_10& arg_10)
89490: AllocBase()
89491, d_type(t_INDEX)
89492{
89493 typedef typename bsl::remove_cv<
89495 Alt_Type;
89496
89497 BloombergLP::bslma::ConstructionUtil::construct(
89498 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
89499 AllocBase::mechanism(),
89500 arg_01,
89501 arg_02,
89502 arg_03,
89503 arg_04,
89504 arg_05,
89505 arg_06,
89506 arg_07,
89507 arg_08,
89508 arg_09,
89509 arg_10);
89510}
89511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
89512
89513
89514#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
89515template <class t_HEAD>
89516inline
89517Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
89518 >::Variant_Base(bsl::allocator_arg_t,
89519 allocator_type allocator)
89520: AllocBase(allocator)
89521, d_type(0)
89522{
89523 BloombergLP::bslma::ConstructionUtil::construct(
89524 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89525 AllocBase::mechanism());
89526}
89527#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
89528
89529#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
89530template <class t_HEAD, class t_TAIL_01>
89531inline
89532Variant_Base<t_HEAD, t_TAIL_01,
89533 BSLS_COMPILERFEATURES_FILLT(17)
89534 >::Variant_Base(bsl::allocator_arg_t,
89535 allocator_type allocator)
89536: AllocBase(allocator)
89537, d_type(0)
89538{
89539 BloombergLP::bslma::ConstructionUtil::construct(
89540 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89541 AllocBase::mechanism());
89542}
89543#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
89544
89545#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
89546template <class t_HEAD, class t_TAIL_01,
89547 class t_TAIL_02>
89548inline
89549Variant_Base<t_HEAD, t_TAIL_01,
89550 t_TAIL_02,
89551 BSLS_COMPILERFEATURES_FILLT(16)
89552 >::Variant_Base(bsl::allocator_arg_t,
89553 allocator_type allocator)
89554: AllocBase(allocator)
89555, d_type(0)
89556{
89557 BloombergLP::bslma::ConstructionUtil::construct(
89558 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89559 AllocBase::mechanism());
89560}
89561#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
89562
89563#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
89564template <class t_HEAD, class t_TAIL_01,
89565 class t_TAIL_02,
89566 class t_TAIL_03>
89567inline
89568Variant_Base<t_HEAD, t_TAIL_01,
89569 t_TAIL_02,
89570 t_TAIL_03,
89571 BSLS_COMPILERFEATURES_FILLT(15)
89572 >::Variant_Base(bsl::allocator_arg_t,
89573 allocator_type allocator)
89574: AllocBase(allocator)
89575, d_type(0)
89576{
89577 BloombergLP::bslma::ConstructionUtil::construct(
89578 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89579 AllocBase::mechanism());
89580}
89581#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
89582
89583#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
89584template <class t_HEAD, class t_TAIL_01,
89585 class t_TAIL_02,
89586 class t_TAIL_03,
89587 class t_TAIL_04>
89588inline
89589Variant_Base<t_HEAD, t_TAIL_01,
89590 t_TAIL_02,
89591 t_TAIL_03,
89592 t_TAIL_04,
89593 BSLS_COMPILERFEATURES_FILLT(14)
89594 >::Variant_Base(bsl::allocator_arg_t,
89595 allocator_type allocator)
89596: AllocBase(allocator)
89597, d_type(0)
89598{
89599 BloombergLP::bslma::ConstructionUtil::construct(
89600 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89601 AllocBase::mechanism());
89602}
89603#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
89604
89605#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
89606template <class t_HEAD, class t_TAIL_01,
89607 class t_TAIL_02,
89608 class t_TAIL_03,
89609 class t_TAIL_04,
89610 class t_TAIL_05>
89611inline
89612Variant_Base<t_HEAD, t_TAIL_01,
89613 t_TAIL_02,
89614 t_TAIL_03,
89615 t_TAIL_04,
89616 t_TAIL_05,
89617 BSLS_COMPILERFEATURES_FILLT(13)
89618 >::Variant_Base(bsl::allocator_arg_t,
89619 allocator_type allocator)
89620: AllocBase(allocator)
89621, d_type(0)
89622{
89623 BloombergLP::bslma::ConstructionUtil::construct(
89624 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89625 AllocBase::mechanism());
89626}
89627#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
89628
89629#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
89630template <class t_HEAD, class t_TAIL_01,
89631 class t_TAIL_02,
89632 class t_TAIL_03,
89633 class t_TAIL_04,
89634 class t_TAIL_05,
89635 class t_TAIL_06>
89636inline
89637Variant_Base<t_HEAD, t_TAIL_01,
89638 t_TAIL_02,
89639 t_TAIL_03,
89640 t_TAIL_04,
89641 t_TAIL_05,
89642 t_TAIL_06,
89643 BSLS_COMPILERFEATURES_FILLT(12)
89644 >::Variant_Base(bsl::allocator_arg_t,
89645 allocator_type allocator)
89646: AllocBase(allocator)
89647, d_type(0)
89648{
89649 BloombergLP::bslma::ConstructionUtil::construct(
89650 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89651 AllocBase::mechanism());
89652}
89653#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
89654
89655#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
89656template <class t_HEAD, class t_TAIL_01,
89657 class t_TAIL_02,
89658 class t_TAIL_03,
89659 class t_TAIL_04,
89660 class t_TAIL_05,
89661 class t_TAIL_06,
89662 class t_TAIL_07>
89663inline
89664Variant_Base<t_HEAD, t_TAIL_01,
89665 t_TAIL_02,
89666 t_TAIL_03,
89667 t_TAIL_04,
89668 t_TAIL_05,
89669 t_TAIL_06,
89670 t_TAIL_07,
89671 BSLS_COMPILERFEATURES_FILLT(11)
89672 >::Variant_Base(bsl::allocator_arg_t,
89673 allocator_type allocator)
89674: AllocBase(allocator)
89675, d_type(0)
89676{
89677 BloombergLP::bslma::ConstructionUtil::construct(
89678 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89679 AllocBase::mechanism());
89680}
89681#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
89682
89683#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
89684template <class t_HEAD, class t_TAIL_01,
89685 class t_TAIL_02,
89686 class t_TAIL_03,
89687 class t_TAIL_04,
89688 class t_TAIL_05,
89689 class t_TAIL_06,
89690 class t_TAIL_07,
89691 class t_TAIL_08>
89692inline
89693Variant_Base<t_HEAD, t_TAIL_01,
89694 t_TAIL_02,
89695 t_TAIL_03,
89696 t_TAIL_04,
89697 t_TAIL_05,
89698 t_TAIL_06,
89699 t_TAIL_07,
89700 t_TAIL_08,
89701 BSLS_COMPILERFEATURES_FILLT(10)
89702 >::Variant_Base(bsl::allocator_arg_t,
89703 allocator_type allocator)
89704: AllocBase(allocator)
89705, d_type(0)
89706{
89707 BloombergLP::bslma::ConstructionUtil::construct(
89708 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89709 AllocBase::mechanism());
89710}
89711#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
89712
89713#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
89714template <class t_HEAD, class t_TAIL_01,
89715 class t_TAIL_02,
89716 class t_TAIL_03,
89717 class t_TAIL_04,
89718 class t_TAIL_05,
89719 class t_TAIL_06,
89720 class t_TAIL_07,
89721 class t_TAIL_08,
89722 class t_TAIL_09>
89723inline
89724Variant_Base<t_HEAD, t_TAIL_01,
89725 t_TAIL_02,
89726 t_TAIL_03,
89727 t_TAIL_04,
89728 t_TAIL_05,
89729 t_TAIL_06,
89730 t_TAIL_07,
89731 t_TAIL_08,
89732 t_TAIL_09,
89733 BSLS_COMPILERFEATURES_FILLT( 9)
89734 >::Variant_Base(bsl::allocator_arg_t,
89735 allocator_type allocator)
89736: AllocBase(allocator)
89737, d_type(0)
89738{
89739 BloombergLP::bslma::ConstructionUtil::construct(
89740 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89741 AllocBase::mechanism());
89742}
89743#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
89744
89745#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
89746template <class t_HEAD, class t_TAIL_01,
89747 class t_TAIL_02,
89748 class t_TAIL_03,
89749 class t_TAIL_04,
89750 class t_TAIL_05,
89751 class t_TAIL_06,
89752 class t_TAIL_07,
89753 class t_TAIL_08,
89754 class t_TAIL_09,
89755 class t_TAIL_10>
89756inline
89757Variant_Base<t_HEAD, t_TAIL_01,
89758 t_TAIL_02,
89759 t_TAIL_03,
89760 t_TAIL_04,
89761 t_TAIL_05,
89762 t_TAIL_06,
89763 t_TAIL_07,
89764 t_TAIL_08,
89765 t_TAIL_09,
89766 t_TAIL_10,
89767 BSLS_COMPILERFEATURES_FILLT( 8)
89768 >::Variant_Base(bsl::allocator_arg_t,
89769 allocator_type allocator)
89770: AllocBase(allocator)
89771, d_type(0)
89772{
89773 BloombergLP::bslma::ConstructionUtil::construct(
89774 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89775 AllocBase::mechanism());
89776}
89777#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
89778
89779#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
89780template <class t_HEAD, class t_TAIL_01,
89781 class t_TAIL_02,
89782 class t_TAIL_03,
89783 class t_TAIL_04,
89784 class t_TAIL_05,
89785 class t_TAIL_06,
89786 class t_TAIL_07,
89787 class t_TAIL_08,
89788 class t_TAIL_09,
89789 class t_TAIL_10,
89790 class t_TAIL_11>
89791inline
89792Variant_Base<t_HEAD, t_TAIL_01,
89793 t_TAIL_02,
89794 t_TAIL_03,
89795 t_TAIL_04,
89796 t_TAIL_05,
89797 t_TAIL_06,
89798 t_TAIL_07,
89799 t_TAIL_08,
89800 t_TAIL_09,
89801 t_TAIL_10,
89802 t_TAIL_11,
89803 BSLS_COMPILERFEATURES_FILLT( 7)
89804 >::Variant_Base(bsl::allocator_arg_t,
89805 allocator_type allocator)
89806: AllocBase(allocator)
89807, d_type(0)
89808{
89809 BloombergLP::bslma::ConstructionUtil::construct(
89810 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89811 AllocBase::mechanism());
89812}
89813#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
89814
89815#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
89816template <class t_HEAD, class t_TAIL_01,
89817 class t_TAIL_02,
89818 class t_TAIL_03,
89819 class t_TAIL_04,
89820 class t_TAIL_05,
89821 class t_TAIL_06,
89822 class t_TAIL_07,
89823 class t_TAIL_08,
89824 class t_TAIL_09,
89825 class t_TAIL_10,
89826 class t_TAIL_11,
89827 class t_TAIL_12>
89828inline
89829Variant_Base<t_HEAD, t_TAIL_01,
89830 t_TAIL_02,
89831 t_TAIL_03,
89832 t_TAIL_04,
89833 t_TAIL_05,
89834 t_TAIL_06,
89835 t_TAIL_07,
89836 t_TAIL_08,
89837 t_TAIL_09,
89838 t_TAIL_10,
89839 t_TAIL_11,
89840 t_TAIL_12,
89841 BSLS_COMPILERFEATURES_FILLT( 6)
89842 >::Variant_Base(bsl::allocator_arg_t,
89843 allocator_type allocator)
89844: AllocBase(allocator)
89845, d_type(0)
89846{
89847 BloombergLP::bslma::ConstructionUtil::construct(
89848 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89849 AllocBase::mechanism());
89850}
89851#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
89852
89853#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
89854template <class t_HEAD, class t_TAIL_01,
89855 class t_TAIL_02,
89856 class t_TAIL_03,
89857 class t_TAIL_04,
89858 class t_TAIL_05,
89859 class t_TAIL_06,
89860 class t_TAIL_07,
89861 class t_TAIL_08,
89862 class t_TAIL_09,
89863 class t_TAIL_10,
89864 class t_TAIL_11,
89865 class t_TAIL_12,
89866 class t_TAIL_13>
89867inline
89868Variant_Base<t_HEAD, t_TAIL_01,
89869 t_TAIL_02,
89870 t_TAIL_03,
89871 t_TAIL_04,
89872 t_TAIL_05,
89873 t_TAIL_06,
89874 t_TAIL_07,
89875 t_TAIL_08,
89876 t_TAIL_09,
89877 t_TAIL_10,
89878 t_TAIL_11,
89879 t_TAIL_12,
89880 t_TAIL_13,
89881 BSLS_COMPILERFEATURES_FILLT( 5)
89882 >::Variant_Base(bsl::allocator_arg_t,
89883 allocator_type allocator)
89884: AllocBase(allocator)
89885, d_type(0)
89886{
89887 BloombergLP::bslma::ConstructionUtil::construct(
89888 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89889 AllocBase::mechanism());
89890}
89891#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
89892
89893#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
89894template <class t_HEAD, class t_TAIL_01,
89895 class t_TAIL_02,
89896 class t_TAIL_03,
89897 class t_TAIL_04,
89898 class t_TAIL_05,
89899 class t_TAIL_06,
89900 class t_TAIL_07,
89901 class t_TAIL_08,
89902 class t_TAIL_09,
89903 class t_TAIL_10,
89904 class t_TAIL_11,
89905 class t_TAIL_12,
89906 class t_TAIL_13,
89907 class t_TAIL_14>
89908inline
89909Variant_Base<t_HEAD, t_TAIL_01,
89910 t_TAIL_02,
89911 t_TAIL_03,
89912 t_TAIL_04,
89913 t_TAIL_05,
89914 t_TAIL_06,
89915 t_TAIL_07,
89916 t_TAIL_08,
89917 t_TAIL_09,
89918 t_TAIL_10,
89919 t_TAIL_11,
89920 t_TAIL_12,
89921 t_TAIL_13,
89922 t_TAIL_14,
89923 BSLS_COMPILERFEATURES_FILLT( 4)
89924 >::Variant_Base(bsl::allocator_arg_t,
89925 allocator_type allocator)
89926: AllocBase(allocator)
89927, d_type(0)
89928{
89929 BloombergLP::bslma::ConstructionUtil::construct(
89930 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89931 AllocBase::mechanism());
89932}
89933#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
89934
89935#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
89936template <class t_HEAD, class t_TAIL_01,
89937 class t_TAIL_02,
89938 class t_TAIL_03,
89939 class t_TAIL_04,
89940 class t_TAIL_05,
89941 class t_TAIL_06,
89942 class t_TAIL_07,
89943 class t_TAIL_08,
89944 class t_TAIL_09,
89945 class t_TAIL_10,
89946 class t_TAIL_11,
89947 class t_TAIL_12,
89948 class t_TAIL_13,
89949 class t_TAIL_14,
89950 class t_TAIL_15>
89951inline
89952Variant_Base<t_HEAD, t_TAIL_01,
89953 t_TAIL_02,
89954 t_TAIL_03,
89955 t_TAIL_04,
89956 t_TAIL_05,
89957 t_TAIL_06,
89958 t_TAIL_07,
89959 t_TAIL_08,
89960 t_TAIL_09,
89961 t_TAIL_10,
89962 t_TAIL_11,
89963 t_TAIL_12,
89964 t_TAIL_13,
89965 t_TAIL_14,
89966 t_TAIL_15,
89967 BSLS_COMPILERFEATURES_FILLT( 3)
89968 >::Variant_Base(bsl::allocator_arg_t,
89969 allocator_type allocator)
89970: AllocBase(allocator)
89971, d_type(0)
89972{
89973 BloombergLP::bslma::ConstructionUtil::construct(
89974 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
89975 AllocBase::mechanism());
89976}
89977#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
89978
89979#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
89980template <class t_HEAD, class t_TAIL_01,
89981 class t_TAIL_02,
89982 class t_TAIL_03,
89983 class t_TAIL_04,
89984 class t_TAIL_05,
89985 class t_TAIL_06,
89986 class t_TAIL_07,
89987 class t_TAIL_08,
89988 class t_TAIL_09,
89989 class t_TAIL_10,
89990 class t_TAIL_11,
89991 class t_TAIL_12,
89992 class t_TAIL_13,
89993 class t_TAIL_14,
89994 class t_TAIL_15,
89995 class t_TAIL_16>
89996inline
89997Variant_Base<t_HEAD, t_TAIL_01,
89998 t_TAIL_02,
89999 t_TAIL_03,
90000 t_TAIL_04,
90001 t_TAIL_05,
90002 t_TAIL_06,
90003 t_TAIL_07,
90004 t_TAIL_08,
90005 t_TAIL_09,
90006 t_TAIL_10,
90007 t_TAIL_11,
90008 t_TAIL_12,
90009 t_TAIL_13,
90010 t_TAIL_14,
90011 t_TAIL_15,
90012 t_TAIL_16,
90013 BSLS_COMPILERFEATURES_FILLT( 2)
90014 >::Variant_Base(bsl::allocator_arg_t,
90015 allocator_type allocator)
90016: AllocBase(allocator)
90017, d_type(0)
90018{
90019 BloombergLP::bslma::ConstructionUtil::construct(
90020 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
90021 AllocBase::mechanism());
90022}
90023#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
90024
90025#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
90026template <class t_HEAD, class t_TAIL_01,
90027 class t_TAIL_02,
90028 class t_TAIL_03,
90029 class t_TAIL_04,
90030 class t_TAIL_05,
90031 class t_TAIL_06,
90032 class t_TAIL_07,
90033 class t_TAIL_08,
90034 class t_TAIL_09,
90035 class t_TAIL_10,
90036 class t_TAIL_11,
90037 class t_TAIL_12,
90038 class t_TAIL_13,
90039 class t_TAIL_14,
90040 class t_TAIL_15,
90041 class t_TAIL_16,
90042 class t_TAIL_17>
90043inline
90044Variant_Base<t_HEAD, t_TAIL_01,
90045 t_TAIL_02,
90046 t_TAIL_03,
90047 t_TAIL_04,
90048 t_TAIL_05,
90049 t_TAIL_06,
90050 t_TAIL_07,
90051 t_TAIL_08,
90052 t_TAIL_09,
90053 t_TAIL_10,
90054 t_TAIL_11,
90055 t_TAIL_12,
90056 t_TAIL_13,
90057 t_TAIL_14,
90058 t_TAIL_15,
90059 t_TAIL_16,
90060 t_TAIL_17,
90061 BSLS_COMPILERFEATURES_FILLT( 1)
90062 >::Variant_Base(bsl::allocator_arg_t,
90063 allocator_type allocator)
90064: AllocBase(allocator)
90065, d_type(0)
90066{
90067 BloombergLP::bslma::ConstructionUtil::construct(
90068 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
90069 AllocBase::mechanism());
90070}
90071#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
90072
90073#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
90074template <class t_HEAD, class t_TAIL_01,
90075 class t_TAIL_02,
90076 class t_TAIL_03,
90077 class t_TAIL_04,
90078 class t_TAIL_05,
90079 class t_TAIL_06,
90080 class t_TAIL_07,
90081 class t_TAIL_08,
90082 class t_TAIL_09,
90083 class t_TAIL_10,
90084 class t_TAIL_11,
90085 class t_TAIL_12,
90086 class t_TAIL_13,
90087 class t_TAIL_14,
90088 class t_TAIL_15,
90089 class t_TAIL_16,
90090 class t_TAIL_17,
90091 class t_TAIL_18>
90092inline
90093Variant_Base<t_HEAD, t_TAIL_01,
90094 t_TAIL_02,
90095 t_TAIL_03,
90096 t_TAIL_04,
90097 t_TAIL_05,
90098 t_TAIL_06,
90099 t_TAIL_07,
90100 t_TAIL_08,
90101 t_TAIL_09,
90102 t_TAIL_10,
90103 t_TAIL_11,
90104 t_TAIL_12,
90105 t_TAIL_13,
90106 t_TAIL_14,
90107 t_TAIL_15,
90108 t_TAIL_16,
90109 t_TAIL_17,
90110 t_TAIL_18,
90111 BSLS_COMPILERFEATURES_FILLT( 0)
90112 >::Variant_Base(bsl::allocator_arg_t,
90113 allocator_type allocator)
90114: AllocBase(allocator)
90115, d_type(0)
90116{
90117 BloombergLP::bslma::ConstructionUtil::construct(
90118 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
90119 AllocBase::mechanism());
90120}
90121#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
90122
90123
90124#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
90125template <class t_HEAD>
90126inline
90127Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
90128 >::Variant_Base(bsl::allocator_arg_t,
90129 allocator_type allocator,
90130 const Variant& original)
90131: AllocBase(allocator)
90132, d_type(bsl::variant_npos)
90133{
90134 if (!original.valueless_by_exception()) {
90135 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90136 copyConstructor(this);
90137 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90138
90139 d_type = original.d_type;
90140 }
90141}
90142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
90143
90144#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
90145template <class t_HEAD, class t_TAIL_01>
90146inline
90147Variant_Base<t_HEAD, t_TAIL_01,
90148 BSLS_COMPILERFEATURES_FILLT(17)
90149 >::Variant_Base(bsl::allocator_arg_t,
90150 allocator_type allocator,
90151 const Variant& original)
90152: AllocBase(allocator)
90153, d_type(bsl::variant_npos)
90154{
90155 if (!original.valueless_by_exception()) {
90156 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90157 copyConstructor(this);
90158 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90159
90160 d_type = original.d_type;
90161 }
90162}
90163#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
90164
90165#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
90166template <class t_HEAD, class t_TAIL_01,
90167 class t_TAIL_02>
90168inline
90169Variant_Base<t_HEAD, t_TAIL_01,
90170 t_TAIL_02,
90171 BSLS_COMPILERFEATURES_FILLT(16)
90172 >::Variant_Base(bsl::allocator_arg_t,
90173 allocator_type allocator,
90174 const Variant& original)
90175: AllocBase(allocator)
90176, d_type(bsl::variant_npos)
90177{
90178 if (!original.valueless_by_exception()) {
90179 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90180 copyConstructor(this);
90181 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90182
90183 d_type = original.d_type;
90184 }
90185}
90186#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
90187
90188#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
90189template <class t_HEAD, class t_TAIL_01,
90190 class t_TAIL_02,
90191 class t_TAIL_03>
90192inline
90193Variant_Base<t_HEAD, t_TAIL_01,
90194 t_TAIL_02,
90195 t_TAIL_03,
90196 BSLS_COMPILERFEATURES_FILLT(15)
90197 >::Variant_Base(bsl::allocator_arg_t,
90198 allocator_type allocator,
90199 const Variant& original)
90200: AllocBase(allocator)
90201, d_type(bsl::variant_npos)
90202{
90203 if (!original.valueless_by_exception()) {
90204 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90205 copyConstructor(this);
90206 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90207
90208 d_type = original.d_type;
90209 }
90210}
90211#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
90212
90213#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
90214template <class t_HEAD, class t_TAIL_01,
90215 class t_TAIL_02,
90216 class t_TAIL_03,
90217 class t_TAIL_04>
90218inline
90219Variant_Base<t_HEAD, t_TAIL_01,
90220 t_TAIL_02,
90221 t_TAIL_03,
90222 t_TAIL_04,
90223 BSLS_COMPILERFEATURES_FILLT(14)
90224 >::Variant_Base(bsl::allocator_arg_t,
90225 allocator_type allocator,
90226 const Variant& original)
90227: AllocBase(allocator)
90228, d_type(bsl::variant_npos)
90229{
90230 if (!original.valueless_by_exception()) {
90231 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90232 copyConstructor(this);
90233 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90234
90235 d_type = original.d_type;
90236 }
90237}
90238#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
90239
90240#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
90241template <class t_HEAD, class t_TAIL_01,
90242 class t_TAIL_02,
90243 class t_TAIL_03,
90244 class t_TAIL_04,
90245 class t_TAIL_05>
90246inline
90247Variant_Base<t_HEAD, t_TAIL_01,
90248 t_TAIL_02,
90249 t_TAIL_03,
90250 t_TAIL_04,
90251 t_TAIL_05,
90252 BSLS_COMPILERFEATURES_FILLT(13)
90253 >::Variant_Base(bsl::allocator_arg_t,
90254 allocator_type allocator,
90255 const Variant& original)
90256: AllocBase(allocator)
90257, d_type(bsl::variant_npos)
90258{
90259 if (!original.valueless_by_exception()) {
90260 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90261 copyConstructor(this);
90262 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90263
90264 d_type = original.d_type;
90265 }
90266}
90267#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
90268
90269#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
90270template <class t_HEAD, class t_TAIL_01,
90271 class t_TAIL_02,
90272 class t_TAIL_03,
90273 class t_TAIL_04,
90274 class t_TAIL_05,
90275 class t_TAIL_06>
90276inline
90277Variant_Base<t_HEAD, t_TAIL_01,
90278 t_TAIL_02,
90279 t_TAIL_03,
90280 t_TAIL_04,
90281 t_TAIL_05,
90282 t_TAIL_06,
90283 BSLS_COMPILERFEATURES_FILLT(12)
90284 >::Variant_Base(bsl::allocator_arg_t,
90285 allocator_type allocator,
90286 const Variant& original)
90287: AllocBase(allocator)
90288, d_type(bsl::variant_npos)
90289{
90290 if (!original.valueless_by_exception()) {
90291 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90292 copyConstructor(this);
90293 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90294
90295 d_type = original.d_type;
90296 }
90297}
90298#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
90299
90300#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
90301template <class t_HEAD, class t_TAIL_01,
90302 class t_TAIL_02,
90303 class t_TAIL_03,
90304 class t_TAIL_04,
90305 class t_TAIL_05,
90306 class t_TAIL_06,
90307 class t_TAIL_07>
90308inline
90309Variant_Base<t_HEAD, t_TAIL_01,
90310 t_TAIL_02,
90311 t_TAIL_03,
90312 t_TAIL_04,
90313 t_TAIL_05,
90314 t_TAIL_06,
90315 t_TAIL_07,
90316 BSLS_COMPILERFEATURES_FILLT(11)
90317 >::Variant_Base(bsl::allocator_arg_t,
90318 allocator_type allocator,
90319 const Variant& original)
90320: AllocBase(allocator)
90321, d_type(bsl::variant_npos)
90322{
90323 if (!original.valueless_by_exception()) {
90324 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90325 copyConstructor(this);
90326 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90327
90328 d_type = original.d_type;
90329 }
90330}
90331#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
90332
90333#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
90334template <class t_HEAD, class t_TAIL_01,
90335 class t_TAIL_02,
90336 class t_TAIL_03,
90337 class t_TAIL_04,
90338 class t_TAIL_05,
90339 class t_TAIL_06,
90340 class t_TAIL_07,
90341 class t_TAIL_08>
90342inline
90343Variant_Base<t_HEAD, t_TAIL_01,
90344 t_TAIL_02,
90345 t_TAIL_03,
90346 t_TAIL_04,
90347 t_TAIL_05,
90348 t_TAIL_06,
90349 t_TAIL_07,
90350 t_TAIL_08,
90351 BSLS_COMPILERFEATURES_FILLT(10)
90352 >::Variant_Base(bsl::allocator_arg_t,
90353 allocator_type allocator,
90354 const Variant& original)
90355: AllocBase(allocator)
90356, d_type(bsl::variant_npos)
90357{
90358 if (!original.valueless_by_exception()) {
90359 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90360 copyConstructor(this);
90361 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90362
90363 d_type = original.d_type;
90364 }
90365}
90366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
90367
90368#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
90369template <class t_HEAD, class t_TAIL_01,
90370 class t_TAIL_02,
90371 class t_TAIL_03,
90372 class t_TAIL_04,
90373 class t_TAIL_05,
90374 class t_TAIL_06,
90375 class t_TAIL_07,
90376 class t_TAIL_08,
90377 class t_TAIL_09>
90378inline
90379Variant_Base<t_HEAD, t_TAIL_01,
90380 t_TAIL_02,
90381 t_TAIL_03,
90382 t_TAIL_04,
90383 t_TAIL_05,
90384 t_TAIL_06,
90385 t_TAIL_07,
90386 t_TAIL_08,
90387 t_TAIL_09,
90388 BSLS_COMPILERFEATURES_FILLT( 9)
90389 >::Variant_Base(bsl::allocator_arg_t,
90390 allocator_type allocator,
90391 const Variant& original)
90392: AllocBase(allocator)
90393, d_type(bsl::variant_npos)
90394{
90395 if (!original.valueless_by_exception()) {
90396 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90397 copyConstructor(this);
90398 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90399
90400 d_type = original.d_type;
90401 }
90402}
90403#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
90404
90405#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
90406template <class t_HEAD, class t_TAIL_01,
90407 class t_TAIL_02,
90408 class t_TAIL_03,
90409 class t_TAIL_04,
90410 class t_TAIL_05,
90411 class t_TAIL_06,
90412 class t_TAIL_07,
90413 class t_TAIL_08,
90414 class t_TAIL_09,
90415 class t_TAIL_10>
90416inline
90417Variant_Base<t_HEAD, t_TAIL_01,
90418 t_TAIL_02,
90419 t_TAIL_03,
90420 t_TAIL_04,
90421 t_TAIL_05,
90422 t_TAIL_06,
90423 t_TAIL_07,
90424 t_TAIL_08,
90425 t_TAIL_09,
90426 t_TAIL_10,
90427 BSLS_COMPILERFEATURES_FILLT( 8)
90428 >::Variant_Base(bsl::allocator_arg_t,
90429 allocator_type allocator,
90430 const Variant& original)
90431: AllocBase(allocator)
90432, d_type(bsl::variant_npos)
90433{
90434 if (!original.valueless_by_exception()) {
90435 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90436 copyConstructor(this);
90437 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90438
90439 d_type = original.d_type;
90440 }
90441}
90442#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
90443
90444#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
90445template <class t_HEAD, class t_TAIL_01,
90446 class t_TAIL_02,
90447 class t_TAIL_03,
90448 class t_TAIL_04,
90449 class t_TAIL_05,
90450 class t_TAIL_06,
90451 class t_TAIL_07,
90452 class t_TAIL_08,
90453 class t_TAIL_09,
90454 class t_TAIL_10,
90455 class t_TAIL_11>
90456inline
90457Variant_Base<t_HEAD, t_TAIL_01,
90458 t_TAIL_02,
90459 t_TAIL_03,
90460 t_TAIL_04,
90461 t_TAIL_05,
90462 t_TAIL_06,
90463 t_TAIL_07,
90464 t_TAIL_08,
90465 t_TAIL_09,
90466 t_TAIL_10,
90467 t_TAIL_11,
90468 BSLS_COMPILERFEATURES_FILLT( 7)
90469 >::Variant_Base(bsl::allocator_arg_t,
90470 allocator_type allocator,
90471 const Variant& original)
90472: AllocBase(allocator)
90473, d_type(bsl::variant_npos)
90474{
90475 if (!original.valueless_by_exception()) {
90476 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90477 copyConstructor(this);
90478 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90479
90480 d_type = original.d_type;
90481 }
90482}
90483#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
90484
90485#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
90486template <class t_HEAD, class t_TAIL_01,
90487 class t_TAIL_02,
90488 class t_TAIL_03,
90489 class t_TAIL_04,
90490 class t_TAIL_05,
90491 class t_TAIL_06,
90492 class t_TAIL_07,
90493 class t_TAIL_08,
90494 class t_TAIL_09,
90495 class t_TAIL_10,
90496 class t_TAIL_11,
90497 class t_TAIL_12>
90498inline
90499Variant_Base<t_HEAD, t_TAIL_01,
90500 t_TAIL_02,
90501 t_TAIL_03,
90502 t_TAIL_04,
90503 t_TAIL_05,
90504 t_TAIL_06,
90505 t_TAIL_07,
90506 t_TAIL_08,
90507 t_TAIL_09,
90508 t_TAIL_10,
90509 t_TAIL_11,
90510 t_TAIL_12,
90511 BSLS_COMPILERFEATURES_FILLT( 6)
90512 >::Variant_Base(bsl::allocator_arg_t,
90513 allocator_type allocator,
90514 const Variant& original)
90515: AllocBase(allocator)
90516, d_type(bsl::variant_npos)
90517{
90518 if (!original.valueless_by_exception()) {
90519 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90520 copyConstructor(this);
90521 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90522
90523 d_type = original.d_type;
90524 }
90525}
90526#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
90527
90528#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
90529template <class t_HEAD, class t_TAIL_01,
90530 class t_TAIL_02,
90531 class t_TAIL_03,
90532 class t_TAIL_04,
90533 class t_TAIL_05,
90534 class t_TAIL_06,
90535 class t_TAIL_07,
90536 class t_TAIL_08,
90537 class t_TAIL_09,
90538 class t_TAIL_10,
90539 class t_TAIL_11,
90540 class t_TAIL_12,
90541 class t_TAIL_13>
90542inline
90543Variant_Base<t_HEAD, t_TAIL_01,
90544 t_TAIL_02,
90545 t_TAIL_03,
90546 t_TAIL_04,
90547 t_TAIL_05,
90548 t_TAIL_06,
90549 t_TAIL_07,
90550 t_TAIL_08,
90551 t_TAIL_09,
90552 t_TAIL_10,
90553 t_TAIL_11,
90554 t_TAIL_12,
90555 t_TAIL_13,
90556 BSLS_COMPILERFEATURES_FILLT( 5)
90557 >::Variant_Base(bsl::allocator_arg_t,
90558 allocator_type allocator,
90559 const Variant& original)
90560: AllocBase(allocator)
90561, d_type(bsl::variant_npos)
90562{
90563 if (!original.valueless_by_exception()) {
90564 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90565 copyConstructor(this);
90566 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90567
90568 d_type = original.d_type;
90569 }
90570}
90571#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
90572
90573#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
90574template <class t_HEAD, class t_TAIL_01,
90575 class t_TAIL_02,
90576 class t_TAIL_03,
90577 class t_TAIL_04,
90578 class t_TAIL_05,
90579 class t_TAIL_06,
90580 class t_TAIL_07,
90581 class t_TAIL_08,
90582 class t_TAIL_09,
90583 class t_TAIL_10,
90584 class t_TAIL_11,
90585 class t_TAIL_12,
90586 class t_TAIL_13,
90587 class t_TAIL_14>
90588inline
90589Variant_Base<t_HEAD, t_TAIL_01,
90590 t_TAIL_02,
90591 t_TAIL_03,
90592 t_TAIL_04,
90593 t_TAIL_05,
90594 t_TAIL_06,
90595 t_TAIL_07,
90596 t_TAIL_08,
90597 t_TAIL_09,
90598 t_TAIL_10,
90599 t_TAIL_11,
90600 t_TAIL_12,
90601 t_TAIL_13,
90602 t_TAIL_14,
90603 BSLS_COMPILERFEATURES_FILLT( 4)
90604 >::Variant_Base(bsl::allocator_arg_t,
90605 allocator_type allocator,
90606 const Variant& original)
90607: AllocBase(allocator)
90608, d_type(bsl::variant_npos)
90609{
90610 if (!original.valueless_by_exception()) {
90611 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90612 copyConstructor(this);
90613 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90614
90615 d_type = original.d_type;
90616 }
90617}
90618#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
90619
90620#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
90621template <class t_HEAD, class t_TAIL_01,
90622 class t_TAIL_02,
90623 class t_TAIL_03,
90624 class t_TAIL_04,
90625 class t_TAIL_05,
90626 class t_TAIL_06,
90627 class t_TAIL_07,
90628 class t_TAIL_08,
90629 class t_TAIL_09,
90630 class t_TAIL_10,
90631 class t_TAIL_11,
90632 class t_TAIL_12,
90633 class t_TAIL_13,
90634 class t_TAIL_14,
90635 class t_TAIL_15>
90636inline
90637Variant_Base<t_HEAD, t_TAIL_01,
90638 t_TAIL_02,
90639 t_TAIL_03,
90640 t_TAIL_04,
90641 t_TAIL_05,
90642 t_TAIL_06,
90643 t_TAIL_07,
90644 t_TAIL_08,
90645 t_TAIL_09,
90646 t_TAIL_10,
90647 t_TAIL_11,
90648 t_TAIL_12,
90649 t_TAIL_13,
90650 t_TAIL_14,
90651 t_TAIL_15,
90652 BSLS_COMPILERFEATURES_FILLT( 3)
90653 >::Variant_Base(bsl::allocator_arg_t,
90654 allocator_type allocator,
90655 const Variant& original)
90656: AllocBase(allocator)
90657, d_type(bsl::variant_npos)
90658{
90659 if (!original.valueless_by_exception()) {
90660 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90661 copyConstructor(this);
90662 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90663
90664 d_type = original.d_type;
90665 }
90666}
90667#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
90668
90669#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
90670template <class t_HEAD, class t_TAIL_01,
90671 class t_TAIL_02,
90672 class t_TAIL_03,
90673 class t_TAIL_04,
90674 class t_TAIL_05,
90675 class t_TAIL_06,
90676 class t_TAIL_07,
90677 class t_TAIL_08,
90678 class t_TAIL_09,
90679 class t_TAIL_10,
90680 class t_TAIL_11,
90681 class t_TAIL_12,
90682 class t_TAIL_13,
90683 class t_TAIL_14,
90684 class t_TAIL_15,
90685 class t_TAIL_16>
90686inline
90687Variant_Base<t_HEAD, t_TAIL_01,
90688 t_TAIL_02,
90689 t_TAIL_03,
90690 t_TAIL_04,
90691 t_TAIL_05,
90692 t_TAIL_06,
90693 t_TAIL_07,
90694 t_TAIL_08,
90695 t_TAIL_09,
90696 t_TAIL_10,
90697 t_TAIL_11,
90698 t_TAIL_12,
90699 t_TAIL_13,
90700 t_TAIL_14,
90701 t_TAIL_15,
90702 t_TAIL_16,
90703 BSLS_COMPILERFEATURES_FILLT( 2)
90704 >::Variant_Base(bsl::allocator_arg_t,
90705 allocator_type allocator,
90706 const Variant& original)
90707: AllocBase(allocator)
90708, d_type(bsl::variant_npos)
90709{
90710 if (!original.valueless_by_exception()) {
90711 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90712 copyConstructor(this);
90713 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90714
90715 d_type = original.d_type;
90716 }
90717}
90718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
90719
90720#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
90721template <class t_HEAD, class t_TAIL_01,
90722 class t_TAIL_02,
90723 class t_TAIL_03,
90724 class t_TAIL_04,
90725 class t_TAIL_05,
90726 class t_TAIL_06,
90727 class t_TAIL_07,
90728 class t_TAIL_08,
90729 class t_TAIL_09,
90730 class t_TAIL_10,
90731 class t_TAIL_11,
90732 class t_TAIL_12,
90733 class t_TAIL_13,
90734 class t_TAIL_14,
90735 class t_TAIL_15,
90736 class t_TAIL_16,
90737 class t_TAIL_17>
90738inline
90739Variant_Base<t_HEAD, t_TAIL_01,
90740 t_TAIL_02,
90741 t_TAIL_03,
90742 t_TAIL_04,
90743 t_TAIL_05,
90744 t_TAIL_06,
90745 t_TAIL_07,
90746 t_TAIL_08,
90747 t_TAIL_09,
90748 t_TAIL_10,
90749 t_TAIL_11,
90750 t_TAIL_12,
90751 t_TAIL_13,
90752 t_TAIL_14,
90753 t_TAIL_15,
90754 t_TAIL_16,
90755 t_TAIL_17,
90756 BSLS_COMPILERFEATURES_FILLT( 1)
90757 >::Variant_Base(bsl::allocator_arg_t,
90758 allocator_type allocator,
90759 const Variant& original)
90760: AllocBase(allocator)
90761, d_type(bsl::variant_npos)
90762{
90763 if (!original.valueless_by_exception()) {
90764 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90765 copyConstructor(this);
90766 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90767
90768 d_type = original.d_type;
90769 }
90770}
90771#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
90772
90773#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
90774template <class t_HEAD, class t_TAIL_01,
90775 class t_TAIL_02,
90776 class t_TAIL_03,
90777 class t_TAIL_04,
90778 class t_TAIL_05,
90779 class t_TAIL_06,
90780 class t_TAIL_07,
90781 class t_TAIL_08,
90782 class t_TAIL_09,
90783 class t_TAIL_10,
90784 class t_TAIL_11,
90785 class t_TAIL_12,
90786 class t_TAIL_13,
90787 class t_TAIL_14,
90788 class t_TAIL_15,
90789 class t_TAIL_16,
90790 class t_TAIL_17,
90791 class t_TAIL_18>
90792inline
90793Variant_Base<t_HEAD, t_TAIL_01,
90794 t_TAIL_02,
90795 t_TAIL_03,
90796 t_TAIL_04,
90797 t_TAIL_05,
90798 t_TAIL_06,
90799 t_TAIL_07,
90800 t_TAIL_08,
90801 t_TAIL_09,
90802 t_TAIL_10,
90803 t_TAIL_11,
90804 t_TAIL_12,
90805 t_TAIL_13,
90806 t_TAIL_14,
90807 t_TAIL_15,
90808 t_TAIL_16,
90809 t_TAIL_17,
90810 t_TAIL_18,
90811 BSLS_COMPILERFEATURES_FILLT( 0)
90812 >::Variant_Base(bsl::allocator_arg_t,
90813 allocator_type allocator,
90814 const Variant& original)
90815: AllocBase(allocator)
90816, d_type(bsl::variant_npos)
90817{
90818 if (!original.valueless_by_exception()) {
90819 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
90820 copyConstructor(this);
90821 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
90822
90823 d_type = original.d_type;
90824 }
90825}
90826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
90827
90828
90829#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
90830template <class t_HEAD>
90831inline
90832Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
90833 bsl::allocator_arg_t,
90834 allocator_type allocator,
90835 BloombergLP::bslmf::MovableRef<Variant> original)
90836: AllocBase(allocator)
90837, d_type(bsl::variant_npos)
90838{
90839 Variant& lvalue = original;
90840 if (!lvalue.valueless_by_exception()) {
90841 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
90842 moveConstructor(this);
90843 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
90844
90845 d_type = lvalue.d_type;
90846 }
90847}
90848#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
90849
90850#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
90851template <class t_HEAD, class t_TAIL_01>
90852inline
90853Variant_Base<t_HEAD, t_TAIL_01,
90854 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
90855 bsl::allocator_arg_t,
90856 allocator_type allocator,
90857 BloombergLP::bslmf::MovableRef<Variant> original)
90858: AllocBase(allocator)
90859, d_type(bsl::variant_npos)
90860{
90861 Variant& lvalue = original;
90862 if (!lvalue.valueless_by_exception()) {
90863 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
90864 moveConstructor(this);
90865 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
90866
90867 d_type = lvalue.d_type;
90868 }
90869}
90870#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
90871
90872#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
90873template <class t_HEAD, class t_TAIL_01,
90874 class t_TAIL_02>
90875inline
90876Variant_Base<t_HEAD, t_TAIL_01,
90877 t_TAIL_02,
90878 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
90879 bsl::allocator_arg_t,
90880 allocator_type allocator,
90881 BloombergLP::bslmf::MovableRef<Variant> original)
90882: AllocBase(allocator)
90883, d_type(bsl::variant_npos)
90884{
90885 Variant& lvalue = original;
90886 if (!lvalue.valueless_by_exception()) {
90887 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
90888 moveConstructor(this);
90889 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
90890
90891 d_type = lvalue.d_type;
90892 }
90893}
90894#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
90895
90896#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
90897template <class t_HEAD, class t_TAIL_01,
90898 class t_TAIL_02,
90899 class t_TAIL_03>
90900inline
90901Variant_Base<t_HEAD, t_TAIL_01,
90902 t_TAIL_02,
90903 t_TAIL_03,
90904 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
90905 bsl::allocator_arg_t,
90906 allocator_type allocator,
90907 BloombergLP::bslmf::MovableRef<Variant> original)
90908: AllocBase(allocator)
90909, d_type(bsl::variant_npos)
90910{
90911 Variant& lvalue = original;
90912 if (!lvalue.valueless_by_exception()) {
90913 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
90914 moveConstructor(this);
90915 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
90916
90917 d_type = lvalue.d_type;
90918 }
90919}
90920#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
90921
90922#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
90923template <class t_HEAD, class t_TAIL_01,
90924 class t_TAIL_02,
90925 class t_TAIL_03,
90926 class t_TAIL_04>
90927inline
90928Variant_Base<t_HEAD, t_TAIL_01,
90929 t_TAIL_02,
90930 t_TAIL_03,
90931 t_TAIL_04,
90932 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
90933 bsl::allocator_arg_t,
90934 allocator_type allocator,
90935 BloombergLP::bslmf::MovableRef<Variant> original)
90936: AllocBase(allocator)
90937, d_type(bsl::variant_npos)
90938{
90939 Variant& lvalue = original;
90940 if (!lvalue.valueless_by_exception()) {
90941 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
90942 moveConstructor(this);
90943 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
90944
90945 d_type = lvalue.d_type;
90946 }
90947}
90948#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
90949
90950#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
90951template <class t_HEAD, class t_TAIL_01,
90952 class t_TAIL_02,
90953 class t_TAIL_03,
90954 class t_TAIL_04,
90955 class t_TAIL_05>
90956inline
90957Variant_Base<t_HEAD, t_TAIL_01,
90958 t_TAIL_02,
90959 t_TAIL_03,
90960 t_TAIL_04,
90961 t_TAIL_05,
90962 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
90963 bsl::allocator_arg_t,
90964 allocator_type allocator,
90965 BloombergLP::bslmf::MovableRef<Variant> original)
90966: AllocBase(allocator)
90967, d_type(bsl::variant_npos)
90968{
90969 Variant& lvalue = original;
90970 if (!lvalue.valueless_by_exception()) {
90971 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
90972 moveConstructor(this);
90973 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
90974
90975 d_type = lvalue.d_type;
90976 }
90977}
90978#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
90979
90980#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
90981template <class t_HEAD, class t_TAIL_01,
90982 class t_TAIL_02,
90983 class t_TAIL_03,
90984 class t_TAIL_04,
90985 class t_TAIL_05,
90986 class t_TAIL_06>
90987inline
90988Variant_Base<t_HEAD, t_TAIL_01,
90989 t_TAIL_02,
90990 t_TAIL_03,
90991 t_TAIL_04,
90992 t_TAIL_05,
90993 t_TAIL_06,
90994 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
90995 bsl::allocator_arg_t,
90996 allocator_type allocator,
90997 BloombergLP::bslmf::MovableRef<Variant> original)
90998: AllocBase(allocator)
90999, d_type(bsl::variant_npos)
91000{
91001 Variant& lvalue = original;
91002 if (!lvalue.valueless_by_exception()) {
91003 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91004 moveConstructor(this);
91005 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91006
91007 d_type = lvalue.d_type;
91008 }
91009}
91010#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
91011
91012#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
91013template <class t_HEAD, class t_TAIL_01,
91014 class t_TAIL_02,
91015 class t_TAIL_03,
91016 class t_TAIL_04,
91017 class t_TAIL_05,
91018 class t_TAIL_06,
91019 class t_TAIL_07>
91020inline
91021Variant_Base<t_HEAD, t_TAIL_01,
91022 t_TAIL_02,
91023 t_TAIL_03,
91024 t_TAIL_04,
91025 t_TAIL_05,
91026 t_TAIL_06,
91027 t_TAIL_07,
91028 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
91029 bsl::allocator_arg_t,
91030 allocator_type allocator,
91031 BloombergLP::bslmf::MovableRef<Variant> original)
91032: AllocBase(allocator)
91033, d_type(bsl::variant_npos)
91034{
91035 Variant& lvalue = original;
91036 if (!lvalue.valueless_by_exception()) {
91037 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91038 moveConstructor(this);
91039 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91040
91041 d_type = lvalue.d_type;
91042 }
91043}
91044#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
91045
91046#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
91047template <class t_HEAD, class t_TAIL_01,
91048 class t_TAIL_02,
91049 class t_TAIL_03,
91050 class t_TAIL_04,
91051 class t_TAIL_05,
91052 class t_TAIL_06,
91053 class t_TAIL_07,
91054 class t_TAIL_08>
91055inline
91056Variant_Base<t_HEAD, t_TAIL_01,
91057 t_TAIL_02,
91058 t_TAIL_03,
91059 t_TAIL_04,
91060 t_TAIL_05,
91061 t_TAIL_06,
91062 t_TAIL_07,
91063 t_TAIL_08,
91064 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
91065 bsl::allocator_arg_t,
91066 allocator_type allocator,
91067 BloombergLP::bslmf::MovableRef<Variant> original)
91068: AllocBase(allocator)
91069, d_type(bsl::variant_npos)
91070{
91071 Variant& lvalue = original;
91072 if (!lvalue.valueless_by_exception()) {
91073 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91074 moveConstructor(this);
91075 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91076
91077 d_type = lvalue.d_type;
91078 }
91079}
91080#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
91081
91082#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
91083template <class t_HEAD, class t_TAIL_01,
91084 class t_TAIL_02,
91085 class t_TAIL_03,
91086 class t_TAIL_04,
91087 class t_TAIL_05,
91088 class t_TAIL_06,
91089 class t_TAIL_07,
91090 class t_TAIL_08,
91091 class t_TAIL_09>
91092inline
91093Variant_Base<t_HEAD, t_TAIL_01,
91094 t_TAIL_02,
91095 t_TAIL_03,
91096 t_TAIL_04,
91097 t_TAIL_05,
91098 t_TAIL_06,
91099 t_TAIL_07,
91100 t_TAIL_08,
91101 t_TAIL_09,
91102 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
91103 bsl::allocator_arg_t,
91104 allocator_type allocator,
91105 BloombergLP::bslmf::MovableRef<Variant> original)
91106: AllocBase(allocator)
91107, d_type(bsl::variant_npos)
91108{
91109 Variant& lvalue = original;
91110 if (!lvalue.valueless_by_exception()) {
91111 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91112 moveConstructor(this);
91113 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91114
91115 d_type = lvalue.d_type;
91116 }
91117}
91118#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
91119
91120#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
91121template <class t_HEAD, class t_TAIL_01,
91122 class t_TAIL_02,
91123 class t_TAIL_03,
91124 class t_TAIL_04,
91125 class t_TAIL_05,
91126 class t_TAIL_06,
91127 class t_TAIL_07,
91128 class t_TAIL_08,
91129 class t_TAIL_09,
91130 class t_TAIL_10>
91131inline
91132Variant_Base<t_HEAD, t_TAIL_01,
91133 t_TAIL_02,
91134 t_TAIL_03,
91135 t_TAIL_04,
91136 t_TAIL_05,
91137 t_TAIL_06,
91138 t_TAIL_07,
91139 t_TAIL_08,
91140 t_TAIL_09,
91141 t_TAIL_10,
91142 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
91143 bsl::allocator_arg_t,
91144 allocator_type allocator,
91145 BloombergLP::bslmf::MovableRef<Variant> original)
91146: AllocBase(allocator)
91147, d_type(bsl::variant_npos)
91148{
91149 Variant& lvalue = original;
91150 if (!lvalue.valueless_by_exception()) {
91151 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91152 moveConstructor(this);
91153 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91154
91155 d_type = lvalue.d_type;
91156 }
91157}
91158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
91159
91160#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
91161template <class t_HEAD, class t_TAIL_01,
91162 class t_TAIL_02,
91163 class t_TAIL_03,
91164 class t_TAIL_04,
91165 class t_TAIL_05,
91166 class t_TAIL_06,
91167 class t_TAIL_07,
91168 class t_TAIL_08,
91169 class t_TAIL_09,
91170 class t_TAIL_10,
91171 class t_TAIL_11>
91172inline
91173Variant_Base<t_HEAD, t_TAIL_01,
91174 t_TAIL_02,
91175 t_TAIL_03,
91176 t_TAIL_04,
91177 t_TAIL_05,
91178 t_TAIL_06,
91179 t_TAIL_07,
91180 t_TAIL_08,
91181 t_TAIL_09,
91182 t_TAIL_10,
91183 t_TAIL_11,
91184 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
91185 bsl::allocator_arg_t,
91186 allocator_type allocator,
91187 BloombergLP::bslmf::MovableRef<Variant> original)
91188: AllocBase(allocator)
91189, d_type(bsl::variant_npos)
91190{
91191 Variant& lvalue = original;
91192 if (!lvalue.valueless_by_exception()) {
91193 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91194 moveConstructor(this);
91195 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91196
91197 d_type = lvalue.d_type;
91198 }
91199}
91200#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
91201
91202#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
91203template <class t_HEAD, class t_TAIL_01,
91204 class t_TAIL_02,
91205 class t_TAIL_03,
91206 class t_TAIL_04,
91207 class t_TAIL_05,
91208 class t_TAIL_06,
91209 class t_TAIL_07,
91210 class t_TAIL_08,
91211 class t_TAIL_09,
91212 class t_TAIL_10,
91213 class t_TAIL_11,
91214 class t_TAIL_12>
91215inline
91216Variant_Base<t_HEAD, t_TAIL_01,
91217 t_TAIL_02,
91218 t_TAIL_03,
91219 t_TAIL_04,
91220 t_TAIL_05,
91221 t_TAIL_06,
91222 t_TAIL_07,
91223 t_TAIL_08,
91224 t_TAIL_09,
91225 t_TAIL_10,
91226 t_TAIL_11,
91227 t_TAIL_12,
91228 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
91229 bsl::allocator_arg_t,
91230 allocator_type allocator,
91231 BloombergLP::bslmf::MovableRef<Variant> original)
91232: AllocBase(allocator)
91233, d_type(bsl::variant_npos)
91234{
91235 Variant& lvalue = original;
91236 if (!lvalue.valueless_by_exception()) {
91237 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91238 moveConstructor(this);
91239 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91240
91241 d_type = lvalue.d_type;
91242 }
91243}
91244#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
91245
91246#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
91247template <class t_HEAD, class t_TAIL_01,
91248 class t_TAIL_02,
91249 class t_TAIL_03,
91250 class t_TAIL_04,
91251 class t_TAIL_05,
91252 class t_TAIL_06,
91253 class t_TAIL_07,
91254 class t_TAIL_08,
91255 class t_TAIL_09,
91256 class t_TAIL_10,
91257 class t_TAIL_11,
91258 class t_TAIL_12,
91259 class t_TAIL_13>
91260inline
91261Variant_Base<t_HEAD, t_TAIL_01,
91262 t_TAIL_02,
91263 t_TAIL_03,
91264 t_TAIL_04,
91265 t_TAIL_05,
91266 t_TAIL_06,
91267 t_TAIL_07,
91268 t_TAIL_08,
91269 t_TAIL_09,
91270 t_TAIL_10,
91271 t_TAIL_11,
91272 t_TAIL_12,
91273 t_TAIL_13,
91274 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
91275 bsl::allocator_arg_t,
91276 allocator_type allocator,
91277 BloombergLP::bslmf::MovableRef<Variant> original)
91278: AllocBase(allocator)
91279, d_type(bsl::variant_npos)
91280{
91281 Variant& lvalue = original;
91282 if (!lvalue.valueless_by_exception()) {
91283 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91284 moveConstructor(this);
91285 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91286
91287 d_type = lvalue.d_type;
91288 }
91289}
91290#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
91291
91292#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
91293template <class t_HEAD, class t_TAIL_01,
91294 class t_TAIL_02,
91295 class t_TAIL_03,
91296 class t_TAIL_04,
91297 class t_TAIL_05,
91298 class t_TAIL_06,
91299 class t_TAIL_07,
91300 class t_TAIL_08,
91301 class t_TAIL_09,
91302 class t_TAIL_10,
91303 class t_TAIL_11,
91304 class t_TAIL_12,
91305 class t_TAIL_13,
91306 class t_TAIL_14>
91307inline
91308Variant_Base<t_HEAD, t_TAIL_01,
91309 t_TAIL_02,
91310 t_TAIL_03,
91311 t_TAIL_04,
91312 t_TAIL_05,
91313 t_TAIL_06,
91314 t_TAIL_07,
91315 t_TAIL_08,
91316 t_TAIL_09,
91317 t_TAIL_10,
91318 t_TAIL_11,
91319 t_TAIL_12,
91320 t_TAIL_13,
91321 t_TAIL_14,
91322 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
91323 bsl::allocator_arg_t,
91324 allocator_type allocator,
91325 BloombergLP::bslmf::MovableRef<Variant> original)
91326: AllocBase(allocator)
91327, d_type(bsl::variant_npos)
91328{
91329 Variant& lvalue = original;
91330 if (!lvalue.valueless_by_exception()) {
91331 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91332 moveConstructor(this);
91333 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91334
91335 d_type = lvalue.d_type;
91336 }
91337}
91338#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
91339
91340#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
91341template <class t_HEAD, class t_TAIL_01,
91342 class t_TAIL_02,
91343 class t_TAIL_03,
91344 class t_TAIL_04,
91345 class t_TAIL_05,
91346 class t_TAIL_06,
91347 class t_TAIL_07,
91348 class t_TAIL_08,
91349 class t_TAIL_09,
91350 class t_TAIL_10,
91351 class t_TAIL_11,
91352 class t_TAIL_12,
91353 class t_TAIL_13,
91354 class t_TAIL_14,
91355 class t_TAIL_15>
91356inline
91357Variant_Base<t_HEAD, t_TAIL_01,
91358 t_TAIL_02,
91359 t_TAIL_03,
91360 t_TAIL_04,
91361 t_TAIL_05,
91362 t_TAIL_06,
91363 t_TAIL_07,
91364 t_TAIL_08,
91365 t_TAIL_09,
91366 t_TAIL_10,
91367 t_TAIL_11,
91368 t_TAIL_12,
91369 t_TAIL_13,
91370 t_TAIL_14,
91371 t_TAIL_15,
91372 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
91373 bsl::allocator_arg_t,
91374 allocator_type allocator,
91375 BloombergLP::bslmf::MovableRef<Variant> original)
91376: AllocBase(allocator)
91377, d_type(bsl::variant_npos)
91378{
91379 Variant& lvalue = original;
91380 if (!lvalue.valueless_by_exception()) {
91381 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91382 moveConstructor(this);
91383 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91384
91385 d_type = lvalue.d_type;
91386 }
91387}
91388#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
91389
91390#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
91391template <class t_HEAD, class t_TAIL_01,
91392 class t_TAIL_02,
91393 class t_TAIL_03,
91394 class t_TAIL_04,
91395 class t_TAIL_05,
91396 class t_TAIL_06,
91397 class t_TAIL_07,
91398 class t_TAIL_08,
91399 class t_TAIL_09,
91400 class t_TAIL_10,
91401 class t_TAIL_11,
91402 class t_TAIL_12,
91403 class t_TAIL_13,
91404 class t_TAIL_14,
91405 class t_TAIL_15,
91406 class t_TAIL_16>
91407inline
91408Variant_Base<t_HEAD, t_TAIL_01,
91409 t_TAIL_02,
91410 t_TAIL_03,
91411 t_TAIL_04,
91412 t_TAIL_05,
91413 t_TAIL_06,
91414 t_TAIL_07,
91415 t_TAIL_08,
91416 t_TAIL_09,
91417 t_TAIL_10,
91418 t_TAIL_11,
91419 t_TAIL_12,
91420 t_TAIL_13,
91421 t_TAIL_14,
91422 t_TAIL_15,
91423 t_TAIL_16,
91424 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
91425 bsl::allocator_arg_t,
91426 allocator_type allocator,
91427 BloombergLP::bslmf::MovableRef<Variant> original)
91428: AllocBase(allocator)
91429, d_type(bsl::variant_npos)
91430{
91431 Variant& lvalue = original;
91432 if (!lvalue.valueless_by_exception()) {
91433 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91434 moveConstructor(this);
91435 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91436
91437 d_type = lvalue.d_type;
91438 }
91439}
91440#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
91441
91442#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
91443template <class t_HEAD, class t_TAIL_01,
91444 class t_TAIL_02,
91445 class t_TAIL_03,
91446 class t_TAIL_04,
91447 class t_TAIL_05,
91448 class t_TAIL_06,
91449 class t_TAIL_07,
91450 class t_TAIL_08,
91451 class t_TAIL_09,
91452 class t_TAIL_10,
91453 class t_TAIL_11,
91454 class t_TAIL_12,
91455 class t_TAIL_13,
91456 class t_TAIL_14,
91457 class t_TAIL_15,
91458 class t_TAIL_16,
91459 class t_TAIL_17>
91460inline
91461Variant_Base<t_HEAD, t_TAIL_01,
91462 t_TAIL_02,
91463 t_TAIL_03,
91464 t_TAIL_04,
91465 t_TAIL_05,
91466 t_TAIL_06,
91467 t_TAIL_07,
91468 t_TAIL_08,
91469 t_TAIL_09,
91470 t_TAIL_10,
91471 t_TAIL_11,
91472 t_TAIL_12,
91473 t_TAIL_13,
91474 t_TAIL_14,
91475 t_TAIL_15,
91476 t_TAIL_16,
91477 t_TAIL_17,
91478 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
91479 bsl::allocator_arg_t,
91480 allocator_type allocator,
91481 BloombergLP::bslmf::MovableRef<Variant> original)
91482: AllocBase(allocator)
91483, d_type(bsl::variant_npos)
91484{
91485 Variant& lvalue = original;
91486 if (!lvalue.valueless_by_exception()) {
91487 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91488 moveConstructor(this);
91489 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91490
91491 d_type = lvalue.d_type;
91492 }
91493}
91494#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
91495
91496#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
91497template <class t_HEAD, class t_TAIL_01,
91498 class t_TAIL_02,
91499 class t_TAIL_03,
91500 class t_TAIL_04,
91501 class t_TAIL_05,
91502 class t_TAIL_06,
91503 class t_TAIL_07,
91504 class t_TAIL_08,
91505 class t_TAIL_09,
91506 class t_TAIL_10,
91507 class t_TAIL_11,
91508 class t_TAIL_12,
91509 class t_TAIL_13,
91510 class t_TAIL_14,
91511 class t_TAIL_15,
91512 class t_TAIL_16,
91513 class t_TAIL_17,
91514 class t_TAIL_18>
91515inline
91516Variant_Base<t_HEAD, t_TAIL_01,
91517 t_TAIL_02,
91518 t_TAIL_03,
91519 t_TAIL_04,
91520 t_TAIL_05,
91521 t_TAIL_06,
91522 t_TAIL_07,
91523 t_TAIL_08,
91524 t_TAIL_09,
91525 t_TAIL_10,
91526 t_TAIL_11,
91527 t_TAIL_12,
91528 t_TAIL_13,
91529 t_TAIL_14,
91530 t_TAIL_15,
91531 t_TAIL_16,
91532 t_TAIL_17,
91533 t_TAIL_18,
91534 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
91535 bsl::allocator_arg_t,
91536 allocator_type allocator,
91537 BloombergLP::bslmf::MovableRef<Variant> original)
91538: AllocBase(allocator)
91539, d_type(bsl::variant_npos)
91540{
91541 Variant& lvalue = original;
91542 if (!lvalue.valueless_by_exception()) {
91543 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
91544 moveConstructor(this);
91545 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
91546
91547 d_type = lvalue.d_type;
91548 }
91549}
91550#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
91551
91552
91553#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
91554template <class t_HEAD>
91555template <size_t t_INDEX>
91556inline
91557Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
91558 bsl::allocator_arg_t,
91559 allocator_type allocator,
91561: AllocBase(allocator)
91562, d_type(t_INDEX)
91563{
91564 typedef typename bsl::remove_cv<
91566 Alt_Type;
91567
91568 BloombergLP::bslma::ConstructionUtil::construct(
91569 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91570 AllocBase::mechanism());
91571}
91572#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
91573
91574#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
91575template <class t_HEAD, class t_TAIL_01>
91576template <size_t t_INDEX>
91577inline
91578Variant_Base<t_HEAD, t_TAIL_01,
91579 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
91580 bsl::allocator_arg_t,
91581 allocator_type allocator,
91583: AllocBase(allocator)
91584, d_type(t_INDEX)
91585{
91586 typedef typename bsl::remove_cv<
91588 Alt_Type;
91589
91590 BloombergLP::bslma::ConstructionUtil::construct(
91591 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91592 AllocBase::mechanism());
91593}
91594#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
91595
91596#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
91597template <class t_HEAD, class t_TAIL_01,
91598 class t_TAIL_02>
91599template <size_t t_INDEX>
91600inline
91601Variant_Base<t_HEAD, t_TAIL_01,
91602 t_TAIL_02,
91603 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
91604 bsl::allocator_arg_t,
91605 allocator_type allocator,
91607: AllocBase(allocator)
91608, d_type(t_INDEX)
91609{
91610 typedef typename bsl::remove_cv<
91612 Alt_Type;
91613
91614 BloombergLP::bslma::ConstructionUtil::construct(
91615 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91616 AllocBase::mechanism());
91617}
91618#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
91619
91620#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
91621template <class t_HEAD, class t_TAIL_01,
91622 class t_TAIL_02,
91623 class t_TAIL_03>
91624template <size_t t_INDEX>
91625inline
91626Variant_Base<t_HEAD, t_TAIL_01,
91627 t_TAIL_02,
91628 t_TAIL_03,
91629 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
91630 bsl::allocator_arg_t,
91631 allocator_type allocator,
91633: AllocBase(allocator)
91634, d_type(t_INDEX)
91635{
91636 typedef typename bsl::remove_cv<
91638 Alt_Type;
91639
91640 BloombergLP::bslma::ConstructionUtil::construct(
91641 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91642 AllocBase::mechanism());
91643}
91644#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
91645
91646#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
91647template <class t_HEAD, class t_TAIL_01,
91648 class t_TAIL_02,
91649 class t_TAIL_03,
91650 class t_TAIL_04>
91651template <size_t t_INDEX>
91652inline
91653Variant_Base<t_HEAD, t_TAIL_01,
91654 t_TAIL_02,
91655 t_TAIL_03,
91656 t_TAIL_04,
91657 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
91658 bsl::allocator_arg_t,
91659 allocator_type allocator,
91661: AllocBase(allocator)
91662, d_type(t_INDEX)
91663{
91664 typedef typename bsl::remove_cv<
91666 Alt_Type;
91667
91668 BloombergLP::bslma::ConstructionUtil::construct(
91669 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91670 AllocBase::mechanism());
91671}
91672#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
91673
91674#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
91675template <class t_HEAD, class t_TAIL_01,
91676 class t_TAIL_02,
91677 class t_TAIL_03,
91678 class t_TAIL_04,
91679 class t_TAIL_05>
91680template <size_t t_INDEX>
91681inline
91682Variant_Base<t_HEAD, t_TAIL_01,
91683 t_TAIL_02,
91684 t_TAIL_03,
91685 t_TAIL_04,
91686 t_TAIL_05,
91687 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
91688 bsl::allocator_arg_t,
91689 allocator_type allocator,
91691: AllocBase(allocator)
91692, d_type(t_INDEX)
91693{
91694 typedef typename bsl::remove_cv<
91696 Alt_Type;
91697
91698 BloombergLP::bslma::ConstructionUtil::construct(
91699 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91700 AllocBase::mechanism());
91701}
91702#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
91703
91704#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
91705template <class t_HEAD, class t_TAIL_01,
91706 class t_TAIL_02,
91707 class t_TAIL_03,
91708 class t_TAIL_04,
91709 class t_TAIL_05,
91710 class t_TAIL_06>
91711template <size_t t_INDEX>
91712inline
91713Variant_Base<t_HEAD, t_TAIL_01,
91714 t_TAIL_02,
91715 t_TAIL_03,
91716 t_TAIL_04,
91717 t_TAIL_05,
91718 t_TAIL_06,
91719 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
91720 bsl::allocator_arg_t,
91721 allocator_type allocator,
91723: AllocBase(allocator)
91724, d_type(t_INDEX)
91725{
91726 typedef typename bsl::remove_cv<
91728 Alt_Type;
91729
91730 BloombergLP::bslma::ConstructionUtil::construct(
91731 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91732 AllocBase::mechanism());
91733}
91734#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
91735
91736#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
91737template <class t_HEAD, class t_TAIL_01,
91738 class t_TAIL_02,
91739 class t_TAIL_03,
91740 class t_TAIL_04,
91741 class t_TAIL_05,
91742 class t_TAIL_06,
91743 class t_TAIL_07>
91744template <size_t t_INDEX>
91745inline
91746Variant_Base<t_HEAD, t_TAIL_01,
91747 t_TAIL_02,
91748 t_TAIL_03,
91749 t_TAIL_04,
91750 t_TAIL_05,
91751 t_TAIL_06,
91752 t_TAIL_07,
91753 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
91754 bsl::allocator_arg_t,
91755 allocator_type allocator,
91757: AllocBase(allocator)
91758, d_type(t_INDEX)
91759{
91760 typedef typename bsl::remove_cv<
91762 Alt_Type;
91763
91764 BloombergLP::bslma::ConstructionUtil::construct(
91765 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91766 AllocBase::mechanism());
91767}
91768#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
91769
91770#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
91771template <class t_HEAD, class t_TAIL_01,
91772 class t_TAIL_02,
91773 class t_TAIL_03,
91774 class t_TAIL_04,
91775 class t_TAIL_05,
91776 class t_TAIL_06,
91777 class t_TAIL_07,
91778 class t_TAIL_08>
91779template <size_t t_INDEX>
91780inline
91781Variant_Base<t_HEAD, t_TAIL_01,
91782 t_TAIL_02,
91783 t_TAIL_03,
91784 t_TAIL_04,
91785 t_TAIL_05,
91786 t_TAIL_06,
91787 t_TAIL_07,
91788 t_TAIL_08,
91789 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
91790 bsl::allocator_arg_t,
91791 allocator_type allocator,
91793: AllocBase(allocator)
91794, d_type(t_INDEX)
91795{
91796 typedef typename bsl::remove_cv<
91798 Alt_Type;
91799
91800 BloombergLP::bslma::ConstructionUtil::construct(
91801 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91802 AllocBase::mechanism());
91803}
91804#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
91805
91806#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
91807template <class t_HEAD, class t_TAIL_01,
91808 class t_TAIL_02,
91809 class t_TAIL_03,
91810 class t_TAIL_04,
91811 class t_TAIL_05,
91812 class t_TAIL_06,
91813 class t_TAIL_07,
91814 class t_TAIL_08,
91815 class t_TAIL_09>
91816template <size_t t_INDEX>
91817inline
91818Variant_Base<t_HEAD, t_TAIL_01,
91819 t_TAIL_02,
91820 t_TAIL_03,
91821 t_TAIL_04,
91822 t_TAIL_05,
91823 t_TAIL_06,
91824 t_TAIL_07,
91825 t_TAIL_08,
91826 t_TAIL_09,
91827 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
91828 bsl::allocator_arg_t,
91829 allocator_type allocator,
91831: AllocBase(allocator)
91832, d_type(t_INDEX)
91833{
91834 typedef typename bsl::remove_cv<
91836 Alt_Type;
91837
91838 BloombergLP::bslma::ConstructionUtil::construct(
91839 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91840 AllocBase::mechanism());
91841}
91842#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
91843
91844#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
91845template <class t_HEAD, class t_TAIL_01,
91846 class t_TAIL_02,
91847 class t_TAIL_03,
91848 class t_TAIL_04,
91849 class t_TAIL_05,
91850 class t_TAIL_06,
91851 class t_TAIL_07,
91852 class t_TAIL_08,
91853 class t_TAIL_09,
91854 class t_TAIL_10>
91855template <size_t t_INDEX>
91856inline
91857Variant_Base<t_HEAD, t_TAIL_01,
91858 t_TAIL_02,
91859 t_TAIL_03,
91860 t_TAIL_04,
91861 t_TAIL_05,
91862 t_TAIL_06,
91863 t_TAIL_07,
91864 t_TAIL_08,
91865 t_TAIL_09,
91866 t_TAIL_10,
91867 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
91868 bsl::allocator_arg_t,
91869 allocator_type allocator,
91871: AllocBase(allocator)
91872, d_type(t_INDEX)
91873{
91874 typedef typename bsl::remove_cv<
91876 Alt_Type;
91877
91878 BloombergLP::bslma::ConstructionUtil::construct(
91879 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91880 AllocBase::mechanism());
91881}
91882#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
91883
91884#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
91885template <class t_HEAD, class t_TAIL_01,
91886 class t_TAIL_02,
91887 class t_TAIL_03,
91888 class t_TAIL_04,
91889 class t_TAIL_05,
91890 class t_TAIL_06,
91891 class t_TAIL_07,
91892 class t_TAIL_08,
91893 class t_TAIL_09,
91894 class t_TAIL_10,
91895 class t_TAIL_11>
91896template <size_t t_INDEX>
91897inline
91898Variant_Base<t_HEAD, t_TAIL_01,
91899 t_TAIL_02,
91900 t_TAIL_03,
91901 t_TAIL_04,
91902 t_TAIL_05,
91903 t_TAIL_06,
91904 t_TAIL_07,
91905 t_TAIL_08,
91906 t_TAIL_09,
91907 t_TAIL_10,
91908 t_TAIL_11,
91909 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
91910 bsl::allocator_arg_t,
91911 allocator_type allocator,
91913: AllocBase(allocator)
91914, d_type(t_INDEX)
91915{
91916 typedef typename bsl::remove_cv<
91918 Alt_Type;
91919
91920 BloombergLP::bslma::ConstructionUtil::construct(
91921 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91922 AllocBase::mechanism());
91923}
91924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
91925
91926#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
91927template <class t_HEAD, class t_TAIL_01,
91928 class t_TAIL_02,
91929 class t_TAIL_03,
91930 class t_TAIL_04,
91931 class t_TAIL_05,
91932 class t_TAIL_06,
91933 class t_TAIL_07,
91934 class t_TAIL_08,
91935 class t_TAIL_09,
91936 class t_TAIL_10,
91937 class t_TAIL_11,
91938 class t_TAIL_12>
91939template <size_t t_INDEX>
91940inline
91941Variant_Base<t_HEAD, t_TAIL_01,
91942 t_TAIL_02,
91943 t_TAIL_03,
91944 t_TAIL_04,
91945 t_TAIL_05,
91946 t_TAIL_06,
91947 t_TAIL_07,
91948 t_TAIL_08,
91949 t_TAIL_09,
91950 t_TAIL_10,
91951 t_TAIL_11,
91952 t_TAIL_12,
91953 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
91954 bsl::allocator_arg_t,
91955 allocator_type allocator,
91957: AllocBase(allocator)
91958, d_type(t_INDEX)
91959{
91960 typedef typename bsl::remove_cv<
91962 Alt_Type;
91963
91964 BloombergLP::bslma::ConstructionUtil::construct(
91965 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
91966 AllocBase::mechanism());
91967}
91968#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
91969
91970#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
91971template <class t_HEAD, class t_TAIL_01,
91972 class t_TAIL_02,
91973 class t_TAIL_03,
91974 class t_TAIL_04,
91975 class t_TAIL_05,
91976 class t_TAIL_06,
91977 class t_TAIL_07,
91978 class t_TAIL_08,
91979 class t_TAIL_09,
91980 class t_TAIL_10,
91981 class t_TAIL_11,
91982 class t_TAIL_12,
91983 class t_TAIL_13>
91984template <size_t t_INDEX>
91985inline
91986Variant_Base<t_HEAD, t_TAIL_01,
91987 t_TAIL_02,
91988 t_TAIL_03,
91989 t_TAIL_04,
91990 t_TAIL_05,
91991 t_TAIL_06,
91992 t_TAIL_07,
91993 t_TAIL_08,
91994 t_TAIL_09,
91995 t_TAIL_10,
91996 t_TAIL_11,
91997 t_TAIL_12,
91998 t_TAIL_13,
91999 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
92000 bsl::allocator_arg_t,
92001 allocator_type allocator,
92003: AllocBase(allocator)
92004, d_type(t_INDEX)
92005{
92006 typedef typename bsl::remove_cv<
92008 Alt_Type;
92009
92010 BloombergLP::bslma::ConstructionUtil::construct(
92011 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92012 AllocBase::mechanism());
92013}
92014#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
92015
92016#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
92017template <class t_HEAD, class t_TAIL_01,
92018 class t_TAIL_02,
92019 class t_TAIL_03,
92020 class t_TAIL_04,
92021 class t_TAIL_05,
92022 class t_TAIL_06,
92023 class t_TAIL_07,
92024 class t_TAIL_08,
92025 class t_TAIL_09,
92026 class t_TAIL_10,
92027 class t_TAIL_11,
92028 class t_TAIL_12,
92029 class t_TAIL_13,
92030 class t_TAIL_14>
92031template <size_t t_INDEX>
92032inline
92033Variant_Base<t_HEAD, t_TAIL_01,
92034 t_TAIL_02,
92035 t_TAIL_03,
92036 t_TAIL_04,
92037 t_TAIL_05,
92038 t_TAIL_06,
92039 t_TAIL_07,
92040 t_TAIL_08,
92041 t_TAIL_09,
92042 t_TAIL_10,
92043 t_TAIL_11,
92044 t_TAIL_12,
92045 t_TAIL_13,
92046 t_TAIL_14,
92047 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
92048 bsl::allocator_arg_t,
92049 allocator_type allocator,
92051: AllocBase(allocator)
92052, d_type(t_INDEX)
92053{
92054 typedef typename bsl::remove_cv<
92056 Alt_Type;
92057
92058 BloombergLP::bslma::ConstructionUtil::construct(
92059 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92060 AllocBase::mechanism());
92061}
92062#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
92063
92064#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
92065template <class t_HEAD, class t_TAIL_01,
92066 class t_TAIL_02,
92067 class t_TAIL_03,
92068 class t_TAIL_04,
92069 class t_TAIL_05,
92070 class t_TAIL_06,
92071 class t_TAIL_07,
92072 class t_TAIL_08,
92073 class t_TAIL_09,
92074 class t_TAIL_10,
92075 class t_TAIL_11,
92076 class t_TAIL_12,
92077 class t_TAIL_13,
92078 class t_TAIL_14,
92079 class t_TAIL_15>
92080template <size_t t_INDEX>
92081inline
92082Variant_Base<t_HEAD, t_TAIL_01,
92083 t_TAIL_02,
92084 t_TAIL_03,
92085 t_TAIL_04,
92086 t_TAIL_05,
92087 t_TAIL_06,
92088 t_TAIL_07,
92089 t_TAIL_08,
92090 t_TAIL_09,
92091 t_TAIL_10,
92092 t_TAIL_11,
92093 t_TAIL_12,
92094 t_TAIL_13,
92095 t_TAIL_14,
92096 t_TAIL_15,
92097 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
92098 bsl::allocator_arg_t,
92099 allocator_type allocator,
92101: AllocBase(allocator)
92102, d_type(t_INDEX)
92103{
92104 typedef typename bsl::remove_cv<
92106 Alt_Type;
92107
92108 BloombergLP::bslma::ConstructionUtil::construct(
92109 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92110 AllocBase::mechanism());
92111}
92112#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
92113
92114#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
92115template <class t_HEAD, class t_TAIL_01,
92116 class t_TAIL_02,
92117 class t_TAIL_03,
92118 class t_TAIL_04,
92119 class t_TAIL_05,
92120 class t_TAIL_06,
92121 class t_TAIL_07,
92122 class t_TAIL_08,
92123 class t_TAIL_09,
92124 class t_TAIL_10,
92125 class t_TAIL_11,
92126 class t_TAIL_12,
92127 class t_TAIL_13,
92128 class t_TAIL_14,
92129 class t_TAIL_15,
92130 class t_TAIL_16>
92131template <size_t t_INDEX>
92132inline
92133Variant_Base<t_HEAD, t_TAIL_01,
92134 t_TAIL_02,
92135 t_TAIL_03,
92136 t_TAIL_04,
92137 t_TAIL_05,
92138 t_TAIL_06,
92139 t_TAIL_07,
92140 t_TAIL_08,
92141 t_TAIL_09,
92142 t_TAIL_10,
92143 t_TAIL_11,
92144 t_TAIL_12,
92145 t_TAIL_13,
92146 t_TAIL_14,
92147 t_TAIL_15,
92148 t_TAIL_16,
92149 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
92150 bsl::allocator_arg_t,
92151 allocator_type allocator,
92153: AllocBase(allocator)
92154, d_type(t_INDEX)
92155{
92156 typedef typename bsl::remove_cv<
92158 Alt_Type;
92159
92160 BloombergLP::bslma::ConstructionUtil::construct(
92161 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92162 AllocBase::mechanism());
92163}
92164#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
92165
92166#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
92167template <class t_HEAD, class t_TAIL_01,
92168 class t_TAIL_02,
92169 class t_TAIL_03,
92170 class t_TAIL_04,
92171 class t_TAIL_05,
92172 class t_TAIL_06,
92173 class t_TAIL_07,
92174 class t_TAIL_08,
92175 class t_TAIL_09,
92176 class t_TAIL_10,
92177 class t_TAIL_11,
92178 class t_TAIL_12,
92179 class t_TAIL_13,
92180 class t_TAIL_14,
92181 class t_TAIL_15,
92182 class t_TAIL_16,
92183 class t_TAIL_17>
92184template <size_t t_INDEX>
92185inline
92186Variant_Base<t_HEAD, t_TAIL_01,
92187 t_TAIL_02,
92188 t_TAIL_03,
92189 t_TAIL_04,
92190 t_TAIL_05,
92191 t_TAIL_06,
92192 t_TAIL_07,
92193 t_TAIL_08,
92194 t_TAIL_09,
92195 t_TAIL_10,
92196 t_TAIL_11,
92197 t_TAIL_12,
92198 t_TAIL_13,
92199 t_TAIL_14,
92200 t_TAIL_15,
92201 t_TAIL_16,
92202 t_TAIL_17,
92203 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
92204 bsl::allocator_arg_t,
92205 allocator_type allocator,
92207: AllocBase(allocator)
92208, d_type(t_INDEX)
92209{
92210 typedef typename bsl::remove_cv<
92212 Alt_Type;
92213
92214 BloombergLP::bslma::ConstructionUtil::construct(
92215 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92216 AllocBase::mechanism());
92217}
92218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
92219
92220#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
92221template <class t_HEAD, class t_TAIL_01,
92222 class t_TAIL_02,
92223 class t_TAIL_03,
92224 class t_TAIL_04,
92225 class t_TAIL_05,
92226 class t_TAIL_06,
92227 class t_TAIL_07,
92228 class t_TAIL_08,
92229 class t_TAIL_09,
92230 class t_TAIL_10,
92231 class t_TAIL_11,
92232 class t_TAIL_12,
92233 class t_TAIL_13,
92234 class t_TAIL_14,
92235 class t_TAIL_15,
92236 class t_TAIL_16,
92237 class t_TAIL_17,
92238 class t_TAIL_18>
92239template <size_t t_INDEX>
92240inline
92241Variant_Base<t_HEAD, t_TAIL_01,
92242 t_TAIL_02,
92243 t_TAIL_03,
92244 t_TAIL_04,
92245 t_TAIL_05,
92246 t_TAIL_06,
92247 t_TAIL_07,
92248 t_TAIL_08,
92249 t_TAIL_09,
92250 t_TAIL_10,
92251 t_TAIL_11,
92252 t_TAIL_12,
92253 t_TAIL_13,
92254 t_TAIL_14,
92255 t_TAIL_15,
92256 t_TAIL_16,
92257 t_TAIL_17,
92258 t_TAIL_18,
92259 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
92260 bsl::allocator_arg_t,
92261 allocator_type allocator,
92263: AllocBase(allocator)
92264, d_type(t_INDEX)
92265{
92266 typedef typename bsl::remove_cv<
92268 Alt_Type;
92269
92270 BloombergLP::bslma::ConstructionUtil::construct(
92271 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92272 AllocBase::mechanism());
92273}
92274#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
92275
92276
92277#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
92278template <class t_HEAD>
92279template <size_t t_INDEX, class t_ARG_01>
92280inline
92281Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
92282 bsl::allocator_arg_t,
92283 allocator_type allocator,
92285 const t_ARG_01& arg_01)
92286: AllocBase(allocator)
92287, d_type(t_INDEX)
92288{
92289 typedef typename bsl::remove_cv<
92291 Alt_Type;
92292
92293 BloombergLP::bslma::ConstructionUtil::construct(
92294 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92295 AllocBase::mechanism(),
92296 arg_01);
92297}
92298#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
92299
92300#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
92301template <class t_HEAD, class t_TAIL_01>
92302template <size_t t_INDEX, class t_ARG_01>
92303inline
92304Variant_Base<t_HEAD, t_TAIL_01,
92305 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
92306 bsl::allocator_arg_t,
92307 allocator_type allocator,
92309 const t_ARG_01& arg_01)
92310: AllocBase(allocator)
92311, d_type(t_INDEX)
92312{
92313 typedef typename bsl::remove_cv<
92315 Alt_Type;
92316
92317 BloombergLP::bslma::ConstructionUtil::construct(
92318 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92319 AllocBase::mechanism(),
92320 arg_01);
92321}
92322#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
92323
92324#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
92325template <class t_HEAD, class t_TAIL_01,
92326 class t_TAIL_02>
92327template <size_t t_INDEX, class t_ARG_01>
92328inline
92329Variant_Base<t_HEAD, t_TAIL_01,
92330 t_TAIL_02,
92331 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
92332 bsl::allocator_arg_t,
92333 allocator_type allocator,
92335 const t_ARG_01& arg_01)
92336: AllocBase(allocator)
92337, d_type(t_INDEX)
92338{
92339 typedef typename bsl::remove_cv<
92341 Alt_Type;
92342
92343 BloombergLP::bslma::ConstructionUtil::construct(
92344 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92345 AllocBase::mechanism(),
92346 arg_01);
92347}
92348#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
92349
92350#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
92351template <class t_HEAD, class t_TAIL_01,
92352 class t_TAIL_02,
92353 class t_TAIL_03>
92354template <size_t t_INDEX, class t_ARG_01>
92355inline
92356Variant_Base<t_HEAD, t_TAIL_01,
92357 t_TAIL_02,
92358 t_TAIL_03,
92359 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
92360 bsl::allocator_arg_t,
92361 allocator_type allocator,
92363 const t_ARG_01& arg_01)
92364: AllocBase(allocator)
92365, d_type(t_INDEX)
92366{
92367 typedef typename bsl::remove_cv<
92369 Alt_Type;
92370
92371 BloombergLP::bslma::ConstructionUtil::construct(
92372 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92373 AllocBase::mechanism(),
92374 arg_01);
92375}
92376#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
92377
92378#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
92379template <class t_HEAD, class t_TAIL_01,
92380 class t_TAIL_02,
92381 class t_TAIL_03,
92382 class t_TAIL_04>
92383template <size_t t_INDEX, class t_ARG_01>
92384inline
92385Variant_Base<t_HEAD, t_TAIL_01,
92386 t_TAIL_02,
92387 t_TAIL_03,
92388 t_TAIL_04,
92389 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
92390 bsl::allocator_arg_t,
92391 allocator_type allocator,
92393 const t_ARG_01& arg_01)
92394: AllocBase(allocator)
92395, d_type(t_INDEX)
92396{
92397 typedef typename bsl::remove_cv<
92399 Alt_Type;
92400
92401 BloombergLP::bslma::ConstructionUtil::construct(
92402 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92403 AllocBase::mechanism(),
92404 arg_01);
92405}
92406#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
92407
92408#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
92409template <class t_HEAD, class t_TAIL_01,
92410 class t_TAIL_02,
92411 class t_TAIL_03,
92412 class t_TAIL_04,
92413 class t_TAIL_05>
92414template <size_t t_INDEX, class t_ARG_01>
92415inline
92416Variant_Base<t_HEAD, t_TAIL_01,
92417 t_TAIL_02,
92418 t_TAIL_03,
92419 t_TAIL_04,
92420 t_TAIL_05,
92421 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
92422 bsl::allocator_arg_t,
92423 allocator_type allocator,
92425 const t_ARG_01& arg_01)
92426: AllocBase(allocator)
92427, d_type(t_INDEX)
92428{
92429 typedef typename bsl::remove_cv<
92431 Alt_Type;
92432
92433 BloombergLP::bslma::ConstructionUtil::construct(
92434 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92435 AllocBase::mechanism(),
92436 arg_01);
92437}
92438#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
92439
92440#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
92441template <class t_HEAD, class t_TAIL_01,
92442 class t_TAIL_02,
92443 class t_TAIL_03,
92444 class t_TAIL_04,
92445 class t_TAIL_05,
92446 class t_TAIL_06>
92447template <size_t t_INDEX, class t_ARG_01>
92448inline
92449Variant_Base<t_HEAD, t_TAIL_01,
92450 t_TAIL_02,
92451 t_TAIL_03,
92452 t_TAIL_04,
92453 t_TAIL_05,
92454 t_TAIL_06,
92455 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
92456 bsl::allocator_arg_t,
92457 allocator_type allocator,
92459 const t_ARG_01& arg_01)
92460: AllocBase(allocator)
92461, d_type(t_INDEX)
92462{
92463 typedef typename bsl::remove_cv<
92465 Alt_Type;
92466
92467 BloombergLP::bslma::ConstructionUtil::construct(
92468 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92469 AllocBase::mechanism(),
92470 arg_01);
92471}
92472#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
92473
92474#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
92475template <class t_HEAD, class t_TAIL_01,
92476 class t_TAIL_02,
92477 class t_TAIL_03,
92478 class t_TAIL_04,
92479 class t_TAIL_05,
92480 class t_TAIL_06,
92481 class t_TAIL_07>
92482template <size_t t_INDEX, class t_ARG_01>
92483inline
92484Variant_Base<t_HEAD, t_TAIL_01,
92485 t_TAIL_02,
92486 t_TAIL_03,
92487 t_TAIL_04,
92488 t_TAIL_05,
92489 t_TAIL_06,
92490 t_TAIL_07,
92491 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
92492 bsl::allocator_arg_t,
92493 allocator_type allocator,
92495 const t_ARG_01& arg_01)
92496: AllocBase(allocator)
92497, d_type(t_INDEX)
92498{
92499 typedef typename bsl::remove_cv<
92501 Alt_Type;
92502
92503 BloombergLP::bslma::ConstructionUtil::construct(
92504 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92505 AllocBase::mechanism(),
92506 arg_01);
92507}
92508#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
92509
92510#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
92511template <class t_HEAD, class t_TAIL_01,
92512 class t_TAIL_02,
92513 class t_TAIL_03,
92514 class t_TAIL_04,
92515 class t_TAIL_05,
92516 class t_TAIL_06,
92517 class t_TAIL_07,
92518 class t_TAIL_08>
92519template <size_t t_INDEX, class t_ARG_01>
92520inline
92521Variant_Base<t_HEAD, t_TAIL_01,
92522 t_TAIL_02,
92523 t_TAIL_03,
92524 t_TAIL_04,
92525 t_TAIL_05,
92526 t_TAIL_06,
92527 t_TAIL_07,
92528 t_TAIL_08,
92529 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
92530 bsl::allocator_arg_t,
92531 allocator_type allocator,
92533 const t_ARG_01& arg_01)
92534: AllocBase(allocator)
92535, d_type(t_INDEX)
92536{
92537 typedef typename bsl::remove_cv<
92539 Alt_Type;
92540
92541 BloombergLP::bslma::ConstructionUtil::construct(
92542 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92543 AllocBase::mechanism(),
92544 arg_01);
92545}
92546#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
92547
92548#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
92549template <class t_HEAD, class t_TAIL_01,
92550 class t_TAIL_02,
92551 class t_TAIL_03,
92552 class t_TAIL_04,
92553 class t_TAIL_05,
92554 class t_TAIL_06,
92555 class t_TAIL_07,
92556 class t_TAIL_08,
92557 class t_TAIL_09>
92558template <size_t t_INDEX, class t_ARG_01>
92559inline
92560Variant_Base<t_HEAD, t_TAIL_01,
92561 t_TAIL_02,
92562 t_TAIL_03,
92563 t_TAIL_04,
92564 t_TAIL_05,
92565 t_TAIL_06,
92566 t_TAIL_07,
92567 t_TAIL_08,
92568 t_TAIL_09,
92569 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
92570 bsl::allocator_arg_t,
92571 allocator_type allocator,
92573 const t_ARG_01& arg_01)
92574: AllocBase(allocator)
92575, d_type(t_INDEX)
92576{
92577 typedef typename bsl::remove_cv<
92579 Alt_Type;
92580
92581 BloombergLP::bslma::ConstructionUtil::construct(
92582 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92583 AllocBase::mechanism(),
92584 arg_01);
92585}
92586#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
92587
92588#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
92589template <class t_HEAD, class t_TAIL_01,
92590 class t_TAIL_02,
92591 class t_TAIL_03,
92592 class t_TAIL_04,
92593 class t_TAIL_05,
92594 class t_TAIL_06,
92595 class t_TAIL_07,
92596 class t_TAIL_08,
92597 class t_TAIL_09,
92598 class t_TAIL_10>
92599template <size_t t_INDEX, class t_ARG_01>
92600inline
92601Variant_Base<t_HEAD, t_TAIL_01,
92602 t_TAIL_02,
92603 t_TAIL_03,
92604 t_TAIL_04,
92605 t_TAIL_05,
92606 t_TAIL_06,
92607 t_TAIL_07,
92608 t_TAIL_08,
92609 t_TAIL_09,
92610 t_TAIL_10,
92611 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
92612 bsl::allocator_arg_t,
92613 allocator_type allocator,
92615 const t_ARG_01& arg_01)
92616: AllocBase(allocator)
92617, d_type(t_INDEX)
92618{
92619 typedef typename bsl::remove_cv<
92621 Alt_Type;
92622
92623 BloombergLP::bslma::ConstructionUtil::construct(
92624 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92625 AllocBase::mechanism(),
92626 arg_01);
92627}
92628#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
92629
92630#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
92631template <class t_HEAD, class t_TAIL_01,
92632 class t_TAIL_02,
92633 class t_TAIL_03,
92634 class t_TAIL_04,
92635 class t_TAIL_05,
92636 class t_TAIL_06,
92637 class t_TAIL_07,
92638 class t_TAIL_08,
92639 class t_TAIL_09,
92640 class t_TAIL_10,
92641 class t_TAIL_11>
92642template <size_t t_INDEX, class t_ARG_01>
92643inline
92644Variant_Base<t_HEAD, t_TAIL_01,
92645 t_TAIL_02,
92646 t_TAIL_03,
92647 t_TAIL_04,
92648 t_TAIL_05,
92649 t_TAIL_06,
92650 t_TAIL_07,
92651 t_TAIL_08,
92652 t_TAIL_09,
92653 t_TAIL_10,
92654 t_TAIL_11,
92655 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
92656 bsl::allocator_arg_t,
92657 allocator_type allocator,
92659 const t_ARG_01& arg_01)
92660: AllocBase(allocator)
92661, d_type(t_INDEX)
92662{
92663 typedef typename bsl::remove_cv<
92665 Alt_Type;
92666
92667 BloombergLP::bslma::ConstructionUtil::construct(
92668 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92669 AllocBase::mechanism(),
92670 arg_01);
92671}
92672#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
92673
92674#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
92675template <class t_HEAD, class t_TAIL_01,
92676 class t_TAIL_02,
92677 class t_TAIL_03,
92678 class t_TAIL_04,
92679 class t_TAIL_05,
92680 class t_TAIL_06,
92681 class t_TAIL_07,
92682 class t_TAIL_08,
92683 class t_TAIL_09,
92684 class t_TAIL_10,
92685 class t_TAIL_11,
92686 class t_TAIL_12>
92687template <size_t t_INDEX, class t_ARG_01>
92688inline
92689Variant_Base<t_HEAD, t_TAIL_01,
92690 t_TAIL_02,
92691 t_TAIL_03,
92692 t_TAIL_04,
92693 t_TAIL_05,
92694 t_TAIL_06,
92695 t_TAIL_07,
92696 t_TAIL_08,
92697 t_TAIL_09,
92698 t_TAIL_10,
92699 t_TAIL_11,
92700 t_TAIL_12,
92701 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
92702 bsl::allocator_arg_t,
92703 allocator_type allocator,
92705 const t_ARG_01& arg_01)
92706: AllocBase(allocator)
92707, d_type(t_INDEX)
92708{
92709 typedef typename bsl::remove_cv<
92711 Alt_Type;
92712
92713 BloombergLP::bslma::ConstructionUtil::construct(
92714 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92715 AllocBase::mechanism(),
92716 arg_01);
92717}
92718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
92719
92720#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
92721template <class t_HEAD, class t_TAIL_01,
92722 class t_TAIL_02,
92723 class t_TAIL_03,
92724 class t_TAIL_04,
92725 class t_TAIL_05,
92726 class t_TAIL_06,
92727 class t_TAIL_07,
92728 class t_TAIL_08,
92729 class t_TAIL_09,
92730 class t_TAIL_10,
92731 class t_TAIL_11,
92732 class t_TAIL_12,
92733 class t_TAIL_13>
92734template <size_t t_INDEX, class t_ARG_01>
92735inline
92736Variant_Base<t_HEAD, t_TAIL_01,
92737 t_TAIL_02,
92738 t_TAIL_03,
92739 t_TAIL_04,
92740 t_TAIL_05,
92741 t_TAIL_06,
92742 t_TAIL_07,
92743 t_TAIL_08,
92744 t_TAIL_09,
92745 t_TAIL_10,
92746 t_TAIL_11,
92747 t_TAIL_12,
92748 t_TAIL_13,
92749 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
92750 bsl::allocator_arg_t,
92751 allocator_type allocator,
92753 const t_ARG_01& arg_01)
92754: AllocBase(allocator)
92755, d_type(t_INDEX)
92756{
92757 typedef typename bsl::remove_cv<
92759 Alt_Type;
92760
92761 BloombergLP::bslma::ConstructionUtil::construct(
92762 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92763 AllocBase::mechanism(),
92764 arg_01);
92765}
92766#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
92767
92768#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
92769template <class t_HEAD, class t_TAIL_01,
92770 class t_TAIL_02,
92771 class t_TAIL_03,
92772 class t_TAIL_04,
92773 class t_TAIL_05,
92774 class t_TAIL_06,
92775 class t_TAIL_07,
92776 class t_TAIL_08,
92777 class t_TAIL_09,
92778 class t_TAIL_10,
92779 class t_TAIL_11,
92780 class t_TAIL_12,
92781 class t_TAIL_13,
92782 class t_TAIL_14>
92783template <size_t t_INDEX, class t_ARG_01>
92784inline
92785Variant_Base<t_HEAD, t_TAIL_01,
92786 t_TAIL_02,
92787 t_TAIL_03,
92788 t_TAIL_04,
92789 t_TAIL_05,
92790 t_TAIL_06,
92791 t_TAIL_07,
92792 t_TAIL_08,
92793 t_TAIL_09,
92794 t_TAIL_10,
92795 t_TAIL_11,
92796 t_TAIL_12,
92797 t_TAIL_13,
92798 t_TAIL_14,
92799 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
92800 bsl::allocator_arg_t,
92801 allocator_type allocator,
92803 const t_ARG_01& arg_01)
92804: AllocBase(allocator)
92805, d_type(t_INDEX)
92806{
92807 typedef typename bsl::remove_cv<
92809 Alt_Type;
92810
92811 BloombergLP::bslma::ConstructionUtil::construct(
92812 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92813 AllocBase::mechanism(),
92814 arg_01);
92815}
92816#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
92817
92818#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
92819template <class t_HEAD, class t_TAIL_01,
92820 class t_TAIL_02,
92821 class t_TAIL_03,
92822 class t_TAIL_04,
92823 class t_TAIL_05,
92824 class t_TAIL_06,
92825 class t_TAIL_07,
92826 class t_TAIL_08,
92827 class t_TAIL_09,
92828 class t_TAIL_10,
92829 class t_TAIL_11,
92830 class t_TAIL_12,
92831 class t_TAIL_13,
92832 class t_TAIL_14,
92833 class t_TAIL_15>
92834template <size_t t_INDEX, class t_ARG_01>
92835inline
92836Variant_Base<t_HEAD, t_TAIL_01,
92837 t_TAIL_02,
92838 t_TAIL_03,
92839 t_TAIL_04,
92840 t_TAIL_05,
92841 t_TAIL_06,
92842 t_TAIL_07,
92843 t_TAIL_08,
92844 t_TAIL_09,
92845 t_TAIL_10,
92846 t_TAIL_11,
92847 t_TAIL_12,
92848 t_TAIL_13,
92849 t_TAIL_14,
92850 t_TAIL_15,
92851 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
92852 bsl::allocator_arg_t,
92853 allocator_type allocator,
92855 const t_ARG_01& arg_01)
92856: AllocBase(allocator)
92857, d_type(t_INDEX)
92858{
92859 typedef typename bsl::remove_cv<
92861 Alt_Type;
92862
92863 BloombergLP::bslma::ConstructionUtil::construct(
92864 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92865 AllocBase::mechanism(),
92866 arg_01);
92867}
92868#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
92869
92870#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
92871template <class t_HEAD, class t_TAIL_01,
92872 class t_TAIL_02,
92873 class t_TAIL_03,
92874 class t_TAIL_04,
92875 class t_TAIL_05,
92876 class t_TAIL_06,
92877 class t_TAIL_07,
92878 class t_TAIL_08,
92879 class t_TAIL_09,
92880 class t_TAIL_10,
92881 class t_TAIL_11,
92882 class t_TAIL_12,
92883 class t_TAIL_13,
92884 class t_TAIL_14,
92885 class t_TAIL_15,
92886 class t_TAIL_16>
92887template <size_t t_INDEX, class t_ARG_01>
92888inline
92889Variant_Base<t_HEAD, t_TAIL_01,
92890 t_TAIL_02,
92891 t_TAIL_03,
92892 t_TAIL_04,
92893 t_TAIL_05,
92894 t_TAIL_06,
92895 t_TAIL_07,
92896 t_TAIL_08,
92897 t_TAIL_09,
92898 t_TAIL_10,
92899 t_TAIL_11,
92900 t_TAIL_12,
92901 t_TAIL_13,
92902 t_TAIL_14,
92903 t_TAIL_15,
92904 t_TAIL_16,
92905 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
92906 bsl::allocator_arg_t,
92907 allocator_type allocator,
92909 const t_ARG_01& arg_01)
92910: AllocBase(allocator)
92911, d_type(t_INDEX)
92912{
92913 typedef typename bsl::remove_cv<
92915 Alt_Type;
92916
92917 BloombergLP::bslma::ConstructionUtil::construct(
92918 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92919 AllocBase::mechanism(),
92920 arg_01);
92921}
92922#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
92923
92924#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
92925template <class t_HEAD, class t_TAIL_01,
92926 class t_TAIL_02,
92927 class t_TAIL_03,
92928 class t_TAIL_04,
92929 class t_TAIL_05,
92930 class t_TAIL_06,
92931 class t_TAIL_07,
92932 class t_TAIL_08,
92933 class t_TAIL_09,
92934 class t_TAIL_10,
92935 class t_TAIL_11,
92936 class t_TAIL_12,
92937 class t_TAIL_13,
92938 class t_TAIL_14,
92939 class t_TAIL_15,
92940 class t_TAIL_16,
92941 class t_TAIL_17>
92942template <size_t t_INDEX, class t_ARG_01>
92943inline
92944Variant_Base<t_HEAD, t_TAIL_01,
92945 t_TAIL_02,
92946 t_TAIL_03,
92947 t_TAIL_04,
92948 t_TAIL_05,
92949 t_TAIL_06,
92950 t_TAIL_07,
92951 t_TAIL_08,
92952 t_TAIL_09,
92953 t_TAIL_10,
92954 t_TAIL_11,
92955 t_TAIL_12,
92956 t_TAIL_13,
92957 t_TAIL_14,
92958 t_TAIL_15,
92959 t_TAIL_16,
92960 t_TAIL_17,
92961 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
92962 bsl::allocator_arg_t,
92963 allocator_type allocator,
92965 const t_ARG_01& arg_01)
92966: AllocBase(allocator)
92967, d_type(t_INDEX)
92968{
92969 typedef typename bsl::remove_cv<
92971 Alt_Type;
92972
92973 BloombergLP::bslma::ConstructionUtil::construct(
92974 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
92975 AllocBase::mechanism(),
92976 arg_01);
92977}
92978#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
92979
92980#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
92981template <class t_HEAD, class t_TAIL_01,
92982 class t_TAIL_02,
92983 class t_TAIL_03,
92984 class t_TAIL_04,
92985 class t_TAIL_05,
92986 class t_TAIL_06,
92987 class t_TAIL_07,
92988 class t_TAIL_08,
92989 class t_TAIL_09,
92990 class t_TAIL_10,
92991 class t_TAIL_11,
92992 class t_TAIL_12,
92993 class t_TAIL_13,
92994 class t_TAIL_14,
92995 class t_TAIL_15,
92996 class t_TAIL_16,
92997 class t_TAIL_17,
92998 class t_TAIL_18>
92999template <size_t t_INDEX, class t_ARG_01>
93000inline
93001Variant_Base<t_HEAD, t_TAIL_01,
93002 t_TAIL_02,
93003 t_TAIL_03,
93004 t_TAIL_04,
93005 t_TAIL_05,
93006 t_TAIL_06,
93007 t_TAIL_07,
93008 t_TAIL_08,
93009 t_TAIL_09,
93010 t_TAIL_10,
93011 t_TAIL_11,
93012 t_TAIL_12,
93013 t_TAIL_13,
93014 t_TAIL_14,
93015 t_TAIL_15,
93016 t_TAIL_16,
93017 t_TAIL_17,
93018 t_TAIL_18,
93019 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
93020 bsl::allocator_arg_t,
93021 allocator_type allocator,
93023 const t_ARG_01& arg_01)
93024: AllocBase(allocator)
93025, d_type(t_INDEX)
93026{
93027 typedef typename bsl::remove_cv<
93029 Alt_Type;
93030
93031 BloombergLP::bslma::ConstructionUtil::construct(
93032 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93033 AllocBase::mechanism(),
93034 arg_01);
93035}
93036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
93037
93038
93039#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
93040template <class t_HEAD>
93041template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93042inline
93043Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
93044 bsl::allocator_arg_t,
93045 allocator_type allocator,
93047 const t_ARG_01& arg_01,
93048 const t_ARG_02& arg_02)
93049: AllocBase(allocator)
93050, d_type(t_INDEX)
93051{
93052 typedef typename bsl::remove_cv<
93054 Alt_Type;
93055
93056 BloombergLP::bslma::ConstructionUtil::construct(
93057 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93058 AllocBase::mechanism(),
93059 arg_01,
93060 arg_02);
93061}
93062#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
93063
93064#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
93065template <class t_HEAD, class t_TAIL_01>
93066template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93067inline
93068Variant_Base<t_HEAD, t_TAIL_01,
93069 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
93070 bsl::allocator_arg_t,
93071 allocator_type allocator,
93073 const t_ARG_01& arg_01,
93074 const t_ARG_02& arg_02)
93075: AllocBase(allocator)
93076, d_type(t_INDEX)
93077{
93078 typedef typename bsl::remove_cv<
93080 Alt_Type;
93081
93082 BloombergLP::bslma::ConstructionUtil::construct(
93083 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93084 AllocBase::mechanism(),
93085 arg_01,
93086 arg_02);
93087}
93088#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
93089
93090#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
93091template <class t_HEAD, class t_TAIL_01,
93092 class t_TAIL_02>
93093template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93094inline
93095Variant_Base<t_HEAD, t_TAIL_01,
93096 t_TAIL_02,
93097 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
93098 bsl::allocator_arg_t,
93099 allocator_type allocator,
93101 const t_ARG_01& arg_01,
93102 const t_ARG_02& arg_02)
93103: AllocBase(allocator)
93104, d_type(t_INDEX)
93105{
93106 typedef typename bsl::remove_cv<
93108 Alt_Type;
93109
93110 BloombergLP::bslma::ConstructionUtil::construct(
93111 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93112 AllocBase::mechanism(),
93113 arg_01,
93114 arg_02);
93115}
93116#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
93117
93118#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
93119template <class t_HEAD, class t_TAIL_01,
93120 class t_TAIL_02,
93121 class t_TAIL_03>
93122template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93123inline
93124Variant_Base<t_HEAD, t_TAIL_01,
93125 t_TAIL_02,
93126 t_TAIL_03,
93127 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
93128 bsl::allocator_arg_t,
93129 allocator_type allocator,
93131 const t_ARG_01& arg_01,
93132 const t_ARG_02& arg_02)
93133: AllocBase(allocator)
93134, d_type(t_INDEX)
93135{
93136 typedef typename bsl::remove_cv<
93138 Alt_Type;
93139
93140 BloombergLP::bslma::ConstructionUtil::construct(
93141 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93142 AllocBase::mechanism(),
93143 arg_01,
93144 arg_02);
93145}
93146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
93147
93148#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
93149template <class t_HEAD, class t_TAIL_01,
93150 class t_TAIL_02,
93151 class t_TAIL_03,
93152 class t_TAIL_04>
93153template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93154inline
93155Variant_Base<t_HEAD, t_TAIL_01,
93156 t_TAIL_02,
93157 t_TAIL_03,
93158 t_TAIL_04,
93159 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
93160 bsl::allocator_arg_t,
93161 allocator_type allocator,
93163 const t_ARG_01& arg_01,
93164 const t_ARG_02& arg_02)
93165: AllocBase(allocator)
93166, d_type(t_INDEX)
93167{
93168 typedef typename bsl::remove_cv<
93170 Alt_Type;
93171
93172 BloombergLP::bslma::ConstructionUtil::construct(
93173 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93174 AllocBase::mechanism(),
93175 arg_01,
93176 arg_02);
93177}
93178#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
93179
93180#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
93181template <class t_HEAD, class t_TAIL_01,
93182 class t_TAIL_02,
93183 class t_TAIL_03,
93184 class t_TAIL_04,
93185 class t_TAIL_05>
93186template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93187inline
93188Variant_Base<t_HEAD, t_TAIL_01,
93189 t_TAIL_02,
93190 t_TAIL_03,
93191 t_TAIL_04,
93192 t_TAIL_05,
93193 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
93194 bsl::allocator_arg_t,
93195 allocator_type allocator,
93197 const t_ARG_01& arg_01,
93198 const t_ARG_02& arg_02)
93199: AllocBase(allocator)
93200, d_type(t_INDEX)
93201{
93202 typedef typename bsl::remove_cv<
93204 Alt_Type;
93205
93206 BloombergLP::bslma::ConstructionUtil::construct(
93207 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93208 AllocBase::mechanism(),
93209 arg_01,
93210 arg_02);
93211}
93212#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
93213
93214#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
93215template <class t_HEAD, class t_TAIL_01,
93216 class t_TAIL_02,
93217 class t_TAIL_03,
93218 class t_TAIL_04,
93219 class t_TAIL_05,
93220 class t_TAIL_06>
93221template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93222inline
93223Variant_Base<t_HEAD, t_TAIL_01,
93224 t_TAIL_02,
93225 t_TAIL_03,
93226 t_TAIL_04,
93227 t_TAIL_05,
93228 t_TAIL_06,
93229 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
93230 bsl::allocator_arg_t,
93231 allocator_type allocator,
93233 const t_ARG_01& arg_01,
93234 const t_ARG_02& arg_02)
93235: AllocBase(allocator)
93236, d_type(t_INDEX)
93237{
93238 typedef typename bsl::remove_cv<
93240 Alt_Type;
93241
93242 BloombergLP::bslma::ConstructionUtil::construct(
93243 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93244 AllocBase::mechanism(),
93245 arg_01,
93246 arg_02);
93247}
93248#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
93249
93250#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
93251template <class t_HEAD, class t_TAIL_01,
93252 class t_TAIL_02,
93253 class t_TAIL_03,
93254 class t_TAIL_04,
93255 class t_TAIL_05,
93256 class t_TAIL_06,
93257 class t_TAIL_07>
93258template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93259inline
93260Variant_Base<t_HEAD, t_TAIL_01,
93261 t_TAIL_02,
93262 t_TAIL_03,
93263 t_TAIL_04,
93264 t_TAIL_05,
93265 t_TAIL_06,
93266 t_TAIL_07,
93267 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
93268 bsl::allocator_arg_t,
93269 allocator_type allocator,
93271 const t_ARG_01& arg_01,
93272 const t_ARG_02& arg_02)
93273: AllocBase(allocator)
93274, d_type(t_INDEX)
93275{
93276 typedef typename bsl::remove_cv<
93278 Alt_Type;
93279
93280 BloombergLP::bslma::ConstructionUtil::construct(
93281 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93282 AllocBase::mechanism(),
93283 arg_01,
93284 arg_02);
93285}
93286#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
93287
93288#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
93289template <class t_HEAD, class t_TAIL_01,
93290 class t_TAIL_02,
93291 class t_TAIL_03,
93292 class t_TAIL_04,
93293 class t_TAIL_05,
93294 class t_TAIL_06,
93295 class t_TAIL_07,
93296 class t_TAIL_08>
93297template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93298inline
93299Variant_Base<t_HEAD, t_TAIL_01,
93300 t_TAIL_02,
93301 t_TAIL_03,
93302 t_TAIL_04,
93303 t_TAIL_05,
93304 t_TAIL_06,
93305 t_TAIL_07,
93306 t_TAIL_08,
93307 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
93308 bsl::allocator_arg_t,
93309 allocator_type allocator,
93311 const t_ARG_01& arg_01,
93312 const t_ARG_02& arg_02)
93313: AllocBase(allocator)
93314, d_type(t_INDEX)
93315{
93316 typedef typename bsl::remove_cv<
93318 Alt_Type;
93319
93320 BloombergLP::bslma::ConstructionUtil::construct(
93321 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93322 AllocBase::mechanism(),
93323 arg_01,
93324 arg_02);
93325}
93326#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
93327
93328#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
93329template <class t_HEAD, class t_TAIL_01,
93330 class t_TAIL_02,
93331 class t_TAIL_03,
93332 class t_TAIL_04,
93333 class t_TAIL_05,
93334 class t_TAIL_06,
93335 class t_TAIL_07,
93336 class t_TAIL_08,
93337 class t_TAIL_09>
93338template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93339inline
93340Variant_Base<t_HEAD, t_TAIL_01,
93341 t_TAIL_02,
93342 t_TAIL_03,
93343 t_TAIL_04,
93344 t_TAIL_05,
93345 t_TAIL_06,
93346 t_TAIL_07,
93347 t_TAIL_08,
93348 t_TAIL_09,
93349 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
93350 bsl::allocator_arg_t,
93351 allocator_type allocator,
93353 const t_ARG_01& arg_01,
93354 const t_ARG_02& arg_02)
93355: AllocBase(allocator)
93356, d_type(t_INDEX)
93357{
93358 typedef typename bsl::remove_cv<
93360 Alt_Type;
93361
93362 BloombergLP::bslma::ConstructionUtil::construct(
93363 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93364 AllocBase::mechanism(),
93365 arg_01,
93366 arg_02);
93367}
93368#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
93369
93370#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
93371template <class t_HEAD, class t_TAIL_01,
93372 class t_TAIL_02,
93373 class t_TAIL_03,
93374 class t_TAIL_04,
93375 class t_TAIL_05,
93376 class t_TAIL_06,
93377 class t_TAIL_07,
93378 class t_TAIL_08,
93379 class t_TAIL_09,
93380 class t_TAIL_10>
93381template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93382inline
93383Variant_Base<t_HEAD, t_TAIL_01,
93384 t_TAIL_02,
93385 t_TAIL_03,
93386 t_TAIL_04,
93387 t_TAIL_05,
93388 t_TAIL_06,
93389 t_TAIL_07,
93390 t_TAIL_08,
93391 t_TAIL_09,
93392 t_TAIL_10,
93393 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
93394 bsl::allocator_arg_t,
93395 allocator_type allocator,
93397 const t_ARG_01& arg_01,
93398 const t_ARG_02& arg_02)
93399: AllocBase(allocator)
93400, d_type(t_INDEX)
93401{
93402 typedef typename bsl::remove_cv<
93404 Alt_Type;
93405
93406 BloombergLP::bslma::ConstructionUtil::construct(
93407 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93408 AllocBase::mechanism(),
93409 arg_01,
93410 arg_02);
93411}
93412#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
93413
93414#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
93415template <class t_HEAD, class t_TAIL_01,
93416 class t_TAIL_02,
93417 class t_TAIL_03,
93418 class t_TAIL_04,
93419 class t_TAIL_05,
93420 class t_TAIL_06,
93421 class t_TAIL_07,
93422 class t_TAIL_08,
93423 class t_TAIL_09,
93424 class t_TAIL_10,
93425 class t_TAIL_11>
93426template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93427inline
93428Variant_Base<t_HEAD, t_TAIL_01,
93429 t_TAIL_02,
93430 t_TAIL_03,
93431 t_TAIL_04,
93432 t_TAIL_05,
93433 t_TAIL_06,
93434 t_TAIL_07,
93435 t_TAIL_08,
93436 t_TAIL_09,
93437 t_TAIL_10,
93438 t_TAIL_11,
93439 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
93440 bsl::allocator_arg_t,
93441 allocator_type allocator,
93443 const t_ARG_01& arg_01,
93444 const t_ARG_02& arg_02)
93445: AllocBase(allocator)
93446, d_type(t_INDEX)
93447{
93448 typedef typename bsl::remove_cv<
93450 Alt_Type;
93451
93452 BloombergLP::bslma::ConstructionUtil::construct(
93453 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93454 AllocBase::mechanism(),
93455 arg_01,
93456 arg_02);
93457}
93458#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
93459
93460#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
93461template <class t_HEAD, class t_TAIL_01,
93462 class t_TAIL_02,
93463 class t_TAIL_03,
93464 class t_TAIL_04,
93465 class t_TAIL_05,
93466 class t_TAIL_06,
93467 class t_TAIL_07,
93468 class t_TAIL_08,
93469 class t_TAIL_09,
93470 class t_TAIL_10,
93471 class t_TAIL_11,
93472 class t_TAIL_12>
93473template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93474inline
93475Variant_Base<t_HEAD, t_TAIL_01,
93476 t_TAIL_02,
93477 t_TAIL_03,
93478 t_TAIL_04,
93479 t_TAIL_05,
93480 t_TAIL_06,
93481 t_TAIL_07,
93482 t_TAIL_08,
93483 t_TAIL_09,
93484 t_TAIL_10,
93485 t_TAIL_11,
93486 t_TAIL_12,
93487 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
93488 bsl::allocator_arg_t,
93489 allocator_type allocator,
93491 const t_ARG_01& arg_01,
93492 const t_ARG_02& arg_02)
93493: AllocBase(allocator)
93494, d_type(t_INDEX)
93495{
93496 typedef typename bsl::remove_cv<
93498 Alt_Type;
93499
93500 BloombergLP::bslma::ConstructionUtil::construct(
93501 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93502 AllocBase::mechanism(),
93503 arg_01,
93504 arg_02);
93505}
93506#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
93507
93508#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
93509template <class t_HEAD, class t_TAIL_01,
93510 class t_TAIL_02,
93511 class t_TAIL_03,
93512 class t_TAIL_04,
93513 class t_TAIL_05,
93514 class t_TAIL_06,
93515 class t_TAIL_07,
93516 class t_TAIL_08,
93517 class t_TAIL_09,
93518 class t_TAIL_10,
93519 class t_TAIL_11,
93520 class t_TAIL_12,
93521 class t_TAIL_13>
93522template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93523inline
93524Variant_Base<t_HEAD, t_TAIL_01,
93525 t_TAIL_02,
93526 t_TAIL_03,
93527 t_TAIL_04,
93528 t_TAIL_05,
93529 t_TAIL_06,
93530 t_TAIL_07,
93531 t_TAIL_08,
93532 t_TAIL_09,
93533 t_TAIL_10,
93534 t_TAIL_11,
93535 t_TAIL_12,
93536 t_TAIL_13,
93537 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
93538 bsl::allocator_arg_t,
93539 allocator_type allocator,
93541 const t_ARG_01& arg_01,
93542 const t_ARG_02& arg_02)
93543: AllocBase(allocator)
93544, d_type(t_INDEX)
93545{
93546 typedef typename bsl::remove_cv<
93548 Alt_Type;
93549
93550 BloombergLP::bslma::ConstructionUtil::construct(
93551 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93552 AllocBase::mechanism(),
93553 arg_01,
93554 arg_02);
93555}
93556#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
93557
93558#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
93559template <class t_HEAD, class t_TAIL_01,
93560 class t_TAIL_02,
93561 class t_TAIL_03,
93562 class t_TAIL_04,
93563 class t_TAIL_05,
93564 class t_TAIL_06,
93565 class t_TAIL_07,
93566 class t_TAIL_08,
93567 class t_TAIL_09,
93568 class t_TAIL_10,
93569 class t_TAIL_11,
93570 class t_TAIL_12,
93571 class t_TAIL_13,
93572 class t_TAIL_14>
93573template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93574inline
93575Variant_Base<t_HEAD, t_TAIL_01,
93576 t_TAIL_02,
93577 t_TAIL_03,
93578 t_TAIL_04,
93579 t_TAIL_05,
93580 t_TAIL_06,
93581 t_TAIL_07,
93582 t_TAIL_08,
93583 t_TAIL_09,
93584 t_TAIL_10,
93585 t_TAIL_11,
93586 t_TAIL_12,
93587 t_TAIL_13,
93588 t_TAIL_14,
93589 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
93590 bsl::allocator_arg_t,
93591 allocator_type allocator,
93593 const t_ARG_01& arg_01,
93594 const t_ARG_02& arg_02)
93595: AllocBase(allocator)
93596, d_type(t_INDEX)
93597{
93598 typedef typename bsl::remove_cv<
93600 Alt_Type;
93601
93602 BloombergLP::bslma::ConstructionUtil::construct(
93603 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93604 AllocBase::mechanism(),
93605 arg_01,
93606 arg_02);
93607}
93608#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
93609
93610#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
93611template <class t_HEAD, class t_TAIL_01,
93612 class t_TAIL_02,
93613 class t_TAIL_03,
93614 class t_TAIL_04,
93615 class t_TAIL_05,
93616 class t_TAIL_06,
93617 class t_TAIL_07,
93618 class t_TAIL_08,
93619 class t_TAIL_09,
93620 class t_TAIL_10,
93621 class t_TAIL_11,
93622 class t_TAIL_12,
93623 class t_TAIL_13,
93624 class t_TAIL_14,
93625 class t_TAIL_15>
93626template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93627inline
93628Variant_Base<t_HEAD, t_TAIL_01,
93629 t_TAIL_02,
93630 t_TAIL_03,
93631 t_TAIL_04,
93632 t_TAIL_05,
93633 t_TAIL_06,
93634 t_TAIL_07,
93635 t_TAIL_08,
93636 t_TAIL_09,
93637 t_TAIL_10,
93638 t_TAIL_11,
93639 t_TAIL_12,
93640 t_TAIL_13,
93641 t_TAIL_14,
93642 t_TAIL_15,
93643 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
93644 bsl::allocator_arg_t,
93645 allocator_type allocator,
93647 const t_ARG_01& arg_01,
93648 const t_ARG_02& arg_02)
93649: AllocBase(allocator)
93650, d_type(t_INDEX)
93651{
93652 typedef typename bsl::remove_cv<
93654 Alt_Type;
93655
93656 BloombergLP::bslma::ConstructionUtil::construct(
93657 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93658 AllocBase::mechanism(),
93659 arg_01,
93660 arg_02);
93661}
93662#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
93663
93664#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
93665template <class t_HEAD, class t_TAIL_01,
93666 class t_TAIL_02,
93667 class t_TAIL_03,
93668 class t_TAIL_04,
93669 class t_TAIL_05,
93670 class t_TAIL_06,
93671 class t_TAIL_07,
93672 class t_TAIL_08,
93673 class t_TAIL_09,
93674 class t_TAIL_10,
93675 class t_TAIL_11,
93676 class t_TAIL_12,
93677 class t_TAIL_13,
93678 class t_TAIL_14,
93679 class t_TAIL_15,
93680 class t_TAIL_16>
93681template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93682inline
93683Variant_Base<t_HEAD, t_TAIL_01,
93684 t_TAIL_02,
93685 t_TAIL_03,
93686 t_TAIL_04,
93687 t_TAIL_05,
93688 t_TAIL_06,
93689 t_TAIL_07,
93690 t_TAIL_08,
93691 t_TAIL_09,
93692 t_TAIL_10,
93693 t_TAIL_11,
93694 t_TAIL_12,
93695 t_TAIL_13,
93696 t_TAIL_14,
93697 t_TAIL_15,
93698 t_TAIL_16,
93699 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
93700 bsl::allocator_arg_t,
93701 allocator_type allocator,
93703 const t_ARG_01& arg_01,
93704 const t_ARG_02& arg_02)
93705: AllocBase(allocator)
93706, d_type(t_INDEX)
93707{
93708 typedef typename bsl::remove_cv<
93710 Alt_Type;
93711
93712 BloombergLP::bslma::ConstructionUtil::construct(
93713 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93714 AllocBase::mechanism(),
93715 arg_01,
93716 arg_02);
93717}
93718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
93719
93720#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
93721template <class t_HEAD, class t_TAIL_01,
93722 class t_TAIL_02,
93723 class t_TAIL_03,
93724 class t_TAIL_04,
93725 class t_TAIL_05,
93726 class t_TAIL_06,
93727 class t_TAIL_07,
93728 class t_TAIL_08,
93729 class t_TAIL_09,
93730 class t_TAIL_10,
93731 class t_TAIL_11,
93732 class t_TAIL_12,
93733 class t_TAIL_13,
93734 class t_TAIL_14,
93735 class t_TAIL_15,
93736 class t_TAIL_16,
93737 class t_TAIL_17>
93738template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93739inline
93740Variant_Base<t_HEAD, t_TAIL_01,
93741 t_TAIL_02,
93742 t_TAIL_03,
93743 t_TAIL_04,
93744 t_TAIL_05,
93745 t_TAIL_06,
93746 t_TAIL_07,
93747 t_TAIL_08,
93748 t_TAIL_09,
93749 t_TAIL_10,
93750 t_TAIL_11,
93751 t_TAIL_12,
93752 t_TAIL_13,
93753 t_TAIL_14,
93754 t_TAIL_15,
93755 t_TAIL_16,
93756 t_TAIL_17,
93757 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
93758 bsl::allocator_arg_t,
93759 allocator_type allocator,
93761 const t_ARG_01& arg_01,
93762 const t_ARG_02& arg_02)
93763: AllocBase(allocator)
93764, d_type(t_INDEX)
93765{
93766 typedef typename bsl::remove_cv<
93768 Alt_Type;
93769
93770 BloombergLP::bslma::ConstructionUtil::construct(
93771 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93772 AllocBase::mechanism(),
93773 arg_01,
93774 arg_02);
93775}
93776#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
93777
93778#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
93779template <class t_HEAD, class t_TAIL_01,
93780 class t_TAIL_02,
93781 class t_TAIL_03,
93782 class t_TAIL_04,
93783 class t_TAIL_05,
93784 class t_TAIL_06,
93785 class t_TAIL_07,
93786 class t_TAIL_08,
93787 class t_TAIL_09,
93788 class t_TAIL_10,
93789 class t_TAIL_11,
93790 class t_TAIL_12,
93791 class t_TAIL_13,
93792 class t_TAIL_14,
93793 class t_TAIL_15,
93794 class t_TAIL_16,
93795 class t_TAIL_17,
93796 class t_TAIL_18>
93797template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
93798inline
93799Variant_Base<t_HEAD, t_TAIL_01,
93800 t_TAIL_02,
93801 t_TAIL_03,
93802 t_TAIL_04,
93803 t_TAIL_05,
93804 t_TAIL_06,
93805 t_TAIL_07,
93806 t_TAIL_08,
93807 t_TAIL_09,
93808 t_TAIL_10,
93809 t_TAIL_11,
93810 t_TAIL_12,
93811 t_TAIL_13,
93812 t_TAIL_14,
93813 t_TAIL_15,
93814 t_TAIL_16,
93815 t_TAIL_17,
93816 t_TAIL_18,
93817 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
93818 bsl::allocator_arg_t,
93819 allocator_type allocator,
93821 const t_ARG_01& arg_01,
93822 const t_ARG_02& arg_02)
93823: AllocBase(allocator)
93824, d_type(t_INDEX)
93825{
93826 typedef typename bsl::remove_cv<
93828 Alt_Type;
93829
93830 BloombergLP::bslma::ConstructionUtil::construct(
93831 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93832 AllocBase::mechanism(),
93833 arg_01,
93834 arg_02);
93835}
93836#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
93837
93838
93839#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
93840template <class t_HEAD>
93841template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
93842inline
93843Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::Variant_Base(
93844 bsl::allocator_arg_t,
93845 allocator_type allocator,
93847 const t_ARG_01& arg_01,
93848 const t_ARG_02& arg_02,
93849 const t_ARG_03& arg_03)
93850: AllocBase(allocator)
93851, d_type(t_INDEX)
93852{
93853 typedef typename bsl::remove_cv<
93855 Alt_Type;
93856
93857 BloombergLP::bslma::ConstructionUtil::construct(
93858 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93859 AllocBase::mechanism(),
93860 arg_01,
93861 arg_02,
93862 arg_03);
93863}
93864#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
93865
93866#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
93867template <class t_HEAD, class t_TAIL_01>
93868template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
93869inline
93870Variant_Base<t_HEAD, t_TAIL_01,
93871 BSLS_COMPILERFEATURES_FILLT(17)>::Variant_Base(
93872 bsl::allocator_arg_t,
93873 allocator_type allocator,
93875 const t_ARG_01& arg_01,
93876 const t_ARG_02& arg_02,
93877 const t_ARG_03& arg_03)
93878: AllocBase(allocator)
93879, d_type(t_INDEX)
93880{
93881 typedef typename bsl::remove_cv<
93883 Alt_Type;
93884
93885 BloombergLP::bslma::ConstructionUtil::construct(
93886 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93887 AllocBase::mechanism(),
93888 arg_01,
93889 arg_02,
93890 arg_03);
93891}
93892#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
93893
93894#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
93895template <class t_HEAD, class t_TAIL_01,
93896 class t_TAIL_02>
93897template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
93898inline
93899Variant_Base<t_HEAD, t_TAIL_01,
93900 t_TAIL_02,
93901 BSLS_COMPILERFEATURES_FILLT(16)>::Variant_Base(
93902 bsl::allocator_arg_t,
93903 allocator_type allocator,
93905 const t_ARG_01& arg_01,
93906 const t_ARG_02& arg_02,
93907 const t_ARG_03& arg_03)
93908: AllocBase(allocator)
93909, d_type(t_INDEX)
93910{
93911 typedef typename bsl::remove_cv<
93913 Alt_Type;
93914
93915 BloombergLP::bslma::ConstructionUtil::construct(
93916 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93917 AllocBase::mechanism(),
93918 arg_01,
93919 arg_02,
93920 arg_03);
93921}
93922#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
93923
93924#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
93925template <class t_HEAD, class t_TAIL_01,
93926 class t_TAIL_02,
93927 class t_TAIL_03>
93928template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
93929inline
93930Variant_Base<t_HEAD, t_TAIL_01,
93931 t_TAIL_02,
93932 t_TAIL_03,
93933 BSLS_COMPILERFEATURES_FILLT(15)>::Variant_Base(
93934 bsl::allocator_arg_t,
93935 allocator_type allocator,
93937 const t_ARG_01& arg_01,
93938 const t_ARG_02& arg_02,
93939 const t_ARG_03& arg_03)
93940: AllocBase(allocator)
93941, d_type(t_INDEX)
93942{
93943 typedef typename bsl::remove_cv<
93945 Alt_Type;
93946
93947 BloombergLP::bslma::ConstructionUtil::construct(
93948 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93949 AllocBase::mechanism(),
93950 arg_01,
93951 arg_02,
93952 arg_03);
93953}
93954#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
93955
93956#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
93957template <class t_HEAD, class t_TAIL_01,
93958 class t_TAIL_02,
93959 class t_TAIL_03,
93960 class t_TAIL_04>
93961template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
93962inline
93963Variant_Base<t_HEAD, t_TAIL_01,
93964 t_TAIL_02,
93965 t_TAIL_03,
93966 t_TAIL_04,
93967 BSLS_COMPILERFEATURES_FILLT(14)>::Variant_Base(
93968 bsl::allocator_arg_t,
93969 allocator_type allocator,
93971 const t_ARG_01& arg_01,
93972 const t_ARG_02& arg_02,
93973 const t_ARG_03& arg_03)
93974: AllocBase(allocator)
93975, d_type(t_INDEX)
93976{
93977 typedef typename bsl::remove_cv<
93979 Alt_Type;
93980
93981 BloombergLP::bslma::ConstructionUtil::construct(
93982 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
93983 AllocBase::mechanism(),
93984 arg_01,
93985 arg_02,
93986 arg_03);
93987}
93988#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
93989
93990#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
93991template <class t_HEAD, class t_TAIL_01,
93992 class t_TAIL_02,
93993 class t_TAIL_03,
93994 class t_TAIL_04,
93995 class t_TAIL_05>
93996template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
93997inline
93998Variant_Base<t_HEAD, t_TAIL_01,
93999 t_TAIL_02,
94000 t_TAIL_03,
94001 t_TAIL_04,
94002 t_TAIL_05,
94003 BSLS_COMPILERFEATURES_FILLT(13)>::Variant_Base(
94004 bsl::allocator_arg_t,
94005 allocator_type allocator,
94007 const t_ARG_01& arg_01,
94008 const t_ARG_02& arg_02,
94009 const t_ARG_03& arg_03)
94010: AllocBase(allocator)
94011, d_type(t_INDEX)
94012{
94013 typedef typename bsl::remove_cv<
94015 Alt_Type;
94016
94017 BloombergLP::bslma::ConstructionUtil::construct(
94018 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94019 AllocBase::mechanism(),
94020 arg_01,
94021 arg_02,
94022 arg_03);
94023}
94024#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
94025
94026#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
94027template <class t_HEAD, class t_TAIL_01,
94028 class t_TAIL_02,
94029 class t_TAIL_03,
94030 class t_TAIL_04,
94031 class t_TAIL_05,
94032 class t_TAIL_06>
94033template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94034inline
94035Variant_Base<t_HEAD, t_TAIL_01,
94036 t_TAIL_02,
94037 t_TAIL_03,
94038 t_TAIL_04,
94039 t_TAIL_05,
94040 t_TAIL_06,
94041 BSLS_COMPILERFEATURES_FILLT(12)>::Variant_Base(
94042 bsl::allocator_arg_t,
94043 allocator_type allocator,
94045 const t_ARG_01& arg_01,
94046 const t_ARG_02& arg_02,
94047 const t_ARG_03& arg_03)
94048: AllocBase(allocator)
94049, d_type(t_INDEX)
94050{
94051 typedef typename bsl::remove_cv<
94053 Alt_Type;
94054
94055 BloombergLP::bslma::ConstructionUtil::construct(
94056 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94057 AllocBase::mechanism(),
94058 arg_01,
94059 arg_02,
94060 arg_03);
94061}
94062#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
94063
94064#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
94065template <class t_HEAD, class t_TAIL_01,
94066 class t_TAIL_02,
94067 class t_TAIL_03,
94068 class t_TAIL_04,
94069 class t_TAIL_05,
94070 class t_TAIL_06,
94071 class t_TAIL_07>
94072template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94073inline
94074Variant_Base<t_HEAD, t_TAIL_01,
94075 t_TAIL_02,
94076 t_TAIL_03,
94077 t_TAIL_04,
94078 t_TAIL_05,
94079 t_TAIL_06,
94080 t_TAIL_07,
94081 BSLS_COMPILERFEATURES_FILLT(11)>::Variant_Base(
94082 bsl::allocator_arg_t,
94083 allocator_type allocator,
94085 const t_ARG_01& arg_01,
94086 const t_ARG_02& arg_02,
94087 const t_ARG_03& arg_03)
94088: AllocBase(allocator)
94089, d_type(t_INDEX)
94090{
94091 typedef typename bsl::remove_cv<
94093 Alt_Type;
94094
94095 BloombergLP::bslma::ConstructionUtil::construct(
94096 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94097 AllocBase::mechanism(),
94098 arg_01,
94099 arg_02,
94100 arg_03);
94101}
94102#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
94103
94104#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
94105template <class t_HEAD, class t_TAIL_01,
94106 class t_TAIL_02,
94107 class t_TAIL_03,
94108 class t_TAIL_04,
94109 class t_TAIL_05,
94110 class t_TAIL_06,
94111 class t_TAIL_07,
94112 class t_TAIL_08>
94113template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94114inline
94115Variant_Base<t_HEAD, t_TAIL_01,
94116 t_TAIL_02,
94117 t_TAIL_03,
94118 t_TAIL_04,
94119 t_TAIL_05,
94120 t_TAIL_06,
94121 t_TAIL_07,
94122 t_TAIL_08,
94123 BSLS_COMPILERFEATURES_FILLT(10)>::Variant_Base(
94124 bsl::allocator_arg_t,
94125 allocator_type allocator,
94127 const t_ARG_01& arg_01,
94128 const t_ARG_02& arg_02,
94129 const t_ARG_03& arg_03)
94130: AllocBase(allocator)
94131, d_type(t_INDEX)
94132{
94133 typedef typename bsl::remove_cv<
94135 Alt_Type;
94136
94137 BloombergLP::bslma::ConstructionUtil::construct(
94138 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94139 AllocBase::mechanism(),
94140 arg_01,
94141 arg_02,
94142 arg_03);
94143}
94144#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
94145
94146#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
94147template <class t_HEAD, class t_TAIL_01,
94148 class t_TAIL_02,
94149 class t_TAIL_03,
94150 class t_TAIL_04,
94151 class t_TAIL_05,
94152 class t_TAIL_06,
94153 class t_TAIL_07,
94154 class t_TAIL_08,
94155 class t_TAIL_09>
94156template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94157inline
94158Variant_Base<t_HEAD, t_TAIL_01,
94159 t_TAIL_02,
94160 t_TAIL_03,
94161 t_TAIL_04,
94162 t_TAIL_05,
94163 t_TAIL_06,
94164 t_TAIL_07,
94165 t_TAIL_08,
94166 t_TAIL_09,
94167 BSLS_COMPILERFEATURES_FILLT( 9)>::Variant_Base(
94168 bsl::allocator_arg_t,
94169 allocator_type allocator,
94171 const t_ARG_01& arg_01,
94172 const t_ARG_02& arg_02,
94173 const t_ARG_03& arg_03)
94174: AllocBase(allocator)
94175, d_type(t_INDEX)
94176{
94177 typedef typename bsl::remove_cv<
94179 Alt_Type;
94180
94181 BloombergLP::bslma::ConstructionUtil::construct(
94182 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94183 AllocBase::mechanism(),
94184 arg_01,
94185 arg_02,
94186 arg_03);
94187}
94188#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
94189
94190#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
94191template <class t_HEAD, class t_TAIL_01,
94192 class t_TAIL_02,
94193 class t_TAIL_03,
94194 class t_TAIL_04,
94195 class t_TAIL_05,
94196 class t_TAIL_06,
94197 class t_TAIL_07,
94198 class t_TAIL_08,
94199 class t_TAIL_09,
94200 class t_TAIL_10>
94201template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94202inline
94203Variant_Base<t_HEAD, t_TAIL_01,
94204 t_TAIL_02,
94205 t_TAIL_03,
94206 t_TAIL_04,
94207 t_TAIL_05,
94208 t_TAIL_06,
94209 t_TAIL_07,
94210 t_TAIL_08,
94211 t_TAIL_09,
94212 t_TAIL_10,
94213 BSLS_COMPILERFEATURES_FILLT( 8)>::Variant_Base(
94214 bsl::allocator_arg_t,
94215 allocator_type allocator,
94217 const t_ARG_01& arg_01,
94218 const t_ARG_02& arg_02,
94219 const t_ARG_03& arg_03)
94220: AllocBase(allocator)
94221, d_type(t_INDEX)
94222{
94223 typedef typename bsl::remove_cv<
94225 Alt_Type;
94226
94227 BloombergLP::bslma::ConstructionUtil::construct(
94228 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94229 AllocBase::mechanism(),
94230 arg_01,
94231 arg_02,
94232 arg_03);
94233}
94234#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
94235
94236#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
94237template <class t_HEAD, class t_TAIL_01,
94238 class t_TAIL_02,
94239 class t_TAIL_03,
94240 class t_TAIL_04,
94241 class t_TAIL_05,
94242 class t_TAIL_06,
94243 class t_TAIL_07,
94244 class t_TAIL_08,
94245 class t_TAIL_09,
94246 class t_TAIL_10,
94247 class t_TAIL_11>
94248template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94249inline
94250Variant_Base<t_HEAD, t_TAIL_01,
94251 t_TAIL_02,
94252 t_TAIL_03,
94253 t_TAIL_04,
94254 t_TAIL_05,
94255 t_TAIL_06,
94256 t_TAIL_07,
94257 t_TAIL_08,
94258 t_TAIL_09,
94259 t_TAIL_10,
94260 t_TAIL_11,
94261 BSLS_COMPILERFEATURES_FILLT( 7)>::Variant_Base(
94262 bsl::allocator_arg_t,
94263 allocator_type allocator,
94265 const t_ARG_01& arg_01,
94266 const t_ARG_02& arg_02,
94267 const t_ARG_03& arg_03)
94268: AllocBase(allocator)
94269, d_type(t_INDEX)
94270{
94271 typedef typename bsl::remove_cv<
94273 Alt_Type;
94274
94275 BloombergLP::bslma::ConstructionUtil::construct(
94276 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94277 AllocBase::mechanism(),
94278 arg_01,
94279 arg_02,
94280 arg_03);
94281}
94282#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
94283
94284#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
94285template <class t_HEAD, class t_TAIL_01,
94286 class t_TAIL_02,
94287 class t_TAIL_03,
94288 class t_TAIL_04,
94289 class t_TAIL_05,
94290 class t_TAIL_06,
94291 class t_TAIL_07,
94292 class t_TAIL_08,
94293 class t_TAIL_09,
94294 class t_TAIL_10,
94295 class t_TAIL_11,
94296 class t_TAIL_12>
94297template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94298inline
94299Variant_Base<t_HEAD, t_TAIL_01,
94300 t_TAIL_02,
94301 t_TAIL_03,
94302 t_TAIL_04,
94303 t_TAIL_05,
94304 t_TAIL_06,
94305 t_TAIL_07,
94306 t_TAIL_08,
94307 t_TAIL_09,
94308 t_TAIL_10,
94309 t_TAIL_11,
94310 t_TAIL_12,
94311 BSLS_COMPILERFEATURES_FILLT( 6)>::Variant_Base(
94312 bsl::allocator_arg_t,
94313 allocator_type allocator,
94315 const t_ARG_01& arg_01,
94316 const t_ARG_02& arg_02,
94317 const t_ARG_03& arg_03)
94318: AllocBase(allocator)
94319, d_type(t_INDEX)
94320{
94321 typedef typename bsl::remove_cv<
94323 Alt_Type;
94324
94325 BloombergLP::bslma::ConstructionUtil::construct(
94326 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94327 AllocBase::mechanism(),
94328 arg_01,
94329 arg_02,
94330 arg_03);
94331}
94332#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
94333
94334#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
94335template <class t_HEAD, class t_TAIL_01,
94336 class t_TAIL_02,
94337 class t_TAIL_03,
94338 class t_TAIL_04,
94339 class t_TAIL_05,
94340 class t_TAIL_06,
94341 class t_TAIL_07,
94342 class t_TAIL_08,
94343 class t_TAIL_09,
94344 class t_TAIL_10,
94345 class t_TAIL_11,
94346 class t_TAIL_12,
94347 class t_TAIL_13>
94348template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94349inline
94350Variant_Base<t_HEAD, t_TAIL_01,
94351 t_TAIL_02,
94352 t_TAIL_03,
94353 t_TAIL_04,
94354 t_TAIL_05,
94355 t_TAIL_06,
94356 t_TAIL_07,
94357 t_TAIL_08,
94358 t_TAIL_09,
94359 t_TAIL_10,
94360 t_TAIL_11,
94361 t_TAIL_12,
94362 t_TAIL_13,
94363 BSLS_COMPILERFEATURES_FILLT( 5)>::Variant_Base(
94364 bsl::allocator_arg_t,
94365 allocator_type allocator,
94367 const t_ARG_01& arg_01,
94368 const t_ARG_02& arg_02,
94369 const t_ARG_03& arg_03)
94370: AllocBase(allocator)
94371, d_type(t_INDEX)
94372{
94373 typedef typename bsl::remove_cv<
94375 Alt_Type;
94376
94377 BloombergLP::bslma::ConstructionUtil::construct(
94378 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94379 AllocBase::mechanism(),
94380 arg_01,
94381 arg_02,
94382 arg_03);
94383}
94384#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
94385
94386#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
94387template <class t_HEAD, class t_TAIL_01,
94388 class t_TAIL_02,
94389 class t_TAIL_03,
94390 class t_TAIL_04,
94391 class t_TAIL_05,
94392 class t_TAIL_06,
94393 class t_TAIL_07,
94394 class t_TAIL_08,
94395 class t_TAIL_09,
94396 class t_TAIL_10,
94397 class t_TAIL_11,
94398 class t_TAIL_12,
94399 class t_TAIL_13,
94400 class t_TAIL_14>
94401template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94402inline
94403Variant_Base<t_HEAD, t_TAIL_01,
94404 t_TAIL_02,
94405 t_TAIL_03,
94406 t_TAIL_04,
94407 t_TAIL_05,
94408 t_TAIL_06,
94409 t_TAIL_07,
94410 t_TAIL_08,
94411 t_TAIL_09,
94412 t_TAIL_10,
94413 t_TAIL_11,
94414 t_TAIL_12,
94415 t_TAIL_13,
94416 t_TAIL_14,
94417 BSLS_COMPILERFEATURES_FILLT( 4)>::Variant_Base(
94418 bsl::allocator_arg_t,
94419 allocator_type allocator,
94421 const t_ARG_01& arg_01,
94422 const t_ARG_02& arg_02,
94423 const t_ARG_03& arg_03)
94424: AllocBase(allocator)
94425, d_type(t_INDEX)
94426{
94427 typedef typename bsl::remove_cv<
94429 Alt_Type;
94430
94431 BloombergLP::bslma::ConstructionUtil::construct(
94432 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94433 AllocBase::mechanism(),
94434 arg_01,
94435 arg_02,
94436 arg_03);
94437}
94438#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
94439
94440#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
94441template <class t_HEAD, class t_TAIL_01,
94442 class t_TAIL_02,
94443 class t_TAIL_03,
94444 class t_TAIL_04,
94445 class t_TAIL_05,
94446 class t_TAIL_06,
94447 class t_TAIL_07,
94448 class t_TAIL_08,
94449 class t_TAIL_09,
94450 class t_TAIL_10,
94451 class t_TAIL_11,
94452 class t_TAIL_12,
94453 class t_TAIL_13,
94454 class t_TAIL_14,
94455 class t_TAIL_15>
94456template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94457inline
94458Variant_Base<t_HEAD, t_TAIL_01,
94459 t_TAIL_02,
94460 t_TAIL_03,
94461 t_TAIL_04,
94462 t_TAIL_05,
94463 t_TAIL_06,
94464 t_TAIL_07,
94465 t_TAIL_08,
94466 t_TAIL_09,
94467 t_TAIL_10,
94468 t_TAIL_11,
94469 t_TAIL_12,
94470 t_TAIL_13,
94471 t_TAIL_14,
94472 t_TAIL_15,
94473 BSLS_COMPILERFEATURES_FILLT( 3)>::Variant_Base(
94474 bsl::allocator_arg_t,
94475 allocator_type allocator,
94477 const t_ARG_01& arg_01,
94478 const t_ARG_02& arg_02,
94479 const t_ARG_03& arg_03)
94480: AllocBase(allocator)
94481, d_type(t_INDEX)
94482{
94483 typedef typename bsl::remove_cv<
94485 Alt_Type;
94486
94487 BloombergLP::bslma::ConstructionUtil::construct(
94488 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94489 AllocBase::mechanism(),
94490 arg_01,
94491 arg_02,
94492 arg_03);
94493}
94494#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
94495
94496#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
94497template <class t_HEAD, class t_TAIL_01,
94498 class t_TAIL_02,
94499 class t_TAIL_03,
94500 class t_TAIL_04,
94501 class t_TAIL_05,
94502 class t_TAIL_06,
94503 class t_TAIL_07,
94504 class t_TAIL_08,
94505 class t_TAIL_09,
94506 class t_TAIL_10,
94507 class t_TAIL_11,
94508 class t_TAIL_12,
94509 class t_TAIL_13,
94510 class t_TAIL_14,
94511 class t_TAIL_15,
94512 class t_TAIL_16>
94513template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94514inline
94515Variant_Base<t_HEAD, t_TAIL_01,
94516 t_TAIL_02,
94517 t_TAIL_03,
94518 t_TAIL_04,
94519 t_TAIL_05,
94520 t_TAIL_06,
94521 t_TAIL_07,
94522 t_TAIL_08,
94523 t_TAIL_09,
94524 t_TAIL_10,
94525 t_TAIL_11,
94526 t_TAIL_12,
94527 t_TAIL_13,
94528 t_TAIL_14,
94529 t_TAIL_15,
94530 t_TAIL_16,
94531 BSLS_COMPILERFEATURES_FILLT( 2)>::Variant_Base(
94532 bsl::allocator_arg_t,
94533 allocator_type allocator,
94535 const t_ARG_01& arg_01,
94536 const t_ARG_02& arg_02,
94537 const t_ARG_03& arg_03)
94538: AllocBase(allocator)
94539, d_type(t_INDEX)
94540{
94541 typedef typename bsl::remove_cv<
94543 Alt_Type;
94544
94545 BloombergLP::bslma::ConstructionUtil::construct(
94546 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94547 AllocBase::mechanism(),
94548 arg_01,
94549 arg_02,
94550 arg_03);
94551}
94552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
94553
94554#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
94555template <class t_HEAD, class t_TAIL_01,
94556 class t_TAIL_02,
94557 class t_TAIL_03,
94558 class t_TAIL_04,
94559 class t_TAIL_05,
94560 class t_TAIL_06,
94561 class t_TAIL_07,
94562 class t_TAIL_08,
94563 class t_TAIL_09,
94564 class t_TAIL_10,
94565 class t_TAIL_11,
94566 class t_TAIL_12,
94567 class t_TAIL_13,
94568 class t_TAIL_14,
94569 class t_TAIL_15,
94570 class t_TAIL_16,
94571 class t_TAIL_17>
94572template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94573inline
94574Variant_Base<t_HEAD, t_TAIL_01,
94575 t_TAIL_02,
94576 t_TAIL_03,
94577 t_TAIL_04,
94578 t_TAIL_05,
94579 t_TAIL_06,
94580 t_TAIL_07,
94581 t_TAIL_08,
94582 t_TAIL_09,
94583 t_TAIL_10,
94584 t_TAIL_11,
94585 t_TAIL_12,
94586 t_TAIL_13,
94587 t_TAIL_14,
94588 t_TAIL_15,
94589 t_TAIL_16,
94590 t_TAIL_17,
94591 BSLS_COMPILERFEATURES_FILLT( 1)>::Variant_Base(
94592 bsl::allocator_arg_t,
94593 allocator_type allocator,
94595 const t_ARG_01& arg_01,
94596 const t_ARG_02& arg_02,
94597 const t_ARG_03& arg_03)
94598: AllocBase(allocator)
94599, d_type(t_INDEX)
94600{
94601 typedef typename bsl::remove_cv<
94603 Alt_Type;
94604
94605 BloombergLP::bslma::ConstructionUtil::construct(
94606 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94607 AllocBase::mechanism(),
94608 arg_01,
94609 arg_02,
94610 arg_03);
94611}
94612#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
94613
94614#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
94615template <class t_HEAD, class t_TAIL_01,
94616 class t_TAIL_02,
94617 class t_TAIL_03,
94618 class t_TAIL_04,
94619 class t_TAIL_05,
94620 class t_TAIL_06,
94621 class t_TAIL_07,
94622 class t_TAIL_08,
94623 class t_TAIL_09,
94624 class t_TAIL_10,
94625 class t_TAIL_11,
94626 class t_TAIL_12,
94627 class t_TAIL_13,
94628 class t_TAIL_14,
94629 class t_TAIL_15,
94630 class t_TAIL_16,
94631 class t_TAIL_17,
94632 class t_TAIL_18>
94633template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
94634inline
94635Variant_Base<t_HEAD, t_TAIL_01,
94636 t_TAIL_02,
94637 t_TAIL_03,
94638 t_TAIL_04,
94639 t_TAIL_05,
94640 t_TAIL_06,
94641 t_TAIL_07,
94642 t_TAIL_08,
94643 t_TAIL_09,
94644 t_TAIL_10,
94645 t_TAIL_11,
94646 t_TAIL_12,
94647 t_TAIL_13,
94648 t_TAIL_14,
94649 t_TAIL_15,
94650 t_TAIL_16,
94651 t_TAIL_17,
94652 t_TAIL_18,
94653 BSLS_COMPILERFEATURES_FILLT( 0)>::Variant_Base(
94654 bsl::allocator_arg_t,
94655 allocator_type allocator,
94657 const t_ARG_01& arg_01,
94658 const t_ARG_02& arg_02,
94659 const t_ARG_03& arg_03)
94660: AllocBase(allocator)
94661, d_type(t_INDEX)
94662{
94663 typedef typename bsl::remove_cv<
94665 Alt_Type;
94666
94667 BloombergLP::bslma::ConstructionUtil::construct(
94668 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94669 AllocBase::mechanism(),
94670 arg_01,
94671 arg_02,
94672 arg_03);
94673}
94674#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
94675
94676
94677#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
94678template <class t_HEAD>
94679template <size_t t_INDEX,
94680 class t_ARG_01,
94681 class t_ARG_02,
94682 class t_ARG_03,
94683 class t_ARG_04>
94684inline
94685Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
94686 >::Variant_Base(bsl::allocator_arg_t,
94687 allocator_type allocator,
94689 const t_ARG_01& arg_01,
94690 const t_ARG_02& arg_02,
94691 const t_ARG_03& arg_03,
94692 const t_ARG_04& arg_04)
94693: AllocBase(allocator)
94694, d_type(t_INDEX)
94695{
94696 typedef typename bsl::remove_cv<
94698 Alt_Type;
94699
94700 BloombergLP::bslma::ConstructionUtil::construct(
94701 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94702 AllocBase::mechanism(),
94703 arg_01,
94704 arg_02,
94705 arg_03,
94706 arg_04);
94707}
94708#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
94709
94710#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
94711template <class t_HEAD, class t_TAIL_01>
94712template <size_t t_INDEX,
94713 class t_ARG_01,
94714 class t_ARG_02,
94715 class t_ARG_03,
94716 class t_ARG_04>
94717inline
94718Variant_Base<t_HEAD, t_TAIL_01,
94719 BSLS_COMPILERFEATURES_FILLT(17)
94720 >::Variant_Base(bsl::allocator_arg_t,
94721 allocator_type allocator,
94723 const t_ARG_01& arg_01,
94724 const t_ARG_02& arg_02,
94725 const t_ARG_03& arg_03,
94726 const t_ARG_04& arg_04)
94727: AllocBase(allocator)
94728, d_type(t_INDEX)
94729{
94730 typedef typename bsl::remove_cv<
94732 Alt_Type;
94733
94734 BloombergLP::bslma::ConstructionUtil::construct(
94735 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94736 AllocBase::mechanism(),
94737 arg_01,
94738 arg_02,
94739 arg_03,
94740 arg_04);
94741}
94742#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
94743
94744#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
94745template <class t_HEAD, class t_TAIL_01,
94746 class t_TAIL_02>
94747template <size_t t_INDEX,
94748 class t_ARG_01,
94749 class t_ARG_02,
94750 class t_ARG_03,
94751 class t_ARG_04>
94752inline
94753Variant_Base<t_HEAD, t_TAIL_01,
94754 t_TAIL_02,
94755 BSLS_COMPILERFEATURES_FILLT(16)
94756 >::Variant_Base(bsl::allocator_arg_t,
94757 allocator_type allocator,
94759 const t_ARG_01& arg_01,
94760 const t_ARG_02& arg_02,
94761 const t_ARG_03& arg_03,
94762 const t_ARG_04& arg_04)
94763: AllocBase(allocator)
94764, d_type(t_INDEX)
94765{
94766 typedef typename bsl::remove_cv<
94768 Alt_Type;
94769
94770 BloombergLP::bslma::ConstructionUtil::construct(
94771 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94772 AllocBase::mechanism(),
94773 arg_01,
94774 arg_02,
94775 arg_03,
94776 arg_04);
94777}
94778#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
94779
94780#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
94781template <class t_HEAD, class t_TAIL_01,
94782 class t_TAIL_02,
94783 class t_TAIL_03>
94784template <size_t t_INDEX,
94785 class t_ARG_01,
94786 class t_ARG_02,
94787 class t_ARG_03,
94788 class t_ARG_04>
94789inline
94790Variant_Base<t_HEAD, t_TAIL_01,
94791 t_TAIL_02,
94792 t_TAIL_03,
94793 BSLS_COMPILERFEATURES_FILLT(15)
94794 >::Variant_Base(bsl::allocator_arg_t,
94795 allocator_type allocator,
94797 const t_ARG_01& arg_01,
94798 const t_ARG_02& arg_02,
94799 const t_ARG_03& arg_03,
94800 const t_ARG_04& arg_04)
94801: AllocBase(allocator)
94802, d_type(t_INDEX)
94803{
94804 typedef typename bsl::remove_cv<
94806 Alt_Type;
94807
94808 BloombergLP::bslma::ConstructionUtil::construct(
94809 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94810 AllocBase::mechanism(),
94811 arg_01,
94812 arg_02,
94813 arg_03,
94814 arg_04);
94815}
94816#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
94817
94818#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
94819template <class t_HEAD, class t_TAIL_01,
94820 class t_TAIL_02,
94821 class t_TAIL_03,
94822 class t_TAIL_04>
94823template <size_t t_INDEX,
94824 class t_ARG_01,
94825 class t_ARG_02,
94826 class t_ARG_03,
94827 class t_ARG_04>
94828inline
94829Variant_Base<t_HEAD, t_TAIL_01,
94830 t_TAIL_02,
94831 t_TAIL_03,
94832 t_TAIL_04,
94833 BSLS_COMPILERFEATURES_FILLT(14)
94834 >::Variant_Base(bsl::allocator_arg_t,
94835 allocator_type allocator,
94837 const t_ARG_01& arg_01,
94838 const t_ARG_02& arg_02,
94839 const t_ARG_03& arg_03,
94840 const t_ARG_04& arg_04)
94841: AllocBase(allocator)
94842, d_type(t_INDEX)
94843{
94844 typedef typename bsl::remove_cv<
94846 Alt_Type;
94847
94848 BloombergLP::bslma::ConstructionUtil::construct(
94849 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94850 AllocBase::mechanism(),
94851 arg_01,
94852 arg_02,
94853 arg_03,
94854 arg_04);
94855}
94856#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
94857
94858#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
94859template <class t_HEAD, class t_TAIL_01,
94860 class t_TAIL_02,
94861 class t_TAIL_03,
94862 class t_TAIL_04,
94863 class t_TAIL_05>
94864template <size_t t_INDEX,
94865 class t_ARG_01,
94866 class t_ARG_02,
94867 class t_ARG_03,
94868 class t_ARG_04>
94869inline
94870Variant_Base<t_HEAD, t_TAIL_01,
94871 t_TAIL_02,
94872 t_TAIL_03,
94873 t_TAIL_04,
94874 t_TAIL_05,
94875 BSLS_COMPILERFEATURES_FILLT(13)
94876 >::Variant_Base(bsl::allocator_arg_t,
94877 allocator_type allocator,
94879 const t_ARG_01& arg_01,
94880 const t_ARG_02& arg_02,
94881 const t_ARG_03& arg_03,
94882 const t_ARG_04& arg_04)
94883: AllocBase(allocator)
94884, d_type(t_INDEX)
94885{
94886 typedef typename bsl::remove_cv<
94888 Alt_Type;
94889
94890 BloombergLP::bslma::ConstructionUtil::construct(
94891 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94892 AllocBase::mechanism(),
94893 arg_01,
94894 arg_02,
94895 arg_03,
94896 arg_04);
94897}
94898#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
94899
94900#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
94901template <class t_HEAD, class t_TAIL_01,
94902 class t_TAIL_02,
94903 class t_TAIL_03,
94904 class t_TAIL_04,
94905 class t_TAIL_05,
94906 class t_TAIL_06>
94907template <size_t t_INDEX,
94908 class t_ARG_01,
94909 class t_ARG_02,
94910 class t_ARG_03,
94911 class t_ARG_04>
94912inline
94913Variant_Base<t_HEAD, t_TAIL_01,
94914 t_TAIL_02,
94915 t_TAIL_03,
94916 t_TAIL_04,
94917 t_TAIL_05,
94918 t_TAIL_06,
94919 BSLS_COMPILERFEATURES_FILLT(12)
94920 >::Variant_Base(bsl::allocator_arg_t,
94921 allocator_type allocator,
94923 const t_ARG_01& arg_01,
94924 const t_ARG_02& arg_02,
94925 const t_ARG_03& arg_03,
94926 const t_ARG_04& arg_04)
94927: AllocBase(allocator)
94928, d_type(t_INDEX)
94929{
94930 typedef typename bsl::remove_cv<
94932 Alt_Type;
94933
94934 BloombergLP::bslma::ConstructionUtil::construct(
94935 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94936 AllocBase::mechanism(),
94937 arg_01,
94938 arg_02,
94939 arg_03,
94940 arg_04);
94941}
94942#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
94943
94944#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
94945template <class t_HEAD, class t_TAIL_01,
94946 class t_TAIL_02,
94947 class t_TAIL_03,
94948 class t_TAIL_04,
94949 class t_TAIL_05,
94950 class t_TAIL_06,
94951 class t_TAIL_07>
94952template <size_t t_INDEX,
94953 class t_ARG_01,
94954 class t_ARG_02,
94955 class t_ARG_03,
94956 class t_ARG_04>
94957inline
94958Variant_Base<t_HEAD, t_TAIL_01,
94959 t_TAIL_02,
94960 t_TAIL_03,
94961 t_TAIL_04,
94962 t_TAIL_05,
94963 t_TAIL_06,
94964 t_TAIL_07,
94965 BSLS_COMPILERFEATURES_FILLT(11)
94966 >::Variant_Base(bsl::allocator_arg_t,
94967 allocator_type allocator,
94969 const t_ARG_01& arg_01,
94970 const t_ARG_02& arg_02,
94971 const t_ARG_03& arg_03,
94972 const t_ARG_04& arg_04)
94973: AllocBase(allocator)
94974, d_type(t_INDEX)
94975{
94976 typedef typename bsl::remove_cv<
94978 Alt_Type;
94979
94980 BloombergLP::bslma::ConstructionUtil::construct(
94981 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
94982 AllocBase::mechanism(),
94983 arg_01,
94984 arg_02,
94985 arg_03,
94986 arg_04);
94987}
94988#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
94989
94990#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
94991template <class t_HEAD, class t_TAIL_01,
94992 class t_TAIL_02,
94993 class t_TAIL_03,
94994 class t_TAIL_04,
94995 class t_TAIL_05,
94996 class t_TAIL_06,
94997 class t_TAIL_07,
94998 class t_TAIL_08>
94999template <size_t t_INDEX,
95000 class t_ARG_01,
95001 class t_ARG_02,
95002 class t_ARG_03,
95003 class t_ARG_04>
95004inline
95005Variant_Base<t_HEAD, t_TAIL_01,
95006 t_TAIL_02,
95007 t_TAIL_03,
95008 t_TAIL_04,
95009 t_TAIL_05,
95010 t_TAIL_06,
95011 t_TAIL_07,
95012 t_TAIL_08,
95013 BSLS_COMPILERFEATURES_FILLT(10)
95014 >::Variant_Base(bsl::allocator_arg_t,
95015 allocator_type allocator,
95017 const t_ARG_01& arg_01,
95018 const t_ARG_02& arg_02,
95019 const t_ARG_03& arg_03,
95020 const t_ARG_04& arg_04)
95021: AllocBase(allocator)
95022, d_type(t_INDEX)
95023{
95024 typedef typename bsl::remove_cv<
95026 Alt_Type;
95027
95028 BloombergLP::bslma::ConstructionUtil::construct(
95029 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95030 AllocBase::mechanism(),
95031 arg_01,
95032 arg_02,
95033 arg_03,
95034 arg_04);
95035}
95036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
95037
95038#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
95039template <class t_HEAD, class t_TAIL_01,
95040 class t_TAIL_02,
95041 class t_TAIL_03,
95042 class t_TAIL_04,
95043 class t_TAIL_05,
95044 class t_TAIL_06,
95045 class t_TAIL_07,
95046 class t_TAIL_08,
95047 class t_TAIL_09>
95048template <size_t t_INDEX,
95049 class t_ARG_01,
95050 class t_ARG_02,
95051 class t_ARG_03,
95052 class t_ARG_04>
95053inline
95054Variant_Base<t_HEAD, t_TAIL_01,
95055 t_TAIL_02,
95056 t_TAIL_03,
95057 t_TAIL_04,
95058 t_TAIL_05,
95059 t_TAIL_06,
95060 t_TAIL_07,
95061 t_TAIL_08,
95062 t_TAIL_09,
95063 BSLS_COMPILERFEATURES_FILLT( 9)
95064 >::Variant_Base(bsl::allocator_arg_t,
95065 allocator_type allocator,
95067 const t_ARG_01& arg_01,
95068 const t_ARG_02& arg_02,
95069 const t_ARG_03& arg_03,
95070 const t_ARG_04& arg_04)
95071: AllocBase(allocator)
95072, d_type(t_INDEX)
95073{
95074 typedef typename bsl::remove_cv<
95076 Alt_Type;
95077
95078 BloombergLP::bslma::ConstructionUtil::construct(
95079 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95080 AllocBase::mechanism(),
95081 arg_01,
95082 arg_02,
95083 arg_03,
95084 arg_04);
95085}
95086#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
95087
95088#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
95089template <class t_HEAD, class t_TAIL_01,
95090 class t_TAIL_02,
95091 class t_TAIL_03,
95092 class t_TAIL_04,
95093 class t_TAIL_05,
95094 class t_TAIL_06,
95095 class t_TAIL_07,
95096 class t_TAIL_08,
95097 class t_TAIL_09,
95098 class t_TAIL_10>
95099template <size_t t_INDEX,
95100 class t_ARG_01,
95101 class t_ARG_02,
95102 class t_ARG_03,
95103 class t_ARG_04>
95104inline
95105Variant_Base<t_HEAD, t_TAIL_01,
95106 t_TAIL_02,
95107 t_TAIL_03,
95108 t_TAIL_04,
95109 t_TAIL_05,
95110 t_TAIL_06,
95111 t_TAIL_07,
95112 t_TAIL_08,
95113 t_TAIL_09,
95114 t_TAIL_10,
95115 BSLS_COMPILERFEATURES_FILLT( 8)
95116 >::Variant_Base(bsl::allocator_arg_t,
95117 allocator_type allocator,
95119 const t_ARG_01& arg_01,
95120 const t_ARG_02& arg_02,
95121 const t_ARG_03& arg_03,
95122 const t_ARG_04& arg_04)
95123: AllocBase(allocator)
95124, d_type(t_INDEX)
95125{
95126 typedef typename bsl::remove_cv<
95128 Alt_Type;
95129
95130 BloombergLP::bslma::ConstructionUtil::construct(
95131 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95132 AllocBase::mechanism(),
95133 arg_01,
95134 arg_02,
95135 arg_03,
95136 arg_04);
95137}
95138#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
95139
95140#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
95141template <class t_HEAD, class t_TAIL_01,
95142 class t_TAIL_02,
95143 class t_TAIL_03,
95144 class t_TAIL_04,
95145 class t_TAIL_05,
95146 class t_TAIL_06,
95147 class t_TAIL_07,
95148 class t_TAIL_08,
95149 class t_TAIL_09,
95150 class t_TAIL_10,
95151 class t_TAIL_11>
95152template <size_t t_INDEX,
95153 class t_ARG_01,
95154 class t_ARG_02,
95155 class t_ARG_03,
95156 class t_ARG_04>
95157inline
95158Variant_Base<t_HEAD, t_TAIL_01,
95159 t_TAIL_02,
95160 t_TAIL_03,
95161 t_TAIL_04,
95162 t_TAIL_05,
95163 t_TAIL_06,
95164 t_TAIL_07,
95165 t_TAIL_08,
95166 t_TAIL_09,
95167 t_TAIL_10,
95168 t_TAIL_11,
95169 BSLS_COMPILERFEATURES_FILLT( 7)
95170 >::Variant_Base(bsl::allocator_arg_t,
95171 allocator_type allocator,
95173 const t_ARG_01& arg_01,
95174 const t_ARG_02& arg_02,
95175 const t_ARG_03& arg_03,
95176 const t_ARG_04& arg_04)
95177: AllocBase(allocator)
95178, d_type(t_INDEX)
95179{
95180 typedef typename bsl::remove_cv<
95182 Alt_Type;
95183
95184 BloombergLP::bslma::ConstructionUtil::construct(
95185 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95186 AllocBase::mechanism(),
95187 arg_01,
95188 arg_02,
95189 arg_03,
95190 arg_04);
95191}
95192#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
95193
95194#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
95195template <class t_HEAD, class t_TAIL_01,
95196 class t_TAIL_02,
95197 class t_TAIL_03,
95198 class t_TAIL_04,
95199 class t_TAIL_05,
95200 class t_TAIL_06,
95201 class t_TAIL_07,
95202 class t_TAIL_08,
95203 class t_TAIL_09,
95204 class t_TAIL_10,
95205 class t_TAIL_11,
95206 class t_TAIL_12>
95207template <size_t t_INDEX,
95208 class t_ARG_01,
95209 class t_ARG_02,
95210 class t_ARG_03,
95211 class t_ARG_04>
95212inline
95213Variant_Base<t_HEAD, t_TAIL_01,
95214 t_TAIL_02,
95215 t_TAIL_03,
95216 t_TAIL_04,
95217 t_TAIL_05,
95218 t_TAIL_06,
95219 t_TAIL_07,
95220 t_TAIL_08,
95221 t_TAIL_09,
95222 t_TAIL_10,
95223 t_TAIL_11,
95224 t_TAIL_12,
95225 BSLS_COMPILERFEATURES_FILLT( 6)
95226 >::Variant_Base(bsl::allocator_arg_t,
95227 allocator_type allocator,
95229 const t_ARG_01& arg_01,
95230 const t_ARG_02& arg_02,
95231 const t_ARG_03& arg_03,
95232 const t_ARG_04& arg_04)
95233: AllocBase(allocator)
95234, d_type(t_INDEX)
95235{
95236 typedef typename bsl::remove_cv<
95238 Alt_Type;
95239
95240 BloombergLP::bslma::ConstructionUtil::construct(
95241 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95242 AllocBase::mechanism(),
95243 arg_01,
95244 arg_02,
95245 arg_03,
95246 arg_04);
95247}
95248#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
95249
95250#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
95251template <class t_HEAD, class t_TAIL_01,
95252 class t_TAIL_02,
95253 class t_TAIL_03,
95254 class t_TAIL_04,
95255 class t_TAIL_05,
95256 class t_TAIL_06,
95257 class t_TAIL_07,
95258 class t_TAIL_08,
95259 class t_TAIL_09,
95260 class t_TAIL_10,
95261 class t_TAIL_11,
95262 class t_TAIL_12,
95263 class t_TAIL_13>
95264template <size_t t_INDEX,
95265 class t_ARG_01,
95266 class t_ARG_02,
95267 class t_ARG_03,
95268 class t_ARG_04>
95269inline
95270Variant_Base<t_HEAD, t_TAIL_01,
95271 t_TAIL_02,
95272 t_TAIL_03,
95273 t_TAIL_04,
95274 t_TAIL_05,
95275 t_TAIL_06,
95276 t_TAIL_07,
95277 t_TAIL_08,
95278 t_TAIL_09,
95279 t_TAIL_10,
95280 t_TAIL_11,
95281 t_TAIL_12,
95282 t_TAIL_13,
95283 BSLS_COMPILERFEATURES_FILLT( 5)
95284 >::Variant_Base(bsl::allocator_arg_t,
95285 allocator_type allocator,
95287 const t_ARG_01& arg_01,
95288 const t_ARG_02& arg_02,
95289 const t_ARG_03& arg_03,
95290 const t_ARG_04& arg_04)
95291: AllocBase(allocator)
95292, d_type(t_INDEX)
95293{
95294 typedef typename bsl::remove_cv<
95296 Alt_Type;
95297
95298 BloombergLP::bslma::ConstructionUtil::construct(
95299 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95300 AllocBase::mechanism(),
95301 arg_01,
95302 arg_02,
95303 arg_03,
95304 arg_04);
95305}
95306#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
95307
95308#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
95309template <class t_HEAD, class t_TAIL_01,
95310 class t_TAIL_02,
95311 class t_TAIL_03,
95312 class t_TAIL_04,
95313 class t_TAIL_05,
95314 class t_TAIL_06,
95315 class t_TAIL_07,
95316 class t_TAIL_08,
95317 class t_TAIL_09,
95318 class t_TAIL_10,
95319 class t_TAIL_11,
95320 class t_TAIL_12,
95321 class t_TAIL_13,
95322 class t_TAIL_14>
95323template <size_t t_INDEX,
95324 class t_ARG_01,
95325 class t_ARG_02,
95326 class t_ARG_03,
95327 class t_ARG_04>
95328inline
95329Variant_Base<t_HEAD, t_TAIL_01,
95330 t_TAIL_02,
95331 t_TAIL_03,
95332 t_TAIL_04,
95333 t_TAIL_05,
95334 t_TAIL_06,
95335 t_TAIL_07,
95336 t_TAIL_08,
95337 t_TAIL_09,
95338 t_TAIL_10,
95339 t_TAIL_11,
95340 t_TAIL_12,
95341 t_TAIL_13,
95342 t_TAIL_14,
95343 BSLS_COMPILERFEATURES_FILLT( 4)
95344 >::Variant_Base(bsl::allocator_arg_t,
95345 allocator_type allocator,
95347 const t_ARG_01& arg_01,
95348 const t_ARG_02& arg_02,
95349 const t_ARG_03& arg_03,
95350 const t_ARG_04& arg_04)
95351: AllocBase(allocator)
95352, d_type(t_INDEX)
95353{
95354 typedef typename bsl::remove_cv<
95356 Alt_Type;
95357
95358 BloombergLP::bslma::ConstructionUtil::construct(
95359 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95360 AllocBase::mechanism(),
95361 arg_01,
95362 arg_02,
95363 arg_03,
95364 arg_04);
95365}
95366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
95367
95368#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
95369template <class t_HEAD, class t_TAIL_01,
95370 class t_TAIL_02,
95371 class t_TAIL_03,
95372 class t_TAIL_04,
95373 class t_TAIL_05,
95374 class t_TAIL_06,
95375 class t_TAIL_07,
95376 class t_TAIL_08,
95377 class t_TAIL_09,
95378 class t_TAIL_10,
95379 class t_TAIL_11,
95380 class t_TAIL_12,
95381 class t_TAIL_13,
95382 class t_TAIL_14,
95383 class t_TAIL_15>
95384template <size_t t_INDEX,
95385 class t_ARG_01,
95386 class t_ARG_02,
95387 class t_ARG_03,
95388 class t_ARG_04>
95389inline
95390Variant_Base<t_HEAD, t_TAIL_01,
95391 t_TAIL_02,
95392 t_TAIL_03,
95393 t_TAIL_04,
95394 t_TAIL_05,
95395 t_TAIL_06,
95396 t_TAIL_07,
95397 t_TAIL_08,
95398 t_TAIL_09,
95399 t_TAIL_10,
95400 t_TAIL_11,
95401 t_TAIL_12,
95402 t_TAIL_13,
95403 t_TAIL_14,
95404 t_TAIL_15,
95405 BSLS_COMPILERFEATURES_FILLT( 3)
95406 >::Variant_Base(bsl::allocator_arg_t,
95407 allocator_type allocator,
95409 const t_ARG_01& arg_01,
95410 const t_ARG_02& arg_02,
95411 const t_ARG_03& arg_03,
95412 const t_ARG_04& arg_04)
95413: AllocBase(allocator)
95414, d_type(t_INDEX)
95415{
95416 typedef typename bsl::remove_cv<
95418 Alt_Type;
95419
95420 BloombergLP::bslma::ConstructionUtil::construct(
95421 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95422 AllocBase::mechanism(),
95423 arg_01,
95424 arg_02,
95425 arg_03,
95426 arg_04);
95427}
95428#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
95429
95430#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
95431template <class t_HEAD, class t_TAIL_01,
95432 class t_TAIL_02,
95433 class t_TAIL_03,
95434 class t_TAIL_04,
95435 class t_TAIL_05,
95436 class t_TAIL_06,
95437 class t_TAIL_07,
95438 class t_TAIL_08,
95439 class t_TAIL_09,
95440 class t_TAIL_10,
95441 class t_TAIL_11,
95442 class t_TAIL_12,
95443 class t_TAIL_13,
95444 class t_TAIL_14,
95445 class t_TAIL_15,
95446 class t_TAIL_16>
95447template <size_t t_INDEX,
95448 class t_ARG_01,
95449 class t_ARG_02,
95450 class t_ARG_03,
95451 class t_ARG_04>
95452inline
95453Variant_Base<t_HEAD, t_TAIL_01,
95454 t_TAIL_02,
95455 t_TAIL_03,
95456 t_TAIL_04,
95457 t_TAIL_05,
95458 t_TAIL_06,
95459 t_TAIL_07,
95460 t_TAIL_08,
95461 t_TAIL_09,
95462 t_TAIL_10,
95463 t_TAIL_11,
95464 t_TAIL_12,
95465 t_TAIL_13,
95466 t_TAIL_14,
95467 t_TAIL_15,
95468 t_TAIL_16,
95469 BSLS_COMPILERFEATURES_FILLT( 2)
95470 >::Variant_Base(bsl::allocator_arg_t,
95471 allocator_type allocator,
95473 const t_ARG_01& arg_01,
95474 const t_ARG_02& arg_02,
95475 const t_ARG_03& arg_03,
95476 const t_ARG_04& arg_04)
95477: AllocBase(allocator)
95478, d_type(t_INDEX)
95479{
95480 typedef typename bsl::remove_cv<
95482 Alt_Type;
95483
95484 BloombergLP::bslma::ConstructionUtil::construct(
95485 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95486 AllocBase::mechanism(),
95487 arg_01,
95488 arg_02,
95489 arg_03,
95490 arg_04);
95491}
95492#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
95493
95494#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
95495template <class t_HEAD, class t_TAIL_01,
95496 class t_TAIL_02,
95497 class t_TAIL_03,
95498 class t_TAIL_04,
95499 class t_TAIL_05,
95500 class t_TAIL_06,
95501 class t_TAIL_07,
95502 class t_TAIL_08,
95503 class t_TAIL_09,
95504 class t_TAIL_10,
95505 class t_TAIL_11,
95506 class t_TAIL_12,
95507 class t_TAIL_13,
95508 class t_TAIL_14,
95509 class t_TAIL_15,
95510 class t_TAIL_16,
95511 class t_TAIL_17>
95512template <size_t t_INDEX,
95513 class t_ARG_01,
95514 class t_ARG_02,
95515 class t_ARG_03,
95516 class t_ARG_04>
95517inline
95518Variant_Base<t_HEAD, t_TAIL_01,
95519 t_TAIL_02,
95520 t_TAIL_03,
95521 t_TAIL_04,
95522 t_TAIL_05,
95523 t_TAIL_06,
95524 t_TAIL_07,
95525 t_TAIL_08,
95526 t_TAIL_09,
95527 t_TAIL_10,
95528 t_TAIL_11,
95529 t_TAIL_12,
95530 t_TAIL_13,
95531 t_TAIL_14,
95532 t_TAIL_15,
95533 t_TAIL_16,
95534 t_TAIL_17,
95535 BSLS_COMPILERFEATURES_FILLT( 1)
95536 >::Variant_Base(bsl::allocator_arg_t,
95537 allocator_type allocator,
95539 const t_ARG_01& arg_01,
95540 const t_ARG_02& arg_02,
95541 const t_ARG_03& arg_03,
95542 const t_ARG_04& arg_04)
95543: AllocBase(allocator)
95544, d_type(t_INDEX)
95545{
95546 typedef typename bsl::remove_cv<
95548 Alt_Type;
95549
95550 BloombergLP::bslma::ConstructionUtil::construct(
95551 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95552 AllocBase::mechanism(),
95553 arg_01,
95554 arg_02,
95555 arg_03,
95556 arg_04);
95557}
95558#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
95559
95560#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
95561template <class t_HEAD, class t_TAIL_01,
95562 class t_TAIL_02,
95563 class t_TAIL_03,
95564 class t_TAIL_04,
95565 class t_TAIL_05,
95566 class t_TAIL_06,
95567 class t_TAIL_07,
95568 class t_TAIL_08,
95569 class t_TAIL_09,
95570 class t_TAIL_10,
95571 class t_TAIL_11,
95572 class t_TAIL_12,
95573 class t_TAIL_13,
95574 class t_TAIL_14,
95575 class t_TAIL_15,
95576 class t_TAIL_16,
95577 class t_TAIL_17,
95578 class t_TAIL_18>
95579template <size_t t_INDEX,
95580 class t_ARG_01,
95581 class t_ARG_02,
95582 class t_ARG_03,
95583 class t_ARG_04>
95584inline
95585Variant_Base<t_HEAD, t_TAIL_01,
95586 t_TAIL_02,
95587 t_TAIL_03,
95588 t_TAIL_04,
95589 t_TAIL_05,
95590 t_TAIL_06,
95591 t_TAIL_07,
95592 t_TAIL_08,
95593 t_TAIL_09,
95594 t_TAIL_10,
95595 t_TAIL_11,
95596 t_TAIL_12,
95597 t_TAIL_13,
95598 t_TAIL_14,
95599 t_TAIL_15,
95600 t_TAIL_16,
95601 t_TAIL_17,
95602 t_TAIL_18,
95603 BSLS_COMPILERFEATURES_FILLT( 0)
95604 >::Variant_Base(bsl::allocator_arg_t,
95605 allocator_type allocator,
95607 const t_ARG_01& arg_01,
95608 const t_ARG_02& arg_02,
95609 const t_ARG_03& arg_03,
95610 const t_ARG_04& arg_04)
95611: AllocBase(allocator)
95612, d_type(t_INDEX)
95613{
95614 typedef typename bsl::remove_cv<
95616 Alt_Type;
95617
95618 BloombergLP::bslma::ConstructionUtil::construct(
95619 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95620 AllocBase::mechanism(),
95621 arg_01,
95622 arg_02,
95623 arg_03,
95624 arg_04);
95625}
95626#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
95627
95628
95629#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
95630template <class t_HEAD>
95631template <size_t t_INDEX,
95632 class t_ARG_01,
95633 class t_ARG_02,
95634 class t_ARG_03,
95635 class t_ARG_04,
95636 class t_ARG_05>
95637inline
95638Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
95639 >::Variant_Base(bsl::allocator_arg_t,
95640 allocator_type allocator,
95642 const t_ARG_01& arg_01,
95643 const t_ARG_02& arg_02,
95644 const t_ARG_03& arg_03,
95645 const t_ARG_04& arg_04,
95646 const t_ARG_05& arg_05)
95647: AllocBase(allocator)
95648, d_type(t_INDEX)
95649{
95650 typedef typename bsl::remove_cv<
95652 Alt_Type;
95653
95654 BloombergLP::bslma::ConstructionUtil::construct(
95655 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95656 AllocBase::mechanism(),
95657 arg_01,
95658 arg_02,
95659 arg_03,
95660 arg_04,
95661 arg_05);
95662}
95663#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
95664
95665#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
95666template <class t_HEAD, class t_TAIL_01>
95667template <size_t t_INDEX,
95668 class t_ARG_01,
95669 class t_ARG_02,
95670 class t_ARG_03,
95671 class t_ARG_04,
95672 class t_ARG_05>
95673inline
95674Variant_Base<t_HEAD, t_TAIL_01,
95675 BSLS_COMPILERFEATURES_FILLT(17)
95676 >::Variant_Base(bsl::allocator_arg_t,
95677 allocator_type allocator,
95679 const t_ARG_01& arg_01,
95680 const t_ARG_02& arg_02,
95681 const t_ARG_03& arg_03,
95682 const t_ARG_04& arg_04,
95683 const t_ARG_05& arg_05)
95684: AllocBase(allocator)
95685, d_type(t_INDEX)
95686{
95687 typedef typename bsl::remove_cv<
95689 Alt_Type;
95690
95691 BloombergLP::bslma::ConstructionUtil::construct(
95692 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95693 AllocBase::mechanism(),
95694 arg_01,
95695 arg_02,
95696 arg_03,
95697 arg_04,
95698 arg_05);
95699}
95700#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
95701
95702#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
95703template <class t_HEAD, class t_TAIL_01,
95704 class t_TAIL_02>
95705template <size_t t_INDEX,
95706 class t_ARG_01,
95707 class t_ARG_02,
95708 class t_ARG_03,
95709 class t_ARG_04,
95710 class t_ARG_05>
95711inline
95712Variant_Base<t_HEAD, t_TAIL_01,
95713 t_TAIL_02,
95714 BSLS_COMPILERFEATURES_FILLT(16)
95715 >::Variant_Base(bsl::allocator_arg_t,
95716 allocator_type allocator,
95718 const t_ARG_01& arg_01,
95719 const t_ARG_02& arg_02,
95720 const t_ARG_03& arg_03,
95721 const t_ARG_04& arg_04,
95722 const t_ARG_05& arg_05)
95723: AllocBase(allocator)
95724, d_type(t_INDEX)
95725{
95726 typedef typename bsl::remove_cv<
95728 Alt_Type;
95729
95730 BloombergLP::bslma::ConstructionUtil::construct(
95731 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95732 AllocBase::mechanism(),
95733 arg_01,
95734 arg_02,
95735 arg_03,
95736 arg_04,
95737 arg_05);
95738}
95739#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
95740
95741#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
95742template <class t_HEAD, class t_TAIL_01,
95743 class t_TAIL_02,
95744 class t_TAIL_03>
95745template <size_t t_INDEX,
95746 class t_ARG_01,
95747 class t_ARG_02,
95748 class t_ARG_03,
95749 class t_ARG_04,
95750 class t_ARG_05>
95751inline
95752Variant_Base<t_HEAD, t_TAIL_01,
95753 t_TAIL_02,
95754 t_TAIL_03,
95755 BSLS_COMPILERFEATURES_FILLT(15)
95756 >::Variant_Base(bsl::allocator_arg_t,
95757 allocator_type allocator,
95759 const t_ARG_01& arg_01,
95760 const t_ARG_02& arg_02,
95761 const t_ARG_03& arg_03,
95762 const t_ARG_04& arg_04,
95763 const t_ARG_05& arg_05)
95764: AllocBase(allocator)
95765, d_type(t_INDEX)
95766{
95767 typedef typename bsl::remove_cv<
95769 Alt_Type;
95770
95771 BloombergLP::bslma::ConstructionUtil::construct(
95772 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95773 AllocBase::mechanism(),
95774 arg_01,
95775 arg_02,
95776 arg_03,
95777 arg_04,
95778 arg_05);
95779}
95780#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
95781
95782#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
95783template <class t_HEAD, class t_TAIL_01,
95784 class t_TAIL_02,
95785 class t_TAIL_03,
95786 class t_TAIL_04>
95787template <size_t t_INDEX,
95788 class t_ARG_01,
95789 class t_ARG_02,
95790 class t_ARG_03,
95791 class t_ARG_04,
95792 class t_ARG_05>
95793inline
95794Variant_Base<t_HEAD, t_TAIL_01,
95795 t_TAIL_02,
95796 t_TAIL_03,
95797 t_TAIL_04,
95798 BSLS_COMPILERFEATURES_FILLT(14)
95799 >::Variant_Base(bsl::allocator_arg_t,
95800 allocator_type allocator,
95802 const t_ARG_01& arg_01,
95803 const t_ARG_02& arg_02,
95804 const t_ARG_03& arg_03,
95805 const t_ARG_04& arg_04,
95806 const t_ARG_05& arg_05)
95807: AllocBase(allocator)
95808, d_type(t_INDEX)
95809{
95810 typedef typename bsl::remove_cv<
95812 Alt_Type;
95813
95814 BloombergLP::bslma::ConstructionUtil::construct(
95815 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95816 AllocBase::mechanism(),
95817 arg_01,
95818 arg_02,
95819 arg_03,
95820 arg_04,
95821 arg_05);
95822}
95823#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
95824
95825#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
95826template <class t_HEAD, class t_TAIL_01,
95827 class t_TAIL_02,
95828 class t_TAIL_03,
95829 class t_TAIL_04,
95830 class t_TAIL_05>
95831template <size_t t_INDEX,
95832 class t_ARG_01,
95833 class t_ARG_02,
95834 class t_ARG_03,
95835 class t_ARG_04,
95836 class t_ARG_05>
95837inline
95838Variant_Base<t_HEAD, t_TAIL_01,
95839 t_TAIL_02,
95840 t_TAIL_03,
95841 t_TAIL_04,
95842 t_TAIL_05,
95843 BSLS_COMPILERFEATURES_FILLT(13)
95844 >::Variant_Base(bsl::allocator_arg_t,
95845 allocator_type allocator,
95847 const t_ARG_01& arg_01,
95848 const t_ARG_02& arg_02,
95849 const t_ARG_03& arg_03,
95850 const t_ARG_04& arg_04,
95851 const t_ARG_05& arg_05)
95852: AllocBase(allocator)
95853, d_type(t_INDEX)
95854{
95855 typedef typename bsl::remove_cv<
95857 Alt_Type;
95858
95859 BloombergLP::bslma::ConstructionUtil::construct(
95860 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95861 AllocBase::mechanism(),
95862 arg_01,
95863 arg_02,
95864 arg_03,
95865 arg_04,
95866 arg_05);
95867}
95868#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
95869
95870#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
95871template <class t_HEAD, class t_TAIL_01,
95872 class t_TAIL_02,
95873 class t_TAIL_03,
95874 class t_TAIL_04,
95875 class t_TAIL_05,
95876 class t_TAIL_06>
95877template <size_t t_INDEX,
95878 class t_ARG_01,
95879 class t_ARG_02,
95880 class t_ARG_03,
95881 class t_ARG_04,
95882 class t_ARG_05>
95883inline
95884Variant_Base<t_HEAD, t_TAIL_01,
95885 t_TAIL_02,
95886 t_TAIL_03,
95887 t_TAIL_04,
95888 t_TAIL_05,
95889 t_TAIL_06,
95890 BSLS_COMPILERFEATURES_FILLT(12)
95891 >::Variant_Base(bsl::allocator_arg_t,
95892 allocator_type allocator,
95894 const t_ARG_01& arg_01,
95895 const t_ARG_02& arg_02,
95896 const t_ARG_03& arg_03,
95897 const t_ARG_04& arg_04,
95898 const t_ARG_05& arg_05)
95899: AllocBase(allocator)
95900, d_type(t_INDEX)
95901{
95902 typedef typename bsl::remove_cv<
95904 Alt_Type;
95905
95906 BloombergLP::bslma::ConstructionUtil::construct(
95907 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95908 AllocBase::mechanism(),
95909 arg_01,
95910 arg_02,
95911 arg_03,
95912 arg_04,
95913 arg_05);
95914}
95915#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
95916
95917#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
95918template <class t_HEAD, class t_TAIL_01,
95919 class t_TAIL_02,
95920 class t_TAIL_03,
95921 class t_TAIL_04,
95922 class t_TAIL_05,
95923 class t_TAIL_06,
95924 class t_TAIL_07>
95925template <size_t t_INDEX,
95926 class t_ARG_01,
95927 class t_ARG_02,
95928 class t_ARG_03,
95929 class t_ARG_04,
95930 class t_ARG_05>
95931inline
95932Variant_Base<t_HEAD, t_TAIL_01,
95933 t_TAIL_02,
95934 t_TAIL_03,
95935 t_TAIL_04,
95936 t_TAIL_05,
95937 t_TAIL_06,
95938 t_TAIL_07,
95939 BSLS_COMPILERFEATURES_FILLT(11)
95940 >::Variant_Base(bsl::allocator_arg_t,
95941 allocator_type allocator,
95943 const t_ARG_01& arg_01,
95944 const t_ARG_02& arg_02,
95945 const t_ARG_03& arg_03,
95946 const t_ARG_04& arg_04,
95947 const t_ARG_05& arg_05)
95948: AllocBase(allocator)
95949, d_type(t_INDEX)
95950{
95951 typedef typename bsl::remove_cv<
95953 Alt_Type;
95954
95955 BloombergLP::bslma::ConstructionUtil::construct(
95956 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
95957 AllocBase::mechanism(),
95958 arg_01,
95959 arg_02,
95960 arg_03,
95961 arg_04,
95962 arg_05);
95963}
95964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
95965
95966#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
95967template <class t_HEAD, class t_TAIL_01,
95968 class t_TAIL_02,
95969 class t_TAIL_03,
95970 class t_TAIL_04,
95971 class t_TAIL_05,
95972 class t_TAIL_06,
95973 class t_TAIL_07,
95974 class t_TAIL_08>
95975template <size_t t_INDEX,
95976 class t_ARG_01,
95977 class t_ARG_02,
95978 class t_ARG_03,
95979 class t_ARG_04,
95980 class t_ARG_05>
95981inline
95982Variant_Base<t_HEAD, t_TAIL_01,
95983 t_TAIL_02,
95984 t_TAIL_03,
95985 t_TAIL_04,
95986 t_TAIL_05,
95987 t_TAIL_06,
95988 t_TAIL_07,
95989 t_TAIL_08,
95990 BSLS_COMPILERFEATURES_FILLT(10)
95991 >::Variant_Base(bsl::allocator_arg_t,
95992 allocator_type allocator,
95994 const t_ARG_01& arg_01,
95995 const t_ARG_02& arg_02,
95996 const t_ARG_03& arg_03,
95997 const t_ARG_04& arg_04,
95998 const t_ARG_05& arg_05)
95999: AllocBase(allocator)
96000, d_type(t_INDEX)
96001{
96002 typedef typename bsl::remove_cv<
96004 Alt_Type;
96005
96006 BloombergLP::bslma::ConstructionUtil::construct(
96007 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96008 AllocBase::mechanism(),
96009 arg_01,
96010 arg_02,
96011 arg_03,
96012 arg_04,
96013 arg_05);
96014}
96015#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
96016
96017#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
96018template <class t_HEAD, class t_TAIL_01,
96019 class t_TAIL_02,
96020 class t_TAIL_03,
96021 class t_TAIL_04,
96022 class t_TAIL_05,
96023 class t_TAIL_06,
96024 class t_TAIL_07,
96025 class t_TAIL_08,
96026 class t_TAIL_09>
96027template <size_t t_INDEX,
96028 class t_ARG_01,
96029 class t_ARG_02,
96030 class t_ARG_03,
96031 class t_ARG_04,
96032 class t_ARG_05>
96033inline
96034Variant_Base<t_HEAD, t_TAIL_01,
96035 t_TAIL_02,
96036 t_TAIL_03,
96037 t_TAIL_04,
96038 t_TAIL_05,
96039 t_TAIL_06,
96040 t_TAIL_07,
96041 t_TAIL_08,
96042 t_TAIL_09,
96043 BSLS_COMPILERFEATURES_FILLT( 9)
96044 >::Variant_Base(bsl::allocator_arg_t,
96045 allocator_type allocator,
96047 const t_ARG_01& arg_01,
96048 const t_ARG_02& arg_02,
96049 const t_ARG_03& arg_03,
96050 const t_ARG_04& arg_04,
96051 const t_ARG_05& arg_05)
96052: AllocBase(allocator)
96053, d_type(t_INDEX)
96054{
96055 typedef typename bsl::remove_cv<
96057 Alt_Type;
96058
96059 BloombergLP::bslma::ConstructionUtil::construct(
96060 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96061 AllocBase::mechanism(),
96062 arg_01,
96063 arg_02,
96064 arg_03,
96065 arg_04,
96066 arg_05);
96067}
96068#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
96069
96070#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
96071template <class t_HEAD, class t_TAIL_01,
96072 class t_TAIL_02,
96073 class t_TAIL_03,
96074 class t_TAIL_04,
96075 class t_TAIL_05,
96076 class t_TAIL_06,
96077 class t_TAIL_07,
96078 class t_TAIL_08,
96079 class t_TAIL_09,
96080 class t_TAIL_10>
96081template <size_t t_INDEX,
96082 class t_ARG_01,
96083 class t_ARG_02,
96084 class t_ARG_03,
96085 class t_ARG_04,
96086 class t_ARG_05>
96087inline
96088Variant_Base<t_HEAD, t_TAIL_01,
96089 t_TAIL_02,
96090 t_TAIL_03,
96091 t_TAIL_04,
96092 t_TAIL_05,
96093 t_TAIL_06,
96094 t_TAIL_07,
96095 t_TAIL_08,
96096 t_TAIL_09,
96097 t_TAIL_10,
96098 BSLS_COMPILERFEATURES_FILLT( 8)
96099 >::Variant_Base(bsl::allocator_arg_t,
96100 allocator_type allocator,
96102 const t_ARG_01& arg_01,
96103 const t_ARG_02& arg_02,
96104 const t_ARG_03& arg_03,
96105 const t_ARG_04& arg_04,
96106 const t_ARG_05& arg_05)
96107: AllocBase(allocator)
96108, d_type(t_INDEX)
96109{
96110 typedef typename bsl::remove_cv<
96112 Alt_Type;
96113
96114 BloombergLP::bslma::ConstructionUtil::construct(
96115 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96116 AllocBase::mechanism(),
96117 arg_01,
96118 arg_02,
96119 arg_03,
96120 arg_04,
96121 arg_05);
96122}
96123#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
96124
96125#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
96126template <class t_HEAD, class t_TAIL_01,
96127 class t_TAIL_02,
96128 class t_TAIL_03,
96129 class t_TAIL_04,
96130 class t_TAIL_05,
96131 class t_TAIL_06,
96132 class t_TAIL_07,
96133 class t_TAIL_08,
96134 class t_TAIL_09,
96135 class t_TAIL_10,
96136 class t_TAIL_11>
96137template <size_t t_INDEX,
96138 class t_ARG_01,
96139 class t_ARG_02,
96140 class t_ARG_03,
96141 class t_ARG_04,
96142 class t_ARG_05>
96143inline
96144Variant_Base<t_HEAD, t_TAIL_01,
96145 t_TAIL_02,
96146 t_TAIL_03,
96147 t_TAIL_04,
96148 t_TAIL_05,
96149 t_TAIL_06,
96150 t_TAIL_07,
96151 t_TAIL_08,
96152 t_TAIL_09,
96153 t_TAIL_10,
96154 t_TAIL_11,
96155 BSLS_COMPILERFEATURES_FILLT( 7)
96156 >::Variant_Base(bsl::allocator_arg_t,
96157 allocator_type allocator,
96159 const t_ARG_01& arg_01,
96160 const t_ARG_02& arg_02,
96161 const t_ARG_03& arg_03,
96162 const t_ARG_04& arg_04,
96163 const t_ARG_05& arg_05)
96164: AllocBase(allocator)
96165, d_type(t_INDEX)
96166{
96167 typedef typename bsl::remove_cv<
96169 Alt_Type;
96170
96171 BloombergLP::bslma::ConstructionUtil::construct(
96172 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96173 AllocBase::mechanism(),
96174 arg_01,
96175 arg_02,
96176 arg_03,
96177 arg_04,
96178 arg_05);
96179}
96180#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
96181
96182#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
96183template <class t_HEAD, class t_TAIL_01,
96184 class t_TAIL_02,
96185 class t_TAIL_03,
96186 class t_TAIL_04,
96187 class t_TAIL_05,
96188 class t_TAIL_06,
96189 class t_TAIL_07,
96190 class t_TAIL_08,
96191 class t_TAIL_09,
96192 class t_TAIL_10,
96193 class t_TAIL_11,
96194 class t_TAIL_12>
96195template <size_t t_INDEX,
96196 class t_ARG_01,
96197 class t_ARG_02,
96198 class t_ARG_03,
96199 class t_ARG_04,
96200 class t_ARG_05>
96201inline
96202Variant_Base<t_HEAD, t_TAIL_01,
96203 t_TAIL_02,
96204 t_TAIL_03,
96205 t_TAIL_04,
96206 t_TAIL_05,
96207 t_TAIL_06,
96208 t_TAIL_07,
96209 t_TAIL_08,
96210 t_TAIL_09,
96211 t_TAIL_10,
96212 t_TAIL_11,
96213 t_TAIL_12,
96214 BSLS_COMPILERFEATURES_FILLT( 6)
96215 >::Variant_Base(bsl::allocator_arg_t,
96216 allocator_type allocator,
96218 const t_ARG_01& arg_01,
96219 const t_ARG_02& arg_02,
96220 const t_ARG_03& arg_03,
96221 const t_ARG_04& arg_04,
96222 const t_ARG_05& arg_05)
96223: AllocBase(allocator)
96224, d_type(t_INDEX)
96225{
96226 typedef typename bsl::remove_cv<
96228 Alt_Type;
96229
96230 BloombergLP::bslma::ConstructionUtil::construct(
96231 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96232 AllocBase::mechanism(),
96233 arg_01,
96234 arg_02,
96235 arg_03,
96236 arg_04,
96237 arg_05);
96238}
96239#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
96240
96241#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
96242template <class t_HEAD, class t_TAIL_01,
96243 class t_TAIL_02,
96244 class t_TAIL_03,
96245 class t_TAIL_04,
96246 class t_TAIL_05,
96247 class t_TAIL_06,
96248 class t_TAIL_07,
96249 class t_TAIL_08,
96250 class t_TAIL_09,
96251 class t_TAIL_10,
96252 class t_TAIL_11,
96253 class t_TAIL_12,
96254 class t_TAIL_13>
96255template <size_t t_INDEX,
96256 class t_ARG_01,
96257 class t_ARG_02,
96258 class t_ARG_03,
96259 class t_ARG_04,
96260 class t_ARG_05>
96261inline
96262Variant_Base<t_HEAD, t_TAIL_01,
96263 t_TAIL_02,
96264 t_TAIL_03,
96265 t_TAIL_04,
96266 t_TAIL_05,
96267 t_TAIL_06,
96268 t_TAIL_07,
96269 t_TAIL_08,
96270 t_TAIL_09,
96271 t_TAIL_10,
96272 t_TAIL_11,
96273 t_TAIL_12,
96274 t_TAIL_13,
96275 BSLS_COMPILERFEATURES_FILLT( 5)
96276 >::Variant_Base(bsl::allocator_arg_t,
96277 allocator_type allocator,
96279 const t_ARG_01& arg_01,
96280 const t_ARG_02& arg_02,
96281 const t_ARG_03& arg_03,
96282 const t_ARG_04& arg_04,
96283 const t_ARG_05& arg_05)
96284: AllocBase(allocator)
96285, d_type(t_INDEX)
96286{
96287 typedef typename bsl::remove_cv<
96289 Alt_Type;
96290
96291 BloombergLP::bslma::ConstructionUtil::construct(
96292 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96293 AllocBase::mechanism(),
96294 arg_01,
96295 arg_02,
96296 arg_03,
96297 arg_04,
96298 arg_05);
96299}
96300#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
96301
96302#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
96303template <class t_HEAD, class t_TAIL_01,
96304 class t_TAIL_02,
96305 class t_TAIL_03,
96306 class t_TAIL_04,
96307 class t_TAIL_05,
96308 class t_TAIL_06,
96309 class t_TAIL_07,
96310 class t_TAIL_08,
96311 class t_TAIL_09,
96312 class t_TAIL_10,
96313 class t_TAIL_11,
96314 class t_TAIL_12,
96315 class t_TAIL_13,
96316 class t_TAIL_14>
96317template <size_t t_INDEX,
96318 class t_ARG_01,
96319 class t_ARG_02,
96320 class t_ARG_03,
96321 class t_ARG_04,
96322 class t_ARG_05>
96323inline
96324Variant_Base<t_HEAD, t_TAIL_01,
96325 t_TAIL_02,
96326 t_TAIL_03,
96327 t_TAIL_04,
96328 t_TAIL_05,
96329 t_TAIL_06,
96330 t_TAIL_07,
96331 t_TAIL_08,
96332 t_TAIL_09,
96333 t_TAIL_10,
96334 t_TAIL_11,
96335 t_TAIL_12,
96336 t_TAIL_13,
96337 t_TAIL_14,
96338 BSLS_COMPILERFEATURES_FILLT( 4)
96339 >::Variant_Base(bsl::allocator_arg_t,
96340 allocator_type allocator,
96342 const t_ARG_01& arg_01,
96343 const t_ARG_02& arg_02,
96344 const t_ARG_03& arg_03,
96345 const t_ARG_04& arg_04,
96346 const t_ARG_05& arg_05)
96347: AllocBase(allocator)
96348, d_type(t_INDEX)
96349{
96350 typedef typename bsl::remove_cv<
96352 Alt_Type;
96353
96354 BloombergLP::bslma::ConstructionUtil::construct(
96355 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96356 AllocBase::mechanism(),
96357 arg_01,
96358 arg_02,
96359 arg_03,
96360 arg_04,
96361 arg_05);
96362}
96363#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
96364
96365#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
96366template <class t_HEAD, class t_TAIL_01,
96367 class t_TAIL_02,
96368 class t_TAIL_03,
96369 class t_TAIL_04,
96370 class t_TAIL_05,
96371 class t_TAIL_06,
96372 class t_TAIL_07,
96373 class t_TAIL_08,
96374 class t_TAIL_09,
96375 class t_TAIL_10,
96376 class t_TAIL_11,
96377 class t_TAIL_12,
96378 class t_TAIL_13,
96379 class t_TAIL_14,
96380 class t_TAIL_15>
96381template <size_t t_INDEX,
96382 class t_ARG_01,
96383 class t_ARG_02,
96384 class t_ARG_03,
96385 class t_ARG_04,
96386 class t_ARG_05>
96387inline
96388Variant_Base<t_HEAD, t_TAIL_01,
96389 t_TAIL_02,
96390 t_TAIL_03,
96391 t_TAIL_04,
96392 t_TAIL_05,
96393 t_TAIL_06,
96394 t_TAIL_07,
96395 t_TAIL_08,
96396 t_TAIL_09,
96397 t_TAIL_10,
96398 t_TAIL_11,
96399 t_TAIL_12,
96400 t_TAIL_13,
96401 t_TAIL_14,
96402 t_TAIL_15,
96403 BSLS_COMPILERFEATURES_FILLT( 3)
96404 >::Variant_Base(bsl::allocator_arg_t,
96405 allocator_type allocator,
96407 const t_ARG_01& arg_01,
96408 const t_ARG_02& arg_02,
96409 const t_ARG_03& arg_03,
96410 const t_ARG_04& arg_04,
96411 const t_ARG_05& arg_05)
96412: AllocBase(allocator)
96413, d_type(t_INDEX)
96414{
96415 typedef typename bsl::remove_cv<
96417 Alt_Type;
96418
96419 BloombergLP::bslma::ConstructionUtil::construct(
96420 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96421 AllocBase::mechanism(),
96422 arg_01,
96423 arg_02,
96424 arg_03,
96425 arg_04,
96426 arg_05);
96427}
96428#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
96429
96430#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
96431template <class t_HEAD, class t_TAIL_01,
96432 class t_TAIL_02,
96433 class t_TAIL_03,
96434 class t_TAIL_04,
96435 class t_TAIL_05,
96436 class t_TAIL_06,
96437 class t_TAIL_07,
96438 class t_TAIL_08,
96439 class t_TAIL_09,
96440 class t_TAIL_10,
96441 class t_TAIL_11,
96442 class t_TAIL_12,
96443 class t_TAIL_13,
96444 class t_TAIL_14,
96445 class t_TAIL_15,
96446 class t_TAIL_16>
96447template <size_t t_INDEX,
96448 class t_ARG_01,
96449 class t_ARG_02,
96450 class t_ARG_03,
96451 class t_ARG_04,
96452 class t_ARG_05>
96453inline
96454Variant_Base<t_HEAD, t_TAIL_01,
96455 t_TAIL_02,
96456 t_TAIL_03,
96457 t_TAIL_04,
96458 t_TAIL_05,
96459 t_TAIL_06,
96460 t_TAIL_07,
96461 t_TAIL_08,
96462 t_TAIL_09,
96463 t_TAIL_10,
96464 t_TAIL_11,
96465 t_TAIL_12,
96466 t_TAIL_13,
96467 t_TAIL_14,
96468 t_TAIL_15,
96469 t_TAIL_16,
96470 BSLS_COMPILERFEATURES_FILLT( 2)
96471 >::Variant_Base(bsl::allocator_arg_t,
96472 allocator_type allocator,
96474 const t_ARG_01& arg_01,
96475 const t_ARG_02& arg_02,
96476 const t_ARG_03& arg_03,
96477 const t_ARG_04& arg_04,
96478 const t_ARG_05& arg_05)
96479: AllocBase(allocator)
96480, d_type(t_INDEX)
96481{
96482 typedef typename bsl::remove_cv<
96484 Alt_Type;
96485
96486 BloombergLP::bslma::ConstructionUtil::construct(
96487 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96488 AllocBase::mechanism(),
96489 arg_01,
96490 arg_02,
96491 arg_03,
96492 arg_04,
96493 arg_05);
96494}
96495#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
96496
96497#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
96498template <class t_HEAD, class t_TAIL_01,
96499 class t_TAIL_02,
96500 class t_TAIL_03,
96501 class t_TAIL_04,
96502 class t_TAIL_05,
96503 class t_TAIL_06,
96504 class t_TAIL_07,
96505 class t_TAIL_08,
96506 class t_TAIL_09,
96507 class t_TAIL_10,
96508 class t_TAIL_11,
96509 class t_TAIL_12,
96510 class t_TAIL_13,
96511 class t_TAIL_14,
96512 class t_TAIL_15,
96513 class t_TAIL_16,
96514 class t_TAIL_17>
96515template <size_t t_INDEX,
96516 class t_ARG_01,
96517 class t_ARG_02,
96518 class t_ARG_03,
96519 class t_ARG_04,
96520 class t_ARG_05>
96521inline
96522Variant_Base<t_HEAD, t_TAIL_01,
96523 t_TAIL_02,
96524 t_TAIL_03,
96525 t_TAIL_04,
96526 t_TAIL_05,
96527 t_TAIL_06,
96528 t_TAIL_07,
96529 t_TAIL_08,
96530 t_TAIL_09,
96531 t_TAIL_10,
96532 t_TAIL_11,
96533 t_TAIL_12,
96534 t_TAIL_13,
96535 t_TAIL_14,
96536 t_TAIL_15,
96537 t_TAIL_16,
96538 t_TAIL_17,
96539 BSLS_COMPILERFEATURES_FILLT( 1)
96540 >::Variant_Base(bsl::allocator_arg_t,
96541 allocator_type allocator,
96543 const t_ARG_01& arg_01,
96544 const t_ARG_02& arg_02,
96545 const t_ARG_03& arg_03,
96546 const t_ARG_04& arg_04,
96547 const t_ARG_05& arg_05)
96548: AllocBase(allocator)
96549, d_type(t_INDEX)
96550{
96551 typedef typename bsl::remove_cv<
96553 Alt_Type;
96554
96555 BloombergLP::bslma::ConstructionUtil::construct(
96556 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96557 AllocBase::mechanism(),
96558 arg_01,
96559 arg_02,
96560 arg_03,
96561 arg_04,
96562 arg_05);
96563}
96564#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
96565
96566#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
96567template <class t_HEAD, class t_TAIL_01,
96568 class t_TAIL_02,
96569 class t_TAIL_03,
96570 class t_TAIL_04,
96571 class t_TAIL_05,
96572 class t_TAIL_06,
96573 class t_TAIL_07,
96574 class t_TAIL_08,
96575 class t_TAIL_09,
96576 class t_TAIL_10,
96577 class t_TAIL_11,
96578 class t_TAIL_12,
96579 class t_TAIL_13,
96580 class t_TAIL_14,
96581 class t_TAIL_15,
96582 class t_TAIL_16,
96583 class t_TAIL_17,
96584 class t_TAIL_18>
96585template <size_t t_INDEX,
96586 class t_ARG_01,
96587 class t_ARG_02,
96588 class t_ARG_03,
96589 class t_ARG_04,
96590 class t_ARG_05>
96591inline
96592Variant_Base<t_HEAD, t_TAIL_01,
96593 t_TAIL_02,
96594 t_TAIL_03,
96595 t_TAIL_04,
96596 t_TAIL_05,
96597 t_TAIL_06,
96598 t_TAIL_07,
96599 t_TAIL_08,
96600 t_TAIL_09,
96601 t_TAIL_10,
96602 t_TAIL_11,
96603 t_TAIL_12,
96604 t_TAIL_13,
96605 t_TAIL_14,
96606 t_TAIL_15,
96607 t_TAIL_16,
96608 t_TAIL_17,
96609 t_TAIL_18,
96610 BSLS_COMPILERFEATURES_FILLT( 0)
96611 >::Variant_Base(bsl::allocator_arg_t,
96612 allocator_type allocator,
96614 const t_ARG_01& arg_01,
96615 const t_ARG_02& arg_02,
96616 const t_ARG_03& arg_03,
96617 const t_ARG_04& arg_04,
96618 const t_ARG_05& arg_05)
96619: AllocBase(allocator)
96620, d_type(t_INDEX)
96621{
96622 typedef typename bsl::remove_cv<
96624 Alt_Type;
96625
96626 BloombergLP::bslma::ConstructionUtil::construct(
96627 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96628 AllocBase::mechanism(),
96629 arg_01,
96630 arg_02,
96631 arg_03,
96632 arg_04,
96633 arg_05);
96634}
96635#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
96636
96637
96638#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
96639template <class t_HEAD>
96640template <size_t t_INDEX,
96641 class t_ARG_01,
96642 class t_ARG_02,
96643 class t_ARG_03,
96644 class t_ARG_04,
96645 class t_ARG_05,
96646 class t_ARG_06>
96647inline
96648Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
96649 >::Variant_Base(bsl::allocator_arg_t,
96650 allocator_type allocator,
96652 const t_ARG_01& arg_01,
96653 const t_ARG_02& arg_02,
96654 const t_ARG_03& arg_03,
96655 const t_ARG_04& arg_04,
96656 const t_ARG_05& arg_05,
96657 const t_ARG_06& arg_06)
96658: AllocBase(allocator)
96659, d_type(t_INDEX)
96660{
96661 typedef typename bsl::remove_cv<
96663 Alt_Type;
96664
96665 BloombergLP::bslma::ConstructionUtil::construct(
96666 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96667 AllocBase::mechanism(),
96668 arg_01,
96669 arg_02,
96670 arg_03,
96671 arg_04,
96672 arg_05,
96673 arg_06);
96674}
96675#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
96676
96677#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
96678template <class t_HEAD, class t_TAIL_01>
96679template <size_t t_INDEX,
96680 class t_ARG_01,
96681 class t_ARG_02,
96682 class t_ARG_03,
96683 class t_ARG_04,
96684 class t_ARG_05,
96685 class t_ARG_06>
96686inline
96687Variant_Base<t_HEAD, t_TAIL_01,
96688 BSLS_COMPILERFEATURES_FILLT(17)
96689 >::Variant_Base(bsl::allocator_arg_t,
96690 allocator_type allocator,
96692 const t_ARG_01& arg_01,
96693 const t_ARG_02& arg_02,
96694 const t_ARG_03& arg_03,
96695 const t_ARG_04& arg_04,
96696 const t_ARG_05& arg_05,
96697 const t_ARG_06& arg_06)
96698: AllocBase(allocator)
96699, d_type(t_INDEX)
96700{
96701 typedef typename bsl::remove_cv<
96703 Alt_Type;
96704
96705 BloombergLP::bslma::ConstructionUtil::construct(
96706 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96707 AllocBase::mechanism(),
96708 arg_01,
96709 arg_02,
96710 arg_03,
96711 arg_04,
96712 arg_05,
96713 arg_06);
96714}
96715#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
96716
96717#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
96718template <class t_HEAD, class t_TAIL_01,
96719 class t_TAIL_02>
96720template <size_t t_INDEX,
96721 class t_ARG_01,
96722 class t_ARG_02,
96723 class t_ARG_03,
96724 class t_ARG_04,
96725 class t_ARG_05,
96726 class t_ARG_06>
96727inline
96728Variant_Base<t_HEAD, t_TAIL_01,
96729 t_TAIL_02,
96730 BSLS_COMPILERFEATURES_FILLT(16)
96731 >::Variant_Base(bsl::allocator_arg_t,
96732 allocator_type allocator,
96734 const t_ARG_01& arg_01,
96735 const t_ARG_02& arg_02,
96736 const t_ARG_03& arg_03,
96737 const t_ARG_04& arg_04,
96738 const t_ARG_05& arg_05,
96739 const t_ARG_06& arg_06)
96740: AllocBase(allocator)
96741, d_type(t_INDEX)
96742{
96743 typedef typename bsl::remove_cv<
96745 Alt_Type;
96746
96747 BloombergLP::bslma::ConstructionUtil::construct(
96748 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96749 AllocBase::mechanism(),
96750 arg_01,
96751 arg_02,
96752 arg_03,
96753 arg_04,
96754 arg_05,
96755 arg_06);
96756}
96757#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
96758
96759#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
96760template <class t_HEAD, class t_TAIL_01,
96761 class t_TAIL_02,
96762 class t_TAIL_03>
96763template <size_t t_INDEX,
96764 class t_ARG_01,
96765 class t_ARG_02,
96766 class t_ARG_03,
96767 class t_ARG_04,
96768 class t_ARG_05,
96769 class t_ARG_06>
96770inline
96771Variant_Base<t_HEAD, t_TAIL_01,
96772 t_TAIL_02,
96773 t_TAIL_03,
96774 BSLS_COMPILERFEATURES_FILLT(15)
96775 >::Variant_Base(bsl::allocator_arg_t,
96776 allocator_type allocator,
96778 const t_ARG_01& arg_01,
96779 const t_ARG_02& arg_02,
96780 const t_ARG_03& arg_03,
96781 const t_ARG_04& arg_04,
96782 const t_ARG_05& arg_05,
96783 const t_ARG_06& arg_06)
96784: AllocBase(allocator)
96785, d_type(t_INDEX)
96786{
96787 typedef typename bsl::remove_cv<
96789 Alt_Type;
96790
96791 BloombergLP::bslma::ConstructionUtil::construct(
96792 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96793 AllocBase::mechanism(),
96794 arg_01,
96795 arg_02,
96796 arg_03,
96797 arg_04,
96798 arg_05,
96799 arg_06);
96800}
96801#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
96802
96803#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
96804template <class t_HEAD, class t_TAIL_01,
96805 class t_TAIL_02,
96806 class t_TAIL_03,
96807 class t_TAIL_04>
96808template <size_t t_INDEX,
96809 class t_ARG_01,
96810 class t_ARG_02,
96811 class t_ARG_03,
96812 class t_ARG_04,
96813 class t_ARG_05,
96814 class t_ARG_06>
96815inline
96816Variant_Base<t_HEAD, t_TAIL_01,
96817 t_TAIL_02,
96818 t_TAIL_03,
96819 t_TAIL_04,
96820 BSLS_COMPILERFEATURES_FILLT(14)
96821 >::Variant_Base(bsl::allocator_arg_t,
96822 allocator_type allocator,
96824 const t_ARG_01& arg_01,
96825 const t_ARG_02& arg_02,
96826 const t_ARG_03& arg_03,
96827 const t_ARG_04& arg_04,
96828 const t_ARG_05& arg_05,
96829 const t_ARG_06& arg_06)
96830: AllocBase(allocator)
96831, d_type(t_INDEX)
96832{
96833 typedef typename bsl::remove_cv<
96835 Alt_Type;
96836
96837 BloombergLP::bslma::ConstructionUtil::construct(
96838 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96839 AllocBase::mechanism(),
96840 arg_01,
96841 arg_02,
96842 arg_03,
96843 arg_04,
96844 arg_05,
96845 arg_06);
96846}
96847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
96848
96849#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
96850template <class t_HEAD, class t_TAIL_01,
96851 class t_TAIL_02,
96852 class t_TAIL_03,
96853 class t_TAIL_04,
96854 class t_TAIL_05>
96855template <size_t t_INDEX,
96856 class t_ARG_01,
96857 class t_ARG_02,
96858 class t_ARG_03,
96859 class t_ARG_04,
96860 class t_ARG_05,
96861 class t_ARG_06>
96862inline
96863Variant_Base<t_HEAD, t_TAIL_01,
96864 t_TAIL_02,
96865 t_TAIL_03,
96866 t_TAIL_04,
96867 t_TAIL_05,
96868 BSLS_COMPILERFEATURES_FILLT(13)
96869 >::Variant_Base(bsl::allocator_arg_t,
96870 allocator_type allocator,
96872 const t_ARG_01& arg_01,
96873 const t_ARG_02& arg_02,
96874 const t_ARG_03& arg_03,
96875 const t_ARG_04& arg_04,
96876 const t_ARG_05& arg_05,
96877 const t_ARG_06& arg_06)
96878: AllocBase(allocator)
96879, d_type(t_INDEX)
96880{
96881 typedef typename bsl::remove_cv<
96883 Alt_Type;
96884
96885 BloombergLP::bslma::ConstructionUtil::construct(
96886 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96887 AllocBase::mechanism(),
96888 arg_01,
96889 arg_02,
96890 arg_03,
96891 arg_04,
96892 arg_05,
96893 arg_06);
96894}
96895#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
96896
96897#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
96898template <class t_HEAD, class t_TAIL_01,
96899 class t_TAIL_02,
96900 class t_TAIL_03,
96901 class t_TAIL_04,
96902 class t_TAIL_05,
96903 class t_TAIL_06>
96904template <size_t t_INDEX,
96905 class t_ARG_01,
96906 class t_ARG_02,
96907 class t_ARG_03,
96908 class t_ARG_04,
96909 class t_ARG_05,
96910 class t_ARG_06>
96911inline
96912Variant_Base<t_HEAD, t_TAIL_01,
96913 t_TAIL_02,
96914 t_TAIL_03,
96915 t_TAIL_04,
96916 t_TAIL_05,
96917 t_TAIL_06,
96918 BSLS_COMPILERFEATURES_FILLT(12)
96919 >::Variant_Base(bsl::allocator_arg_t,
96920 allocator_type allocator,
96922 const t_ARG_01& arg_01,
96923 const t_ARG_02& arg_02,
96924 const t_ARG_03& arg_03,
96925 const t_ARG_04& arg_04,
96926 const t_ARG_05& arg_05,
96927 const t_ARG_06& arg_06)
96928: AllocBase(allocator)
96929, d_type(t_INDEX)
96930{
96931 typedef typename bsl::remove_cv<
96933 Alt_Type;
96934
96935 BloombergLP::bslma::ConstructionUtil::construct(
96936 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96937 AllocBase::mechanism(),
96938 arg_01,
96939 arg_02,
96940 arg_03,
96941 arg_04,
96942 arg_05,
96943 arg_06);
96944}
96945#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
96946
96947#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
96948template <class t_HEAD, class t_TAIL_01,
96949 class t_TAIL_02,
96950 class t_TAIL_03,
96951 class t_TAIL_04,
96952 class t_TAIL_05,
96953 class t_TAIL_06,
96954 class t_TAIL_07>
96955template <size_t t_INDEX,
96956 class t_ARG_01,
96957 class t_ARG_02,
96958 class t_ARG_03,
96959 class t_ARG_04,
96960 class t_ARG_05,
96961 class t_ARG_06>
96962inline
96963Variant_Base<t_HEAD, t_TAIL_01,
96964 t_TAIL_02,
96965 t_TAIL_03,
96966 t_TAIL_04,
96967 t_TAIL_05,
96968 t_TAIL_06,
96969 t_TAIL_07,
96970 BSLS_COMPILERFEATURES_FILLT(11)
96971 >::Variant_Base(bsl::allocator_arg_t,
96972 allocator_type allocator,
96974 const t_ARG_01& arg_01,
96975 const t_ARG_02& arg_02,
96976 const t_ARG_03& arg_03,
96977 const t_ARG_04& arg_04,
96978 const t_ARG_05& arg_05,
96979 const t_ARG_06& arg_06)
96980: AllocBase(allocator)
96981, d_type(t_INDEX)
96982{
96983 typedef typename bsl::remove_cv<
96985 Alt_Type;
96986
96987 BloombergLP::bslma::ConstructionUtil::construct(
96988 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
96989 AllocBase::mechanism(),
96990 arg_01,
96991 arg_02,
96992 arg_03,
96993 arg_04,
96994 arg_05,
96995 arg_06);
96996}
96997#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
96998
96999#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
97000template <class t_HEAD, class t_TAIL_01,
97001 class t_TAIL_02,
97002 class t_TAIL_03,
97003 class t_TAIL_04,
97004 class t_TAIL_05,
97005 class t_TAIL_06,
97006 class t_TAIL_07,
97007 class t_TAIL_08>
97008template <size_t t_INDEX,
97009 class t_ARG_01,
97010 class t_ARG_02,
97011 class t_ARG_03,
97012 class t_ARG_04,
97013 class t_ARG_05,
97014 class t_ARG_06>
97015inline
97016Variant_Base<t_HEAD, t_TAIL_01,
97017 t_TAIL_02,
97018 t_TAIL_03,
97019 t_TAIL_04,
97020 t_TAIL_05,
97021 t_TAIL_06,
97022 t_TAIL_07,
97023 t_TAIL_08,
97024 BSLS_COMPILERFEATURES_FILLT(10)
97025 >::Variant_Base(bsl::allocator_arg_t,
97026 allocator_type allocator,
97028 const t_ARG_01& arg_01,
97029 const t_ARG_02& arg_02,
97030 const t_ARG_03& arg_03,
97031 const t_ARG_04& arg_04,
97032 const t_ARG_05& arg_05,
97033 const t_ARG_06& arg_06)
97034: AllocBase(allocator)
97035, d_type(t_INDEX)
97036{
97037 typedef typename bsl::remove_cv<
97039 Alt_Type;
97040
97041 BloombergLP::bslma::ConstructionUtil::construct(
97042 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97043 AllocBase::mechanism(),
97044 arg_01,
97045 arg_02,
97046 arg_03,
97047 arg_04,
97048 arg_05,
97049 arg_06);
97050}
97051#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
97052
97053#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
97054template <class t_HEAD, class t_TAIL_01,
97055 class t_TAIL_02,
97056 class t_TAIL_03,
97057 class t_TAIL_04,
97058 class t_TAIL_05,
97059 class t_TAIL_06,
97060 class t_TAIL_07,
97061 class t_TAIL_08,
97062 class t_TAIL_09>
97063template <size_t t_INDEX,
97064 class t_ARG_01,
97065 class t_ARG_02,
97066 class t_ARG_03,
97067 class t_ARG_04,
97068 class t_ARG_05,
97069 class t_ARG_06>
97070inline
97071Variant_Base<t_HEAD, t_TAIL_01,
97072 t_TAIL_02,
97073 t_TAIL_03,
97074 t_TAIL_04,
97075 t_TAIL_05,
97076 t_TAIL_06,
97077 t_TAIL_07,
97078 t_TAIL_08,
97079 t_TAIL_09,
97080 BSLS_COMPILERFEATURES_FILLT( 9)
97081 >::Variant_Base(bsl::allocator_arg_t,
97082 allocator_type allocator,
97084 const t_ARG_01& arg_01,
97085 const t_ARG_02& arg_02,
97086 const t_ARG_03& arg_03,
97087 const t_ARG_04& arg_04,
97088 const t_ARG_05& arg_05,
97089 const t_ARG_06& arg_06)
97090: AllocBase(allocator)
97091, d_type(t_INDEX)
97092{
97093 typedef typename bsl::remove_cv<
97095 Alt_Type;
97096
97097 BloombergLP::bslma::ConstructionUtil::construct(
97098 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97099 AllocBase::mechanism(),
97100 arg_01,
97101 arg_02,
97102 arg_03,
97103 arg_04,
97104 arg_05,
97105 arg_06);
97106}
97107#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
97108
97109#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
97110template <class t_HEAD, class t_TAIL_01,
97111 class t_TAIL_02,
97112 class t_TAIL_03,
97113 class t_TAIL_04,
97114 class t_TAIL_05,
97115 class t_TAIL_06,
97116 class t_TAIL_07,
97117 class t_TAIL_08,
97118 class t_TAIL_09,
97119 class t_TAIL_10>
97120template <size_t t_INDEX,
97121 class t_ARG_01,
97122 class t_ARG_02,
97123 class t_ARG_03,
97124 class t_ARG_04,
97125 class t_ARG_05,
97126 class t_ARG_06>
97127inline
97128Variant_Base<t_HEAD, t_TAIL_01,
97129 t_TAIL_02,
97130 t_TAIL_03,
97131 t_TAIL_04,
97132 t_TAIL_05,
97133 t_TAIL_06,
97134 t_TAIL_07,
97135 t_TAIL_08,
97136 t_TAIL_09,
97137 t_TAIL_10,
97138 BSLS_COMPILERFEATURES_FILLT( 8)
97139 >::Variant_Base(bsl::allocator_arg_t,
97140 allocator_type allocator,
97142 const t_ARG_01& arg_01,
97143 const t_ARG_02& arg_02,
97144 const t_ARG_03& arg_03,
97145 const t_ARG_04& arg_04,
97146 const t_ARG_05& arg_05,
97147 const t_ARG_06& arg_06)
97148: AllocBase(allocator)
97149, d_type(t_INDEX)
97150{
97151 typedef typename bsl::remove_cv<
97153 Alt_Type;
97154
97155 BloombergLP::bslma::ConstructionUtil::construct(
97156 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97157 AllocBase::mechanism(),
97158 arg_01,
97159 arg_02,
97160 arg_03,
97161 arg_04,
97162 arg_05,
97163 arg_06);
97164}
97165#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
97166
97167#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
97168template <class t_HEAD, class t_TAIL_01,
97169 class t_TAIL_02,
97170 class t_TAIL_03,
97171 class t_TAIL_04,
97172 class t_TAIL_05,
97173 class t_TAIL_06,
97174 class t_TAIL_07,
97175 class t_TAIL_08,
97176 class t_TAIL_09,
97177 class t_TAIL_10,
97178 class t_TAIL_11>
97179template <size_t t_INDEX,
97180 class t_ARG_01,
97181 class t_ARG_02,
97182 class t_ARG_03,
97183 class t_ARG_04,
97184 class t_ARG_05,
97185 class t_ARG_06>
97186inline
97187Variant_Base<t_HEAD, t_TAIL_01,
97188 t_TAIL_02,
97189 t_TAIL_03,
97190 t_TAIL_04,
97191 t_TAIL_05,
97192 t_TAIL_06,
97193 t_TAIL_07,
97194 t_TAIL_08,
97195 t_TAIL_09,
97196 t_TAIL_10,
97197 t_TAIL_11,
97198 BSLS_COMPILERFEATURES_FILLT( 7)
97199 >::Variant_Base(bsl::allocator_arg_t,
97200 allocator_type allocator,
97202 const t_ARG_01& arg_01,
97203 const t_ARG_02& arg_02,
97204 const t_ARG_03& arg_03,
97205 const t_ARG_04& arg_04,
97206 const t_ARG_05& arg_05,
97207 const t_ARG_06& arg_06)
97208: AllocBase(allocator)
97209, d_type(t_INDEX)
97210{
97211 typedef typename bsl::remove_cv<
97213 Alt_Type;
97214
97215 BloombergLP::bslma::ConstructionUtil::construct(
97216 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97217 AllocBase::mechanism(),
97218 arg_01,
97219 arg_02,
97220 arg_03,
97221 arg_04,
97222 arg_05,
97223 arg_06);
97224}
97225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
97226
97227#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
97228template <class t_HEAD, class t_TAIL_01,
97229 class t_TAIL_02,
97230 class t_TAIL_03,
97231 class t_TAIL_04,
97232 class t_TAIL_05,
97233 class t_TAIL_06,
97234 class t_TAIL_07,
97235 class t_TAIL_08,
97236 class t_TAIL_09,
97237 class t_TAIL_10,
97238 class t_TAIL_11,
97239 class t_TAIL_12>
97240template <size_t t_INDEX,
97241 class t_ARG_01,
97242 class t_ARG_02,
97243 class t_ARG_03,
97244 class t_ARG_04,
97245 class t_ARG_05,
97246 class t_ARG_06>
97247inline
97248Variant_Base<t_HEAD, t_TAIL_01,
97249 t_TAIL_02,
97250 t_TAIL_03,
97251 t_TAIL_04,
97252 t_TAIL_05,
97253 t_TAIL_06,
97254 t_TAIL_07,
97255 t_TAIL_08,
97256 t_TAIL_09,
97257 t_TAIL_10,
97258 t_TAIL_11,
97259 t_TAIL_12,
97260 BSLS_COMPILERFEATURES_FILLT( 6)
97261 >::Variant_Base(bsl::allocator_arg_t,
97262 allocator_type allocator,
97264 const t_ARG_01& arg_01,
97265 const t_ARG_02& arg_02,
97266 const t_ARG_03& arg_03,
97267 const t_ARG_04& arg_04,
97268 const t_ARG_05& arg_05,
97269 const t_ARG_06& arg_06)
97270: AllocBase(allocator)
97271, d_type(t_INDEX)
97272{
97273 typedef typename bsl::remove_cv<
97275 Alt_Type;
97276
97277 BloombergLP::bslma::ConstructionUtil::construct(
97278 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97279 AllocBase::mechanism(),
97280 arg_01,
97281 arg_02,
97282 arg_03,
97283 arg_04,
97284 arg_05,
97285 arg_06);
97286}
97287#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
97288
97289#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
97290template <class t_HEAD, class t_TAIL_01,
97291 class t_TAIL_02,
97292 class t_TAIL_03,
97293 class t_TAIL_04,
97294 class t_TAIL_05,
97295 class t_TAIL_06,
97296 class t_TAIL_07,
97297 class t_TAIL_08,
97298 class t_TAIL_09,
97299 class t_TAIL_10,
97300 class t_TAIL_11,
97301 class t_TAIL_12,
97302 class t_TAIL_13>
97303template <size_t t_INDEX,
97304 class t_ARG_01,
97305 class t_ARG_02,
97306 class t_ARG_03,
97307 class t_ARG_04,
97308 class t_ARG_05,
97309 class t_ARG_06>
97310inline
97311Variant_Base<t_HEAD, t_TAIL_01,
97312 t_TAIL_02,
97313 t_TAIL_03,
97314 t_TAIL_04,
97315 t_TAIL_05,
97316 t_TAIL_06,
97317 t_TAIL_07,
97318 t_TAIL_08,
97319 t_TAIL_09,
97320 t_TAIL_10,
97321 t_TAIL_11,
97322 t_TAIL_12,
97323 t_TAIL_13,
97324 BSLS_COMPILERFEATURES_FILLT( 5)
97325 >::Variant_Base(bsl::allocator_arg_t,
97326 allocator_type allocator,
97328 const t_ARG_01& arg_01,
97329 const t_ARG_02& arg_02,
97330 const t_ARG_03& arg_03,
97331 const t_ARG_04& arg_04,
97332 const t_ARG_05& arg_05,
97333 const t_ARG_06& arg_06)
97334: AllocBase(allocator)
97335, d_type(t_INDEX)
97336{
97337 typedef typename bsl::remove_cv<
97339 Alt_Type;
97340
97341 BloombergLP::bslma::ConstructionUtil::construct(
97342 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97343 AllocBase::mechanism(),
97344 arg_01,
97345 arg_02,
97346 arg_03,
97347 arg_04,
97348 arg_05,
97349 arg_06);
97350}
97351#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
97352
97353#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
97354template <class t_HEAD, class t_TAIL_01,
97355 class t_TAIL_02,
97356 class t_TAIL_03,
97357 class t_TAIL_04,
97358 class t_TAIL_05,
97359 class t_TAIL_06,
97360 class t_TAIL_07,
97361 class t_TAIL_08,
97362 class t_TAIL_09,
97363 class t_TAIL_10,
97364 class t_TAIL_11,
97365 class t_TAIL_12,
97366 class t_TAIL_13,
97367 class t_TAIL_14>
97368template <size_t t_INDEX,
97369 class t_ARG_01,
97370 class t_ARG_02,
97371 class t_ARG_03,
97372 class t_ARG_04,
97373 class t_ARG_05,
97374 class t_ARG_06>
97375inline
97376Variant_Base<t_HEAD, t_TAIL_01,
97377 t_TAIL_02,
97378 t_TAIL_03,
97379 t_TAIL_04,
97380 t_TAIL_05,
97381 t_TAIL_06,
97382 t_TAIL_07,
97383 t_TAIL_08,
97384 t_TAIL_09,
97385 t_TAIL_10,
97386 t_TAIL_11,
97387 t_TAIL_12,
97388 t_TAIL_13,
97389 t_TAIL_14,
97390 BSLS_COMPILERFEATURES_FILLT( 4)
97391 >::Variant_Base(bsl::allocator_arg_t,
97392 allocator_type allocator,
97394 const t_ARG_01& arg_01,
97395 const t_ARG_02& arg_02,
97396 const t_ARG_03& arg_03,
97397 const t_ARG_04& arg_04,
97398 const t_ARG_05& arg_05,
97399 const t_ARG_06& arg_06)
97400: AllocBase(allocator)
97401, d_type(t_INDEX)
97402{
97403 typedef typename bsl::remove_cv<
97405 Alt_Type;
97406
97407 BloombergLP::bslma::ConstructionUtil::construct(
97408 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97409 AllocBase::mechanism(),
97410 arg_01,
97411 arg_02,
97412 arg_03,
97413 arg_04,
97414 arg_05,
97415 arg_06);
97416}
97417#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
97418
97419#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
97420template <class t_HEAD, class t_TAIL_01,
97421 class t_TAIL_02,
97422 class t_TAIL_03,
97423 class t_TAIL_04,
97424 class t_TAIL_05,
97425 class t_TAIL_06,
97426 class t_TAIL_07,
97427 class t_TAIL_08,
97428 class t_TAIL_09,
97429 class t_TAIL_10,
97430 class t_TAIL_11,
97431 class t_TAIL_12,
97432 class t_TAIL_13,
97433 class t_TAIL_14,
97434 class t_TAIL_15>
97435template <size_t t_INDEX,
97436 class t_ARG_01,
97437 class t_ARG_02,
97438 class t_ARG_03,
97439 class t_ARG_04,
97440 class t_ARG_05,
97441 class t_ARG_06>
97442inline
97443Variant_Base<t_HEAD, t_TAIL_01,
97444 t_TAIL_02,
97445 t_TAIL_03,
97446 t_TAIL_04,
97447 t_TAIL_05,
97448 t_TAIL_06,
97449 t_TAIL_07,
97450 t_TAIL_08,
97451 t_TAIL_09,
97452 t_TAIL_10,
97453 t_TAIL_11,
97454 t_TAIL_12,
97455 t_TAIL_13,
97456 t_TAIL_14,
97457 t_TAIL_15,
97458 BSLS_COMPILERFEATURES_FILLT( 3)
97459 >::Variant_Base(bsl::allocator_arg_t,
97460 allocator_type allocator,
97462 const t_ARG_01& arg_01,
97463 const t_ARG_02& arg_02,
97464 const t_ARG_03& arg_03,
97465 const t_ARG_04& arg_04,
97466 const t_ARG_05& arg_05,
97467 const t_ARG_06& arg_06)
97468: AllocBase(allocator)
97469, d_type(t_INDEX)
97470{
97471 typedef typename bsl::remove_cv<
97473 Alt_Type;
97474
97475 BloombergLP::bslma::ConstructionUtil::construct(
97476 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97477 AllocBase::mechanism(),
97478 arg_01,
97479 arg_02,
97480 arg_03,
97481 arg_04,
97482 arg_05,
97483 arg_06);
97484}
97485#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
97486
97487#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
97488template <class t_HEAD, class t_TAIL_01,
97489 class t_TAIL_02,
97490 class t_TAIL_03,
97491 class t_TAIL_04,
97492 class t_TAIL_05,
97493 class t_TAIL_06,
97494 class t_TAIL_07,
97495 class t_TAIL_08,
97496 class t_TAIL_09,
97497 class t_TAIL_10,
97498 class t_TAIL_11,
97499 class t_TAIL_12,
97500 class t_TAIL_13,
97501 class t_TAIL_14,
97502 class t_TAIL_15,
97503 class t_TAIL_16>
97504template <size_t t_INDEX,
97505 class t_ARG_01,
97506 class t_ARG_02,
97507 class t_ARG_03,
97508 class t_ARG_04,
97509 class t_ARG_05,
97510 class t_ARG_06>
97511inline
97512Variant_Base<t_HEAD, t_TAIL_01,
97513 t_TAIL_02,
97514 t_TAIL_03,
97515 t_TAIL_04,
97516 t_TAIL_05,
97517 t_TAIL_06,
97518 t_TAIL_07,
97519 t_TAIL_08,
97520 t_TAIL_09,
97521 t_TAIL_10,
97522 t_TAIL_11,
97523 t_TAIL_12,
97524 t_TAIL_13,
97525 t_TAIL_14,
97526 t_TAIL_15,
97527 t_TAIL_16,
97528 BSLS_COMPILERFEATURES_FILLT( 2)
97529 >::Variant_Base(bsl::allocator_arg_t,
97530 allocator_type allocator,
97532 const t_ARG_01& arg_01,
97533 const t_ARG_02& arg_02,
97534 const t_ARG_03& arg_03,
97535 const t_ARG_04& arg_04,
97536 const t_ARG_05& arg_05,
97537 const t_ARG_06& arg_06)
97538: AllocBase(allocator)
97539, d_type(t_INDEX)
97540{
97541 typedef typename bsl::remove_cv<
97543 Alt_Type;
97544
97545 BloombergLP::bslma::ConstructionUtil::construct(
97546 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97547 AllocBase::mechanism(),
97548 arg_01,
97549 arg_02,
97550 arg_03,
97551 arg_04,
97552 arg_05,
97553 arg_06);
97554}
97555#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
97556
97557#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
97558template <class t_HEAD, class t_TAIL_01,
97559 class t_TAIL_02,
97560 class t_TAIL_03,
97561 class t_TAIL_04,
97562 class t_TAIL_05,
97563 class t_TAIL_06,
97564 class t_TAIL_07,
97565 class t_TAIL_08,
97566 class t_TAIL_09,
97567 class t_TAIL_10,
97568 class t_TAIL_11,
97569 class t_TAIL_12,
97570 class t_TAIL_13,
97571 class t_TAIL_14,
97572 class t_TAIL_15,
97573 class t_TAIL_16,
97574 class t_TAIL_17>
97575template <size_t t_INDEX,
97576 class t_ARG_01,
97577 class t_ARG_02,
97578 class t_ARG_03,
97579 class t_ARG_04,
97580 class t_ARG_05,
97581 class t_ARG_06>
97582inline
97583Variant_Base<t_HEAD, t_TAIL_01,
97584 t_TAIL_02,
97585 t_TAIL_03,
97586 t_TAIL_04,
97587 t_TAIL_05,
97588 t_TAIL_06,
97589 t_TAIL_07,
97590 t_TAIL_08,
97591 t_TAIL_09,
97592 t_TAIL_10,
97593 t_TAIL_11,
97594 t_TAIL_12,
97595 t_TAIL_13,
97596 t_TAIL_14,
97597 t_TAIL_15,
97598 t_TAIL_16,
97599 t_TAIL_17,
97600 BSLS_COMPILERFEATURES_FILLT( 1)
97601 >::Variant_Base(bsl::allocator_arg_t,
97602 allocator_type allocator,
97604 const t_ARG_01& arg_01,
97605 const t_ARG_02& arg_02,
97606 const t_ARG_03& arg_03,
97607 const t_ARG_04& arg_04,
97608 const t_ARG_05& arg_05,
97609 const t_ARG_06& arg_06)
97610: AllocBase(allocator)
97611, d_type(t_INDEX)
97612{
97613 typedef typename bsl::remove_cv<
97615 Alt_Type;
97616
97617 BloombergLP::bslma::ConstructionUtil::construct(
97618 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97619 AllocBase::mechanism(),
97620 arg_01,
97621 arg_02,
97622 arg_03,
97623 arg_04,
97624 arg_05,
97625 arg_06);
97626}
97627#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
97628
97629#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
97630template <class t_HEAD, class t_TAIL_01,
97631 class t_TAIL_02,
97632 class t_TAIL_03,
97633 class t_TAIL_04,
97634 class t_TAIL_05,
97635 class t_TAIL_06,
97636 class t_TAIL_07,
97637 class t_TAIL_08,
97638 class t_TAIL_09,
97639 class t_TAIL_10,
97640 class t_TAIL_11,
97641 class t_TAIL_12,
97642 class t_TAIL_13,
97643 class t_TAIL_14,
97644 class t_TAIL_15,
97645 class t_TAIL_16,
97646 class t_TAIL_17,
97647 class t_TAIL_18>
97648template <size_t t_INDEX,
97649 class t_ARG_01,
97650 class t_ARG_02,
97651 class t_ARG_03,
97652 class t_ARG_04,
97653 class t_ARG_05,
97654 class t_ARG_06>
97655inline
97656Variant_Base<t_HEAD, t_TAIL_01,
97657 t_TAIL_02,
97658 t_TAIL_03,
97659 t_TAIL_04,
97660 t_TAIL_05,
97661 t_TAIL_06,
97662 t_TAIL_07,
97663 t_TAIL_08,
97664 t_TAIL_09,
97665 t_TAIL_10,
97666 t_TAIL_11,
97667 t_TAIL_12,
97668 t_TAIL_13,
97669 t_TAIL_14,
97670 t_TAIL_15,
97671 t_TAIL_16,
97672 t_TAIL_17,
97673 t_TAIL_18,
97674 BSLS_COMPILERFEATURES_FILLT( 0)
97675 >::Variant_Base(bsl::allocator_arg_t,
97676 allocator_type allocator,
97678 const t_ARG_01& arg_01,
97679 const t_ARG_02& arg_02,
97680 const t_ARG_03& arg_03,
97681 const t_ARG_04& arg_04,
97682 const t_ARG_05& arg_05,
97683 const t_ARG_06& arg_06)
97684: AllocBase(allocator)
97685, d_type(t_INDEX)
97686{
97687 typedef typename bsl::remove_cv<
97689 Alt_Type;
97690
97691 BloombergLP::bslma::ConstructionUtil::construct(
97692 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97693 AllocBase::mechanism(),
97694 arg_01,
97695 arg_02,
97696 arg_03,
97697 arg_04,
97698 arg_05,
97699 arg_06);
97700}
97701#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
97702
97703
97704#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
97705template <class t_HEAD>
97706template <size_t t_INDEX,
97707 class t_ARG_01,
97708 class t_ARG_02,
97709 class t_ARG_03,
97710 class t_ARG_04,
97711 class t_ARG_05,
97712 class t_ARG_06,
97713 class t_ARG_07>
97714inline
97715Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
97716 >::Variant_Base(bsl::allocator_arg_t,
97717 allocator_type allocator,
97719 const t_ARG_01& arg_01,
97720 const t_ARG_02& arg_02,
97721 const t_ARG_03& arg_03,
97722 const t_ARG_04& arg_04,
97723 const t_ARG_05& arg_05,
97724 const t_ARG_06& arg_06,
97725 const t_ARG_07& arg_07)
97726: AllocBase(allocator)
97727, d_type(t_INDEX)
97728{
97729 typedef typename bsl::remove_cv<
97731 Alt_Type;
97732
97733 BloombergLP::bslma::ConstructionUtil::construct(
97734 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97735 AllocBase::mechanism(),
97736 arg_01,
97737 arg_02,
97738 arg_03,
97739 arg_04,
97740 arg_05,
97741 arg_06,
97742 arg_07);
97743}
97744#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
97745
97746#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
97747template <class t_HEAD, class t_TAIL_01>
97748template <size_t t_INDEX,
97749 class t_ARG_01,
97750 class t_ARG_02,
97751 class t_ARG_03,
97752 class t_ARG_04,
97753 class t_ARG_05,
97754 class t_ARG_06,
97755 class t_ARG_07>
97756inline
97757Variant_Base<t_HEAD, t_TAIL_01,
97758 BSLS_COMPILERFEATURES_FILLT(17)
97759 >::Variant_Base(bsl::allocator_arg_t,
97760 allocator_type allocator,
97762 const t_ARG_01& arg_01,
97763 const t_ARG_02& arg_02,
97764 const t_ARG_03& arg_03,
97765 const t_ARG_04& arg_04,
97766 const t_ARG_05& arg_05,
97767 const t_ARG_06& arg_06,
97768 const t_ARG_07& arg_07)
97769: AllocBase(allocator)
97770, d_type(t_INDEX)
97771{
97772 typedef typename bsl::remove_cv<
97774 Alt_Type;
97775
97776 BloombergLP::bslma::ConstructionUtil::construct(
97777 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97778 AllocBase::mechanism(),
97779 arg_01,
97780 arg_02,
97781 arg_03,
97782 arg_04,
97783 arg_05,
97784 arg_06,
97785 arg_07);
97786}
97787#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
97788
97789#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
97790template <class t_HEAD, class t_TAIL_01,
97791 class t_TAIL_02>
97792template <size_t t_INDEX,
97793 class t_ARG_01,
97794 class t_ARG_02,
97795 class t_ARG_03,
97796 class t_ARG_04,
97797 class t_ARG_05,
97798 class t_ARG_06,
97799 class t_ARG_07>
97800inline
97801Variant_Base<t_HEAD, t_TAIL_01,
97802 t_TAIL_02,
97803 BSLS_COMPILERFEATURES_FILLT(16)
97804 >::Variant_Base(bsl::allocator_arg_t,
97805 allocator_type allocator,
97807 const t_ARG_01& arg_01,
97808 const t_ARG_02& arg_02,
97809 const t_ARG_03& arg_03,
97810 const t_ARG_04& arg_04,
97811 const t_ARG_05& arg_05,
97812 const t_ARG_06& arg_06,
97813 const t_ARG_07& arg_07)
97814: AllocBase(allocator)
97815, d_type(t_INDEX)
97816{
97817 typedef typename bsl::remove_cv<
97819 Alt_Type;
97820
97821 BloombergLP::bslma::ConstructionUtil::construct(
97822 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97823 AllocBase::mechanism(),
97824 arg_01,
97825 arg_02,
97826 arg_03,
97827 arg_04,
97828 arg_05,
97829 arg_06,
97830 arg_07);
97831}
97832#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
97833
97834#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
97835template <class t_HEAD, class t_TAIL_01,
97836 class t_TAIL_02,
97837 class t_TAIL_03>
97838template <size_t t_INDEX,
97839 class t_ARG_01,
97840 class t_ARG_02,
97841 class t_ARG_03,
97842 class t_ARG_04,
97843 class t_ARG_05,
97844 class t_ARG_06,
97845 class t_ARG_07>
97846inline
97847Variant_Base<t_HEAD, t_TAIL_01,
97848 t_TAIL_02,
97849 t_TAIL_03,
97850 BSLS_COMPILERFEATURES_FILLT(15)
97851 >::Variant_Base(bsl::allocator_arg_t,
97852 allocator_type allocator,
97854 const t_ARG_01& arg_01,
97855 const t_ARG_02& arg_02,
97856 const t_ARG_03& arg_03,
97857 const t_ARG_04& arg_04,
97858 const t_ARG_05& arg_05,
97859 const t_ARG_06& arg_06,
97860 const t_ARG_07& arg_07)
97861: AllocBase(allocator)
97862, d_type(t_INDEX)
97863{
97864 typedef typename bsl::remove_cv<
97866 Alt_Type;
97867
97868 BloombergLP::bslma::ConstructionUtil::construct(
97869 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97870 AllocBase::mechanism(),
97871 arg_01,
97872 arg_02,
97873 arg_03,
97874 arg_04,
97875 arg_05,
97876 arg_06,
97877 arg_07);
97878}
97879#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
97880
97881#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
97882template <class t_HEAD, class t_TAIL_01,
97883 class t_TAIL_02,
97884 class t_TAIL_03,
97885 class t_TAIL_04>
97886template <size_t t_INDEX,
97887 class t_ARG_01,
97888 class t_ARG_02,
97889 class t_ARG_03,
97890 class t_ARG_04,
97891 class t_ARG_05,
97892 class t_ARG_06,
97893 class t_ARG_07>
97894inline
97895Variant_Base<t_HEAD, t_TAIL_01,
97896 t_TAIL_02,
97897 t_TAIL_03,
97898 t_TAIL_04,
97899 BSLS_COMPILERFEATURES_FILLT(14)
97900 >::Variant_Base(bsl::allocator_arg_t,
97901 allocator_type allocator,
97903 const t_ARG_01& arg_01,
97904 const t_ARG_02& arg_02,
97905 const t_ARG_03& arg_03,
97906 const t_ARG_04& arg_04,
97907 const t_ARG_05& arg_05,
97908 const t_ARG_06& arg_06,
97909 const t_ARG_07& arg_07)
97910: AllocBase(allocator)
97911, d_type(t_INDEX)
97912{
97913 typedef typename bsl::remove_cv<
97915 Alt_Type;
97916
97917 BloombergLP::bslma::ConstructionUtil::construct(
97918 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97919 AllocBase::mechanism(),
97920 arg_01,
97921 arg_02,
97922 arg_03,
97923 arg_04,
97924 arg_05,
97925 arg_06,
97926 arg_07);
97927}
97928#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
97929
97930#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
97931template <class t_HEAD, class t_TAIL_01,
97932 class t_TAIL_02,
97933 class t_TAIL_03,
97934 class t_TAIL_04,
97935 class t_TAIL_05>
97936template <size_t t_INDEX,
97937 class t_ARG_01,
97938 class t_ARG_02,
97939 class t_ARG_03,
97940 class t_ARG_04,
97941 class t_ARG_05,
97942 class t_ARG_06,
97943 class t_ARG_07>
97944inline
97945Variant_Base<t_HEAD, t_TAIL_01,
97946 t_TAIL_02,
97947 t_TAIL_03,
97948 t_TAIL_04,
97949 t_TAIL_05,
97950 BSLS_COMPILERFEATURES_FILLT(13)
97951 >::Variant_Base(bsl::allocator_arg_t,
97952 allocator_type allocator,
97954 const t_ARG_01& arg_01,
97955 const t_ARG_02& arg_02,
97956 const t_ARG_03& arg_03,
97957 const t_ARG_04& arg_04,
97958 const t_ARG_05& arg_05,
97959 const t_ARG_06& arg_06,
97960 const t_ARG_07& arg_07)
97961: AllocBase(allocator)
97962, d_type(t_INDEX)
97963{
97964 typedef typename bsl::remove_cv<
97966 Alt_Type;
97967
97968 BloombergLP::bslma::ConstructionUtil::construct(
97969 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
97970 AllocBase::mechanism(),
97971 arg_01,
97972 arg_02,
97973 arg_03,
97974 arg_04,
97975 arg_05,
97976 arg_06,
97977 arg_07);
97978}
97979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
97980
97981#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
97982template <class t_HEAD, class t_TAIL_01,
97983 class t_TAIL_02,
97984 class t_TAIL_03,
97985 class t_TAIL_04,
97986 class t_TAIL_05,
97987 class t_TAIL_06>
97988template <size_t t_INDEX,
97989 class t_ARG_01,
97990 class t_ARG_02,
97991 class t_ARG_03,
97992 class t_ARG_04,
97993 class t_ARG_05,
97994 class t_ARG_06,
97995 class t_ARG_07>
97996inline
97997Variant_Base<t_HEAD, t_TAIL_01,
97998 t_TAIL_02,
97999 t_TAIL_03,
98000 t_TAIL_04,
98001 t_TAIL_05,
98002 t_TAIL_06,
98003 BSLS_COMPILERFEATURES_FILLT(12)
98004 >::Variant_Base(bsl::allocator_arg_t,
98005 allocator_type allocator,
98007 const t_ARG_01& arg_01,
98008 const t_ARG_02& arg_02,
98009 const t_ARG_03& arg_03,
98010 const t_ARG_04& arg_04,
98011 const t_ARG_05& arg_05,
98012 const t_ARG_06& arg_06,
98013 const t_ARG_07& arg_07)
98014: AllocBase(allocator)
98015, d_type(t_INDEX)
98016{
98017 typedef typename bsl::remove_cv<
98019 Alt_Type;
98020
98021 BloombergLP::bslma::ConstructionUtil::construct(
98022 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98023 AllocBase::mechanism(),
98024 arg_01,
98025 arg_02,
98026 arg_03,
98027 arg_04,
98028 arg_05,
98029 arg_06,
98030 arg_07);
98031}
98032#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
98033
98034#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
98035template <class t_HEAD, class t_TAIL_01,
98036 class t_TAIL_02,
98037 class t_TAIL_03,
98038 class t_TAIL_04,
98039 class t_TAIL_05,
98040 class t_TAIL_06,
98041 class t_TAIL_07>
98042template <size_t t_INDEX,
98043 class t_ARG_01,
98044 class t_ARG_02,
98045 class t_ARG_03,
98046 class t_ARG_04,
98047 class t_ARG_05,
98048 class t_ARG_06,
98049 class t_ARG_07>
98050inline
98051Variant_Base<t_HEAD, t_TAIL_01,
98052 t_TAIL_02,
98053 t_TAIL_03,
98054 t_TAIL_04,
98055 t_TAIL_05,
98056 t_TAIL_06,
98057 t_TAIL_07,
98058 BSLS_COMPILERFEATURES_FILLT(11)
98059 >::Variant_Base(bsl::allocator_arg_t,
98060 allocator_type allocator,
98062 const t_ARG_01& arg_01,
98063 const t_ARG_02& arg_02,
98064 const t_ARG_03& arg_03,
98065 const t_ARG_04& arg_04,
98066 const t_ARG_05& arg_05,
98067 const t_ARG_06& arg_06,
98068 const t_ARG_07& arg_07)
98069: AllocBase(allocator)
98070, d_type(t_INDEX)
98071{
98072 typedef typename bsl::remove_cv<
98074 Alt_Type;
98075
98076 BloombergLP::bslma::ConstructionUtil::construct(
98077 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98078 AllocBase::mechanism(),
98079 arg_01,
98080 arg_02,
98081 arg_03,
98082 arg_04,
98083 arg_05,
98084 arg_06,
98085 arg_07);
98086}
98087#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
98088
98089#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
98090template <class t_HEAD, class t_TAIL_01,
98091 class t_TAIL_02,
98092 class t_TAIL_03,
98093 class t_TAIL_04,
98094 class t_TAIL_05,
98095 class t_TAIL_06,
98096 class t_TAIL_07,
98097 class t_TAIL_08>
98098template <size_t t_INDEX,
98099 class t_ARG_01,
98100 class t_ARG_02,
98101 class t_ARG_03,
98102 class t_ARG_04,
98103 class t_ARG_05,
98104 class t_ARG_06,
98105 class t_ARG_07>
98106inline
98107Variant_Base<t_HEAD, t_TAIL_01,
98108 t_TAIL_02,
98109 t_TAIL_03,
98110 t_TAIL_04,
98111 t_TAIL_05,
98112 t_TAIL_06,
98113 t_TAIL_07,
98114 t_TAIL_08,
98115 BSLS_COMPILERFEATURES_FILLT(10)
98116 >::Variant_Base(bsl::allocator_arg_t,
98117 allocator_type allocator,
98119 const t_ARG_01& arg_01,
98120 const t_ARG_02& arg_02,
98121 const t_ARG_03& arg_03,
98122 const t_ARG_04& arg_04,
98123 const t_ARG_05& arg_05,
98124 const t_ARG_06& arg_06,
98125 const t_ARG_07& arg_07)
98126: AllocBase(allocator)
98127, d_type(t_INDEX)
98128{
98129 typedef typename bsl::remove_cv<
98131 Alt_Type;
98132
98133 BloombergLP::bslma::ConstructionUtil::construct(
98134 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98135 AllocBase::mechanism(),
98136 arg_01,
98137 arg_02,
98138 arg_03,
98139 arg_04,
98140 arg_05,
98141 arg_06,
98142 arg_07);
98143}
98144#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
98145
98146#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
98147template <class t_HEAD, class t_TAIL_01,
98148 class t_TAIL_02,
98149 class t_TAIL_03,
98150 class t_TAIL_04,
98151 class t_TAIL_05,
98152 class t_TAIL_06,
98153 class t_TAIL_07,
98154 class t_TAIL_08,
98155 class t_TAIL_09>
98156template <size_t t_INDEX,
98157 class t_ARG_01,
98158 class t_ARG_02,
98159 class t_ARG_03,
98160 class t_ARG_04,
98161 class t_ARG_05,
98162 class t_ARG_06,
98163 class t_ARG_07>
98164inline
98165Variant_Base<t_HEAD, t_TAIL_01,
98166 t_TAIL_02,
98167 t_TAIL_03,
98168 t_TAIL_04,
98169 t_TAIL_05,
98170 t_TAIL_06,
98171 t_TAIL_07,
98172 t_TAIL_08,
98173 t_TAIL_09,
98174 BSLS_COMPILERFEATURES_FILLT( 9)
98175 >::Variant_Base(bsl::allocator_arg_t,
98176 allocator_type allocator,
98178 const t_ARG_01& arg_01,
98179 const t_ARG_02& arg_02,
98180 const t_ARG_03& arg_03,
98181 const t_ARG_04& arg_04,
98182 const t_ARG_05& arg_05,
98183 const t_ARG_06& arg_06,
98184 const t_ARG_07& arg_07)
98185: AllocBase(allocator)
98186, d_type(t_INDEX)
98187{
98188 typedef typename bsl::remove_cv<
98190 Alt_Type;
98191
98192 BloombergLP::bslma::ConstructionUtil::construct(
98193 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98194 AllocBase::mechanism(),
98195 arg_01,
98196 arg_02,
98197 arg_03,
98198 arg_04,
98199 arg_05,
98200 arg_06,
98201 arg_07);
98202}
98203#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
98204
98205#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
98206template <class t_HEAD, class t_TAIL_01,
98207 class t_TAIL_02,
98208 class t_TAIL_03,
98209 class t_TAIL_04,
98210 class t_TAIL_05,
98211 class t_TAIL_06,
98212 class t_TAIL_07,
98213 class t_TAIL_08,
98214 class t_TAIL_09,
98215 class t_TAIL_10>
98216template <size_t t_INDEX,
98217 class t_ARG_01,
98218 class t_ARG_02,
98219 class t_ARG_03,
98220 class t_ARG_04,
98221 class t_ARG_05,
98222 class t_ARG_06,
98223 class t_ARG_07>
98224inline
98225Variant_Base<t_HEAD, t_TAIL_01,
98226 t_TAIL_02,
98227 t_TAIL_03,
98228 t_TAIL_04,
98229 t_TAIL_05,
98230 t_TAIL_06,
98231 t_TAIL_07,
98232 t_TAIL_08,
98233 t_TAIL_09,
98234 t_TAIL_10,
98235 BSLS_COMPILERFEATURES_FILLT( 8)
98236 >::Variant_Base(bsl::allocator_arg_t,
98237 allocator_type allocator,
98239 const t_ARG_01& arg_01,
98240 const t_ARG_02& arg_02,
98241 const t_ARG_03& arg_03,
98242 const t_ARG_04& arg_04,
98243 const t_ARG_05& arg_05,
98244 const t_ARG_06& arg_06,
98245 const t_ARG_07& arg_07)
98246: AllocBase(allocator)
98247, d_type(t_INDEX)
98248{
98249 typedef typename bsl::remove_cv<
98251 Alt_Type;
98252
98253 BloombergLP::bslma::ConstructionUtil::construct(
98254 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98255 AllocBase::mechanism(),
98256 arg_01,
98257 arg_02,
98258 arg_03,
98259 arg_04,
98260 arg_05,
98261 arg_06,
98262 arg_07);
98263}
98264#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
98265
98266#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
98267template <class t_HEAD, class t_TAIL_01,
98268 class t_TAIL_02,
98269 class t_TAIL_03,
98270 class t_TAIL_04,
98271 class t_TAIL_05,
98272 class t_TAIL_06,
98273 class t_TAIL_07,
98274 class t_TAIL_08,
98275 class t_TAIL_09,
98276 class t_TAIL_10,
98277 class t_TAIL_11>
98278template <size_t t_INDEX,
98279 class t_ARG_01,
98280 class t_ARG_02,
98281 class t_ARG_03,
98282 class t_ARG_04,
98283 class t_ARG_05,
98284 class t_ARG_06,
98285 class t_ARG_07>
98286inline
98287Variant_Base<t_HEAD, t_TAIL_01,
98288 t_TAIL_02,
98289 t_TAIL_03,
98290 t_TAIL_04,
98291 t_TAIL_05,
98292 t_TAIL_06,
98293 t_TAIL_07,
98294 t_TAIL_08,
98295 t_TAIL_09,
98296 t_TAIL_10,
98297 t_TAIL_11,
98298 BSLS_COMPILERFEATURES_FILLT( 7)
98299 >::Variant_Base(bsl::allocator_arg_t,
98300 allocator_type allocator,
98302 const t_ARG_01& arg_01,
98303 const t_ARG_02& arg_02,
98304 const t_ARG_03& arg_03,
98305 const t_ARG_04& arg_04,
98306 const t_ARG_05& arg_05,
98307 const t_ARG_06& arg_06,
98308 const t_ARG_07& arg_07)
98309: AllocBase(allocator)
98310, d_type(t_INDEX)
98311{
98312 typedef typename bsl::remove_cv<
98314 Alt_Type;
98315
98316 BloombergLP::bslma::ConstructionUtil::construct(
98317 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98318 AllocBase::mechanism(),
98319 arg_01,
98320 arg_02,
98321 arg_03,
98322 arg_04,
98323 arg_05,
98324 arg_06,
98325 arg_07);
98326}
98327#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
98328
98329#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
98330template <class t_HEAD, class t_TAIL_01,
98331 class t_TAIL_02,
98332 class t_TAIL_03,
98333 class t_TAIL_04,
98334 class t_TAIL_05,
98335 class t_TAIL_06,
98336 class t_TAIL_07,
98337 class t_TAIL_08,
98338 class t_TAIL_09,
98339 class t_TAIL_10,
98340 class t_TAIL_11,
98341 class t_TAIL_12>
98342template <size_t t_INDEX,
98343 class t_ARG_01,
98344 class t_ARG_02,
98345 class t_ARG_03,
98346 class t_ARG_04,
98347 class t_ARG_05,
98348 class t_ARG_06,
98349 class t_ARG_07>
98350inline
98351Variant_Base<t_HEAD, t_TAIL_01,
98352 t_TAIL_02,
98353 t_TAIL_03,
98354 t_TAIL_04,
98355 t_TAIL_05,
98356 t_TAIL_06,
98357 t_TAIL_07,
98358 t_TAIL_08,
98359 t_TAIL_09,
98360 t_TAIL_10,
98361 t_TAIL_11,
98362 t_TAIL_12,
98363 BSLS_COMPILERFEATURES_FILLT( 6)
98364 >::Variant_Base(bsl::allocator_arg_t,
98365 allocator_type allocator,
98367 const t_ARG_01& arg_01,
98368 const t_ARG_02& arg_02,
98369 const t_ARG_03& arg_03,
98370 const t_ARG_04& arg_04,
98371 const t_ARG_05& arg_05,
98372 const t_ARG_06& arg_06,
98373 const t_ARG_07& arg_07)
98374: AllocBase(allocator)
98375, d_type(t_INDEX)
98376{
98377 typedef typename bsl::remove_cv<
98379 Alt_Type;
98380
98381 BloombergLP::bslma::ConstructionUtil::construct(
98382 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98383 AllocBase::mechanism(),
98384 arg_01,
98385 arg_02,
98386 arg_03,
98387 arg_04,
98388 arg_05,
98389 arg_06,
98390 arg_07);
98391}
98392#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
98393
98394#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
98395template <class t_HEAD, class t_TAIL_01,
98396 class t_TAIL_02,
98397 class t_TAIL_03,
98398 class t_TAIL_04,
98399 class t_TAIL_05,
98400 class t_TAIL_06,
98401 class t_TAIL_07,
98402 class t_TAIL_08,
98403 class t_TAIL_09,
98404 class t_TAIL_10,
98405 class t_TAIL_11,
98406 class t_TAIL_12,
98407 class t_TAIL_13>
98408template <size_t t_INDEX,
98409 class t_ARG_01,
98410 class t_ARG_02,
98411 class t_ARG_03,
98412 class t_ARG_04,
98413 class t_ARG_05,
98414 class t_ARG_06,
98415 class t_ARG_07>
98416inline
98417Variant_Base<t_HEAD, t_TAIL_01,
98418 t_TAIL_02,
98419 t_TAIL_03,
98420 t_TAIL_04,
98421 t_TAIL_05,
98422 t_TAIL_06,
98423 t_TAIL_07,
98424 t_TAIL_08,
98425 t_TAIL_09,
98426 t_TAIL_10,
98427 t_TAIL_11,
98428 t_TAIL_12,
98429 t_TAIL_13,
98430 BSLS_COMPILERFEATURES_FILLT( 5)
98431 >::Variant_Base(bsl::allocator_arg_t,
98432 allocator_type allocator,
98434 const t_ARG_01& arg_01,
98435 const t_ARG_02& arg_02,
98436 const t_ARG_03& arg_03,
98437 const t_ARG_04& arg_04,
98438 const t_ARG_05& arg_05,
98439 const t_ARG_06& arg_06,
98440 const t_ARG_07& arg_07)
98441: AllocBase(allocator)
98442, d_type(t_INDEX)
98443{
98444 typedef typename bsl::remove_cv<
98446 Alt_Type;
98447
98448 BloombergLP::bslma::ConstructionUtil::construct(
98449 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98450 AllocBase::mechanism(),
98451 arg_01,
98452 arg_02,
98453 arg_03,
98454 arg_04,
98455 arg_05,
98456 arg_06,
98457 arg_07);
98458}
98459#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
98460
98461#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
98462template <class t_HEAD, class t_TAIL_01,
98463 class t_TAIL_02,
98464 class t_TAIL_03,
98465 class t_TAIL_04,
98466 class t_TAIL_05,
98467 class t_TAIL_06,
98468 class t_TAIL_07,
98469 class t_TAIL_08,
98470 class t_TAIL_09,
98471 class t_TAIL_10,
98472 class t_TAIL_11,
98473 class t_TAIL_12,
98474 class t_TAIL_13,
98475 class t_TAIL_14>
98476template <size_t t_INDEX,
98477 class t_ARG_01,
98478 class t_ARG_02,
98479 class t_ARG_03,
98480 class t_ARG_04,
98481 class t_ARG_05,
98482 class t_ARG_06,
98483 class t_ARG_07>
98484inline
98485Variant_Base<t_HEAD, t_TAIL_01,
98486 t_TAIL_02,
98487 t_TAIL_03,
98488 t_TAIL_04,
98489 t_TAIL_05,
98490 t_TAIL_06,
98491 t_TAIL_07,
98492 t_TAIL_08,
98493 t_TAIL_09,
98494 t_TAIL_10,
98495 t_TAIL_11,
98496 t_TAIL_12,
98497 t_TAIL_13,
98498 t_TAIL_14,
98499 BSLS_COMPILERFEATURES_FILLT( 4)
98500 >::Variant_Base(bsl::allocator_arg_t,
98501 allocator_type allocator,
98503 const t_ARG_01& arg_01,
98504 const t_ARG_02& arg_02,
98505 const t_ARG_03& arg_03,
98506 const t_ARG_04& arg_04,
98507 const t_ARG_05& arg_05,
98508 const t_ARG_06& arg_06,
98509 const t_ARG_07& arg_07)
98510: AllocBase(allocator)
98511, d_type(t_INDEX)
98512{
98513 typedef typename bsl::remove_cv<
98515 Alt_Type;
98516
98517 BloombergLP::bslma::ConstructionUtil::construct(
98518 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98519 AllocBase::mechanism(),
98520 arg_01,
98521 arg_02,
98522 arg_03,
98523 arg_04,
98524 arg_05,
98525 arg_06,
98526 arg_07);
98527}
98528#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
98529
98530#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
98531template <class t_HEAD, class t_TAIL_01,
98532 class t_TAIL_02,
98533 class t_TAIL_03,
98534 class t_TAIL_04,
98535 class t_TAIL_05,
98536 class t_TAIL_06,
98537 class t_TAIL_07,
98538 class t_TAIL_08,
98539 class t_TAIL_09,
98540 class t_TAIL_10,
98541 class t_TAIL_11,
98542 class t_TAIL_12,
98543 class t_TAIL_13,
98544 class t_TAIL_14,
98545 class t_TAIL_15>
98546template <size_t t_INDEX,
98547 class t_ARG_01,
98548 class t_ARG_02,
98549 class t_ARG_03,
98550 class t_ARG_04,
98551 class t_ARG_05,
98552 class t_ARG_06,
98553 class t_ARG_07>
98554inline
98555Variant_Base<t_HEAD, t_TAIL_01,
98556 t_TAIL_02,
98557 t_TAIL_03,
98558 t_TAIL_04,
98559 t_TAIL_05,
98560 t_TAIL_06,
98561 t_TAIL_07,
98562 t_TAIL_08,
98563 t_TAIL_09,
98564 t_TAIL_10,
98565 t_TAIL_11,
98566 t_TAIL_12,
98567 t_TAIL_13,
98568 t_TAIL_14,
98569 t_TAIL_15,
98570 BSLS_COMPILERFEATURES_FILLT( 3)
98571 >::Variant_Base(bsl::allocator_arg_t,
98572 allocator_type allocator,
98574 const t_ARG_01& arg_01,
98575 const t_ARG_02& arg_02,
98576 const t_ARG_03& arg_03,
98577 const t_ARG_04& arg_04,
98578 const t_ARG_05& arg_05,
98579 const t_ARG_06& arg_06,
98580 const t_ARG_07& arg_07)
98581: AllocBase(allocator)
98582, d_type(t_INDEX)
98583{
98584 typedef typename bsl::remove_cv<
98586 Alt_Type;
98587
98588 BloombergLP::bslma::ConstructionUtil::construct(
98589 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98590 AllocBase::mechanism(),
98591 arg_01,
98592 arg_02,
98593 arg_03,
98594 arg_04,
98595 arg_05,
98596 arg_06,
98597 arg_07);
98598}
98599#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
98600
98601#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
98602template <class t_HEAD, class t_TAIL_01,
98603 class t_TAIL_02,
98604 class t_TAIL_03,
98605 class t_TAIL_04,
98606 class t_TAIL_05,
98607 class t_TAIL_06,
98608 class t_TAIL_07,
98609 class t_TAIL_08,
98610 class t_TAIL_09,
98611 class t_TAIL_10,
98612 class t_TAIL_11,
98613 class t_TAIL_12,
98614 class t_TAIL_13,
98615 class t_TAIL_14,
98616 class t_TAIL_15,
98617 class t_TAIL_16>
98618template <size_t t_INDEX,
98619 class t_ARG_01,
98620 class t_ARG_02,
98621 class t_ARG_03,
98622 class t_ARG_04,
98623 class t_ARG_05,
98624 class t_ARG_06,
98625 class t_ARG_07>
98626inline
98627Variant_Base<t_HEAD, t_TAIL_01,
98628 t_TAIL_02,
98629 t_TAIL_03,
98630 t_TAIL_04,
98631 t_TAIL_05,
98632 t_TAIL_06,
98633 t_TAIL_07,
98634 t_TAIL_08,
98635 t_TAIL_09,
98636 t_TAIL_10,
98637 t_TAIL_11,
98638 t_TAIL_12,
98639 t_TAIL_13,
98640 t_TAIL_14,
98641 t_TAIL_15,
98642 t_TAIL_16,
98643 BSLS_COMPILERFEATURES_FILLT( 2)
98644 >::Variant_Base(bsl::allocator_arg_t,
98645 allocator_type allocator,
98647 const t_ARG_01& arg_01,
98648 const t_ARG_02& arg_02,
98649 const t_ARG_03& arg_03,
98650 const t_ARG_04& arg_04,
98651 const t_ARG_05& arg_05,
98652 const t_ARG_06& arg_06,
98653 const t_ARG_07& arg_07)
98654: AllocBase(allocator)
98655, d_type(t_INDEX)
98656{
98657 typedef typename bsl::remove_cv<
98659 Alt_Type;
98660
98661 BloombergLP::bslma::ConstructionUtil::construct(
98662 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98663 AllocBase::mechanism(),
98664 arg_01,
98665 arg_02,
98666 arg_03,
98667 arg_04,
98668 arg_05,
98669 arg_06,
98670 arg_07);
98671}
98672#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
98673
98674#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
98675template <class t_HEAD, class t_TAIL_01,
98676 class t_TAIL_02,
98677 class t_TAIL_03,
98678 class t_TAIL_04,
98679 class t_TAIL_05,
98680 class t_TAIL_06,
98681 class t_TAIL_07,
98682 class t_TAIL_08,
98683 class t_TAIL_09,
98684 class t_TAIL_10,
98685 class t_TAIL_11,
98686 class t_TAIL_12,
98687 class t_TAIL_13,
98688 class t_TAIL_14,
98689 class t_TAIL_15,
98690 class t_TAIL_16,
98691 class t_TAIL_17>
98692template <size_t t_INDEX,
98693 class t_ARG_01,
98694 class t_ARG_02,
98695 class t_ARG_03,
98696 class t_ARG_04,
98697 class t_ARG_05,
98698 class t_ARG_06,
98699 class t_ARG_07>
98700inline
98701Variant_Base<t_HEAD, t_TAIL_01,
98702 t_TAIL_02,
98703 t_TAIL_03,
98704 t_TAIL_04,
98705 t_TAIL_05,
98706 t_TAIL_06,
98707 t_TAIL_07,
98708 t_TAIL_08,
98709 t_TAIL_09,
98710 t_TAIL_10,
98711 t_TAIL_11,
98712 t_TAIL_12,
98713 t_TAIL_13,
98714 t_TAIL_14,
98715 t_TAIL_15,
98716 t_TAIL_16,
98717 t_TAIL_17,
98718 BSLS_COMPILERFEATURES_FILLT( 1)
98719 >::Variant_Base(bsl::allocator_arg_t,
98720 allocator_type allocator,
98722 const t_ARG_01& arg_01,
98723 const t_ARG_02& arg_02,
98724 const t_ARG_03& arg_03,
98725 const t_ARG_04& arg_04,
98726 const t_ARG_05& arg_05,
98727 const t_ARG_06& arg_06,
98728 const t_ARG_07& arg_07)
98729: AllocBase(allocator)
98730, d_type(t_INDEX)
98731{
98732 typedef typename bsl::remove_cv<
98734 Alt_Type;
98735
98736 BloombergLP::bslma::ConstructionUtil::construct(
98737 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98738 AllocBase::mechanism(),
98739 arg_01,
98740 arg_02,
98741 arg_03,
98742 arg_04,
98743 arg_05,
98744 arg_06,
98745 arg_07);
98746}
98747#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
98748
98749#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
98750template <class t_HEAD, class t_TAIL_01,
98751 class t_TAIL_02,
98752 class t_TAIL_03,
98753 class t_TAIL_04,
98754 class t_TAIL_05,
98755 class t_TAIL_06,
98756 class t_TAIL_07,
98757 class t_TAIL_08,
98758 class t_TAIL_09,
98759 class t_TAIL_10,
98760 class t_TAIL_11,
98761 class t_TAIL_12,
98762 class t_TAIL_13,
98763 class t_TAIL_14,
98764 class t_TAIL_15,
98765 class t_TAIL_16,
98766 class t_TAIL_17,
98767 class t_TAIL_18>
98768template <size_t t_INDEX,
98769 class t_ARG_01,
98770 class t_ARG_02,
98771 class t_ARG_03,
98772 class t_ARG_04,
98773 class t_ARG_05,
98774 class t_ARG_06,
98775 class t_ARG_07>
98776inline
98777Variant_Base<t_HEAD, t_TAIL_01,
98778 t_TAIL_02,
98779 t_TAIL_03,
98780 t_TAIL_04,
98781 t_TAIL_05,
98782 t_TAIL_06,
98783 t_TAIL_07,
98784 t_TAIL_08,
98785 t_TAIL_09,
98786 t_TAIL_10,
98787 t_TAIL_11,
98788 t_TAIL_12,
98789 t_TAIL_13,
98790 t_TAIL_14,
98791 t_TAIL_15,
98792 t_TAIL_16,
98793 t_TAIL_17,
98794 t_TAIL_18,
98795 BSLS_COMPILERFEATURES_FILLT( 0)
98796 >::Variant_Base(bsl::allocator_arg_t,
98797 allocator_type allocator,
98799 const t_ARG_01& arg_01,
98800 const t_ARG_02& arg_02,
98801 const t_ARG_03& arg_03,
98802 const t_ARG_04& arg_04,
98803 const t_ARG_05& arg_05,
98804 const t_ARG_06& arg_06,
98805 const t_ARG_07& arg_07)
98806: AllocBase(allocator)
98807, d_type(t_INDEX)
98808{
98809 typedef typename bsl::remove_cv<
98811 Alt_Type;
98812
98813 BloombergLP::bslma::ConstructionUtil::construct(
98814 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98815 AllocBase::mechanism(),
98816 arg_01,
98817 arg_02,
98818 arg_03,
98819 arg_04,
98820 arg_05,
98821 arg_06,
98822 arg_07);
98823}
98824#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
98825
98826
98827#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
98828template <class t_HEAD>
98829template <size_t t_INDEX,
98830 class t_ARG_01,
98831 class t_ARG_02,
98832 class t_ARG_03,
98833 class t_ARG_04,
98834 class t_ARG_05,
98835 class t_ARG_06,
98836 class t_ARG_07,
98837 class t_ARG_08>
98838inline
98839Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
98840 >::Variant_Base(bsl::allocator_arg_t,
98841 allocator_type allocator,
98843 const t_ARG_01& arg_01,
98844 const t_ARG_02& arg_02,
98845 const t_ARG_03& arg_03,
98846 const t_ARG_04& arg_04,
98847 const t_ARG_05& arg_05,
98848 const t_ARG_06& arg_06,
98849 const t_ARG_07& arg_07,
98850 const t_ARG_08& arg_08)
98851: AllocBase(allocator)
98852, d_type(t_INDEX)
98853{
98854 typedef typename bsl::remove_cv<
98856 Alt_Type;
98857
98858 BloombergLP::bslma::ConstructionUtil::construct(
98859 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98860 AllocBase::mechanism(),
98861 arg_01,
98862 arg_02,
98863 arg_03,
98864 arg_04,
98865 arg_05,
98866 arg_06,
98867 arg_07,
98868 arg_08);
98869}
98870#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
98871
98872#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
98873template <class t_HEAD, class t_TAIL_01>
98874template <size_t t_INDEX,
98875 class t_ARG_01,
98876 class t_ARG_02,
98877 class t_ARG_03,
98878 class t_ARG_04,
98879 class t_ARG_05,
98880 class t_ARG_06,
98881 class t_ARG_07,
98882 class t_ARG_08>
98883inline
98884Variant_Base<t_HEAD, t_TAIL_01,
98885 BSLS_COMPILERFEATURES_FILLT(17)
98886 >::Variant_Base(bsl::allocator_arg_t,
98887 allocator_type allocator,
98889 const t_ARG_01& arg_01,
98890 const t_ARG_02& arg_02,
98891 const t_ARG_03& arg_03,
98892 const t_ARG_04& arg_04,
98893 const t_ARG_05& arg_05,
98894 const t_ARG_06& arg_06,
98895 const t_ARG_07& arg_07,
98896 const t_ARG_08& arg_08)
98897: AllocBase(allocator)
98898, d_type(t_INDEX)
98899{
98900 typedef typename bsl::remove_cv<
98902 Alt_Type;
98903
98904 BloombergLP::bslma::ConstructionUtil::construct(
98905 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98906 AllocBase::mechanism(),
98907 arg_01,
98908 arg_02,
98909 arg_03,
98910 arg_04,
98911 arg_05,
98912 arg_06,
98913 arg_07,
98914 arg_08);
98915}
98916#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
98917
98918#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
98919template <class t_HEAD, class t_TAIL_01,
98920 class t_TAIL_02>
98921template <size_t t_INDEX,
98922 class t_ARG_01,
98923 class t_ARG_02,
98924 class t_ARG_03,
98925 class t_ARG_04,
98926 class t_ARG_05,
98927 class t_ARG_06,
98928 class t_ARG_07,
98929 class t_ARG_08>
98930inline
98931Variant_Base<t_HEAD, t_TAIL_01,
98932 t_TAIL_02,
98933 BSLS_COMPILERFEATURES_FILLT(16)
98934 >::Variant_Base(bsl::allocator_arg_t,
98935 allocator_type allocator,
98937 const t_ARG_01& arg_01,
98938 const t_ARG_02& arg_02,
98939 const t_ARG_03& arg_03,
98940 const t_ARG_04& arg_04,
98941 const t_ARG_05& arg_05,
98942 const t_ARG_06& arg_06,
98943 const t_ARG_07& arg_07,
98944 const t_ARG_08& arg_08)
98945: AllocBase(allocator)
98946, d_type(t_INDEX)
98947{
98948 typedef typename bsl::remove_cv<
98950 Alt_Type;
98951
98952 BloombergLP::bslma::ConstructionUtil::construct(
98953 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
98954 AllocBase::mechanism(),
98955 arg_01,
98956 arg_02,
98957 arg_03,
98958 arg_04,
98959 arg_05,
98960 arg_06,
98961 arg_07,
98962 arg_08);
98963}
98964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
98965
98966#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
98967template <class t_HEAD, class t_TAIL_01,
98968 class t_TAIL_02,
98969 class t_TAIL_03>
98970template <size_t t_INDEX,
98971 class t_ARG_01,
98972 class t_ARG_02,
98973 class t_ARG_03,
98974 class t_ARG_04,
98975 class t_ARG_05,
98976 class t_ARG_06,
98977 class t_ARG_07,
98978 class t_ARG_08>
98979inline
98980Variant_Base<t_HEAD, t_TAIL_01,
98981 t_TAIL_02,
98982 t_TAIL_03,
98983 BSLS_COMPILERFEATURES_FILLT(15)
98984 >::Variant_Base(bsl::allocator_arg_t,
98985 allocator_type allocator,
98987 const t_ARG_01& arg_01,
98988 const t_ARG_02& arg_02,
98989 const t_ARG_03& arg_03,
98990 const t_ARG_04& arg_04,
98991 const t_ARG_05& arg_05,
98992 const t_ARG_06& arg_06,
98993 const t_ARG_07& arg_07,
98994 const t_ARG_08& arg_08)
98995: AllocBase(allocator)
98996, d_type(t_INDEX)
98997{
98998 typedef typename bsl::remove_cv<
99000 Alt_Type;
99001
99002 BloombergLP::bslma::ConstructionUtil::construct(
99003 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99004 AllocBase::mechanism(),
99005 arg_01,
99006 arg_02,
99007 arg_03,
99008 arg_04,
99009 arg_05,
99010 arg_06,
99011 arg_07,
99012 arg_08);
99013}
99014#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
99015
99016#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
99017template <class t_HEAD, class t_TAIL_01,
99018 class t_TAIL_02,
99019 class t_TAIL_03,
99020 class t_TAIL_04>
99021template <size_t t_INDEX,
99022 class t_ARG_01,
99023 class t_ARG_02,
99024 class t_ARG_03,
99025 class t_ARG_04,
99026 class t_ARG_05,
99027 class t_ARG_06,
99028 class t_ARG_07,
99029 class t_ARG_08>
99030inline
99031Variant_Base<t_HEAD, t_TAIL_01,
99032 t_TAIL_02,
99033 t_TAIL_03,
99034 t_TAIL_04,
99035 BSLS_COMPILERFEATURES_FILLT(14)
99036 >::Variant_Base(bsl::allocator_arg_t,
99037 allocator_type allocator,
99039 const t_ARG_01& arg_01,
99040 const t_ARG_02& arg_02,
99041 const t_ARG_03& arg_03,
99042 const t_ARG_04& arg_04,
99043 const t_ARG_05& arg_05,
99044 const t_ARG_06& arg_06,
99045 const t_ARG_07& arg_07,
99046 const t_ARG_08& arg_08)
99047: AllocBase(allocator)
99048, d_type(t_INDEX)
99049{
99050 typedef typename bsl::remove_cv<
99052 Alt_Type;
99053
99054 BloombergLP::bslma::ConstructionUtil::construct(
99055 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99056 AllocBase::mechanism(),
99057 arg_01,
99058 arg_02,
99059 arg_03,
99060 arg_04,
99061 arg_05,
99062 arg_06,
99063 arg_07,
99064 arg_08);
99065}
99066#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
99067
99068#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
99069template <class t_HEAD, class t_TAIL_01,
99070 class t_TAIL_02,
99071 class t_TAIL_03,
99072 class t_TAIL_04,
99073 class t_TAIL_05>
99074template <size_t t_INDEX,
99075 class t_ARG_01,
99076 class t_ARG_02,
99077 class t_ARG_03,
99078 class t_ARG_04,
99079 class t_ARG_05,
99080 class t_ARG_06,
99081 class t_ARG_07,
99082 class t_ARG_08>
99083inline
99084Variant_Base<t_HEAD, t_TAIL_01,
99085 t_TAIL_02,
99086 t_TAIL_03,
99087 t_TAIL_04,
99088 t_TAIL_05,
99089 BSLS_COMPILERFEATURES_FILLT(13)
99090 >::Variant_Base(bsl::allocator_arg_t,
99091 allocator_type allocator,
99093 const t_ARG_01& arg_01,
99094 const t_ARG_02& arg_02,
99095 const t_ARG_03& arg_03,
99096 const t_ARG_04& arg_04,
99097 const t_ARG_05& arg_05,
99098 const t_ARG_06& arg_06,
99099 const t_ARG_07& arg_07,
99100 const t_ARG_08& arg_08)
99101: AllocBase(allocator)
99102, d_type(t_INDEX)
99103{
99104 typedef typename bsl::remove_cv<
99106 Alt_Type;
99107
99108 BloombergLP::bslma::ConstructionUtil::construct(
99109 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99110 AllocBase::mechanism(),
99111 arg_01,
99112 arg_02,
99113 arg_03,
99114 arg_04,
99115 arg_05,
99116 arg_06,
99117 arg_07,
99118 arg_08);
99119}
99120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
99121
99122#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
99123template <class t_HEAD, class t_TAIL_01,
99124 class t_TAIL_02,
99125 class t_TAIL_03,
99126 class t_TAIL_04,
99127 class t_TAIL_05,
99128 class t_TAIL_06>
99129template <size_t t_INDEX,
99130 class t_ARG_01,
99131 class t_ARG_02,
99132 class t_ARG_03,
99133 class t_ARG_04,
99134 class t_ARG_05,
99135 class t_ARG_06,
99136 class t_ARG_07,
99137 class t_ARG_08>
99138inline
99139Variant_Base<t_HEAD, t_TAIL_01,
99140 t_TAIL_02,
99141 t_TAIL_03,
99142 t_TAIL_04,
99143 t_TAIL_05,
99144 t_TAIL_06,
99145 BSLS_COMPILERFEATURES_FILLT(12)
99146 >::Variant_Base(bsl::allocator_arg_t,
99147 allocator_type allocator,
99149 const t_ARG_01& arg_01,
99150 const t_ARG_02& arg_02,
99151 const t_ARG_03& arg_03,
99152 const t_ARG_04& arg_04,
99153 const t_ARG_05& arg_05,
99154 const t_ARG_06& arg_06,
99155 const t_ARG_07& arg_07,
99156 const t_ARG_08& arg_08)
99157: AllocBase(allocator)
99158, d_type(t_INDEX)
99159{
99160 typedef typename bsl::remove_cv<
99162 Alt_Type;
99163
99164 BloombergLP::bslma::ConstructionUtil::construct(
99165 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99166 AllocBase::mechanism(),
99167 arg_01,
99168 arg_02,
99169 arg_03,
99170 arg_04,
99171 arg_05,
99172 arg_06,
99173 arg_07,
99174 arg_08);
99175}
99176#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
99177
99178#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
99179template <class t_HEAD, class t_TAIL_01,
99180 class t_TAIL_02,
99181 class t_TAIL_03,
99182 class t_TAIL_04,
99183 class t_TAIL_05,
99184 class t_TAIL_06,
99185 class t_TAIL_07>
99186template <size_t t_INDEX,
99187 class t_ARG_01,
99188 class t_ARG_02,
99189 class t_ARG_03,
99190 class t_ARG_04,
99191 class t_ARG_05,
99192 class t_ARG_06,
99193 class t_ARG_07,
99194 class t_ARG_08>
99195inline
99196Variant_Base<t_HEAD, t_TAIL_01,
99197 t_TAIL_02,
99198 t_TAIL_03,
99199 t_TAIL_04,
99200 t_TAIL_05,
99201 t_TAIL_06,
99202 t_TAIL_07,
99203 BSLS_COMPILERFEATURES_FILLT(11)
99204 >::Variant_Base(bsl::allocator_arg_t,
99205 allocator_type allocator,
99207 const t_ARG_01& arg_01,
99208 const t_ARG_02& arg_02,
99209 const t_ARG_03& arg_03,
99210 const t_ARG_04& arg_04,
99211 const t_ARG_05& arg_05,
99212 const t_ARG_06& arg_06,
99213 const t_ARG_07& arg_07,
99214 const t_ARG_08& arg_08)
99215: AllocBase(allocator)
99216, d_type(t_INDEX)
99217{
99218 typedef typename bsl::remove_cv<
99220 Alt_Type;
99221
99222 BloombergLP::bslma::ConstructionUtil::construct(
99223 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99224 AllocBase::mechanism(),
99225 arg_01,
99226 arg_02,
99227 arg_03,
99228 arg_04,
99229 arg_05,
99230 arg_06,
99231 arg_07,
99232 arg_08);
99233}
99234#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
99235
99236#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
99237template <class t_HEAD, class t_TAIL_01,
99238 class t_TAIL_02,
99239 class t_TAIL_03,
99240 class t_TAIL_04,
99241 class t_TAIL_05,
99242 class t_TAIL_06,
99243 class t_TAIL_07,
99244 class t_TAIL_08>
99245template <size_t t_INDEX,
99246 class t_ARG_01,
99247 class t_ARG_02,
99248 class t_ARG_03,
99249 class t_ARG_04,
99250 class t_ARG_05,
99251 class t_ARG_06,
99252 class t_ARG_07,
99253 class t_ARG_08>
99254inline
99255Variant_Base<t_HEAD, t_TAIL_01,
99256 t_TAIL_02,
99257 t_TAIL_03,
99258 t_TAIL_04,
99259 t_TAIL_05,
99260 t_TAIL_06,
99261 t_TAIL_07,
99262 t_TAIL_08,
99263 BSLS_COMPILERFEATURES_FILLT(10)
99264 >::Variant_Base(bsl::allocator_arg_t,
99265 allocator_type allocator,
99267 const t_ARG_01& arg_01,
99268 const t_ARG_02& arg_02,
99269 const t_ARG_03& arg_03,
99270 const t_ARG_04& arg_04,
99271 const t_ARG_05& arg_05,
99272 const t_ARG_06& arg_06,
99273 const t_ARG_07& arg_07,
99274 const t_ARG_08& arg_08)
99275: AllocBase(allocator)
99276, d_type(t_INDEX)
99277{
99278 typedef typename bsl::remove_cv<
99280 Alt_Type;
99281
99282 BloombergLP::bslma::ConstructionUtil::construct(
99283 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99284 AllocBase::mechanism(),
99285 arg_01,
99286 arg_02,
99287 arg_03,
99288 arg_04,
99289 arg_05,
99290 arg_06,
99291 arg_07,
99292 arg_08);
99293}
99294#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
99295
99296#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
99297template <class t_HEAD, class t_TAIL_01,
99298 class t_TAIL_02,
99299 class t_TAIL_03,
99300 class t_TAIL_04,
99301 class t_TAIL_05,
99302 class t_TAIL_06,
99303 class t_TAIL_07,
99304 class t_TAIL_08,
99305 class t_TAIL_09>
99306template <size_t t_INDEX,
99307 class t_ARG_01,
99308 class t_ARG_02,
99309 class t_ARG_03,
99310 class t_ARG_04,
99311 class t_ARG_05,
99312 class t_ARG_06,
99313 class t_ARG_07,
99314 class t_ARG_08>
99315inline
99316Variant_Base<t_HEAD, t_TAIL_01,
99317 t_TAIL_02,
99318 t_TAIL_03,
99319 t_TAIL_04,
99320 t_TAIL_05,
99321 t_TAIL_06,
99322 t_TAIL_07,
99323 t_TAIL_08,
99324 t_TAIL_09,
99325 BSLS_COMPILERFEATURES_FILLT( 9)
99326 >::Variant_Base(bsl::allocator_arg_t,
99327 allocator_type allocator,
99329 const t_ARG_01& arg_01,
99330 const t_ARG_02& arg_02,
99331 const t_ARG_03& arg_03,
99332 const t_ARG_04& arg_04,
99333 const t_ARG_05& arg_05,
99334 const t_ARG_06& arg_06,
99335 const t_ARG_07& arg_07,
99336 const t_ARG_08& arg_08)
99337: AllocBase(allocator)
99338, d_type(t_INDEX)
99339{
99340 typedef typename bsl::remove_cv<
99342 Alt_Type;
99343
99344 BloombergLP::bslma::ConstructionUtil::construct(
99345 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99346 AllocBase::mechanism(),
99347 arg_01,
99348 arg_02,
99349 arg_03,
99350 arg_04,
99351 arg_05,
99352 arg_06,
99353 arg_07,
99354 arg_08);
99355}
99356#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
99357
99358#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
99359template <class t_HEAD, class t_TAIL_01,
99360 class t_TAIL_02,
99361 class t_TAIL_03,
99362 class t_TAIL_04,
99363 class t_TAIL_05,
99364 class t_TAIL_06,
99365 class t_TAIL_07,
99366 class t_TAIL_08,
99367 class t_TAIL_09,
99368 class t_TAIL_10>
99369template <size_t t_INDEX,
99370 class t_ARG_01,
99371 class t_ARG_02,
99372 class t_ARG_03,
99373 class t_ARG_04,
99374 class t_ARG_05,
99375 class t_ARG_06,
99376 class t_ARG_07,
99377 class t_ARG_08>
99378inline
99379Variant_Base<t_HEAD, t_TAIL_01,
99380 t_TAIL_02,
99381 t_TAIL_03,
99382 t_TAIL_04,
99383 t_TAIL_05,
99384 t_TAIL_06,
99385 t_TAIL_07,
99386 t_TAIL_08,
99387 t_TAIL_09,
99388 t_TAIL_10,
99389 BSLS_COMPILERFEATURES_FILLT( 8)
99390 >::Variant_Base(bsl::allocator_arg_t,
99391 allocator_type allocator,
99393 const t_ARG_01& arg_01,
99394 const t_ARG_02& arg_02,
99395 const t_ARG_03& arg_03,
99396 const t_ARG_04& arg_04,
99397 const t_ARG_05& arg_05,
99398 const t_ARG_06& arg_06,
99399 const t_ARG_07& arg_07,
99400 const t_ARG_08& arg_08)
99401: AllocBase(allocator)
99402, d_type(t_INDEX)
99403{
99404 typedef typename bsl::remove_cv<
99406 Alt_Type;
99407
99408 BloombergLP::bslma::ConstructionUtil::construct(
99409 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99410 AllocBase::mechanism(),
99411 arg_01,
99412 arg_02,
99413 arg_03,
99414 arg_04,
99415 arg_05,
99416 arg_06,
99417 arg_07,
99418 arg_08);
99419}
99420#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
99421
99422#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
99423template <class t_HEAD, class t_TAIL_01,
99424 class t_TAIL_02,
99425 class t_TAIL_03,
99426 class t_TAIL_04,
99427 class t_TAIL_05,
99428 class t_TAIL_06,
99429 class t_TAIL_07,
99430 class t_TAIL_08,
99431 class t_TAIL_09,
99432 class t_TAIL_10,
99433 class t_TAIL_11>
99434template <size_t t_INDEX,
99435 class t_ARG_01,
99436 class t_ARG_02,
99437 class t_ARG_03,
99438 class t_ARG_04,
99439 class t_ARG_05,
99440 class t_ARG_06,
99441 class t_ARG_07,
99442 class t_ARG_08>
99443inline
99444Variant_Base<t_HEAD, t_TAIL_01,
99445 t_TAIL_02,
99446 t_TAIL_03,
99447 t_TAIL_04,
99448 t_TAIL_05,
99449 t_TAIL_06,
99450 t_TAIL_07,
99451 t_TAIL_08,
99452 t_TAIL_09,
99453 t_TAIL_10,
99454 t_TAIL_11,
99455 BSLS_COMPILERFEATURES_FILLT( 7)
99456 >::Variant_Base(bsl::allocator_arg_t,
99457 allocator_type allocator,
99459 const t_ARG_01& arg_01,
99460 const t_ARG_02& arg_02,
99461 const t_ARG_03& arg_03,
99462 const t_ARG_04& arg_04,
99463 const t_ARG_05& arg_05,
99464 const t_ARG_06& arg_06,
99465 const t_ARG_07& arg_07,
99466 const t_ARG_08& arg_08)
99467: AllocBase(allocator)
99468, d_type(t_INDEX)
99469{
99470 typedef typename bsl::remove_cv<
99472 Alt_Type;
99473
99474 BloombergLP::bslma::ConstructionUtil::construct(
99475 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99476 AllocBase::mechanism(),
99477 arg_01,
99478 arg_02,
99479 arg_03,
99480 arg_04,
99481 arg_05,
99482 arg_06,
99483 arg_07,
99484 arg_08);
99485}
99486#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
99487
99488#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
99489template <class t_HEAD, class t_TAIL_01,
99490 class t_TAIL_02,
99491 class t_TAIL_03,
99492 class t_TAIL_04,
99493 class t_TAIL_05,
99494 class t_TAIL_06,
99495 class t_TAIL_07,
99496 class t_TAIL_08,
99497 class t_TAIL_09,
99498 class t_TAIL_10,
99499 class t_TAIL_11,
99500 class t_TAIL_12>
99501template <size_t t_INDEX,
99502 class t_ARG_01,
99503 class t_ARG_02,
99504 class t_ARG_03,
99505 class t_ARG_04,
99506 class t_ARG_05,
99507 class t_ARG_06,
99508 class t_ARG_07,
99509 class t_ARG_08>
99510inline
99511Variant_Base<t_HEAD, t_TAIL_01,
99512 t_TAIL_02,
99513 t_TAIL_03,
99514 t_TAIL_04,
99515 t_TAIL_05,
99516 t_TAIL_06,
99517 t_TAIL_07,
99518 t_TAIL_08,
99519 t_TAIL_09,
99520 t_TAIL_10,
99521 t_TAIL_11,
99522 t_TAIL_12,
99523 BSLS_COMPILERFEATURES_FILLT( 6)
99524 >::Variant_Base(bsl::allocator_arg_t,
99525 allocator_type allocator,
99527 const t_ARG_01& arg_01,
99528 const t_ARG_02& arg_02,
99529 const t_ARG_03& arg_03,
99530 const t_ARG_04& arg_04,
99531 const t_ARG_05& arg_05,
99532 const t_ARG_06& arg_06,
99533 const t_ARG_07& arg_07,
99534 const t_ARG_08& arg_08)
99535: AllocBase(allocator)
99536, d_type(t_INDEX)
99537{
99538 typedef typename bsl::remove_cv<
99540 Alt_Type;
99541
99542 BloombergLP::bslma::ConstructionUtil::construct(
99543 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99544 AllocBase::mechanism(),
99545 arg_01,
99546 arg_02,
99547 arg_03,
99548 arg_04,
99549 arg_05,
99550 arg_06,
99551 arg_07,
99552 arg_08);
99553}
99554#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
99555
99556#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
99557template <class t_HEAD, class t_TAIL_01,
99558 class t_TAIL_02,
99559 class t_TAIL_03,
99560 class t_TAIL_04,
99561 class t_TAIL_05,
99562 class t_TAIL_06,
99563 class t_TAIL_07,
99564 class t_TAIL_08,
99565 class t_TAIL_09,
99566 class t_TAIL_10,
99567 class t_TAIL_11,
99568 class t_TAIL_12,
99569 class t_TAIL_13>
99570template <size_t t_INDEX,
99571 class t_ARG_01,
99572 class t_ARG_02,
99573 class t_ARG_03,
99574 class t_ARG_04,
99575 class t_ARG_05,
99576 class t_ARG_06,
99577 class t_ARG_07,
99578 class t_ARG_08>
99579inline
99580Variant_Base<t_HEAD, t_TAIL_01,
99581 t_TAIL_02,
99582 t_TAIL_03,
99583 t_TAIL_04,
99584 t_TAIL_05,
99585 t_TAIL_06,
99586 t_TAIL_07,
99587 t_TAIL_08,
99588 t_TAIL_09,
99589 t_TAIL_10,
99590 t_TAIL_11,
99591 t_TAIL_12,
99592 t_TAIL_13,
99593 BSLS_COMPILERFEATURES_FILLT( 5)
99594 >::Variant_Base(bsl::allocator_arg_t,
99595 allocator_type allocator,
99597 const t_ARG_01& arg_01,
99598 const t_ARG_02& arg_02,
99599 const t_ARG_03& arg_03,
99600 const t_ARG_04& arg_04,
99601 const t_ARG_05& arg_05,
99602 const t_ARG_06& arg_06,
99603 const t_ARG_07& arg_07,
99604 const t_ARG_08& arg_08)
99605: AllocBase(allocator)
99606, d_type(t_INDEX)
99607{
99608 typedef typename bsl::remove_cv<
99610 Alt_Type;
99611
99612 BloombergLP::bslma::ConstructionUtil::construct(
99613 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99614 AllocBase::mechanism(),
99615 arg_01,
99616 arg_02,
99617 arg_03,
99618 arg_04,
99619 arg_05,
99620 arg_06,
99621 arg_07,
99622 arg_08);
99623}
99624#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
99625
99626#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
99627template <class t_HEAD, class t_TAIL_01,
99628 class t_TAIL_02,
99629 class t_TAIL_03,
99630 class t_TAIL_04,
99631 class t_TAIL_05,
99632 class t_TAIL_06,
99633 class t_TAIL_07,
99634 class t_TAIL_08,
99635 class t_TAIL_09,
99636 class t_TAIL_10,
99637 class t_TAIL_11,
99638 class t_TAIL_12,
99639 class t_TAIL_13,
99640 class t_TAIL_14>
99641template <size_t t_INDEX,
99642 class t_ARG_01,
99643 class t_ARG_02,
99644 class t_ARG_03,
99645 class t_ARG_04,
99646 class t_ARG_05,
99647 class t_ARG_06,
99648 class t_ARG_07,
99649 class t_ARG_08>
99650inline
99651Variant_Base<t_HEAD, t_TAIL_01,
99652 t_TAIL_02,
99653 t_TAIL_03,
99654 t_TAIL_04,
99655 t_TAIL_05,
99656 t_TAIL_06,
99657 t_TAIL_07,
99658 t_TAIL_08,
99659 t_TAIL_09,
99660 t_TAIL_10,
99661 t_TAIL_11,
99662 t_TAIL_12,
99663 t_TAIL_13,
99664 t_TAIL_14,
99665 BSLS_COMPILERFEATURES_FILLT( 4)
99666 >::Variant_Base(bsl::allocator_arg_t,
99667 allocator_type allocator,
99669 const t_ARG_01& arg_01,
99670 const t_ARG_02& arg_02,
99671 const t_ARG_03& arg_03,
99672 const t_ARG_04& arg_04,
99673 const t_ARG_05& arg_05,
99674 const t_ARG_06& arg_06,
99675 const t_ARG_07& arg_07,
99676 const t_ARG_08& arg_08)
99677: AllocBase(allocator)
99678, d_type(t_INDEX)
99679{
99680 typedef typename bsl::remove_cv<
99682 Alt_Type;
99683
99684 BloombergLP::bslma::ConstructionUtil::construct(
99685 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99686 AllocBase::mechanism(),
99687 arg_01,
99688 arg_02,
99689 arg_03,
99690 arg_04,
99691 arg_05,
99692 arg_06,
99693 arg_07,
99694 arg_08);
99695}
99696#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
99697
99698#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
99699template <class t_HEAD, class t_TAIL_01,
99700 class t_TAIL_02,
99701 class t_TAIL_03,
99702 class t_TAIL_04,
99703 class t_TAIL_05,
99704 class t_TAIL_06,
99705 class t_TAIL_07,
99706 class t_TAIL_08,
99707 class t_TAIL_09,
99708 class t_TAIL_10,
99709 class t_TAIL_11,
99710 class t_TAIL_12,
99711 class t_TAIL_13,
99712 class t_TAIL_14,
99713 class t_TAIL_15>
99714template <size_t t_INDEX,
99715 class t_ARG_01,
99716 class t_ARG_02,
99717 class t_ARG_03,
99718 class t_ARG_04,
99719 class t_ARG_05,
99720 class t_ARG_06,
99721 class t_ARG_07,
99722 class t_ARG_08>
99723inline
99724Variant_Base<t_HEAD, t_TAIL_01,
99725 t_TAIL_02,
99726 t_TAIL_03,
99727 t_TAIL_04,
99728 t_TAIL_05,
99729 t_TAIL_06,
99730 t_TAIL_07,
99731 t_TAIL_08,
99732 t_TAIL_09,
99733 t_TAIL_10,
99734 t_TAIL_11,
99735 t_TAIL_12,
99736 t_TAIL_13,
99737 t_TAIL_14,
99738 t_TAIL_15,
99739 BSLS_COMPILERFEATURES_FILLT( 3)
99740 >::Variant_Base(bsl::allocator_arg_t,
99741 allocator_type allocator,
99743 const t_ARG_01& arg_01,
99744 const t_ARG_02& arg_02,
99745 const t_ARG_03& arg_03,
99746 const t_ARG_04& arg_04,
99747 const t_ARG_05& arg_05,
99748 const t_ARG_06& arg_06,
99749 const t_ARG_07& arg_07,
99750 const t_ARG_08& arg_08)
99751: AllocBase(allocator)
99752, d_type(t_INDEX)
99753{
99754 typedef typename bsl::remove_cv<
99756 Alt_Type;
99757
99758 BloombergLP::bslma::ConstructionUtil::construct(
99759 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99760 AllocBase::mechanism(),
99761 arg_01,
99762 arg_02,
99763 arg_03,
99764 arg_04,
99765 arg_05,
99766 arg_06,
99767 arg_07,
99768 arg_08);
99769}
99770#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
99771
99772#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
99773template <class t_HEAD, class t_TAIL_01,
99774 class t_TAIL_02,
99775 class t_TAIL_03,
99776 class t_TAIL_04,
99777 class t_TAIL_05,
99778 class t_TAIL_06,
99779 class t_TAIL_07,
99780 class t_TAIL_08,
99781 class t_TAIL_09,
99782 class t_TAIL_10,
99783 class t_TAIL_11,
99784 class t_TAIL_12,
99785 class t_TAIL_13,
99786 class t_TAIL_14,
99787 class t_TAIL_15,
99788 class t_TAIL_16>
99789template <size_t t_INDEX,
99790 class t_ARG_01,
99791 class t_ARG_02,
99792 class t_ARG_03,
99793 class t_ARG_04,
99794 class t_ARG_05,
99795 class t_ARG_06,
99796 class t_ARG_07,
99797 class t_ARG_08>
99798inline
99799Variant_Base<t_HEAD, t_TAIL_01,
99800 t_TAIL_02,
99801 t_TAIL_03,
99802 t_TAIL_04,
99803 t_TAIL_05,
99804 t_TAIL_06,
99805 t_TAIL_07,
99806 t_TAIL_08,
99807 t_TAIL_09,
99808 t_TAIL_10,
99809 t_TAIL_11,
99810 t_TAIL_12,
99811 t_TAIL_13,
99812 t_TAIL_14,
99813 t_TAIL_15,
99814 t_TAIL_16,
99815 BSLS_COMPILERFEATURES_FILLT( 2)
99816 >::Variant_Base(bsl::allocator_arg_t,
99817 allocator_type allocator,
99819 const t_ARG_01& arg_01,
99820 const t_ARG_02& arg_02,
99821 const t_ARG_03& arg_03,
99822 const t_ARG_04& arg_04,
99823 const t_ARG_05& arg_05,
99824 const t_ARG_06& arg_06,
99825 const t_ARG_07& arg_07,
99826 const t_ARG_08& arg_08)
99827: AllocBase(allocator)
99828, d_type(t_INDEX)
99829{
99830 typedef typename bsl::remove_cv<
99832 Alt_Type;
99833
99834 BloombergLP::bslma::ConstructionUtil::construct(
99835 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99836 AllocBase::mechanism(),
99837 arg_01,
99838 arg_02,
99839 arg_03,
99840 arg_04,
99841 arg_05,
99842 arg_06,
99843 arg_07,
99844 arg_08);
99845}
99846#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
99847
99848#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
99849template <class t_HEAD, class t_TAIL_01,
99850 class t_TAIL_02,
99851 class t_TAIL_03,
99852 class t_TAIL_04,
99853 class t_TAIL_05,
99854 class t_TAIL_06,
99855 class t_TAIL_07,
99856 class t_TAIL_08,
99857 class t_TAIL_09,
99858 class t_TAIL_10,
99859 class t_TAIL_11,
99860 class t_TAIL_12,
99861 class t_TAIL_13,
99862 class t_TAIL_14,
99863 class t_TAIL_15,
99864 class t_TAIL_16,
99865 class t_TAIL_17>
99866template <size_t t_INDEX,
99867 class t_ARG_01,
99868 class t_ARG_02,
99869 class t_ARG_03,
99870 class t_ARG_04,
99871 class t_ARG_05,
99872 class t_ARG_06,
99873 class t_ARG_07,
99874 class t_ARG_08>
99875inline
99876Variant_Base<t_HEAD, t_TAIL_01,
99877 t_TAIL_02,
99878 t_TAIL_03,
99879 t_TAIL_04,
99880 t_TAIL_05,
99881 t_TAIL_06,
99882 t_TAIL_07,
99883 t_TAIL_08,
99884 t_TAIL_09,
99885 t_TAIL_10,
99886 t_TAIL_11,
99887 t_TAIL_12,
99888 t_TAIL_13,
99889 t_TAIL_14,
99890 t_TAIL_15,
99891 t_TAIL_16,
99892 t_TAIL_17,
99893 BSLS_COMPILERFEATURES_FILLT( 1)
99894 >::Variant_Base(bsl::allocator_arg_t,
99895 allocator_type allocator,
99897 const t_ARG_01& arg_01,
99898 const t_ARG_02& arg_02,
99899 const t_ARG_03& arg_03,
99900 const t_ARG_04& arg_04,
99901 const t_ARG_05& arg_05,
99902 const t_ARG_06& arg_06,
99903 const t_ARG_07& arg_07,
99904 const t_ARG_08& arg_08)
99905: AllocBase(allocator)
99906, d_type(t_INDEX)
99907{
99908 typedef typename bsl::remove_cv<
99910 Alt_Type;
99911
99912 BloombergLP::bslma::ConstructionUtil::construct(
99913 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99914 AllocBase::mechanism(),
99915 arg_01,
99916 arg_02,
99917 arg_03,
99918 arg_04,
99919 arg_05,
99920 arg_06,
99921 arg_07,
99922 arg_08);
99923}
99924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
99925
99926#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
99927template <class t_HEAD, class t_TAIL_01,
99928 class t_TAIL_02,
99929 class t_TAIL_03,
99930 class t_TAIL_04,
99931 class t_TAIL_05,
99932 class t_TAIL_06,
99933 class t_TAIL_07,
99934 class t_TAIL_08,
99935 class t_TAIL_09,
99936 class t_TAIL_10,
99937 class t_TAIL_11,
99938 class t_TAIL_12,
99939 class t_TAIL_13,
99940 class t_TAIL_14,
99941 class t_TAIL_15,
99942 class t_TAIL_16,
99943 class t_TAIL_17,
99944 class t_TAIL_18>
99945template <size_t t_INDEX,
99946 class t_ARG_01,
99947 class t_ARG_02,
99948 class t_ARG_03,
99949 class t_ARG_04,
99950 class t_ARG_05,
99951 class t_ARG_06,
99952 class t_ARG_07,
99953 class t_ARG_08>
99954inline
99955Variant_Base<t_HEAD, t_TAIL_01,
99956 t_TAIL_02,
99957 t_TAIL_03,
99958 t_TAIL_04,
99959 t_TAIL_05,
99960 t_TAIL_06,
99961 t_TAIL_07,
99962 t_TAIL_08,
99963 t_TAIL_09,
99964 t_TAIL_10,
99965 t_TAIL_11,
99966 t_TAIL_12,
99967 t_TAIL_13,
99968 t_TAIL_14,
99969 t_TAIL_15,
99970 t_TAIL_16,
99971 t_TAIL_17,
99972 t_TAIL_18,
99973 BSLS_COMPILERFEATURES_FILLT( 0)
99974 >::Variant_Base(bsl::allocator_arg_t,
99975 allocator_type allocator,
99977 const t_ARG_01& arg_01,
99978 const t_ARG_02& arg_02,
99979 const t_ARG_03& arg_03,
99980 const t_ARG_04& arg_04,
99981 const t_ARG_05& arg_05,
99982 const t_ARG_06& arg_06,
99983 const t_ARG_07& arg_07,
99984 const t_ARG_08& arg_08)
99985: AllocBase(allocator)
99986, d_type(t_INDEX)
99987{
99988 typedef typename bsl::remove_cv<
99990 Alt_Type;
99991
99992 BloombergLP::bslma::ConstructionUtil::construct(
99993 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
99994 AllocBase::mechanism(),
99995 arg_01,
99996 arg_02,
99997 arg_03,
99998 arg_04,
99999 arg_05,
100000 arg_06,
100001 arg_07,
100002 arg_08);
100003}
100004#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
100005
100006
100007#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
100008template <class t_HEAD>
100009template <size_t t_INDEX,
100010 class t_ARG_01,
100011 class t_ARG_02,
100012 class t_ARG_03,
100013 class t_ARG_04,
100014 class t_ARG_05,
100015 class t_ARG_06,
100016 class t_ARG_07,
100017 class t_ARG_08,
100018 class t_ARG_09>
100019inline
100020Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
100021 >::Variant_Base(bsl::allocator_arg_t,
100022 allocator_type allocator,
100024 const t_ARG_01& arg_01,
100025 const t_ARG_02& arg_02,
100026 const t_ARG_03& arg_03,
100027 const t_ARG_04& arg_04,
100028 const t_ARG_05& arg_05,
100029 const t_ARG_06& arg_06,
100030 const t_ARG_07& arg_07,
100031 const t_ARG_08& arg_08,
100032 const t_ARG_09& arg_09)
100033: AllocBase(allocator)
100034, d_type(t_INDEX)
100035{
100036 typedef typename bsl::remove_cv<
100038 Alt_Type;
100039
100040 BloombergLP::bslma::ConstructionUtil::construct(
100041 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100042 AllocBase::mechanism(),
100043 arg_01,
100044 arg_02,
100045 arg_03,
100046 arg_04,
100047 arg_05,
100048 arg_06,
100049 arg_07,
100050 arg_08,
100051 arg_09);
100052}
100053#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
100054
100055#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
100056template <class t_HEAD, class t_TAIL_01>
100057template <size_t t_INDEX,
100058 class t_ARG_01,
100059 class t_ARG_02,
100060 class t_ARG_03,
100061 class t_ARG_04,
100062 class t_ARG_05,
100063 class t_ARG_06,
100064 class t_ARG_07,
100065 class t_ARG_08,
100066 class t_ARG_09>
100067inline
100068Variant_Base<t_HEAD, t_TAIL_01,
100069 BSLS_COMPILERFEATURES_FILLT(17)
100070 >::Variant_Base(bsl::allocator_arg_t,
100071 allocator_type allocator,
100073 const t_ARG_01& arg_01,
100074 const t_ARG_02& arg_02,
100075 const t_ARG_03& arg_03,
100076 const t_ARG_04& arg_04,
100077 const t_ARG_05& arg_05,
100078 const t_ARG_06& arg_06,
100079 const t_ARG_07& arg_07,
100080 const t_ARG_08& arg_08,
100081 const t_ARG_09& arg_09)
100082: AllocBase(allocator)
100083, d_type(t_INDEX)
100084{
100085 typedef typename bsl::remove_cv<
100087 Alt_Type;
100088
100089 BloombergLP::bslma::ConstructionUtil::construct(
100090 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100091 AllocBase::mechanism(),
100092 arg_01,
100093 arg_02,
100094 arg_03,
100095 arg_04,
100096 arg_05,
100097 arg_06,
100098 arg_07,
100099 arg_08,
100100 arg_09);
100101}
100102#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
100103
100104#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
100105template <class t_HEAD, class t_TAIL_01,
100106 class t_TAIL_02>
100107template <size_t t_INDEX,
100108 class t_ARG_01,
100109 class t_ARG_02,
100110 class t_ARG_03,
100111 class t_ARG_04,
100112 class t_ARG_05,
100113 class t_ARG_06,
100114 class t_ARG_07,
100115 class t_ARG_08,
100116 class t_ARG_09>
100117inline
100118Variant_Base<t_HEAD, t_TAIL_01,
100119 t_TAIL_02,
100120 BSLS_COMPILERFEATURES_FILLT(16)
100121 >::Variant_Base(bsl::allocator_arg_t,
100122 allocator_type allocator,
100124 const t_ARG_01& arg_01,
100125 const t_ARG_02& arg_02,
100126 const t_ARG_03& arg_03,
100127 const t_ARG_04& arg_04,
100128 const t_ARG_05& arg_05,
100129 const t_ARG_06& arg_06,
100130 const t_ARG_07& arg_07,
100131 const t_ARG_08& arg_08,
100132 const t_ARG_09& arg_09)
100133: AllocBase(allocator)
100134, d_type(t_INDEX)
100135{
100136 typedef typename bsl::remove_cv<
100138 Alt_Type;
100139
100140 BloombergLP::bslma::ConstructionUtil::construct(
100141 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100142 AllocBase::mechanism(),
100143 arg_01,
100144 arg_02,
100145 arg_03,
100146 arg_04,
100147 arg_05,
100148 arg_06,
100149 arg_07,
100150 arg_08,
100151 arg_09);
100152}
100153#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
100154
100155#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
100156template <class t_HEAD, class t_TAIL_01,
100157 class t_TAIL_02,
100158 class t_TAIL_03>
100159template <size_t t_INDEX,
100160 class t_ARG_01,
100161 class t_ARG_02,
100162 class t_ARG_03,
100163 class t_ARG_04,
100164 class t_ARG_05,
100165 class t_ARG_06,
100166 class t_ARG_07,
100167 class t_ARG_08,
100168 class t_ARG_09>
100169inline
100170Variant_Base<t_HEAD, t_TAIL_01,
100171 t_TAIL_02,
100172 t_TAIL_03,
100173 BSLS_COMPILERFEATURES_FILLT(15)
100174 >::Variant_Base(bsl::allocator_arg_t,
100175 allocator_type allocator,
100177 const t_ARG_01& arg_01,
100178 const t_ARG_02& arg_02,
100179 const t_ARG_03& arg_03,
100180 const t_ARG_04& arg_04,
100181 const t_ARG_05& arg_05,
100182 const t_ARG_06& arg_06,
100183 const t_ARG_07& arg_07,
100184 const t_ARG_08& arg_08,
100185 const t_ARG_09& arg_09)
100186: AllocBase(allocator)
100187, d_type(t_INDEX)
100188{
100189 typedef typename bsl::remove_cv<
100191 Alt_Type;
100192
100193 BloombergLP::bslma::ConstructionUtil::construct(
100194 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100195 AllocBase::mechanism(),
100196 arg_01,
100197 arg_02,
100198 arg_03,
100199 arg_04,
100200 arg_05,
100201 arg_06,
100202 arg_07,
100203 arg_08,
100204 arg_09);
100205}
100206#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
100207
100208#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
100209template <class t_HEAD, class t_TAIL_01,
100210 class t_TAIL_02,
100211 class t_TAIL_03,
100212 class t_TAIL_04>
100213template <size_t t_INDEX,
100214 class t_ARG_01,
100215 class t_ARG_02,
100216 class t_ARG_03,
100217 class t_ARG_04,
100218 class t_ARG_05,
100219 class t_ARG_06,
100220 class t_ARG_07,
100221 class t_ARG_08,
100222 class t_ARG_09>
100223inline
100224Variant_Base<t_HEAD, t_TAIL_01,
100225 t_TAIL_02,
100226 t_TAIL_03,
100227 t_TAIL_04,
100228 BSLS_COMPILERFEATURES_FILLT(14)
100229 >::Variant_Base(bsl::allocator_arg_t,
100230 allocator_type allocator,
100232 const t_ARG_01& arg_01,
100233 const t_ARG_02& arg_02,
100234 const t_ARG_03& arg_03,
100235 const t_ARG_04& arg_04,
100236 const t_ARG_05& arg_05,
100237 const t_ARG_06& arg_06,
100238 const t_ARG_07& arg_07,
100239 const t_ARG_08& arg_08,
100240 const t_ARG_09& arg_09)
100241: AllocBase(allocator)
100242, d_type(t_INDEX)
100243{
100244 typedef typename bsl::remove_cv<
100246 Alt_Type;
100247
100248 BloombergLP::bslma::ConstructionUtil::construct(
100249 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100250 AllocBase::mechanism(),
100251 arg_01,
100252 arg_02,
100253 arg_03,
100254 arg_04,
100255 arg_05,
100256 arg_06,
100257 arg_07,
100258 arg_08,
100259 arg_09);
100260}
100261#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
100262
100263#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
100264template <class t_HEAD, class t_TAIL_01,
100265 class t_TAIL_02,
100266 class t_TAIL_03,
100267 class t_TAIL_04,
100268 class t_TAIL_05>
100269template <size_t t_INDEX,
100270 class t_ARG_01,
100271 class t_ARG_02,
100272 class t_ARG_03,
100273 class t_ARG_04,
100274 class t_ARG_05,
100275 class t_ARG_06,
100276 class t_ARG_07,
100277 class t_ARG_08,
100278 class t_ARG_09>
100279inline
100280Variant_Base<t_HEAD, t_TAIL_01,
100281 t_TAIL_02,
100282 t_TAIL_03,
100283 t_TAIL_04,
100284 t_TAIL_05,
100285 BSLS_COMPILERFEATURES_FILLT(13)
100286 >::Variant_Base(bsl::allocator_arg_t,
100287 allocator_type allocator,
100289 const t_ARG_01& arg_01,
100290 const t_ARG_02& arg_02,
100291 const t_ARG_03& arg_03,
100292 const t_ARG_04& arg_04,
100293 const t_ARG_05& arg_05,
100294 const t_ARG_06& arg_06,
100295 const t_ARG_07& arg_07,
100296 const t_ARG_08& arg_08,
100297 const t_ARG_09& arg_09)
100298: AllocBase(allocator)
100299, d_type(t_INDEX)
100300{
100301 typedef typename bsl::remove_cv<
100303 Alt_Type;
100304
100305 BloombergLP::bslma::ConstructionUtil::construct(
100306 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100307 AllocBase::mechanism(),
100308 arg_01,
100309 arg_02,
100310 arg_03,
100311 arg_04,
100312 arg_05,
100313 arg_06,
100314 arg_07,
100315 arg_08,
100316 arg_09);
100317}
100318#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
100319
100320#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
100321template <class t_HEAD, class t_TAIL_01,
100322 class t_TAIL_02,
100323 class t_TAIL_03,
100324 class t_TAIL_04,
100325 class t_TAIL_05,
100326 class t_TAIL_06>
100327template <size_t t_INDEX,
100328 class t_ARG_01,
100329 class t_ARG_02,
100330 class t_ARG_03,
100331 class t_ARG_04,
100332 class t_ARG_05,
100333 class t_ARG_06,
100334 class t_ARG_07,
100335 class t_ARG_08,
100336 class t_ARG_09>
100337inline
100338Variant_Base<t_HEAD, t_TAIL_01,
100339 t_TAIL_02,
100340 t_TAIL_03,
100341 t_TAIL_04,
100342 t_TAIL_05,
100343 t_TAIL_06,
100344 BSLS_COMPILERFEATURES_FILLT(12)
100345 >::Variant_Base(bsl::allocator_arg_t,
100346 allocator_type allocator,
100348 const t_ARG_01& arg_01,
100349 const t_ARG_02& arg_02,
100350 const t_ARG_03& arg_03,
100351 const t_ARG_04& arg_04,
100352 const t_ARG_05& arg_05,
100353 const t_ARG_06& arg_06,
100354 const t_ARG_07& arg_07,
100355 const t_ARG_08& arg_08,
100356 const t_ARG_09& arg_09)
100357: AllocBase(allocator)
100358, d_type(t_INDEX)
100359{
100360 typedef typename bsl::remove_cv<
100362 Alt_Type;
100363
100364 BloombergLP::bslma::ConstructionUtil::construct(
100365 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100366 AllocBase::mechanism(),
100367 arg_01,
100368 arg_02,
100369 arg_03,
100370 arg_04,
100371 arg_05,
100372 arg_06,
100373 arg_07,
100374 arg_08,
100375 arg_09);
100376}
100377#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
100378
100379#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
100380template <class t_HEAD, class t_TAIL_01,
100381 class t_TAIL_02,
100382 class t_TAIL_03,
100383 class t_TAIL_04,
100384 class t_TAIL_05,
100385 class t_TAIL_06,
100386 class t_TAIL_07>
100387template <size_t t_INDEX,
100388 class t_ARG_01,
100389 class t_ARG_02,
100390 class t_ARG_03,
100391 class t_ARG_04,
100392 class t_ARG_05,
100393 class t_ARG_06,
100394 class t_ARG_07,
100395 class t_ARG_08,
100396 class t_ARG_09>
100397inline
100398Variant_Base<t_HEAD, t_TAIL_01,
100399 t_TAIL_02,
100400 t_TAIL_03,
100401 t_TAIL_04,
100402 t_TAIL_05,
100403 t_TAIL_06,
100404 t_TAIL_07,
100405 BSLS_COMPILERFEATURES_FILLT(11)
100406 >::Variant_Base(bsl::allocator_arg_t,
100407 allocator_type allocator,
100409 const t_ARG_01& arg_01,
100410 const t_ARG_02& arg_02,
100411 const t_ARG_03& arg_03,
100412 const t_ARG_04& arg_04,
100413 const t_ARG_05& arg_05,
100414 const t_ARG_06& arg_06,
100415 const t_ARG_07& arg_07,
100416 const t_ARG_08& arg_08,
100417 const t_ARG_09& arg_09)
100418: AllocBase(allocator)
100419, d_type(t_INDEX)
100420{
100421 typedef typename bsl::remove_cv<
100423 Alt_Type;
100424
100425 BloombergLP::bslma::ConstructionUtil::construct(
100426 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100427 AllocBase::mechanism(),
100428 arg_01,
100429 arg_02,
100430 arg_03,
100431 arg_04,
100432 arg_05,
100433 arg_06,
100434 arg_07,
100435 arg_08,
100436 arg_09);
100437}
100438#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
100439
100440#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
100441template <class t_HEAD, class t_TAIL_01,
100442 class t_TAIL_02,
100443 class t_TAIL_03,
100444 class t_TAIL_04,
100445 class t_TAIL_05,
100446 class t_TAIL_06,
100447 class t_TAIL_07,
100448 class t_TAIL_08>
100449template <size_t t_INDEX,
100450 class t_ARG_01,
100451 class t_ARG_02,
100452 class t_ARG_03,
100453 class t_ARG_04,
100454 class t_ARG_05,
100455 class t_ARG_06,
100456 class t_ARG_07,
100457 class t_ARG_08,
100458 class t_ARG_09>
100459inline
100460Variant_Base<t_HEAD, t_TAIL_01,
100461 t_TAIL_02,
100462 t_TAIL_03,
100463 t_TAIL_04,
100464 t_TAIL_05,
100465 t_TAIL_06,
100466 t_TAIL_07,
100467 t_TAIL_08,
100468 BSLS_COMPILERFEATURES_FILLT(10)
100469 >::Variant_Base(bsl::allocator_arg_t,
100470 allocator_type allocator,
100472 const t_ARG_01& arg_01,
100473 const t_ARG_02& arg_02,
100474 const t_ARG_03& arg_03,
100475 const t_ARG_04& arg_04,
100476 const t_ARG_05& arg_05,
100477 const t_ARG_06& arg_06,
100478 const t_ARG_07& arg_07,
100479 const t_ARG_08& arg_08,
100480 const t_ARG_09& arg_09)
100481: AllocBase(allocator)
100482, d_type(t_INDEX)
100483{
100484 typedef typename bsl::remove_cv<
100486 Alt_Type;
100487
100488 BloombergLP::bslma::ConstructionUtil::construct(
100489 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100490 AllocBase::mechanism(),
100491 arg_01,
100492 arg_02,
100493 arg_03,
100494 arg_04,
100495 arg_05,
100496 arg_06,
100497 arg_07,
100498 arg_08,
100499 arg_09);
100500}
100501#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
100502
100503#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
100504template <class t_HEAD, class t_TAIL_01,
100505 class t_TAIL_02,
100506 class t_TAIL_03,
100507 class t_TAIL_04,
100508 class t_TAIL_05,
100509 class t_TAIL_06,
100510 class t_TAIL_07,
100511 class t_TAIL_08,
100512 class t_TAIL_09>
100513template <size_t t_INDEX,
100514 class t_ARG_01,
100515 class t_ARG_02,
100516 class t_ARG_03,
100517 class t_ARG_04,
100518 class t_ARG_05,
100519 class t_ARG_06,
100520 class t_ARG_07,
100521 class t_ARG_08,
100522 class t_ARG_09>
100523inline
100524Variant_Base<t_HEAD, t_TAIL_01,
100525 t_TAIL_02,
100526 t_TAIL_03,
100527 t_TAIL_04,
100528 t_TAIL_05,
100529 t_TAIL_06,
100530 t_TAIL_07,
100531 t_TAIL_08,
100532 t_TAIL_09,
100533 BSLS_COMPILERFEATURES_FILLT( 9)
100534 >::Variant_Base(bsl::allocator_arg_t,
100535 allocator_type allocator,
100537 const t_ARG_01& arg_01,
100538 const t_ARG_02& arg_02,
100539 const t_ARG_03& arg_03,
100540 const t_ARG_04& arg_04,
100541 const t_ARG_05& arg_05,
100542 const t_ARG_06& arg_06,
100543 const t_ARG_07& arg_07,
100544 const t_ARG_08& arg_08,
100545 const t_ARG_09& arg_09)
100546: AllocBase(allocator)
100547, d_type(t_INDEX)
100548{
100549 typedef typename bsl::remove_cv<
100551 Alt_Type;
100552
100553 BloombergLP::bslma::ConstructionUtil::construct(
100554 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100555 AllocBase::mechanism(),
100556 arg_01,
100557 arg_02,
100558 arg_03,
100559 arg_04,
100560 arg_05,
100561 arg_06,
100562 arg_07,
100563 arg_08,
100564 arg_09);
100565}
100566#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
100567
100568#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
100569template <class t_HEAD, class t_TAIL_01,
100570 class t_TAIL_02,
100571 class t_TAIL_03,
100572 class t_TAIL_04,
100573 class t_TAIL_05,
100574 class t_TAIL_06,
100575 class t_TAIL_07,
100576 class t_TAIL_08,
100577 class t_TAIL_09,
100578 class t_TAIL_10>
100579template <size_t t_INDEX,
100580 class t_ARG_01,
100581 class t_ARG_02,
100582 class t_ARG_03,
100583 class t_ARG_04,
100584 class t_ARG_05,
100585 class t_ARG_06,
100586 class t_ARG_07,
100587 class t_ARG_08,
100588 class t_ARG_09>
100589inline
100590Variant_Base<t_HEAD, t_TAIL_01,
100591 t_TAIL_02,
100592 t_TAIL_03,
100593 t_TAIL_04,
100594 t_TAIL_05,
100595 t_TAIL_06,
100596 t_TAIL_07,
100597 t_TAIL_08,
100598 t_TAIL_09,
100599 t_TAIL_10,
100600 BSLS_COMPILERFEATURES_FILLT( 8)
100601 >::Variant_Base(bsl::allocator_arg_t,
100602 allocator_type allocator,
100604 const t_ARG_01& arg_01,
100605 const t_ARG_02& arg_02,
100606 const t_ARG_03& arg_03,
100607 const t_ARG_04& arg_04,
100608 const t_ARG_05& arg_05,
100609 const t_ARG_06& arg_06,
100610 const t_ARG_07& arg_07,
100611 const t_ARG_08& arg_08,
100612 const t_ARG_09& arg_09)
100613: AllocBase(allocator)
100614, d_type(t_INDEX)
100615{
100616 typedef typename bsl::remove_cv<
100618 Alt_Type;
100619
100620 BloombergLP::bslma::ConstructionUtil::construct(
100621 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100622 AllocBase::mechanism(),
100623 arg_01,
100624 arg_02,
100625 arg_03,
100626 arg_04,
100627 arg_05,
100628 arg_06,
100629 arg_07,
100630 arg_08,
100631 arg_09);
100632}
100633#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
100634
100635#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
100636template <class t_HEAD, class t_TAIL_01,
100637 class t_TAIL_02,
100638 class t_TAIL_03,
100639 class t_TAIL_04,
100640 class t_TAIL_05,
100641 class t_TAIL_06,
100642 class t_TAIL_07,
100643 class t_TAIL_08,
100644 class t_TAIL_09,
100645 class t_TAIL_10,
100646 class t_TAIL_11>
100647template <size_t t_INDEX,
100648 class t_ARG_01,
100649 class t_ARG_02,
100650 class t_ARG_03,
100651 class t_ARG_04,
100652 class t_ARG_05,
100653 class t_ARG_06,
100654 class t_ARG_07,
100655 class t_ARG_08,
100656 class t_ARG_09>
100657inline
100658Variant_Base<t_HEAD, t_TAIL_01,
100659 t_TAIL_02,
100660 t_TAIL_03,
100661 t_TAIL_04,
100662 t_TAIL_05,
100663 t_TAIL_06,
100664 t_TAIL_07,
100665 t_TAIL_08,
100666 t_TAIL_09,
100667 t_TAIL_10,
100668 t_TAIL_11,
100669 BSLS_COMPILERFEATURES_FILLT( 7)
100670 >::Variant_Base(bsl::allocator_arg_t,
100671 allocator_type allocator,
100673 const t_ARG_01& arg_01,
100674 const t_ARG_02& arg_02,
100675 const t_ARG_03& arg_03,
100676 const t_ARG_04& arg_04,
100677 const t_ARG_05& arg_05,
100678 const t_ARG_06& arg_06,
100679 const t_ARG_07& arg_07,
100680 const t_ARG_08& arg_08,
100681 const t_ARG_09& arg_09)
100682: AllocBase(allocator)
100683, d_type(t_INDEX)
100684{
100685 typedef typename bsl::remove_cv<
100687 Alt_Type;
100688
100689 BloombergLP::bslma::ConstructionUtil::construct(
100690 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100691 AllocBase::mechanism(),
100692 arg_01,
100693 arg_02,
100694 arg_03,
100695 arg_04,
100696 arg_05,
100697 arg_06,
100698 arg_07,
100699 arg_08,
100700 arg_09);
100701}
100702#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
100703
100704#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
100705template <class t_HEAD, class t_TAIL_01,
100706 class t_TAIL_02,
100707 class t_TAIL_03,
100708 class t_TAIL_04,
100709 class t_TAIL_05,
100710 class t_TAIL_06,
100711 class t_TAIL_07,
100712 class t_TAIL_08,
100713 class t_TAIL_09,
100714 class t_TAIL_10,
100715 class t_TAIL_11,
100716 class t_TAIL_12>
100717template <size_t t_INDEX,
100718 class t_ARG_01,
100719 class t_ARG_02,
100720 class t_ARG_03,
100721 class t_ARG_04,
100722 class t_ARG_05,
100723 class t_ARG_06,
100724 class t_ARG_07,
100725 class t_ARG_08,
100726 class t_ARG_09>
100727inline
100728Variant_Base<t_HEAD, t_TAIL_01,
100729 t_TAIL_02,
100730 t_TAIL_03,
100731 t_TAIL_04,
100732 t_TAIL_05,
100733 t_TAIL_06,
100734 t_TAIL_07,
100735 t_TAIL_08,
100736 t_TAIL_09,
100737 t_TAIL_10,
100738 t_TAIL_11,
100739 t_TAIL_12,
100740 BSLS_COMPILERFEATURES_FILLT( 6)
100741 >::Variant_Base(bsl::allocator_arg_t,
100742 allocator_type allocator,
100744 const t_ARG_01& arg_01,
100745 const t_ARG_02& arg_02,
100746 const t_ARG_03& arg_03,
100747 const t_ARG_04& arg_04,
100748 const t_ARG_05& arg_05,
100749 const t_ARG_06& arg_06,
100750 const t_ARG_07& arg_07,
100751 const t_ARG_08& arg_08,
100752 const t_ARG_09& arg_09)
100753: AllocBase(allocator)
100754, d_type(t_INDEX)
100755{
100756 typedef typename bsl::remove_cv<
100758 Alt_Type;
100759
100760 BloombergLP::bslma::ConstructionUtil::construct(
100761 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100762 AllocBase::mechanism(),
100763 arg_01,
100764 arg_02,
100765 arg_03,
100766 arg_04,
100767 arg_05,
100768 arg_06,
100769 arg_07,
100770 arg_08,
100771 arg_09);
100772}
100773#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
100774
100775#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
100776template <class t_HEAD, class t_TAIL_01,
100777 class t_TAIL_02,
100778 class t_TAIL_03,
100779 class t_TAIL_04,
100780 class t_TAIL_05,
100781 class t_TAIL_06,
100782 class t_TAIL_07,
100783 class t_TAIL_08,
100784 class t_TAIL_09,
100785 class t_TAIL_10,
100786 class t_TAIL_11,
100787 class t_TAIL_12,
100788 class t_TAIL_13>
100789template <size_t t_INDEX,
100790 class t_ARG_01,
100791 class t_ARG_02,
100792 class t_ARG_03,
100793 class t_ARG_04,
100794 class t_ARG_05,
100795 class t_ARG_06,
100796 class t_ARG_07,
100797 class t_ARG_08,
100798 class t_ARG_09>
100799inline
100800Variant_Base<t_HEAD, t_TAIL_01,
100801 t_TAIL_02,
100802 t_TAIL_03,
100803 t_TAIL_04,
100804 t_TAIL_05,
100805 t_TAIL_06,
100806 t_TAIL_07,
100807 t_TAIL_08,
100808 t_TAIL_09,
100809 t_TAIL_10,
100810 t_TAIL_11,
100811 t_TAIL_12,
100812 t_TAIL_13,
100813 BSLS_COMPILERFEATURES_FILLT( 5)
100814 >::Variant_Base(bsl::allocator_arg_t,
100815 allocator_type allocator,
100817 const t_ARG_01& arg_01,
100818 const t_ARG_02& arg_02,
100819 const t_ARG_03& arg_03,
100820 const t_ARG_04& arg_04,
100821 const t_ARG_05& arg_05,
100822 const t_ARG_06& arg_06,
100823 const t_ARG_07& arg_07,
100824 const t_ARG_08& arg_08,
100825 const t_ARG_09& arg_09)
100826: AllocBase(allocator)
100827, d_type(t_INDEX)
100828{
100829 typedef typename bsl::remove_cv<
100831 Alt_Type;
100832
100833 BloombergLP::bslma::ConstructionUtil::construct(
100834 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100835 AllocBase::mechanism(),
100836 arg_01,
100837 arg_02,
100838 arg_03,
100839 arg_04,
100840 arg_05,
100841 arg_06,
100842 arg_07,
100843 arg_08,
100844 arg_09);
100845}
100846#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
100847
100848#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
100849template <class t_HEAD, class t_TAIL_01,
100850 class t_TAIL_02,
100851 class t_TAIL_03,
100852 class t_TAIL_04,
100853 class t_TAIL_05,
100854 class t_TAIL_06,
100855 class t_TAIL_07,
100856 class t_TAIL_08,
100857 class t_TAIL_09,
100858 class t_TAIL_10,
100859 class t_TAIL_11,
100860 class t_TAIL_12,
100861 class t_TAIL_13,
100862 class t_TAIL_14>
100863template <size_t t_INDEX,
100864 class t_ARG_01,
100865 class t_ARG_02,
100866 class t_ARG_03,
100867 class t_ARG_04,
100868 class t_ARG_05,
100869 class t_ARG_06,
100870 class t_ARG_07,
100871 class t_ARG_08,
100872 class t_ARG_09>
100873inline
100874Variant_Base<t_HEAD, t_TAIL_01,
100875 t_TAIL_02,
100876 t_TAIL_03,
100877 t_TAIL_04,
100878 t_TAIL_05,
100879 t_TAIL_06,
100880 t_TAIL_07,
100881 t_TAIL_08,
100882 t_TAIL_09,
100883 t_TAIL_10,
100884 t_TAIL_11,
100885 t_TAIL_12,
100886 t_TAIL_13,
100887 t_TAIL_14,
100888 BSLS_COMPILERFEATURES_FILLT( 4)
100889 >::Variant_Base(bsl::allocator_arg_t,
100890 allocator_type allocator,
100892 const t_ARG_01& arg_01,
100893 const t_ARG_02& arg_02,
100894 const t_ARG_03& arg_03,
100895 const t_ARG_04& arg_04,
100896 const t_ARG_05& arg_05,
100897 const t_ARG_06& arg_06,
100898 const t_ARG_07& arg_07,
100899 const t_ARG_08& arg_08,
100900 const t_ARG_09& arg_09)
100901: AllocBase(allocator)
100902, d_type(t_INDEX)
100903{
100904 typedef typename bsl::remove_cv<
100906 Alt_Type;
100907
100908 BloombergLP::bslma::ConstructionUtil::construct(
100909 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100910 AllocBase::mechanism(),
100911 arg_01,
100912 arg_02,
100913 arg_03,
100914 arg_04,
100915 arg_05,
100916 arg_06,
100917 arg_07,
100918 arg_08,
100919 arg_09);
100920}
100921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
100922
100923#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
100924template <class t_HEAD, class t_TAIL_01,
100925 class t_TAIL_02,
100926 class t_TAIL_03,
100927 class t_TAIL_04,
100928 class t_TAIL_05,
100929 class t_TAIL_06,
100930 class t_TAIL_07,
100931 class t_TAIL_08,
100932 class t_TAIL_09,
100933 class t_TAIL_10,
100934 class t_TAIL_11,
100935 class t_TAIL_12,
100936 class t_TAIL_13,
100937 class t_TAIL_14,
100938 class t_TAIL_15>
100939template <size_t t_INDEX,
100940 class t_ARG_01,
100941 class t_ARG_02,
100942 class t_ARG_03,
100943 class t_ARG_04,
100944 class t_ARG_05,
100945 class t_ARG_06,
100946 class t_ARG_07,
100947 class t_ARG_08,
100948 class t_ARG_09>
100949inline
100950Variant_Base<t_HEAD, t_TAIL_01,
100951 t_TAIL_02,
100952 t_TAIL_03,
100953 t_TAIL_04,
100954 t_TAIL_05,
100955 t_TAIL_06,
100956 t_TAIL_07,
100957 t_TAIL_08,
100958 t_TAIL_09,
100959 t_TAIL_10,
100960 t_TAIL_11,
100961 t_TAIL_12,
100962 t_TAIL_13,
100963 t_TAIL_14,
100964 t_TAIL_15,
100965 BSLS_COMPILERFEATURES_FILLT( 3)
100966 >::Variant_Base(bsl::allocator_arg_t,
100967 allocator_type allocator,
100969 const t_ARG_01& arg_01,
100970 const t_ARG_02& arg_02,
100971 const t_ARG_03& arg_03,
100972 const t_ARG_04& arg_04,
100973 const t_ARG_05& arg_05,
100974 const t_ARG_06& arg_06,
100975 const t_ARG_07& arg_07,
100976 const t_ARG_08& arg_08,
100977 const t_ARG_09& arg_09)
100978: AllocBase(allocator)
100979, d_type(t_INDEX)
100980{
100981 typedef typename bsl::remove_cv<
100983 Alt_Type;
100984
100985 BloombergLP::bslma::ConstructionUtil::construct(
100986 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
100987 AllocBase::mechanism(),
100988 arg_01,
100989 arg_02,
100990 arg_03,
100991 arg_04,
100992 arg_05,
100993 arg_06,
100994 arg_07,
100995 arg_08,
100996 arg_09);
100997}
100998#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
100999
101000#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
101001template <class t_HEAD, class t_TAIL_01,
101002 class t_TAIL_02,
101003 class t_TAIL_03,
101004 class t_TAIL_04,
101005 class t_TAIL_05,
101006 class t_TAIL_06,
101007 class t_TAIL_07,
101008 class t_TAIL_08,
101009 class t_TAIL_09,
101010 class t_TAIL_10,
101011 class t_TAIL_11,
101012 class t_TAIL_12,
101013 class t_TAIL_13,
101014 class t_TAIL_14,
101015 class t_TAIL_15,
101016 class t_TAIL_16>
101017template <size_t t_INDEX,
101018 class t_ARG_01,
101019 class t_ARG_02,
101020 class t_ARG_03,
101021 class t_ARG_04,
101022 class t_ARG_05,
101023 class t_ARG_06,
101024 class t_ARG_07,
101025 class t_ARG_08,
101026 class t_ARG_09>
101027inline
101028Variant_Base<t_HEAD, t_TAIL_01,
101029 t_TAIL_02,
101030 t_TAIL_03,
101031 t_TAIL_04,
101032 t_TAIL_05,
101033 t_TAIL_06,
101034 t_TAIL_07,
101035 t_TAIL_08,
101036 t_TAIL_09,
101037 t_TAIL_10,
101038 t_TAIL_11,
101039 t_TAIL_12,
101040 t_TAIL_13,
101041 t_TAIL_14,
101042 t_TAIL_15,
101043 t_TAIL_16,
101044 BSLS_COMPILERFEATURES_FILLT( 2)
101045 >::Variant_Base(bsl::allocator_arg_t,
101046 allocator_type allocator,
101048 const t_ARG_01& arg_01,
101049 const t_ARG_02& arg_02,
101050 const t_ARG_03& arg_03,
101051 const t_ARG_04& arg_04,
101052 const t_ARG_05& arg_05,
101053 const t_ARG_06& arg_06,
101054 const t_ARG_07& arg_07,
101055 const t_ARG_08& arg_08,
101056 const t_ARG_09& arg_09)
101057: AllocBase(allocator)
101058, d_type(t_INDEX)
101059{
101060 typedef typename bsl::remove_cv<
101062 Alt_Type;
101063
101064 BloombergLP::bslma::ConstructionUtil::construct(
101065 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101066 AllocBase::mechanism(),
101067 arg_01,
101068 arg_02,
101069 arg_03,
101070 arg_04,
101071 arg_05,
101072 arg_06,
101073 arg_07,
101074 arg_08,
101075 arg_09);
101076}
101077#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
101078
101079#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
101080template <class t_HEAD, class t_TAIL_01,
101081 class t_TAIL_02,
101082 class t_TAIL_03,
101083 class t_TAIL_04,
101084 class t_TAIL_05,
101085 class t_TAIL_06,
101086 class t_TAIL_07,
101087 class t_TAIL_08,
101088 class t_TAIL_09,
101089 class t_TAIL_10,
101090 class t_TAIL_11,
101091 class t_TAIL_12,
101092 class t_TAIL_13,
101093 class t_TAIL_14,
101094 class t_TAIL_15,
101095 class t_TAIL_16,
101096 class t_TAIL_17>
101097template <size_t t_INDEX,
101098 class t_ARG_01,
101099 class t_ARG_02,
101100 class t_ARG_03,
101101 class t_ARG_04,
101102 class t_ARG_05,
101103 class t_ARG_06,
101104 class t_ARG_07,
101105 class t_ARG_08,
101106 class t_ARG_09>
101107inline
101108Variant_Base<t_HEAD, t_TAIL_01,
101109 t_TAIL_02,
101110 t_TAIL_03,
101111 t_TAIL_04,
101112 t_TAIL_05,
101113 t_TAIL_06,
101114 t_TAIL_07,
101115 t_TAIL_08,
101116 t_TAIL_09,
101117 t_TAIL_10,
101118 t_TAIL_11,
101119 t_TAIL_12,
101120 t_TAIL_13,
101121 t_TAIL_14,
101122 t_TAIL_15,
101123 t_TAIL_16,
101124 t_TAIL_17,
101125 BSLS_COMPILERFEATURES_FILLT( 1)
101126 >::Variant_Base(bsl::allocator_arg_t,
101127 allocator_type allocator,
101129 const t_ARG_01& arg_01,
101130 const t_ARG_02& arg_02,
101131 const t_ARG_03& arg_03,
101132 const t_ARG_04& arg_04,
101133 const t_ARG_05& arg_05,
101134 const t_ARG_06& arg_06,
101135 const t_ARG_07& arg_07,
101136 const t_ARG_08& arg_08,
101137 const t_ARG_09& arg_09)
101138: AllocBase(allocator)
101139, d_type(t_INDEX)
101140{
101141 typedef typename bsl::remove_cv<
101143 Alt_Type;
101144
101145 BloombergLP::bslma::ConstructionUtil::construct(
101146 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101147 AllocBase::mechanism(),
101148 arg_01,
101149 arg_02,
101150 arg_03,
101151 arg_04,
101152 arg_05,
101153 arg_06,
101154 arg_07,
101155 arg_08,
101156 arg_09);
101157}
101158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
101159
101160#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
101161template <class t_HEAD, class t_TAIL_01,
101162 class t_TAIL_02,
101163 class t_TAIL_03,
101164 class t_TAIL_04,
101165 class t_TAIL_05,
101166 class t_TAIL_06,
101167 class t_TAIL_07,
101168 class t_TAIL_08,
101169 class t_TAIL_09,
101170 class t_TAIL_10,
101171 class t_TAIL_11,
101172 class t_TAIL_12,
101173 class t_TAIL_13,
101174 class t_TAIL_14,
101175 class t_TAIL_15,
101176 class t_TAIL_16,
101177 class t_TAIL_17,
101178 class t_TAIL_18>
101179template <size_t t_INDEX,
101180 class t_ARG_01,
101181 class t_ARG_02,
101182 class t_ARG_03,
101183 class t_ARG_04,
101184 class t_ARG_05,
101185 class t_ARG_06,
101186 class t_ARG_07,
101187 class t_ARG_08,
101188 class t_ARG_09>
101189inline
101190Variant_Base<t_HEAD, t_TAIL_01,
101191 t_TAIL_02,
101192 t_TAIL_03,
101193 t_TAIL_04,
101194 t_TAIL_05,
101195 t_TAIL_06,
101196 t_TAIL_07,
101197 t_TAIL_08,
101198 t_TAIL_09,
101199 t_TAIL_10,
101200 t_TAIL_11,
101201 t_TAIL_12,
101202 t_TAIL_13,
101203 t_TAIL_14,
101204 t_TAIL_15,
101205 t_TAIL_16,
101206 t_TAIL_17,
101207 t_TAIL_18,
101208 BSLS_COMPILERFEATURES_FILLT( 0)
101209 >::Variant_Base(bsl::allocator_arg_t,
101210 allocator_type allocator,
101212 const t_ARG_01& arg_01,
101213 const t_ARG_02& arg_02,
101214 const t_ARG_03& arg_03,
101215 const t_ARG_04& arg_04,
101216 const t_ARG_05& arg_05,
101217 const t_ARG_06& arg_06,
101218 const t_ARG_07& arg_07,
101219 const t_ARG_08& arg_08,
101220 const t_ARG_09& arg_09)
101221: AllocBase(allocator)
101222, d_type(t_INDEX)
101223{
101224 typedef typename bsl::remove_cv<
101226 Alt_Type;
101227
101228 BloombergLP::bslma::ConstructionUtil::construct(
101229 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101230 AllocBase::mechanism(),
101231 arg_01,
101232 arg_02,
101233 arg_03,
101234 arg_04,
101235 arg_05,
101236 arg_06,
101237 arg_07,
101238 arg_08,
101239 arg_09);
101240}
101241#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
101242
101243
101244#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
101245template <class t_HEAD>
101246template <size_t t_INDEX,
101247 class t_ARG_01,
101248 class t_ARG_02,
101249 class t_ARG_03,
101250 class t_ARG_04,
101251 class t_ARG_05,
101252 class t_ARG_06,
101253 class t_ARG_07,
101254 class t_ARG_08,
101255 class t_ARG_09,
101256 class t_ARG_10>
101257inline
101258Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
101259 >::Variant_Base(bsl::allocator_arg_t,
101260 allocator_type allocator,
101262 const t_ARG_01& arg_01,
101263 const t_ARG_02& arg_02,
101264 const t_ARG_03& arg_03,
101265 const t_ARG_04& arg_04,
101266 const t_ARG_05& arg_05,
101267 const t_ARG_06& arg_06,
101268 const t_ARG_07& arg_07,
101269 const t_ARG_08& arg_08,
101270 const t_ARG_09& arg_09,
101271 const t_ARG_10& arg_10)
101272: AllocBase(allocator)
101273, d_type(t_INDEX)
101274{
101275 typedef typename bsl::remove_cv<
101277 Alt_Type;
101278
101279 BloombergLP::bslma::ConstructionUtil::construct(
101280 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101281 AllocBase::mechanism(),
101282 arg_01,
101283 arg_02,
101284 arg_03,
101285 arg_04,
101286 arg_05,
101287 arg_06,
101288 arg_07,
101289 arg_08,
101290 arg_09,
101291 arg_10);
101292}
101293#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 0
101294
101295#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
101296template <class t_HEAD, class t_TAIL_01>
101297template <size_t t_INDEX,
101298 class t_ARG_01,
101299 class t_ARG_02,
101300 class t_ARG_03,
101301 class t_ARG_04,
101302 class t_ARG_05,
101303 class t_ARG_06,
101304 class t_ARG_07,
101305 class t_ARG_08,
101306 class t_ARG_09,
101307 class t_ARG_10>
101308inline
101309Variant_Base<t_HEAD, t_TAIL_01,
101310 BSLS_COMPILERFEATURES_FILLT(17)
101311 >::Variant_Base(bsl::allocator_arg_t,
101312 allocator_type allocator,
101314 const t_ARG_01& arg_01,
101315 const t_ARG_02& arg_02,
101316 const t_ARG_03& arg_03,
101317 const t_ARG_04& arg_04,
101318 const t_ARG_05& arg_05,
101319 const t_ARG_06& arg_06,
101320 const t_ARG_07& arg_07,
101321 const t_ARG_08& arg_08,
101322 const t_ARG_09& arg_09,
101323 const t_ARG_10& arg_10)
101324: AllocBase(allocator)
101325, d_type(t_INDEX)
101326{
101327 typedef typename bsl::remove_cv<
101329 Alt_Type;
101330
101331 BloombergLP::bslma::ConstructionUtil::construct(
101332 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101333 AllocBase::mechanism(),
101334 arg_01,
101335 arg_02,
101336 arg_03,
101337 arg_04,
101338 arg_05,
101339 arg_06,
101340 arg_07,
101341 arg_08,
101342 arg_09,
101343 arg_10);
101344}
101345#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 1
101346
101347#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
101348template <class t_HEAD, class t_TAIL_01,
101349 class t_TAIL_02>
101350template <size_t t_INDEX,
101351 class t_ARG_01,
101352 class t_ARG_02,
101353 class t_ARG_03,
101354 class t_ARG_04,
101355 class t_ARG_05,
101356 class t_ARG_06,
101357 class t_ARG_07,
101358 class t_ARG_08,
101359 class t_ARG_09,
101360 class t_ARG_10>
101361inline
101362Variant_Base<t_HEAD, t_TAIL_01,
101363 t_TAIL_02,
101364 BSLS_COMPILERFEATURES_FILLT(16)
101365 >::Variant_Base(bsl::allocator_arg_t,
101366 allocator_type allocator,
101368 const t_ARG_01& arg_01,
101369 const t_ARG_02& arg_02,
101370 const t_ARG_03& arg_03,
101371 const t_ARG_04& arg_04,
101372 const t_ARG_05& arg_05,
101373 const t_ARG_06& arg_06,
101374 const t_ARG_07& arg_07,
101375 const t_ARG_08& arg_08,
101376 const t_ARG_09& arg_09,
101377 const t_ARG_10& arg_10)
101378: AllocBase(allocator)
101379, d_type(t_INDEX)
101380{
101381 typedef typename bsl::remove_cv<
101383 Alt_Type;
101384
101385 BloombergLP::bslma::ConstructionUtil::construct(
101386 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101387 AllocBase::mechanism(),
101388 arg_01,
101389 arg_02,
101390 arg_03,
101391 arg_04,
101392 arg_05,
101393 arg_06,
101394 arg_07,
101395 arg_08,
101396 arg_09,
101397 arg_10);
101398}
101399#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 2
101400
101401#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
101402template <class t_HEAD, class t_TAIL_01,
101403 class t_TAIL_02,
101404 class t_TAIL_03>
101405template <size_t t_INDEX,
101406 class t_ARG_01,
101407 class t_ARG_02,
101408 class t_ARG_03,
101409 class t_ARG_04,
101410 class t_ARG_05,
101411 class t_ARG_06,
101412 class t_ARG_07,
101413 class t_ARG_08,
101414 class t_ARG_09,
101415 class t_ARG_10>
101416inline
101417Variant_Base<t_HEAD, t_TAIL_01,
101418 t_TAIL_02,
101419 t_TAIL_03,
101420 BSLS_COMPILERFEATURES_FILLT(15)
101421 >::Variant_Base(bsl::allocator_arg_t,
101422 allocator_type allocator,
101424 const t_ARG_01& arg_01,
101425 const t_ARG_02& arg_02,
101426 const t_ARG_03& arg_03,
101427 const t_ARG_04& arg_04,
101428 const t_ARG_05& arg_05,
101429 const t_ARG_06& arg_06,
101430 const t_ARG_07& arg_07,
101431 const t_ARG_08& arg_08,
101432 const t_ARG_09& arg_09,
101433 const t_ARG_10& arg_10)
101434: AllocBase(allocator)
101435, d_type(t_INDEX)
101436{
101437 typedef typename bsl::remove_cv<
101439 Alt_Type;
101440
101441 BloombergLP::bslma::ConstructionUtil::construct(
101442 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101443 AllocBase::mechanism(),
101444 arg_01,
101445 arg_02,
101446 arg_03,
101447 arg_04,
101448 arg_05,
101449 arg_06,
101450 arg_07,
101451 arg_08,
101452 arg_09,
101453 arg_10);
101454}
101455#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 3
101456
101457#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
101458template <class t_HEAD, class t_TAIL_01,
101459 class t_TAIL_02,
101460 class t_TAIL_03,
101461 class t_TAIL_04>
101462template <size_t t_INDEX,
101463 class t_ARG_01,
101464 class t_ARG_02,
101465 class t_ARG_03,
101466 class t_ARG_04,
101467 class t_ARG_05,
101468 class t_ARG_06,
101469 class t_ARG_07,
101470 class t_ARG_08,
101471 class t_ARG_09,
101472 class t_ARG_10>
101473inline
101474Variant_Base<t_HEAD, t_TAIL_01,
101475 t_TAIL_02,
101476 t_TAIL_03,
101477 t_TAIL_04,
101478 BSLS_COMPILERFEATURES_FILLT(14)
101479 >::Variant_Base(bsl::allocator_arg_t,
101480 allocator_type allocator,
101482 const t_ARG_01& arg_01,
101483 const t_ARG_02& arg_02,
101484 const t_ARG_03& arg_03,
101485 const t_ARG_04& arg_04,
101486 const t_ARG_05& arg_05,
101487 const t_ARG_06& arg_06,
101488 const t_ARG_07& arg_07,
101489 const t_ARG_08& arg_08,
101490 const t_ARG_09& arg_09,
101491 const t_ARG_10& arg_10)
101492: AllocBase(allocator)
101493, d_type(t_INDEX)
101494{
101495 typedef typename bsl::remove_cv<
101497 Alt_Type;
101498
101499 BloombergLP::bslma::ConstructionUtil::construct(
101500 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101501 AllocBase::mechanism(),
101502 arg_01,
101503 arg_02,
101504 arg_03,
101505 arg_04,
101506 arg_05,
101507 arg_06,
101508 arg_07,
101509 arg_08,
101510 arg_09,
101511 arg_10);
101512}
101513#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 4
101514
101515#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
101516template <class t_HEAD, class t_TAIL_01,
101517 class t_TAIL_02,
101518 class t_TAIL_03,
101519 class t_TAIL_04,
101520 class t_TAIL_05>
101521template <size_t t_INDEX,
101522 class t_ARG_01,
101523 class t_ARG_02,
101524 class t_ARG_03,
101525 class t_ARG_04,
101526 class t_ARG_05,
101527 class t_ARG_06,
101528 class t_ARG_07,
101529 class t_ARG_08,
101530 class t_ARG_09,
101531 class t_ARG_10>
101532inline
101533Variant_Base<t_HEAD, t_TAIL_01,
101534 t_TAIL_02,
101535 t_TAIL_03,
101536 t_TAIL_04,
101537 t_TAIL_05,
101538 BSLS_COMPILERFEATURES_FILLT(13)
101539 >::Variant_Base(bsl::allocator_arg_t,
101540 allocator_type allocator,
101542 const t_ARG_01& arg_01,
101543 const t_ARG_02& arg_02,
101544 const t_ARG_03& arg_03,
101545 const t_ARG_04& arg_04,
101546 const t_ARG_05& arg_05,
101547 const t_ARG_06& arg_06,
101548 const t_ARG_07& arg_07,
101549 const t_ARG_08& arg_08,
101550 const t_ARG_09& arg_09,
101551 const t_ARG_10& arg_10)
101552: AllocBase(allocator)
101553, d_type(t_INDEX)
101554{
101555 typedef typename bsl::remove_cv<
101557 Alt_Type;
101558
101559 BloombergLP::bslma::ConstructionUtil::construct(
101560 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101561 AllocBase::mechanism(),
101562 arg_01,
101563 arg_02,
101564 arg_03,
101565 arg_04,
101566 arg_05,
101567 arg_06,
101568 arg_07,
101569 arg_08,
101570 arg_09,
101571 arg_10);
101572}
101573#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 5
101574
101575#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
101576template <class t_HEAD, class t_TAIL_01,
101577 class t_TAIL_02,
101578 class t_TAIL_03,
101579 class t_TAIL_04,
101580 class t_TAIL_05,
101581 class t_TAIL_06>
101582template <size_t t_INDEX,
101583 class t_ARG_01,
101584 class t_ARG_02,
101585 class t_ARG_03,
101586 class t_ARG_04,
101587 class t_ARG_05,
101588 class t_ARG_06,
101589 class t_ARG_07,
101590 class t_ARG_08,
101591 class t_ARG_09,
101592 class t_ARG_10>
101593inline
101594Variant_Base<t_HEAD, t_TAIL_01,
101595 t_TAIL_02,
101596 t_TAIL_03,
101597 t_TAIL_04,
101598 t_TAIL_05,
101599 t_TAIL_06,
101600 BSLS_COMPILERFEATURES_FILLT(12)
101601 >::Variant_Base(bsl::allocator_arg_t,
101602 allocator_type allocator,
101604 const t_ARG_01& arg_01,
101605 const t_ARG_02& arg_02,
101606 const t_ARG_03& arg_03,
101607 const t_ARG_04& arg_04,
101608 const t_ARG_05& arg_05,
101609 const t_ARG_06& arg_06,
101610 const t_ARG_07& arg_07,
101611 const t_ARG_08& arg_08,
101612 const t_ARG_09& arg_09,
101613 const t_ARG_10& arg_10)
101614: AllocBase(allocator)
101615, d_type(t_INDEX)
101616{
101617 typedef typename bsl::remove_cv<
101619 Alt_Type;
101620
101621 BloombergLP::bslma::ConstructionUtil::construct(
101622 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101623 AllocBase::mechanism(),
101624 arg_01,
101625 arg_02,
101626 arg_03,
101627 arg_04,
101628 arg_05,
101629 arg_06,
101630 arg_07,
101631 arg_08,
101632 arg_09,
101633 arg_10);
101634}
101635#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 6
101636
101637#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
101638template <class t_HEAD, class t_TAIL_01,
101639 class t_TAIL_02,
101640 class t_TAIL_03,
101641 class t_TAIL_04,
101642 class t_TAIL_05,
101643 class t_TAIL_06,
101644 class t_TAIL_07>
101645template <size_t t_INDEX,
101646 class t_ARG_01,
101647 class t_ARG_02,
101648 class t_ARG_03,
101649 class t_ARG_04,
101650 class t_ARG_05,
101651 class t_ARG_06,
101652 class t_ARG_07,
101653 class t_ARG_08,
101654 class t_ARG_09,
101655 class t_ARG_10>
101656inline
101657Variant_Base<t_HEAD, t_TAIL_01,
101658 t_TAIL_02,
101659 t_TAIL_03,
101660 t_TAIL_04,
101661 t_TAIL_05,
101662 t_TAIL_06,
101663 t_TAIL_07,
101664 BSLS_COMPILERFEATURES_FILLT(11)
101665 >::Variant_Base(bsl::allocator_arg_t,
101666 allocator_type allocator,
101668 const t_ARG_01& arg_01,
101669 const t_ARG_02& arg_02,
101670 const t_ARG_03& arg_03,
101671 const t_ARG_04& arg_04,
101672 const t_ARG_05& arg_05,
101673 const t_ARG_06& arg_06,
101674 const t_ARG_07& arg_07,
101675 const t_ARG_08& arg_08,
101676 const t_ARG_09& arg_09,
101677 const t_ARG_10& arg_10)
101678: AllocBase(allocator)
101679, d_type(t_INDEX)
101680{
101681 typedef typename bsl::remove_cv<
101683 Alt_Type;
101684
101685 BloombergLP::bslma::ConstructionUtil::construct(
101686 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101687 AllocBase::mechanism(),
101688 arg_01,
101689 arg_02,
101690 arg_03,
101691 arg_04,
101692 arg_05,
101693 arg_06,
101694 arg_07,
101695 arg_08,
101696 arg_09,
101697 arg_10);
101698}
101699#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 7
101700
101701#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
101702template <class t_HEAD, class t_TAIL_01,
101703 class t_TAIL_02,
101704 class t_TAIL_03,
101705 class t_TAIL_04,
101706 class t_TAIL_05,
101707 class t_TAIL_06,
101708 class t_TAIL_07,
101709 class t_TAIL_08>
101710template <size_t t_INDEX,
101711 class t_ARG_01,
101712 class t_ARG_02,
101713 class t_ARG_03,
101714 class t_ARG_04,
101715 class t_ARG_05,
101716 class t_ARG_06,
101717 class t_ARG_07,
101718 class t_ARG_08,
101719 class t_ARG_09,
101720 class t_ARG_10>
101721inline
101722Variant_Base<t_HEAD, t_TAIL_01,
101723 t_TAIL_02,
101724 t_TAIL_03,
101725 t_TAIL_04,
101726 t_TAIL_05,
101727 t_TAIL_06,
101728 t_TAIL_07,
101729 t_TAIL_08,
101730 BSLS_COMPILERFEATURES_FILLT(10)
101731 >::Variant_Base(bsl::allocator_arg_t,
101732 allocator_type allocator,
101734 const t_ARG_01& arg_01,
101735 const t_ARG_02& arg_02,
101736 const t_ARG_03& arg_03,
101737 const t_ARG_04& arg_04,
101738 const t_ARG_05& arg_05,
101739 const t_ARG_06& arg_06,
101740 const t_ARG_07& arg_07,
101741 const t_ARG_08& arg_08,
101742 const t_ARG_09& arg_09,
101743 const t_ARG_10& arg_10)
101744: AllocBase(allocator)
101745, d_type(t_INDEX)
101746{
101747 typedef typename bsl::remove_cv<
101749 Alt_Type;
101750
101751 BloombergLP::bslma::ConstructionUtil::construct(
101752 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101753 AllocBase::mechanism(),
101754 arg_01,
101755 arg_02,
101756 arg_03,
101757 arg_04,
101758 arg_05,
101759 arg_06,
101760 arg_07,
101761 arg_08,
101762 arg_09,
101763 arg_10);
101764}
101765#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 8
101766
101767#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
101768template <class t_HEAD, class t_TAIL_01,
101769 class t_TAIL_02,
101770 class t_TAIL_03,
101771 class t_TAIL_04,
101772 class t_TAIL_05,
101773 class t_TAIL_06,
101774 class t_TAIL_07,
101775 class t_TAIL_08,
101776 class t_TAIL_09>
101777template <size_t t_INDEX,
101778 class t_ARG_01,
101779 class t_ARG_02,
101780 class t_ARG_03,
101781 class t_ARG_04,
101782 class t_ARG_05,
101783 class t_ARG_06,
101784 class t_ARG_07,
101785 class t_ARG_08,
101786 class t_ARG_09,
101787 class t_ARG_10>
101788inline
101789Variant_Base<t_HEAD, t_TAIL_01,
101790 t_TAIL_02,
101791 t_TAIL_03,
101792 t_TAIL_04,
101793 t_TAIL_05,
101794 t_TAIL_06,
101795 t_TAIL_07,
101796 t_TAIL_08,
101797 t_TAIL_09,
101798 BSLS_COMPILERFEATURES_FILLT( 9)
101799 >::Variant_Base(bsl::allocator_arg_t,
101800 allocator_type allocator,
101802 const t_ARG_01& arg_01,
101803 const t_ARG_02& arg_02,
101804 const t_ARG_03& arg_03,
101805 const t_ARG_04& arg_04,
101806 const t_ARG_05& arg_05,
101807 const t_ARG_06& arg_06,
101808 const t_ARG_07& arg_07,
101809 const t_ARG_08& arg_08,
101810 const t_ARG_09& arg_09,
101811 const t_ARG_10& arg_10)
101812: AllocBase(allocator)
101813, d_type(t_INDEX)
101814{
101815 typedef typename bsl::remove_cv<
101817 Alt_Type;
101818
101819 BloombergLP::bslma::ConstructionUtil::construct(
101820 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101821 AllocBase::mechanism(),
101822 arg_01,
101823 arg_02,
101824 arg_03,
101825 arg_04,
101826 arg_05,
101827 arg_06,
101828 arg_07,
101829 arg_08,
101830 arg_09,
101831 arg_10);
101832}
101833#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 9
101834
101835#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
101836template <class t_HEAD, class t_TAIL_01,
101837 class t_TAIL_02,
101838 class t_TAIL_03,
101839 class t_TAIL_04,
101840 class t_TAIL_05,
101841 class t_TAIL_06,
101842 class t_TAIL_07,
101843 class t_TAIL_08,
101844 class t_TAIL_09,
101845 class t_TAIL_10>
101846template <size_t t_INDEX,
101847 class t_ARG_01,
101848 class t_ARG_02,
101849 class t_ARG_03,
101850 class t_ARG_04,
101851 class t_ARG_05,
101852 class t_ARG_06,
101853 class t_ARG_07,
101854 class t_ARG_08,
101855 class t_ARG_09,
101856 class t_ARG_10>
101857inline
101858Variant_Base<t_HEAD, t_TAIL_01,
101859 t_TAIL_02,
101860 t_TAIL_03,
101861 t_TAIL_04,
101862 t_TAIL_05,
101863 t_TAIL_06,
101864 t_TAIL_07,
101865 t_TAIL_08,
101866 t_TAIL_09,
101867 t_TAIL_10,
101868 BSLS_COMPILERFEATURES_FILLT( 8)
101869 >::Variant_Base(bsl::allocator_arg_t,
101870 allocator_type allocator,
101872 const t_ARG_01& arg_01,
101873 const t_ARG_02& arg_02,
101874 const t_ARG_03& arg_03,
101875 const t_ARG_04& arg_04,
101876 const t_ARG_05& arg_05,
101877 const t_ARG_06& arg_06,
101878 const t_ARG_07& arg_07,
101879 const t_ARG_08& arg_08,
101880 const t_ARG_09& arg_09,
101881 const t_ARG_10& arg_10)
101882: AllocBase(allocator)
101883, d_type(t_INDEX)
101884{
101885 typedef typename bsl::remove_cv<
101887 Alt_Type;
101888
101889 BloombergLP::bslma::ConstructionUtil::construct(
101890 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101891 AllocBase::mechanism(),
101892 arg_01,
101893 arg_02,
101894 arg_03,
101895 arg_04,
101896 arg_05,
101897 arg_06,
101898 arg_07,
101899 arg_08,
101900 arg_09,
101901 arg_10);
101902}
101903#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 10
101904
101905#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
101906template <class t_HEAD, class t_TAIL_01,
101907 class t_TAIL_02,
101908 class t_TAIL_03,
101909 class t_TAIL_04,
101910 class t_TAIL_05,
101911 class t_TAIL_06,
101912 class t_TAIL_07,
101913 class t_TAIL_08,
101914 class t_TAIL_09,
101915 class t_TAIL_10,
101916 class t_TAIL_11>
101917template <size_t t_INDEX,
101918 class t_ARG_01,
101919 class t_ARG_02,
101920 class t_ARG_03,
101921 class t_ARG_04,
101922 class t_ARG_05,
101923 class t_ARG_06,
101924 class t_ARG_07,
101925 class t_ARG_08,
101926 class t_ARG_09,
101927 class t_ARG_10>
101928inline
101929Variant_Base<t_HEAD, t_TAIL_01,
101930 t_TAIL_02,
101931 t_TAIL_03,
101932 t_TAIL_04,
101933 t_TAIL_05,
101934 t_TAIL_06,
101935 t_TAIL_07,
101936 t_TAIL_08,
101937 t_TAIL_09,
101938 t_TAIL_10,
101939 t_TAIL_11,
101940 BSLS_COMPILERFEATURES_FILLT( 7)
101941 >::Variant_Base(bsl::allocator_arg_t,
101942 allocator_type allocator,
101944 const t_ARG_01& arg_01,
101945 const t_ARG_02& arg_02,
101946 const t_ARG_03& arg_03,
101947 const t_ARG_04& arg_04,
101948 const t_ARG_05& arg_05,
101949 const t_ARG_06& arg_06,
101950 const t_ARG_07& arg_07,
101951 const t_ARG_08& arg_08,
101952 const t_ARG_09& arg_09,
101953 const t_ARG_10& arg_10)
101954: AllocBase(allocator)
101955, d_type(t_INDEX)
101956{
101957 typedef typename bsl::remove_cv<
101959 Alt_Type;
101960
101961 BloombergLP::bslma::ConstructionUtil::construct(
101962 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
101963 AllocBase::mechanism(),
101964 arg_01,
101965 arg_02,
101966 arg_03,
101967 arg_04,
101968 arg_05,
101969 arg_06,
101970 arg_07,
101971 arg_08,
101972 arg_09,
101973 arg_10);
101974}
101975#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 11
101976
101977#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
101978template <class t_HEAD, class t_TAIL_01,
101979 class t_TAIL_02,
101980 class t_TAIL_03,
101981 class t_TAIL_04,
101982 class t_TAIL_05,
101983 class t_TAIL_06,
101984 class t_TAIL_07,
101985 class t_TAIL_08,
101986 class t_TAIL_09,
101987 class t_TAIL_10,
101988 class t_TAIL_11,
101989 class t_TAIL_12>
101990template <size_t t_INDEX,
101991 class t_ARG_01,
101992 class t_ARG_02,
101993 class t_ARG_03,
101994 class t_ARG_04,
101995 class t_ARG_05,
101996 class t_ARG_06,
101997 class t_ARG_07,
101998 class t_ARG_08,
101999 class t_ARG_09,
102000 class t_ARG_10>
102001inline
102002Variant_Base<t_HEAD, t_TAIL_01,
102003 t_TAIL_02,
102004 t_TAIL_03,
102005 t_TAIL_04,
102006 t_TAIL_05,
102007 t_TAIL_06,
102008 t_TAIL_07,
102009 t_TAIL_08,
102010 t_TAIL_09,
102011 t_TAIL_10,
102012 t_TAIL_11,
102013 t_TAIL_12,
102014 BSLS_COMPILERFEATURES_FILLT( 6)
102015 >::Variant_Base(bsl::allocator_arg_t,
102016 allocator_type allocator,
102018 const t_ARG_01& arg_01,
102019 const t_ARG_02& arg_02,
102020 const t_ARG_03& arg_03,
102021 const t_ARG_04& arg_04,
102022 const t_ARG_05& arg_05,
102023 const t_ARG_06& arg_06,
102024 const t_ARG_07& arg_07,
102025 const t_ARG_08& arg_08,
102026 const t_ARG_09& arg_09,
102027 const t_ARG_10& arg_10)
102028: AllocBase(allocator)
102029, d_type(t_INDEX)
102030{
102031 typedef typename bsl::remove_cv<
102033 Alt_Type;
102034
102035 BloombergLP::bslma::ConstructionUtil::construct(
102036 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102037 AllocBase::mechanism(),
102038 arg_01,
102039 arg_02,
102040 arg_03,
102041 arg_04,
102042 arg_05,
102043 arg_06,
102044 arg_07,
102045 arg_08,
102046 arg_09,
102047 arg_10);
102048}
102049#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 12
102050
102051#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
102052template <class t_HEAD, class t_TAIL_01,
102053 class t_TAIL_02,
102054 class t_TAIL_03,
102055 class t_TAIL_04,
102056 class t_TAIL_05,
102057 class t_TAIL_06,
102058 class t_TAIL_07,
102059 class t_TAIL_08,
102060 class t_TAIL_09,
102061 class t_TAIL_10,
102062 class t_TAIL_11,
102063 class t_TAIL_12,
102064 class t_TAIL_13>
102065template <size_t t_INDEX,
102066 class t_ARG_01,
102067 class t_ARG_02,
102068 class t_ARG_03,
102069 class t_ARG_04,
102070 class t_ARG_05,
102071 class t_ARG_06,
102072 class t_ARG_07,
102073 class t_ARG_08,
102074 class t_ARG_09,
102075 class t_ARG_10>
102076inline
102077Variant_Base<t_HEAD, t_TAIL_01,
102078 t_TAIL_02,
102079 t_TAIL_03,
102080 t_TAIL_04,
102081 t_TAIL_05,
102082 t_TAIL_06,
102083 t_TAIL_07,
102084 t_TAIL_08,
102085 t_TAIL_09,
102086 t_TAIL_10,
102087 t_TAIL_11,
102088 t_TAIL_12,
102089 t_TAIL_13,
102090 BSLS_COMPILERFEATURES_FILLT( 5)
102091 >::Variant_Base(bsl::allocator_arg_t,
102092 allocator_type allocator,
102094 const t_ARG_01& arg_01,
102095 const t_ARG_02& arg_02,
102096 const t_ARG_03& arg_03,
102097 const t_ARG_04& arg_04,
102098 const t_ARG_05& arg_05,
102099 const t_ARG_06& arg_06,
102100 const t_ARG_07& arg_07,
102101 const t_ARG_08& arg_08,
102102 const t_ARG_09& arg_09,
102103 const t_ARG_10& arg_10)
102104: AllocBase(allocator)
102105, d_type(t_INDEX)
102106{
102107 typedef typename bsl::remove_cv<
102109 Alt_Type;
102110
102111 BloombergLP::bslma::ConstructionUtil::construct(
102112 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102113 AllocBase::mechanism(),
102114 arg_01,
102115 arg_02,
102116 arg_03,
102117 arg_04,
102118 arg_05,
102119 arg_06,
102120 arg_07,
102121 arg_08,
102122 arg_09,
102123 arg_10);
102124}
102125#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 13
102126
102127#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
102128template <class t_HEAD, class t_TAIL_01,
102129 class t_TAIL_02,
102130 class t_TAIL_03,
102131 class t_TAIL_04,
102132 class t_TAIL_05,
102133 class t_TAIL_06,
102134 class t_TAIL_07,
102135 class t_TAIL_08,
102136 class t_TAIL_09,
102137 class t_TAIL_10,
102138 class t_TAIL_11,
102139 class t_TAIL_12,
102140 class t_TAIL_13,
102141 class t_TAIL_14>
102142template <size_t t_INDEX,
102143 class t_ARG_01,
102144 class t_ARG_02,
102145 class t_ARG_03,
102146 class t_ARG_04,
102147 class t_ARG_05,
102148 class t_ARG_06,
102149 class t_ARG_07,
102150 class t_ARG_08,
102151 class t_ARG_09,
102152 class t_ARG_10>
102153inline
102154Variant_Base<t_HEAD, t_TAIL_01,
102155 t_TAIL_02,
102156 t_TAIL_03,
102157 t_TAIL_04,
102158 t_TAIL_05,
102159 t_TAIL_06,
102160 t_TAIL_07,
102161 t_TAIL_08,
102162 t_TAIL_09,
102163 t_TAIL_10,
102164 t_TAIL_11,
102165 t_TAIL_12,
102166 t_TAIL_13,
102167 t_TAIL_14,
102168 BSLS_COMPILERFEATURES_FILLT( 4)
102169 >::Variant_Base(bsl::allocator_arg_t,
102170 allocator_type allocator,
102172 const t_ARG_01& arg_01,
102173 const t_ARG_02& arg_02,
102174 const t_ARG_03& arg_03,
102175 const t_ARG_04& arg_04,
102176 const t_ARG_05& arg_05,
102177 const t_ARG_06& arg_06,
102178 const t_ARG_07& arg_07,
102179 const t_ARG_08& arg_08,
102180 const t_ARG_09& arg_09,
102181 const t_ARG_10& arg_10)
102182: AllocBase(allocator)
102183, d_type(t_INDEX)
102184{
102185 typedef typename bsl::remove_cv<
102187 Alt_Type;
102188
102189 BloombergLP::bslma::ConstructionUtil::construct(
102190 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102191 AllocBase::mechanism(),
102192 arg_01,
102193 arg_02,
102194 arg_03,
102195 arg_04,
102196 arg_05,
102197 arg_06,
102198 arg_07,
102199 arg_08,
102200 arg_09,
102201 arg_10);
102202}
102203#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 14
102204
102205#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
102206template <class t_HEAD, class t_TAIL_01,
102207 class t_TAIL_02,
102208 class t_TAIL_03,
102209 class t_TAIL_04,
102210 class t_TAIL_05,
102211 class t_TAIL_06,
102212 class t_TAIL_07,
102213 class t_TAIL_08,
102214 class t_TAIL_09,
102215 class t_TAIL_10,
102216 class t_TAIL_11,
102217 class t_TAIL_12,
102218 class t_TAIL_13,
102219 class t_TAIL_14,
102220 class t_TAIL_15>
102221template <size_t t_INDEX,
102222 class t_ARG_01,
102223 class t_ARG_02,
102224 class t_ARG_03,
102225 class t_ARG_04,
102226 class t_ARG_05,
102227 class t_ARG_06,
102228 class t_ARG_07,
102229 class t_ARG_08,
102230 class t_ARG_09,
102231 class t_ARG_10>
102232inline
102233Variant_Base<t_HEAD, t_TAIL_01,
102234 t_TAIL_02,
102235 t_TAIL_03,
102236 t_TAIL_04,
102237 t_TAIL_05,
102238 t_TAIL_06,
102239 t_TAIL_07,
102240 t_TAIL_08,
102241 t_TAIL_09,
102242 t_TAIL_10,
102243 t_TAIL_11,
102244 t_TAIL_12,
102245 t_TAIL_13,
102246 t_TAIL_14,
102247 t_TAIL_15,
102248 BSLS_COMPILERFEATURES_FILLT( 3)
102249 >::Variant_Base(bsl::allocator_arg_t,
102250 allocator_type allocator,
102252 const t_ARG_01& arg_01,
102253 const t_ARG_02& arg_02,
102254 const t_ARG_03& arg_03,
102255 const t_ARG_04& arg_04,
102256 const t_ARG_05& arg_05,
102257 const t_ARG_06& arg_06,
102258 const t_ARG_07& arg_07,
102259 const t_ARG_08& arg_08,
102260 const t_ARG_09& arg_09,
102261 const t_ARG_10& arg_10)
102262: AllocBase(allocator)
102263, d_type(t_INDEX)
102264{
102265 typedef typename bsl::remove_cv<
102267 Alt_Type;
102268
102269 BloombergLP::bslma::ConstructionUtil::construct(
102270 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102271 AllocBase::mechanism(),
102272 arg_01,
102273 arg_02,
102274 arg_03,
102275 arg_04,
102276 arg_05,
102277 arg_06,
102278 arg_07,
102279 arg_08,
102280 arg_09,
102281 arg_10);
102282}
102283#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 15
102284
102285#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
102286template <class t_HEAD, class t_TAIL_01,
102287 class t_TAIL_02,
102288 class t_TAIL_03,
102289 class t_TAIL_04,
102290 class t_TAIL_05,
102291 class t_TAIL_06,
102292 class t_TAIL_07,
102293 class t_TAIL_08,
102294 class t_TAIL_09,
102295 class t_TAIL_10,
102296 class t_TAIL_11,
102297 class t_TAIL_12,
102298 class t_TAIL_13,
102299 class t_TAIL_14,
102300 class t_TAIL_15,
102301 class t_TAIL_16>
102302template <size_t t_INDEX,
102303 class t_ARG_01,
102304 class t_ARG_02,
102305 class t_ARG_03,
102306 class t_ARG_04,
102307 class t_ARG_05,
102308 class t_ARG_06,
102309 class t_ARG_07,
102310 class t_ARG_08,
102311 class t_ARG_09,
102312 class t_ARG_10>
102313inline
102314Variant_Base<t_HEAD, t_TAIL_01,
102315 t_TAIL_02,
102316 t_TAIL_03,
102317 t_TAIL_04,
102318 t_TAIL_05,
102319 t_TAIL_06,
102320 t_TAIL_07,
102321 t_TAIL_08,
102322 t_TAIL_09,
102323 t_TAIL_10,
102324 t_TAIL_11,
102325 t_TAIL_12,
102326 t_TAIL_13,
102327 t_TAIL_14,
102328 t_TAIL_15,
102329 t_TAIL_16,
102330 BSLS_COMPILERFEATURES_FILLT( 2)
102331 >::Variant_Base(bsl::allocator_arg_t,
102332 allocator_type allocator,
102334 const t_ARG_01& arg_01,
102335 const t_ARG_02& arg_02,
102336 const t_ARG_03& arg_03,
102337 const t_ARG_04& arg_04,
102338 const t_ARG_05& arg_05,
102339 const t_ARG_06& arg_06,
102340 const t_ARG_07& arg_07,
102341 const t_ARG_08& arg_08,
102342 const t_ARG_09& arg_09,
102343 const t_ARG_10& arg_10)
102344: AllocBase(allocator)
102345, d_type(t_INDEX)
102346{
102347 typedef typename bsl::remove_cv<
102349 Alt_Type;
102350
102351 BloombergLP::bslma::ConstructionUtil::construct(
102352 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102353 AllocBase::mechanism(),
102354 arg_01,
102355 arg_02,
102356 arg_03,
102357 arg_04,
102358 arg_05,
102359 arg_06,
102360 arg_07,
102361 arg_08,
102362 arg_09,
102363 arg_10);
102364}
102365#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 16
102366
102367#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
102368template <class t_HEAD, class t_TAIL_01,
102369 class t_TAIL_02,
102370 class t_TAIL_03,
102371 class t_TAIL_04,
102372 class t_TAIL_05,
102373 class t_TAIL_06,
102374 class t_TAIL_07,
102375 class t_TAIL_08,
102376 class t_TAIL_09,
102377 class t_TAIL_10,
102378 class t_TAIL_11,
102379 class t_TAIL_12,
102380 class t_TAIL_13,
102381 class t_TAIL_14,
102382 class t_TAIL_15,
102383 class t_TAIL_16,
102384 class t_TAIL_17>
102385template <size_t t_INDEX,
102386 class t_ARG_01,
102387 class t_ARG_02,
102388 class t_ARG_03,
102389 class t_ARG_04,
102390 class t_ARG_05,
102391 class t_ARG_06,
102392 class t_ARG_07,
102393 class t_ARG_08,
102394 class t_ARG_09,
102395 class t_ARG_10>
102396inline
102397Variant_Base<t_HEAD, t_TAIL_01,
102398 t_TAIL_02,
102399 t_TAIL_03,
102400 t_TAIL_04,
102401 t_TAIL_05,
102402 t_TAIL_06,
102403 t_TAIL_07,
102404 t_TAIL_08,
102405 t_TAIL_09,
102406 t_TAIL_10,
102407 t_TAIL_11,
102408 t_TAIL_12,
102409 t_TAIL_13,
102410 t_TAIL_14,
102411 t_TAIL_15,
102412 t_TAIL_16,
102413 t_TAIL_17,
102414 BSLS_COMPILERFEATURES_FILLT( 1)
102415 >::Variant_Base(bsl::allocator_arg_t,
102416 allocator_type allocator,
102418 const t_ARG_01& arg_01,
102419 const t_ARG_02& arg_02,
102420 const t_ARG_03& arg_03,
102421 const t_ARG_04& arg_04,
102422 const t_ARG_05& arg_05,
102423 const t_ARG_06& arg_06,
102424 const t_ARG_07& arg_07,
102425 const t_ARG_08& arg_08,
102426 const t_ARG_09& arg_09,
102427 const t_ARG_10& arg_10)
102428: AllocBase(allocator)
102429, d_type(t_INDEX)
102430{
102431 typedef typename bsl::remove_cv<
102433 Alt_Type;
102434
102435 BloombergLP::bslma::ConstructionUtil::construct(
102436 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102437 AllocBase::mechanism(),
102438 arg_01,
102439 arg_02,
102440 arg_03,
102441 arg_04,
102442 arg_05,
102443 arg_06,
102444 arg_07,
102445 arg_08,
102446 arg_09,
102447 arg_10);
102448}
102449#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 17
102450
102451#if BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
102452template <class t_HEAD, class t_TAIL_01,
102453 class t_TAIL_02,
102454 class t_TAIL_03,
102455 class t_TAIL_04,
102456 class t_TAIL_05,
102457 class t_TAIL_06,
102458 class t_TAIL_07,
102459 class t_TAIL_08,
102460 class t_TAIL_09,
102461 class t_TAIL_10,
102462 class t_TAIL_11,
102463 class t_TAIL_12,
102464 class t_TAIL_13,
102465 class t_TAIL_14,
102466 class t_TAIL_15,
102467 class t_TAIL_16,
102468 class t_TAIL_17,
102469 class t_TAIL_18>
102470template <size_t t_INDEX,
102471 class t_ARG_01,
102472 class t_ARG_02,
102473 class t_ARG_03,
102474 class t_ARG_04,
102475 class t_ARG_05,
102476 class t_ARG_06,
102477 class t_ARG_07,
102478 class t_ARG_08,
102479 class t_ARG_09,
102480 class t_ARG_10>
102481inline
102482Variant_Base<t_HEAD, t_TAIL_01,
102483 t_TAIL_02,
102484 t_TAIL_03,
102485 t_TAIL_04,
102486 t_TAIL_05,
102487 t_TAIL_06,
102488 t_TAIL_07,
102489 t_TAIL_08,
102490 t_TAIL_09,
102491 t_TAIL_10,
102492 t_TAIL_11,
102493 t_TAIL_12,
102494 t_TAIL_13,
102495 t_TAIL_14,
102496 t_TAIL_15,
102497 t_TAIL_16,
102498 t_TAIL_17,
102499 t_TAIL_18,
102500 BSLS_COMPILERFEATURES_FILLT( 0)
102501 >::Variant_Base(bsl::allocator_arg_t,
102502 allocator_type allocator,
102504 const t_ARG_01& arg_01,
102505 const t_ARG_02& arg_02,
102506 const t_ARG_03& arg_03,
102507 const t_ARG_04& arg_04,
102508 const t_ARG_05& arg_05,
102509 const t_ARG_06& arg_06,
102510 const t_ARG_07& arg_07,
102511 const t_ARG_08& arg_08,
102512 const t_ARG_09& arg_09,
102513 const t_ARG_10& arg_10)
102514: AllocBase(allocator)
102515, d_type(t_INDEX)
102516{
102517 typedef typename bsl::remove_cv<
102519 Alt_Type;
102520
102521 BloombergLP::bslma::ConstructionUtil::construct(
102522 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102523 AllocBase::mechanism(),
102524 arg_01,
102525 arg_02,
102526 arg_03,
102527 arg_04,
102528 arg_05,
102529 arg_06,
102530 arg_07,
102531 arg_08,
102532 arg_09,
102533 arg_10);
102534}
102535#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_L >= 18
102536
102537#else
102538// The generated code below is a workaround for the absence of perfect
102539// forwarding in some compilers.
102540template <class t_HEAD, class... t_TAIL>
102541inline
102542Variant_Base<t_HEAD, t_TAIL...>::Variant_Base()
102543: AllocBase()
102544, d_type(0)
102545{
102546 typedef typename bsl::remove_cv<t_HEAD>::type Alt_Type;
102547
102548 BloombergLP::bslma::ConstructionUtil::construct(
102549 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102550 AllocBase::mechanism());
102551}
102552
102553template <class t_HEAD, class... t_TAIL>
102554inline
102555Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(const Variant& original)
102556: AllocBase()
102557, d_type(bsl::variant_npos)
102558{
102559 if (!original.valueless_by_exception()) {
102560 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
102561 copyConstructor(this);
102562 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
102563 d_type = original.d_type;
102564 }
102565}
102566
102567template <class t_HEAD, class... t_TAIL>
102568inline
102569Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
102570 BloombergLP::bslmf::MovableRef<Variant> original)
102571: AllocBase(MoveUtil::access(original))
102572, d_type(bsl::variant_npos)
102573{
102574 Variant& lvalue = original;
102575 if (!lvalue.valueless_by_exception()) {
102576 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
102577 moveConstructor(this);
102578 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
102579 d_type = lvalue.d_type;
102580 }
102581}
102582
102583template <class t_HEAD, class... t_TAIL>
102584template <size_t t_INDEX>
102585inline
102586Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>)
102587: AllocBase()
102588, d_type(t_INDEX)
102589{
102590 typedef typename bsl::remove_cv<
102592 Alt_Type;
102593
102594 BloombergLP::bslma::ConstructionUtil::construct(
102595 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102596 AllocBase::mechanism());
102597}
102598
102599template <class t_HEAD, class... t_TAIL>
102600template <size_t t_INDEX, class t_ARG_01>
102601inline
102602Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
102604 const t_ARG_01& arg_01)
102605: AllocBase()
102606, d_type(t_INDEX)
102607{
102608 typedef typename bsl::remove_cv<
102610 Alt_Type;
102611
102612 BloombergLP::bslma::ConstructionUtil::construct(
102613 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102614 AllocBase::mechanism(),
102615 arg_01);
102616}
102617
102618template <class t_HEAD, class... t_TAIL>
102619template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
102620inline
102621Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
102623 const t_ARG_01& arg_01,
102624 const t_ARG_02& arg_02)
102625: AllocBase()
102626, d_type(t_INDEX)
102627{
102628 typedef typename bsl::remove_cv<
102630 Alt_Type;
102631
102632 BloombergLP::bslma::ConstructionUtil::construct(
102633 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102634 AllocBase::mechanism(),
102635 arg_01,
102636 arg_02);
102637}
102638
102639template <class t_HEAD, class... t_TAIL>
102640template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
102641inline
102642Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
102644 const t_ARG_01& arg_01,
102645 const t_ARG_02& arg_02,
102646 const t_ARG_03& arg_03)
102647: AllocBase()
102648, d_type(t_INDEX)
102649{
102650 typedef typename bsl::remove_cv<
102652 Alt_Type;
102653
102654 BloombergLP::bslma::ConstructionUtil::construct(
102655 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102656 AllocBase::mechanism(),
102657 arg_01,
102658 arg_02,
102659 arg_03);
102660}
102661
102662template <class t_HEAD, class... t_TAIL>
102663template <size_t t_INDEX,
102664 class t_ARG_01,
102665 class t_ARG_02,
102666 class t_ARG_03,
102667 class t_ARG_04>
102668inline
102669Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
102670 const t_ARG_01& arg_01,
102671 const t_ARG_02& arg_02,
102672 const t_ARG_03& arg_03,
102673 const t_ARG_04& arg_04)
102674: AllocBase()
102675, d_type(t_INDEX)
102676{
102677 typedef typename bsl::remove_cv<
102679 Alt_Type;
102680
102681 BloombergLP::bslma::ConstructionUtil::construct(
102682 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102683 AllocBase::mechanism(),
102684 arg_01,
102685 arg_02,
102686 arg_03,
102687 arg_04);
102688}
102689
102690template <class t_HEAD, class... t_TAIL>
102691template <size_t t_INDEX,
102692 class t_ARG_01,
102693 class t_ARG_02,
102694 class t_ARG_03,
102695 class t_ARG_04,
102696 class t_ARG_05>
102697inline
102698Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
102699 const t_ARG_01& arg_01,
102700 const t_ARG_02& arg_02,
102701 const t_ARG_03& arg_03,
102702 const t_ARG_04& arg_04,
102703 const t_ARG_05& arg_05)
102704: AllocBase()
102705, d_type(t_INDEX)
102706{
102707 typedef typename bsl::remove_cv<
102709 Alt_Type;
102710
102711 BloombergLP::bslma::ConstructionUtil::construct(
102712 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102713 AllocBase::mechanism(),
102714 arg_01,
102715 arg_02,
102716 arg_03,
102717 arg_04,
102718 arg_05);
102719}
102720
102721template <class t_HEAD, class... t_TAIL>
102722template <size_t t_INDEX,
102723 class t_ARG_01,
102724 class t_ARG_02,
102725 class t_ARG_03,
102726 class t_ARG_04,
102727 class t_ARG_05,
102728 class t_ARG_06>
102729inline
102730Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
102731 const t_ARG_01& arg_01,
102732 const t_ARG_02& arg_02,
102733 const t_ARG_03& arg_03,
102734 const t_ARG_04& arg_04,
102735 const t_ARG_05& arg_05,
102736 const t_ARG_06& arg_06)
102737: AllocBase()
102738, d_type(t_INDEX)
102739{
102740 typedef typename bsl::remove_cv<
102742 Alt_Type;
102743
102744 BloombergLP::bslma::ConstructionUtil::construct(
102745 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102746 AllocBase::mechanism(),
102747 arg_01,
102748 arg_02,
102749 arg_03,
102750 arg_04,
102751 arg_05,
102752 arg_06);
102753}
102754
102755template <class t_HEAD, class... t_TAIL>
102756template <size_t t_INDEX,
102757 class t_ARG_01,
102758 class t_ARG_02,
102759 class t_ARG_03,
102760 class t_ARG_04,
102761 class t_ARG_05,
102762 class t_ARG_06,
102763 class t_ARG_07>
102764inline
102765Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
102766 const t_ARG_01& arg_01,
102767 const t_ARG_02& arg_02,
102768 const t_ARG_03& arg_03,
102769 const t_ARG_04& arg_04,
102770 const t_ARG_05& arg_05,
102771 const t_ARG_06& arg_06,
102772 const t_ARG_07& arg_07)
102773: AllocBase()
102774, d_type(t_INDEX)
102775{
102776 typedef typename bsl::remove_cv<
102778 Alt_Type;
102779
102780 BloombergLP::bslma::ConstructionUtil::construct(
102781 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102782 AllocBase::mechanism(),
102783 arg_01,
102784 arg_02,
102785 arg_03,
102786 arg_04,
102787 arg_05,
102788 arg_06,
102789 arg_07);
102790}
102791
102792template <class t_HEAD, class... t_TAIL>
102793template <size_t t_INDEX,
102794 class t_ARG_01,
102795 class t_ARG_02,
102796 class t_ARG_03,
102797 class t_ARG_04,
102798 class t_ARG_05,
102799 class t_ARG_06,
102800 class t_ARG_07,
102801 class t_ARG_08>
102802inline
102803Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
102804 const t_ARG_01& arg_01,
102805 const t_ARG_02& arg_02,
102806 const t_ARG_03& arg_03,
102807 const t_ARG_04& arg_04,
102808 const t_ARG_05& arg_05,
102809 const t_ARG_06& arg_06,
102810 const t_ARG_07& arg_07,
102811 const t_ARG_08& arg_08)
102812: AllocBase()
102813, d_type(t_INDEX)
102814{
102815 typedef typename bsl::remove_cv<
102817 Alt_Type;
102818
102819 BloombergLP::bslma::ConstructionUtil::construct(
102820 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102821 AllocBase::mechanism(),
102822 arg_01,
102823 arg_02,
102824 arg_03,
102825 arg_04,
102826 arg_05,
102827 arg_06,
102828 arg_07,
102829 arg_08);
102830}
102831
102832template <class t_HEAD, class... t_TAIL>
102833template <size_t t_INDEX,
102834 class t_ARG_01,
102835 class t_ARG_02,
102836 class t_ARG_03,
102837 class t_ARG_04,
102838 class t_ARG_05,
102839 class t_ARG_06,
102840 class t_ARG_07,
102841 class t_ARG_08,
102842 class t_ARG_09>
102843inline
102844Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
102845 const t_ARG_01& arg_01,
102846 const t_ARG_02& arg_02,
102847 const t_ARG_03& arg_03,
102848 const t_ARG_04& arg_04,
102849 const t_ARG_05& arg_05,
102850 const t_ARG_06& arg_06,
102851 const t_ARG_07& arg_07,
102852 const t_ARG_08& arg_08,
102853 const t_ARG_09& arg_09)
102854: AllocBase()
102855, d_type(t_INDEX)
102856{
102857 typedef typename bsl::remove_cv<
102859 Alt_Type;
102860
102861 BloombergLP::bslma::ConstructionUtil::construct(
102862 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102863 AllocBase::mechanism(),
102864 arg_01,
102865 arg_02,
102866 arg_03,
102867 arg_04,
102868 arg_05,
102869 arg_06,
102870 arg_07,
102871 arg_08,
102872 arg_09);
102873}
102874
102875template <class t_HEAD, class... t_TAIL>
102876template <size_t t_INDEX,
102877 class t_ARG_01,
102878 class t_ARG_02,
102879 class t_ARG_03,
102880 class t_ARG_04,
102881 class t_ARG_05,
102882 class t_ARG_06,
102883 class t_ARG_07,
102884 class t_ARG_08,
102885 class t_ARG_09,
102886 class t_ARG_10>
102887inline
102888Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::in_place_index_t<t_INDEX>,
102889 const t_ARG_01& arg_01,
102890 const t_ARG_02& arg_02,
102891 const t_ARG_03& arg_03,
102892 const t_ARG_04& arg_04,
102893 const t_ARG_05& arg_05,
102894 const t_ARG_06& arg_06,
102895 const t_ARG_07& arg_07,
102896 const t_ARG_08& arg_08,
102897 const t_ARG_09& arg_09,
102898 const t_ARG_10& arg_10)
102899: AllocBase()
102900, d_type(t_INDEX)
102901{
102902 typedef typename bsl::remove_cv<
102904 Alt_Type;
102905
102906 BloombergLP::bslma::ConstructionUtil::construct(
102907 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102908 AllocBase::mechanism(),
102909 arg_01,
102910 arg_02,
102911 arg_03,
102912 arg_04,
102913 arg_05,
102914 arg_06,
102915 arg_07,
102916 arg_08,
102917 arg_09,
102918 arg_10);
102919}
102920
102921template <class t_HEAD, class... t_TAIL>
102922inline
102923Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
102924 allocator_type allocator)
102925: AllocBase(allocator)
102926, d_type(0)
102927{
102928 BloombergLP::bslma::ConstructionUtil::construct(
102929 reinterpret_cast<t_HEAD *>(BSLS_UTIL_ADDRESSOF(d_union)),
102930 AllocBase::mechanism());
102931}
102932
102933template <class t_HEAD, class... t_TAIL>
102934inline
102935Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
102936 allocator_type allocator,
102937 const Variant& original)
102938: AllocBase(allocator)
102939, d_type(bsl::variant_npos)
102940{
102941 if (!original.valueless_by_exception()) {
102942 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
102943 copyConstructor(this);
102944 BSLSTL_VARIANT_VISITID(void, copyConstructor, original);
102945
102946 d_type = original.d_type;
102947 }
102948}
102949
102950template <class t_HEAD, class... t_TAIL>
102951inline
102952Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
102953 bsl::allocator_arg_t,
102954 allocator_type allocator,
102955 BloombergLP::bslmf::MovableRef<Variant> original)
102956: AllocBase(allocator)
102957, d_type(bsl::variant_npos)
102958{
102959 Variant& lvalue = original;
102960 if (!lvalue.valueless_by_exception()) {
102961 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
102962 moveConstructor(this);
102963 BSLSTL_VARIANT_VISITID(void, moveConstructor, lvalue);
102964
102965 d_type = lvalue.d_type;
102966 }
102967}
102968
102969template <class t_HEAD, class... t_TAIL>
102970template <size_t t_INDEX>
102971inline
102972Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
102973 bsl::allocator_arg_t,
102974 allocator_type allocator,
102976: AllocBase(allocator)
102977, d_type(t_INDEX)
102978{
102979 typedef typename bsl::remove_cv<
102981 Alt_Type;
102982
102983 BloombergLP::bslma::ConstructionUtil::construct(
102984 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
102985 AllocBase::mechanism());
102986}
102987
102988template <class t_HEAD, class... t_TAIL>
102989template <size_t t_INDEX, class t_ARG_01>
102990inline
102991Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
102992 bsl::allocator_arg_t,
102993 allocator_type allocator,
102995 const t_ARG_01& arg_01)
102996: AllocBase(allocator)
102997, d_type(t_INDEX)
102998{
102999 typedef typename bsl::remove_cv<
103001 Alt_Type;
103002
103003 BloombergLP::bslma::ConstructionUtil::construct(
103004 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103005 AllocBase::mechanism(),
103006 arg_01);
103007}
103008
103009template <class t_HEAD, class... t_TAIL>
103010template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
103011inline
103012Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
103013 bsl::allocator_arg_t,
103014 allocator_type allocator,
103016 const t_ARG_01& arg_01,
103017 const t_ARG_02& arg_02)
103018: AllocBase(allocator)
103019, d_type(t_INDEX)
103020{
103021 typedef typename bsl::remove_cv<
103023 Alt_Type;
103024
103025 BloombergLP::bslma::ConstructionUtil::construct(
103026 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103027 AllocBase::mechanism(),
103028 arg_01,
103029 arg_02);
103030}
103031
103032template <class t_HEAD, class... t_TAIL>
103033template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
103034inline
103035Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(
103036 bsl::allocator_arg_t,
103037 allocator_type allocator,
103039 const t_ARG_01& arg_01,
103040 const t_ARG_02& arg_02,
103041 const t_ARG_03& arg_03)
103042: AllocBase(allocator)
103043, d_type(t_INDEX)
103044{
103045 typedef typename bsl::remove_cv<
103047 Alt_Type;
103048
103049 BloombergLP::bslma::ConstructionUtil::construct(
103050 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103051 AllocBase::mechanism(),
103052 arg_01,
103053 arg_02,
103054 arg_03);
103055}
103056
103057template <class t_HEAD, class... t_TAIL>
103058template <size_t t_INDEX,
103059 class t_ARG_01,
103060 class t_ARG_02,
103061 class t_ARG_03,
103062 class t_ARG_04>
103063inline
103064Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
103065 allocator_type allocator,
103067 const t_ARG_01& arg_01,
103068 const t_ARG_02& arg_02,
103069 const t_ARG_03& arg_03,
103070 const t_ARG_04& arg_04)
103071: AllocBase(allocator)
103072, d_type(t_INDEX)
103073{
103074 typedef typename bsl::remove_cv<
103076 Alt_Type;
103077
103078 BloombergLP::bslma::ConstructionUtil::construct(
103079 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103080 AllocBase::mechanism(),
103081 arg_01,
103082 arg_02,
103083 arg_03,
103084 arg_04);
103085}
103086
103087template <class t_HEAD, class... t_TAIL>
103088template <size_t t_INDEX,
103089 class t_ARG_01,
103090 class t_ARG_02,
103091 class t_ARG_03,
103092 class t_ARG_04,
103093 class t_ARG_05>
103094inline
103095Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
103096 allocator_type allocator,
103098 const t_ARG_01& arg_01,
103099 const t_ARG_02& arg_02,
103100 const t_ARG_03& arg_03,
103101 const t_ARG_04& arg_04,
103102 const t_ARG_05& arg_05)
103103: AllocBase(allocator)
103104, d_type(t_INDEX)
103105{
103106 typedef typename bsl::remove_cv<
103108 Alt_Type;
103109
103110 BloombergLP::bslma::ConstructionUtil::construct(
103111 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103112 AllocBase::mechanism(),
103113 arg_01,
103114 arg_02,
103115 arg_03,
103116 arg_04,
103117 arg_05);
103118}
103119
103120template <class t_HEAD, class... t_TAIL>
103121template <size_t t_INDEX,
103122 class t_ARG_01,
103123 class t_ARG_02,
103124 class t_ARG_03,
103125 class t_ARG_04,
103126 class t_ARG_05,
103127 class t_ARG_06>
103128inline
103129Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
103130 allocator_type allocator,
103132 const t_ARG_01& arg_01,
103133 const t_ARG_02& arg_02,
103134 const t_ARG_03& arg_03,
103135 const t_ARG_04& arg_04,
103136 const t_ARG_05& arg_05,
103137 const t_ARG_06& arg_06)
103138: AllocBase(allocator)
103139, d_type(t_INDEX)
103140{
103141 typedef typename bsl::remove_cv<
103143 Alt_Type;
103144
103145 BloombergLP::bslma::ConstructionUtil::construct(
103146 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103147 AllocBase::mechanism(),
103148 arg_01,
103149 arg_02,
103150 arg_03,
103151 arg_04,
103152 arg_05,
103153 arg_06);
103154}
103155
103156template <class t_HEAD, class... t_TAIL>
103157template <size_t t_INDEX,
103158 class t_ARG_01,
103159 class t_ARG_02,
103160 class t_ARG_03,
103161 class t_ARG_04,
103162 class t_ARG_05,
103163 class t_ARG_06,
103164 class t_ARG_07>
103165inline
103166Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
103167 allocator_type allocator,
103169 const t_ARG_01& arg_01,
103170 const t_ARG_02& arg_02,
103171 const t_ARG_03& arg_03,
103172 const t_ARG_04& arg_04,
103173 const t_ARG_05& arg_05,
103174 const t_ARG_06& arg_06,
103175 const t_ARG_07& arg_07)
103176: AllocBase(allocator)
103177, d_type(t_INDEX)
103178{
103179 typedef typename bsl::remove_cv<
103181 Alt_Type;
103182
103183 BloombergLP::bslma::ConstructionUtil::construct(
103184 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103185 AllocBase::mechanism(),
103186 arg_01,
103187 arg_02,
103188 arg_03,
103189 arg_04,
103190 arg_05,
103191 arg_06,
103192 arg_07);
103193}
103194
103195template <class t_HEAD, class... t_TAIL>
103196template <size_t t_INDEX,
103197 class t_ARG_01,
103198 class t_ARG_02,
103199 class t_ARG_03,
103200 class t_ARG_04,
103201 class t_ARG_05,
103202 class t_ARG_06,
103203 class t_ARG_07,
103204 class t_ARG_08>
103205inline
103206Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
103207 allocator_type allocator,
103209 const t_ARG_01& arg_01,
103210 const t_ARG_02& arg_02,
103211 const t_ARG_03& arg_03,
103212 const t_ARG_04& arg_04,
103213 const t_ARG_05& arg_05,
103214 const t_ARG_06& arg_06,
103215 const t_ARG_07& arg_07,
103216 const t_ARG_08& arg_08)
103217: AllocBase(allocator)
103218, d_type(t_INDEX)
103219{
103220 typedef typename bsl::remove_cv<
103222 Alt_Type;
103223
103224 BloombergLP::bslma::ConstructionUtil::construct(
103225 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103226 AllocBase::mechanism(),
103227 arg_01,
103228 arg_02,
103229 arg_03,
103230 arg_04,
103231 arg_05,
103232 arg_06,
103233 arg_07,
103234 arg_08);
103235}
103236
103237template <class t_HEAD, class... t_TAIL>
103238template <size_t t_INDEX,
103239 class t_ARG_01,
103240 class t_ARG_02,
103241 class t_ARG_03,
103242 class t_ARG_04,
103243 class t_ARG_05,
103244 class t_ARG_06,
103245 class t_ARG_07,
103246 class t_ARG_08,
103247 class t_ARG_09>
103248inline
103249Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
103250 allocator_type allocator,
103252 const t_ARG_01& arg_01,
103253 const t_ARG_02& arg_02,
103254 const t_ARG_03& arg_03,
103255 const t_ARG_04& arg_04,
103256 const t_ARG_05& arg_05,
103257 const t_ARG_06& arg_06,
103258 const t_ARG_07& arg_07,
103259 const t_ARG_08& arg_08,
103260 const t_ARG_09& arg_09)
103261: AllocBase(allocator)
103262, d_type(t_INDEX)
103263{
103264 typedef typename bsl::remove_cv<
103266 Alt_Type;
103267
103268 BloombergLP::bslma::ConstructionUtil::construct(
103269 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103270 AllocBase::mechanism(),
103271 arg_01,
103272 arg_02,
103273 arg_03,
103274 arg_04,
103275 arg_05,
103276 arg_06,
103277 arg_07,
103278 arg_08,
103279 arg_09);
103280}
103281
103282template <class t_HEAD, class... t_TAIL>
103283template <size_t t_INDEX,
103284 class t_ARG_01,
103285 class t_ARG_02,
103286 class t_ARG_03,
103287 class t_ARG_04,
103288 class t_ARG_05,
103289 class t_ARG_06,
103290 class t_ARG_07,
103291 class t_ARG_08,
103292 class t_ARG_09,
103293 class t_ARG_10>
103294inline
103295Variant_Base<t_HEAD, t_TAIL...>::Variant_Base(bsl::allocator_arg_t,
103296 allocator_type allocator,
103298 const t_ARG_01& arg_01,
103299 const t_ARG_02& arg_02,
103300 const t_ARG_03& arg_03,
103301 const t_ARG_04& arg_04,
103302 const t_ARG_05& arg_05,
103303 const t_ARG_06& arg_06,
103304 const t_ARG_07& arg_07,
103305 const t_ARG_08& arg_08,
103306 const t_ARG_09& arg_09,
103307 const t_ARG_10& arg_10)
103308: AllocBase(allocator)
103309, d_type(t_INDEX)
103310{
103311 typedef typename bsl::remove_cv<
103313 Alt_Type;
103314
103315 BloombergLP::bslma::ConstructionUtil::construct(
103316 reinterpret_cast<Alt_Type *>(BSLS_UTIL_ADDRESSOF(d_union)),
103317 AllocBase::mechanism(),
103318 arg_01,
103319 arg_02,
103320 arg_03,
103321 arg_04,
103322 arg_05,
103323 arg_06,
103324 arg_07,
103325 arg_08,
103326 arg_09,
103327 arg_10);
103328}
103329// }}} END GENERATED CODE
103330#endif
103331#endif // BSL_VARIANT_FULL_IMPLEMENTATION
103332
103333#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
103334// {{{ BEGIN GENERATED CODE
103335// Command line: sim_cpp11_features.pl bslstl_variant.h
103336#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
103337#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
103338#endif
103339#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_M
103340#define BSLSTL_VARIANT_VARIADIC_LIMIT_M BSLSTL_VARIANT_VARIADIC_LIMIT
103341#endif
103342#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 0
103343template <class t_HEAD>
103344Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::~Variant_Base()
103345{
103346 reset();
103347}
103348#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 0
103349
103350#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 1
103351template <class t_HEAD, class t_TAIL_01>
103352Variant_Base<t_HEAD, t_TAIL_01,
103353 BSLS_COMPILERFEATURES_FILLT(17)>::~Variant_Base()
103354{
103355 reset();
103356}
103357#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 1
103358
103359#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 2
103360template <class t_HEAD, class t_TAIL_01,
103361 class t_TAIL_02>
103362Variant_Base<t_HEAD, t_TAIL_01,
103363 t_TAIL_02,
103364 BSLS_COMPILERFEATURES_FILLT(16)>::~Variant_Base()
103365{
103366 reset();
103367}
103368#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 2
103369
103370#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 3
103371template <class t_HEAD, class t_TAIL_01,
103372 class t_TAIL_02,
103373 class t_TAIL_03>
103374Variant_Base<t_HEAD, t_TAIL_01,
103375 t_TAIL_02,
103376 t_TAIL_03,
103377 BSLS_COMPILERFEATURES_FILLT(15)>::~Variant_Base()
103378{
103379 reset();
103380}
103381#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 3
103382
103383#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 4
103384template <class t_HEAD, class t_TAIL_01,
103385 class t_TAIL_02,
103386 class t_TAIL_03,
103387 class t_TAIL_04>
103388Variant_Base<t_HEAD, t_TAIL_01,
103389 t_TAIL_02,
103390 t_TAIL_03,
103391 t_TAIL_04,
103392 BSLS_COMPILERFEATURES_FILLT(14)>::~Variant_Base()
103393{
103394 reset();
103395}
103396#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 4
103397
103398#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 5
103399template <class t_HEAD, class t_TAIL_01,
103400 class t_TAIL_02,
103401 class t_TAIL_03,
103402 class t_TAIL_04,
103403 class t_TAIL_05>
103404Variant_Base<t_HEAD, t_TAIL_01,
103405 t_TAIL_02,
103406 t_TAIL_03,
103407 t_TAIL_04,
103408 t_TAIL_05,
103409 BSLS_COMPILERFEATURES_FILLT(13)>::~Variant_Base()
103410{
103411 reset();
103412}
103413#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 5
103414
103415#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 6
103416template <class t_HEAD, class t_TAIL_01,
103417 class t_TAIL_02,
103418 class t_TAIL_03,
103419 class t_TAIL_04,
103420 class t_TAIL_05,
103421 class t_TAIL_06>
103422Variant_Base<t_HEAD, t_TAIL_01,
103423 t_TAIL_02,
103424 t_TAIL_03,
103425 t_TAIL_04,
103426 t_TAIL_05,
103427 t_TAIL_06,
103428 BSLS_COMPILERFEATURES_FILLT(12)>::~Variant_Base()
103429{
103430 reset();
103431}
103432#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 6
103433
103434#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 7
103435template <class t_HEAD, class t_TAIL_01,
103436 class t_TAIL_02,
103437 class t_TAIL_03,
103438 class t_TAIL_04,
103439 class t_TAIL_05,
103440 class t_TAIL_06,
103441 class t_TAIL_07>
103442Variant_Base<t_HEAD, t_TAIL_01,
103443 t_TAIL_02,
103444 t_TAIL_03,
103445 t_TAIL_04,
103446 t_TAIL_05,
103447 t_TAIL_06,
103448 t_TAIL_07,
103449 BSLS_COMPILERFEATURES_FILLT(11)>::~Variant_Base()
103450{
103451 reset();
103452}
103453#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 7
103454
103455#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 8
103456template <class t_HEAD, class t_TAIL_01,
103457 class t_TAIL_02,
103458 class t_TAIL_03,
103459 class t_TAIL_04,
103460 class t_TAIL_05,
103461 class t_TAIL_06,
103462 class t_TAIL_07,
103463 class t_TAIL_08>
103464Variant_Base<t_HEAD, t_TAIL_01,
103465 t_TAIL_02,
103466 t_TAIL_03,
103467 t_TAIL_04,
103468 t_TAIL_05,
103469 t_TAIL_06,
103470 t_TAIL_07,
103471 t_TAIL_08,
103472 BSLS_COMPILERFEATURES_FILLT(10)>::~Variant_Base()
103473{
103474 reset();
103475}
103476#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 8
103477
103478#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 9
103479template <class t_HEAD, class t_TAIL_01,
103480 class t_TAIL_02,
103481 class t_TAIL_03,
103482 class t_TAIL_04,
103483 class t_TAIL_05,
103484 class t_TAIL_06,
103485 class t_TAIL_07,
103486 class t_TAIL_08,
103487 class t_TAIL_09>
103488Variant_Base<t_HEAD, t_TAIL_01,
103489 t_TAIL_02,
103490 t_TAIL_03,
103491 t_TAIL_04,
103492 t_TAIL_05,
103493 t_TAIL_06,
103494 t_TAIL_07,
103495 t_TAIL_08,
103496 t_TAIL_09,
103497 BSLS_COMPILERFEATURES_FILLT( 9)>::~Variant_Base()
103498{
103499 reset();
103500}
103501#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 9
103502
103503#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 10
103504template <class t_HEAD, class t_TAIL_01,
103505 class t_TAIL_02,
103506 class t_TAIL_03,
103507 class t_TAIL_04,
103508 class t_TAIL_05,
103509 class t_TAIL_06,
103510 class t_TAIL_07,
103511 class t_TAIL_08,
103512 class t_TAIL_09,
103513 class t_TAIL_10>
103514Variant_Base<t_HEAD, t_TAIL_01,
103515 t_TAIL_02,
103516 t_TAIL_03,
103517 t_TAIL_04,
103518 t_TAIL_05,
103519 t_TAIL_06,
103520 t_TAIL_07,
103521 t_TAIL_08,
103522 t_TAIL_09,
103523 t_TAIL_10,
103524 BSLS_COMPILERFEATURES_FILLT( 8)>::~Variant_Base()
103525{
103526 reset();
103527}
103528#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 10
103529
103530#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 11
103531template <class t_HEAD, class t_TAIL_01,
103532 class t_TAIL_02,
103533 class t_TAIL_03,
103534 class t_TAIL_04,
103535 class t_TAIL_05,
103536 class t_TAIL_06,
103537 class t_TAIL_07,
103538 class t_TAIL_08,
103539 class t_TAIL_09,
103540 class t_TAIL_10,
103541 class t_TAIL_11>
103542Variant_Base<t_HEAD, t_TAIL_01,
103543 t_TAIL_02,
103544 t_TAIL_03,
103545 t_TAIL_04,
103546 t_TAIL_05,
103547 t_TAIL_06,
103548 t_TAIL_07,
103549 t_TAIL_08,
103550 t_TAIL_09,
103551 t_TAIL_10,
103552 t_TAIL_11,
103553 BSLS_COMPILERFEATURES_FILLT( 7)>::~Variant_Base()
103554{
103555 reset();
103556}
103557#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 11
103558
103559#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 12
103560template <class t_HEAD, class t_TAIL_01,
103561 class t_TAIL_02,
103562 class t_TAIL_03,
103563 class t_TAIL_04,
103564 class t_TAIL_05,
103565 class t_TAIL_06,
103566 class t_TAIL_07,
103567 class t_TAIL_08,
103568 class t_TAIL_09,
103569 class t_TAIL_10,
103570 class t_TAIL_11,
103571 class t_TAIL_12>
103572Variant_Base<t_HEAD, t_TAIL_01,
103573 t_TAIL_02,
103574 t_TAIL_03,
103575 t_TAIL_04,
103576 t_TAIL_05,
103577 t_TAIL_06,
103578 t_TAIL_07,
103579 t_TAIL_08,
103580 t_TAIL_09,
103581 t_TAIL_10,
103582 t_TAIL_11,
103583 t_TAIL_12,
103584 BSLS_COMPILERFEATURES_FILLT( 6)>::~Variant_Base()
103585{
103586 reset();
103587}
103588#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 12
103589
103590#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 13
103591template <class t_HEAD, class t_TAIL_01,
103592 class t_TAIL_02,
103593 class t_TAIL_03,
103594 class t_TAIL_04,
103595 class t_TAIL_05,
103596 class t_TAIL_06,
103597 class t_TAIL_07,
103598 class t_TAIL_08,
103599 class t_TAIL_09,
103600 class t_TAIL_10,
103601 class t_TAIL_11,
103602 class t_TAIL_12,
103603 class t_TAIL_13>
103604Variant_Base<t_HEAD, t_TAIL_01,
103605 t_TAIL_02,
103606 t_TAIL_03,
103607 t_TAIL_04,
103608 t_TAIL_05,
103609 t_TAIL_06,
103610 t_TAIL_07,
103611 t_TAIL_08,
103612 t_TAIL_09,
103613 t_TAIL_10,
103614 t_TAIL_11,
103615 t_TAIL_12,
103616 t_TAIL_13,
103617 BSLS_COMPILERFEATURES_FILLT( 5)>::~Variant_Base()
103618{
103619 reset();
103620}
103621#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 13
103622
103623#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 14
103624template <class t_HEAD, class t_TAIL_01,
103625 class t_TAIL_02,
103626 class t_TAIL_03,
103627 class t_TAIL_04,
103628 class t_TAIL_05,
103629 class t_TAIL_06,
103630 class t_TAIL_07,
103631 class t_TAIL_08,
103632 class t_TAIL_09,
103633 class t_TAIL_10,
103634 class t_TAIL_11,
103635 class t_TAIL_12,
103636 class t_TAIL_13,
103637 class t_TAIL_14>
103638Variant_Base<t_HEAD, t_TAIL_01,
103639 t_TAIL_02,
103640 t_TAIL_03,
103641 t_TAIL_04,
103642 t_TAIL_05,
103643 t_TAIL_06,
103644 t_TAIL_07,
103645 t_TAIL_08,
103646 t_TAIL_09,
103647 t_TAIL_10,
103648 t_TAIL_11,
103649 t_TAIL_12,
103650 t_TAIL_13,
103651 t_TAIL_14,
103652 BSLS_COMPILERFEATURES_FILLT( 4)>::~Variant_Base()
103653{
103654 reset();
103655}
103656#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 14
103657
103658#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 15
103659template <class t_HEAD, class t_TAIL_01,
103660 class t_TAIL_02,
103661 class t_TAIL_03,
103662 class t_TAIL_04,
103663 class t_TAIL_05,
103664 class t_TAIL_06,
103665 class t_TAIL_07,
103666 class t_TAIL_08,
103667 class t_TAIL_09,
103668 class t_TAIL_10,
103669 class t_TAIL_11,
103670 class t_TAIL_12,
103671 class t_TAIL_13,
103672 class t_TAIL_14,
103673 class t_TAIL_15>
103674Variant_Base<t_HEAD, t_TAIL_01,
103675 t_TAIL_02,
103676 t_TAIL_03,
103677 t_TAIL_04,
103678 t_TAIL_05,
103679 t_TAIL_06,
103680 t_TAIL_07,
103681 t_TAIL_08,
103682 t_TAIL_09,
103683 t_TAIL_10,
103684 t_TAIL_11,
103685 t_TAIL_12,
103686 t_TAIL_13,
103687 t_TAIL_14,
103688 t_TAIL_15,
103689 BSLS_COMPILERFEATURES_FILLT( 3)>::~Variant_Base()
103690{
103691 reset();
103692}
103693#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 15
103694
103695#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 16
103696template <class t_HEAD, class t_TAIL_01,
103697 class t_TAIL_02,
103698 class t_TAIL_03,
103699 class t_TAIL_04,
103700 class t_TAIL_05,
103701 class t_TAIL_06,
103702 class t_TAIL_07,
103703 class t_TAIL_08,
103704 class t_TAIL_09,
103705 class t_TAIL_10,
103706 class t_TAIL_11,
103707 class t_TAIL_12,
103708 class t_TAIL_13,
103709 class t_TAIL_14,
103710 class t_TAIL_15,
103711 class t_TAIL_16>
103712Variant_Base<t_HEAD, t_TAIL_01,
103713 t_TAIL_02,
103714 t_TAIL_03,
103715 t_TAIL_04,
103716 t_TAIL_05,
103717 t_TAIL_06,
103718 t_TAIL_07,
103719 t_TAIL_08,
103720 t_TAIL_09,
103721 t_TAIL_10,
103722 t_TAIL_11,
103723 t_TAIL_12,
103724 t_TAIL_13,
103725 t_TAIL_14,
103726 t_TAIL_15,
103727 t_TAIL_16,
103728 BSLS_COMPILERFEATURES_FILLT( 2)>::~Variant_Base()
103729{
103730 reset();
103731}
103732#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 16
103733
103734#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 17
103735template <class t_HEAD, class t_TAIL_01,
103736 class t_TAIL_02,
103737 class t_TAIL_03,
103738 class t_TAIL_04,
103739 class t_TAIL_05,
103740 class t_TAIL_06,
103741 class t_TAIL_07,
103742 class t_TAIL_08,
103743 class t_TAIL_09,
103744 class t_TAIL_10,
103745 class t_TAIL_11,
103746 class t_TAIL_12,
103747 class t_TAIL_13,
103748 class t_TAIL_14,
103749 class t_TAIL_15,
103750 class t_TAIL_16,
103751 class t_TAIL_17>
103752Variant_Base<t_HEAD, t_TAIL_01,
103753 t_TAIL_02,
103754 t_TAIL_03,
103755 t_TAIL_04,
103756 t_TAIL_05,
103757 t_TAIL_06,
103758 t_TAIL_07,
103759 t_TAIL_08,
103760 t_TAIL_09,
103761 t_TAIL_10,
103762 t_TAIL_11,
103763 t_TAIL_12,
103764 t_TAIL_13,
103765 t_TAIL_14,
103766 t_TAIL_15,
103767 t_TAIL_16,
103768 t_TAIL_17,
103769 BSLS_COMPILERFEATURES_FILLT( 1)>::~Variant_Base()
103770{
103771 reset();
103772}
103773#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 17
103774
103775#if BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 18
103776template <class t_HEAD, class t_TAIL_01,
103777 class t_TAIL_02,
103778 class t_TAIL_03,
103779 class t_TAIL_04,
103780 class t_TAIL_05,
103781 class t_TAIL_06,
103782 class t_TAIL_07,
103783 class t_TAIL_08,
103784 class t_TAIL_09,
103785 class t_TAIL_10,
103786 class t_TAIL_11,
103787 class t_TAIL_12,
103788 class t_TAIL_13,
103789 class t_TAIL_14,
103790 class t_TAIL_15,
103791 class t_TAIL_16,
103792 class t_TAIL_17,
103793 class t_TAIL_18>
103794Variant_Base<t_HEAD, t_TAIL_01,
103795 t_TAIL_02,
103796 t_TAIL_03,
103797 t_TAIL_04,
103798 t_TAIL_05,
103799 t_TAIL_06,
103800 t_TAIL_07,
103801 t_TAIL_08,
103802 t_TAIL_09,
103803 t_TAIL_10,
103804 t_TAIL_11,
103805 t_TAIL_12,
103806 t_TAIL_13,
103807 t_TAIL_14,
103808 t_TAIL_15,
103809 t_TAIL_16,
103810 t_TAIL_17,
103811 t_TAIL_18,
103812 BSLS_COMPILERFEATURES_FILLT( 0)>::~Variant_Base()
103813{
103814 reset();
103815}
103816#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_M >= 18
103817
103818#else
103819// The generated code below is a workaround for the absence of perfect
103820// forwarding in some compilers.
103821template <class t_HEAD, class... t_TAIL>
103822Variant_Base<t_HEAD, t_TAIL...>::~Variant_Base()
103823{
103824 reset();
103825}
103826// }}} END GENERATED CODE
103827#endif
103828// MANIPULATORS
103829#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
103830template <class t_HEAD, class... t_TAIL>
103831template <size_t t_INDEX, class... t_ARGS>
103832void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(t_ARGS&&... args)
103833{
103834 reset();
103835
103836 // We need to assemble the construction arguments for the underlying
103837 //'Variant_DataImp' object here. They require that allocator pointer is
103838 // the leading argument after 'Variant_Union' strips the 't_INDEX'. To be
103839 // able to get such argument set, we say that 'Variant_Union' is not
103840 // allocator aware. If we were to have 'Variant_Union' be allocator aware
103841 // and use trailing allocator construction, we wouldn't be able to extract
103842 // the allocator to move it to the right position for the 'Variant_DataImp'
103843 // construct invocation. If we were to have either 'Variant_Union' or
103844 // 'Variant_DataImp' use 'allocator_arg_t' semantics, it wouldn't work for
103845 // the non allocator aware variant where there is no allocator object.
103846 BloombergLP::bslma::ConstructionUtil::construct(
103847 BSLS_UTIL_ADDRESSOF(d_union),
103848 (void *)0,
103850 AllocBase::mechanism(),
103851 std::forward<t_ARGS>(args)...);
103852 d_type = t_INDEX;
103853}
103854
103855#else // BSL_VARIANT_FULL_IMPLEMENTATION
103856#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
103857// {{{ BEGIN GENERATED CODE
103858// Command line: sim_cpp11_features.pl bslstl_variant.h
103859#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
103860#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
103861#endif
103862#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_N
103863#define BSLSTL_VARIANT_VARIADIC_LIMIT_N BSLSTL_VARIANT_VARIADIC_LIMIT
103864#endif
103865#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
103866template <class t_HEAD>
103867template <size_t t_INDEX>
103868void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::baseEmplace()
103869{
103870 typedef typename bsl::remove_cv<
103872 Alt_Type;
103873
103874 reset();
103875
103876 BloombergLP::bslma::ConstructionUtil::construct(
103877 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
103878 AllocBase::mechanism());
103879 d_type = t_INDEX;
103880}
103881#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
103882
103883#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
103884template <class t_HEAD, class t_TAIL_01>
103885template <size_t t_INDEX>
103886void Variant_Base<t_HEAD, t_TAIL_01,
103887 BSLS_COMPILERFEATURES_FILLT(17)>::baseEmplace()
103888{
103889 typedef typename bsl::remove_cv<
103891 Alt_Type;
103892
103893 reset();
103894
103895 BloombergLP::bslma::ConstructionUtil::construct(
103896 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
103897 AllocBase::mechanism());
103898 d_type = t_INDEX;
103899}
103900#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
103901
103902#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
103903template <class t_HEAD, class t_TAIL_01,
103904 class t_TAIL_02>
103905template <size_t t_INDEX>
103906void Variant_Base<t_HEAD, t_TAIL_01,
103907 t_TAIL_02,
103908 BSLS_COMPILERFEATURES_FILLT(16)>::baseEmplace()
103909{
103910 typedef typename bsl::remove_cv<
103912 Alt_Type;
103913
103914 reset();
103915
103916 BloombergLP::bslma::ConstructionUtil::construct(
103917 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
103918 AllocBase::mechanism());
103919 d_type = t_INDEX;
103920}
103921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
103922
103923#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
103924template <class t_HEAD, class t_TAIL_01,
103925 class t_TAIL_02,
103926 class t_TAIL_03>
103927template <size_t t_INDEX>
103928void Variant_Base<t_HEAD, t_TAIL_01,
103929 t_TAIL_02,
103930 t_TAIL_03,
103931 BSLS_COMPILERFEATURES_FILLT(15)>::baseEmplace()
103932{
103933 typedef typename bsl::remove_cv<
103935 Alt_Type;
103936
103937 reset();
103938
103939 BloombergLP::bslma::ConstructionUtil::construct(
103940 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
103941 AllocBase::mechanism());
103942 d_type = t_INDEX;
103943}
103944#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
103945
103946#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
103947template <class t_HEAD, class t_TAIL_01,
103948 class t_TAIL_02,
103949 class t_TAIL_03,
103950 class t_TAIL_04>
103951template <size_t t_INDEX>
103952void Variant_Base<t_HEAD, t_TAIL_01,
103953 t_TAIL_02,
103954 t_TAIL_03,
103955 t_TAIL_04,
103956 BSLS_COMPILERFEATURES_FILLT(14)>::baseEmplace()
103957{
103958 typedef typename bsl::remove_cv<
103960 Alt_Type;
103961
103962 reset();
103963
103964 BloombergLP::bslma::ConstructionUtil::construct(
103965 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
103966 AllocBase::mechanism());
103967 d_type = t_INDEX;
103968}
103969#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
103970
103971#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
103972template <class t_HEAD, class t_TAIL_01,
103973 class t_TAIL_02,
103974 class t_TAIL_03,
103975 class t_TAIL_04,
103976 class t_TAIL_05>
103977template <size_t t_INDEX>
103978void Variant_Base<t_HEAD, t_TAIL_01,
103979 t_TAIL_02,
103980 t_TAIL_03,
103981 t_TAIL_04,
103982 t_TAIL_05,
103983 BSLS_COMPILERFEATURES_FILLT(13)>::baseEmplace()
103984{
103985 typedef typename bsl::remove_cv<
103987 Alt_Type;
103988
103989 reset();
103990
103991 BloombergLP::bslma::ConstructionUtil::construct(
103992 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
103993 AllocBase::mechanism());
103994 d_type = t_INDEX;
103995}
103996#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
103997
103998#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
103999template <class t_HEAD, class t_TAIL_01,
104000 class t_TAIL_02,
104001 class t_TAIL_03,
104002 class t_TAIL_04,
104003 class t_TAIL_05,
104004 class t_TAIL_06>
104005template <size_t t_INDEX>
104006void Variant_Base<t_HEAD, t_TAIL_01,
104007 t_TAIL_02,
104008 t_TAIL_03,
104009 t_TAIL_04,
104010 t_TAIL_05,
104011 t_TAIL_06,
104012 BSLS_COMPILERFEATURES_FILLT(12)>::baseEmplace()
104013{
104014 typedef typename bsl::remove_cv<
104016 Alt_Type;
104017
104018 reset();
104019
104020 BloombergLP::bslma::ConstructionUtil::construct(
104021 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104022 AllocBase::mechanism());
104023 d_type = t_INDEX;
104024}
104025#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
104026
104027#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
104028template <class t_HEAD, class t_TAIL_01,
104029 class t_TAIL_02,
104030 class t_TAIL_03,
104031 class t_TAIL_04,
104032 class t_TAIL_05,
104033 class t_TAIL_06,
104034 class t_TAIL_07>
104035template <size_t t_INDEX>
104036void Variant_Base<t_HEAD, t_TAIL_01,
104037 t_TAIL_02,
104038 t_TAIL_03,
104039 t_TAIL_04,
104040 t_TAIL_05,
104041 t_TAIL_06,
104042 t_TAIL_07,
104043 BSLS_COMPILERFEATURES_FILLT(11)>::baseEmplace()
104044{
104045 typedef typename bsl::remove_cv<
104047 Alt_Type;
104048
104049 reset();
104050
104051 BloombergLP::bslma::ConstructionUtil::construct(
104052 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104053 AllocBase::mechanism());
104054 d_type = t_INDEX;
104055}
104056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
104057
104058#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
104059template <class t_HEAD, class t_TAIL_01,
104060 class t_TAIL_02,
104061 class t_TAIL_03,
104062 class t_TAIL_04,
104063 class t_TAIL_05,
104064 class t_TAIL_06,
104065 class t_TAIL_07,
104066 class t_TAIL_08>
104067template <size_t t_INDEX>
104068void Variant_Base<t_HEAD, t_TAIL_01,
104069 t_TAIL_02,
104070 t_TAIL_03,
104071 t_TAIL_04,
104072 t_TAIL_05,
104073 t_TAIL_06,
104074 t_TAIL_07,
104075 t_TAIL_08,
104076 BSLS_COMPILERFEATURES_FILLT(10)>::baseEmplace()
104077{
104078 typedef typename bsl::remove_cv<
104080 Alt_Type;
104081
104082 reset();
104083
104084 BloombergLP::bslma::ConstructionUtil::construct(
104085 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104086 AllocBase::mechanism());
104087 d_type = t_INDEX;
104088}
104089#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
104090
104091#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
104092template <class t_HEAD, class t_TAIL_01,
104093 class t_TAIL_02,
104094 class t_TAIL_03,
104095 class t_TAIL_04,
104096 class t_TAIL_05,
104097 class t_TAIL_06,
104098 class t_TAIL_07,
104099 class t_TAIL_08,
104100 class t_TAIL_09>
104101template <size_t t_INDEX>
104102void Variant_Base<t_HEAD, t_TAIL_01,
104103 t_TAIL_02,
104104 t_TAIL_03,
104105 t_TAIL_04,
104106 t_TAIL_05,
104107 t_TAIL_06,
104108 t_TAIL_07,
104109 t_TAIL_08,
104110 t_TAIL_09,
104111 BSLS_COMPILERFEATURES_FILLT( 9)>::baseEmplace()
104112{
104113 typedef typename bsl::remove_cv<
104115 Alt_Type;
104116
104117 reset();
104118
104119 BloombergLP::bslma::ConstructionUtil::construct(
104120 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104121 AllocBase::mechanism());
104122 d_type = t_INDEX;
104123}
104124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
104125
104126#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
104127template <class t_HEAD, class t_TAIL_01,
104128 class t_TAIL_02,
104129 class t_TAIL_03,
104130 class t_TAIL_04,
104131 class t_TAIL_05,
104132 class t_TAIL_06,
104133 class t_TAIL_07,
104134 class t_TAIL_08,
104135 class t_TAIL_09,
104136 class t_TAIL_10>
104137template <size_t t_INDEX>
104138void Variant_Base<t_HEAD, t_TAIL_01,
104139 t_TAIL_02,
104140 t_TAIL_03,
104141 t_TAIL_04,
104142 t_TAIL_05,
104143 t_TAIL_06,
104144 t_TAIL_07,
104145 t_TAIL_08,
104146 t_TAIL_09,
104147 t_TAIL_10,
104148 BSLS_COMPILERFEATURES_FILLT( 8)>::baseEmplace()
104149{
104150 typedef typename bsl::remove_cv<
104152 Alt_Type;
104153
104154 reset();
104155
104156 BloombergLP::bslma::ConstructionUtil::construct(
104157 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104158 AllocBase::mechanism());
104159 d_type = t_INDEX;
104160}
104161#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
104162
104163#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
104164template <class t_HEAD, class t_TAIL_01,
104165 class t_TAIL_02,
104166 class t_TAIL_03,
104167 class t_TAIL_04,
104168 class t_TAIL_05,
104169 class t_TAIL_06,
104170 class t_TAIL_07,
104171 class t_TAIL_08,
104172 class t_TAIL_09,
104173 class t_TAIL_10,
104174 class t_TAIL_11>
104175template <size_t t_INDEX>
104176void Variant_Base<t_HEAD, t_TAIL_01,
104177 t_TAIL_02,
104178 t_TAIL_03,
104179 t_TAIL_04,
104180 t_TAIL_05,
104181 t_TAIL_06,
104182 t_TAIL_07,
104183 t_TAIL_08,
104184 t_TAIL_09,
104185 t_TAIL_10,
104186 t_TAIL_11,
104187 BSLS_COMPILERFEATURES_FILLT( 7)>::baseEmplace()
104188{
104189 typedef typename bsl::remove_cv<
104191 Alt_Type;
104192
104193 reset();
104194
104195 BloombergLP::bslma::ConstructionUtil::construct(
104196 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104197 AllocBase::mechanism());
104198 d_type = t_INDEX;
104199}
104200#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
104201
104202#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
104203template <class t_HEAD, class t_TAIL_01,
104204 class t_TAIL_02,
104205 class t_TAIL_03,
104206 class t_TAIL_04,
104207 class t_TAIL_05,
104208 class t_TAIL_06,
104209 class t_TAIL_07,
104210 class t_TAIL_08,
104211 class t_TAIL_09,
104212 class t_TAIL_10,
104213 class t_TAIL_11,
104214 class t_TAIL_12>
104215template <size_t t_INDEX>
104216void Variant_Base<t_HEAD, t_TAIL_01,
104217 t_TAIL_02,
104218 t_TAIL_03,
104219 t_TAIL_04,
104220 t_TAIL_05,
104221 t_TAIL_06,
104222 t_TAIL_07,
104223 t_TAIL_08,
104224 t_TAIL_09,
104225 t_TAIL_10,
104226 t_TAIL_11,
104227 t_TAIL_12,
104228 BSLS_COMPILERFEATURES_FILLT( 6)>::baseEmplace()
104229{
104230 typedef typename bsl::remove_cv<
104232 Alt_Type;
104233
104234 reset();
104235
104236 BloombergLP::bslma::ConstructionUtil::construct(
104237 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104238 AllocBase::mechanism());
104239 d_type = t_INDEX;
104240}
104241#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
104242
104243#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
104244template <class t_HEAD, class t_TAIL_01,
104245 class t_TAIL_02,
104246 class t_TAIL_03,
104247 class t_TAIL_04,
104248 class t_TAIL_05,
104249 class t_TAIL_06,
104250 class t_TAIL_07,
104251 class t_TAIL_08,
104252 class t_TAIL_09,
104253 class t_TAIL_10,
104254 class t_TAIL_11,
104255 class t_TAIL_12,
104256 class t_TAIL_13>
104257template <size_t t_INDEX>
104258void Variant_Base<t_HEAD, t_TAIL_01,
104259 t_TAIL_02,
104260 t_TAIL_03,
104261 t_TAIL_04,
104262 t_TAIL_05,
104263 t_TAIL_06,
104264 t_TAIL_07,
104265 t_TAIL_08,
104266 t_TAIL_09,
104267 t_TAIL_10,
104268 t_TAIL_11,
104269 t_TAIL_12,
104270 t_TAIL_13,
104271 BSLS_COMPILERFEATURES_FILLT( 5)>::baseEmplace()
104272{
104273 typedef typename bsl::remove_cv<
104275 Alt_Type;
104276
104277 reset();
104278
104279 BloombergLP::bslma::ConstructionUtil::construct(
104280 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104281 AllocBase::mechanism());
104282 d_type = t_INDEX;
104283}
104284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
104285
104286#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
104287template <class t_HEAD, class t_TAIL_01,
104288 class t_TAIL_02,
104289 class t_TAIL_03,
104290 class t_TAIL_04,
104291 class t_TAIL_05,
104292 class t_TAIL_06,
104293 class t_TAIL_07,
104294 class t_TAIL_08,
104295 class t_TAIL_09,
104296 class t_TAIL_10,
104297 class t_TAIL_11,
104298 class t_TAIL_12,
104299 class t_TAIL_13,
104300 class t_TAIL_14>
104301template <size_t t_INDEX>
104302void Variant_Base<t_HEAD, t_TAIL_01,
104303 t_TAIL_02,
104304 t_TAIL_03,
104305 t_TAIL_04,
104306 t_TAIL_05,
104307 t_TAIL_06,
104308 t_TAIL_07,
104309 t_TAIL_08,
104310 t_TAIL_09,
104311 t_TAIL_10,
104312 t_TAIL_11,
104313 t_TAIL_12,
104314 t_TAIL_13,
104315 t_TAIL_14,
104316 BSLS_COMPILERFEATURES_FILLT( 4)>::baseEmplace()
104317{
104318 typedef typename bsl::remove_cv<
104320 Alt_Type;
104321
104322 reset();
104323
104324 BloombergLP::bslma::ConstructionUtil::construct(
104325 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104326 AllocBase::mechanism());
104327 d_type = t_INDEX;
104328}
104329#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
104330
104331#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
104332template <class t_HEAD, class t_TAIL_01,
104333 class t_TAIL_02,
104334 class t_TAIL_03,
104335 class t_TAIL_04,
104336 class t_TAIL_05,
104337 class t_TAIL_06,
104338 class t_TAIL_07,
104339 class t_TAIL_08,
104340 class t_TAIL_09,
104341 class t_TAIL_10,
104342 class t_TAIL_11,
104343 class t_TAIL_12,
104344 class t_TAIL_13,
104345 class t_TAIL_14,
104346 class t_TAIL_15>
104347template <size_t t_INDEX>
104348void Variant_Base<t_HEAD, t_TAIL_01,
104349 t_TAIL_02,
104350 t_TAIL_03,
104351 t_TAIL_04,
104352 t_TAIL_05,
104353 t_TAIL_06,
104354 t_TAIL_07,
104355 t_TAIL_08,
104356 t_TAIL_09,
104357 t_TAIL_10,
104358 t_TAIL_11,
104359 t_TAIL_12,
104360 t_TAIL_13,
104361 t_TAIL_14,
104362 t_TAIL_15,
104363 BSLS_COMPILERFEATURES_FILLT( 3)>::baseEmplace()
104364{
104365 typedef typename bsl::remove_cv<
104367 Alt_Type;
104368
104369 reset();
104370
104371 BloombergLP::bslma::ConstructionUtil::construct(
104372 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104373 AllocBase::mechanism());
104374 d_type = t_INDEX;
104375}
104376#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
104377
104378#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
104379template <class t_HEAD, class t_TAIL_01,
104380 class t_TAIL_02,
104381 class t_TAIL_03,
104382 class t_TAIL_04,
104383 class t_TAIL_05,
104384 class t_TAIL_06,
104385 class t_TAIL_07,
104386 class t_TAIL_08,
104387 class t_TAIL_09,
104388 class t_TAIL_10,
104389 class t_TAIL_11,
104390 class t_TAIL_12,
104391 class t_TAIL_13,
104392 class t_TAIL_14,
104393 class t_TAIL_15,
104394 class t_TAIL_16>
104395template <size_t t_INDEX>
104396void Variant_Base<t_HEAD, t_TAIL_01,
104397 t_TAIL_02,
104398 t_TAIL_03,
104399 t_TAIL_04,
104400 t_TAIL_05,
104401 t_TAIL_06,
104402 t_TAIL_07,
104403 t_TAIL_08,
104404 t_TAIL_09,
104405 t_TAIL_10,
104406 t_TAIL_11,
104407 t_TAIL_12,
104408 t_TAIL_13,
104409 t_TAIL_14,
104410 t_TAIL_15,
104411 t_TAIL_16,
104412 BSLS_COMPILERFEATURES_FILLT( 2)>::baseEmplace()
104413{
104414 typedef typename bsl::remove_cv<
104416 Alt_Type;
104417
104418 reset();
104419
104420 BloombergLP::bslma::ConstructionUtil::construct(
104421 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104422 AllocBase::mechanism());
104423 d_type = t_INDEX;
104424}
104425#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
104426
104427#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
104428template <class t_HEAD, class t_TAIL_01,
104429 class t_TAIL_02,
104430 class t_TAIL_03,
104431 class t_TAIL_04,
104432 class t_TAIL_05,
104433 class t_TAIL_06,
104434 class t_TAIL_07,
104435 class t_TAIL_08,
104436 class t_TAIL_09,
104437 class t_TAIL_10,
104438 class t_TAIL_11,
104439 class t_TAIL_12,
104440 class t_TAIL_13,
104441 class t_TAIL_14,
104442 class t_TAIL_15,
104443 class t_TAIL_16,
104444 class t_TAIL_17>
104445template <size_t t_INDEX>
104446void Variant_Base<t_HEAD, t_TAIL_01,
104447 t_TAIL_02,
104448 t_TAIL_03,
104449 t_TAIL_04,
104450 t_TAIL_05,
104451 t_TAIL_06,
104452 t_TAIL_07,
104453 t_TAIL_08,
104454 t_TAIL_09,
104455 t_TAIL_10,
104456 t_TAIL_11,
104457 t_TAIL_12,
104458 t_TAIL_13,
104459 t_TAIL_14,
104460 t_TAIL_15,
104461 t_TAIL_16,
104462 t_TAIL_17,
104463 BSLS_COMPILERFEATURES_FILLT( 1)>::baseEmplace()
104464{
104465 typedef typename bsl::remove_cv<
104467 Alt_Type;
104468
104469 reset();
104470
104471 BloombergLP::bslma::ConstructionUtil::construct(
104472 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104473 AllocBase::mechanism());
104474 d_type = t_INDEX;
104475}
104476#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
104477
104478#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
104479template <class t_HEAD, class t_TAIL_01,
104480 class t_TAIL_02,
104481 class t_TAIL_03,
104482 class t_TAIL_04,
104483 class t_TAIL_05,
104484 class t_TAIL_06,
104485 class t_TAIL_07,
104486 class t_TAIL_08,
104487 class t_TAIL_09,
104488 class t_TAIL_10,
104489 class t_TAIL_11,
104490 class t_TAIL_12,
104491 class t_TAIL_13,
104492 class t_TAIL_14,
104493 class t_TAIL_15,
104494 class t_TAIL_16,
104495 class t_TAIL_17,
104496 class t_TAIL_18>
104497template <size_t t_INDEX>
104498void Variant_Base<t_HEAD, t_TAIL_01,
104499 t_TAIL_02,
104500 t_TAIL_03,
104501 t_TAIL_04,
104502 t_TAIL_05,
104503 t_TAIL_06,
104504 t_TAIL_07,
104505 t_TAIL_08,
104506 t_TAIL_09,
104507 t_TAIL_10,
104508 t_TAIL_11,
104509 t_TAIL_12,
104510 t_TAIL_13,
104511 t_TAIL_14,
104512 t_TAIL_15,
104513 t_TAIL_16,
104514 t_TAIL_17,
104515 t_TAIL_18,
104516 BSLS_COMPILERFEATURES_FILLT( 0)>::baseEmplace()
104517{
104518 typedef typename bsl::remove_cv<
104520 Alt_Type;
104521
104522 reset();
104523
104524 BloombergLP::bslma::ConstructionUtil::construct(
104525 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104526 AllocBase::mechanism());
104527 d_type = t_INDEX;
104528}
104529#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
104530
104531
104532#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
104533template <class t_HEAD>
104534template <size_t t_INDEX, class t_ARG_01>
104535void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
104536 >::baseEmplace(const t_ARG_01& arg_01)
104537{
104538 typedef typename bsl::remove_cv<
104540 Alt_Type;
104541
104542 reset();
104543
104544 BloombergLP::bslma::ConstructionUtil::construct(
104545 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104546 AllocBase::mechanism(),
104547 arg_01);
104548 d_type = t_INDEX;
104549}
104550#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
104551
104552#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
104553template <class t_HEAD, class t_TAIL_01>
104554template <size_t t_INDEX, class t_ARG_01>
104555void Variant_Base<t_HEAD, t_TAIL_01,
104556 BSLS_COMPILERFEATURES_FILLT(17)
104557 >::baseEmplace(const t_ARG_01& arg_01)
104558{
104559 typedef typename bsl::remove_cv<
104561 Alt_Type;
104562
104563 reset();
104564
104565 BloombergLP::bslma::ConstructionUtil::construct(
104566 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104567 AllocBase::mechanism(),
104568 arg_01);
104569 d_type = t_INDEX;
104570}
104571#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
104572
104573#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
104574template <class t_HEAD, class t_TAIL_01,
104575 class t_TAIL_02>
104576template <size_t t_INDEX, class t_ARG_01>
104577void Variant_Base<t_HEAD, t_TAIL_01,
104578 t_TAIL_02,
104579 BSLS_COMPILERFEATURES_FILLT(16)
104580 >::baseEmplace(const t_ARG_01& arg_01)
104581{
104582 typedef typename bsl::remove_cv<
104584 Alt_Type;
104585
104586 reset();
104587
104588 BloombergLP::bslma::ConstructionUtil::construct(
104589 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104590 AllocBase::mechanism(),
104591 arg_01);
104592 d_type = t_INDEX;
104593}
104594#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
104595
104596#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
104597template <class t_HEAD, class t_TAIL_01,
104598 class t_TAIL_02,
104599 class t_TAIL_03>
104600template <size_t t_INDEX, class t_ARG_01>
104601void Variant_Base<t_HEAD, t_TAIL_01,
104602 t_TAIL_02,
104603 t_TAIL_03,
104604 BSLS_COMPILERFEATURES_FILLT(15)
104605 >::baseEmplace(const t_ARG_01& arg_01)
104606{
104607 typedef typename bsl::remove_cv<
104609 Alt_Type;
104610
104611 reset();
104612
104613 BloombergLP::bslma::ConstructionUtil::construct(
104614 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104615 AllocBase::mechanism(),
104616 arg_01);
104617 d_type = t_INDEX;
104618}
104619#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
104620
104621#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
104622template <class t_HEAD, class t_TAIL_01,
104623 class t_TAIL_02,
104624 class t_TAIL_03,
104625 class t_TAIL_04>
104626template <size_t t_INDEX, class t_ARG_01>
104627void Variant_Base<t_HEAD, t_TAIL_01,
104628 t_TAIL_02,
104629 t_TAIL_03,
104630 t_TAIL_04,
104631 BSLS_COMPILERFEATURES_FILLT(14)
104632 >::baseEmplace(const t_ARG_01& arg_01)
104633{
104634 typedef typename bsl::remove_cv<
104636 Alt_Type;
104637
104638 reset();
104639
104640 BloombergLP::bslma::ConstructionUtil::construct(
104641 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104642 AllocBase::mechanism(),
104643 arg_01);
104644 d_type = t_INDEX;
104645}
104646#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
104647
104648#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
104649template <class t_HEAD, class t_TAIL_01,
104650 class t_TAIL_02,
104651 class t_TAIL_03,
104652 class t_TAIL_04,
104653 class t_TAIL_05>
104654template <size_t t_INDEX, class t_ARG_01>
104655void Variant_Base<t_HEAD, t_TAIL_01,
104656 t_TAIL_02,
104657 t_TAIL_03,
104658 t_TAIL_04,
104659 t_TAIL_05,
104660 BSLS_COMPILERFEATURES_FILLT(13)
104661 >::baseEmplace(const t_ARG_01& arg_01)
104662{
104663 typedef typename bsl::remove_cv<
104665 Alt_Type;
104666
104667 reset();
104668
104669 BloombergLP::bslma::ConstructionUtil::construct(
104670 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104671 AllocBase::mechanism(),
104672 arg_01);
104673 d_type = t_INDEX;
104674}
104675#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
104676
104677#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
104678template <class t_HEAD, class t_TAIL_01,
104679 class t_TAIL_02,
104680 class t_TAIL_03,
104681 class t_TAIL_04,
104682 class t_TAIL_05,
104683 class t_TAIL_06>
104684template <size_t t_INDEX, class t_ARG_01>
104685void Variant_Base<t_HEAD, t_TAIL_01,
104686 t_TAIL_02,
104687 t_TAIL_03,
104688 t_TAIL_04,
104689 t_TAIL_05,
104690 t_TAIL_06,
104691 BSLS_COMPILERFEATURES_FILLT(12)
104692 >::baseEmplace(const t_ARG_01& arg_01)
104693{
104694 typedef typename bsl::remove_cv<
104696 Alt_Type;
104697
104698 reset();
104699
104700 BloombergLP::bslma::ConstructionUtil::construct(
104701 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104702 AllocBase::mechanism(),
104703 arg_01);
104704 d_type = t_INDEX;
104705}
104706#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
104707
104708#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
104709template <class t_HEAD, class t_TAIL_01,
104710 class t_TAIL_02,
104711 class t_TAIL_03,
104712 class t_TAIL_04,
104713 class t_TAIL_05,
104714 class t_TAIL_06,
104715 class t_TAIL_07>
104716template <size_t t_INDEX, class t_ARG_01>
104717void Variant_Base<t_HEAD, t_TAIL_01,
104718 t_TAIL_02,
104719 t_TAIL_03,
104720 t_TAIL_04,
104721 t_TAIL_05,
104722 t_TAIL_06,
104723 t_TAIL_07,
104724 BSLS_COMPILERFEATURES_FILLT(11)
104725 >::baseEmplace(const t_ARG_01& arg_01)
104726{
104727 typedef typename bsl::remove_cv<
104729 Alt_Type;
104730
104731 reset();
104732
104733 BloombergLP::bslma::ConstructionUtil::construct(
104734 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104735 AllocBase::mechanism(),
104736 arg_01);
104737 d_type = t_INDEX;
104738}
104739#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
104740
104741#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
104742template <class t_HEAD, class t_TAIL_01,
104743 class t_TAIL_02,
104744 class t_TAIL_03,
104745 class t_TAIL_04,
104746 class t_TAIL_05,
104747 class t_TAIL_06,
104748 class t_TAIL_07,
104749 class t_TAIL_08>
104750template <size_t t_INDEX, class t_ARG_01>
104751void Variant_Base<t_HEAD, t_TAIL_01,
104752 t_TAIL_02,
104753 t_TAIL_03,
104754 t_TAIL_04,
104755 t_TAIL_05,
104756 t_TAIL_06,
104757 t_TAIL_07,
104758 t_TAIL_08,
104759 BSLS_COMPILERFEATURES_FILLT(10)
104760 >::baseEmplace(const t_ARG_01& arg_01)
104761{
104762 typedef typename bsl::remove_cv<
104764 Alt_Type;
104765
104766 reset();
104767
104768 BloombergLP::bslma::ConstructionUtil::construct(
104769 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104770 AllocBase::mechanism(),
104771 arg_01);
104772 d_type = t_INDEX;
104773}
104774#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
104775
104776#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
104777template <class t_HEAD, class t_TAIL_01,
104778 class t_TAIL_02,
104779 class t_TAIL_03,
104780 class t_TAIL_04,
104781 class t_TAIL_05,
104782 class t_TAIL_06,
104783 class t_TAIL_07,
104784 class t_TAIL_08,
104785 class t_TAIL_09>
104786template <size_t t_INDEX, class t_ARG_01>
104787void Variant_Base<t_HEAD, t_TAIL_01,
104788 t_TAIL_02,
104789 t_TAIL_03,
104790 t_TAIL_04,
104791 t_TAIL_05,
104792 t_TAIL_06,
104793 t_TAIL_07,
104794 t_TAIL_08,
104795 t_TAIL_09,
104796 BSLS_COMPILERFEATURES_FILLT( 9)
104797 >::baseEmplace(const t_ARG_01& arg_01)
104798{
104799 typedef typename bsl::remove_cv<
104801 Alt_Type;
104802
104803 reset();
104804
104805 BloombergLP::bslma::ConstructionUtil::construct(
104806 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104807 AllocBase::mechanism(),
104808 arg_01);
104809 d_type = t_INDEX;
104810}
104811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
104812
104813#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
104814template <class t_HEAD, class t_TAIL_01,
104815 class t_TAIL_02,
104816 class t_TAIL_03,
104817 class t_TAIL_04,
104818 class t_TAIL_05,
104819 class t_TAIL_06,
104820 class t_TAIL_07,
104821 class t_TAIL_08,
104822 class t_TAIL_09,
104823 class t_TAIL_10>
104824template <size_t t_INDEX, class t_ARG_01>
104825void Variant_Base<t_HEAD, t_TAIL_01,
104826 t_TAIL_02,
104827 t_TAIL_03,
104828 t_TAIL_04,
104829 t_TAIL_05,
104830 t_TAIL_06,
104831 t_TAIL_07,
104832 t_TAIL_08,
104833 t_TAIL_09,
104834 t_TAIL_10,
104835 BSLS_COMPILERFEATURES_FILLT( 8)
104836 >::baseEmplace(const t_ARG_01& arg_01)
104837{
104838 typedef typename bsl::remove_cv<
104840 Alt_Type;
104841
104842 reset();
104843
104844 BloombergLP::bslma::ConstructionUtil::construct(
104845 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104846 AllocBase::mechanism(),
104847 arg_01);
104848 d_type = t_INDEX;
104849}
104850#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
104851
104852#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
104853template <class t_HEAD, class t_TAIL_01,
104854 class t_TAIL_02,
104855 class t_TAIL_03,
104856 class t_TAIL_04,
104857 class t_TAIL_05,
104858 class t_TAIL_06,
104859 class t_TAIL_07,
104860 class t_TAIL_08,
104861 class t_TAIL_09,
104862 class t_TAIL_10,
104863 class t_TAIL_11>
104864template <size_t t_INDEX, class t_ARG_01>
104865void Variant_Base<t_HEAD, t_TAIL_01,
104866 t_TAIL_02,
104867 t_TAIL_03,
104868 t_TAIL_04,
104869 t_TAIL_05,
104870 t_TAIL_06,
104871 t_TAIL_07,
104872 t_TAIL_08,
104873 t_TAIL_09,
104874 t_TAIL_10,
104875 t_TAIL_11,
104876 BSLS_COMPILERFEATURES_FILLT( 7)
104877 >::baseEmplace(const t_ARG_01& arg_01)
104878{
104879 typedef typename bsl::remove_cv<
104881 Alt_Type;
104882
104883 reset();
104884
104885 BloombergLP::bslma::ConstructionUtil::construct(
104886 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104887 AllocBase::mechanism(),
104888 arg_01);
104889 d_type = t_INDEX;
104890}
104891#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
104892
104893#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
104894template <class t_HEAD, class t_TAIL_01,
104895 class t_TAIL_02,
104896 class t_TAIL_03,
104897 class t_TAIL_04,
104898 class t_TAIL_05,
104899 class t_TAIL_06,
104900 class t_TAIL_07,
104901 class t_TAIL_08,
104902 class t_TAIL_09,
104903 class t_TAIL_10,
104904 class t_TAIL_11,
104905 class t_TAIL_12>
104906template <size_t t_INDEX, class t_ARG_01>
104907void Variant_Base<t_HEAD, t_TAIL_01,
104908 t_TAIL_02,
104909 t_TAIL_03,
104910 t_TAIL_04,
104911 t_TAIL_05,
104912 t_TAIL_06,
104913 t_TAIL_07,
104914 t_TAIL_08,
104915 t_TAIL_09,
104916 t_TAIL_10,
104917 t_TAIL_11,
104918 t_TAIL_12,
104919 BSLS_COMPILERFEATURES_FILLT( 6)
104920 >::baseEmplace(const t_ARG_01& arg_01)
104921{
104922 typedef typename bsl::remove_cv<
104924 Alt_Type;
104925
104926 reset();
104927
104928 BloombergLP::bslma::ConstructionUtil::construct(
104929 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104930 AllocBase::mechanism(),
104931 arg_01);
104932 d_type = t_INDEX;
104933}
104934#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
104935
104936#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
104937template <class t_HEAD, class t_TAIL_01,
104938 class t_TAIL_02,
104939 class t_TAIL_03,
104940 class t_TAIL_04,
104941 class t_TAIL_05,
104942 class t_TAIL_06,
104943 class t_TAIL_07,
104944 class t_TAIL_08,
104945 class t_TAIL_09,
104946 class t_TAIL_10,
104947 class t_TAIL_11,
104948 class t_TAIL_12,
104949 class t_TAIL_13>
104950template <size_t t_INDEX, class t_ARG_01>
104951void Variant_Base<t_HEAD, t_TAIL_01,
104952 t_TAIL_02,
104953 t_TAIL_03,
104954 t_TAIL_04,
104955 t_TAIL_05,
104956 t_TAIL_06,
104957 t_TAIL_07,
104958 t_TAIL_08,
104959 t_TAIL_09,
104960 t_TAIL_10,
104961 t_TAIL_11,
104962 t_TAIL_12,
104963 t_TAIL_13,
104964 BSLS_COMPILERFEATURES_FILLT( 5)
104965 >::baseEmplace(const t_ARG_01& arg_01)
104966{
104967 typedef typename bsl::remove_cv<
104969 Alt_Type;
104970
104971 reset();
104972
104973 BloombergLP::bslma::ConstructionUtil::construct(
104974 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
104975 AllocBase::mechanism(),
104976 arg_01);
104977 d_type = t_INDEX;
104978}
104979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
104980
104981#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
104982template <class t_HEAD, class t_TAIL_01,
104983 class t_TAIL_02,
104984 class t_TAIL_03,
104985 class t_TAIL_04,
104986 class t_TAIL_05,
104987 class t_TAIL_06,
104988 class t_TAIL_07,
104989 class t_TAIL_08,
104990 class t_TAIL_09,
104991 class t_TAIL_10,
104992 class t_TAIL_11,
104993 class t_TAIL_12,
104994 class t_TAIL_13,
104995 class t_TAIL_14>
104996template <size_t t_INDEX, class t_ARG_01>
104997void Variant_Base<t_HEAD, t_TAIL_01,
104998 t_TAIL_02,
104999 t_TAIL_03,
105000 t_TAIL_04,
105001 t_TAIL_05,
105002 t_TAIL_06,
105003 t_TAIL_07,
105004 t_TAIL_08,
105005 t_TAIL_09,
105006 t_TAIL_10,
105007 t_TAIL_11,
105008 t_TAIL_12,
105009 t_TAIL_13,
105010 t_TAIL_14,
105011 BSLS_COMPILERFEATURES_FILLT( 4)
105012 >::baseEmplace(const t_ARG_01& arg_01)
105013{
105014 typedef typename bsl::remove_cv<
105016 Alt_Type;
105017
105018 reset();
105019
105020 BloombergLP::bslma::ConstructionUtil::construct(
105021 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105022 AllocBase::mechanism(),
105023 arg_01);
105024 d_type = t_INDEX;
105025}
105026#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
105027
105028#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
105029template <class t_HEAD, class t_TAIL_01,
105030 class t_TAIL_02,
105031 class t_TAIL_03,
105032 class t_TAIL_04,
105033 class t_TAIL_05,
105034 class t_TAIL_06,
105035 class t_TAIL_07,
105036 class t_TAIL_08,
105037 class t_TAIL_09,
105038 class t_TAIL_10,
105039 class t_TAIL_11,
105040 class t_TAIL_12,
105041 class t_TAIL_13,
105042 class t_TAIL_14,
105043 class t_TAIL_15>
105044template <size_t t_INDEX, class t_ARG_01>
105045void Variant_Base<t_HEAD, t_TAIL_01,
105046 t_TAIL_02,
105047 t_TAIL_03,
105048 t_TAIL_04,
105049 t_TAIL_05,
105050 t_TAIL_06,
105051 t_TAIL_07,
105052 t_TAIL_08,
105053 t_TAIL_09,
105054 t_TAIL_10,
105055 t_TAIL_11,
105056 t_TAIL_12,
105057 t_TAIL_13,
105058 t_TAIL_14,
105059 t_TAIL_15,
105060 BSLS_COMPILERFEATURES_FILLT( 3)
105061 >::baseEmplace(const t_ARG_01& arg_01)
105062{
105063 typedef typename bsl::remove_cv<
105065 Alt_Type;
105066
105067 reset();
105068
105069 BloombergLP::bslma::ConstructionUtil::construct(
105070 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105071 AllocBase::mechanism(),
105072 arg_01);
105073 d_type = t_INDEX;
105074}
105075#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
105076
105077#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
105078template <class t_HEAD, class t_TAIL_01,
105079 class t_TAIL_02,
105080 class t_TAIL_03,
105081 class t_TAIL_04,
105082 class t_TAIL_05,
105083 class t_TAIL_06,
105084 class t_TAIL_07,
105085 class t_TAIL_08,
105086 class t_TAIL_09,
105087 class t_TAIL_10,
105088 class t_TAIL_11,
105089 class t_TAIL_12,
105090 class t_TAIL_13,
105091 class t_TAIL_14,
105092 class t_TAIL_15,
105093 class t_TAIL_16>
105094template <size_t t_INDEX, class t_ARG_01>
105095void Variant_Base<t_HEAD, t_TAIL_01,
105096 t_TAIL_02,
105097 t_TAIL_03,
105098 t_TAIL_04,
105099 t_TAIL_05,
105100 t_TAIL_06,
105101 t_TAIL_07,
105102 t_TAIL_08,
105103 t_TAIL_09,
105104 t_TAIL_10,
105105 t_TAIL_11,
105106 t_TAIL_12,
105107 t_TAIL_13,
105108 t_TAIL_14,
105109 t_TAIL_15,
105110 t_TAIL_16,
105111 BSLS_COMPILERFEATURES_FILLT( 2)
105112 >::baseEmplace(const t_ARG_01& arg_01)
105113{
105114 typedef typename bsl::remove_cv<
105116 Alt_Type;
105117
105118 reset();
105119
105120 BloombergLP::bslma::ConstructionUtil::construct(
105121 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105122 AllocBase::mechanism(),
105123 arg_01);
105124 d_type = t_INDEX;
105125}
105126#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
105127
105128#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
105129template <class t_HEAD, class t_TAIL_01,
105130 class t_TAIL_02,
105131 class t_TAIL_03,
105132 class t_TAIL_04,
105133 class t_TAIL_05,
105134 class t_TAIL_06,
105135 class t_TAIL_07,
105136 class t_TAIL_08,
105137 class t_TAIL_09,
105138 class t_TAIL_10,
105139 class t_TAIL_11,
105140 class t_TAIL_12,
105141 class t_TAIL_13,
105142 class t_TAIL_14,
105143 class t_TAIL_15,
105144 class t_TAIL_16,
105145 class t_TAIL_17>
105146template <size_t t_INDEX, class t_ARG_01>
105147void Variant_Base<t_HEAD, t_TAIL_01,
105148 t_TAIL_02,
105149 t_TAIL_03,
105150 t_TAIL_04,
105151 t_TAIL_05,
105152 t_TAIL_06,
105153 t_TAIL_07,
105154 t_TAIL_08,
105155 t_TAIL_09,
105156 t_TAIL_10,
105157 t_TAIL_11,
105158 t_TAIL_12,
105159 t_TAIL_13,
105160 t_TAIL_14,
105161 t_TAIL_15,
105162 t_TAIL_16,
105163 t_TAIL_17,
105164 BSLS_COMPILERFEATURES_FILLT( 1)
105165 >::baseEmplace(const t_ARG_01& arg_01)
105166{
105167 typedef typename bsl::remove_cv<
105169 Alt_Type;
105170
105171 reset();
105172
105173 BloombergLP::bslma::ConstructionUtil::construct(
105174 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105175 AllocBase::mechanism(),
105176 arg_01);
105177 d_type = t_INDEX;
105178}
105179#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
105180
105181#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
105182template <class t_HEAD, class t_TAIL_01,
105183 class t_TAIL_02,
105184 class t_TAIL_03,
105185 class t_TAIL_04,
105186 class t_TAIL_05,
105187 class t_TAIL_06,
105188 class t_TAIL_07,
105189 class t_TAIL_08,
105190 class t_TAIL_09,
105191 class t_TAIL_10,
105192 class t_TAIL_11,
105193 class t_TAIL_12,
105194 class t_TAIL_13,
105195 class t_TAIL_14,
105196 class t_TAIL_15,
105197 class t_TAIL_16,
105198 class t_TAIL_17,
105199 class t_TAIL_18>
105200template <size_t t_INDEX, class t_ARG_01>
105201void Variant_Base<t_HEAD, t_TAIL_01,
105202 t_TAIL_02,
105203 t_TAIL_03,
105204 t_TAIL_04,
105205 t_TAIL_05,
105206 t_TAIL_06,
105207 t_TAIL_07,
105208 t_TAIL_08,
105209 t_TAIL_09,
105210 t_TAIL_10,
105211 t_TAIL_11,
105212 t_TAIL_12,
105213 t_TAIL_13,
105214 t_TAIL_14,
105215 t_TAIL_15,
105216 t_TAIL_16,
105217 t_TAIL_17,
105218 t_TAIL_18,
105219 BSLS_COMPILERFEATURES_FILLT( 0)
105220 >::baseEmplace(const t_ARG_01& arg_01)
105221{
105222 typedef typename bsl::remove_cv<
105224 Alt_Type;
105225
105226 reset();
105227
105228 BloombergLP::bslma::ConstructionUtil::construct(
105229 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105230 AllocBase::mechanism(),
105231 arg_01);
105232 d_type = t_INDEX;
105233}
105234#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
105235
105236
105237#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
105238template <class t_HEAD>
105239template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105240void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
105241 >::baseEmplace(const t_ARG_01& arg_01,
105242 const t_ARG_02& arg_02)
105243{
105244 typedef typename bsl::remove_cv<
105246 Alt_Type;
105247
105248 reset();
105249
105250 BloombergLP::bslma::ConstructionUtil::construct(
105251 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105252 AllocBase::mechanism(),
105253 arg_01,
105254 arg_02);
105255 d_type = t_INDEX;
105256}
105257#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
105258
105259#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
105260template <class t_HEAD, class t_TAIL_01>
105261template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105262void Variant_Base<t_HEAD, t_TAIL_01,
105263 BSLS_COMPILERFEATURES_FILLT(17)
105264 >::baseEmplace(const t_ARG_01& arg_01,
105265 const t_ARG_02& arg_02)
105266{
105267 typedef typename bsl::remove_cv<
105269 Alt_Type;
105270
105271 reset();
105272
105273 BloombergLP::bslma::ConstructionUtil::construct(
105274 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105275 AllocBase::mechanism(),
105276 arg_01,
105277 arg_02);
105278 d_type = t_INDEX;
105279}
105280#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
105281
105282#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
105283template <class t_HEAD, class t_TAIL_01,
105284 class t_TAIL_02>
105285template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105286void Variant_Base<t_HEAD, t_TAIL_01,
105287 t_TAIL_02,
105288 BSLS_COMPILERFEATURES_FILLT(16)
105289 >::baseEmplace(const t_ARG_01& arg_01,
105290 const t_ARG_02& arg_02)
105291{
105292 typedef typename bsl::remove_cv<
105294 Alt_Type;
105295
105296 reset();
105297
105298 BloombergLP::bslma::ConstructionUtil::construct(
105299 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105300 AllocBase::mechanism(),
105301 arg_01,
105302 arg_02);
105303 d_type = t_INDEX;
105304}
105305#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
105306
105307#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
105308template <class t_HEAD, class t_TAIL_01,
105309 class t_TAIL_02,
105310 class t_TAIL_03>
105311template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105312void Variant_Base<t_HEAD, t_TAIL_01,
105313 t_TAIL_02,
105314 t_TAIL_03,
105315 BSLS_COMPILERFEATURES_FILLT(15)
105316 >::baseEmplace(const t_ARG_01& arg_01,
105317 const t_ARG_02& arg_02)
105318{
105319 typedef typename bsl::remove_cv<
105321 Alt_Type;
105322
105323 reset();
105324
105325 BloombergLP::bslma::ConstructionUtil::construct(
105326 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105327 AllocBase::mechanism(),
105328 arg_01,
105329 arg_02);
105330 d_type = t_INDEX;
105331}
105332#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
105333
105334#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
105335template <class t_HEAD, class t_TAIL_01,
105336 class t_TAIL_02,
105337 class t_TAIL_03,
105338 class t_TAIL_04>
105339template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105340void Variant_Base<t_HEAD, t_TAIL_01,
105341 t_TAIL_02,
105342 t_TAIL_03,
105343 t_TAIL_04,
105344 BSLS_COMPILERFEATURES_FILLT(14)
105345 >::baseEmplace(const t_ARG_01& arg_01,
105346 const t_ARG_02& arg_02)
105347{
105348 typedef typename bsl::remove_cv<
105350 Alt_Type;
105351
105352 reset();
105353
105354 BloombergLP::bslma::ConstructionUtil::construct(
105355 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105356 AllocBase::mechanism(),
105357 arg_01,
105358 arg_02);
105359 d_type = t_INDEX;
105360}
105361#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
105362
105363#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
105364template <class t_HEAD, class t_TAIL_01,
105365 class t_TAIL_02,
105366 class t_TAIL_03,
105367 class t_TAIL_04,
105368 class t_TAIL_05>
105369template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105370void Variant_Base<t_HEAD, t_TAIL_01,
105371 t_TAIL_02,
105372 t_TAIL_03,
105373 t_TAIL_04,
105374 t_TAIL_05,
105375 BSLS_COMPILERFEATURES_FILLT(13)
105376 >::baseEmplace(const t_ARG_01& arg_01,
105377 const t_ARG_02& arg_02)
105378{
105379 typedef typename bsl::remove_cv<
105381 Alt_Type;
105382
105383 reset();
105384
105385 BloombergLP::bslma::ConstructionUtil::construct(
105386 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105387 AllocBase::mechanism(),
105388 arg_01,
105389 arg_02);
105390 d_type = t_INDEX;
105391}
105392#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
105393
105394#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
105395template <class t_HEAD, class t_TAIL_01,
105396 class t_TAIL_02,
105397 class t_TAIL_03,
105398 class t_TAIL_04,
105399 class t_TAIL_05,
105400 class t_TAIL_06>
105401template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105402void Variant_Base<t_HEAD, t_TAIL_01,
105403 t_TAIL_02,
105404 t_TAIL_03,
105405 t_TAIL_04,
105406 t_TAIL_05,
105407 t_TAIL_06,
105408 BSLS_COMPILERFEATURES_FILLT(12)
105409 >::baseEmplace(const t_ARG_01& arg_01,
105410 const t_ARG_02& arg_02)
105411{
105412 typedef typename bsl::remove_cv<
105414 Alt_Type;
105415
105416 reset();
105417
105418 BloombergLP::bslma::ConstructionUtil::construct(
105419 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105420 AllocBase::mechanism(),
105421 arg_01,
105422 arg_02);
105423 d_type = t_INDEX;
105424}
105425#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
105426
105427#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
105428template <class t_HEAD, class t_TAIL_01,
105429 class t_TAIL_02,
105430 class t_TAIL_03,
105431 class t_TAIL_04,
105432 class t_TAIL_05,
105433 class t_TAIL_06,
105434 class t_TAIL_07>
105435template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105436void Variant_Base<t_HEAD, t_TAIL_01,
105437 t_TAIL_02,
105438 t_TAIL_03,
105439 t_TAIL_04,
105440 t_TAIL_05,
105441 t_TAIL_06,
105442 t_TAIL_07,
105443 BSLS_COMPILERFEATURES_FILLT(11)
105444 >::baseEmplace(const t_ARG_01& arg_01,
105445 const t_ARG_02& arg_02)
105446{
105447 typedef typename bsl::remove_cv<
105449 Alt_Type;
105450
105451 reset();
105452
105453 BloombergLP::bslma::ConstructionUtil::construct(
105454 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105455 AllocBase::mechanism(),
105456 arg_01,
105457 arg_02);
105458 d_type = t_INDEX;
105459}
105460#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
105461
105462#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
105463template <class t_HEAD, class t_TAIL_01,
105464 class t_TAIL_02,
105465 class t_TAIL_03,
105466 class t_TAIL_04,
105467 class t_TAIL_05,
105468 class t_TAIL_06,
105469 class t_TAIL_07,
105470 class t_TAIL_08>
105471template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105472void Variant_Base<t_HEAD, t_TAIL_01,
105473 t_TAIL_02,
105474 t_TAIL_03,
105475 t_TAIL_04,
105476 t_TAIL_05,
105477 t_TAIL_06,
105478 t_TAIL_07,
105479 t_TAIL_08,
105480 BSLS_COMPILERFEATURES_FILLT(10)
105481 >::baseEmplace(const t_ARG_01& arg_01,
105482 const t_ARG_02& arg_02)
105483{
105484 typedef typename bsl::remove_cv<
105486 Alt_Type;
105487
105488 reset();
105489
105490 BloombergLP::bslma::ConstructionUtil::construct(
105491 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105492 AllocBase::mechanism(),
105493 arg_01,
105494 arg_02);
105495 d_type = t_INDEX;
105496}
105497#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
105498
105499#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
105500template <class t_HEAD, class t_TAIL_01,
105501 class t_TAIL_02,
105502 class t_TAIL_03,
105503 class t_TAIL_04,
105504 class t_TAIL_05,
105505 class t_TAIL_06,
105506 class t_TAIL_07,
105507 class t_TAIL_08,
105508 class t_TAIL_09>
105509template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105510void Variant_Base<t_HEAD, t_TAIL_01,
105511 t_TAIL_02,
105512 t_TAIL_03,
105513 t_TAIL_04,
105514 t_TAIL_05,
105515 t_TAIL_06,
105516 t_TAIL_07,
105517 t_TAIL_08,
105518 t_TAIL_09,
105519 BSLS_COMPILERFEATURES_FILLT( 9)
105520 >::baseEmplace(const t_ARG_01& arg_01,
105521 const t_ARG_02& arg_02)
105522{
105523 typedef typename bsl::remove_cv<
105525 Alt_Type;
105526
105527 reset();
105528
105529 BloombergLP::bslma::ConstructionUtil::construct(
105530 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105531 AllocBase::mechanism(),
105532 arg_01,
105533 arg_02);
105534 d_type = t_INDEX;
105535}
105536#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
105537
105538#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
105539template <class t_HEAD, class t_TAIL_01,
105540 class t_TAIL_02,
105541 class t_TAIL_03,
105542 class t_TAIL_04,
105543 class t_TAIL_05,
105544 class t_TAIL_06,
105545 class t_TAIL_07,
105546 class t_TAIL_08,
105547 class t_TAIL_09,
105548 class t_TAIL_10>
105549template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105550void Variant_Base<t_HEAD, t_TAIL_01,
105551 t_TAIL_02,
105552 t_TAIL_03,
105553 t_TAIL_04,
105554 t_TAIL_05,
105555 t_TAIL_06,
105556 t_TAIL_07,
105557 t_TAIL_08,
105558 t_TAIL_09,
105559 t_TAIL_10,
105560 BSLS_COMPILERFEATURES_FILLT( 8)
105561 >::baseEmplace(const t_ARG_01& arg_01,
105562 const t_ARG_02& arg_02)
105563{
105564 typedef typename bsl::remove_cv<
105566 Alt_Type;
105567
105568 reset();
105569
105570 BloombergLP::bslma::ConstructionUtil::construct(
105571 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105572 AllocBase::mechanism(),
105573 arg_01,
105574 arg_02);
105575 d_type = t_INDEX;
105576}
105577#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
105578
105579#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
105580template <class t_HEAD, class t_TAIL_01,
105581 class t_TAIL_02,
105582 class t_TAIL_03,
105583 class t_TAIL_04,
105584 class t_TAIL_05,
105585 class t_TAIL_06,
105586 class t_TAIL_07,
105587 class t_TAIL_08,
105588 class t_TAIL_09,
105589 class t_TAIL_10,
105590 class t_TAIL_11>
105591template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105592void Variant_Base<t_HEAD, t_TAIL_01,
105593 t_TAIL_02,
105594 t_TAIL_03,
105595 t_TAIL_04,
105596 t_TAIL_05,
105597 t_TAIL_06,
105598 t_TAIL_07,
105599 t_TAIL_08,
105600 t_TAIL_09,
105601 t_TAIL_10,
105602 t_TAIL_11,
105603 BSLS_COMPILERFEATURES_FILLT( 7)
105604 >::baseEmplace(const t_ARG_01& arg_01,
105605 const t_ARG_02& arg_02)
105606{
105607 typedef typename bsl::remove_cv<
105609 Alt_Type;
105610
105611 reset();
105612
105613 BloombergLP::bslma::ConstructionUtil::construct(
105614 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105615 AllocBase::mechanism(),
105616 arg_01,
105617 arg_02);
105618 d_type = t_INDEX;
105619}
105620#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
105621
105622#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
105623template <class t_HEAD, class t_TAIL_01,
105624 class t_TAIL_02,
105625 class t_TAIL_03,
105626 class t_TAIL_04,
105627 class t_TAIL_05,
105628 class t_TAIL_06,
105629 class t_TAIL_07,
105630 class t_TAIL_08,
105631 class t_TAIL_09,
105632 class t_TAIL_10,
105633 class t_TAIL_11,
105634 class t_TAIL_12>
105635template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105636void Variant_Base<t_HEAD, t_TAIL_01,
105637 t_TAIL_02,
105638 t_TAIL_03,
105639 t_TAIL_04,
105640 t_TAIL_05,
105641 t_TAIL_06,
105642 t_TAIL_07,
105643 t_TAIL_08,
105644 t_TAIL_09,
105645 t_TAIL_10,
105646 t_TAIL_11,
105647 t_TAIL_12,
105648 BSLS_COMPILERFEATURES_FILLT( 6)
105649 >::baseEmplace(const t_ARG_01& arg_01,
105650 const t_ARG_02& arg_02)
105651{
105652 typedef typename bsl::remove_cv<
105654 Alt_Type;
105655
105656 reset();
105657
105658 BloombergLP::bslma::ConstructionUtil::construct(
105659 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105660 AllocBase::mechanism(),
105661 arg_01,
105662 arg_02);
105663 d_type = t_INDEX;
105664}
105665#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
105666
105667#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
105668template <class t_HEAD, class t_TAIL_01,
105669 class t_TAIL_02,
105670 class t_TAIL_03,
105671 class t_TAIL_04,
105672 class t_TAIL_05,
105673 class t_TAIL_06,
105674 class t_TAIL_07,
105675 class t_TAIL_08,
105676 class t_TAIL_09,
105677 class t_TAIL_10,
105678 class t_TAIL_11,
105679 class t_TAIL_12,
105680 class t_TAIL_13>
105681template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105682void Variant_Base<t_HEAD, t_TAIL_01,
105683 t_TAIL_02,
105684 t_TAIL_03,
105685 t_TAIL_04,
105686 t_TAIL_05,
105687 t_TAIL_06,
105688 t_TAIL_07,
105689 t_TAIL_08,
105690 t_TAIL_09,
105691 t_TAIL_10,
105692 t_TAIL_11,
105693 t_TAIL_12,
105694 t_TAIL_13,
105695 BSLS_COMPILERFEATURES_FILLT( 5)
105696 >::baseEmplace(const t_ARG_01& arg_01,
105697 const t_ARG_02& arg_02)
105698{
105699 typedef typename bsl::remove_cv<
105701 Alt_Type;
105702
105703 reset();
105704
105705 BloombergLP::bslma::ConstructionUtil::construct(
105706 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105707 AllocBase::mechanism(),
105708 arg_01,
105709 arg_02);
105710 d_type = t_INDEX;
105711}
105712#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
105713
105714#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
105715template <class t_HEAD, class t_TAIL_01,
105716 class t_TAIL_02,
105717 class t_TAIL_03,
105718 class t_TAIL_04,
105719 class t_TAIL_05,
105720 class t_TAIL_06,
105721 class t_TAIL_07,
105722 class t_TAIL_08,
105723 class t_TAIL_09,
105724 class t_TAIL_10,
105725 class t_TAIL_11,
105726 class t_TAIL_12,
105727 class t_TAIL_13,
105728 class t_TAIL_14>
105729template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105730void Variant_Base<t_HEAD, t_TAIL_01,
105731 t_TAIL_02,
105732 t_TAIL_03,
105733 t_TAIL_04,
105734 t_TAIL_05,
105735 t_TAIL_06,
105736 t_TAIL_07,
105737 t_TAIL_08,
105738 t_TAIL_09,
105739 t_TAIL_10,
105740 t_TAIL_11,
105741 t_TAIL_12,
105742 t_TAIL_13,
105743 t_TAIL_14,
105744 BSLS_COMPILERFEATURES_FILLT( 4)
105745 >::baseEmplace(const t_ARG_01& arg_01,
105746 const t_ARG_02& arg_02)
105747{
105748 typedef typename bsl::remove_cv<
105750 Alt_Type;
105751
105752 reset();
105753
105754 BloombergLP::bslma::ConstructionUtil::construct(
105755 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105756 AllocBase::mechanism(),
105757 arg_01,
105758 arg_02);
105759 d_type = t_INDEX;
105760}
105761#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
105762
105763#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
105764template <class t_HEAD, class t_TAIL_01,
105765 class t_TAIL_02,
105766 class t_TAIL_03,
105767 class t_TAIL_04,
105768 class t_TAIL_05,
105769 class t_TAIL_06,
105770 class t_TAIL_07,
105771 class t_TAIL_08,
105772 class t_TAIL_09,
105773 class t_TAIL_10,
105774 class t_TAIL_11,
105775 class t_TAIL_12,
105776 class t_TAIL_13,
105777 class t_TAIL_14,
105778 class t_TAIL_15>
105779template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105780void Variant_Base<t_HEAD, t_TAIL_01,
105781 t_TAIL_02,
105782 t_TAIL_03,
105783 t_TAIL_04,
105784 t_TAIL_05,
105785 t_TAIL_06,
105786 t_TAIL_07,
105787 t_TAIL_08,
105788 t_TAIL_09,
105789 t_TAIL_10,
105790 t_TAIL_11,
105791 t_TAIL_12,
105792 t_TAIL_13,
105793 t_TAIL_14,
105794 t_TAIL_15,
105795 BSLS_COMPILERFEATURES_FILLT( 3)
105796 >::baseEmplace(const t_ARG_01& arg_01,
105797 const t_ARG_02& arg_02)
105798{
105799 typedef typename bsl::remove_cv<
105801 Alt_Type;
105802
105803 reset();
105804
105805 BloombergLP::bslma::ConstructionUtil::construct(
105806 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105807 AllocBase::mechanism(),
105808 arg_01,
105809 arg_02);
105810 d_type = t_INDEX;
105811}
105812#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
105813
105814#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
105815template <class t_HEAD, class t_TAIL_01,
105816 class t_TAIL_02,
105817 class t_TAIL_03,
105818 class t_TAIL_04,
105819 class t_TAIL_05,
105820 class t_TAIL_06,
105821 class t_TAIL_07,
105822 class t_TAIL_08,
105823 class t_TAIL_09,
105824 class t_TAIL_10,
105825 class t_TAIL_11,
105826 class t_TAIL_12,
105827 class t_TAIL_13,
105828 class t_TAIL_14,
105829 class t_TAIL_15,
105830 class t_TAIL_16>
105831template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105832void Variant_Base<t_HEAD, t_TAIL_01,
105833 t_TAIL_02,
105834 t_TAIL_03,
105835 t_TAIL_04,
105836 t_TAIL_05,
105837 t_TAIL_06,
105838 t_TAIL_07,
105839 t_TAIL_08,
105840 t_TAIL_09,
105841 t_TAIL_10,
105842 t_TAIL_11,
105843 t_TAIL_12,
105844 t_TAIL_13,
105845 t_TAIL_14,
105846 t_TAIL_15,
105847 t_TAIL_16,
105848 BSLS_COMPILERFEATURES_FILLT( 2)
105849 >::baseEmplace(const t_ARG_01& arg_01,
105850 const t_ARG_02& arg_02)
105851{
105852 typedef typename bsl::remove_cv<
105854 Alt_Type;
105855
105856 reset();
105857
105858 BloombergLP::bslma::ConstructionUtil::construct(
105859 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105860 AllocBase::mechanism(),
105861 arg_01,
105862 arg_02);
105863 d_type = t_INDEX;
105864}
105865#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
105866
105867#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
105868template <class t_HEAD, class t_TAIL_01,
105869 class t_TAIL_02,
105870 class t_TAIL_03,
105871 class t_TAIL_04,
105872 class t_TAIL_05,
105873 class t_TAIL_06,
105874 class t_TAIL_07,
105875 class t_TAIL_08,
105876 class t_TAIL_09,
105877 class t_TAIL_10,
105878 class t_TAIL_11,
105879 class t_TAIL_12,
105880 class t_TAIL_13,
105881 class t_TAIL_14,
105882 class t_TAIL_15,
105883 class t_TAIL_16,
105884 class t_TAIL_17>
105885template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105886void Variant_Base<t_HEAD, t_TAIL_01,
105887 t_TAIL_02,
105888 t_TAIL_03,
105889 t_TAIL_04,
105890 t_TAIL_05,
105891 t_TAIL_06,
105892 t_TAIL_07,
105893 t_TAIL_08,
105894 t_TAIL_09,
105895 t_TAIL_10,
105896 t_TAIL_11,
105897 t_TAIL_12,
105898 t_TAIL_13,
105899 t_TAIL_14,
105900 t_TAIL_15,
105901 t_TAIL_16,
105902 t_TAIL_17,
105903 BSLS_COMPILERFEATURES_FILLT( 1)
105904 >::baseEmplace(const t_ARG_01& arg_01,
105905 const t_ARG_02& arg_02)
105906{
105907 typedef typename bsl::remove_cv<
105909 Alt_Type;
105910
105911 reset();
105912
105913 BloombergLP::bslma::ConstructionUtil::construct(
105914 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105915 AllocBase::mechanism(),
105916 arg_01,
105917 arg_02);
105918 d_type = t_INDEX;
105919}
105920#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
105921
105922#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
105923template <class t_HEAD, class t_TAIL_01,
105924 class t_TAIL_02,
105925 class t_TAIL_03,
105926 class t_TAIL_04,
105927 class t_TAIL_05,
105928 class t_TAIL_06,
105929 class t_TAIL_07,
105930 class t_TAIL_08,
105931 class t_TAIL_09,
105932 class t_TAIL_10,
105933 class t_TAIL_11,
105934 class t_TAIL_12,
105935 class t_TAIL_13,
105936 class t_TAIL_14,
105937 class t_TAIL_15,
105938 class t_TAIL_16,
105939 class t_TAIL_17,
105940 class t_TAIL_18>
105941template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
105942void Variant_Base<t_HEAD, t_TAIL_01,
105943 t_TAIL_02,
105944 t_TAIL_03,
105945 t_TAIL_04,
105946 t_TAIL_05,
105947 t_TAIL_06,
105948 t_TAIL_07,
105949 t_TAIL_08,
105950 t_TAIL_09,
105951 t_TAIL_10,
105952 t_TAIL_11,
105953 t_TAIL_12,
105954 t_TAIL_13,
105955 t_TAIL_14,
105956 t_TAIL_15,
105957 t_TAIL_16,
105958 t_TAIL_17,
105959 t_TAIL_18,
105960 BSLS_COMPILERFEATURES_FILLT( 0)
105961 >::baseEmplace(const t_ARG_01& arg_01,
105962 const t_ARG_02& arg_02)
105963{
105964 typedef typename bsl::remove_cv<
105966 Alt_Type;
105967
105968 reset();
105969
105970 BloombergLP::bslma::ConstructionUtil::construct(
105971 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105972 AllocBase::mechanism(),
105973 arg_01,
105974 arg_02);
105975 d_type = t_INDEX;
105976}
105977#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
105978
105979
105980#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
105981template <class t_HEAD>
105982template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
105983void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
105984 >::baseEmplace(const t_ARG_01& arg_01,
105985 const t_ARG_02& arg_02,
105986 const t_ARG_03& arg_03)
105987{
105988 typedef typename bsl::remove_cv<
105990 Alt_Type;
105991
105992 reset();
105993
105994 BloombergLP::bslma::ConstructionUtil::construct(
105995 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
105996 AllocBase::mechanism(),
105997 arg_01,
105998 arg_02,
105999 arg_03);
106000 d_type = t_INDEX;
106001}
106002#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
106003
106004#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
106005template <class t_HEAD, class t_TAIL_01>
106006template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106007void Variant_Base<t_HEAD, t_TAIL_01,
106008 BSLS_COMPILERFEATURES_FILLT(17)
106009 >::baseEmplace(const t_ARG_01& arg_01,
106010 const t_ARG_02& arg_02,
106011 const t_ARG_03& arg_03)
106012{
106013 typedef typename bsl::remove_cv<
106015 Alt_Type;
106016
106017 reset();
106018
106019 BloombergLP::bslma::ConstructionUtil::construct(
106020 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106021 AllocBase::mechanism(),
106022 arg_01,
106023 arg_02,
106024 arg_03);
106025 d_type = t_INDEX;
106026}
106027#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
106028
106029#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
106030template <class t_HEAD, class t_TAIL_01,
106031 class t_TAIL_02>
106032template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106033void Variant_Base<t_HEAD, t_TAIL_01,
106034 t_TAIL_02,
106035 BSLS_COMPILERFEATURES_FILLT(16)
106036 >::baseEmplace(const t_ARG_01& arg_01,
106037 const t_ARG_02& arg_02,
106038 const t_ARG_03& arg_03)
106039{
106040 typedef typename bsl::remove_cv<
106042 Alt_Type;
106043
106044 reset();
106045
106046 BloombergLP::bslma::ConstructionUtil::construct(
106047 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106048 AllocBase::mechanism(),
106049 arg_01,
106050 arg_02,
106051 arg_03);
106052 d_type = t_INDEX;
106053}
106054#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
106055
106056#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
106057template <class t_HEAD, class t_TAIL_01,
106058 class t_TAIL_02,
106059 class t_TAIL_03>
106060template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106061void Variant_Base<t_HEAD, t_TAIL_01,
106062 t_TAIL_02,
106063 t_TAIL_03,
106064 BSLS_COMPILERFEATURES_FILLT(15)
106065 >::baseEmplace(const t_ARG_01& arg_01,
106066 const t_ARG_02& arg_02,
106067 const t_ARG_03& arg_03)
106068{
106069 typedef typename bsl::remove_cv<
106071 Alt_Type;
106072
106073 reset();
106074
106075 BloombergLP::bslma::ConstructionUtil::construct(
106076 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106077 AllocBase::mechanism(),
106078 arg_01,
106079 arg_02,
106080 arg_03);
106081 d_type = t_INDEX;
106082}
106083#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
106084
106085#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
106086template <class t_HEAD, class t_TAIL_01,
106087 class t_TAIL_02,
106088 class t_TAIL_03,
106089 class t_TAIL_04>
106090template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106091void Variant_Base<t_HEAD, t_TAIL_01,
106092 t_TAIL_02,
106093 t_TAIL_03,
106094 t_TAIL_04,
106095 BSLS_COMPILERFEATURES_FILLT(14)
106096 >::baseEmplace(const t_ARG_01& arg_01,
106097 const t_ARG_02& arg_02,
106098 const t_ARG_03& arg_03)
106099{
106100 typedef typename bsl::remove_cv<
106102 Alt_Type;
106103
106104 reset();
106105
106106 BloombergLP::bslma::ConstructionUtil::construct(
106107 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106108 AllocBase::mechanism(),
106109 arg_01,
106110 arg_02,
106111 arg_03);
106112 d_type = t_INDEX;
106113}
106114#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
106115
106116#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
106117template <class t_HEAD, class t_TAIL_01,
106118 class t_TAIL_02,
106119 class t_TAIL_03,
106120 class t_TAIL_04,
106121 class t_TAIL_05>
106122template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106123void Variant_Base<t_HEAD, t_TAIL_01,
106124 t_TAIL_02,
106125 t_TAIL_03,
106126 t_TAIL_04,
106127 t_TAIL_05,
106128 BSLS_COMPILERFEATURES_FILLT(13)
106129 >::baseEmplace(const t_ARG_01& arg_01,
106130 const t_ARG_02& arg_02,
106131 const t_ARG_03& arg_03)
106132{
106133 typedef typename bsl::remove_cv<
106135 Alt_Type;
106136
106137 reset();
106138
106139 BloombergLP::bslma::ConstructionUtil::construct(
106140 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106141 AllocBase::mechanism(),
106142 arg_01,
106143 arg_02,
106144 arg_03);
106145 d_type = t_INDEX;
106146}
106147#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
106148
106149#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
106150template <class t_HEAD, class t_TAIL_01,
106151 class t_TAIL_02,
106152 class t_TAIL_03,
106153 class t_TAIL_04,
106154 class t_TAIL_05,
106155 class t_TAIL_06>
106156template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106157void Variant_Base<t_HEAD, t_TAIL_01,
106158 t_TAIL_02,
106159 t_TAIL_03,
106160 t_TAIL_04,
106161 t_TAIL_05,
106162 t_TAIL_06,
106163 BSLS_COMPILERFEATURES_FILLT(12)
106164 >::baseEmplace(const t_ARG_01& arg_01,
106165 const t_ARG_02& arg_02,
106166 const t_ARG_03& arg_03)
106167{
106168 typedef typename bsl::remove_cv<
106170 Alt_Type;
106171
106172 reset();
106173
106174 BloombergLP::bslma::ConstructionUtil::construct(
106175 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106176 AllocBase::mechanism(),
106177 arg_01,
106178 arg_02,
106179 arg_03);
106180 d_type = t_INDEX;
106181}
106182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
106183
106184#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
106185template <class t_HEAD, class t_TAIL_01,
106186 class t_TAIL_02,
106187 class t_TAIL_03,
106188 class t_TAIL_04,
106189 class t_TAIL_05,
106190 class t_TAIL_06,
106191 class t_TAIL_07>
106192template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106193void Variant_Base<t_HEAD, t_TAIL_01,
106194 t_TAIL_02,
106195 t_TAIL_03,
106196 t_TAIL_04,
106197 t_TAIL_05,
106198 t_TAIL_06,
106199 t_TAIL_07,
106200 BSLS_COMPILERFEATURES_FILLT(11)
106201 >::baseEmplace(const t_ARG_01& arg_01,
106202 const t_ARG_02& arg_02,
106203 const t_ARG_03& arg_03)
106204{
106205 typedef typename bsl::remove_cv<
106207 Alt_Type;
106208
106209 reset();
106210
106211 BloombergLP::bslma::ConstructionUtil::construct(
106212 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106213 AllocBase::mechanism(),
106214 arg_01,
106215 arg_02,
106216 arg_03);
106217 d_type = t_INDEX;
106218}
106219#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
106220
106221#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
106222template <class t_HEAD, class t_TAIL_01,
106223 class t_TAIL_02,
106224 class t_TAIL_03,
106225 class t_TAIL_04,
106226 class t_TAIL_05,
106227 class t_TAIL_06,
106228 class t_TAIL_07,
106229 class t_TAIL_08>
106230template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106231void Variant_Base<t_HEAD, t_TAIL_01,
106232 t_TAIL_02,
106233 t_TAIL_03,
106234 t_TAIL_04,
106235 t_TAIL_05,
106236 t_TAIL_06,
106237 t_TAIL_07,
106238 t_TAIL_08,
106239 BSLS_COMPILERFEATURES_FILLT(10)
106240 >::baseEmplace(const t_ARG_01& arg_01,
106241 const t_ARG_02& arg_02,
106242 const t_ARG_03& arg_03)
106243{
106244 typedef typename bsl::remove_cv<
106246 Alt_Type;
106247
106248 reset();
106249
106250 BloombergLP::bslma::ConstructionUtil::construct(
106251 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106252 AllocBase::mechanism(),
106253 arg_01,
106254 arg_02,
106255 arg_03);
106256 d_type = t_INDEX;
106257}
106258#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
106259
106260#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
106261template <class t_HEAD, class t_TAIL_01,
106262 class t_TAIL_02,
106263 class t_TAIL_03,
106264 class t_TAIL_04,
106265 class t_TAIL_05,
106266 class t_TAIL_06,
106267 class t_TAIL_07,
106268 class t_TAIL_08,
106269 class t_TAIL_09>
106270template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106271void Variant_Base<t_HEAD, t_TAIL_01,
106272 t_TAIL_02,
106273 t_TAIL_03,
106274 t_TAIL_04,
106275 t_TAIL_05,
106276 t_TAIL_06,
106277 t_TAIL_07,
106278 t_TAIL_08,
106279 t_TAIL_09,
106280 BSLS_COMPILERFEATURES_FILLT( 9)
106281 >::baseEmplace(const t_ARG_01& arg_01,
106282 const t_ARG_02& arg_02,
106283 const t_ARG_03& arg_03)
106284{
106285 typedef typename bsl::remove_cv<
106287 Alt_Type;
106288
106289 reset();
106290
106291 BloombergLP::bslma::ConstructionUtil::construct(
106292 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106293 AllocBase::mechanism(),
106294 arg_01,
106295 arg_02,
106296 arg_03);
106297 d_type = t_INDEX;
106298}
106299#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
106300
106301#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
106302template <class t_HEAD, class t_TAIL_01,
106303 class t_TAIL_02,
106304 class t_TAIL_03,
106305 class t_TAIL_04,
106306 class t_TAIL_05,
106307 class t_TAIL_06,
106308 class t_TAIL_07,
106309 class t_TAIL_08,
106310 class t_TAIL_09,
106311 class t_TAIL_10>
106312template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106313void Variant_Base<t_HEAD, t_TAIL_01,
106314 t_TAIL_02,
106315 t_TAIL_03,
106316 t_TAIL_04,
106317 t_TAIL_05,
106318 t_TAIL_06,
106319 t_TAIL_07,
106320 t_TAIL_08,
106321 t_TAIL_09,
106322 t_TAIL_10,
106323 BSLS_COMPILERFEATURES_FILLT( 8)
106324 >::baseEmplace(const t_ARG_01& arg_01,
106325 const t_ARG_02& arg_02,
106326 const t_ARG_03& arg_03)
106327{
106328 typedef typename bsl::remove_cv<
106330 Alt_Type;
106331
106332 reset();
106333
106334 BloombergLP::bslma::ConstructionUtil::construct(
106335 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106336 AllocBase::mechanism(),
106337 arg_01,
106338 arg_02,
106339 arg_03);
106340 d_type = t_INDEX;
106341}
106342#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
106343
106344#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
106345template <class t_HEAD, class t_TAIL_01,
106346 class t_TAIL_02,
106347 class t_TAIL_03,
106348 class t_TAIL_04,
106349 class t_TAIL_05,
106350 class t_TAIL_06,
106351 class t_TAIL_07,
106352 class t_TAIL_08,
106353 class t_TAIL_09,
106354 class t_TAIL_10,
106355 class t_TAIL_11>
106356template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106357void Variant_Base<t_HEAD, t_TAIL_01,
106358 t_TAIL_02,
106359 t_TAIL_03,
106360 t_TAIL_04,
106361 t_TAIL_05,
106362 t_TAIL_06,
106363 t_TAIL_07,
106364 t_TAIL_08,
106365 t_TAIL_09,
106366 t_TAIL_10,
106367 t_TAIL_11,
106368 BSLS_COMPILERFEATURES_FILLT( 7)
106369 >::baseEmplace(const t_ARG_01& arg_01,
106370 const t_ARG_02& arg_02,
106371 const t_ARG_03& arg_03)
106372{
106373 typedef typename bsl::remove_cv<
106375 Alt_Type;
106376
106377 reset();
106378
106379 BloombergLP::bslma::ConstructionUtil::construct(
106380 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106381 AllocBase::mechanism(),
106382 arg_01,
106383 arg_02,
106384 arg_03);
106385 d_type = t_INDEX;
106386}
106387#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
106388
106389#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
106390template <class t_HEAD, class t_TAIL_01,
106391 class t_TAIL_02,
106392 class t_TAIL_03,
106393 class t_TAIL_04,
106394 class t_TAIL_05,
106395 class t_TAIL_06,
106396 class t_TAIL_07,
106397 class t_TAIL_08,
106398 class t_TAIL_09,
106399 class t_TAIL_10,
106400 class t_TAIL_11,
106401 class t_TAIL_12>
106402template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106403void Variant_Base<t_HEAD, t_TAIL_01,
106404 t_TAIL_02,
106405 t_TAIL_03,
106406 t_TAIL_04,
106407 t_TAIL_05,
106408 t_TAIL_06,
106409 t_TAIL_07,
106410 t_TAIL_08,
106411 t_TAIL_09,
106412 t_TAIL_10,
106413 t_TAIL_11,
106414 t_TAIL_12,
106415 BSLS_COMPILERFEATURES_FILLT( 6)
106416 >::baseEmplace(const t_ARG_01& arg_01,
106417 const t_ARG_02& arg_02,
106418 const t_ARG_03& arg_03)
106419{
106420 typedef typename bsl::remove_cv<
106422 Alt_Type;
106423
106424 reset();
106425
106426 BloombergLP::bslma::ConstructionUtil::construct(
106427 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106428 AllocBase::mechanism(),
106429 arg_01,
106430 arg_02,
106431 arg_03);
106432 d_type = t_INDEX;
106433}
106434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
106435
106436#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
106437template <class t_HEAD, class t_TAIL_01,
106438 class t_TAIL_02,
106439 class t_TAIL_03,
106440 class t_TAIL_04,
106441 class t_TAIL_05,
106442 class t_TAIL_06,
106443 class t_TAIL_07,
106444 class t_TAIL_08,
106445 class t_TAIL_09,
106446 class t_TAIL_10,
106447 class t_TAIL_11,
106448 class t_TAIL_12,
106449 class t_TAIL_13>
106450template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106451void Variant_Base<t_HEAD, t_TAIL_01,
106452 t_TAIL_02,
106453 t_TAIL_03,
106454 t_TAIL_04,
106455 t_TAIL_05,
106456 t_TAIL_06,
106457 t_TAIL_07,
106458 t_TAIL_08,
106459 t_TAIL_09,
106460 t_TAIL_10,
106461 t_TAIL_11,
106462 t_TAIL_12,
106463 t_TAIL_13,
106464 BSLS_COMPILERFEATURES_FILLT( 5)
106465 >::baseEmplace(const t_ARG_01& arg_01,
106466 const t_ARG_02& arg_02,
106467 const t_ARG_03& arg_03)
106468{
106469 typedef typename bsl::remove_cv<
106471 Alt_Type;
106472
106473 reset();
106474
106475 BloombergLP::bslma::ConstructionUtil::construct(
106476 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106477 AllocBase::mechanism(),
106478 arg_01,
106479 arg_02,
106480 arg_03);
106481 d_type = t_INDEX;
106482}
106483#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
106484
106485#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
106486template <class t_HEAD, class t_TAIL_01,
106487 class t_TAIL_02,
106488 class t_TAIL_03,
106489 class t_TAIL_04,
106490 class t_TAIL_05,
106491 class t_TAIL_06,
106492 class t_TAIL_07,
106493 class t_TAIL_08,
106494 class t_TAIL_09,
106495 class t_TAIL_10,
106496 class t_TAIL_11,
106497 class t_TAIL_12,
106498 class t_TAIL_13,
106499 class t_TAIL_14>
106500template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106501void Variant_Base<t_HEAD, t_TAIL_01,
106502 t_TAIL_02,
106503 t_TAIL_03,
106504 t_TAIL_04,
106505 t_TAIL_05,
106506 t_TAIL_06,
106507 t_TAIL_07,
106508 t_TAIL_08,
106509 t_TAIL_09,
106510 t_TAIL_10,
106511 t_TAIL_11,
106512 t_TAIL_12,
106513 t_TAIL_13,
106514 t_TAIL_14,
106515 BSLS_COMPILERFEATURES_FILLT( 4)
106516 >::baseEmplace(const t_ARG_01& arg_01,
106517 const t_ARG_02& arg_02,
106518 const t_ARG_03& arg_03)
106519{
106520 typedef typename bsl::remove_cv<
106522 Alt_Type;
106523
106524 reset();
106525
106526 BloombergLP::bslma::ConstructionUtil::construct(
106527 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106528 AllocBase::mechanism(),
106529 arg_01,
106530 arg_02,
106531 arg_03);
106532 d_type = t_INDEX;
106533}
106534#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
106535
106536#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
106537template <class t_HEAD, class t_TAIL_01,
106538 class t_TAIL_02,
106539 class t_TAIL_03,
106540 class t_TAIL_04,
106541 class t_TAIL_05,
106542 class t_TAIL_06,
106543 class t_TAIL_07,
106544 class t_TAIL_08,
106545 class t_TAIL_09,
106546 class t_TAIL_10,
106547 class t_TAIL_11,
106548 class t_TAIL_12,
106549 class t_TAIL_13,
106550 class t_TAIL_14,
106551 class t_TAIL_15>
106552template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106553void Variant_Base<t_HEAD, t_TAIL_01,
106554 t_TAIL_02,
106555 t_TAIL_03,
106556 t_TAIL_04,
106557 t_TAIL_05,
106558 t_TAIL_06,
106559 t_TAIL_07,
106560 t_TAIL_08,
106561 t_TAIL_09,
106562 t_TAIL_10,
106563 t_TAIL_11,
106564 t_TAIL_12,
106565 t_TAIL_13,
106566 t_TAIL_14,
106567 t_TAIL_15,
106568 BSLS_COMPILERFEATURES_FILLT( 3)
106569 >::baseEmplace(const t_ARG_01& arg_01,
106570 const t_ARG_02& arg_02,
106571 const t_ARG_03& arg_03)
106572{
106573 typedef typename bsl::remove_cv<
106575 Alt_Type;
106576
106577 reset();
106578
106579 BloombergLP::bslma::ConstructionUtil::construct(
106580 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106581 AllocBase::mechanism(),
106582 arg_01,
106583 arg_02,
106584 arg_03);
106585 d_type = t_INDEX;
106586}
106587#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
106588
106589#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
106590template <class t_HEAD, class t_TAIL_01,
106591 class t_TAIL_02,
106592 class t_TAIL_03,
106593 class t_TAIL_04,
106594 class t_TAIL_05,
106595 class t_TAIL_06,
106596 class t_TAIL_07,
106597 class t_TAIL_08,
106598 class t_TAIL_09,
106599 class t_TAIL_10,
106600 class t_TAIL_11,
106601 class t_TAIL_12,
106602 class t_TAIL_13,
106603 class t_TAIL_14,
106604 class t_TAIL_15,
106605 class t_TAIL_16>
106606template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106607void Variant_Base<t_HEAD, t_TAIL_01,
106608 t_TAIL_02,
106609 t_TAIL_03,
106610 t_TAIL_04,
106611 t_TAIL_05,
106612 t_TAIL_06,
106613 t_TAIL_07,
106614 t_TAIL_08,
106615 t_TAIL_09,
106616 t_TAIL_10,
106617 t_TAIL_11,
106618 t_TAIL_12,
106619 t_TAIL_13,
106620 t_TAIL_14,
106621 t_TAIL_15,
106622 t_TAIL_16,
106623 BSLS_COMPILERFEATURES_FILLT( 2)
106624 >::baseEmplace(const t_ARG_01& arg_01,
106625 const t_ARG_02& arg_02,
106626 const t_ARG_03& arg_03)
106627{
106628 typedef typename bsl::remove_cv<
106630 Alt_Type;
106631
106632 reset();
106633
106634 BloombergLP::bslma::ConstructionUtil::construct(
106635 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106636 AllocBase::mechanism(),
106637 arg_01,
106638 arg_02,
106639 arg_03);
106640 d_type = t_INDEX;
106641}
106642#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
106643
106644#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
106645template <class t_HEAD, class t_TAIL_01,
106646 class t_TAIL_02,
106647 class t_TAIL_03,
106648 class t_TAIL_04,
106649 class t_TAIL_05,
106650 class t_TAIL_06,
106651 class t_TAIL_07,
106652 class t_TAIL_08,
106653 class t_TAIL_09,
106654 class t_TAIL_10,
106655 class t_TAIL_11,
106656 class t_TAIL_12,
106657 class t_TAIL_13,
106658 class t_TAIL_14,
106659 class t_TAIL_15,
106660 class t_TAIL_16,
106661 class t_TAIL_17>
106662template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106663void Variant_Base<t_HEAD, t_TAIL_01,
106664 t_TAIL_02,
106665 t_TAIL_03,
106666 t_TAIL_04,
106667 t_TAIL_05,
106668 t_TAIL_06,
106669 t_TAIL_07,
106670 t_TAIL_08,
106671 t_TAIL_09,
106672 t_TAIL_10,
106673 t_TAIL_11,
106674 t_TAIL_12,
106675 t_TAIL_13,
106676 t_TAIL_14,
106677 t_TAIL_15,
106678 t_TAIL_16,
106679 t_TAIL_17,
106680 BSLS_COMPILERFEATURES_FILLT( 1)
106681 >::baseEmplace(const t_ARG_01& arg_01,
106682 const t_ARG_02& arg_02,
106683 const t_ARG_03& arg_03)
106684{
106685 typedef typename bsl::remove_cv<
106687 Alt_Type;
106688
106689 reset();
106690
106691 BloombergLP::bslma::ConstructionUtil::construct(
106692 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106693 AllocBase::mechanism(),
106694 arg_01,
106695 arg_02,
106696 arg_03);
106697 d_type = t_INDEX;
106698}
106699#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
106700
106701#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
106702template <class t_HEAD, class t_TAIL_01,
106703 class t_TAIL_02,
106704 class t_TAIL_03,
106705 class t_TAIL_04,
106706 class t_TAIL_05,
106707 class t_TAIL_06,
106708 class t_TAIL_07,
106709 class t_TAIL_08,
106710 class t_TAIL_09,
106711 class t_TAIL_10,
106712 class t_TAIL_11,
106713 class t_TAIL_12,
106714 class t_TAIL_13,
106715 class t_TAIL_14,
106716 class t_TAIL_15,
106717 class t_TAIL_16,
106718 class t_TAIL_17,
106719 class t_TAIL_18>
106720template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
106721void Variant_Base<t_HEAD, t_TAIL_01,
106722 t_TAIL_02,
106723 t_TAIL_03,
106724 t_TAIL_04,
106725 t_TAIL_05,
106726 t_TAIL_06,
106727 t_TAIL_07,
106728 t_TAIL_08,
106729 t_TAIL_09,
106730 t_TAIL_10,
106731 t_TAIL_11,
106732 t_TAIL_12,
106733 t_TAIL_13,
106734 t_TAIL_14,
106735 t_TAIL_15,
106736 t_TAIL_16,
106737 t_TAIL_17,
106738 t_TAIL_18,
106739 BSLS_COMPILERFEATURES_FILLT( 0)
106740 >::baseEmplace(const t_ARG_01& arg_01,
106741 const t_ARG_02& arg_02,
106742 const t_ARG_03& arg_03)
106743{
106744 typedef typename bsl::remove_cv<
106746 Alt_Type;
106747
106748 reset();
106749
106750 BloombergLP::bslma::ConstructionUtil::construct(
106751 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106752 AllocBase::mechanism(),
106753 arg_01,
106754 arg_02,
106755 arg_03);
106756 d_type = t_INDEX;
106757}
106758#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
106759
106760
106761#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
106762template <class t_HEAD>
106763template <size_t t_INDEX,
106764 class t_ARG_01,
106765 class t_ARG_02,
106766 class t_ARG_03,
106767 class t_ARG_04>
106768void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
106769 >::baseEmplace(const t_ARG_01& arg_01,
106770 const t_ARG_02& arg_02,
106771 const t_ARG_03& arg_03,
106772 const t_ARG_04& arg_04)
106773{
106774 typedef typename bsl::remove_cv<
106776 Alt_Type;
106777
106778 reset();
106779
106780 BloombergLP::bslma::ConstructionUtil::construct(
106781 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106782 AllocBase::mechanism(),
106783 arg_01,
106784 arg_02,
106785 arg_03,
106786 arg_04);
106787 d_type = t_INDEX;
106788}
106789#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
106790
106791#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
106792template <class t_HEAD, class t_TAIL_01>
106793template <size_t t_INDEX,
106794 class t_ARG_01,
106795 class t_ARG_02,
106796 class t_ARG_03,
106797 class t_ARG_04>
106798void Variant_Base<t_HEAD, t_TAIL_01,
106799 BSLS_COMPILERFEATURES_FILLT(17)
106800 >::baseEmplace(const t_ARG_01& arg_01,
106801 const t_ARG_02& arg_02,
106802 const t_ARG_03& arg_03,
106803 const t_ARG_04& arg_04)
106804{
106805 typedef typename bsl::remove_cv<
106807 Alt_Type;
106808
106809 reset();
106810
106811 BloombergLP::bslma::ConstructionUtil::construct(
106812 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106813 AllocBase::mechanism(),
106814 arg_01,
106815 arg_02,
106816 arg_03,
106817 arg_04);
106818 d_type = t_INDEX;
106819}
106820#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
106821
106822#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
106823template <class t_HEAD, class t_TAIL_01,
106824 class t_TAIL_02>
106825template <size_t t_INDEX,
106826 class t_ARG_01,
106827 class t_ARG_02,
106828 class t_ARG_03,
106829 class t_ARG_04>
106830void Variant_Base<t_HEAD, t_TAIL_01,
106831 t_TAIL_02,
106832 BSLS_COMPILERFEATURES_FILLT(16)
106833 >::baseEmplace(const t_ARG_01& arg_01,
106834 const t_ARG_02& arg_02,
106835 const t_ARG_03& arg_03,
106836 const t_ARG_04& arg_04)
106837{
106838 typedef typename bsl::remove_cv<
106840 Alt_Type;
106841
106842 reset();
106843
106844 BloombergLP::bslma::ConstructionUtil::construct(
106845 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106846 AllocBase::mechanism(),
106847 arg_01,
106848 arg_02,
106849 arg_03,
106850 arg_04);
106851 d_type = t_INDEX;
106852}
106853#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
106854
106855#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
106856template <class t_HEAD, class t_TAIL_01,
106857 class t_TAIL_02,
106858 class t_TAIL_03>
106859template <size_t t_INDEX,
106860 class t_ARG_01,
106861 class t_ARG_02,
106862 class t_ARG_03,
106863 class t_ARG_04>
106864void Variant_Base<t_HEAD, t_TAIL_01,
106865 t_TAIL_02,
106866 t_TAIL_03,
106867 BSLS_COMPILERFEATURES_FILLT(15)
106868 >::baseEmplace(const t_ARG_01& arg_01,
106869 const t_ARG_02& arg_02,
106870 const t_ARG_03& arg_03,
106871 const t_ARG_04& arg_04)
106872{
106873 typedef typename bsl::remove_cv<
106875 Alt_Type;
106876
106877 reset();
106878
106879 BloombergLP::bslma::ConstructionUtil::construct(
106880 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106881 AllocBase::mechanism(),
106882 arg_01,
106883 arg_02,
106884 arg_03,
106885 arg_04);
106886 d_type = t_INDEX;
106887}
106888#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
106889
106890#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
106891template <class t_HEAD, class t_TAIL_01,
106892 class t_TAIL_02,
106893 class t_TAIL_03,
106894 class t_TAIL_04>
106895template <size_t t_INDEX,
106896 class t_ARG_01,
106897 class t_ARG_02,
106898 class t_ARG_03,
106899 class t_ARG_04>
106900void Variant_Base<t_HEAD, t_TAIL_01,
106901 t_TAIL_02,
106902 t_TAIL_03,
106903 t_TAIL_04,
106904 BSLS_COMPILERFEATURES_FILLT(14)
106905 >::baseEmplace(const t_ARG_01& arg_01,
106906 const t_ARG_02& arg_02,
106907 const t_ARG_03& arg_03,
106908 const t_ARG_04& arg_04)
106909{
106910 typedef typename bsl::remove_cv<
106912 Alt_Type;
106913
106914 reset();
106915
106916 BloombergLP::bslma::ConstructionUtil::construct(
106917 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106918 AllocBase::mechanism(),
106919 arg_01,
106920 arg_02,
106921 arg_03,
106922 arg_04);
106923 d_type = t_INDEX;
106924}
106925#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
106926
106927#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
106928template <class t_HEAD, class t_TAIL_01,
106929 class t_TAIL_02,
106930 class t_TAIL_03,
106931 class t_TAIL_04,
106932 class t_TAIL_05>
106933template <size_t t_INDEX,
106934 class t_ARG_01,
106935 class t_ARG_02,
106936 class t_ARG_03,
106937 class t_ARG_04>
106938void Variant_Base<t_HEAD, t_TAIL_01,
106939 t_TAIL_02,
106940 t_TAIL_03,
106941 t_TAIL_04,
106942 t_TAIL_05,
106943 BSLS_COMPILERFEATURES_FILLT(13)
106944 >::baseEmplace(const t_ARG_01& arg_01,
106945 const t_ARG_02& arg_02,
106946 const t_ARG_03& arg_03,
106947 const t_ARG_04& arg_04)
106948{
106949 typedef typename bsl::remove_cv<
106951 Alt_Type;
106952
106953 reset();
106954
106955 BloombergLP::bslma::ConstructionUtil::construct(
106956 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106957 AllocBase::mechanism(),
106958 arg_01,
106959 arg_02,
106960 arg_03,
106961 arg_04);
106962 d_type = t_INDEX;
106963}
106964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
106965
106966#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
106967template <class t_HEAD, class t_TAIL_01,
106968 class t_TAIL_02,
106969 class t_TAIL_03,
106970 class t_TAIL_04,
106971 class t_TAIL_05,
106972 class t_TAIL_06>
106973template <size_t t_INDEX,
106974 class t_ARG_01,
106975 class t_ARG_02,
106976 class t_ARG_03,
106977 class t_ARG_04>
106978void Variant_Base<t_HEAD, t_TAIL_01,
106979 t_TAIL_02,
106980 t_TAIL_03,
106981 t_TAIL_04,
106982 t_TAIL_05,
106983 t_TAIL_06,
106984 BSLS_COMPILERFEATURES_FILLT(12)
106985 >::baseEmplace(const t_ARG_01& arg_01,
106986 const t_ARG_02& arg_02,
106987 const t_ARG_03& arg_03,
106988 const t_ARG_04& arg_04)
106989{
106990 typedef typename bsl::remove_cv<
106992 Alt_Type;
106993
106994 reset();
106995
106996 BloombergLP::bslma::ConstructionUtil::construct(
106997 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
106998 AllocBase::mechanism(),
106999 arg_01,
107000 arg_02,
107001 arg_03,
107002 arg_04);
107003 d_type = t_INDEX;
107004}
107005#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
107006
107007#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
107008template <class t_HEAD, class t_TAIL_01,
107009 class t_TAIL_02,
107010 class t_TAIL_03,
107011 class t_TAIL_04,
107012 class t_TAIL_05,
107013 class t_TAIL_06,
107014 class t_TAIL_07>
107015template <size_t t_INDEX,
107016 class t_ARG_01,
107017 class t_ARG_02,
107018 class t_ARG_03,
107019 class t_ARG_04>
107020void Variant_Base<t_HEAD, t_TAIL_01,
107021 t_TAIL_02,
107022 t_TAIL_03,
107023 t_TAIL_04,
107024 t_TAIL_05,
107025 t_TAIL_06,
107026 t_TAIL_07,
107027 BSLS_COMPILERFEATURES_FILLT(11)
107028 >::baseEmplace(const t_ARG_01& arg_01,
107029 const t_ARG_02& arg_02,
107030 const t_ARG_03& arg_03,
107031 const t_ARG_04& arg_04)
107032{
107033 typedef typename bsl::remove_cv<
107035 Alt_Type;
107036
107037 reset();
107038
107039 BloombergLP::bslma::ConstructionUtil::construct(
107040 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107041 AllocBase::mechanism(),
107042 arg_01,
107043 arg_02,
107044 arg_03,
107045 arg_04);
107046 d_type = t_INDEX;
107047}
107048#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
107049
107050#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
107051template <class t_HEAD, class t_TAIL_01,
107052 class t_TAIL_02,
107053 class t_TAIL_03,
107054 class t_TAIL_04,
107055 class t_TAIL_05,
107056 class t_TAIL_06,
107057 class t_TAIL_07,
107058 class t_TAIL_08>
107059template <size_t t_INDEX,
107060 class t_ARG_01,
107061 class t_ARG_02,
107062 class t_ARG_03,
107063 class t_ARG_04>
107064void Variant_Base<t_HEAD, t_TAIL_01,
107065 t_TAIL_02,
107066 t_TAIL_03,
107067 t_TAIL_04,
107068 t_TAIL_05,
107069 t_TAIL_06,
107070 t_TAIL_07,
107071 t_TAIL_08,
107072 BSLS_COMPILERFEATURES_FILLT(10)
107073 >::baseEmplace(const t_ARG_01& arg_01,
107074 const t_ARG_02& arg_02,
107075 const t_ARG_03& arg_03,
107076 const t_ARG_04& arg_04)
107077{
107078 typedef typename bsl::remove_cv<
107080 Alt_Type;
107081
107082 reset();
107083
107084 BloombergLP::bslma::ConstructionUtil::construct(
107085 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107086 AllocBase::mechanism(),
107087 arg_01,
107088 arg_02,
107089 arg_03,
107090 arg_04);
107091 d_type = t_INDEX;
107092}
107093#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
107094
107095#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
107096template <class t_HEAD, class t_TAIL_01,
107097 class t_TAIL_02,
107098 class t_TAIL_03,
107099 class t_TAIL_04,
107100 class t_TAIL_05,
107101 class t_TAIL_06,
107102 class t_TAIL_07,
107103 class t_TAIL_08,
107104 class t_TAIL_09>
107105template <size_t t_INDEX,
107106 class t_ARG_01,
107107 class t_ARG_02,
107108 class t_ARG_03,
107109 class t_ARG_04>
107110void Variant_Base<t_HEAD, t_TAIL_01,
107111 t_TAIL_02,
107112 t_TAIL_03,
107113 t_TAIL_04,
107114 t_TAIL_05,
107115 t_TAIL_06,
107116 t_TAIL_07,
107117 t_TAIL_08,
107118 t_TAIL_09,
107119 BSLS_COMPILERFEATURES_FILLT( 9)
107120 >::baseEmplace(const t_ARG_01& arg_01,
107121 const t_ARG_02& arg_02,
107122 const t_ARG_03& arg_03,
107123 const t_ARG_04& arg_04)
107124{
107125 typedef typename bsl::remove_cv<
107127 Alt_Type;
107128
107129 reset();
107130
107131 BloombergLP::bslma::ConstructionUtil::construct(
107132 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107133 AllocBase::mechanism(),
107134 arg_01,
107135 arg_02,
107136 arg_03,
107137 arg_04);
107138 d_type = t_INDEX;
107139}
107140#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
107141
107142#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
107143template <class t_HEAD, class t_TAIL_01,
107144 class t_TAIL_02,
107145 class t_TAIL_03,
107146 class t_TAIL_04,
107147 class t_TAIL_05,
107148 class t_TAIL_06,
107149 class t_TAIL_07,
107150 class t_TAIL_08,
107151 class t_TAIL_09,
107152 class t_TAIL_10>
107153template <size_t t_INDEX,
107154 class t_ARG_01,
107155 class t_ARG_02,
107156 class t_ARG_03,
107157 class t_ARG_04>
107158void Variant_Base<t_HEAD, t_TAIL_01,
107159 t_TAIL_02,
107160 t_TAIL_03,
107161 t_TAIL_04,
107162 t_TAIL_05,
107163 t_TAIL_06,
107164 t_TAIL_07,
107165 t_TAIL_08,
107166 t_TAIL_09,
107167 t_TAIL_10,
107168 BSLS_COMPILERFEATURES_FILLT( 8)
107169 >::baseEmplace(const t_ARG_01& arg_01,
107170 const t_ARG_02& arg_02,
107171 const t_ARG_03& arg_03,
107172 const t_ARG_04& arg_04)
107173{
107174 typedef typename bsl::remove_cv<
107176 Alt_Type;
107177
107178 reset();
107179
107180 BloombergLP::bslma::ConstructionUtil::construct(
107181 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107182 AllocBase::mechanism(),
107183 arg_01,
107184 arg_02,
107185 arg_03,
107186 arg_04);
107187 d_type = t_INDEX;
107188}
107189#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
107190
107191#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
107192template <class t_HEAD, class t_TAIL_01,
107193 class t_TAIL_02,
107194 class t_TAIL_03,
107195 class t_TAIL_04,
107196 class t_TAIL_05,
107197 class t_TAIL_06,
107198 class t_TAIL_07,
107199 class t_TAIL_08,
107200 class t_TAIL_09,
107201 class t_TAIL_10,
107202 class t_TAIL_11>
107203template <size_t t_INDEX,
107204 class t_ARG_01,
107205 class t_ARG_02,
107206 class t_ARG_03,
107207 class t_ARG_04>
107208void Variant_Base<t_HEAD, t_TAIL_01,
107209 t_TAIL_02,
107210 t_TAIL_03,
107211 t_TAIL_04,
107212 t_TAIL_05,
107213 t_TAIL_06,
107214 t_TAIL_07,
107215 t_TAIL_08,
107216 t_TAIL_09,
107217 t_TAIL_10,
107218 t_TAIL_11,
107219 BSLS_COMPILERFEATURES_FILLT( 7)
107220 >::baseEmplace(const t_ARG_01& arg_01,
107221 const t_ARG_02& arg_02,
107222 const t_ARG_03& arg_03,
107223 const t_ARG_04& arg_04)
107224{
107225 typedef typename bsl::remove_cv<
107227 Alt_Type;
107228
107229 reset();
107230
107231 BloombergLP::bslma::ConstructionUtil::construct(
107232 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107233 AllocBase::mechanism(),
107234 arg_01,
107235 arg_02,
107236 arg_03,
107237 arg_04);
107238 d_type = t_INDEX;
107239}
107240#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
107241
107242#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
107243template <class t_HEAD, class t_TAIL_01,
107244 class t_TAIL_02,
107245 class t_TAIL_03,
107246 class t_TAIL_04,
107247 class t_TAIL_05,
107248 class t_TAIL_06,
107249 class t_TAIL_07,
107250 class t_TAIL_08,
107251 class t_TAIL_09,
107252 class t_TAIL_10,
107253 class t_TAIL_11,
107254 class t_TAIL_12>
107255template <size_t t_INDEX,
107256 class t_ARG_01,
107257 class t_ARG_02,
107258 class t_ARG_03,
107259 class t_ARG_04>
107260void Variant_Base<t_HEAD, t_TAIL_01,
107261 t_TAIL_02,
107262 t_TAIL_03,
107263 t_TAIL_04,
107264 t_TAIL_05,
107265 t_TAIL_06,
107266 t_TAIL_07,
107267 t_TAIL_08,
107268 t_TAIL_09,
107269 t_TAIL_10,
107270 t_TAIL_11,
107271 t_TAIL_12,
107272 BSLS_COMPILERFEATURES_FILLT( 6)
107273 >::baseEmplace(const t_ARG_01& arg_01,
107274 const t_ARG_02& arg_02,
107275 const t_ARG_03& arg_03,
107276 const t_ARG_04& arg_04)
107277{
107278 typedef typename bsl::remove_cv<
107280 Alt_Type;
107281
107282 reset();
107283
107284 BloombergLP::bslma::ConstructionUtil::construct(
107285 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107286 AllocBase::mechanism(),
107287 arg_01,
107288 arg_02,
107289 arg_03,
107290 arg_04);
107291 d_type = t_INDEX;
107292}
107293#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
107294
107295#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
107296template <class t_HEAD, class t_TAIL_01,
107297 class t_TAIL_02,
107298 class t_TAIL_03,
107299 class t_TAIL_04,
107300 class t_TAIL_05,
107301 class t_TAIL_06,
107302 class t_TAIL_07,
107303 class t_TAIL_08,
107304 class t_TAIL_09,
107305 class t_TAIL_10,
107306 class t_TAIL_11,
107307 class t_TAIL_12,
107308 class t_TAIL_13>
107309template <size_t t_INDEX,
107310 class t_ARG_01,
107311 class t_ARG_02,
107312 class t_ARG_03,
107313 class t_ARG_04>
107314void Variant_Base<t_HEAD, t_TAIL_01,
107315 t_TAIL_02,
107316 t_TAIL_03,
107317 t_TAIL_04,
107318 t_TAIL_05,
107319 t_TAIL_06,
107320 t_TAIL_07,
107321 t_TAIL_08,
107322 t_TAIL_09,
107323 t_TAIL_10,
107324 t_TAIL_11,
107325 t_TAIL_12,
107326 t_TAIL_13,
107327 BSLS_COMPILERFEATURES_FILLT( 5)
107328 >::baseEmplace(const t_ARG_01& arg_01,
107329 const t_ARG_02& arg_02,
107330 const t_ARG_03& arg_03,
107331 const t_ARG_04& arg_04)
107332{
107333 typedef typename bsl::remove_cv<
107335 Alt_Type;
107336
107337 reset();
107338
107339 BloombergLP::bslma::ConstructionUtil::construct(
107340 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107341 AllocBase::mechanism(),
107342 arg_01,
107343 arg_02,
107344 arg_03,
107345 arg_04);
107346 d_type = t_INDEX;
107347}
107348#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
107349
107350#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
107351template <class t_HEAD, class t_TAIL_01,
107352 class t_TAIL_02,
107353 class t_TAIL_03,
107354 class t_TAIL_04,
107355 class t_TAIL_05,
107356 class t_TAIL_06,
107357 class t_TAIL_07,
107358 class t_TAIL_08,
107359 class t_TAIL_09,
107360 class t_TAIL_10,
107361 class t_TAIL_11,
107362 class t_TAIL_12,
107363 class t_TAIL_13,
107364 class t_TAIL_14>
107365template <size_t t_INDEX,
107366 class t_ARG_01,
107367 class t_ARG_02,
107368 class t_ARG_03,
107369 class t_ARG_04>
107370void Variant_Base<t_HEAD, t_TAIL_01,
107371 t_TAIL_02,
107372 t_TAIL_03,
107373 t_TAIL_04,
107374 t_TAIL_05,
107375 t_TAIL_06,
107376 t_TAIL_07,
107377 t_TAIL_08,
107378 t_TAIL_09,
107379 t_TAIL_10,
107380 t_TAIL_11,
107381 t_TAIL_12,
107382 t_TAIL_13,
107383 t_TAIL_14,
107384 BSLS_COMPILERFEATURES_FILLT( 4)
107385 >::baseEmplace(const t_ARG_01& arg_01,
107386 const t_ARG_02& arg_02,
107387 const t_ARG_03& arg_03,
107388 const t_ARG_04& arg_04)
107389{
107390 typedef typename bsl::remove_cv<
107392 Alt_Type;
107393
107394 reset();
107395
107396 BloombergLP::bslma::ConstructionUtil::construct(
107397 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107398 AllocBase::mechanism(),
107399 arg_01,
107400 arg_02,
107401 arg_03,
107402 arg_04);
107403 d_type = t_INDEX;
107404}
107405#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
107406
107407#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
107408template <class t_HEAD, class t_TAIL_01,
107409 class t_TAIL_02,
107410 class t_TAIL_03,
107411 class t_TAIL_04,
107412 class t_TAIL_05,
107413 class t_TAIL_06,
107414 class t_TAIL_07,
107415 class t_TAIL_08,
107416 class t_TAIL_09,
107417 class t_TAIL_10,
107418 class t_TAIL_11,
107419 class t_TAIL_12,
107420 class t_TAIL_13,
107421 class t_TAIL_14,
107422 class t_TAIL_15>
107423template <size_t t_INDEX,
107424 class t_ARG_01,
107425 class t_ARG_02,
107426 class t_ARG_03,
107427 class t_ARG_04>
107428void Variant_Base<t_HEAD, t_TAIL_01,
107429 t_TAIL_02,
107430 t_TAIL_03,
107431 t_TAIL_04,
107432 t_TAIL_05,
107433 t_TAIL_06,
107434 t_TAIL_07,
107435 t_TAIL_08,
107436 t_TAIL_09,
107437 t_TAIL_10,
107438 t_TAIL_11,
107439 t_TAIL_12,
107440 t_TAIL_13,
107441 t_TAIL_14,
107442 t_TAIL_15,
107443 BSLS_COMPILERFEATURES_FILLT( 3)
107444 >::baseEmplace(const t_ARG_01& arg_01,
107445 const t_ARG_02& arg_02,
107446 const t_ARG_03& arg_03,
107447 const t_ARG_04& arg_04)
107448{
107449 typedef typename bsl::remove_cv<
107451 Alt_Type;
107452
107453 reset();
107454
107455 BloombergLP::bslma::ConstructionUtil::construct(
107456 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107457 AllocBase::mechanism(),
107458 arg_01,
107459 arg_02,
107460 arg_03,
107461 arg_04);
107462 d_type = t_INDEX;
107463}
107464#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
107465
107466#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
107467template <class t_HEAD, class t_TAIL_01,
107468 class t_TAIL_02,
107469 class t_TAIL_03,
107470 class t_TAIL_04,
107471 class t_TAIL_05,
107472 class t_TAIL_06,
107473 class t_TAIL_07,
107474 class t_TAIL_08,
107475 class t_TAIL_09,
107476 class t_TAIL_10,
107477 class t_TAIL_11,
107478 class t_TAIL_12,
107479 class t_TAIL_13,
107480 class t_TAIL_14,
107481 class t_TAIL_15,
107482 class t_TAIL_16>
107483template <size_t t_INDEX,
107484 class t_ARG_01,
107485 class t_ARG_02,
107486 class t_ARG_03,
107487 class t_ARG_04>
107488void Variant_Base<t_HEAD, t_TAIL_01,
107489 t_TAIL_02,
107490 t_TAIL_03,
107491 t_TAIL_04,
107492 t_TAIL_05,
107493 t_TAIL_06,
107494 t_TAIL_07,
107495 t_TAIL_08,
107496 t_TAIL_09,
107497 t_TAIL_10,
107498 t_TAIL_11,
107499 t_TAIL_12,
107500 t_TAIL_13,
107501 t_TAIL_14,
107502 t_TAIL_15,
107503 t_TAIL_16,
107504 BSLS_COMPILERFEATURES_FILLT( 2)
107505 >::baseEmplace(const t_ARG_01& arg_01,
107506 const t_ARG_02& arg_02,
107507 const t_ARG_03& arg_03,
107508 const t_ARG_04& arg_04)
107509{
107510 typedef typename bsl::remove_cv<
107512 Alt_Type;
107513
107514 reset();
107515
107516 BloombergLP::bslma::ConstructionUtil::construct(
107517 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107518 AllocBase::mechanism(),
107519 arg_01,
107520 arg_02,
107521 arg_03,
107522 arg_04);
107523 d_type = t_INDEX;
107524}
107525#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
107526
107527#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
107528template <class t_HEAD, class t_TAIL_01,
107529 class t_TAIL_02,
107530 class t_TAIL_03,
107531 class t_TAIL_04,
107532 class t_TAIL_05,
107533 class t_TAIL_06,
107534 class t_TAIL_07,
107535 class t_TAIL_08,
107536 class t_TAIL_09,
107537 class t_TAIL_10,
107538 class t_TAIL_11,
107539 class t_TAIL_12,
107540 class t_TAIL_13,
107541 class t_TAIL_14,
107542 class t_TAIL_15,
107543 class t_TAIL_16,
107544 class t_TAIL_17>
107545template <size_t t_INDEX,
107546 class t_ARG_01,
107547 class t_ARG_02,
107548 class t_ARG_03,
107549 class t_ARG_04>
107550void Variant_Base<t_HEAD, t_TAIL_01,
107551 t_TAIL_02,
107552 t_TAIL_03,
107553 t_TAIL_04,
107554 t_TAIL_05,
107555 t_TAIL_06,
107556 t_TAIL_07,
107557 t_TAIL_08,
107558 t_TAIL_09,
107559 t_TAIL_10,
107560 t_TAIL_11,
107561 t_TAIL_12,
107562 t_TAIL_13,
107563 t_TAIL_14,
107564 t_TAIL_15,
107565 t_TAIL_16,
107566 t_TAIL_17,
107567 BSLS_COMPILERFEATURES_FILLT( 1)
107568 >::baseEmplace(const t_ARG_01& arg_01,
107569 const t_ARG_02& arg_02,
107570 const t_ARG_03& arg_03,
107571 const t_ARG_04& arg_04)
107572{
107573 typedef typename bsl::remove_cv<
107575 Alt_Type;
107576
107577 reset();
107578
107579 BloombergLP::bslma::ConstructionUtil::construct(
107580 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107581 AllocBase::mechanism(),
107582 arg_01,
107583 arg_02,
107584 arg_03,
107585 arg_04);
107586 d_type = t_INDEX;
107587}
107588#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
107589
107590#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
107591template <class t_HEAD, class t_TAIL_01,
107592 class t_TAIL_02,
107593 class t_TAIL_03,
107594 class t_TAIL_04,
107595 class t_TAIL_05,
107596 class t_TAIL_06,
107597 class t_TAIL_07,
107598 class t_TAIL_08,
107599 class t_TAIL_09,
107600 class t_TAIL_10,
107601 class t_TAIL_11,
107602 class t_TAIL_12,
107603 class t_TAIL_13,
107604 class t_TAIL_14,
107605 class t_TAIL_15,
107606 class t_TAIL_16,
107607 class t_TAIL_17,
107608 class t_TAIL_18>
107609template <size_t t_INDEX,
107610 class t_ARG_01,
107611 class t_ARG_02,
107612 class t_ARG_03,
107613 class t_ARG_04>
107614void Variant_Base<t_HEAD, t_TAIL_01,
107615 t_TAIL_02,
107616 t_TAIL_03,
107617 t_TAIL_04,
107618 t_TAIL_05,
107619 t_TAIL_06,
107620 t_TAIL_07,
107621 t_TAIL_08,
107622 t_TAIL_09,
107623 t_TAIL_10,
107624 t_TAIL_11,
107625 t_TAIL_12,
107626 t_TAIL_13,
107627 t_TAIL_14,
107628 t_TAIL_15,
107629 t_TAIL_16,
107630 t_TAIL_17,
107631 t_TAIL_18,
107632 BSLS_COMPILERFEATURES_FILLT( 0)
107633 >::baseEmplace(const t_ARG_01& arg_01,
107634 const t_ARG_02& arg_02,
107635 const t_ARG_03& arg_03,
107636 const t_ARG_04& arg_04)
107637{
107638 typedef typename bsl::remove_cv<
107640 Alt_Type;
107641
107642 reset();
107643
107644 BloombergLP::bslma::ConstructionUtil::construct(
107645 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107646 AllocBase::mechanism(),
107647 arg_01,
107648 arg_02,
107649 arg_03,
107650 arg_04);
107651 d_type = t_INDEX;
107652}
107653#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
107654
107655
107656#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
107657template <class t_HEAD>
107658template <size_t t_INDEX,
107659 class t_ARG_01,
107660 class t_ARG_02,
107661 class t_ARG_03,
107662 class t_ARG_04,
107663 class t_ARG_05>
107664void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
107665 >::baseEmplace(const t_ARG_01& arg_01,
107666 const t_ARG_02& arg_02,
107667 const t_ARG_03& arg_03,
107668 const t_ARG_04& arg_04,
107669 const t_ARG_05& arg_05)
107670{
107671 typedef typename bsl::remove_cv<
107673 Alt_Type;
107674
107675 reset();
107676
107677 BloombergLP::bslma::ConstructionUtil::construct(
107678 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107679 AllocBase::mechanism(),
107680 arg_01,
107681 arg_02,
107682 arg_03,
107683 arg_04,
107684 arg_05);
107685 d_type = t_INDEX;
107686}
107687#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
107688
107689#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
107690template <class t_HEAD, class t_TAIL_01>
107691template <size_t t_INDEX,
107692 class t_ARG_01,
107693 class t_ARG_02,
107694 class t_ARG_03,
107695 class t_ARG_04,
107696 class t_ARG_05>
107697void Variant_Base<t_HEAD, t_TAIL_01,
107698 BSLS_COMPILERFEATURES_FILLT(17)
107699 >::baseEmplace(const t_ARG_01& arg_01,
107700 const t_ARG_02& arg_02,
107701 const t_ARG_03& arg_03,
107702 const t_ARG_04& arg_04,
107703 const t_ARG_05& arg_05)
107704{
107705 typedef typename bsl::remove_cv<
107707 Alt_Type;
107708
107709 reset();
107710
107711 BloombergLP::bslma::ConstructionUtil::construct(
107712 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107713 AllocBase::mechanism(),
107714 arg_01,
107715 arg_02,
107716 arg_03,
107717 arg_04,
107718 arg_05);
107719 d_type = t_INDEX;
107720}
107721#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
107722
107723#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
107724template <class t_HEAD, class t_TAIL_01,
107725 class t_TAIL_02>
107726template <size_t t_INDEX,
107727 class t_ARG_01,
107728 class t_ARG_02,
107729 class t_ARG_03,
107730 class t_ARG_04,
107731 class t_ARG_05>
107732void Variant_Base<t_HEAD, t_TAIL_01,
107733 t_TAIL_02,
107734 BSLS_COMPILERFEATURES_FILLT(16)
107735 >::baseEmplace(const t_ARG_01& arg_01,
107736 const t_ARG_02& arg_02,
107737 const t_ARG_03& arg_03,
107738 const t_ARG_04& arg_04,
107739 const t_ARG_05& arg_05)
107740{
107741 typedef typename bsl::remove_cv<
107743 Alt_Type;
107744
107745 reset();
107746
107747 BloombergLP::bslma::ConstructionUtil::construct(
107748 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107749 AllocBase::mechanism(),
107750 arg_01,
107751 arg_02,
107752 arg_03,
107753 arg_04,
107754 arg_05);
107755 d_type = t_INDEX;
107756}
107757#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
107758
107759#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
107760template <class t_HEAD, class t_TAIL_01,
107761 class t_TAIL_02,
107762 class t_TAIL_03>
107763template <size_t t_INDEX,
107764 class t_ARG_01,
107765 class t_ARG_02,
107766 class t_ARG_03,
107767 class t_ARG_04,
107768 class t_ARG_05>
107769void Variant_Base<t_HEAD, t_TAIL_01,
107770 t_TAIL_02,
107771 t_TAIL_03,
107772 BSLS_COMPILERFEATURES_FILLT(15)
107773 >::baseEmplace(const t_ARG_01& arg_01,
107774 const t_ARG_02& arg_02,
107775 const t_ARG_03& arg_03,
107776 const t_ARG_04& arg_04,
107777 const t_ARG_05& arg_05)
107778{
107779 typedef typename bsl::remove_cv<
107781 Alt_Type;
107782
107783 reset();
107784
107785 BloombergLP::bslma::ConstructionUtil::construct(
107786 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107787 AllocBase::mechanism(),
107788 arg_01,
107789 arg_02,
107790 arg_03,
107791 arg_04,
107792 arg_05);
107793 d_type = t_INDEX;
107794}
107795#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
107796
107797#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
107798template <class t_HEAD, class t_TAIL_01,
107799 class t_TAIL_02,
107800 class t_TAIL_03,
107801 class t_TAIL_04>
107802template <size_t t_INDEX,
107803 class t_ARG_01,
107804 class t_ARG_02,
107805 class t_ARG_03,
107806 class t_ARG_04,
107807 class t_ARG_05>
107808void Variant_Base<t_HEAD, t_TAIL_01,
107809 t_TAIL_02,
107810 t_TAIL_03,
107811 t_TAIL_04,
107812 BSLS_COMPILERFEATURES_FILLT(14)
107813 >::baseEmplace(const t_ARG_01& arg_01,
107814 const t_ARG_02& arg_02,
107815 const t_ARG_03& arg_03,
107816 const t_ARG_04& arg_04,
107817 const t_ARG_05& arg_05)
107818{
107819 typedef typename bsl::remove_cv<
107821 Alt_Type;
107822
107823 reset();
107824
107825 BloombergLP::bslma::ConstructionUtil::construct(
107826 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107827 AllocBase::mechanism(),
107828 arg_01,
107829 arg_02,
107830 arg_03,
107831 arg_04,
107832 arg_05);
107833 d_type = t_INDEX;
107834}
107835#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
107836
107837#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
107838template <class t_HEAD, class t_TAIL_01,
107839 class t_TAIL_02,
107840 class t_TAIL_03,
107841 class t_TAIL_04,
107842 class t_TAIL_05>
107843template <size_t t_INDEX,
107844 class t_ARG_01,
107845 class t_ARG_02,
107846 class t_ARG_03,
107847 class t_ARG_04,
107848 class t_ARG_05>
107849void Variant_Base<t_HEAD, t_TAIL_01,
107850 t_TAIL_02,
107851 t_TAIL_03,
107852 t_TAIL_04,
107853 t_TAIL_05,
107854 BSLS_COMPILERFEATURES_FILLT(13)
107855 >::baseEmplace(const t_ARG_01& arg_01,
107856 const t_ARG_02& arg_02,
107857 const t_ARG_03& arg_03,
107858 const t_ARG_04& arg_04,
107859 const t_ARG_05& arg_05)
107860{
107861 typedef typename bsl::remove_cv<
107863 Alt_Type;
107864
107865 reset();
107866
107867 BloombergLP::bslma::ConstructionUtil::construct(
107868 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107869 AllocBase::mechanism(),
107870 arg_01,
107871 arg_02,
107872 arg_03,
107873 arg_04,
107874 arg_05);
107875 d_type = t_INDEX;
107876}
107877#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
107878
107879#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
107880template <class t_HEAD, class t_TAIL_01,
107881 class t_TAIL_02,
107882 class t_TAIL_03,
107883 class t_TAIL_04,
107884 class t_TAIL_05,
107885 class t_TAIL_06>
107886template <size_t t_INDEX,
107887 class t_ARG_01,
107888 class t_ARG_02,
107889 class t_ARG_03,
107890 class t_ARG_04,
107891 class t_ARG_05>
107892void Variant_Base<t_HEAD, t_TAIL_01,
107893 t_TAIL_02,
107894 t_TAIL_03,
107895 t_TAIL_04,
107896 t_TAIL_05,
107897 t_TAIL_06,
107898 BSLS_COMPILERFEATURES_FILLT(12)
107899 >::baseEmplace(const t_ARG_01& arg_01,
107900 const t_ARG_02& arg_02,
107901 const t_ARG_03& arg_03,
107902 const t_ARG_04& arg_04,
107903 const t_ARG_05& arg_05)
107904{
107905 typedef typename bsl::remove_cv<
107907 Alt_Type;
107908
107909 reset();
107910
107911 BloombergLP::bslma::ConstructionUtil::construct(
107912 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107913 AllocBase::mechanism(),
107914 arg_01,
107915 arg_02,
107916 arg_03,
107917 arg_04,
107918 arg_05);
107919 d_type = t_INDEX;
107920}
107921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
107922
107923#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
107924template <class t_HEAD, class t_TAIL_01,
107925 class t_TAIL_02,
107926 class t_TAIL_03,
107927 class t_TAIL_04,
107928 class t_TAIL_05,
107929 class t_TAIL_06,
107930 class t_TAIL_07>
107931template <size_t t_INDEX,
107932 class t_ARG_01,
107933 class t_ARG_02,
107934 class t_ARG_03,
107935 class t_ARG_04,
107936 class t_ARG_05>
107937void Variant_Base<t_HEAD, t_TAIL_01,
107938 t_TAIL_02,
107939 t_TAIL_03,
107940 t_TAIL_04,
107941 t_TAIL_05,
107942 t_TAIL_06,
107943 t_TAIL_07,
107944 BSLS_COMPILERFEATURES_FILLT(11)
107945 >::baseEmplace(const t_ARG_01& arg_01,
107946 const t_ARG_02& arg_02,
107947 const t_ARG_03& arg_03,
107948 const t_ARG_04& arg_04,
107949 const t_ARG_05& arg_05)
107950{
107951 typedef typename bsl::remove_cv<
107953 Alt_Type;
107954
107955 reset();
107956
107957 BloombergLP::bslma::ConstructionUtil::construct(
107958 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
107959 AllocBase::mechanism(),
107960 arg_01,
107961 arg_02,
107962 arg_03,
107963 arg_04,
107964 arg_05);
107965 d_type = t_INDEX;
107966}
107967#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
107968
107969#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
107970template <class t_HEAD, class t_TAIL_01,
107971 class t_TAIL_02,
107972 class t_TAIL_03,
107973 class t_TAIL_04,
107974 class t_TAIL_05,
107975 class t_TAIL_06,
107976 class t_TAIL_07,
107977 class t_TAIL_08>
107978template <size_t t_INDEX,
107979 class t_ARG_01,
107980 class t_ARG_02,
107981 class t_ARG_03,
107982 class t_ARG_04,
107983 class t_ARG_05>
107984void Variant_Base<t_HEAD, t_TAIL_01,
107985 t_TAIL_02,
107986 t_TAIL_03,
107987 t_TAIL_04,
107988 t_TAIL_05,
107989 t_TAIL_06,
107990 t_TAIL_07,
107991 t_TAIL_08,
107992 BSLS_COMPILERFEATURES_FILLT(10)
107993 >::baseEmplace(const t_ARG_01& arg_01,
107994 const t_ARG_02& arg_02,
107995 const t_ARG_03& arg_03,
107996 const t_ARG_04& arg_04,
107997 const t_ARG_05& arg_05)
107998{
107999 typedef typename bsl::remove_cv<
108001 Alt_Type;
108002
108003 reset();
108004
108005 BloombergLP::bslma::ConstructionUtil::construct(
108006 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108007 AllocBase::mechanism(),
108008 arg_01,
108009 arg_02,
108010 arg_03,
108011 arg_04,
108012 arg_05);
108013 d_type = t_INDEX;
108014}
108015#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
108016
108017#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
108018template <class t_HEAD, class t_TAIL_01,
108019 class t_TAIL_02,
108020 class t_TAIL_03,
108021 class t_TAIL_04,
108022 class t_TAIL_05,
108023 class t_TAIL_06,
108024 class t_TAIL_07,
108025 class t_TAIL_08,
108026 class t_TAIL_09>
108027template <size_t t_INDEX,
108028 class t_ARG_01,
108029 class t_ARG_02,
108030 class t_ARG_03,
108031 class t_ARG_04,
108032 class t_ARG_05>
108033void Variant_Base<t_HEAD, t_TAIL_01,
108034 t_TAIL_02,
108035 t_TAIL_03,
108036 t_TAIL_04,
108037 t_TAIL_05,
108038 t_TAIL_06,
108039 t_TAIL_07,
108040 t_TAIL_08,
108041 t_TAIL_09,
108042 BSLS_COMPILERFEATURES_FILLT( 9)
108043 >::baseEmplace(const t_ARG_01& arg_01,
108044 const t_ARG_02& arg_02,
108045 const t_ARG_03& arg_03,
108046 const t_ARG_04& arg_04,
108047 const t_ARG_05& arg_05)
108048{
108049 typedef typename bsl::remove_cv<
108051 Alt_Type;
108052
108053 reset();
108054
108055 BloombergLP::bslma::ConstructionUtil::construct(
108056 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108057 AllocBase::mechanism(),
108058 arg_01,
108059 arg_02,
108060 arg_03,
108061 arg_04,
108062 arg_05);
108063 d_type = t_INDEX;
108064}
108065#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
108066
108067#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
108068template <class t_HEAD, class t_TAIL_01,
108069 class t_TAIL_02,
108070 class t_TAIL_03,
108071 class t_TAIL_04,
108072 class t_TAIL_05,
108073 class t_TAIL_06,
108074 class t_TAIL_07,
108075 class t_TAIL_08,
108076 class t_TAIL_09,
108077 class t_TAIL_10>
108078template <size_t t_INDEX,
108079 class t_ARG_01,
108080 class t_ARG_02,
108081 class t_ARG_03,
108082 class t_ARG_04,
108083 class t_ARG_05>
108084void Variant_Base<t_HEAD, t_TAIL_01,
108085 t_TAIL_02,
108086 t_TAIL_03,
108087 t_TAIL_04,
108088 t_TAIL_05,
108089 t_TAIL_06,
108090 t_TAIL_07,
108091 t_TAIL_08,
108092 t_TAIL_09,
108093 t_TAIL_10,
108094 BSLS_COMPILERFEATURES_FILLT( 8)
108095 >::baseEmplace(const t_ARG_01& arg_01,
108096 const t_ARG_02& arg_02,
108097 const t_ARG_03& arg_03,
108098 const t_ARG_04& arg_04,
108099 const t_ARG_05& arg_05)
108100{
108101 typedef typename bsl::remove_cv<
108103 Alt_Type;
108104
108105 reset();
108106
108107 BloombergLP::bslma::ConstructionUtil::construct(
108108 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108109 AllocBase::mechanism(),
108110 arg_01,
108111 arg_02,
108112 arg_03,
108113 arg_04,
108114 arg_05);
108115 d_type = t_INDEX;
108116}
108117#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
108118
108119#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
108120template <class t_HEAD, class t_TAIL_01,
108121 class t_TAIL_02,
108122 class t_TAIL_03,
108123 class t_TAIL_04,
108124 class t_TAIL_05,
108125 class t_TAIL_06,
108126 class t_TAIL_07,
108127 class t_TAIL_08,
108128 class t_TAIL_09,
108129 class t_TAIL_10,
108130 class t_TAIL_11>
108131template <size_t t_INDEX,
108132 class t_ARG_01,
108133 class t_ARG_02,
108134 class t_ARG_03,
108135 class t_ARG_04,
108136 class t_ARG_05>
108137void Variant_Base<t_HEAD, t_TAIL_01,
108138 t_TAIL_02,
108139 t_TAIL_03,
108140 t_TAIL_04,
108141 t_TAIL_05,
108142 t_TAIL_06,
108143 t_TAIL_07,
108144 t_TAIL_08,
108145 t_TAIL_09,
108146 t_TAIL_10,
108147 t_TAIL_11,
108148 BSLS_COMPILERFEATURES_FILLT( 7)
108149 >::baseEmplace(const t_ARG_01& arg_01,
108150 const t_ARG_02& arg_02,
108151 const t_ARG_03& arg_03,
108152 const t_ARG_04& arg_04,
108153 const t_ARG_05& arg_05)
108154{
108155 typedef typename bsl::remove_cv<
108157 Alt_Type;
108158
108159 reset();
108160
108161 BloombergLP::bslma::ConstructionUtil::construct(
108162 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108163 AllocBase::mechanism(),
108164 arg_01,
108165 arg_02,
108166 arg_03,
108167 arg_04,
108168 arg_05);
108169 d_type = t_INDEX;
108170}
108171#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
108172
108173#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
108174template <class t_HEAD, class t_TAIL_01,
108175 class t_TAIL_02,
108176 class t_TAIL_03,
108177 class t_TAIL_04,
108178 class t_TAIL_05,
108179 class t_TAIL_06,
108180 class t_TAIL_07,
108181 class t_TAIL_08,
108182 class t_TAIL_09,
108183 class t_TAIL_10,
108184 class t_TAIL_11,
108185 class t_TAIL_12>
108186template <size_t t_INDEX,
108187 class t_ARG_01,
108188 class t_ARG_02,
108189 class t_ARG_03,
108190 class t_ARG_04,
108191 class t_ARG_05>
108192void Variant_Base<t_HEAD, t_TAIL_01,
108193 t_TAIL_02,
108194 t_TAIL_03,
108195 t_TAIL_04,
108196 t_TAIL_05,
108197 t_TAIL_06,
108198 t_TAIL_07,
108199 t_TAIL_08,
108200 t_TAIL_09,
108201 t_TAIL_10,
108202 t_TAIL_11,
108203 t_TAIL_12,
108204 BSLS_COMPILERFEATURES_FILLT( 6)
108205 >::baseEmplace(const t_ARG_01& arg_01,
108206 const t_ARG_02& arg_02,
108207 const t_ARG_03& arg_03,
108208 const t_ARG_04& arg_04,
108209 const t_ARG_05& arg_05)
108210{
108211 typedef typename bsl::remove_cv<
108213 Alt_Type;
108214
108215 reset();
108216
108217 BloombergLP::bslma::ConstructionUtil::construct(
108218 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108219 AllocBase::mechanism(),
108220 arg_01,
108221 arg_02,
108222 arg_03,
108223 arg_04,
108224 arg_05);
108225 d_type = t_INDEX;
108226}
108227#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
108228
108229#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
108230template <class t_HEAD, class t_TAIL_01,
108231 class t_TAIL_02,
108232 class t_TAIL_03,
108233 class t_TAIL_04,
108234 class t_TAIL_05,
108235 class t_TAIL_06,
108236 class t_TAIL_07,
108237 class t_TAIL_08,
108238 class t_TAIL_09,
108239 class t_TAIL_10,
108240 class t_TAIL_11,
108241 class t_TAIL_12,
108242 class t_TAIL_13>
108243template <size_t t_INDEX,
108244 class t_ARG_01,
108245 class t_ARG_02,
108246 class t_ARG_03,
108247 class t_ARG_04,
108248 class t_ARG_05>
108249void Variant_Base<t_HEAD, t_TAIL_01,
108250 t_TAIL_02,
108251 t_TAIL_03,
108252 t_TAIL_04,
108253 t_TAIL_05,
108254 t_TAIL_06,
108255 t_TAIL_07,
108256 t_TAIL_08,
108257 t_TAIL_09,
108258 t_TAIL_10,
108259 t_TAIL_11,
108260 t_TAIL_12,
108261 t_TAIL_13,
108262 BSLS_COMPILERFEATURES_FILLT( 5)
108263 >::baseEmplace(const t_ARG_01& arg_01,
108264 const t_ARG_02& arg_02,
108265 const t_ARG_03& arg_03,
108266 const t_ARG_04& arg_04,
108267 const t_ARG_05& arg_05)
108268{
108269 typedef typename bsl::remove_cv<
108271 Alt_Type;
108272
108273 reset();
108274
108275 BloombergLP::bslma::ConstructionUtil::construct(
108276 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108277 AllocBase::mechanism(),
108278 arg_01,
108279 arg_02,
108280 arg_03,
108281 arg_04,
108282 arg_05);
108283 d_type = t_INDEX;
108284}
108285#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
108286
108287#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
108288template <class t_HEAD, class t_TAIL_01,
108289 class t_TAIL_02,
108290 class t_TAIL_03,
108291 class t_TAIL_04,
108292 class t_TAIL_05,
108293 class t_TAIL_06,
108294 class t_TAIL_07,
108295 class t_TAIL_08,
108296 class t_TAIL_09,
108297 class t_TAIL_10,
108298 class t_TAIL_11,
108299 class t_TAIL_12,
108300 class t_TAIL_13,
108301 class t_TAIL_14>
108302template <size_t t_INDEX,
108303 class t_ARG_01,
108304 class t_ARG_02,
108305 class t_ARG_03,
108306 class t_ARG_04,
108307 class t_ARG_05>
108308void Variant_Base<t_HEAD, t_TAIL_01,
108309 t_TAIL_02,
108310 t_TAIL_03,
108311 t_TAIL_04,
108312 t_TAIL_05,
108313 t_TAIL_06,
108314 t_TAIL_07,
108315 t_TAIL_08,
108316 t_TAIL_09,
108317 t_TAIL_10,
108318 t_TAIL_11,
108319 t_TAIL_12,
108320 t_TAIL_13,
108321 t_TAIL_14,
108322 BSLS_COMPILERFEATURES_FILLT( 4)
108323 >::baseEmplace(const t_ARG_01& arg_01,
108324 const t_ARG_02& arg_02,
108325 const t_ARG_03& arg_03,
108326 const t_ARG_04& arg_04,
108327 const t_ARG_05& arg_05)
108328{
108329 typedef typename bsl::remove_cv<
108331 Alt_Type;
108332
108333 reset();
108334
108335 BloombergLP::bslma::ConstructionUtil::construct(
108336 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108337 AllocBase::mechanism(),
108338 arg_01,
108339 arg_02,
108340 arg_03,
108341 arg_04,
108342 arg_05);
108343 d_type = t_INDEX;
108344}
108345#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
108346
108347#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
108348template <class t_HEAD, class t_TAIL_01,
108349 class t_TAIL_02,
108350 class t_TAIL_03,
108351 class t_TAIL_04,
108352 class t_TAIL_05,
108353 class t_TAIL_06,
108354 class t_TAIL_07,
108355 class t_TAIL_08,
108356 class t_TAIL_09,
108357 class t_TAIL_10,
108358 class t_TAIL_11,
108359 class t_TAIL_12,
108360 class t_TAIL_13,
108361 class t_TAIL_14,
108362 class t_TAIL_15>
108363template <size_t t_INDEX,
108364 class t_ARG_01,
108365 class t_ARG_02,
108366 class t_ARG_03,
108367 class t_ARG_04,
108368 class t_ARG_05>
108369void Variant_Base<t_HEAD, t_TAIL_01,
108370 t_TAIL_02,
108371 t_TAIL_03,
108372 t_TAIL_04,
108373 t_TAIL_05,
108374 t_TAIL_06,
108375 t_TAIL_07,
108376 t_TAIL_08,
108377 t_TAIL_09,
108378 t_TAIL_10,
108379 t_TAIL_11,
108380 t_TAIL_12,
108381 t_TAIL_13,
108382 t_TAIL_14,
108383 t_TAIL_15,
108384 BSLS_COMPILERFEATURES_FILLT( 3)
108385 >::baseEmplace(const t_ARG_01& arg_01,
108386 const t_ARG_02& arg_02,
108387 const t_ARG_03& arg_03,
108388 const t_ARG_04& arg_04,
108389 const t_ARG_05& arg_05)
108390{
108391 typedef typename bsl::remove_cv<
108393 Alt_Type;
108394
108395 reset();
108396
108397 BloombergLP::bslma::ConstructionUtil::construct(
108398 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108399 AllocBase::mechanism(),
108400 arg_01,
108401 arg_02,
108402 arg_03,
108403 arg_04,
108404 arg_05);
108405 d_type = t_INDEX;
108406}
108407#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
108408
108409#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
108410template <class t_HEAD, class t_TAIL_01,
108411 class t_TAIL_02,
108412 class t_TAIL_03,
108413 class t_TAIL_04,
108414 class t_TAIL_05,
108415 class t_TAIL_06,
108416 class t_TAIL_07,
108417 class t_TAIL_08,
108418 class t_TAIL_09,
108419 class t_TAIL_10,
108420 class t_TAIL_11,
108421 class t_TAIL_12,
108422 class t_TAIL_13,
108423 class t_TAIL_14,
108424 class t_TAIL_15,
108425 class t_TAIL_16>
108426template <size_t t_INDEX,
108427 class t_ARG_01,
108428 class t_ARG_02,
108429 class t_ARG_03,
108430 class t_ARG_04,
108431 class t_ARG_05>
108432void Variant_Base<t_HEAD, t_TAIL_01,
108433 t_TAIL_02,
108434 t_TAIL_03,
108435 t_TAIL_04,
108436 t_TAIL_05,
108437 t_TAIL_06,
108438 t_TAIL_07,
108439 t_TAIL_08,
108440 t_TAIL_09,
108441 t_TAIL_10,
108442 t_TAIL_11,
108443 t_TAIL_12,
108444 t_TAIL_13,
108445 t_TAIL_14,
108446 t_TAIL_15,
108447 t_TAIL_16,
108448 BSLS_COMPILERFEATURES_FILLT( 2)
108449 >::baseEmplace(const t_ARG_01& arg_01,
108450 const t_ARG_02& arg_02,
108451 const t_ARG_03& arg_03,
108452 const t_ARG_04& arg_04,
108453 const t_ARG_05& arg_05)
108454{
108455 typedef typename bsl::remove_cv<
108457 Alt_Type;
108458
108459 reset();
108460
108461 BloombergLP::bslma::ConstructionUtil::construct(
108462 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108463 AllocBase::mechanism(),
108464 arg_01,
108465 arg_02,
108466 arg_03,
108467 arg_04,
108468 arg_05);
108469 d_type = t_INDEX;
108470}
108471#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
108472
108473#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
108474template <class t_HEAD, class t_TAIL_01,
108475 class t_TAIL_02,
108476 class t_TAIL_03,
108477 class t_TAIL_04,
108478 class t_TAIL_05,
108479 class t_TAIL_06,
108480 class t_TAIL_07,
108481 class t_TAIL_08,
108482 class t_TAIL_09,
108483 class t_TAIL_10,
108484 class t_TAIL_11,
108485 class t_TAIL_12,
108486 class t_TAIL_13,
108487 class t_TAIL_14,
108488 class t_TAIL_15,
108489 class t_TAIL_16,
108490 class t_TAIL_17>
108491template <size_t t_INDEX,
108492 class t_ARG_01,
108493 class t_ARG_02,
108494 class t_ARG_03,
108495 class t_ARG_04,
108496 class t_ARG_05>
108497void Variant_Base<t_HEAD, t_TAIL_01,
108498 t_TAIL_02,
108499 t_TAIL_03,
108500 t_TAIL_04,
108501 t_TAIL_05,
108502 t_TAIL_06,
108503 t_TAIL_07,
108504 t_TAIL_08,
108505 t_TAIL_09,
108506 t_TAIL_10,
108507 t_TAIL_11,
108508 t_TAIL_12,
108509 t_TAIL_13,
108510 t_TAIL_14,
108511 t_TAIL_15,
108512 t_TAIL_16,
108513 t_TAIL_17,
108514 BSLS_COMPILERFEATURES_FILLT( 1)
108515 >::baseEmplace(const t_ARG_01& arg_01,
108516 const t_ARG_02& arg_02,
108517 const t_ARG_03& arg_03,
108518 const t_ARG_04& arg_04,
108519 const t_ARG_05& arg_05)
108520{
108521 typedef typename bsl::remove_cv<
108523 Alt_Type;
108524
108525 reset();
108526
108527 BloombergLP::bslma::ConstructionUtil::construct(
108528 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108529 AllocBase::mechanism(),
108530 arg_01,
108531 arg_02,
108532 arg_03,
108533 arg_04,
108534 arg_05);
108535 d_type = t_INDEX;
108536}
108537#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
108538
108539#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
108540template <class t_HEAD, class t_TAIL_01,
108541 class t_TAIL_02,
108542 class t_TAIL_03,
108543 class t_TAIL_04,
108544 class t_TAIL_05,
108545 class t_TAIL_06,
108546 class t_TAIL_07,
108547 class t_TAIL_08,
108548 class t_TAIL_09,
108549 class t_TAIL_10,
108550 class t_TAIL_11,
108551 class t_TAIL_12,
108552 class t_TAIL_13,
108553 class t_TAIL_14,
108554 class t_TAIL_15,
108555 class t_TAIL_16,
108556 class t_TAIL_17,
108557 class t_TAIL_18>
108558template <size_t t_INDEX,
108559 class t_ARG_01,
108560 class t_ARG_02,
108561 class t_ARG_03,
108562 class t_ARG_04,
108563 class t_ARG_05>
108564void Variant_Base<t_HEAD, t_TAIL_01,
108565 t_TAIL_02,
108566 t_TAIL_03,
108567 t_TAIL_04,
108568 t_TAIL_05,
108569 t_TAIL_06,
108570 t_TAIL_07,
108571 t_TAIL_08,
108572 t_TAIL_09,
108573 t_TAIL_10,
108574 t_TAIL_11,
108575 t_TAIL_12,
108576 t_TAIL_13,
108577 t_TAIL_14,
108578 t_TAIL_15,
108579 t_TAIL_16,
108580 t_TAIL_17,
108581 t_TAIL_18,
108582 BSLS_COMPILERFEATURES_FILLT( 0)
108583 >::baseEmplace(const t_ARG_01& arg_01,
108584 const t_ARG_02& arg_02,
108585 const t_ARG_03& arg_03,
108586 const t_ARG_04& arg_04,
108587 const t_ARG_05& arg_05)
108588{
108589 typedef typename bsl::remove_cv<
108591 Alt_Type;
108592
108593 reset();
108594
108595 BloombergLP::bslma::ConstructionUtil::construct(
108596 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108597 AllocBase::mechanism(),
108598 arg_01,
108599 arg_02,
108600 arg_03,
108601 arg_04,
108602 arg_05);
108603 d_type = t_INDEX;
108604}
108605#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
108606
108607
108608#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
108609template <class t_HEAD>
108610template <size_t t_INDEX,
108611 class t_ARG_01,
108612 class t_ARG_02,
108613 class t_ARG_03,
108614 class t_ARG_04,
108615 class t_ARG_05,
108616 class t_ARG_06>
108617void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
108618 >::baseEmplace(const t_ARG_01& arg_01,
108619 const t_ARG_02& arg_02,
108620 const t_ARG_03& arg_03,
108621 const t_ARG_04& arg_04,
108622 const t_ARG_05& arg_05,
108623 const t_ARG_06& arg_06)
108624{
108625 typedef typename bsl::remove_cv<
108627 Alt_Type;
108628
108629 reset();
108630
108631 BloombergLP::bslma::ConstructionUtil::construct(
108632 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108633 AllocBase::mechanism(),
108634 arg_01,
108635 arg_02,
108636 arg_03,
108637 arg_04,
108638 arg_05,
108639 arg_06);
108640 d_type = t_INDEX;
108641}
108642#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
108643
108644#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
108645template <class t_HEAD, class t_TAIL_01>
108646template <size_t t_INDEX,
108647 class t_ARG_01,
108648 class t_ARG_02,
108649 class t_ARG_03,
108650 class t_ARG_04,
108651 class t_ARG_05,
108652 class t_ARG_06>
108653void Variant_Base<t_HEAD, t_TAIL_01,
108654 BSLS_COMPILERFEATURES_FILLT(17)
108655 >::baseEmplace(const t_ARG_01& arg_01,
108656 const t_ARG_02& arg_02,
108657 const t_ARG_03& arg_03,
108658 const t_ARG_04& arg_04,
108659 const t_ARG_05& arg_05,
108660 const t_ARG_06& arg_06)
108661{
108662 typedef typename bsl::remove_cv<
108664 Alt_Type;
108665
108666 reset();
108667
108668 BloombergLP::bslma::ConstructionUtil::construct(
108669 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108670 AllocBase::mechanism(),
108671 arg_01,
108672 arg_02,
108673 arg_03,
108674 arg_04,
108675 arg_05,
108676 arg_06);
108677 d_type = t_INDEX;
108678}
108679#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
108680
108681#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
108682template <class t_HEAD, class t_TAIL_01,
108683 class t_TAIL_02>
108684template <size_t t_INDEX,
108685 class t_ARG_01,
108686 class t_ARG_02,
108687 class t_ARG_03,
108688 class t_ARG_04,
108689 class t_ARG_05,
108690 class t_ARG_06>
108691void Variant_Base<t_HEAD, t_TAIL_01,
108692 t_TAIL_02,
108693 BSLS_COMPILERFEATURES_FILLT(16)
108694 >::baseEmplace(const t_ARG_01& arg_01,
108695 const t_ARG_02& arg_02,
108696 const t_ARG_03& arg_03,
108697 const t_ARG_04& arg_04,
108698 const t_ARG_05& arg_05,
108699 const t_ARG_06& arg_06)
108700{
108701 typedef typename bsl::remove_cv<
108703 Alt_Type;
108704
108705 reset();
108706
108707 BloombergLP::bslma::ConstructionUtil::construct(
108708 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108709 AllocBase::mechanism(),
108710 arg_01,
108711 arg_02,
108712 arg_03,
108713 arg_04,
108714 arg_05,
108715 arg_06);
108716 d_type = t_INDEX;
108717}
108718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
108719
108720#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
108721template <class t_HEAD, class t_TAIL_01,
108722 class t_TAIL_02,
108723 class t_TAIL_03>
108724template <size_t t_INDEX,
108725 class t_ARG_01,
108726 class t_ARG_02,
108727 class t_ARG_03,
108728 class t_ARG_04,
108729 class t_ARG_05,
108730 class t_ARG_06>
108731void Variant_Base<t_HEAD, t_TAIL_01,
108732 t_TAIL_02,
108733 t_TAIL_03,
108734 BSLS_COMPILERFEATURES_FILLT(15)
108735 >::baseEmplace(const t_ARG_01& arg_01,
108736 const t_ARG_02& arg_02,
108737 const t_ARG_03& arg_03,
108738 const t_ARG_04& arg_04,
108739 const t_ARG_05& arg_05,
108740 const t_ARG_06& arg_06)
108741{
108742 typedef typename bsl::remove_cv<
108744 Alt_Type;
108745
108746 reset();
108747
108748 BloombergLP::bslma::ConstructionUtil::construct(
108749 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108750 AllocBase::mechanism(),
108751 arg_01,
108752 arg_02,
108753 arg_03,
108754 arg_04,
108755 arg_05,
108756 arg_06);
108757 d_type = t_INDEX;
108758}
108759#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
108760
108761#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
108762template <class t_HEAD, class t_TAIL_01,
108763 class t_TAIL_02,
108764 class t_TAIL_03,
108765 class t_TAIL_04>
108766template <size_t t_INDEX,
108767 class t_ARG_01,
108768 class t_ARG_02,
108769 class t_ARG_03,
108770 class t_ARG_04,
108771 class t_ARG_05,
108772 class t_ARG_06>
108773void Variant_Base<t_HEAD, t_TAIL_01,
108774 t_TAIL_02,
108775 t_TAIL_03,
108776 t_TAIL_04,
108777 BSLS_COMPILERFEATURES_FILLT(14)
108778 >::baseEmplace(const t_ARG_01& arg_01,
108779 const t_ARG_02& arg_02,
108780 const t_ARG_03& arg_03,
108781 const t_ARG_04& arg_04,
108782 const t_ARG_05& arg_05,
108783 const t_ARG_06& arg_06)
108784{
108785 typedef typename bsl::remove_cv<
108787 Alt_Type;
108788
108789 reset();
108790
108791 BloombergLP::bslma::ConstructionUtil::construct(
108792 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108793 AllocBase::mechanism(),
108794 arg_01,
108795 arg_02,
108796 arg_03,
108797 arg_04,
108798 arg_05,
108799 arg_06);
108800 d_type = t_INDEX;
108801}
108802#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
108803
108804#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
108805template <class t_HEAD, class t_TAIL_01,
108806 class t_TAIL_02,
108807 class t_TAIL_03,
108808 class t_TAIL_04,
108809 class t_TAIL_05>
108810template <size_t t_INDEX,
108811 class t_ARG_01,
108812 class t_ARG_02,
108813 class t_ARG_03,
108814 class t_ARG_04,
108815 class t_ARG_05,
108816 class t_ARG_06>
108817void Variant_Base<t_HEAD, t_TAIL_01,
108818 t_TAIL_02,
108819 t_TAIL_03,
108820 t_TAIL_04,
108821 t_TAIL_05,
108822 BSLS_COMPILERFEATURES_FILLT(13)
108823 >::baseEmplace(const t_ARG_01& arg_01,
108824 const t_ARG_02& arg_02,
108825 const t_ARG_03& arg_03,
108826 const t_ARG_04& arg_04,
108827 const t_ARG_05& arg_05,
108828 const t_ARG_06& arg_06)
108829{
108830 typedef typename bsl::remove_cv<
108832 Alt_Type;
108833
108834 reset();
108835
108836 BloombergLP::bslma::ConstructionUtil::construct(
108837 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108838 AllocBase::mechanism(),
108839 arg_01,
108840 arg_02,
108841 arg_03,
108842 arg_04,
108843 arg_05,
108844 arg_06);
108845 d_type = t_INDEX;
108846}
108847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
108848
108849#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
108850template <class t_HEAD, class t_TAIL_01,
108851 class t_TAIL_02,
108852 class t_TAIL_03,
108853 class t_TAIL_04,
108854 class t_TAIL_05,
108855 class t_TAIL_06>
108856template <size_t t_INDEX,
108857 class t_ARG_01,
108858 class t_ARG_02,
108859 class t_ARG_03,
108860 class t_ARG_04,
108861 class t_ARG_05,
108862 class t_ARG_06>
108863void Variant_Base<t_HEAD, t_TAIL_01,
108864 t_TAIL_02,
108865 t_TAIL_03,
108866 t_TAIL_04,
108867 t_TAIL_05,
108868 t_TAIL_06,
108869 BSLS_COMPILERFEATURES_FILLT(12)
108870 >::baseEmplace(const t_ARG_01& arg_01,
108871 const t_ARG_02& arg_02,
108872 const t_ARG_03& arg_03,
108873 const t_ARG_04& arg_04,
108874 const t_ARG_05& arg_05,
108875 const t_ARG_06& arg_06)
108876{
108877 typedef typename bsl::remove_cv<
108879 Alt_Type;
108880
108881 reset();
108882
108883 BloombergLP::bslma::ConstructionUtil::construct(
108884 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108885 AllocBase::mechanism(),
108886 arg_01,
108887 arg_02,
108888 arg_03,
108889 arg_04,
108890 arg_05,
108891 arg_06);
108892 d_type = t_INDEX;
108893}
108894#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
108895
108896#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
108897template <class t_HEAD, class t_TAIL_01,
108898 class t_TAIL_02,
108899 class t_TAIL_03,
108900 class t_TAIL_04,
108901 class t_TAIL_05,
108902 class t_TAIL_06,
108903 class t_TAIL_07>
108904template <size_t t_INDEX,
108905 class t_ARG_01,
108906 class t_ARG_02,
108907 class t_ARG_03,
108908 class t_ARG_04,
108909 class t_ARG_05,
108910 class t_ARG_06>
108911void Variant_Base<t_HEAD, t_TAIL_01,
108912 t_TAIL_02,
108913 t_TAIL_03,
108914 t_TAIL_04,
108915 t_TAIL_05,
108916 t_TAIL_06,
108917 t_TAIL_07,
108918 BSLS_COMPILERFEATURES_FILLT(11)
108919 >::baseEmplace(const t_ARG_01& arg_01,
108920 const t_ARG_02& arg_02,
108921 const t_ARG_03& arg_03,
108922 const t_ARG_04& arg_04,
108923 const t_ARG_05& arg_05,
108924 const t_ARG_06& arg_06)
108925{
108926 typedef typename bsl::remove_cv<
108928 Alt_Type;
108929
108930 reset();
108931
108932 BloombergLP::bslma::ConstructionUtil::construct(
108933 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108934 AllocBase::mechanism(),
108935 arg_01,
108936 arg_02,
108937 arg_03,
108938 arg_04,
108939 arg_05,
108940 arg_06);
108941 d_type = t_INDEX;
108942}
108943#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
108944
108945#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
108946template <class t_HEAD, class t_TAIL_01,
108947 class t_TAIL_02,
108948 class t_TAIL_03,
108949 class t_TAIL_04,
108950 class t_TAIL_05,
108951 class t_TAIL_06,
108952 class t_TAIL_07,
108953 class t_TAIL_08>
108954template <size_t t_INDEX,
108955 class t_ARG_01,
108956 class t_ARG_02,
108957 class t_ARG_03,
108958 class t_ARG_04,
108959 class t_ARG_05,
108960 class t_ARG_06>
108961void Variant_Base<t_HEAD, t_TAIL_01,
108962 t_TAIL_02,
108963 t_TAIL_03,
108964 t_TAIL_04,
108965 t_TAIL_05,
108966 t_TAIL_06,
108967 t_TAIL_07,
108968 t_TAIL_08,
108969 BSLS_COMPILERFEATURES_FILLT(10)
108970 >::baseEmplace(const t_ARG_01& arg_01,
108971 const t_ARG_02& arg_02,
108972 const t_ARG_03& arg_03,
108973 const t_ARG_04& arg_04,
108974 const t_ARG_05& arg_05,
108975 const t_ARG_06& arg_06)
108976{
108977 typedef typename bsl::remove_cv<
108979 Alt_Type;
108980
108981 reset();
108982
108983 BloombergLP::bslma::ConstructionUtil::construct(
108984 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
108985 AllocBase::mechanism(),
108986 arg_01,
108987 arg_02,
108988 arg_03,
108989 arg_04,
108990 arg_05,
108991 arg_06);
108992 d_type = t_INDEX;
108993}
108994#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
108995
108996#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
108997template <class t_HEAD, class t_TAIL_01,
108998 class t_TAIL_02,
108999 class t_TAIL_03,
109000 class t_TAIL_04,
109001 class t_TAIL_05,
109002 class t_TAIL_06,
109003 class t_TAIL_07,
109004 class t_TAIL_08,
109005 class t_TAIL_09>
109006template <size_t t_INDEX,
109007 class t_ARG_01,
109008 class t_ARG_02,
109009 class t_ARG_03,
109010 class t_ARG_04,
109011 class t_ARG_05,
109012 class t_ARG_06>
109013void Variant_Base<t_HEAD, t_TAIL_01,
109014 t_TAIL_02,
109015 t_TAIL_03,
109016 t_TAIL_04,
109017 t_TAIL_05,
109018 t_TAIL_06,
109019 t_TAIL_07,
109020 t_TAIL_08,
109021 t_TAIL_09,
109022 BSLS_COMPILERFEATURES_FILLT( 9)
109023 >::baseEmplace(const t_ARG_01& arg_01,
109024 const t_ARG_02& arg_02,
109025 const t_ARG_03& arg_03,
109026 const t_ARG_04& arg_04,
109027 const t_ARG_05& arg_05,
109028 const t_ARG_06& arg_06)
109029{
109030 typedef typename bsl::remove_cv<
109032 Alt_Type;
109033
109034 reset();
109035
109036 BloombergLP::bslma::ConstructionUtil::construct(
109037 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109038 AllocBase::mechanism(),
109039 arg_01,
109040 arg_02,
109041 arg_03,
109042 arg_04,
109043 arg_05,
109044 arg_06);
109045 d_type = t_INDEX;
109046}
109047#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
109048
109049#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
109050template <class t_HEAD, class t_TAIL_01,
109051 class t_TAIL_02,
109052 class t_TAIL_03,
109053 class t_TAIL_04,
109054 class t_TAIL_05,
109055 class t_TAIL_06,
109056 class t_TAIL_07,
109057 class t_TAIL_08,
109058 class t_TAIL_09,
109059 class t_TAIL_10>
109060template <size_t t_INDEX,
109061 class t_ARG_01,
109062 class t_ARG_02,
109063 class t_ARG_03,
109064 class t_ARG_04,
109065 class t_ARG_05,
109066 class t_ARG_06>
109067void Variant_Base<t_HEAD, t_TAIL_01,
109068 t_TAIL_02,
109069 t_TAIL_03,
109070 t_TAIL_04,
109071 t_TAIL_05,
109072 t_TAIL_06,
109073 t_TAIL_07,
109074 t_TAIL_08,
109075 t_TAIL_09,
109076 t_TAIL_10,
109077 BSLS_COMPILERFEATURES_FILLT( 8)
109078 >::baseEmplace(const t_ARG_01& arg_01,
109079 const t_ARG_02& arg_02,
109080 const t_ARG_03& arg_03,
109081 const t_ARG_04& arg_04,
109082 const t_ARG_05& arg_05,
109083 const t_ARG_06& arg_06)
109084{
109085 typedef typename bsl::remove_cv<
109087 Alt_Type;
109088
109089 reset();
109090
109091 BloombergLP::bslma::ConstructionUtil::construct(
109092 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109093 AllocBase::mechanism(),
109094 arg_01,
109095 arg_02,
109096 arg_03,
109097 arg_04,
109098 arg_05,
109099 arg_06);
109100 d_type = t_INDEX;
109101}
109102#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
109103
109104#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
109105template <class t_HEAD, class t_TAIL_01,
109106 class t_TAIL_02,
109107 class t_TAIL_03,
109108 class t_TAIL_04,
109109 class t_TAIL_05,
109110 class t_TAIL_06,
109111 class t_TAIL_07,
109112 class t_TAIL_08,
109113 class t_TAIL_09,
109114 class t_TAIL_10,
109115 class t_TAIL_11>
109116template <size_t t_INDEX,
109117 class t_ARG_01,
109118 class t_ARG_02,
109119 class t_ARG_03,
109120 class t_ARG_04,
109121 class t_ARG_05,
109122 class t_ARG_06>
109123void Variant_Base<t_HEAD, t_TAIL_01,
109124 t_TAIL_02,
109125 t_TAIL_03,
109126 t_TAIL_04,
109127 t_TAIL_05,
109128 t_TAIL_06,
109129 t_TAIL_07,
109130 t_TAIL_08,
109131 t_TAIL_09,
109132 t_TAIL_10,
109133 t_TAIL_11,
109134 BSLS_COMPILERFEATURES_FILLT( 7)
109135 >::baseEmplace(const t_ARG_01& arg_01,
109136 const t_ARG_02& arg_02,
109137 const t_ARG_03& arg_03,
109138 const t_ARG_04& arg_04,
109139 const t_ARG_05& arg_05,
109140 const t_ARG_06& arg_06)
109141{
109142 typedef typename bsl::remove_cv<
109144 Alt_Type;
109145
109146 reset();
109147
109148 BloombergLP::bslma::ConstructionUtil::construct(
109149 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109150 AllocBase::mechanism(),
109151 arg_01,
109152 arg_02,
109153 arg_03,
109154 arg_04,
109155 arg_05,
109156 arg_06);
109157 d_type = t_INDEX;
109158}
109159#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
109160
109161#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
109162template <class t_HEAD, class t_TAIL_01,
109163 class t_TAIL_02,
109164 class t_TAIL_03,
109165 class t_TAIL_04,
109166 class t_TAIL_05,
109167 class t_TAIL_06,
109168 class t_TAIL_07,
109169 class t_TAIL_08,
109170 class t_TAIL_09,
109171 class t_TAIL_10,
109172 class t_TAIL_11,
109173 class t_TAIL_12>
109174template <size_t t_INDEX,
109175 class t_ARG_01,
109176 class t_ARG_02,
109177 class t_ARG_03,
109178 class t_ARG_04,
109179 class t_ARG_05,
109180 class t_ARG_06>
109181void Variant_Base<t_HEAD, t_TAIL_01,
109182 t_TAIL_02,
109183 t_TAIL_03,
109184 t_TAIL_04,
109185 t_TAIL_05,
109186 t_TAIL_06,
109187 t_TAIL_07,
109188 t_TAIL_08,
109189 t_TAIL_09,
109190 t_TAIL_10,
109191 t_TAIL_11,
109192 t_TAIL_12,
109193 BSLS_COMPILERFEATURES_FILLT( 6)
109194 >::baseEmplace(const t_ARG_01& arg_01,
109195 const t_ARG_02& arg_02,
109196 const t_ARG_03& arg_03,
109197 const t_ARG_04& arg_04,
109198 const t_ARG_05& arg_05,
109199 const t_ARG_06& arg_06)
109200{
109201 typedef typename bsl::remove_cv<
109203 Alt_Type;
109204
109205 reset();
109206
109207 BloombergLP::bslma::ConstructionUtil::construct(
109208 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109209 AllocBase::mechanism(),
109210 arg_01,
109211 arg_02,
109212 arg_03,
109213 arg_04,
109214 arg_05,
109215 arg_06);
109216 d_type = t_INDEX;
109217}
109218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
109219
109220#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
109221template <class t_HEAD, class t_TAIL_01,
109222 class t_TAIL_02,
109223 class t_TAIL_03,
109224 class t_TAIL_04,
109225 class t_TAIL_05,
109226 class t_TAIL_06,
109227 class t_TAIL_07,
109228 class t_TAIL_08,
109229 class t_TAIL_09,
109230 class t_TAIL_10,
109231 class t_TAIL_11,
109232 class t_TAIL_12,
109233 class t_TAIL_13>
109234template <size_t t_INDEX,
109235 class t_ARG_01,
109236 class t_ARG_02,
109237 class t_ARG_03,
109238 class t_ARG_04,
109239 class t_ARG_05,
109240 class t_ARG_06>
109241void Variant_Base<t_HEAD, t_TAIL_01,
109242 t_TAIL_02,
109243 t_TAIL_03,
109244 t_TAIL_04,
109245 t_TAIL_05,
109246 t_TAIL_06,
109247 t_TAIL_07,
109248 t_TAIL_08,
109249 t_TAIL_09,
109250 t_TAIL_10,
109251 t_TAIL_11,
109252 t_TAIL_12,
109253 t_TAIL_13,
109254 BSLS_COMPILERFEATURES_FILLT( 5)
109255 >::baseEmplace(const t_ARG_01& arg_01,
109256 const t_ARG_02& arg_02,
109257 const t_ARG_03& arg_03,
109258 const t_ARG_04& arg_04,
109259 const t_ARG_05& arg_05,
109260 const t_ARG_06& arg_06)
109261{
109262 typedef typename bsl::remove_cv<
109264 Alt_Type;
109265
109266 reset();
109267
109268 BloombergLP::bslma::ConstructionUtil::construct(
109269 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109270 AllocBase::mechanism(),
109271 arg_01,
109272 arg_02,
109273 arg_03,
109274 arg_04,
109275 arg_05,
109276 arg_06);
109277 d_type = t_INDEX;
109278}
109279#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
109280
109281#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
109282template <class t_HEAD, class t_TAIL_01,
109283 class t_TAIL_02,
109284 class t_TAIL_03,
109285 class t_TAIL_04,
109286 class t_TAIL_05,
109287 class t_TAIL_06,
109288 class t_TAIL_07,
109289 class t_TAIL_08,
109290 class t_TAIL_09,
109291 class t_TAIL_10,
109292 class t_TAIL_11,
109293 class t_TAIL_12,
109294 class t_TAIL_13,
109295 class t_TAIL_14>
109296template <size_t t_INDEX,
109297 class t_ARG_01,
109298 class t_ARG_02,
109299 class t_ARG_03,
109300 class t_ARG_04,
109301 class t_ARG_05,
109302 class t_ARG_06>
109303void Variant_Base<t_HEAD, t_TAIL_01,
109304 t_TAIL_02,
109305 t_TAIL_03,
109306 t_TAIL_04,
109307 t_TAIL_05,
109308 t_TAIL_06,
109309 t_TAIL_07,
109310 t_TAIL_08,
109311 t_TAIL_09,
109312 t_TAIL_10,
109313 t_TAIL_11,
109314 t_TAIL_12,
109315 t_TAIL_13,
109316 t_TAIL_14,
109317 BSLS_COMPILERFEATURES_FILLT( 4)
109318 >::baseEmplace(const t_ARG_01& arg_01,
109319 const t_ARG_02& arg_02,
109320 const t_ARG_03& arg_03,
109321 const t_ARG_04& arg_04,
109322 const t_ARG_05& arg_05,
109323 const t_ARG_06& arg_06)
109324{
109325 typedef typename bsl::remove_cv<
109327 Alt_Type;
109328
109329 reset();
109330
109331 BloombergLP::bslma::ConstructionUtil::construct(
109332 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109333 AllocBase::mechanism(),
109334 arg_01,
109335 arg_02,
109336 arg_03,
109337 arg_04,
109338 arg_05,
109339 arg_06);
109340 d_type = t_INDEX;
109341}
109342#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
109343
109344#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
109345template <class t_HEAD, class t_TAIL_01,
109346 class t_TAIL_02,
109347 class t_TAIL_03,
109348 class t_TAIL_04,
109349 class t_TAIL_05,
109350 class t_TAIL_06,
109351 class t_TAIL_07,
109352 class t_TAIL_08,
109353 class t_TAIL_09,
109354 class t_TAIL_10,
109355 class t_TAIL_11,
109356 class t_TAIL_12,
109357 class t_TAIL_13,
109358 class t_TAIL_14,
109359 class t_TAIL_15>
109360template <size_t t_INDEX,
109361 class t_ARG_01,
109362 class t_ARG_02,
109363 class t_ARG_03,
109364 class t_ARG_04,
109365 class t_ARG_05,
109366 class t_ARG_06>
109367void Variant_Base<t_HEAD, t_TAIL_01,
109368 t_TAIL_02,
109369 t_TAIL_03,
109370 t_TAIL_04,
109371 t_TAIL_05,
109372 t_TAIL_06,
109373 t_TAIL_07,
109374 t_TAIL_08,
109375 t_TAIL_09,
109376 t_TAIL_10,
109377 t_TAIL_11,
109378 t_TAIL_12,
109379 t_TAIL_13,
109380 t_TAIL_14,
109381 t_TAIL_15,
109382 BSLS_COMPILERFEATURES_FILLT( 3)
109383 >::baseEmplace(const t_ARG_01& arg_01,
109384 const t_ARG_02& arg_02,
109385 const t_ARG_03& arg_03,
109386 const t_ARG_04& arg_04,
109387 const t_ARG_05& arg_05,
109388 const t_ARG_06& arg_06)
109389{
109390 typedef typename bsl::remove_cv<
109392 Alt_Type;
109393
109394 reset();
109395
109396 BloombergLP::bslma::ConstructionUtil::construct(
109397 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109398 AllocBase::mechanism(),
109399 arg_01,
109400 arg_02,
109401 arg_03,
109402 arg_04,
109403 arg_05,
109404 arg_06);
109405 d_type = t_INDEX;
109406}
109407#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
109408
109409#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
109410template <class t_HEAD, class t_TAIL_01,
109411 class t_TAIL_02,
109412 class t_TAIL_03,
109413 class t_TAIL_04,
109414 class t_TAIL_05,
109415 class t_TAIL_06,
109416 class t_TAIL_07,
109417 class t_TAIL_08,
109418 class t_TAIL_09,
109419 class t_TAIL_10,
109420 class t_TAIL_11,
109421 class t_TAIL_12,
109422 class t_TAIL_13,
109423 class t_TAIL_14,
109424 class t_TAIL_15,
109425 class t_TAIL_16>
109426template <size_t t_INDEX,
109427 class t_ARG_01,
109428 class t_ARG_02,
109429 class t_ARG_03,
109430 class t_ARG_04,
109431 class t_ARG_05,
109432 class t_ARG_06>
109433void Variant_Base<t_HEAD, t_TAIL_01,
109434 t_TAIL_02,
109435 t_TAIL_03,
109436 t_TAIL_04,
109437 t_TAIL_05,
109438 t_TAIL_06,
109439 t_TAIL_07,
109440 t_TAIL_08,
109441 t_TAIL_09,
109442 t_TAIL_10,
109443 t_TAIL_11,
109444 t_TAIL_12,
109445 t_TAIL_13,
109446 t_TAIL_14,
109447 t_TAIL_15,
109448 t_TAIL_16,
109449 BSLS_COMPILERFEATURES_FILLT( 2)
109450 >::baseEmplace(const t_ARG_01& arg_01,
109451 const t_ARG_02& arg_02,
109452 const t_ARG_03& arg_03,
109453 const t_ARG_04& arg_04,
109454 const t_ARG_05& arg_05,
109455 const t_ARG_06& arg_06)
109456{
109457 typedef typename bsl::remove_cv<
109459 Alt_Type;
109460
109461 reset();
109462
109463 BloombergLP::bslma::ConstructionUtil::construct(
109464 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109465 AllocBase::mechanism(),
109466 arg_01,
109467 arg_02,
109468 arg_03,
109469 arg_04,
109470 arg_05,
109471 arg_06);
109472 d_type = t_INDEX;
109473}
109474#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
109475
109476#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
109477template <class t_HEAD, class t_TAIL_01,
109478 class t_TAIL_02,
109479 class t_TAIL_03,
109480 class t_TAIL_04,
109481 class t_TAIL_05,
109482 class t_TAIL_06,
109483 class t_TAIL_07,
109484 class t_TAIL_08,
109485 class t_TAIL_09,
109486 class t_TAIL_10,
109487 class t_TAIL_11,
109488 class t_TAIL_12,
109489 class t_TAIL_13,
109490 class t_TAIL_14,
109491 class t_TAIL_15,
109492 class t_TAIL_16,
109493 class t_TAIL_17>
109494template <size_t t_INDEX,
109495 class t_ARG_01,
109496 class t_ARG_02,
109497 class t_ARG_03,
109498 class t_ARG_04,
109499 class t_ARG_05,
109500 class t_ARG_06>
109501void Variant_Base<t_HEAD, t_TAIL_01,
109502 t_TAIL_02,
109503 t_TAIL_03,
109504 t_TAIL_04,
109505 t_TAIL_05,
109506 t_TAIL_06,
109507 t_TAIL_07,
109508 t_TAIL_08,
109509 t_TAIL_09,
109510 t_TAIL_10,
109511 t_TAIL_11,
109512 t_TAIL_12,
109513 t_TAIL_13,
109514 t_TAIL_14,
109515 t_TAIL_15,
109516 t_TAIL_16,
109517 t_TAIL_17,
109518 BSLS_COMPILERFEATURES_FILLT( 1)
109519 >::baseEmplace(const t_ARG_01& arg_01,
109520 const t_ARG_02& arg_02,
109521 const t_ARG_03& arg_03,
109522 const t_ARG_04& arg_04,
109523 const t_ARG_05& arg_05,
109524 const t_ARG_06& arg_06)
109525{
109526 typedef typename bsl::remove_cv<
109528 Alt_Type;
109529
109530 reset();
109531
109532 BloombergLP::bslma::ConstructionUtil::construct(
109533 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109534 AllocBase::mechanism(),
109535 arg_01,
109536 arg_02,
109537 arg_03,
109538 arg_04,
109539 arg_05,
109540 arg_06);
109541 d_type = t_INDEX;
109542}
109543#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
109544
109545#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
109546template <class t_HEAD, class t_TAIL_01,
109547 class t_TAIL_02,
109548 class t_TAIL_03,
109549 class t_TAIL_04,
109550 class t_TAIL_05,
109551 class t_TAIL_06,
109552 class t_TAIL_07,
109553 class t_TAIL_08,
109554 class t_TAIL_09,
109555 class t_TAIL_10,
109556 class t_TAIL_11,
109557 class t_TAIL_12,
109558 class t_TAIL_13,
109559 class t_TAIL_14,
109560 class t_TAIL_15,
109561 class t_TAIL_16,
109562 class t_TAIL_17,
109563 class t_TAIL_18>
109564template <size_t t_INDEX,
109565 class t_ARG_01,
109566 class t_ARG_02,
109567 class t_ARG_03,
109568 class t_ARG_04,
109569 class t_ARG_05,
109570 class t_ARG_06>
109571void Variant_Base<t_HEAD, t_TAIL_01,
109572 t_TAIL_02,
109573 t_TAIL_03,
109574 t_TAIL_04,
109575 t_TAIL_05,
109576 t_TAIL_06,
109577 t_TAIL_07,
109578 t_TAIL_08,
109579 t_TAIL_09,
109580 t_TAIL_10,
109581 t_TAIL_11,
109582 t_TAIL_12,
109583 t_TAIL_13,
109584 t_TAIL_14,
109585 t_TAIL_15,
109586 t_TAIL_16,
109587 t_TAIL_17,
109588 t_TAIL_18,
109589 BSLS_COMPILERFEATURES_FILLT( 0)
109590 >::baseEmplace(const t_ARG_01& arg_01,
109591 const t_ARG_02& arg_02,
109592 const t_ARG_03& arg_03,
109593 const t_ARG_04& arg_04,
109594 const t_ARG_05& arg_05,
109595 const t_ARG_06& arg_06)
109596{
109597 typedef typename bsl::remove_cv<
109599 Alt_Type;
109600
109601 reset();
109602
109603 BloombergLP::bslma::ConstructionUtil::construct(
109604 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109605 AllocBase::mechanism(),
109606 arg_01,
109607 arg_02,
109608 arg_03,
109609 arg_04,
109610 arg_05,
109611 arg_06);
109612 d_type = t_INDEX;
109613}
109614#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
109615
109616
109617#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
109618template <class t_HEAD>
109619template <size_t t_INDEX,
109620 class t_ARG_01,
109621 class t_ARG_02,
109622 class t_ARG_03,
109623 class t_ARG_04,
109624 class t_ARG_05,
109625 class t_ARG_06,
109626 class t_ARG_07>
109627void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
109628 >::baseEmplace(const t_ARG_01& arg_01,
109629 const t_ARG_02& arg_02,
109630 const t_ARG_03& arg_03,
109631 const t_ARG_04& arg_04,
109632 const t_ARG_05& arg_05,
109633 const t_ARG_06& arg_06,
109634 const t_ARG_07& arg_07)
109635{
109636 typedef typename bsl::remove_cv<
109638 Alt_Type;
109639
109640 reset();
109641
109642 BloombergLP::bslma::ConstructionUtil::construct(
109643 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109644 AllocBase::mechanism(),
109645 arg_01,
109646 arg_02,
109647 arg_03,
109648 arg_04,
109649 arg_05,
109650 arg_06,
109651 arg_07);
109652 d_type = t_INDEX;
109653}
109654#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
109655
109656#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
109657template <class t_HEAD, class t_TAIL_01>
109658template <size_t t_INDEX,
109659 class t_ARG_01,
109660 class t_ARG_02,
109661 class t_ARG_03,
109662 class t_ARG_04,
109663 class t_ARG_05,
109664 class t_ARG_06,
109665 class t_ARG_07>
109666void Variant_Base<t_HEAD, t_TAIL_01,
109667 BSLS_COMPILERFEATURES_FILLT(17)
109668 >::baseEmplace(const t_ARG_01& arg_01,
109669 const t_ARG_02& arg_02,
109670 const t_ARG_03& arg_03,
109671 const t_ARG_04& arg_04,
109672 const t_ARG_05& arg_05,
109673 const t_ARG_06& arg_06,
109674 const t_ARG_07& arg_07)
109675{
109676 typedef typename bsl::remove_cv<
109678 Alt_Type;
109679
109680 reset();
109681
109682 BloombergLP::bslma::ConstructionUtil::construct(
109683 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109684 AllocBase::mechanism(),
109685 arg_01,
109686 arg_02,
109687 arg_03,
109688 arg_04,
109689 arg_05,
109690 arg_06,
109691 arg_07);
109692 d_type = t_INDEX;
109693}
109694#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
109695
109696#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
109697template <class t_HEAD, class t_TAIL_01,
109698 class t_TAIL_02>
109699template <size_t t_INDEX,
109700 class t_ARG_01,
109701 class t_ARG_02,
109702 class t_ARG_03,
109703 class t_ARG_04,
109704 class t_ARG_05,
109705 class t_ARG_06,
109706 class t_ARG_07>
109707void Variant_Base<t_HEAD, t_TAIL_01,
109708 t_TAIL_02,
109709 BSLS_COMPILERFEATURES_FILLT(16)
109710 >::baseEmplace(const t_ARG_01& arg_01,
109711 const t_ARG_02& arg_02,
109712 const t_ARG_03& arg_03,
109713 const t_ARG_04& arg_04,
109714 const t_ARG_05& arg_05,
109715 const t_ARG_06& arg_06,
109716 const t_ARG_07& arg_07)
109717{
109718 typedef typename bsl::remove_cv<
109720 Alt_Type;
109721
109722 reset();
109723
109724 BloombergLP::bslma::ConstructionUtil::construct(
109725 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109726 AllocBase::mechanism(),
109727 arg_01,
109728 arg_02,
109729 arg_03,
109730 arg_04,
109731 arg_05,
109732 arg_06,
109733 arg_07);
109734 d_type = t_INDEX;
109735}
109736#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
109737
109738#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
109739template <class t_HEAD, class t_TAIL_01,
109740 class t_TAIL_02,
109741 class t_TAIL_03>
109742template <size_t t_INDEX,
109743 class t_ARG_01,
109744 class t_ARG_02,
109745 class t_ARG_03,
109746 class t_ARG_04,
109747 class t_ARG_05,
109748 class t_ARG_06,
109749 class t_ARG_07>
109750void Variant_Base<t_HEAD, t_TAIL_01,
109751 t_TAIL_02,
109752 t_TAIL_03,
109753 BSLS_COMPILERFEATURES_FILLT(15)
109754 >::baseEmplace(const t_ARG_01& arg_01,
109755 const t_ARG_02& arg_02,
109756 const t_ARG_03& arg_03,
109757 const t_ARG_04& arg_04,
109758 const t_ARG_05& arg_05,
109759 const t_ARG_06& arg_06,
109760 const t_ARG_07& arg_07)
109761{
109762 typedef typename bsl::remove_cv<
109764 Alt_Type;
109765
109766 reset();
109767
109768 BloombergLP::bslma::ConstructionUtil::construct(
109769 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109770 AllocBase::mechanism(),
109771 arg_01,
109772 arg_02,
109773 arg_03,
109774 arg_04,
109775 arg_05,
109776 arg_06,
109777 arg_07);
109778 d_type = t_INDEX;
109779}
109780#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
109781
109782#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
109783template <class t_HEAD, class t_TAIL_01,
109784 class t_TAIL_02,
109785 class t_TAIL_03,
109786 class t_TAIL_04>
109787template <size_t t_INDEX,
109788 class t_ARG_01,
109789 class t_ARG_02,
109790 class t_ARG_03,
109791 class t_ARG_04,
109792 class t_ARG_05,
109793 class t_ARG_06,
109794 class t_ARG_07>
109795void Variant_Base<t_HEAD, t_TAIL_01,
109796 t_TAIL_02,
109797 t_TAIL_03,
109798 t_TAIL_04,
109799 BSLS_COMPILERFEATURES_FILLT(14)
109800 >::baseEmplace(const t_ARG_01& arg_01,
109801 const t_ARG_02& arg_02,
109802 const t_ARG_03& arg_03,
109803 const t_ARG_04& arg_04,
109804 const t_ARG_05& arg_05,
109805 const t_ARG_06& arg_06,
109806 const t_ARG_07& arg_07)
109807{
109808 typedef typename bsl::remove_cv<
109810 Alt_Type;
109811
109812 reset();
109813
109814 BloombergLP::bslma::ConstructionUtil::construct(
109815 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109816 AllocBase::mechanism(),
109817 arg_01,
109818 arg_02,
109819 arg_03,
109820 arg_04,
109821 arg_05,
109822 arg_06,
109823 arg_07);
109824 d_type = t_INDEX;
109825}
109826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
109827
109828#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
109829template <class t_HEAD, class t_TAIL_01,
109830 class t_TAIL_02,
109831 class t_TAIL_03,
109832 class t_TAIL_04,
109833 class t_TAIL_05>
109834template <size_t t_INDEX,
109835 class t_ARG_01,
109836 class t_ARG_02,
109837 class t_ARG_03,
109838 class t_ARG_04,
109839 class t_ARG_05,
109840 class t_ARG_06,
109841 class t_ARG_07>
109842void Variant_Base<t_HEAD, t_TAIL_01,
109843 t_TAIL_02,
109844 t_TAIL_03,
109845 t_TAIL_04,
109846 t_TAIL_05,
109847 BSLS_COMPILERFEATURES_FILLT(13)
109848 >::baseEmplace(const t_ARG_01& arg_01,
109849 const t_ARG_02& arg_02,
109850 const t_ARG_03& arg_03,
109851 const t_ARG_04& arg_04,
109852 const t_ARG_05& arg_05,
109853 const t_ARG_06& arg_06,
109854 const t_ARG_07& arg_07)
109855{
109856 typedef typename bsl::remove_cv<
109858 Alt_Type;
109859
109860 reset();
109861
109862 BloombergLP::bslma::ConstructionUtil::construct(
109863 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109864 AllocBase::mechanism(),
109865 arg_01,
109866 arg_02,
109867 arg_03,
109868 arg_04,
109869 arg_05,
109870 arg_06,
109871 arg_07);
109872 d_type = t_INDEX;
109873}
109874#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
109875
109876#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
109877template <class t_HEAD, class t_TAIL_01,
109878 class t_TAIL_02,
109879 class t_TAIL_03,
109880 class t_TAIL_04,
109881 class t_TAIL_05,
109882 class t_TAIL_06>
109883template <size_t t_INDEX,
109884 class t_ARG_01,
109885 class t_ARG_02,
109886 class t_ARG_03,
109887 class t_ARG_04,
109888 class t_ARG_05,
109889 class t_ARG_06,
109890 class t_ARG_07>
109891void Variant_Base<t_HEAD, t_TAIL_01,
109892 t_TAIL_02,
109893 t_TAIL_03,
109894 t_TAIL_04,
109895 t_TAIL_05,
109896 t_TAIL_06,
109897 BSLS_COMPILERFEATURES_FILLT(12)
109898 >::baseEmplace(const t_ARG_01& arg_01,
109899 const t_ARG_02& arg_02,
109900 const t_ARG_03& arg_03,
109901 const t_ARG_04& arg_04,
109902 const t_ARG_05& arg_05,
109903 const t_ARG_06& arg_06,
109904 const t_ARG_07& arg_07)
109905{
109906 typedef typename bsl::remove_cv<
109908 Alt_Type;
109909
109910 reset();
109911
109912 BloombergLP::bslma::ConstructionUtil::construct(
109913 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109914 AllocBase::mechanism(),
109915 arg_01,
109916 arg_02,
109917 arg_03,
109918 arg_04,
109919 arg_05,
109920 arg_06,
109921 arg_07);
109922 d_type = t_INDEX;
109923}
109924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
109925
109926#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
109927template <class t_HEAD, class t_TAIL_01,
109928 class t_TAIL_02,
109929 class t_TAIL_03,
109930 class t_TAIL_04,
109931 class t_TAIL_05,
109932 class t_TAIL_06,
109933 class t_TAIL_07>
109934template <size_t t_INDEX,
109935 class t_ARG_01,
109936 class t_ARG_02,
109937 class t_ARG_03,
109938 class t_ARG_04,
109939 class t_ARG_05,
109940 class t_ARG_06,
109941 class t_ARG_07>
109942void Variant_Base<t_HEAD, t_TAIL_01,
109943 t_TAIL_02,
109944 t_TAIL_03,
109945 t_TAIL_04,
109946 t_TAIL_05,
109947 t_TAIL_06,
109948 t_TAIL_07,
109949 BSLS_COMPILERFEATURES_FILLT(11)
109950 >::baseEmplace(const t_ARG_01& arg_01,
109951 const t_ARG_02& arg_02,
109952 const t_ARG_03& arg_03,
109953 const t_ARG_04& arg_04,
109954 const t_ARG_05& arg_05,
109955 const t_ARG_06& arg_06,
109956 const t_ARG_07& arg_07)
109957{
109958 typedef typename bsl::remove_cv<
109960 Alt_Type;
109961
109962 reset();
109963
109964 BloombergLP::bslma::ConstructionUtil::construct(
109965 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
109966 AllocBase::mechanism(),
109967 arg_01,
109968 arg_02,
109969 arg_03,
109970 arg_04,
109971 arg_05,
109972 arg_06,
109973 arg_07);
109974 d_type = t_INDEX;
109975}
109976#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
109977
109978#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
109979template <class t_HEAD, class t_TAIL_01,
109980 class t_TAIL_02,
109981 class t_TAIL_03,
109982 class t_TAIL_04,
109983 class t_TAIL_05,
109984 class t_TAIL_06,
109985 class t_TAIL_07,
109986 class t_TAIL_08>
109987template <size_t t_INDEX,
109988 class t_ARG_01,
109989 class t_ARG_02,
109990 class t_ARG_03,
109991 class t_ARG_04,
109992 class t_ARG_05,
109993 class t_ARG_06,
109994 class t_ARG_07>
109995void Variant_Base<t_HEAD, t_TAIL_01,
109996 t_TAIL_02,
109997 t_TAIL_03,
109998 t_TAIL_04,
109999 t_TAIL_05,
110000 t_TAIL_06,
110001 t_TAIL_07,
110002 t_TAIL_08,
110003 BSLS_COMPILERFEATURES_FILLT(10)
110004 >::baseEmplace(const t_ARG_01& arg_01,
110005 const t_ARG_02& arg_02,
110006 const t_ARG_03& arg_03,
110007 const t_ARG_04& arg_04,
110008 const t_ARG_05& arg_05,
110009 const t_ARG_06& arg_06,
110010 const t_ARG_07& arg_07)
110011{
110012 typedef typename bsl::remove_cv<
110014 Alt_Type;
110015
110016 reset();
110017
110018 BloombergLP::bslma::ConstructionUtil::construct(
110019 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110020 AllocBase::mechanism(),
110021 arg_01,
110022 arg_02,
110023 arg_03,
110024 arg_04,
110025 arg_05,
110026 arg_06,
110027 arg_07);
110028 d_type = t_INDEX;
110029}
110030#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
110031
110032#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
110033template <class t_HEAD, class t_TAIL_01,
110034 class t_TAIL_02,
110035 class t_TAIL_03,
110036 class t_TAIL_04,
110037 class t_TAIL_05,
110038 class t_TAIL_06,
110039 class t_TAIL_07,
110040 class t_TAIL_08,
110041 class t_TAIL_09>
110042template <size_t t_INDEX,
110043 class t_ARG_01,
110044 class t_ARG_02,
110045 class t_ARG_03,
110046 class t_ARG_04,
110047 class t_ARG_05,
110048 class t_ARG_06,
110049 class t_ARG_07>
110050void Variant_Base<t_HEAD, t_TAIL_01,
110051 t_TAIL_02,
110052 t_TAIL_03,
110053 t_TAIL_04,
110054 t_TAIL_05,
110055 t_TAIL_06,
110056 t_TAIL_07,
110057 t_TAIL_08,
110058 t_TAIL_09,
110059 BSLS_COMPILERFEATURES_FILLT( 9)
110060 >::baseEmplace(const t_ARG_01& arg_01,
110061 const t_ARG_02& arg_02,
110062 const t_ARG_03& arg_03,
110063 const t_ARG_04& arg_04,
110064 const t_ARG_05& arg_05,
110065 const t_ARG_06& arg_06,
110066 const t_ARG_07& arg_07)
110067{
110068 typedef typename bsl::remove_cv<
110070 Alt_Type;
110071
110072 reset();
110073
110074 BloombergLP::bslma::ConstructionUtil::construct(
110075 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110076 AllocBase::mechanism(),
110077 arg_01,
110078 arg_02,
110079 arg_03,
110080 arg_04,
110081 arg_05,
110082 arg_06,
110083 arg_07);
110084 d_type = t_INDEX;
110085}
110086#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
110087
110088#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
110089template <class t_HEAD, class t_TAIL_01,
110090 class t_TAIL_02,
110091 class t_TAIL_03,
110092 class t_TAIL_04,
110093 class t_TAIL_05,
110094 class t_TAIL_06,
110095 class t_TAIL_07,
110096 class t_TAIL_08,
110097 class t_TAIL_09,
110098 class t_TAIL_10>
110099template <size_t t_INDEX,
110100 class t_ARG_01,
110101 class t_ARG_02,
110102 class t_ARG_03,
110103 class t_ARG_04,
110104 class t_ARG_05,
110105 class t_ARG_06,
110106 class t_ARG_07>
110107void Variant_Base<t_HEAD, t_TAIL_01,
110108 t_TAIL_02,
110109 t_TAIL_03,
110110 t_TAIL_04,
110111 t_TAIL_05,
110112 t_TAIL_06,
110113 t_TAIL_07,
110114 t_TAIL_08,
110115 t_TAIL_09,
110116 t_TAIL_10,
110117 BSLS_COMPILERFEATURES_FILLT( 8)
110118 >::baseEmplace(const t_ARG_01& arg_01,
110119 const t_ARG_02& arg_02,
110120 const t_ARG_03& arg_03,
110121 const t_ARG_04& arg_04,
110122 const t_ARG_05& arg_05,
110123 const t_ARG_06& arg_06,
110124 const t_ARG_07& arg_07)
110125{
110126 typedef typename bsl::remove_cv<
110128 Alt_Type;
110129
110130 reset();
110131
110132 BloombergLP::bslma::ConstructionUtil::construct(
110133 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110134 AllocBase::mechanism(),
110135 arg_01,
110136 arg_02,
110137 arg_03,
110138 arg_04,
110139 arg_05,
110140 arg_06,
110141 arg_07);
110142 d_type = t_INDEX;
110143}
110144#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
110145
110146#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
110147template <class t_HEAD, class t_TAIL_01,
110148 class t_TAIL_02,
110149 class t_TAIL_03,
110150 class t_TAIL_04,
110151 class t_TAIL_05,
110152 class t_TAIL_06,
110153 class t_TAIL_07,
110154 class t_TAIL_08,
110155 class t_TAIL_09,
110156 class t_TAIL_10,
110157 class t_TAIL_11>
110158template <size_t t_INDEX,
110159 class t_ARG_01,
110160 class t_ARG_02,
110161 class t_ARG_03,
110162 class t_ARG_04,
110163 class t_ARG_05,
110164 class t_ARG_06,
110165 class t_ARG_07>
110166void Variant_Base<t_HEAD, t_TAIL_01,
110167 t_TAIL_02,
110168 t_TAIL_03,
110169 t_TAIL_04,
110170 t_TAIL_05,
110171 t_TAIL_06,
110172 t_TAIL_07,
110173 t_TAIL_08,
110174 t_TAIL_09,
110175 t_TAIL_10,
110176 t_TAIL_11,
110177 BSLS_COMPILERFEATURES_FILLT( 7)
110178 >::baseEmplace(const t_ARG_01& arg_01,
110179 const t_ARG_02& arg_02,
110180 const t_ARG_03& arg_03,
110181 const t_ARG_04& arg_04,
110182 const t_ARG_05& arg_05,
110183 const t_ARG_06& arg_06,
110184 const t_ARG_07& arg_07)
110185{
110186 typedef typename bsl::remove_cv<
110188 Alt_Type;
110189
110190 reset();
110191
110192 BloombergLP::bslma::ConstructionUtil::construct(
110193 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110194 AllocBase::mechanism(),
110195 arg_01,
110196 arg_02,
110197 arg_03,
110198 arg_04,
110199 arg_05,
110200 arg_06,
110201 arg_07);
110202 d_type = t_INDEX;
110203}
110204#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
110205
110206#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
110207template <class t_HEAD, class t_TAIL_01,
110208 class t_TAIL_02,
110209 class t_TAIL_03,
110210 class t_TAIL_04,
110211 class t_TAIL_05,
110212 class t_TAIL_06,
110213 class t_TAIL_07,
110214 class t_TAIL_08,
110215 class t_TAIL_09,
110216 class t_TAIL_10,
110217 class t_TAIL_11,
110218 class t_TAIL_12>
110219template <size_t t_INDEX,
110220 class t_ARG_01,
110221 class t_ARG_02,
110222 class t_ARG_03,
110223 class t_ARG_04,
110224 class t_ARG_05,
110225 class t_ARG_06,
110226 class t_ARG_07>
110227void Variant_Base<t_HEAD, t_TAIL_01,
110228 t_TAIL_02,
110229 t_TAIL_03,
110230 t_TAIL_04,
110231 t_TAIL_05,
110232 t_TAIL_06,
110233 t_TAIL_07,
110234 t_TAIL_08,
110235 t_TAIL_09,
110236 t_TAIL_10,
110237 t_TAIL_11,
110238 t_TAIL_12,
110239 BSLS_COMPILERFEATURES_FILLT( 6)
110240 >::baseEmplace(const t_ARG_01& arg_01,
110241 const t_ARG_02& arg_02,
110242 const t_ARG_03& arg_03,
110243 const t_ARG_04& arg_04,
110244 const t_ARG_05& arg_05,
110245 const t_ARG_06& arg_06,
110246 const t_ARG_07& arg_07)
110247{
110248 typedef typename bsl::remove_cv<
110250 Alt_Type;
110251
110252 reset();
110253
110254 BloombergLP::bslma::ConstructionUtil::construct(
110255 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110256 AllocBase::mechanism(),
110257 arg_01,
110258 arg_02,
110259 arg_03,
110260 arg_04,
110261 arg_05,
110262 arg_06,
110263 arg_07);
110264 d_type = t_INDEX;
110265}
110266#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
110267
110268#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
110269template <class t_HEAD, class t_TAIL_01,
110270 class t_TAIL_02,
110271 class t_TAIL_03,
110272 class t_TAIL_04,
110273 class t_TAIL_05,
110274 class t_TAIL_06,
110275 class t_TAIL_07,
110276 class t_TAIL_08,
110277 class t_TAIL_09,
110278 class t_TAIL_10,
110279 class t_TAIL_11,
110280 class t_TAIL_12,
110281 class t_TAIL_13>
110282template <size_t t_INDEX,
110283 class t_ARG_01,
110284 class t_ARG_02,
110285 class t_ARG_03,
110286 class t_ARG_04,
110287 class t_ARG_05,
110288 class t_ARG_06,
110289 class t_ARG_07>
110290void Variant_Base<t_HEAD, t_TAIL_01,
110291 t_TAIL_02,
110292 t_TAIL_03,
110293 t_TAIL_04,
110294 t_TAIL_05,
110295 t_TAIL_06,
110296 t_TAIL_07,
110297 t_TAIL_08,
110298 t_TAIL_09,
110299 t_TAIL_10,
110300 t_TAIL_11,
110301 t_TAIL_12,
110302 t_TAIL_13,
110303 BSLS_COMPILERFEATURES_FILLT( 5)
110304 >::baseEmplace(const t_ARG_01& arg_01,
110305 const t_ARG_02& arg_02,
110306 const t_ARG_03& arg_03,
110307 const t_ARG_04& arg_04,
110308 const t_ARG_05& arg_05,
110309 const t_ARG_06& arg_06,
110310 const t_ARG_07& arg_07)
110311{
110312 typedef typename bsl::remove_cv<
110314 Alt_Type;
110315
110316 reset();
110317
110318 BloombergLP::bslma::ConstructionUtil::construct(
110319 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110320 AllocBase::mechanism(),
110321 arg_01,
110322 arg_02,
110323 arg_03,
110324 arg_04,
110325 arg_05,
110326 arg_06,
110327 arg_07);
110328 d_type = t_INDEX;
110329}
110330#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
110331
110332#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
110333template <class t_HEAD, class t_TAIL_01,
110334 class t_TAIL_02,
110335 class t_TAIL_03,
110336 class t_TAIL_04,
110337 class t_TAIL_05,
110338 class t_TAIL_06,
110339 class t_TAIL_07,
110340 class t_TAIL_08,
110341 class t_TAIL_09,
110342 class t_TAIL_10,
110343 class t_TAIL_11,
110344 class t_TAIL_12,
110345 class t_TAIL_13,
110346 class t_TAIL_14>
110347template <size_t t_INDEX,
110348 class t_ARG_01,
110349 class t_ARG_02,
110350 class t_ARG_03,
110351 class t_ARG_04,
110352 class t_ARG_05,
110353 class t_ARG_06,
110354 class t_ARG_07>
110355void Variant_Base<t_HEAD, t_TAIL_01,
110356 t_TAIL_02,
110357 t_TAIL_03,
110358 t_TAIL_04,
110359 t_TAIL_05,
110360 t_TAIL_06,
110361 t_TAIL_07,
110362 t_TAIL_08,
110363 t_TAIL_09,
110364 t_TAIL_10,
110365 t_TAIL_11,
110366 t_TAIL_12,
110367 t_TAIL_13,
110368 t_TAIL_14,
110369 BSLS_COMPILERFEATURES_FILLT( 4)
110370 >::baseEmplace(const t_ARG_01& arg_01,
110371 const t_ARG_02& arg_02,
110372 const t_ARG_03& arg_03,
110373 const t_ARG_04& arg_04,
110374 const t_ARG_05& arg_05,
110375 const t_ARG_06& arg_06,
110376 const t_ARG_07& arg_07)
110377{
110378 typedef typename bsl::remove_cv<
110380 Alt_Type;
110381
110382 reset();
110383
110384 BloombergLP::bslma::ConstructionUtil::construct(
110385 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110386 AllocBase::mechanism(),
110387 arg_01,
110388 arg_02,
110389 arg_03,
110390 arg_04,
110391 arg_05,
110392 arg_06,
110393 arg_07);
110394 d_type = t_INDEX;
110395}
110396#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
110397
110398#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
110399template <class t_HEAD, class t_TAIL_01,
110400 class t_TAIL_02,
110401 class t_TAIL_03,
110402 class t_TAIL_04,
110403 class t_TAIL_05,
110404 class t_TAIL_06,
110405 class t_TAIL_07,
110406 class t_TAIL_08,
110407 class t_TAIL_09,
110408 class t_TAIL_10,
110409 class t_TAIL_11,
110410 class t_TAIL_12,
110411 class t_TAIL_13,
110412 class t_TAIL_14,
110413 class t_TAIL_15>
110414template <size_t t_INDEX,
110415 class t_ARG_01,
110416 class t_ARG_02,
110417 class t_ARG_03,
110418 class t_ARG_04,
110419 class t_ARG_05,
110420 class t_ARG_06,
110421 class t_ARG_07>
110422void Variant_Base<t_HEAD, t_TAIL_01,
110423 t_TAIL_02,
110424 t_TAIL_03,
110425 t_TAIL_04,
110426 t_TAIL_05,
110427 t_TAIL_06,
110428 t_TAIL_07,
110429 t_TAIL_08,
110430 t_TAIL_09,
110431 t_TAIL_10,
110432 t_TAIL_11,
110433 t_TAIL_12,
110434 t_TAIL_13,
110435 t_TAIL_14,
110436 t_TAIL_15,
110437 BSLS_COMPILERFEATURES_FILLT( 3)
110438 >::baseEmplace(const t_ARG_01& arg_01,
110439 const t_ARG_02& arg_02,
110440 const t_ARG_03& arg_03,
110441 const t_ARG_04& arg_04,
110442 const t_ARG_05& arg_05,
110443 const t_ARG_06& arg_06,
110444 const t_ARG_07& arg_07)
110445{
110446 typedef typename bsl::remove_cv<
110448 Alt_Type;
110449
110450 reset();
110451
110452 BloombergLP::bslma::ConstructionUtil::construct(
110453 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110454 AllocBase::mechanism(),
110455 arg_01,
110456 arg_02,
110457 arg_03,
110458 arg_04,
110459 arg_05,
110460 arg_06,
110461 arg_07);
110462 d_type = t_INDEX;
110463}
110464#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
110465
110466#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
110467template <class t_HEAD, class t_TAIL_01,
110468 class t_TAIL_02,
110469 class t_TAIL_03,
110470 class t_TAIL_04,
110471 class t_TAIL_05,
110472 class t_TAIL_06,
110473 class t_TAIL_07,
110474 class t_TAIL_08,
110475 class t_TAIL_09,
110476 class t_TAIL_10,
110477 class t_TAIL_11,
110478 class t_TAIL_12,
110479 class t_TAIL_13,
110480 class t_TAIL_14,
110481 class t_TAIL_15,
110482 class t_TAIL_16>
110483template <size_t t_INDEX,
110484 class t_ARG_01,
110485 class t_ARG_02,
110486 class t_ARG_03,
110487 class t_ARG_04,
110488 class t_ARG_05,
110489 class t_ARG_06,
110490 class t_ARG_07>
110491void Variant_Base<t_HEAD, t_TAIL_01,
110492 t_TAIL_02,
110493 t_TAIL_03,
110494 t_TAIL_04,
110495 t_TAIL_05,
110496 t_TAIL_06,
110497 t_TAIL_07,
110498 t_TAIL_08,
110499 t_TAIL_09,
110500 t_TAIL_10,
110501 t_TAIL_11,
110502 t_TAIL_12,
110503 t_TAIL_13,
110504 t_TAIL_14,
110505 t_TAIL_15,
110506 t_TAIL_16,
110507 BSLS_COMPILERFEATURES_FILLT( 2)
110508 >::baseEmplace(const t_ARG_01& arg_01,
110509 const t_ARG_02& arg_02,
110510 const t_ARG_03& arg_03,
110511 const t_ARG_04& arg_04,
110512 const t_ARG_05& arg_05,
110513 const t_ARG_06& arg_06,
110514 const t_ARG_07& arg_07)
110515{
110516 typedef typename bsl::remove_cv<
110518 Alt_Type;
110519
110520 reset();
110521
110522 BloombergLP::bslma::ConstructionUtil::construct(
110523 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110524 AllocBase::mechanism(),
110525 arg_01,
110526 arg_02,
110527 arg_03,
110528 arg_04,
110529 arg_05,
110530 arg_06,
110531 arg_07);
110532 d_type = t_INDEX;
110533}
110534#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
110535
110536#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
110537template <class t_HEAD, class t_TAIL_01,
110538 class t_TAIL_02,
110539 class t_TAIL_03,
110540 class t_TAIL_04,
110541 class t_TAIL_05,
110542 class t_TAIL_06,
110543 class t_TAIL_07,
110544 class t_TAIL_08,
110545 class t_TAIL_09,
110546 class t_TAIL_10,
110547 class t_TAIL_11,
110548 class t_TAIL_12,
110549 class t_TAIL_13,
110550 class t_TAIL_14,
110551 class t_TAIL_15,
110552 class t_TAIL_16,
110553 class t_TAIL_17>
110554template <size_t t_INDEX,
110555 class t_ARG_01,
110556 class t_ARG_02,
110557 class t_ARG_03,
110558 class t_ARG_04,
110559 class t_ARG_05,
110560 class t_ARG_06,
110561 class t_ARG_07>
110562void Variant_Base<t_HEAD, t_TAIL_01,
110563 t_TAIL_02,
110564 t_TAIL_03,
110565 t_TAIL_04,
110566 t_TAIL_05,
110567 t_TAIL_06,
110568 t_TAIL_07,
110569 t_TAIL_08,
110570 t_TAIL_09,
110571 t_TAIL_10,
110572 t_TAIL_11,
110573 t_TAIL_12,
110574 t_TAIL_13,
110575 t_TAIL_14,
110576 t_TAIL_15,
110577 t_TAIL_16,
110578 t_TAIL_17,
110579 BSLS_COMPILERFEATURES_FILLT( 1)
110580 >::baseEmplace(const t_ARG_01& arg_01,
110581 const t_ARG_02& arg_02,
110582 const t_ARG_03& arg_03,
110583 const t_ARG_04& arg_04,
110584 const t_ARG_05& arg_05,
110585 const t_ARG_06& arg_06,
110586 const t_ARG_07& arg_07)
110587{
110588 typedef typename bsl::remove_cv<
110590 Alt_Type;
110591
110592 reset();
110593
110594 BloombergLP::bslma::ConstructionUtil::construct(
110595 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110596 AllocBase::mechanism(),
110597 arg_01,
110598 arg_02,
110599 arg_03,
110600 arg_04,
110601 arg_05,
110602 arg_06,
110603 arg_07);
110604 d_type = t_INDEX;
110605}
110606#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
110607
110608#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
110609template <class t_HEAD, class t_TAIL_01,
110610 class t_TAIL_02,
110611 class t_TAIL_03,
110612 class t_TAIL_04,
110613 class t_TAIL_05,
110614 class t_TAIL_06,
110615 class t_TAIL_07,
110616 class t_TAIL_08,
110617 class t_TAIL_09,
110618 class t_TAIL_10,
110619 class t_TAIL_11,
110620 class t_TAIL_12,
110621 class t_TAIL_13,
110622 class t_TAIL_14,
110623 class t_TAIL_15,
110624 class t_TAIL_16,
110625 class t_TAIL_17,
110626 class t_TAIL_18>
110627template <size_t t_INDEX,
110628 class t_ARG_01,
110629 class t_ARG_02,
110630 class t_ARG_03,
110631 class t_ARG_04,
110632 class t_ARG_05,
110633 class t_ARG_06,
110634 class t_ARG_07>
110635void Variant_Base<t_HEAD, t_TAIL_01,
110636 t_TAIL_02,
110637 t_TAIL_03,
110638 t_TAIL_04,
110639 t_TAIL_05,
110640 t_TAIL_06,
110641 t_TAIL_07,
110642 t_TAIL_08,
110643 t_TAIL_09,
110644 t_TAIL_10,
110645 t_TAIL_11,
110646 t_TAIL_12,
110647 t_TAIL_13,
110648 t_TAIL_14,
110649 t_TAIL_15,
110650 t_TAIL_16,
110651 t_TAIL_17,
110652 t_TAIL_18,
110653 BSLS_COMPILERFEATURES_FILLT( 0)
110654 >::baseEmplace(const t_ARG_01& arg_01,
110655 const t_ARG_02& arg_02,
110656 const t_ARG_03& arg_03,
110657 const t_ARG_04& arg_04,
110658 const t_ARG_05& arg_05,
110659 const t_ARG_06& arg_06,
110660 const t_ARG_07& arg_07)
110661{
110662 typedef typename bsl::remove_cv<
110664 Alt_Type;
110665
110666 reset();
110667
110668 BloombergLP::bslma::ConstructionUtil::construct(
110669 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110670 AllocBase::mechanism(),
110671 arg_01,
110672 arg_02,
110673 arg_03,
110674 arg_04,
110675 arg_05,
110676 arg_06,
110677 arg_07);
110678 d_type = t_INDEX;
110679}
110680#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
110681
110682
110683#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
110684template <class t_HEAD>
110685template <size_t t_INDEX,
110686 class t_ARG_01,
110687 class t_ARG_02,
110688 class t_ARG_03,
110689 class t_ARG_04,
110690 class t_ARG_05,
110691 class t_ARG_06,
110692 class t_ARG_07,
110693 class t_ARG_08>
110694void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
110695 >::baseEmplace(const t_ARG_01& arg_01,
110696 const t_ARG_02& arg_02,
110697 const t_ARG_03& arg_03,
110698 const t_ARG_04& arg_04,
110699 const t_ARG_05& arg_05,
110700 const t_ARG_06& arg_06,
110701 const t_ARG_07& arg_07,
110702 const t_ARG_08& arg_08)
110703{
110704 typedef typename bsl::remove_cv<
110706 Alt_Type;
110707
110708 reset();
110709
110710 BloombergLP::bslma::ConstructionUtil::construct(
110711 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110712 AllocBase::mechanism(),
110713 arg_01,
110714 arg_02,
110715 arg_03,
110716 arg_04,
110717 arg_05,
110718 arg_06,
110719 arg_07,
110720 arg_08);
110721 d_type = t_INDEX;
110722}
110723#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
110724
110725#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
110726template <class t_HEAD, class t_TAIL_01>
110727template <size_t t_INDEX,
110728 class t_ARG_01,
110729 class t_ARG_02,
110730 class t_ARG_03,
110731 class t_ARG_04,
110732 class t_ARG_05,
110733 class t_ARG_06,
110734 class t_ARG_07,
110735 class t_ARG_08>
110736void Variant_Base<t_HEAD, t_TAIL_01,
110737 BSLS_COMPILERFEATURES_FILLT(17)
110738 >::baseEmplace(const t_ARG_01& arg_01,
110739 const t_ARG_02& arg_02,
110740 const t_ARG_03& arg_03,
110741 const t_ARG_04& arg_04,
110742 const t_ARG_05& arg_05,
110743 const t_ARG_06& arg_06,
110744 const t_ARG_07& arg_07,
110745 const t_ARG_08& arg_08)
110746{
110747 typedef typename bsl::remove_cv<
110749 Alt_Type;
110750
110751 reset();
110752
110753 BloombergLP::bslma::ConstructionUtil::construct(
110754 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110755 AllocBase::mechanism(),
110756 arg_01,
110757 arg_02,
110758 arg_03,
110759 arg_04,
110760 arg_05,
110761 arg_06,
110762 arg_07,
110763 arg_08);
110764 d_type = t_INDEX;
110765}
110766#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
110767
110768#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
110769template <class t_HEAD, class t_TAIL_01,
110770 class t_TAIL_02>
110771template <size_t t_INDEX,
110772 class t_ARG_01,
110773 class t_ARG_02,
110774 class t_ARG_03,
110775 class t_ARG_04,
110776 class t_ARG_05,
110777 class t_ARG_06,
110778 class t_ARG_07,
110779 class t_ARG_08>
110780void Variant_Base<t_HEAD, t_TAIL_01,
110781 t_TAIL_02,
110782 BSLS_COMPILERFEATURES_FILLT(16)
110783 >::baseEmplace(const t_ARG_01& arg_01,
110784 const t_ARG_02& arg_02,
110785 const t_ARG_03& arg_03,
110786 const t_ARG_04& arg_04,
110787 const t_ARG_05& arg_05,
110788 const t_ARG_06& arg_06,
110789 const t_ARG_07& arg_07,
110790 const t_ARG_08& arg_08)
110791{
110792 typedef typename bsl::remove_cv<
110794 Alt_Type;
110795
110796 reset();
110797
110798 BloombergLP::bslma::ConstructionUtil::construct(
110799 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110800 AllocBase::mechanism(),
110801 arg_01,
110802 arg_02,
110803 arg_03,
110804 arg_04,
110805 arg_05,
110806 arg_06,
110807 arg_07,
110808 arg_08);
110809 d_type = t_INDEX;
110810}
110811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
110812
110813#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
110814template <class t_HEAD, class t_TAIL_01,
110815 class t_TAIL_02,
110816 class t_TAIL_03>
110817template <size_t t_INDEX,
110818 class t_ARG_01,
110819 class t_ARG_02,
110820 class t_ARG_03,
110821 class t_ARG_04,
110822 class t_ARG_05,
110823 class t_ARG_06,
110824 class t_ARG_07,
110825 class t_ARG_08>
110826void Variant_Base<t_HEAD, t_TAIL_01,
110827 t_TAIL_02,
110828 t_TAIL_03,
110829 BSLS_COMPILERFEATURES_FILLT(15)
110830 >::baseEmplace(const t_ARG_01& arg_01,
110831 const t_ARG_02& arg_02,
110832 const t_ARG_03& arg_03,
110833 const t_ARG_04& arg_04,
110834 const t_ARG_05& arg_05,
110835 const t_ARG_06& arg_06,
110836 const t_ARG_07& arg_07,
110837 const t_ARG_08& arg_08)
110838{
110839 typedef typename bsl::remove_cv<
110841 Alt_Type;
110842
110843 reset();
110844
110845 BloombergLP::bslma::ConstructionUtil::construct(
110846 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110847 AllocBase::mechanism(),
110848 arg_01,
110849 arg_02,
110850 arg_03,
110851 arg_04,
110852 arg_05,
110853 arg_06,
110854 arg_07,
110855 arg_08);
110856 d_type = t_INDEX;
110857}
110858#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
110859
110860#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
110861template <class t_HEAD, class t_TAIL_01,
110862 class t_TAIL_02,
110863 class t_TAIL_03,
110864 class t_TAIL_04>
110865template <size_t t_INDEX,
110866 class t_ARG_01,
110867 class t_ARG_02,
110868 class t_ARG_03,
110869 class t_ARG_04,
110870 class t_ARG_05,
110871 class t_ARG_06,
110872 class t_ARG_07,
110873 class t_ARG_08>
110874void Variant_Base<t_HEAD, t_TAIL_01,
110875 t_TAIL_02,
110876 t_TAIL_03,
110877 t_TAIL_04,
110878 BSLS_COMPILERFEATURES_FILLT(14)
110879 >::baseEmplace(const t_ARG_01& arg_01,
110880 const t_ARG_02& arg_02,
110881 const t_ARG_03& arg_03,
110882 const t_ARG_04& arg_04,
110883 const t_ARG_05& arg_05,
110884 const t_ARG_06& arg_06,
110885 const t_ARG_07& arg_07,
110886 const t_ARG_08& arg_08)
110887{
110888 typedef typename bsl::remove_cv<
110890 Alt_Type;
110891
110892 reset();
110893
110894 BloombergLP::bslma::ConstructionUtil::construct(
110895 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110896 AllocBase::mechanism(),
110897 arg_01,
110898 arg_02,
110899 arg_03,
110900 arg_04,
110901 arg_05,
110902 arg_06,
110903 arg_07,
110904 arg_08);
110905 d_type = t_INDEX;
110906}
110907#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
110908
110909#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
110910template <class t_HEAD, class t_TAIL_01,
110911 class t_TAIL_02,
110912 class t_TAIL_03,
110913 class t_TAIL_04,
110914 class t_TAIL_05>
110915template <size_t t_INDEX,
110916 class t_ARG_01,
110917 class t_ARG_02,
110918 class t_ARG_03,
110919 class t_ARG_04,
110920 class t_ARG_05,
110921 class t_ARG_06,
110922 class t_ARG_07,
110923 class t_ARG_08>
110924void Variant_Base<t_HEAD, t_TAIL_01,
110925 t_TAIL_02,
110926 t_TAIL_03,
110927 t_TAIL_04,
110928 t_TAIL_05,
110929 BSLS_COMPILERFEATURES_FILLT(13)
110930 >::baseEmplace(const t_ARG_01& arg_01,
110931 const t_ARG_02& arg_02,
110932 const t_ARG_03& arg_03,
110933 const t_ARG_04& arg_04,
110934 const t_ARG_05& arg_05,
110935 const t_ARG_06& arg_06,
110936 const t_ARG_07& arg_07,
110937 const t_ARG_08& arg_08)
110938{
110939 typedef typename bsl::remove_cv<
110941 Alt_Type;
110942
110943 reset();
110944
110945 BloombergLP::bslma::ConstructionUtil::construct(
110946 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
110947 AllocBase::mechanism(),
110948 arg_01,
110949 arg_02,
110950 arg_03,
110951 arg_04,
110952 arg_05,
110953 arg_06,
110954 arg_07,
110955 arg_08);
110956 d_type = t_INDEX;
110957}
110958#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
110959
110960#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
110961template <class t_HEAD, class t_TAIL_01,
110962 class t_TAIL_02,
110963 class t_TAIL_03,
110964 class t_TAIL_04,
110965 class t_TAIL_05,
110966 class t_TAIL_06>
110967template <size_t t_INDEX,
110968 class t_ARG_01,
110969 class t_ARG_02,
110970 class t_ARG_03,
110971 class t_ARG_04,
110972 class t_ARG_05,
110973 class t_ARG_06,
110974 class t_ARG_07,
110975 class t_ARG_08>
110976void Variant_Base<t_HEAD, t_TAIL_01,
110977 t_TAIL_02,
110978 t_TAIL_03,
110979 t_TAIL_04,
110980 t_TAIL_05,
110981 t_TAIL_06,
110982 BSLS_COMPILERFEATURES_FILLT(12)
110983 >::baseEmplace(const t_ARG_01& arg_01,
110984 const t_ARG_02& arg_02,
110985 const t_ARG_03& arg_03,
110986 const t_ARG_04& arg_04,
110987 const t_ARG_05& arg_05,
110988 const t_ARG_06& arg_06,
110989 const t_ARG_07& arg_07,
110990 const t_ARG_08& arg_08)
110991{
110992 typedef typename bsl::remove_cv<
110994 Alt_Type;
110995
110996 reset();
110997
110998 BloombergLP::bslma::ConstructionUtil::construct(
110999 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111000 AllocBase::mechanism(),
111001 arg_01,
111002 arg_02,
111003 arg_03,
111004 arg_04,
111005 arg_05,
111006 arg_06,
111007 arg_07,
111008 arg_08);
111009 d_type = t_INDEX;
111010}
111011#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
111012
111013#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
111014template <class t_HEAD, class t_TAIL_01,
111015 class t_TAIL_02,
111016 class t_TAIL_03,
111017 class t_TAIL_04,
111018 class t_TAIL_05,
111019 class t_TAIL_06,
111020 class t_TAIL_07>
111021template <size_t t_INDEX,
111022 class t_ARG_01,
111023 class t_ARG_02,
111024 class t_ARG_03,
111025 class t_ARG_04,
111026 class t_ARG_05,
111027 class t_ARG_06,
111028 class t_ARG_07,
111029 class t_ARG_08>
111030void Variant_Base<t_HEAD, t_TAIL_01,
111031 t_TAIL_02,
111032 t_TAIL_03,
111033 t_TAIL_04,
111034 t_TAIL_05,
111035 t_TAIL_06,
111036 t_TAIL_07,
111037 BSLS_COMPILERFEATURES_FILLT(11)
111038 >::baseEmplace(const t_ARG_01& arg_01,
111039 const t_ARG_02& arg_02,
111040 const t_ARG_03& arg_03,
111041 const t_ARG_04& arg_04,
111042 const t_ARG_05& arg_05,
111043 const t_ARG_06& arg_06,
111044 const t_ARG_07& arg_07,
111045 const t_ARG_08& arg_08)
111046{
111047 typedef typename bsl::remove_cv<
111049 Alt_Type;
111050
111051 reset();
111052
111053 BloombergLP::bslma::ConstructionUtil::construct(
111054 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111055 AllocBase::mechanism(),
111056 arg_01,
111057 arg_02,
111058 arg_03,
111059 arg_04,
111060 arg_05,
111061 arg_06,
111062 arg_07,
111063 arg_08);
111064 d_type = t_INDEX;
111065}
111066#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
111067
111068#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
111069template <class t_HEAD, class t_TAIL_01,
111070 class t_TAIL_02,
111071 class t_TAIL_03,
111072 class t_TAIL_04,
111073 class t_TAIL_05,
111074 class t_TAIL_06,
111075 class t_TAIL_07,
111076 class t_TAIL_08>
111077template <size_t t_INDEX,
111078 class t_ARG_01,
111079 class t_ARG_02,
111080 class t_ARG_03,
111081 class t_ARG_04,
111082 class t_ARG_05,
111083 class t_ARG_06,
111084 class t_ARG_07,
111085 class t_ARG_08>
111086void Variant_Base<t_HEAD, t_TAIL_01,
111087 t_TAIL_02,
111088 t_TAIL_03,
111089 t_TAIL_04,
111090 t_TAIL_05,
111091 t_TAIL_06,
111092 t_TAIL_07,
111093 t_TAIL_08,
111094 BSLS_COMPILERFEATURES_FILLT(10)
111095 >::baseEmplace(const t_ARG_01& arg_01,
111096 const t_ARG_02& arg_02,
111097 const t_ARG_03& arg_03,
111098 const t_ARG_04& arg_04,
111099 const t_ARG_05& arg_05,
111100 const t_ARG_06& arg_06,
111101 const t_ARG_07& arg_07,
111102 const t_ARG_08& arg_08)
111103{
111104 typedef typename bsl::remove_cv<
111106 Alt_Type;
111107
111108 reset();
111109
111110 BloombergLP::bslma::ConstructionUtil::construct(
111111 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111112 AllocBase::mechanism(),
111113 arg_01,
111114 arg_02,
111115 arg_03,
111116 arg_04,
111117 arg_05,
111118 arg_06,
111119 arg_07,
111120 arg_08);
111121 d_type = t_INDEX;
111122}
111123#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
111124
111125#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
111126template <class t_HEAD, class t_TAIL_01,
111127 class t_TAIL_02,
111128 class t_TAIL_03,
111129 class t_TAIL_04,
111130 class t_TAIL_05,
111131 class t_TAIL_06,
111132 class t_TAIL_07,
111133 class t_TAIL_08,
111134 class t_TAIL_09>
111135template <size_t t_INDEX,
111136 class t_ARG_01,
111137 class t_ARG_02,
111138 class t_ARG_03,
111139 class t_ARG_04,
111140 class t_ARG_05,
111141 class t_ARG_06,
111142 class t_ARG_07,
111143 class t_ARG_08>
111144void Variant_Base<t_HEAD, t_TAIL_01,
111145 t_TAIL_02,
111146 t_TAIL_03,
111147 t_TAIL_04,
111148 t_TAIL_05,
111149 t_TAIL_06,
111150 t_TAIL_07,
111151 t_TAIL_08,
111152 t_TAIL_09,
111153 BSLS_COMPILERFEATURES_FILLT( 9)
111154 >::baseEmplace(const t_ARG_01& arg_01,
111155 const t_ARG_02& arg_02,
111156 const t_ARG_03& arg_03,
111157 const t_ARG_04& arg_04,
111158 const t_ARG_05& arg_05,
111159 const t_ARG_06& arg_06,
111160 const t_ARG_07& arg_07,
111161 const t_ARG_08& arg_08)
111162{
111163 typedef typename bsl::remove_cv<
111165 Alt_Type;
111166
111167 reset();
111168
111169 BloombergLP::bslma::ConstructionUtil::construct(
111170 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111171 AllocBase::mechanism(),
111172 arg_01,
111173 arg_02,
111174 arg_03,
111175 arg_04,
111176 arg_05,
111177 arg_06,
111178 arg_07,
111179 arg_08);
111180 d_type = t_INDEX;
111181}
111182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
111183
111184#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
111185template <class t_HEAD, class t_TAIL_01,
111186 class t_TAIL_02,
111187 class t_TAIL_03,
111188 class t_TAIL_04,
111189 class t_TAIL_05,
111190 class t_TAIL_06,
111191 class t_TAIL_07,
111192 class t_TAIL_08,
111193 class t_TAIL_09,
111194 class t_TAIL_10>
111195template <size_t t_INDEX,
111196 class t_ARG_01,
111197 class t_ARG_02,
111198 class t_ARG_03,
111199 class t_ARG_04,
111200 class t_ARG_05,
111201 class t_ARG_06,
111202 class t_ARG_07,
111203 class t_ARG_08>
111204void Variant_Base<t_HEAD, t_TAIL_01,
111205 t_TAIL_02,
111206 t_TAIL_03,
111207 t_TAIL_04,
111208 t_TAIL_05,
111209 t_TAIL_06,
111210 t_TAIL_07,
111211 t_TAIL_08,
111212 t_TAIL_09,
111213 t_TAIL_10,
111214 BSLS_COMPILERFEATURES_FILLT( 8)
111215 >::baseEmplace(const t_ARG_01& arg_01,
111216 const t_ARG_02& arg_02,
111217 const t_ARG_03& arg_03,
111218 const t_ARG_04& arg_04,
111219 const t_ARG_05& arg_05,
111220 const t_ARG_06& arg_06,
111221 const t_ARG_07& arg_07,
111222 const t_ARG_08& arg_08)
111223{
111224 typedef typename bsl::remove_cv<
111226 Alt_Type;
111227
111228 reset();
111229
111230 BloombergLP::bslma::ConstructionUtil::construct(
111231 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111232 AllocBase::mechanism(),
111233 arg_01,
111234 arg_02,
111235 arg_03,
111236 arg_04,
111237 arg_05,
111238 arg_06,
111239 arg_07,
111240 arg_08);
111241 d_type = t_INDEX;
111242}
111243#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
111244
111245#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
111246template <class t_HEAD, class t_TAIL_01,
111247 class t_TAIL_02,
111248 class t_TAIL_03,
111249 class t_TAIL_04,
111250 class t_TAIL_05,
111251 class t_TAIL_06,
111252 class t_TAIL_07,
111253 class t_TAIL_08,
111254 class t_TAIL_09,
111255 class t_TAIL_10,
111256 class t_TAIL_11>
111257template <size_t t_INDEX,
111258 class t_ARG_01,
111259 class t_ARG_02,
111260 class t_ARG_03,
111261 class t_ARG_04,
111262 class t_ARG_05,
111263 class t_ARG_06,
111264 class t_ARG_07,
111265 class t_ARG_08>
111266void Variant_Base<t_HEAD, t_TAIL_01,
111267 t_TAIL_02,
111268 t_TAIL_03,
111269 t_TAIL_04,
111270 t_TAIL_05,
111271 t_TAIL_06,
111272 t_TAIL_07,
111273 t_TAIL_08,
111274 t_TAIL_09,
111275 t_TAIL_10,
111276 t_TAIL_11,
111277 BSLS_COMPILERFEATURES_FILLT( 7)
111278 >::baseEmplace(const t_ARG_01& arg_01,
111279 const t_ARG_02& arg_02,
111280 const t_ARG_03& arg_03,
111281 const t_ARG_04& arg_04,
111282 const t_ARG_05& arg_05,
111283 const t_ARG_06& arg_06,
111284 const t_ARG_07& arg_07,
111285 const t_ARG_08& arg_08)
111286{
111287 typedef typename bsl::remove_cv<
111289 Alt_Type;
111290
111291 reset();
111292
111293 BloombergLP::bslma::ConstructionUtil::construct(
111294 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111295 AllocBase::mechanism(),
111296 arg_01,
111297 arg_02,
111298 arg_03,
111299 arg_04,
111300 arg_05,
111301 arg_06,
111302 arg_07,
111303 arg_08);
111304 d_type = t_INDEX;
111305}
111306#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
111307
111308#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
111309template <class t_HEAD, class t_TAIL_01,
111310 class t_TAIL_02,
111311 class t_TAIL_03,
111312 class t_TAIL_04,
111313 class t_TAIL_05,
111314 class t_TAIL_06,
111315 class t_TAIL_07,
111316 class t_TAIL_08,
111317 class t_TAIL_09,
111318 class t_TAIL_10,
111319 class t_TAIL_11,
111320 class t_TAIL_12>
111321template <size_t t_INDEX,
111322 class t_ARG_01,
111323 class t_ARG_02,
111324 class t_ARG_03,
111325 class t_ARG_04,
111326 class t_ARG_05,
111327 class t_ARG_06,
111328 class t_ARG_07,
111329 class t_ARG_08>
111330void Variant_Base<t_HEAD, t_TAIL_01,
111331 t_TAIL_02,
111332 t_TAIL_03,
111333 t_TAIL_04,
111334 t_TAIL_05,
111335 t_TAIL_06,
111336 t_TAIL_07,
111337 t_TAIL_08,
111338 t_TAIL_09,
111339 t_TAIL_10,
111340 t_TAIL_11,
111341 t_TAIL_12,
111342 BSLS_COMPILERFEATURES_FILLT( 6)
111343 >::baseEmplace(const t_ARG_01& arg_01,
111344 const t_ARG_02& arg_02,
111345 const t_ARG_03& arg_03,
111346 const t_ARG_04& arg_04,
111347 const t_ARG_05& arg_05,
111348 const t_ARG_06& arg_06,
111349 const t_ARG_07& arg_07,
111350 const t_ARG_08& arg_08)
111351{
111352 typedef typename bsl::remove_cv<
111354 Alt_Type;
111355
111356 reset();
111357
111358 BloombergLP::bslma::ConstructionUtil::construct(
111359 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111360 AllocBase::mechanism(),
111361 arg_01,
111362 arg_02,
111363 arg_03,
111364 arg_04,
111365 arg_05,
111366 arg_06,
111367 arg_07,
111368 arg_08);
111369 d_type = t_INDEX;
111370}
111371#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
111372
111373#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
111374template <class t_HEAD, class t_TAIL_01,
111375 class t_TAIL_02,
111376 class t_TAIL_03,
111377 class t_TAIL_04,
111378 class t_TAIL_05,
111379 class t_TAIL_06,
111380 class t_TAIL_07,
111381 class t_TAIL_08,
111382 class t_TAIL_09,
111383 class t_TAIL_10,
111384 class t_TAIL_11,
111385 class t_TAIL_12,
111386 class t_TAIL_13>
111387template <size_t t_INDEX,
111388 class t_ARG_01,
111389 class t_ARG_02,
111390 class t_ARG_03,
111391 class t_ARG_04,
111392 class t_ARG_05,
111393 class t_ARG_06,
111394 class t_ARG_07,
111395 class t_ARG_08>
111396void Variant_Base<t_HEAD, t_TAIL_01,
111397 t_TAIL_02,
111398 t_TAIL_03,
111399 t_TAIL_04,
111400 t_TAIL_05,
111401 t_TAIL_06,
111402 t_TAIL_07,
111403 t_TAIL_08,
111404 t_TAIL_09,
111405 t_TAIL_10,
111406 t_TAIL_11,
111407 t_TAIL_12,
111408 t_TAIL_13,
111409 BSLS_COMPILERFEATURES_FILLT( 5)
111410 >::baseEmplace(const t_ARG_01& arg_01,
111411 const t_ARG_02& arg_02,
111412 const t_ARG_03& arg_03,
111413 const t_ARG_04& arg_04,
111414 const t_ARG_05& arg_05,
111415 const t_ARG_06& arg_06,
111416 const t_ARG_07& arg_07,
111417 const t_ARG_08& arg_08)
111418{
111419 typedef typename bsl::remove_cv<
111421 Alt_Type;
111422
111423 reset();
111424
111425 BloombergLP::bslma::ConstructionUtil::construct(
111426 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111427 AllocBase::mechanism(),
111428 arg_01,
111429 arg_02,
111430 arg_03,
111431 arg_04,
111432 arg_05,
111433 arg_06,
111434 arg_07,
111435 arg_08);
111436 d_type = t_INDEX;
111437}
111438#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
111439
111440#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
111441template <class t_HEAD, class t_TAIL_01,
111442 class t_TAIL_02,
111443 class t_TAIL_03,
111444 class t_TAIL_04,
111445 class t_TAIL_05,
111446 class t_TAIL_06,
111447 class t_TAIL_07,
111448 class t_TAIL_08,
111449 class t_TAIL_09,
111450 class t_TAIL_10,
111451 class t_TAIL_11,
111452 class t_TAIL_12,
111453 class t_TAIL_13,
111454 class t_TAIL_14>
111455template <size_t t_INDEX,
111456 class t_ARG_01,
111457 class t_ARG_02,
111458 class t_ARG_03,
111459 class t_ARG_04,
111460 class t_ARG_05,
111461 class t_ARG_06,
111462 class t_ARG_07,
111463 class t_ARG_08>
111464void Variant_Base<t_HEAD, t_TAIL_01,
111465 t_TAIL_02,
111466 t_TAIL_03,
111467 t_TAIL_04,
111468 t_TAIL_05,
111469 t_TAIL_06,
111470 t_TAIL_07,
111471 t_TAIL_08,
111472 t_TAIL_09,
111473 t_TAIL_10,
111474 t_TAIL_11,
111475 t_TAIL_12,
111476 t_TAIL_13,
111477 t_TAIL_14,
111478 BSLS_COMPILERFEATURES_FILLT( 4)
111479 >::baseEmplace(const t_ARG_01& arg_01,
111480 const t_ARG_02& arg_02,
111481 const t_ARG_03& arg_03,
111482 const t_ARG_04& arg_04,
111483 const t_ARG_05& arg_05,
111484 const t_ARG_06& arg_06,
111485 const t_ARG_07& arg_07,
111486 const t_ARG_08& arg_08)
111487{
111488 typedef typename bsl::remove_cv<
111490 Alt_Type;
111491
111492 reset();
111493
111494 BloombergLP::bslma::ConstructionUtil::construct(
111495 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111496 AllocBase::mechanism(),
111497 arg_01,
111498 arg_02,
111499 arg_03,
111500 arg_04,
111501 arg_05,
111502 arg_06,
111503 arg_07,
111504 arg_08);
111505 d_type = t_INDEX;
111506}
111507#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
111508
111509#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
111510template <class t_HEAD, class t_TAIL_01,
111511 class t_TAIL_02,
111512 class t_TAIL_03,
111513 class t_TAIL_04,
111514 class t_TAIL_05,
111515 class t_TAIL_06,
111516 class t_TAIL_07,
111517 class t_TAIL_08,
111518 class t_TAIL_09,
111519 class t_TAIL_10,
111520 class t_TAIL_11,
111521 class t_TAIL_12,
111522 class t_TAIL_13,
111523 class t_TAIL_14,
111524 class t_TAIL_15>
111525template <size_t t_INDEX,
111526 class t_ARG_01,
111527 class t_ARG_02,
111528 class t_ARG_03,
111529 class t_ARG_04,
111530 class t_ARG_05,
111531 class t_ARG_06,
111532 class t_ARG_07,
111533 class t_ARG_08>
111534void Variant_Base<t_HEAD, t_TAIL_01,
111535 t_TAIL_02,
111536 t_TAIL_03,
111537 t_TAIL_04,
111538 t_TAIL_05,
111539 t_TAIL_06,
111540 t_TAIL_07,
111541 t_TAIL_08,
111542 t_TAIL_09,
111543 t_TAIL_10,
111544 t_TAIL_11,
111545 t_TAIL_12,
111546 t_TAIL_13,
111547 t_TAIL_14,
111548 t_TAIL_15,
111549 BSLS_COMPILERFEATURES_FILLT( 3)
111550 >::baseEmplace(const t_ARG_01& arg_01,
111551 const t_ARG_02& arg_02,
111552 const t_ARG_03& arg_03,
111553 const t_ARG_04& arg_04,
111554 const t_ARG_05& arg_05,
111555 const t_ARG_06& arg_06,
111556 const t_ARG_07& arg_07,
111557 const t_ARG_08& arg_08)
111558{
111559 typedef typename bsl::remove_cv<
111561 Alt_Type;
111562
111563 reset();
111564
111565 BloombergLP::bslma::ConstructionUtil::construct(
111566 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111567 AllocBase::mechanism(),
111568 arg_01,
111569 arg_02,
111570 arg_03,
111571 arg_04,
111572 arg_05,
111573 arg_06,
111574 arg_07,
111575 arg_08);
111576 d_type = t_INDEX;
111577}
111578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
111579
111580#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
111581template <class t_HEAD, class t_TAIL_01,
111582 class t_TAIL_02,
111583 class t_TAIL_03,
111584 class t_TAIL_04,
111585 class t_TAIL_05,
111586 class t_TAIL_06,
111587 class t_TAIL_07,
111588 class t_TAIL_08,
111589 class t_TAIL_09,
111590 class t_TAIL_10,
111591 class t_TAIL_11,
111592 class t_TAIL_12,
111593 class t_TAIL_13,
111594 class t_TAIL_14,
111595 class t_TAIL_15,
111596 class t_TAIL_16>
111597template <size_t t_INDEX,
111598 class t_ARG_01,
111599 class t_ARG_02,
111600 class t_ARG_03,
111601 class t_ARG_04,
111602 class t_ARG_05,
111603 class t_ARG_06,
111604 class t_ARG_07,
111605 class t_ARG_08>
111606void Variant_Base<t_HEAD, t_TAIL_01,
111607 t_TAIL_02,
111608 t_TAIL_03,
111609 t_TAIL_04,
111610 t_TAIL_05,
111611 t_TAIL_06,
111612 t_TAIL_07,
111613 t_TAIL_08,
111614 t_TAIL_09,
111615 t_TAIL_10,
111616 t_TAIL_11,
111617 t_TAIL_12,
111618 t_TAIL_13,
111619 t_TAIL_14,
111620 t_TAIL_15,
111621 t_TAIL_16,
111622 BSLS_COMPILERFEATURES_FILLT( 2)
111623 >::baseEmplace(const t_ARG_01& arg_01,
111624 const t_ARG_02& arg_02,
111625 const t_ARG_03& arg_03,
111626 const t_ARG_04& arg_04,
111627 const t_ARG_05& arg_05,
111628 const t_ARG_06& arg_06,
111629 const t_ARG_07& arg_07,
111630 const t_ARG_08& arg_08)
111631{
111632 typedef typename bsl::remove_cv<
111634 Alt_Type;
111635
111636 reset();
111637
111638 BloombergLP::bslma::ConstructionUtil::construct(
111639 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111640 AllocBase::mechanism(),
111641 arg_01,
111642 arg_02,
111643 arg_03,
111644 arg_04,
111645 arg_05,
111646 arg_06,
111647 arg_07,
111648 arg_08);
111649 d_type = t_INDEX;
111650}
111651#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
111652
111653#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
111654template <class t_HEAD, class t_TAIL_01,
111655 class t_TAIL_02,
111656 class t_TAIL_03,
111657 class t_TAIL_04,
111658 class t_TAIL_05,
111659 class t_TAIL_06,
111660 class t_TAIL_07,
111661 class t_TAIL_08,
111662 class t_TAIL_09,
111663 class t_TAIL_10,
111664 class t_TAIL_11,
111665 class t_TAIL_12,
111666 class t_TAIL_13,
111667 class t_TAIL_14,
111668 class t_TAIL_15,
111669 class t_TAIL_16,
111670 class t_TAIL_17>
111671template <size_t t_INDEX,
111672 class t_ARG_01,
111673 class t_ARG_02,
111674 class t_ARG_03,
111675 class t_ARG_04,
111676 class t_ARG_05,
111677 class t_ARG_06,
111678 class t_ARG_07,
111679 class t_ARG_08>
111680void Variant_Base<t_HEAD, t_TAIL_01,
111681 t_TAIL_02,
111682 t_TAIL_03,
111683 t_TAIL_04,
111684 t_TAIL_05,
111685 t_TAIL_06,
111686 t_TAIL_07,
111687 t_TAIL_08,
111688 t_TAIL_09,
111689 t_TAIL_10,
111690 t_TAIL_11,
111691 t_TAIL_12,
111692 t_TAIL_13,
111693 t_TAIL_14,
111694 t_TAIL_15,
111695 t_TAIL_16,
111696 t_TAIL_17,
111697 BSLS_COMPILERFEATURES_FILLT( 1)
111698 >::baseEmplace(const t_ARG_01& arg_01,
111699 const t_ARG_02& arg_02,
111700 const t_ARG_03& arg_03,
111701 const t_ARG_04& arg_04,
111702 const t_ARG_05& arg_05,
111703 const t_ARG_06& arg_06,
111704 const t_ARG_07& arg_07,
111705 const t_ARG_08& arg_08)
111706{
111707 typedef typename bsl::remove_cv<
111709 Alt_Type;
111710
111711 reset();
111712
111713 BloombergLP::bslma::ConstructionUtil::construct(
111714 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111715 AllocBase::mechanism(),
111716 arg_01,
111717 arg_02,
111718 arg_03,
111719 arg_04,
111720 arg_05,
111721 arg_06,
111722 arg_07,
111723 arg_08);
111724 d_type = t_INDEX;
111725}
111726#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
111727
111728#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
111729template <class t_HEAD, class t_TAIL_01,
111730 class t_TAIL_02,
111731 class t_TAIL_03,
111732 class t_TAIL_04,
111733 class t_TAIL_05,
111734 class t_TAIL_06,
111735 class t_TAIL_07,
111736 class t_TAIL_08,
111737 class t_TAIL_09,
111738 class t_TAIL_10,
111739 class t_TAIL_11,
111740 class t_TAIL_12,
111741 class t_TAIL_13,
111742 class t_TAIL_14,
111743 class t_TAIL_15,
111744 class t_TAIL_16,
111745 class t_TAIL_17,
111746 class t_TAIL_18>
111747template <size_t t_INDEX,
111748 class t_ARG_01,
111749 class t_ARG_02,
111750 class t_ARG_03,
111751 class t_ARG_04,
111752 class t_ARG_05,
111753 class t_ARG_06,
111754 class t_ARG_07,
111755 class t_ARG_08>
111756void Variant_Base<t_HEAD, t_TAIL_01,
111757 t_TAIL_02,
111758 t_TAIL_03,
111759 t_TAIL_04,
111760 t_TAIL_05,
111761 t_TAIL_06,
111762 t_TAIL_07,
111763 t_TAIL_08,
111764 t_TAIL_09,
111765 t_TAIL_10,
111766 t_TAIL_11,
111767 t_TAIL_12,
111768 t_TAIL_13,
111769 t_TAIL_14,
111770 t_TAIL_15,
111771 t_TAIL_16,
111772 t_TAIL_17,
111773 t_TAIL_18,
111774 BSLS_COMPILERFEATURES_FILLT( 0)
111775 >::baseEmplace(const t_ARG_01& arg_01,
111776 const t_ARG_02& arg_02,
111777 const t_ARG_03& arg_03,
111778 const t_ARG_04& arg_04,
111779 const t_ARG_05& arg_05,
111780 const t_ARG_06& arg_06,
111781 const t_ARG_07& arg_07,
111782 const t_ARG_08& arg_08)
111783{
111784 typedef typename bsl::remove_cv<
111786 Alt_Type;
111787
111788 reset();
111789
111790 BloombergLP::bslma::ConstructionUtil::construct(
111791 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111792 AllocBase::mechanism(),
111793 arg_01,
111794 arg_02,
111795 arg_03,
111796 arg_04,
111797 arg_05,
111798 arg_06,
111799 arg_07,
111800 arg_08);
111801 d_type = t_INDEX;
111802}
111803#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
111804
111805
111806#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
111807template <class t_HEAD>
111808template <size_t t_INDEX,
111809 class t_ARG_01,
111810 class t_ARG_02,
111811 class t_ARG_03,
111812 class t_ARG_04,
111813 class t_ARG_05,
111814 class t_ARG_06,
111815 class t_ARG_07,
111816 class t_ARG_08,
111817 class t_ARG_09>
111818void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
111819 >::baseEmplace(const t_ARG_01& arg_01,
111820 const t_ARG_02& arg_02,
111821 const t_ARG_03& arg_03,
111822 const t_ARG_04& arg_04,
111823 const t_ARG_05& arg_05,
111824 const t_ARG_06& arg_06,
111825 const t_ARG_07& arg_07,
111826 const t_ARG_08& arg_08,
111827 const t_ARG_09& arg_09)
111828{
111829 typedef typename bsl::remove_cv<
111831 Alt_Type;
111832
111833 reset();
111834
111835 BloombergLP::bslma::ConstructionUtil::construct(
111836 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111837 AllocBase::mechanism(),
111838 arg_01,
111839 arg_02,
111840 arg_03,
111841 arg_04,
111842 arg_05,
111843 arg_06,
111844 arg_07,
111845 arg_08,
111846 arg_09);
111847 d_type = t_INDEX;
111848}
111849#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
111850
111851#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
111852template <class t_HEAD, class t_TAIL_01>
111853template <size_t t_INDEX,
111854 class t_ARG_01,
111855 class t_ARG_02,
111856 class t_ARG_03,
111857 class t_ARG_04,
111858 class t_ARG_05,
111859 class t_ARG_06,
111860 class t_ARG_07,
111861 class t_ARG_08,
111862 class t_ARG_09>
111863void Variant_Base<t_HEAD, t_TAIL_01,
111864 BSLS_COMPILERFEATURES_FILLT(17)
111865 >::baseEmplace(const t_ARG_01& arg_01,
111866 const t_ARG_02& arg_02,
111867 const t_ARG_03& arg_03,
111868 const t_ARG_04& arg_04,
111869 const t_ARG_05& arg_05,
111870 const t_ARG_06& arg_06,
111871 const t_ARG_07& arg_07,
111872 const t_ARG_08& arg_08,
111873 const t_ARG_09& arg_09)
111874{
111875 typedef typename bsl::remove_cv<
111877 Alt_Type;
111878
111879 reset();
111880
111881 BloombergLP::bslma::ConstructionUtil::construct(
111882 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111883 AllocBase::mechanism(),
111884 arg_01,
111885 arg_02,
111886 arg_03,
111887 arg_04,
111888 arg_05,
111889 arg_06,
111890 arg_07,
111891 arg_08,
111892 arg_09);
111893 d_type = t_INDEX;
111894}
111895#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
111896
111897#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
111898template <class t_HEAD, class t_TAIL_01,
111899 class t_TAIL_02>
111900template <size_t t_INDEX,
111901 class t_ARG_01,
111902 class t_ARG_02,
111903 class t_ARG_03,
111904 class t_ARG_04,
111905 class t_ARG_05,
111906 class t_ARG_06,
111907 class t_ARG_07,
111908 class t_ARG_08,
111909 class t_ARG_09>
111910void Variant_Base<t_HEAD, t_TAIL_01,
111911 t_TAIL_02,
111912 BSLS_COMPILERFEATURES_FILLT(16)
111913 >::baseEmplace(const t_ARG_01& arg_01,
111914 const t_ARG_02& arg_02,
111915 const t_ARG_03& arg_03,
111916 const t_ARG_04& arg_04,
111917 const t_ARG_05& arg_05,
111918 const t_ARG_06& arg_06,
111919 const t_ARG_07& arg_07,
111920 const t_ARG_08& arg_08,
111921 const t_ARG_09& arg_09)
111922{
111923 typedef typename bsl::remove_cv<
111925 Alt_Type;
111926
111927 reset();
111928
111929 BloombergLP::bslma::ConstructionUtil::construct(
111930 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111931 AllocBase::mechanism(),
111932 arg_01,
111933 arg_02,
111934 arg_03,
111935 arg_04,
111936 arg_05,
111937 arg_06,
111938 arg_07,
111939 arg_08,
111940 arg_09);
111941 d_type = t_INDEX;
111942}
111943#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
111944
111945#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
111946template <class t_HEAD, class t_TAIL_01,
111947 class t_TAIL_02,
111948 class t_TAIL_03>
111949template <size_t t_INDEX,
111950 class t_ARG_01,
111951 class t_ARG_02,
111952 class t_ARG_03,
111953 class t_ARG_04,
111954 class t_ARG_05,
111955 class t_ARG_06,
111956 class t_ARG_07,
111957 class t_ARG_08,
111958 class t_ARG_09>
111959void Variant_Base<t_HEAD, t_TAIL_01,
111960 t_TAIL_02,
111961 t_TAIL_03,
111962 BSLS_COMPILERFEATURES_FILLT(15)
111963 >::baseEmplace(const t_ARG_01& arg_01,
111964 const t_ARG_02& arg_02,
111965 const t_ARG_03& arg_03,
111966 const t_ARG_04& arg_04,
111967 const t_ARG_05& arg_05,
111968 const t_ARG_06& arg_06,
111969 const t_ARG_07& arg_07,
111970 const t_ARG_08& arg_08,
111971 const t_ARG_09& arg_09)
111972{
111973 typedef typename bsl::remove_cv<
111975 Alt_Type;
111976
111977 reset();
111978
111979 BloombergLP::bslma::ConstructionUtil::construct(
111980 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
111981 AllocBase::mechanism(),
111982 arg_01,
111983 arg_02,
111984 arg_03,
111985 arg_04,
111986 arg_05,
111987 arg_06,
111988 arg_07,
111989 arg_08,
111990 arg_09);
111991 d_type = t_INDEX;
111992}
111993#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
111994
111995#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
111996template <class t_HEAD, class t_TAIL_01,
111997 class t_TAIL_02,
111998 class t_TAIL_03,
111999 class t_TAIL_04>
112000template <size_t t_INDEX,
112001 class t_ARG_01,
112002 class t_ARG_02,
112003 class t_ARG_03,
112004 class t_ARG_04,
112005 class t_ARG_05,
112006 class t_ARG_06,
112007 class t_ARG_07,
112008 class t_ARG_08,
112009 class t_ARG_09>
112010void Variant_Base<t_HEAD, t_TAIL_01,
112011 t_TAIL_02,
112012 t_TAIL_03,
112013 t_TAIL_04,
112014 BSLS_COMPILERFEATURES_FILLT(14)
112015 >::baseEmplace(const t_ARG_01& arg_01,
112016 const t_ARG_02& arg_02,
112017 const t_ARG_03& arg_03,
112018 const t_ARG_04& arg_04,
112019 const t_ARG_05& arg_05,
112020 const t_ARG_06& arg_06,
112021 const t_ARG_07& arg_07,
112022 const t_ARG_08& arg_08,
112023 const t_ARG_09& arg_09)
112024{
112025 typedef typename bsl::remove_cv<
112027 Alt_Type;
112028
112029 reset();
112030
112031 BloombergLP::bslma::ConstructionUtil::construct(
112032 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112033 AllocBase::mechanism(),
112034 arg_01,
112035 arg_02,
112036 arg_03,
112037 arg_04,
112038 arg_05,
112039 arg_06,
112040 arg_07,
112041 arg_08,
112042 arg_09);
112043 d_type = t_INDEX;
112044}
112045#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
112046
112047#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
112048template <class t_HEAD, class t_TAIL_01,
112049 class t_TAIL_02,
112050 class t_TAIL_03,
112051 class t_TAIL_04,
112052 class t_TAIL_05>
112053template <size_t t_INDEX,
112054 class t_ARG_01,
112055 class t_ARG_02,
112056 class t_ARG_03,
112057 class t_ARG_04,
112058 class t_ARG_05,
112059 class t_ARG_06,
112060 class t_ARG_07,
112061 class t_ARG_08,
112062 class t_ARG_09>
112063void Variant_Base<t_HEAD, t_TAIL_01,
112064 t_TAIL_02,
112065 t_TAIL_03,
112066 t_TAIL_04,
112067 t_TAIL_05,
112068 BSLS_COMPILERFEATURES_FILLT(13)
112069 >::baseEmplace(const t_ARG_01& arg_01,
112070 const t_ARG_02& arg_02,
112071 const t_ARG_03& arg_03,
112072 const t_ARG_04& arg_04,
112073 const t_ARG_05& arg_05,
112074 const t_ARG_06& arg_06,
112075 const t_ARG_07& arg_07,
112076 const t_ARG_08& arg_08,
112077 const t_ARG_09& arg_09)
112078{
112079 typedef typename bsl::remove_cv<
112081 Alt_Type;
112082
112083 reset();
112084
112085 BloombergLP::bslma::ConstructionUtil::construct(
112086 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112087 AllocBase::mechanism(),
112088 arg_01,
112089 arg_02,
112090 arg_03,
112091 arg_04,
112092 arg_05,
112093 arg_06,
112094 arg_07,
112095 arg_08,
112096 arg_09);
112097 d_type = t_INDEX;
112098}
112099#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
112100
112101#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
112102template <class t_HEAD, class t_TAIL_01,
112103 class t_TAIL_02,
112104 class t_TAIL_03,
112105 class t_TAIL_04,
112106 class t_TAIL_05,
112107 class t_TAIL_06>
112108template <size_t t_INDEX,
112109 class t_ARG_01,
112110 class t_ARG_02,
112111 class t_ARG_03,
112112 class t_ARG_04,
112113 class t_ARG_05,
112114 class t_ARG_06,
112115 class t_ARG_07,
112116 class t_ARG_08,
112117 class t_ARG_09>
112118void Variant_Base<t_HEAD, t_TAIL_01,
112119 t_TAIL_02,
112120 t_TAIL_03,
112121 t_TAIL_04,
112122 t_TAIL_05,
112123 t_TAIL_06,
112124 BSLS_COMPILERFEATURES_FILLT(12)
112125 >::baseEmplace(const t_ARG_01& arg_01,
112126 const t_ARG_02& arg_02,
112127 const t_ARG_03& arg_03,
112128 const t_ARG_04& arg_04,
112129 const t_ARG_05& arg_05,
112130 const t_ARG_06& arg_06,
112131 const t_ARG_07& arg_07,
112132 const t_ARG_08& arg_08,
112133 const t_ARG_09& arg_09)
112134{
112135 typedef typename bsl::remove_cv<
112137 Alt_Type;
112138
112139 reset();
112140
112141 BloombergLP::bslma::ConstructionUtil::construct(
112142 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112143 AllocBase::mechanism(),
112144 arg_01,
112145 arg_02,
112146 arg_03,
112147 arg_04,
112148 arg_05,
112149 arg_06,
112150 arg_07,
112151 arg_08,
112152 arg_09);
112153 d_type = t_INDEX;
112154}
112155#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
112156
112157#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
112158template <class t_HEAD, class t_TAIL_01,
112159 class t_TAIL_02,
112160 class t_TAIL_03,
112161 class t_TAIL_04,
112162 class t_TAIL_05,
112163 class t_TAIL_06,
112164 class t_TAIL_07>
112165template <size_t t_INDEX,
112166 class t_ARG_01,
112167 class t_ARG_02,
112168 class t_ARG_03,
112169 class t_ARG_04,
112170 class t_ARG_05,
112171 class t_ARG_06,
112172 class t_ARG_07,
112173 class t_ARG_08,
112174 class t_ARG_09>
112175void Variant_Base<t_HEAD, t_TAIL_01,
112176 t_TAIL_02,
112177 t_TAIL_03,
112178 t_TAIL_04,
112179 t_TAIL_05,
112180 t_TAIL_06,
112181 t_TAIL_07,
112182 BSLS_COMPILERFEATURES_FILLT(11)
112183 >::baseEmplace(const t_ARG_01& arg_01,
112184 const t_ARG_02& arg_02,
112185 const t_ARG_03& arg_03,
112186 const t_ARG_04& arg_04,
112187 const t_ARG_05& arg_05,
112188 const t_ARG_06& arg_06,
112189 const t_ARG_07& arg_07,
112190 const t_ARG_08& arg_08,
112191 const t_ARG_09& arg_09)
112192{
112193 typedef typename bsl::remove_cv<
112195 Alt_Type;
112196
112197 reset();
112198
112199 BloombergLP::bslma::ConstructionUtil::construct(
112200 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112201 AllocBase::mechanism(),
112202 arg_01,
112203 arg_02,
112204 arg_03,
112205 arg_04,
112206 arg_05,
112207 arg_06,
112208 arg_07,
112209 arg_08,
112210 arg_09);
112211 d_type = t_INDEX;
112212}
112213#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
112214
112215#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
112216template <class t_HEAD, class t_TAIL_01,
112217 class t_TAIL_02,
112218 class t_TAIL_03,
112219 class t_TAIL_04,
112220 class t_TAIL_05,
112221 class t_TAIL_06,
112222 class t_TAIL_07,
112223 class t_TAIL_08>
112224template <size_t t_INDEX,
112225 class t_ARG_01,
112226 class t_ARG_02,
112227 class t_ARG_03,
112228 class t_ARG_04,
112229 class t_ARG_05,
112230 class t_ARG_06,
112231 class t_ARG_07,
112232 class t_ARG_08,
112233 class t_ARG_09>
112234void Variant_Base<t_HEAD, t_TAIL_01,
112235 t_TAIL_02,
112236 t_TAIL_03,
112237 t_TAIL_04,
112238 t_TAIL_05,
112239 t_TAIL_06,
112240 t_TAIL_07,
112241 t_TAIL_08,
112242 BSLS_COMPILERFEATURES_FILLT(10)
112243 >::baseEmplace(const t_ARG_01& arg_01,
112244 const t_ARG_02& arg_02,
112245 const t_ARG_03& arg_03,
112246 const t_ARG_04& arg_04,
112247 const t_ARG_05& arg_05,
112248 const t_ARG_06& arg_06,
112249 const t_ARG_07& arg_07,
112250 const t_ARG_08& arg_08,
112251 const t_ARG_09& arg_09)
112252{
112253 typedef typename bsl::remove_cv<
112255 Alt_Type;
112256
112257 reset();
112258
112259 BloombergLP::bslma::ConstructionUtil::construct(
112260 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112261 AllocBase::mechanism(),
112262 arg_01,
112263 arg_02,
112264 arg_03,
112265 arg_04,
112266 arg_05,
112267 arg_06,
112268 arg_07,
112269 arg_08,
112270 arg_09);
112271 d_type = t_INDEX;
112272}
112273#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
112274
112275#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
112276template <class t_HEAD, class t_TAIL_01,
112277 class t_TAIL_02,
112278 class t_TAIL_03,
112279 class t_TAIL_04,
112280 class t_TAIL_05,
112281 class t_TAIL_06,
112282 class t_TAIL_07,
112283 class t_TAIL_08,
112284 class t_TAIL_09>
112285template <size_t t_INDEX,
112286 class t_ARG_01,
112287 class t_ARG_02,
112288 class t_ARG_03,
112289 class t_ARG_04,
112290 class t_ARG_05,
112291 class t_ARG_06,
112292 class t_ARG_07,
112293 class t_ARG_08,
112294 class t_ARG_09>
112295void Variant_Base<t_HEAD, t_TAIL_01,
112296 t_TAIL_02,
112297 t_TAIL_03,
112298 t_TAIL_04,
112299 t_TAIL_05,
112300 t_TAIL_06,
112301 t_TAIL_07,
112302 t_TAIL_08,
112303 t_TAIL_09,
112304 BSLS_COMPILERFEATURES_FILLT( 9)
112305 >::baseEmplace(const t_ARG_01& arg_01,
112306 const t_ARG_02& arg_02,
112307 const t_ARG_03& arg_03,
112308 const t_ARG_04& arg_04,
112309 const t_ARG_05& arg_05,
112310 const t_ARG_06& arg_06,
112311 const t_ARG_07& arg_07,
112312 const t_ARG_08& arg_08,
112313 const t_ARG_09& arg_09)
112314{
112315 typedef typename bsl::remove_cv<
112317 Alt_Type;
112318
112319 reset();
112320
112321 BloombergLP::bslma::ConstructionUtil::construct(
112322 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112323 AllocBase::mechanism(),
112324 arg_01,
112325 arg_02,
112326 arg_03,
112327 arg_04,
112328 arg_05,
112329 arg_06,
112330 arg_07,
112331 arg_08,
112332 arg_09);
112333 d_type = t_INDEX;
112334}
112335#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
112336
112337#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
112338template <class t_HEAD, class t_TAIL_01,
112339 class t_TAIL_02,
112340 class t_TAIL_03,
112341 class t_TAIL_04,
112342 class t_TAIL_05,
112343 class t_TAIL_06,
112344 class t_TAIL_07,
112345 class t_TAIL_08,
112346 class t_TAIL_09,
112347 class t_TAIL_10>
112348template <size_t t_INDEX,
112349 class t_ARG_01,
112350 class t_ARG_02,
112351 class t_ARG_03,
112352 class t_ARG_04,
112353 class t_ARG_05,
112354 class t_ARG_06,
112355 class t_ARG_07,
112356 class t_ARG_08,
112357 class t_ARG_09>
112358void Variant_Base<t_HEAD, t_TAIL_01,
112359 t_TAIL_02,
112360 t_TAIL_03,
112361 t_TAIL_04,
112362 t_TAIL_05,
112363 t_TAIL_06,
112364 t_TAIL_07,
112365 t_TAIL_08,
112366 t_TAIL_09,
112367 t_TAIL_10,
112368 BSLS_COMPILERFEATURES_FILLT( 8)
112369 >::baseEmplace(const t_ARG_01& arg_01,
112370 const t_ARG_02& arg_02,
112371 const t_ARG_03& arg_03,
112372 const t_ARG_04& arg_04,
112373 const t_ARG_05& arg_05,
112374 const t_ARG_06& arg_06,
112375 const t_ARG_07& arg_07,
112376 const t_ARG_08& arg_08,
112377 const t_ARG_09& arg_09)
112378{
112379 typedef typename bsl::remove_cv<
112381 Alt_Type;
112382
112383 reset();
112384
112385 BloombergLP::bslma::ConstructionUtil::construct(
112386 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112387 AllocBase::mechanism(),
112388 arg_01,
112389 arg_02,
112390 arg_03,
112391 arg_04,
112392 arg_05,
112393 arg_06,
112394 arg_07,
112395 arg_08,
112396 arg_09);
112397 d_type = t_INDEX;
112398}
112399#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
112400
112401#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
112402template <class t_HEAD, class t_TAIL_01,
112403 class t_TAIL_02,
112404 class t_TAIL_03,
112405 class t_TAIL_04,
112406 class t_TAIL_05,
112407 class t_TAIL_06,
112408 class t_TAIL_07,
112409 class t_TAIL_08,
112410 class t_TAIL_09,
112411 class t_TAIL_10,
112412 class t_TAIL_11>
112413template <size_t t_INDEX,
112414 class t_ARG_01,
112415 class t_ARG_02,
112416 class t_ARG_03,
112417 class t_ARG_04,
112418 class t_ARG_05,
112419 class t_ARG_06,
112420 class t_ARG_07,
112421 class t_ARG_08,
112422 class t_ARG_09>
112423void Variant_Base<t_HEAD, t_TAIL_01,
112424 t_TAIL_02,
112425 t_TAIL_03,
112426 t_TAIL_04,
112427 t_TAIL_05,
112428 t_TAIL_06,
112429 t_TAIL_07,
112430 t_TAIL_08,
112431 t_TAIL_09,
112432 t_TAIL_10,
112433 t_TAIL_11,
112434 BSLS_COMPILERFEATURES_FILLT( 7)
112435 >::baseEmplace(const t_ARG_01& arg_01,
112436 const t_ARG_02& arg_02,
112437 const t_ARG_03& arg_03,
112438 const t_ARG_04& arg_04,
112439 const t_ARG_05& arg_05,
112440 const t_ARG_06& arg_06,
112441 const t_ARG_07& arg_07,
112442 const t_ARG_08& arg_08,
112443 const t_ARG_09& arg_09)
112444{
112445 typedef typename bsl::remove_cv<
112447 Alt_Type;
112448
112449 reset();
112450
112451 BloombergLP::bslma::ConstructionUtil::construct(
112452 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112453 AllocBase::mechanism(),
112454 arg_01,
112455 arg_02,
112456 arg_03,
112457 arg_04,
112458 arg_05,
112459 arg_06,
112460 arg_07,
112461 arg_08,
112462 arg_09);
112463 d_type = t_INDEX;
112464}
112465#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
112466
112467#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
112468template <class t_HEAD, class t_TAIL_01,
112469 class t_TAIL_02,
112470 class t_TAIL_03,
112471 class t_TAIL_04,
112472 class t_TAIL_05,
112473 class t_TAIL_06,
112474 class t_TAIL_07,
112475 class t_TAIL_08,
112476 class t_TAIL_09,
112477 class t_TAIL_10,
112478 class t_TAIL_11,
112479 class t_TAIL_12>
112480template <size_t t_INDEX,
112481 class t_ARG_01,
112482 class t_ARG_02,
112483 class t_ARG_03,
112484 class t_ARG_04,
112485 class t_ARG_05,
112486 class t_ARG_06,
112487 class t_ARG_07,
112488 class t_ARG_08,
112489 class t_ARG_09>
112490void Variant_Base<t_HEAD, t_TAIL_01,
112491 t_TAIL_02,
112492 t_TAIL_03,
112493 t_TAIL_04,
112494 t_TAIL_05,
112495 t_TAIL_06,
112496 t_TAIL_07,
112497 t_TAIL_08,
112498 t_TAIL_09,
112499 t_TAIL_10,
112500 t_TAIL_11,
112501 t_TAIL_12,
112502 BSLS_COMPILERFEATURES_FILLT( 6)
112503 >::baseEmplace(const t_ARG_01& arg_01,
112504 const t_ARG_02& arg_02,
112505 const t_ARG_03& arg_03,
112506 const t_ARG_04& arg_04,
112507 const t_ARG_05& arg_05,
112508 const t_ARG_06& arg_06,
112509 const t_ARG_07& arg_07,
112510 const t_ARG_08& arg_08,
112511 const t_ARG_09& arg_09)
112512{
112513 typedef typename bsl::remove_cv<
112515 Alt_Type;
112516
112517 reset();
112518
112519 BloombergLP::bslma::ConstructionUtil::construct(
112520 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112521 AllocBase::mechanism(),
112522 arg_01,
112523 arg_02,
112524 arg_03,
112525 arg_04,
112526 arg_05,
112527 arg_06,
112528 arg_07,
112529 arg_08,
112530 arg_09);
112531 d_type = t_INDEX;
112532}
112533#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
112534
112535#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
112536template <class t_HEAD, class t_TAIL_01,
112537 class t_TAIL_02,
112538 class t_TAIL_03,
112539 class t_TAIL_04,
112540 class t_TAIL_05,
112541 class t_TAIL_06,
112542 class t_TAIL_07,
112543 class t_TAIL_08,
112544 class t_TAIL_09,
112545 class t_TAIL_10,
112546 class t_TAIL_11,
112547 class t_TAIL_12,
112548 class t_TAIL_13>
112549template <size_t t_INDEX,
112550 class t_ARG_01,
112551 class t_ARG_02,
112552 class t_ARG_03,
112553 class t_ARG_04,
112554 class t_ARG_05,
112555 class t_ARG_06,
112556 class t_ARG_07,
112557 class t_ARG_08,
112558 class t_ARG_09>
112559void Variant_Base<t_HEAD, t_TAIL_01,
112560 t_TAIL_02,
112561 t_TAIL_03,
112562 t_TAIL_04,
112563 t_TAIL_05,
112564 t_TAIL_06,
112565 t_TAIL_07,
112566 t_TAIL_08,
112567 t_TAIL_09,
112568 t_TAIL_10,
112569 t_TAIL_11,
112570 t_TAIL_12,
112571 t_TAIL_13,
112572 BSLS_COMPILERFEATURES_FILLT( 5)
112573 >::baseEmplace(const t_ARG_01& arg_01,
112574 const t_ARG_02& arg_02,
112575 const t_ARG_03& arg_03,
112576 const t_ARG_04& arg_04,
112577 const t_ARG_05& arg_05,
112578 const t_ARG_06& arg_06,
112579 const t_ARG_07& arg_07,
112580 const t_ARG_08& arg_08,
112581 const t_ARG_09& arg_09)
112582{
112583 typedef typename bsl::remove_cv<
112585 Alt_Type;
112586
112587 reset();
112588
112589 BloombergLP::bslma::ConstructionUtil::construct(
112590 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112591 AllocBase::mechanism(),
112592 arg_01,
112593 arg_02,
112594 arg_03,
112595 arg_04,
112596 arg_05,
112597 arg_06,
112598 arg_07,
112599 arg_08,
112600 arg_09);
112601 d_type = t_INDEX;
112602}
112603#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
112604
112605#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
112606template <class t_HEAD, class t_TAIL_01,
112607 class t_TAIL_02,
112608 class t_TAIL_03,
112609 class t_TAIL_04,
112610 class t_TAIL_05,
112611 class t_TAIL_06,
112612 class t_TAIL_07,
112613 class t_TAIL_08,
112614 class t_TAIL_09,
112615 class t_TAIL_10,
112616 class t_TAIL_11,
112617 class t_TAIL_12,
112618 class t_TAIL_13,
112619 class t_TAIL_14>
112620template <size_t t_INDEX,
112621 class t_ARG_01,
112622 class t_ARG_02,
112623 class t_ARG_03,
112624 class t_ARG_04,
112625 class t_ARG_05,
112626 class t_ARG_06,
112627 class t_ARG_07,
112628 class t_ARG_08,
112629 class t_ARG_09>
112630void Variant_Base<t_HEAD, t_TAIL_01,
112631 t_TAIL_02,
112632 t_TAIL_03,
112633 t_TAIL_04,
112634 t_TAIL_05,
112635 t_TAIL_06,
112636 t_TAIL_07,
112637 t_TAIL_08,
112638 t_TAIL_09,
112639 t_TAIL_10,
112640 t_TAIL_11,
112641 t_TAIL_12,
112642 t_TAIL_13,
112643 t_TAIL_14,
112644 BSLS_COMPILERFEATURES_FILLT( 4)
112645 >::baseEmplace(const t_ARG_01& arg_01,
112646 const t_ARG_02& arg_02,
112647 const t_ARG_03& arg_03,
112648 const t_ARG_04& arg_04,
112649 const t_ARG_05& arg_05,
112650 const t_ARG_06& arg_06,
112651 const t_ARG_07& arg_07,
112652 const t_ARG_08& arg_08,
112653 const t_ARG_09& arg_09)
112654{
112655 typedef typename bsl::remove_cv<
112657 Alt_Type;
112658
112659 reset();
112660
112661 BloombergLP::bslma::ConstructionUtil::construct(
112662 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112663 AllocBase::mechanism(),
112664 arg_01,
112665 arg_02,
112666 arg_03,
112667 arg_04,
112668 arg_05,
112669 arg_06,
112670 arg_07,
112671 arg_08,
112672 arg_09);
112673 d_type = t_INDEX;
112674}
112675#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
112676
112677#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
112678template <class t_HEAD, class t_TAIL_01,
112679 class t_TAIL_02,
112680 class t_TAIL_03,
112681 class t_TAIL_04,
112682 class t_TAIL_05,
112683 class t_TAIL_06,
112684 class t_TAIL_07,
112685 class t_TAIL_08,
112686 class t_TAIL_09,
112687 class t_TAIL_10,
112688 class t_TAIL_11,
112689 class t_TAIL_12,
112690 class t_TAIL_13,
112691 class t_TAIL_14,
112692 class t_TAIL_15>
112693template <size_t t_INDEX,
112694 class t_ARG_01,
112695 class t_ARG_02,
112696 class t_ARG_03,
112697 class t_ARG_04,
112698 class t_ARG_05,
112699 class t_ARG_06,
112700 class t_ARG_07,
112701 class t_ARG_08,
112702 class t_ARG_09>
112703void Variant_Base<t_HEAD, t_TAIL_01,
112704 t_TAIL_02,
112705 t_TAIL_03,
112706 t_TAIL_04,
112707 t_TAIL_05,
112708 t_TAIL_06,
112709 t_TAIL_07,
112710 t_TAIL_08,
112711 t_TAIL_09,
112712 t_TAIL_10,
112713 t_TAIL_11,
112714 t_TAIL_12,
112715 t_TAIL_13,
112716 t_TAIL_14,
112717 t_TAIL_15,
112718 BSLS_COMPILERFEATURES_FILLT( 3)
112719 >::baseEmplace(const t_ARG_01& arg_01,
112720 const t_ARG_02& arg_02,
112721 const t_ARG_03& arg_03,
112722 const t_ARG_04& arg_04,
112723 const t_ARG_05& arg_05,
112724 const t_ARG_06& arg_06,
112725 const t_ARG_07& arg_07,
112726 const t_ARG_08& arg_08,
112727 const t_ARG_09& arg_09)
112728{
112729 typedef typename bsl::remove_cv<
112731 Alt_Type;
112732
112733 reset();
112734
112735 BloombergLP::bslma::ConstructionUtil::construct(
112736 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112737 AllocBase::mechanism(),
112738 arg_01,
112739 arg_02,
112740 arg_03,
112741 arg_04,
112742 arg_05,
112743 arg_06,
112744 arg_07,
112745 arg_08,
112746 arg_09);
112747 d_type = t_INDEX;
112748}
112749#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
112750
112751#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
112752template <class t_HEAD, class t_TAIL_01,
112753 class t_TAIL_02,
112754 class t_TAIL_03,
112755 class t_TAIL_04,
112756 class t_TAIL_05,
112757 class t_TAIL_06,
112758 class t_TAIL_07,
112759 class t_TAIL_08,
112760 class t_TAIL_09,
112761 class t_TAIL_10,
112762 class t_TAIL_11,
112763 class t_TAIL_12,
112764 class t_TAIL_13,
112765 class t_TAIL_14,
112766 class t_TAIL_15,
112767 class t_TAIL_16>
112768template <size_t t_INDEX,
112769 class t_ARG_01,
112770 class t_ARG_02,
112771 class t_ARG_03,
112772 class t_ARG_04,
112773 class t_ARG_05,
112774 class t_ARG_06,
112775 class t_ARG_07,
112776 class t_ARG_08,
112777 class t_ARG_09>
112778void Variant_Base<t_HEAD, t_TAIL_01,
112779 t_TAIL_02,
112780 t_TAIL_03,
112781 t_TAIL_04,
112782 t_TAIL_05,
112783 t_TAIL_06,
112784 t_TAIL_07,
112785 t_TAIL_08,
112786 t_TAIL_09,
112787 t_TAIL_10,
112788 t_TAIL_11,
112789 t_TAIL_12,
112790 t_TAIL_13,
112791 t_TAIL_14,
112792 t_TAIL_15,
112793 t_TAIL_16,
112794 BSLS_COMPILERFEATURES_FILLT( 2)
112795 >::baseEmplace(const t_ARG_01& arg_01,
112796 const t_ARG_02& arg_02,
112797 const t_ARG_03& arg_03,
112798 const t_ARG_04& arg_04,
112799 const t_ARG_05& arg_05,
112800 const t_ARG_06& arg_06,
112801 const t_ARG_07& arg_07,
112802 const t_ARG_08& arg_08,
112803 const t_ARG_09& arg_09)
112804{
112805 typedef typename bsl::remove_cv<
112807 Alt_Type;
112808
112809 reset();
112810
112811 BloombergLP::bslma::ConstructionUtil::construct(
112812 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112813 AllocBase::mechanism(),
112814 arg_01,
112815 arg_02,
112816 arg_03,
112817 arg_04,
112818 arg_05,
112819 arg_06,
112820 arg_07,
112821 arg_08,
112822 arg_09);
112823 d_type = t_INDEX;
112824}
112825#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
112826
112827#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
112828template <class t_HEAD, class t_TAIL_01,
112829 class t_TAIL_02,
112830 class t_TAIL_03,
112831 class t_TAIL_04,
112832 class t_TAIL_05,
112833 class t_TAIL_06,
112834 class t_TAIL_07,
112835 class t_TAIL_08,
112836 class t_TAIL_09,
112837 class t_TAIL_10,
112838 class t_TAIL_11,
112839 class t_TAIL_12,
112840 class t_TAIL_13,
112841 class t_TAIL_14,
112842 class t_TAIL_15,
112843 class t_TAIL_16,
112844 class t_TAIL_17>
112845template <size_t t_INDEX,
112846 class t_ARG_01,
112847 class t_ARG_02,
112848 class t_ARG_03,
112849 class t_ARG_04,
112850 class t_ARG_05,
112851 class t_ARG_06,
112852 class t_ARG_07,
112853 class t_ARG_08,
112854 class t_ARG_09>
112855void Variant_Base<t_HEAD, t_TAIL_01,
112856 t_TAIL_02,
112857 t_TAIL_03,
112858 t_TAIL_04,
112859 t_TAIL_05,
112860 t_TAIL_06,
112861 t_TAIL_07,
112862 t_TAIL_08,
112863 t_TAIL_09,
112864 t_TAIL_10,
112865 t_TAIL_11,
112866 t_TAIL_12,
112867 t_TAIL_13,
112868 t_TAIL_14,
112869 t_TAIL_15,
112870 t_TAIL_16,
112871 t_TAIL_17,
112872 BSLS_COMPILERFEATURES_FILLT( 1)
112873 >::baseEmplace(const t_ARG_01& arg_01,
112874 const t_ARG_02& arg_02,
112875 const t_ARG_03& arg_03,
112876 const t_ARG_04& arg_04,
112877 const t_ARG_05& arg_05,
112878 const t_ARG_06& arg_06,
112879 const t_ARG_07& arg_07,
112880 const t_ARG_08& arg_08,
112881 const t_ARG_09& arg_09)
112882{
112883 typedef typename bsl::remove_cv<
112885 Alt_Type;
112886
112887 reset();
112888
112889 BloombergLP::bslma::ConstructionUtil::construct(
112890 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112891 AllocBase::mechanism(),
112892 arg_01,
112893 arg_02,
112894 arg_03,
112895 arg_04,
112896 arg_05,
112897 arg_06,
112898 arg_07,
112899 arg_08,
112900 arg_09);
112901 d_type = t_INDEX;
112902}
112903#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
112904
112905#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
112906template <class t_HEAD, class t_TAIL_01,
112907 class t_TAIL_02,
112908 class t_TAIL_03,
112909 class t_TAIL_04,
112910 class t_TAIL_05,
112911 class t_TAIL_06,
112912 class t_TAIL_07,
112913 class t_TAIL_08,
112914 class t_TAIL_09,
112915 class t_TAIL_10,
112916 class t_TAIL_11,
112917 class t_TAIL_12,
112918 class t_TAIL_13,
112919 class t_TAIL_14,
112920 class t_TAIL_15,
112921 class t_TAIL_16,
112922 class t_TAIL_17,
112923 class t_TAIL_18>
112924template <size_t t_INDEX,
112925 class t_ARG_01,
112926 class t_ARG_02,
112927 class t_ARG_03,
112928 class t_ARG_04,
112929 class t_ARG_05,
112930 class t_ARG_06,
112931 class t_ARG_07,
112932 class t_ARG_08,
112933 class t_ARG_09>
112934void Variant_Base<t_HEAD, t_TAIL_01,
112935 t_TAIL_02,
112936 t_TAIL_03,
112937 t_TAIL_04,
112938 t_TAIL_05,
112939 t_TAIL_06,
112940 t_TAIL_07,
112941 t_TAIL_08,
112942 t_TAIL_09,
112943 t_TAIL_10,
112944 t_TAIL_11,
112945 t_TAIL_12,
112946 t_TAIL_13,
112947 t_TAIL_14,
112948 t_TAIL_15,
112949 t_TAIL_16,
112950 t_TAIL_17,
112951 t_TAIL_18,
112952 BSLS_COMPILERFEATURES_FILLT( 0)
112953 >::baseEmplace(const t_ARG_01& arg_01,
112954 const t_ARG_02& arg_02,
112955 const t_ARG_03& arg_03,
112956 const t_ARG_04& arg_04,
112957 const t_ARG_05& arg_05,
112958 const t_ARG_06& arg_06,
112959 const t_ARG_07& arg_07,
112960 const t_ARG_08& arg_08,
112961 const t_ARG_09& arg_09)
112962{
112963 typedef typename bsl::remove_cv<
112965 Alt_Type;
112966
112967 reset();
112968
112969 BloombergLP::bslma::ConstructionUtil::construct(
112970 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
112971 AllocBase::mechanism(),
112972 arg_01,
112973 arg_02,
112974 arg_03,
112975 arg_04,
112976 arg_05,
112977 arg_06,
112978 arg_07,
112979 arg_08,
112980 arg_09);
112981 d_type = t_INDEX;
112982}
112983#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
112984
112985
112986#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
112987template <class t_HEAD>
112988template <size_t t_INDEX,
112989 class t_ARG_01,
112990 class t_ARG_02,
112991 class t_ARG_03,
112992 class t_ARG_04,
112993 class t_ARG_05,
112994 class t_ARG_06,
112995 class t_ARG_07,
112996 class t_ARG_08,
112997 class t_ARG_09,
112998 class t_ARG_10>
112999void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
113000 >::baseEmplace(const t_ARG_01& arg_01,
113001 const t_ARG_02& arg_02,
113002 const t_ARG_03& arg_03,
113003 const t_ARG_04& arg_04,
113004 const t_ARG_05& arg_05,
113005 const t_ARG_06& arg_06,
113006 const t_ARG_07& arg_07,
113007 const t_ARG_08& arg_08,
113008 const t_ARG_09& arg_09,
113009 const t_ARG_10& arg_10)
113010{
113011 typedef typename bsl::remove_cv<
113013 Alt_Type;
113014
113015 reset();
113016
113017 BloombergLP::bslma::ConstructionUtil::construct(
113018 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113019 AllocBase::mechanism(),
113020 arg_01,
113021 arg_02,
113022 arg_03,
113023 arg_04,
113024 arg_05,
113025 arg_06,
113026 arg_07,
113027 arg_08,
113028 arg_09,
113029 arg_10);
113030 d_type = t_INDEX;
113031}
113032#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 0
113033
113034#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
113035template <class t_HEAD, class t_TAIL_01>
113036template <size_t t_INDEX,
113037 class t_ARG_01,
113038 class t_ARG_02,
113039 class t_ARG_03,
113040 class t_ARG_04,
113041 class t_ARG_05,
113042 class t_ARG_06,
113043 class t_ARG_07,
113044 class t_ARG_08,
113045 class t_ARG_09,
113046 class t_ARG_10>
113047void Variant_Base<t_HEAD, t_TAIL_01,
113048 BSLS_COMPILERFEATURES_FILLT(17)
113049 >::baseEmplace(const t_ARG_01& arg_01,
113050 const t_ARG_02& arg_02,
113051 const t_ARG_03& arg_03,
113052 const t_ARG_04& arg_04,
113053 const t_ARG_05& arg_05,
113054 const t_ARG_06& arg_06,
113055 const t_ARG_07& arg_07,
113056 const t_ARG_08& arg_08,
113057 const t_ARG_09& arg_09,
113058 const t_ARG_10& arg_10)
113059{
113060 typedef typename bsl::remove_cv<
113062 Alt_Type;
113063
113064 reset();
113065
113066 BloombergLP::bslma::ConstructionUtil::construct(
113067 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113068 AllocBase::mechanism(),
113069 arg_01,
113070 arg_02,
113071 arg_03,
113072 arg_04,
113073 arg_05,
113074 arg_06,
113075 arg_07,
113076 arg_08,
113077 arg_09,
113078 arg_10);
113079 d_type = t_INDEX;
113080}
113081#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 1
113082
113083#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
113084template <class t_HEAD, class t_TAIL_01,
113085 class t_TAIL_02>
113086template <size_t t_INDEX,
113087 class t_ARG_01,
113088 class t_ARG_02,
113089 class t_ARG_03,
113090 class t_ARG_04,
113091 class t_ARG_05,
113092 class t_ARG_06,
113093 class t_ARG_07,
113094 class t_ARG_08,
113095 class t_ARG_09,
113096 class t_ARG_10>
113097void Variant_Base<t_HEAD, t_TAIL_01,
113098 t_TAIL_02,
113099 BSLS_COMPILERFEATURES_FILLT(16)
113100 >::baseEmplace(const t_ARG_01& arg_01,
113101 const t_ARG_02& arg_02,
113102 const t_ARG_03& arg_03,
113103 const t_ARG_04& arg_04,
113104 const t_ARG_05& arg_05,
113105 const t_ARG_06& arg_06,
113106 const t_ARG_07& arg_07,
113107 const t_ARG_08& arg_08,
113108 const t_ARG_09& arg_09,
113109 const t_ARG_10& arg_10)
113110{
113111 typedef typename bsl::remove_cv<
113113 Alt_Type;
113114
113115 reset();
113116
113117 BloombergLP::bslma::ConstructionUtil::construct(
113118 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113119 AllocBase::mechanism(),
113120 arg_01,
113121 arg_02,
113122 arg_03,
113123 arg_04,
113124 arg_05,
113125 arg_06,
113126 arg_07,
113127 arg_08,
113128 arg_09,
113129 arg_10);
113130 d_type = t_INDEX;
113131}
113132#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 2
113133
113134#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
113135template <class t_HEAD, class t_TAIL_01,
113136 class t_TAIL_02,
113137 class t_TAIL_03>
113138template <size_t t_INDEX,
113139 class t_ARG_01,
113140 class t_ARG_02,
113141 class t_ARG_03,
113142 class t_ARG_04,
113143 class t_ARG_05,
113144 class t_ARG_06,
113145 class t_ARG_07,
113146 class t_ARG_08,
113147 class t_ARG_09,
113148 class t_ARG_10>
113149void Variant_Base<t_HEAD, t_TAIL_01,
113150 t_TAIL_02,
113151 t_TAIL_03,
113152 BSLS_COMPILERFEATURES_FILLT(15)
113153 >::baseEmplace(const t_ARG_01& arg_01,
113154 const t_ARG_02& arg_02,
113155 const t_ARG_03& arg_03,
113156 const t_ARG_04& arg_04,
113157 const t_ARG_05& arg_05,
113158 const t_ARG_06& arg_06,
113159 const t_ARG_07& arg_07,
113160 const t_ARG_08& arg_08,
113161 const t_ARG_09& arg_09,
113162 const t_ARG_10& arg_10)
113163{
113164 typedef typename bsl::remove_cv<
113166 Alt_Type;
113167
113168 reset();
113169
113170 BloombergLP::bslma::ConstructionUtil::construct(
113171 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113172 AllocBase::mechanism(),
113173 arg_01,
113174 arg_02,
113175 arg_03,
113176 arg_04,
113177 arg_05,
113178 arg_06,
113179 arg_07,
113180 arg_08,
113181 arg_09,
113182 arg_10);
113183 d_type = t_INDEX;
113184}
113185#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 3
113186
113187#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
113188template <class t_HEAD, class t_TAIL_01,
113189 class t_TAIL_02,
113190 class t_TAIL_03,
113191 class t_TAIL_04>
113192template <size_t t_INDEX,
113193 class t_ARG_01,
113194 class t_ARG_02,
113195 class t_ARG_03,
113196 class t_ARG_04,
113197 class t_ARG_05,
113198 class t_ARG_06,
113199 class t_ARG_07,
113200 class t_ARG_08,
113201 class t_ARG_09,
113202 class t_ARG_10>
113203void Variant_Base<t_HEAD, t_TAIL_01,
113204 t_TAIL_02,
113205 t_TAIL_03,
113206 t_TAIL_04,
113207 BSLS_COMPILERFEATURES_FILLT(14)
113208 >::baseEmplace(const t_ARG_01& arg_01,
113209 const t_ARG_02& arg_02,
113210 const t_ARG_03& arg_03,
113211 const t_ARG_04& arg_04,
113212 const t_ARG_05& arg_05,
113213 const t_ARG_06& arg_06,
113214 const t_ARG_07& arg_07,
113215 const t_ARG_08& arg_08,
113216 const t_ARG_09& arg_09,
113217 const t_ARG_10& arg_10)
113218{
113219 typedef typename bsl::remove_cv<
113221 Alt_Type;
113222
113223 reset();
113224
113225 BloombergLP::bslma::ConstructionUtil::construct(
113226 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113227 AllocBase::mechanism(),
113228 arg_01,
113229 arg_02,
113230 arg_03,
113231 arg_04,
113232 arg_05,
113233 arg_06,
113234 arg_07,
113235 arg_08,
113236 arg_09,
113237 arg_10);
113238 d_type = t_INDEX;
113239}
113240#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 4
113241
113242#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
113243template <class t_HEAD, class t_TAIL_01,
113244 class t_TAIL_02,
113245 class t_TAIL_03,
113246 class t_TAIL_04,
113247 class t_TAIL_05>
113248template <size_t t_INDEX,
113249 class t_ARG_01,
113250 class t_ARG_02,
113251 class t_ARG_03,
113252 class t_ARG_04,
113253 class t_ARG_05,
113254 class t_ARG_06,
113255 class t_ARG_07,
113256 class t_ARG_08,
113257 class t_ARG_09,
113258 class t_ARG_10>
113259void Variant_Base<t_HEAD, t_TAIL_01,
113260 t_TAIL_02,
113261 t_TAIL_03,
113262 t_TAIL_04,
113263 t_TAIL_05,
113264 BSLS_COMPILERFEATURES_FILLT(13)
113265 >::baseEmplace(const t_ARG_01& arg_01,
113266 const t_ARG_02& arg_02,
113267 const t_ARG_03& arg_03,
113268 const t_ARG_04& arg_04,
113269 const t_ARG_05& arg_05,
113270 const t_ARG_06& arg_06,
113271 const t_ARG_07& arg_07,
113272 const t_ARG_08& arg_08,
113273 const t_ARG_09& arg_09,
113274 const t_ARG_10& arg_10)
113275{
113276 typedef typename bsl::remove_cv<
113278 Alt_Type;
113279
113280 reset();
113281
113282 BloombergLP::bslma::ConstructionUtil::construct(
113283 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113284 AllocBase::mechanism(),
113285 arg_01,
113286 arg_02,
113287 arg_03,
113288 arg_04,
113289 arg_05,
113290 arg_06,
113291 arg_07,
113292 arg_08,
113293 arg_09,
113294 arg_10);
113295 d_type = t_INDEX;
113296}
113297#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 5
113298
113299#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
113300template <class t_HEAD, class t_TAIL_01,
113301 class t_TAIL_02,
113302 class t_TAIL_03,
113303 class t_TAIL_04,
113304 class t_TAIL_05,
113305 class t_TAIL_06>
113306template <size_t t_INDEX,
113307 class t_ARG_01,
113308 class t_ARG_02,
113309 class t_ARG_03,
113310 class t_ARG_04,
113311 class t_ARG_05,
113312 class t_ARG_06,
113313 class t_ARG_07,
113314 class t_ARG_08,
113315 class t_ARG_09,
113316 class t_ARG_10>
113317void Variant_Base<t_HEAD, t_TAIL_01,
113318 t_TAIL_02,
113319 t_TAIL_03,
113320 t_TAIL_04,
113321 t_TAIL_05,
113322 t_TAIL_06,
113323 BSLS_COMPILERFEATURES_FILLT(12)
113324 >::baseEmplace(const t_ARG_01& arg_01,
113325 const t_ARG_02& arg_02,
113326 const t_ARG_03& arg_03,
113327 const t_ARG_04& arg_04,
113328 const t_ARG_05& arg_05,
113329 const t_ARG_06& arg_06,
113330 const t_ARG_07& arg_07,
113331 const t_ARG_08& arg_08,
113332 const t_ARG_09& arg_09,
113333 const t_ARG_10& arg_10)
113334{
113335 typedef typename bsl::remove_cv<
113337 Alt_Type;
113338
113339 reset();
113340
113341 BloombergLP::bslma::ConstructionUtil::construct(
113342 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113343 AllocBase::mechanism(),
113344 arg_01,
113345 arg_02,
113346 arg_03,
113347 arg_04,
113348 arg_05,
113349 arg_06,
113350 arg_07,
113351 arg_08,
113352 arg_09,
113353 arg_10);
113354 d_type = t_INDEX;
113355}
113356#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 6
113357
113358#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
113359template <class t_HEAD, class t_TAIL_01,
113360 class t_TAIL_02,
113361 class t_TAIL_03,
113362 class t_TAIL_04,
113363 class t_TAIL_05,
113364 class t_TAIL_06,
113365 class t_TAIL_07>
113366template <size_t t_INDEX,
113367 class t_ARG_01,
113368 class t_ARG_02,
113369 class t_ARG_03,
113370 class t_ARG_04,
113371 class t_ARG_05,
113372 class t_ARG_06,
113373 class t_ARG_07,
113374 class t_ARG_08,
113375 class t_ARG_09,
113376 class t_ARG_10>
113377void Variant_Base<t_HEAD, t_TAIL_01,
113378 t_TAIL_02,
113379 t_TAIL_03,
113380 t_TAIL_04,
113381 t_TAIL_05,
113382 t_TAIL_06,
113383 t_TAIL_07,
113384 BSLS_COMPILERFEATURES_FILLT(11)
113385 >::baseEmplace(const t_ARG_01& arg_01,
113386 const t_ARG_02& arg_02,
113387 const t_ARG_03& arg_03,
113388 const t_ARG_04& arg_04,
113389 const t_ARG_05& arg_05,
113390 const t_ARG_06& arg_06,
113391 const t_ARG_07& arg_07,
113392 const t_ARG_08& arg_08,
113393 const t_ARG_09& arg_09,
113394 const t_ARG_10& arg_10)
113395{
113396 typedef typename bsl::remove_cv<
113398 Alt_Type;
113399
113400 reset();
113401
113402 BloombergLP::bslma::ConstructionUtil::construct(
113403 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113404 AllocBase::mechanism(),
113405 arg_01,
113406 arg_02,
113407 arg_03,
113408 arg_04,
113409 arg_05,
113410 arg_06,
113411 arg_07,
113412 arg_08,
113413 arg_09,
113414 arg_10);
113415 d_type = t_INDEX;
113416}
113417#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 7
113418
113419#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
113420template <class t_HEAD, class t_TAIL_01,
113421 class t_TAIL_02,
113422 class t_TAIL_03,
113423 class t_TAIL_04,
113424 class t_TAIL_05,
113425 class t_TAIL_06,
113426 class t_TAIL_07,
113427 class t_TAIL_08>
113428template <size_t t_INDEX,
113429 class t_ARG_01,
113430 class t_ARG_02,
113431 class t_ARG_03,
113432 class t_ARG_04,
113433 class t_ARG_05,
113434 class t_ARG_06,
113435 class t_ARG_07,
113436 class t_ARG_08,
113437 class t_ARG_09,
113438 class t_ARG_10>
113439void Variant_Base<t_HEAD, t_TAIL_01,
113440 t_TAIL_02,
113441 t_TAIL_03,
113442 t_TAIL_04,
113443 t_TAIL_05,
113444 t_TAIL_06,
113445 t_TAIL_07,
113446 t_TAIL_08,
113447 BSLS_COMPILERFEATURES_FILLT(10)
113448 >::baseEmplace(const t_ARG_01& arg_01,
113449 const t_ARG_02& arg_02,
113450 const t_ARG_03& arg_03,
113451 const t_ARG_04& arg_04,
113452 const t_ARG_05& arg_05,
113453 const t_ARG_06& arg_06,
113454 const t_ARG_07& arg_07,
113455 const t_ARG_08& arg_08,
113456 const t_ARG_09& arg_09,
113457 const t_ARG_10& arg_10)
113458{
113459 typedef typename bsl::remove_cv<
113461 Alt_Type;
113462
113463 reset();
113464
113465 BloombergLP::bslma::ConstructionUtil::construct(
113466 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113467 AllocBase::mechanism(),
113468 arg_01,
113469 arg_02,
113470 arg_03,
113471 arg_04,
113472 arg_05,
113473 arg_06,
113474 arg_07,
113475 arg_08,
113476 arg_09,
113477 arg_10);
113478 d_type = t_INDEX;
113479}
113480#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 8
113481
113482#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
113483template <class t_HEAD, class t_TAIL_01,
113484 class t_TAIL_02,
113485 class t_TAIL_03,
113486 class t_TAIL_04,
113487 class t_TAIL_05,
113488 class t_TAIL_06,
113489 class t_TAIL_07,
113490 class t_TAIL_08,
113491 class t_TAIL_09>
113492template <size_t t_INDEX,
113493 class t_ARG_01,
113494 class t_ARG_02,
113495 class t_ARG_03,
113496 class t_ARG_04,
113497 class t_ARG_05,
113498 class t_ARG_06,
113499 class t_ARG_07,
113500 class t_ARG_08,
113501 class t_ARG_09,
113502 class t_ARG_10>
113503void Variant_Base<t_HEAD, t_TAIL_01,
113504 t_TAIL_02,
113505 t_TAIL_03,
113506 t_TAIL_04,
113507 t_TAIL_05,
113508 t_TAIL_06,
113509 t_TAIL_07,
113510 t_TAIL_08,
113511 t_TAIL_09,
113512 BSLS_COMPILERFEATURES_FILLT( 9)
113513 >::baseEmplace(const t_ARG_01& arg_01,
113514 const t_ARG_02& arg_02,
113515 const t_ARG_03& arg_03,
113516 const t_ARG_04& arg_04,
113517 const t_ARG_05& arg_05,
113518 const t_ARG_06& arg_06,
113519 const t_ARG_07& arg_07,
113520 const t_ARG_08& arg_08,
113521 const t_ARG_09& arg_09,
113522 const t_ARG_10& arg_10)
113523{
113524 typedef typename bsl::remove_cv<
113526 Alt_Type;
113527
113528 reset();
113529
113530 BloombergLP::bslma::ConstructionUtil::construct(
113531 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113532 AllocBase::mechanism(),
113533 arg_01,
113534 arg_02,
113535 arg_03,
113536 arg_04,
113537 arg_05,
113538 arg_06,
113539 arg_07,
113540 arg_08,
113541 arg_09,
113542 arg_10);
113543 d_type = t_INDEX;
113544}
113545#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 9
113546
113547#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
113548template <class t_HEAD, class t_TAIL_01,
113549 class t_TAIL_02,
113550 class t_TAIL_03,
113551 class t_TAIL_04,
113552 class t_TAIL_05,
113553 class t_TAIL_06,
113554 class t_TAIL_07,
113555 class t_TAIL_08,
113556 class t_TAIL_09,
113557 class t_TAIL_10>
113558template <size_t t_INDEX,
113559 class t_ARG_01,
113560 class t_ARG_02,
113561 class t_ARG_03,
113562 class t_ARG_04,
113563 class t_ARG_05,
113564 class t_ARG_06,
113565 class t_ARG_07,
113566 class t_ARG_08,
113567 class t_ARG_09,
113568 class t_ARG_10>
113569void Variant_Base<t_HEAD, t_TAIL_01,
113570 t_TAIL_02,
113571 t_TAIL_03,
113572 t_TAIL_04,
113573 t_TAIL_05,
113574 t_TAIL_06,
113575 t_TAIL_07,
113576 t_TAIL_08,
113577 t_TAIL_09,
113578 t_TAIL_10,
113579 BSLS_COMPILERFEATURES_FILLT( 8)
113580 >::baseEmplace(const t_ARG_01& arg_01,
113581 const t_ARG_02& arg_02,
113582 const t_ARG_03& arg_03,
113583 const t_ARG_04& arg_04,
113584 const t_ARG_05& arg_05,
113585 const t_ARG_06& arg_06,
113586 const t_ARG_07& arg_07,
113587 const t_ARG_08& arg_08,
113588 const t_ARG_09& arg_09,
113589 const t_ARG_10& arg_10)
113590{
113591 typedef typename bsl::remove_cv<
113593 Alt_Type;
113594
113595 reset();
113596
113597 BloombergLP::bslma::ConstructionUtil::construct(
113598 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113599 AllocBase::mechanism(),
113600 arg_01,
113601 arg_02,
113602 arg_03,
113603 arg_04,
113604 arg_05,
113605 arg_06,
113606 arg_07,
113607 arg_08,
113608 arg_09,
113609 arg_10);
113610 d_type = t_INDEX;
113611}
113612#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 10
113613
113614#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
113615template <class t_HEAD, class t_TAIL_01,
113616 class t_TAIL_02,
113617 class t_TAIL_03,
113618 class t_TAIL_04,
113619 class t_TAIL_05,
113620 class t_TAIL_06,
113621 class t_TAIL_07,
113622 class t_TAIL_08,
113623 class t_TAIL_09,
113624 class t_TAIL_10,
113625 class t_TAIL_11>
113626template <size_t t_INDEX,
113627 class t_ARG_01,
113628 class t_ARG_02,
113629 class t_ARG_03,
113630 class t_ARG_04,
113631 class t_ARG_05,
113632 class t_ARG_06,
113633 class t_ARG_07,
113634 class t_ARG_08,
113635 class t_ARG_09,
113636 class t_ARG_10>
113637void Variant_Base<t_HEAD, t_TAIL_01,
113638 t_TAIL_02,
113639 t_TAIL_03,
113640 t_TAIL_04,
113641 t_TAIL_05,
113642 t_TAIL_06,
113643 t_TAIL_07,
113644 t_TAIL_08,
113645 t_TAIL_09,
113646 t_TAIL_10,
113647 t_TAIL_11,
113648 BSLS_COMPILERFEATURES_FILLT( 7)
113649 >::baseEmplace(const t_ARG_01& arg_01,
113650 const t_ARG_02& arg_02,
113651 const t_ARG_03& arg_03,
113652 const t_ARG_04& arg_04,
113653 const t_ARG_05& arg_05,
113654 const t_ARG_06& arg_06,
113655 const t_ARG_07& arg_07,
113656 const t_ARG_08& arg_08,
113657 const t_ARG_09& arg_09,
113658 const t_ARG_10& arg_10)
113659{
113660 typedef typename bsl::remove_cv<
113662 Alt_Type;
113663
113664 reset();
113665
113666 BloombergLP::bslma::ConstructionUtil::construct(
113667 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113668 AllocBase::mechanism(),
113669 arg_01,
113670 arg_02,
113671 arg_03,
113672 arg_04,
113673 arg_05,
113674 arg_06,
113675 arg_07,
113676 arg_08,
113677 arg_09,
113678 arg_10);
113679 d_type = t_INDEX;
113680}
113681#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 11
113682
113683#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
113684template <class t_HEAD, class t_TAIL_01,
113685 class t_TAIL_02,
113686 class t_TAIL_03,
113687 class t_TAIL_04,
113688 class t_TAIL_05,
113689 class t_TAIL_06,
113690 class t_TAIL_07,
113691 class t_TAIL_08,
113692 class t_TAIL_09,
113693 class t_TAIL_10,
113694 class t_TAIL_11,
113695 class t_TAIL_12>
113696template <size_t t_INDEX,
113697 class t_ARG_01,
113698 class t_ARG_02,
113699 class t_ARG_03,
113700 class t_ARG_04,
113701 class t_ARG_05,
113702 class t_ARG_06,
113703 class t_ARG_07,
113704 class t_ARG_08,
113705 class t_ARG_09,
113706 class t_ARG_10>
113707void Variant_Base<t_HEAD, t_TAIL_01,
113708 t_TAIL_02,
113709 t_TAIL_03,
113710 t_TAIL_04,
113711 t_TAIL_05,
113712 t_TAIL_06,
113713 t_TAIL_07,
113714 t_TAIL_08,
113715 t_TAIL_09,
113716 t_TAIL_10,
113717 t_TAIL_11,
113718 t_TAIL_12,
113719 BSLS_COMPILERFEATURES_FILLT( 6)
113720 >::baseEmplace(const t_ARG_01& arg_01,
113721 const t_ARG_02& arg_02,
113722 const t_ARG_03& arg_03,
113723 const t_ARG_04& arg_04,
113724 const t_ARG_05& arg_05,
113725 const t_ARG_06& arg_06,
113726 const t_ARG_07& arg_07,
113727 const t_ARG_08& arg_08,
113728 const t_ARG_09& arg_09,
113729 const t_ARG_10& arg_10)
113730{
113731 typedef typename bsl::remove_cv<
113733 Alt_Type;
113734
113735 reset();
113736
113737 BloombergLP::bslma::ConstructionUtil::construct(
113738 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113739 AllocBase::mechanism(),
113740 arg_01,
113741 arg_02,
113742 arg_03,
113743 arg_04,
113744 arg_05,
113745 arg_06,
113746 arg_07,
113747 arg_08,
113748 arg_09,
113749 arg_10);
113750 d_type = t_INDEX;
113751}
113752#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 12
113753
113754#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
113755template <class t_HEAD, class t_TAIL_01,
113756 class t_TAIL_02,
113757 class t_TAIL_03,
113758 class t_TAIL_04,
113759 class t_TAIL_05,
113760 class t_TAIL_06,
113761 class t_TAIL_07,
113762 class t_TAIL_08,
113763 class t_TAIL_09,
113764 class t_TAIL_10,
113765 class t_TAIL_11,
113766 class t_TAIL_12,
113767 class t_TAIL_13>
113768template <size_t t_INDEX,
113769 class t_ARG_01,
113770 class t_ARG_02,
113771 class t_ARG_03,
113772 class t_ARG_04,
113773 class t_ARG_05,
113774 class t_ARG_06,
113775 class t_ARG_07,
113776 class t_ARG_08,
113777 class t_ARG_09,
113778 class t_ARG_10>
113779void Variant_Base<t_HEAD, t_TAIL_01,
113780 t_TAIL_02,
113781 t_TAIL_03,
113782 t_TAIL_04,
113783 t_TAIL_05,
113784 t_TAIL_06,
113785 t_TAIL_07,
113786 t_TAIL_08,
113787 t_TAIL_09,
113788 t_TAIL_10,
113789 t_TAIL_11,
113790 t_TAIL_12,
113791 t_TAIL_13,
113792 BSLS_COMPILERFEATURES_FILLT( 5)
113793 >::baseEmplace(const t_ARG_01& arg_01,
113794 const t_ARG_02& arg_02,
113795 const t_ARG_03& arg_03,
113796 const t_ARG_04& arg_04,
113797 const t_ARG_05& arg_05,
113798 const t_ARG_06& arg_06,
113799 const t_ARG_07& arg_07,
113800 const t_ARG_08& arg_08,
113801 const t_ARG_09& arg_09,
113802 const t_ARG_10& arg_10)
113803{
113804 typedef typename bsl::remove_cv<
113806 Alt_Type;
113807
113808 reset();
113809
113810 BloombergLP::bslma::ConstructionUtil::construct(
113811 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113812 AllocBase::mechanism(),
113813 arg_01,
113814 arg_02,
113815 arg_03,
113816 arg_04,
113817 arg_05,
113818 arg_06,
113819 arg_07,
113820 arg_08,
113821 arg_09,
113822 arg_10);
113823 d_type = t_INDEX;
113824}
113825#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 13
113826
113827#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
113828template <class t_HEAD, class t_TAIL_01,
113829 class t_TAIL_02,
113830 class t_TAIL_03,
113831 class t_TAIL_04,
113832 class t_TAIL_05,
113833 class t_TAIL_06,
113834 class t_TAIL_07,
113835 class t_TAIL_08,
113836 class t_TAIL_09,
113837 class t_TAIL_10,
113838 class t_TAIL_11,
113839 class t_TAIL_12,
113840 class t_TAIL_13,
113841 class t_TAIL_14>
113842template <size_t t_INDEX,
113843 class t_ARG_01,
113844 class t_ARG_02,
113845 class t_ARG_03,
113846 class t_ARG_04,
113847 class t_ARG_05,
113848 class t_ARG_06,
113849 class t_ARG_07,
113850 class t_ARG_08,
113851 class t_ARG_09,
113852 class t_ARG_10>
113853void Variant_Base<t_HEAD, t_TAIL_01,
113854 t_TAIL_02,
113855 t_TAIL_03,
113856 t_TAIL_04,
113857 t_TAIL_05,
113858 t_TAIL_06,
113859 t_TAIL_07,
113860 t_TAIL_08,
113861 t_TAIL_09,
113862 t_TAIL_10,
113863 t_TAIL_11,
113864 t_TAIL_12,
113865 t_TAIL_13,
113866 t_TAIL_14,
113867 BSLS_COMPILERFEATURES_FILLT( 4)
113868 >::baseEmplace(const t_ARG_01& arg_01,
113869 const t_ARG_02& arg_02,
113870 const t_ARG_03& arg_03,
113871 const t_ARG_04& arg_04,
113872 const t_ARG_05& arg_05,
113873 const t_ARG_06& arg_06,
113874 const t_ARG_07& arg_07,
113875 const t_ARG_08& arg_08,
113876 const t_ARG_09& arg_09,
113877 const t_ARG_10& arg_10)
113878{
113879 typedef typename bsl::remove_cv<
113881 Alt_Type;
113882
113883 reset();
113884
113885 BloombergLP::bslma::ConstructionUtil::construct(
113886 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113887 AllocBase::mechanism(),
113888 arg_01,
113889 arg_02,
113890 arg_03,
113891 arg_04,
113892 arg_05,
113893 arg_06,
113894 arg_07,
113895 arg_08,
113896 arg_09,
113897 arg_10);
113898 d_type = t_INDEX;
113899}
113900#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 14
113901
113902#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
113903template <class t_HEAD, class t_TAIL_01,
113904 class t_TAIL_02,
113905 class t_TAIL_03,
113906 class t_TAIL_04,
113907 class t_TAIL_05,
113908 class t_TAIL_06,
113909 class t_TAIL_07,
113910 class t_TAIL_08,
113911 class t_TAIL_09,
113912 class t_TAIL_10,
113913 class t_TAIL_11,
113914 class t_TAIL_12,
113915 class t_TAIL_13,
113916 class t_TAIL_14,
113917 class t_TAIL_15>
113918template <size_t t_INDEX,
113919 class t_ARG_01,
113920 class t_ARG_02,
113921 class t_ARG_03,
113922 class t_ARG_04,
113923 class t_ARG_05,
113924 class t_ARG_06,
113925 class t_ARG_07,
113926 class t_ARG_08,
113927 class t_ARG_09,
113928 class t_ARG_10>
113929void Variant_Base<t_HEAD, t_TAIL_01,
113930 t_TAIL_02,
113931 t_TAIL_03,
113932 t_TAIL_04,
113933 t_TAIL_05,
113934 t_TAIL_06,
113935 t_TAIL_07,
113936 t_TAIL_08,
113937 t_TAIL_09,
113938 t_TAIL_10,
113939 t_TAIL_11,
113940 t_TAIL_12,
113941 t_TAIL_13,
113942 t_TAIL_14,
113943 t_TAIL_15,
113944 BSLS_COMPILERFEATURES_FILLT( 3)
113945 >::baseEmplace(const t_ARG_01& arg_01,
113946 const t_ARG_02& arg_02,
113947 const t_ARG_03& arg_03,
113948 const t_ARG_04& arg_04,
113949 const t_ARG_05& arg_05,
113950 const t_ARG_06& arg_06,
113951 const t_ARG_07& arg_07,
113952 const t_ARG_08& arg_08,
113953 const t_ARG_09& arg_09,
113954 const t_ARG_10& arg_10)
113955{
113956 typedef typename bsl::remove_cv<
113958 Alt_Type;
113959
113960 reset();
113961
113962 BloombergLP::bslma::ConstructionUtil::construct(
113963 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
113964 AllocBase::mechanism(),
113965 arg_01,
113966 arg_02,
113967 arg_03,
113968 arg_04,
113969 arg_05,
113970 arg_06,
113971 arg_07,
113972 arg_08,
113973 arg_09,
113974 arg_10);
113975 d_type = t_INDEX;
113976}
113977#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 15
113978
113979#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
113980template <class t_HEAD, class t_TAIL_01,
113981 class t_TAIL_02,
113982 class t_TAIL_03,
113983 class t_TAIL_04,
113984 class t_TAIL_05,
113985 class t_TAIL_06,
113986 class t_TAIL_07,
113987 class t_TAIL_08,
113988 class t_TAIL_09,
113989 class t_TAIL_10,
113990 class t_TAIL_11,
113991 class t_TAIL_12,
113992 class t_TAIL_13,
113993 class t_TAIL_14,
113994 class t_TAIL_15,
113995 class t_TAIL_16>
113996template <size_t t_INDEX,
113997 class t_ARG_01,
113998 class t_ARG_02,
113999 class t_ARG_03,
114000 class t_ARG_04,
114001 class t_ARG_05,
114002 class t_ARG_06,
114003 class t_ARG_07,
114004 class t_ARG_08,
114005 class t_ARG_09,
114006 class t_ARG_10>
114007void Variant_Base<t_HEAD, t_TAIL_01,
114008 t_TAIL_02,
114009 t_TAIL_03,
114010 t_TAIL_04,
114011 t_TAIL_05,
114012 t_TAIL_06,
114013 t_TAIL_07,
114014 t_TAIL_08,
114015 t_TAIL_09,
114016 t_TAIL_10,
114017 t_TAIL_11,
114018 t_TAIL_12,
114019 t_TAIL_13,
114020 t_TAIL_14,
114021 t_TAIL_15,
114022 t_TAIL_16,
114023 BSLS_COMPILERFEATURES_FILLT( 2)
114024 >::baseEmplace(const t_ARG_01& arg_01,
114025 const t_ARG_02& arg_02,
114026 const t_ARG_03& arg_03,
114027 const t_ARG_04& arg_04,
114028 const t_ARG_05& arg_05,
114029 const t_ARG_06& arg_06,
114030 const t_ARG_07& arg_07,
114031 const t_ARG_08& arg_08,
114032 const t_ARG_09& arg_09,
114033 const t_ARG_10& arg_10)
114034{
114035 typedef typename bsl::remove_cv<
114037 Alt_Type;
114038
114039 reset();
114040
114041 BloombergLP::bslma::ConstructionUtil::construct(
114042 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114043 AllocBase::mechanism(),
114044 arg_01,
114045 arg_02,
114046 arg_03,
114047 arg_04,
114048 arg_05,
114049 arg_06,
114050 arg_07,
114051 arg_08,
114052 arg_09,
114053 arg_10);
114054 d_type = t_INDEX;
114055}
114056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 16
114057
114058#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
114059template <class t_HEAD, class t_TAIL_01,
114060 class t_TAIL_02,
114061 class t_TAIL_03,
114062 class t_TAIL_04,
114063 class t_TAIL_05,
114064 class t_TAIL_06,
114065 class t_TAIL_07,
114066 class t_TAIL_08,
114067 class t_TAIL_09,
114068 class t_TAIL_10,
114069 class t_TAIL_11,
114070 class t_TAIL_12,
114071 class t_TAIL_13,
114072 class t_TAIL_14,
114073 class t_TAIL_15,
114074 class t_TAIL_16,
114075 class t_TAIL_17>
114076template <size_t t_INDEX,
114077 class t_ARG_01,
114078 class t_ARG_02,
114079 class t_ARG_03,
114080 class t_ARG_04,
114081 class t_ARG_05,
114082 class t_ARG_06,
114083 class t_ARG_07,
114084 class t_ARG_08,
114085 class t_ARG_09,
114086 class t_ARG_10>
114087void Variant_Base<t_HEAD, t_TAIL_01,
114088 t_TAIL_02,
114089 t_TAIL_03,
114090 t_TAIL_04,
114091 t_TAIL_05,
114092 t_TAIL_06,
114093 t_TAIL_07,
114094 t_TAIL_08,
114095 t_TAIL_09,
114096 t_TAIL_10,
114097 t_TAIL_11,
114098 t_TAIL_12,
114099 t_TAIL_13,
114100 t_TAIL_14,
114101 t_TAIL_15,
114102 t_TAIL_16,
114103 t_TAIL_17,
114104 BSLS_COMPILERFEATURES_FILLT( 1)
114105 >::baseEmplace(const t_ARG_01& arg_01,
114106 const t_ARG_02& arg_02,
114107 const t_ARG_03& arg_03,
114108 const t_ARG_04& arg_04,
114109 const t_ARG_05& arg_05,
114110 const t_ARG_06& arg_06,
114111 const t_ARG_07& arg_07,
114112 const t_ARG_08& arg_08,
114113 const t_ARG_09& arg_09,
114114 const t_ARG_10& arg_10)
114115{
114116 typedef typename bsl::remove_cv<
114118 Alt_Type;
114119
114120 reset();
114121
114122 BloombergLP::bslma::ConstructionUtil::construct(
114123 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114124 AllocBase::mechanism(),
114125 arg_01,
114126 arg_02,
114127 arg_03,
114128 arg_04,
114129 arg_05,
114130 arg_06,
114131 arg_07,
114132 arg_08,
114133 arg_09,
114134 arg_10);
114135 d_type = t_INDEX;
114136}
114137#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 17
114138
114139#if BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
114140template <class t_HEAD, class t_TAIL_01,
114141 class t_TAIL_02,
114142 class t_TAIL_03,
114143 class t_TAIL_04,
114144 class t_TAIL_05,
114145 class t_TAIL_06,
114146 class t_TAIL_07,
114147 class t_TAIL_08,
114148 class t_TAIL_09,
114149 class t_TAIL_10,
114150 class t_TAIL_11,
114151 class t_TAIL_12,
114152 class t_TAIL_13,
114153 class t_TAIL_14,
114154 class t_TAIL_15,
114155 class t_TAIL_16,
114156 class t_TAIL_17,
114157 class t_TAIL_18>
114158template <size_t t_INDEX,
114159 class t_ARG_01,
114160 class t_ARG_02,
114161 class t_ARG_03,
114162 class t_ARG_04,
114163 class t_ARG_05,
114164 class t_ARG_06,
114165 class t_ARG_07,
114166 class t_ARG_08,
114167 class t_ARG_09,
114168 class t_ARG_10>
114169void Variant_Base<t_HEAD, t_TAIL_01,
114170 t_TAIL_02,
114171 t_TAIL_03,
114172 t_TAIL_04,
114173 t_TAIL_05,
114174 t_TAIL_06,
114175 t_TAIL_07,
114176 t_TAIL_08,
114177 t_TAIL_09,
114178 t_TAIL_10,
114179 t_TAIL_11,
114180 t_TAIL_12,
114181 t_TAIL_13,
114182 t_TAIL_14,
114183 t_TAIL_15,
114184 t_TAIL_16,
114185 t_TAIL_17,
114186 t_TAIL_18,
114187 BSLS_COMPILERFEATURES_FILLT( 0)
114188 >::baseEmplace(const t_ARG_01& arg_01,
114189 const t_ARG_02& arg_02,
114190 const t_ARG_03& arg_03,
114191 const t_ARG_04& arg_04,
114192 const t_ARG_05& arg_05,
114193 const t_ARG_06& arg_06,
114194 const t_ARG_07& arg_07,
114195 const t_ARG_08& arg_08,
114196 const t_ARG_09& arg_09,
114197 const t_ARG_10& arg_10)
114198{
114199 typedef typename bsl::remove_cv<
114201 Alt_Type;
114202
114203 reset();
114204
114205 BloombergLP::bslma::ConstructionUtil::construct(
114206 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114207 AllocBase::mechanism(),
114208 arg_01,
114209 arg_02,
114210 arg_03,
114211 arg_04,
114212 arg_05,
114213 arg_06,
114214 arg_07,
114215 arg_08,
114216 arg_09,
114217 arg_10);
114218 d_type = t_INDEX;
114219}
114220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_N >= 18
114221
114222#else
114223// The generated code below is a workaround for the absence of perfect
114224// forwarding in some compilers.
114225template <class t_HEAD, class... t_TAIL>
114226template <size_t t_INDEX>
114227void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace()
114228{
114229 typedef typename bsl::remove_cv<
114231 Alt_Type;
114232
114233 reset();
114234
114235 BloombergLP::bslma::ConstructionUtil::construct(
114236 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114237 AllocBase::mechanism());
114238 d_type = t_INDEX;
114239}
114240
114241template <class t_HEAD, class... t_TAIL>
114242template <size_t t_INDEX, class t_ARG_01>
114243void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01)
114244{
114245 typedef typename bsl::remove_cv<
114247 Alt_Type;
114248
114249 reset();
114250
114251 BloombergLP::bslma::ConstructionUtil::construct(
114252 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114253 AllocBase::mechanism(),
114254 arg_01);
114255 d_type = t_INDEX;
114256}
114257
114258template <class t_HEAD, class... t_TAIL>
114259template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
114260void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114261 const t_ARG_02& arg_02)
114262{
114263 typedef typename bsl::remove_cv<
114265 Alt_Type;
114266
114267 reset();
114268
114269 BloombergLP::bslma::ConstructionUtil::construct(
114270 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114271 AllocBase::mechanism(),
114272 arg_01,
114273 arg_02);
114274 d_type = t_INDEX;
114275}
114276
114277template <class t_HEAD, class... t_TAIL>
114278template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
114279void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114280 const t_ARG_02& arg_02,
114281 const t_ARG_03& arg_03)
114282{
114283 typedef typename bsl::remove_cv<
114285 Alt_Type;
114286
114287 reset();
114288
114289 BloombergLP::bslma::ConstructionUtil::construct(
114290 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114291 AllocBase::mechanism(),
114292 arg_01,
114293 arg_02,
114294 arg_03);
114295 d_type = t_INDEX;
114296}
114297
114298template <class t_HEAD, class... t_TAIL>
114299template <size_t t_INDEX,
114300 class t_ARG_01,
114301 class t_ARG_02,
114302 class t_ARG_03,
114303 class t_ARG_04>
114304void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114305 const t_ARG_02& arg_02,
114306 const t_ARG_03& arg_03,
114307 const t_ARG_04& arg_04)
114308{
114309 typedef typename bsl::remove_cv<
114311 Alt_Type;
114312
114313 reset();
114314
114315 BloombergLP::bslma::ConstructionUtil::construct(
114316 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114317 AllocBase::mechanism(),
114318 arg_01,
114319 arg_02,
114320 arg_03,
114321 arg_04);
114322 d_type = t_INDEX;
114323}
114324
114325template <class t_HEAD, class... t_TAIL>
114326template <size_t t_INDEX,
114327 class t_ARG_01,
114328 class t_ARG_02,
114329 class t_ARG_03,
114330 class t_ARG_04,
114331 class t_ARG_05>
114332void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114333 const t_ARG_02& arg_02,
114334 const t_ARG_03& arg_03,
114335 const t_ARG_04& arg_04,
114336 const t_ARG_05& arg_05)
114337{
114338 typedef typename bsl::remove_cv<
114340 Alt_Type;
114341
114342 reset();
114343
114344 BloombergLP::bslma::ConstructionUtil::construct(
114345 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114346 AllocBase::mechanism(),
114347 arg_01,
114348 arg_02,
114349 arg_03,
114350 arg_04,
114351 arg_05);
114352 d_type = t_INDEX;
114353}
114354
114355template <class t_HEAD, class... t_TAIL>
114356template <size_t t_INDEX,
114357 class t_ARG_01,
114358 class t_ARG_02,
114359 class t_ARG_03,
114360 class t_ARG_04,
114361 class t_ARG_05,
114362 class t_ARG_06>
114363void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114364 const t_ARG_02& arg_02,
114365 const t_ARG_03& arg_03,
114366 const t_ARG_04& arg_04,
114367 const t_ARG_05& arg_05,
114368 const t_ARG_06& arg_06)
114369{
114370 typedef typename bsl::remove_cv<
114372 Alt_Type;
114373
114374 reset();
114375
114376 BloombergLP::bslma::ConstructionUtil::construct(
114377 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114378 AllocBase::mechanism(),
114379 arg_01,
114380 arg_02,
114381 arg_03,
114382 arg_04,
114383 arg_05,
114384 arg_06);
114385 d_type = t_INDEX;
114386}
114387
114388template <class t_HEAD, class... t_TAIL>
114389template <size_t t_INDEX,
114390 class t_ARG_01,
114391 class t_ARG_02,
114392 class t_ARG_03,
114393 class t_ARG_04,
114394 class t_ARG_05,
114395 class t_ARG_06,
114396 class t_ARG_07>
114397void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114398 const t_ARG_02& arg_02,
114399 const t_ARG_03& arg_03,
114400 const t_ARG_04& arg_04,
114401 const t_ARG_05& arg_05,
114402 const t_ARG_06& arg_06,
114403 const t_ARG_07& arg_07)
114404{
114405 typedef typename bsl::remove_cv<
114407 Alt_Type;
114408
114409 reset();
114410
114411 BloombergLP::bslma::ConstructionUtil::construct(
114412 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114413 AllocBase::mechanism(),
114414 arg_01,
114415 arg_02,
114416 arg_03,
114417 arg_04,
114418 arg_05,
114419 arg_06,
114420 arg_07);
114421 d_type = t_INDEX;
114422}
114423
114424template <class t_HEAD, class... t_TAIL>
114425template <size_t t_INDEX,
114426 class t_ARG_01,
114427 class t_ARG_02,
114428 class t_ARG_03,
114429 class t_ARG_04,
114430 class t_ARG_05,
114431 class t_ARG_06,
114432 class t_ARG_07,
114433 class t_ARG_08>
114434void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114435 const t_ARG_02& arg_02,
114436 const t_ARG_03& arg_03,
114437 const t_ARG_04& arg_04,
114438 const t_ARG_05& arg_05,
114439 const t_ARG_06& arg_06,
114440 const t_ARG_07& arg_07,
114441 const t_ARG_08& arg_08)
114442{
114443 typedef typename bsl::remove_cv<
114445 Alt_Type;
114446
114447 reset();
114448
114449 BloombergLP::bslma::ConstructionUtil::construct(
114450 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114451 AllocBase::mechanism(),
114452 arg_01,
114453 arg_02,
114454 arg_03,
114455 arg_04,
114456 arg_05,
114457 arg_06,
114458 arg_07,
114459 arg_08);
114460 d_type = t_INDEX;
114461}
114462
114463template <class t_HEAD, class... t_TAIL>
114464template <size_t t_INDEX,
114465 class t_ARG_01,
114466 class t_ARG_02,
114467 class t_ARG_03,
114468 class t_ARG_04,
114469 class t_ARG_05,
114470 class t_ARG_06,
114471 class t_ARG_07,
114472 class t_ARG_08,
114473 class t_ARG_09>
114474void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114475 const t_ARG_02& arg_02,
114476 const t_ARG_03& arg_03,
114477 const t_ARG_04& arg_04,
114478 const t_ARG_05& arg_05,
114479 const t_ARG_06& arg_06,
114480 const t_ARG_07& arg_07,
114481 const t_ARG_08& arg_08,
114482 const t_ARG_09& arg_09)
114483{
114484 typedef typename bsl::remove_cv<
114486 Alt_Type;
114487
114488 reset();
114489
114490 BloombergLP::bslma::ConstructionUtil::construct(
114491 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114492 AllocBase::mechanism(),
114493 arg_01,
114494 arg_02,
114495 arg_03,
114496 arg_04,
114497 arg_05,
114498 arg_06,
114499 arg_07,
114500 arg_08,
114501 arg_09);
114502 d_type = t_INDEX;
114503}
114504
114505template <class t_HEAD, class... t_TAIL>
114506template <size_t t_INDEX,
114507 class t_ARG_01,
114508 class t_ARG_02,
114509 class t_ARG_03,
114510 class t_ARG_04,
114511 class t_ARG_05,
114512 class t_ARG_06,
114513 class t_ARG_07,
114514 class t_ARG_08,
114515 class t_ARG_09,
114516 class t_ARG_10>
114517void Variant_Base<t_HEAD, t_TAIL...>::baseEmplace(const t_ARG_01& arg_01,
114518 const t_ARG_02& arg_02,
114519 const t_ARG_03& arg_03,
114520 const t_ARG_04& arg_04,
114521 const t_ARG_05& arg_05,
114522 const t_ARG_06& arg_06,
114523 const t_ARG_07& arg_07,
114524 const t_ARG_08& arg_08,
114525 const t_ARG_09& arg_09,
114526 const t_ARG_10& arg_10)
114527{
114528 typedef typename bsl::remove_cv<
114530 Alt_Type;
114531
114532 reset();
114533
114534 BloombergLP::bslma::ConstructionUtil::construct(
114535 reinterpret_cast<Alt_Type *> BSLS_UTIL_ADDRESSOF(d_union),
114536 AllocBase::mechanism(),
114537 arg_01,
114538 arg_02,
114539 arg_03,
114540 arg_04,
114541 arg_05,
114542 arg_06,
114543 arg_07,
114544 arg_08,
114545 arg_09,
114546 arg_10);
114547 d_type = t_INDEX;
114548}
114549// }}} END GENERATED CODE
114550#endif
114551#endif // BSL_VARIANT_FULL_IMPLEMENTATION
114552
114553#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
114554// {{{ BEGIN GENERATED CODE
114555// Command line: sim_cpp11_features.pl bslstl_variant.h
114556#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
114557#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
114558#endif
114559#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_O
114560#define BSLSTL_VARIANT_VARIADIC_LIMIT_O BSLSTL_VARIANT_VARIADIC_LIMIT
114561#endif
114562#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 0
114563template <class t_HEAD>
114564inline
114565Variant_Base<t_HEAD>& Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
114566 >::operator=(
114567 const Variant_Base& rhs)
114568{
114569 if (&rhs != this) {
114570 if (this->d_type == rhs.d_type) {
114571 if (d_type != bsl::variant_npos) {
114572 Variant& self = static_cast<Variant&>(*this);
114573 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114574 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114576 void, copyAssign, static_cast<const Variant&>(rhs));
114577 }
114578 }
114579 else {
114580 reset();
114581 if (rhs.d_type != bsl::variant_npos) {
114582 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114583 copyConstructor(this);
114585 void, copyConstructor, static_cast<const Variant&>(rhs));
114586 }
114587 d_type = rhs.d_type;
114588 }
114589 }
114590 return *this;
114591}
114592#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 0
114593
114594#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 1
114595template <class t_HEAD, class t_TAIL_01>
114596inline
114597Variant_Base<t_HEAD, t_TAIL_01>& Variant_Base<t_HEAD,
114598 t_TAIL_01,
114599 BSLS_COMPILERFEATURES_FILLT(17)
114600 >::operator=(
114601 const Variant_Base& rhs)
114602{
114603 if (&rhs != this) {
114604 if (this->d_type == rhs.d_type) {
114605 if (d_type != bsl::variant_npos) {
114606 Variant& self = static_cast<Variant&>(*this);
114607 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114608 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114610 void, copyAssign, static_cast<const Variant&>(rhs));
114611 }
114612 }
114613 else {
114614 reset();
114615 if (rhs.d_type != bsl::variant_npos) {
114616 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114617 copyConstructor(this);
114619 void, copyConstructor, static_cast<const Variant&>(rhs));
114620 }
114621 d_type = rhs.d_type;
114622 }
114623 }
114624 return *this;
114625}
114626#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 1
114627
114628#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 2
114629template <class t_HEAD, class t_TAIL_01,
114630 class t_TAIL_02>
114631inline
114632Variant_Base<t_HEAD, t_TAIL_01,
114633 t_TAIL_02>& Variant_Base<t_HEAD,
114634 t_TAIL_01,
114635 t_TAIL_02,
114636 BSLS_COMPILERFEATURES_FILLT(16)
114637 >::operator=(
114638 const Variant_Base& rhs)
114639{
114640 if (&rhs != this) {
114641 if (this->d_type == rhs.d_type) {
114642 if (d_type != bsl::variant_npos) {
114643 Variant& self = static_cast<Variant&>(*this);
114644 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114645 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114647 void, copyAssign, static_cast<const Variant&>(rhs));
114648 }
114649 }
114650 else {
114651 reset();
114652 if (rhs.d_type != bsl::variant_npos) {
114653 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114654 copyConstructor(this);
114656 void, copyConstructor, static_cast<const Variant&>(rhs));
114657 }
114658 d_type = rhs.d_type;
114659 }
114660 }
114661 return *this;
114662}
114663#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 2
114664
114665#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 3
114666template <class t_HEAD, class t_TAIL_01,
114667 class t_TAIL_02,
114668 class t_TAIL_03>
114669inline
114670Variant_Base<t_HEAD, t_TAIL_01,
114671 t_TAIL_02,
114672 t_TAIL_03>& Variant_Base<t_HEAD,
114673 t_TAIL_01,
114674 t_TAIL_02,
114675 t_TAIL_03,
114676 BSLS_COMPILERFEATURES_FILLT(15)
114677 >::operator=(
114678 const Variant_Base& rhs)
114679{
114680 if (&rhs != this) {
114681 if (this->d_type == rhs.d_type) {
114682 if (d_type != bsl::variant_npos) {
114683 Variant& self = static_cast<Variant&>(*this);
114684 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114685 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114687 void, copyAssign, static_cast<const Variant&>(rhs));
114688 }
114689 }
114690 else {
114691 reset();
114692 if (rhs.d_type != bsl::variant_npos) {
114693 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114694 copyConstructor(this);
114696 void, copyConstructor, static_cast<const Variant&>(rhs));
114697 }
114698 d_type = rhs.d_type;
114699 }
114700 }
114701 return *this;
114702}
114703#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 3
114704
114705#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 4
114706template <class t_HEAD, class t_TAIL_01,
114707 class t_TAIL_02,
114708 class t_TAIL_03,
114709 class t_TAIL_04>
114710inline
114711Variant_Base<t_HEAD, t_TAIL_01,
114712 t_TAIL_02,
114713 t_TAIL_03,
114714 t_TAIL_04>& Variant_Base<t_HEAD,
114715 t_TAIL_01,
114716 t_TAIL_02,
114717 t_TAIL_03,
114718 t_TAIL_04,
114719 BSLS_COMPILERFEATURES_FILLT(14)
114720 >::operator=(
114721 const Variant_Base& rhs)
114722{
114723 if (&rhs != this) {
114724 if (this->d_type == rhs.d_type) {
114725 if (d_type != bsl::variant_npos) {
114726 Variant& self = static_cast<Variant&>(*this);
114727 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114728 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114730 void, copyAssign, static_cast<const Variant&>(rhs));
114731 }
114732 }
114733 else {
114734 reset();
114735 if (rhs.d_type != bsl::variant_npos) {
114736 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114737 copyConstructor(this);
114739 void, copyConstructor, static_cast<const Variant&>(rhs));
114740 }
114741 d_type = rhs.d_type;
114742 }
114743 }
114744 return *this;
114745}
114746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 4
114747
114748#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 5
114749template <class t_HEAD, class t_TAIL_01,
114750 class t_TAIL_02,
114751 class t_TAIL_03,
114752 class t_TAIL_04,
114753 class t_TAIL_05>
114754inline
114755Variant_Base<t_HEAD, t_TAIL_01,
114756 t_TAIL_02,
114757 t_TAIL_03,
114758 t_TAIL_04,
114759 t_TAIL_05>& Variant_Base<t_HEAD,
114760 t_TAIL_01,
114761 t_TAIL_02,
114762 t_TAIL_03,
114763 t_TAIL_04,
114764 t_TAIL_05,
114765 BSLS_COMPILERFEATURES_FILLT(13)
114766 >::operator=(
114767 const Variant_Base& rhs)
114768{
114769 if (&rhs != this) {
114770 if (this->d_type == rhs.d_type) {
114771 if (d_type != bsl::variant_npos) {
114772 Variant& self = static_cast<Variant&>(*this);
114773 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114774 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114776 void, copyAssign, static_cast<const Variant&>(rhs));
114777 }
114778 }
114779 else {
114780 reset();
114781 if (rhs.d_type != bsl::variant_npos) {
114782 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114783 copyConstructor(this);
114785 void, copyConstructor, static_cast<const Variant&>(rhs));
114786 }
114787 d_type = rhs.d_type;
114788 }
114789 }
114790 return *this;
114791}
114792#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 5
114793
114794#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 6
114795template <class t_HEAD, class t_TAIL_01,
114796 class t_TAIL_02,
114797 class t_TAIL_03,
114798 class t_TAIL_04,
114799 class t_TAIL_05,
114800 class t_TAIL_06>
114801inline
114802Variant_Base<t_HEAD, t_TAIL_01,
114803 t_TAIL_02,
114804 t_TAIL_03,
114805 t_TAIL_04,
114806 t_TAIL_05,
114807 t_TAIL_06>& Variant_Base<t_HEAD,
114808 t_TAIL_01,
114809 t_TAIL_02,
114810 t_TAIL_03,
114811 t_TAIL_04,
114812 t_TAIL_05,
114813 t_TAIL_06,
114814 BSLS_COMPILERFEATURES_FILLT(12)
114815 >::operator=(
114816 const Variant_Base& rhs)
114817{
114818 if (&rhs != this) {
114819 if (this->d_type == rhs.d_type) {
114820 if (d_type != bsl::variant_npos) {
114821 Variant& self = static_cast<Variant&>(*this);
114822 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114823 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114825 void, copyAssign, static_cast<const Variant&>(rhs));
114826 }
114827 }
114828 else {
114829 reset();
114830 if (rhs.d_type != bsl::variant_npos) {
114831 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114832 copyConstructor(this);
114834 void, copyConstructor, static_cast<const Variant&>(rhs));
114835 }
114836 d_type = rhs.d_type;
114837 }
114838 }
114839 return *this;
114840}
114841#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 6
114842
114843#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 7
114844template <class t_HEAD, class t_TAIL_01,
114845 class t_TAIL_02,
114846 class t_TAIL_03,
114847 class t_TAIL_04,
114848 class t_TAIL_05,
114849 class t_TAIL_06,
114850 class t_TAIL_07>
114851inline
114852Variant_Base<t_HEAD, t_TAIL_01,
114853 t_TAIL_02,
114854 t_TAIL_03,
114855 t_TAIL_04,
114856 t_TAIL_05,
114857 t_TAIL_06,
114858 t_TAIL_07>& Variant_Base<t_HEAD,
114859 t_TAIL_01,
114860 t_TAIL_02,
114861 t_TAIL_03,
114862 t_TAIL_04,
114863 t_TAIL_05,
114864 t_TAIL_06,
114865 t_TAIL_07,
114866 BSLS_COMPILERFEATURES_FILLT(11)
114867 >::operator=(
114868 const Variant_Base& rhs)
114869{
114870 if (&rhs != this) {
114871 if (this->d_type == rhs.d_type) {
114872 if (d_type != bsl::variant_npos) {
114873 Variant& self = static_cast<Variant&>(*this);
114874 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114875 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114877 void, copyAssign, static_cast<const Variant&>(rhs));
114878 }
114879 }
114880 else {
114881 reset();
114882 if (rhs.d_type != bsl::variant_npos) {
114883 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114884 copyConstructor(this);
114886 void, copyConstructor, static_cast<const Variant&>(rhs));
114887 }
114888 d_type = rhs.d_type;
114889 }
114890 }
114891 return *this;
114892}
114893#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 7
114894
114895#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 8
114896template <class t_HEAD, class t_TAIL_01,
114897 class t_TAIL_02,
114898 class t_TAIL_03,
114899 class t_TAIL_04,
114900 class t_TAIL_05,
114901 class t_TAIL_06,
114902 class t_TAIL_07,
114903 class t_TAIL_08>
114904inline
114905Variant_Base<t_HEAD, t_TAIL_01,
114906 t_TAIL_02,
114907 t_TAIL_03,
114908 t_TAIL_04,
114909 t_TAIL_05,
114910 t_TAIL_06,
114911 t_TAIL_07,
114912 t_TAIL_08>& Variant_Base<t_HEAD,
114913 t_TAIL_01,
114914 t_TAIL_02,
114915 t_TAIL_03,
114916 t_TAIL_04,
114917 t_TAIL_05,
114918 t_TAIL_06,
114919 t_TAIL_07,
114920 t_TAIL_08,
114921 BSLS_COMPILERFEATURES_FILLT(10)
114922 >::operator=(
114923 const Variant_Base& rhs)
114924{
114925 if (&rhs != this) {
114926 if (this->d_type == rhs.d_type) {
114927 if (d_type != bsl::variant_npos) {
114928 Variant& self = static_cast<Variant&>(*this);
114929 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114930 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114932 void, copyAssign, static_cast<const Variant&>(rhs));
114933 }
114934 }
114935 else {
114936 reset();
114937 if (rhs.d_type != bsl::variant_npos) {
114938 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114939 copyConstructor(this);
114941 void, copyConstructor, static_cast<const Variant&>(rhs));
114942 }
114943 d_type = rhs.d_type;
114944 }
114945 }
114946 return *this;
114947}
114948#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 8
114949
114950#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 9
114951template <class t_HEAD, class t_TAIL_01,
114952 class t_TAIL_02,
114953 class t_TAIL_03,
114954 class t_TAIL_04,
114955 class t_TAIL_05,
114956 class t_TAIL_06,
114957 class t_TAIL_07,
114958 class t_TAIL_08,
114959 class t_TAIL_09>
114960inline
114961Variant_Base<t_HEAD, t_TAIL_01,
114962 t_TAIL_02,
114963 t_TAIL_03,
114964 t_TAIL_04,
114965 t_TAIL_05,
114966 t_TAIL_06,
114967 t_TAIL_07,
114968 t_TAIL_08,
114969 t_TAIL_09>& Variant_Base<t_HEAD,
114970 t_TAIL_01,
114971 t_TAIL_02,
114972 t_TAIL_03,
114973 t_TAIL_04,
114974 t_TAIL_05,
114975 t_TAIL_06,
114976 t_TAIL_07,
114977 t_TAIL_08,
114978 t_TAIL_09,
114979 BSLS_COMPILERFEATURES_FILLT( 9)
114980 >::operator=(
114981 const Variant_Base& rhs)
114982{
114983 if (&rhs != this) {
114984 if (this->d_type == rhs.d_type) {
114985 if (d_type != bsl::variant_npos) {
114986 Variant& self = static_cast<Variant&>(*this);
114987 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
114988 copyAssign(BSLS_UTIL_ADDRESSOF(self));
114990 void, copyAssign, static_cast<const Variant&>(rhs));
114991 }
114992 }
114993 else {
114994 reset();
114995 if (rhs.d_type != bsl::variant_npos) {
114996 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
114997 copyConstructor(this);
114999 void, copyConstructor, static_cast<const Variant&>(rhs));
115000 }
115001 d_type = rhs.d_type;
115002 }
115003 }
115004 return *this;
115005}
115006#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 9
115007
115008#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 10
115009template <class t_HEAD, class t_TAIL_01,
115010 class t_TAIL_02,
115011 class t_TAIL_03,
115012 class t_TAIL_04,
115013 class t_TAIL_05,
115014 class t_TAIL_06,
115015 class t_TAIL_07,
115016 class t_TAIL_08,
115017 class t_TAIL_09,
115018 class t_TAIL_10>
115019inline
115020Variant_Base<t_HEAD, t_TAIL_01,
115021 t_TAIL_02,
115022 t_TAIL_03,
115023 t_TAIL_04,
115024 t_TAIL_05,
115025 t_TAIL_06,
115026 t_TAIL_07,
115027 t_TAIL_08,
115028 t_TAIL_09,
115029 t_TAIL_10>& Variant_Base<t_HEAD,
115030 t_TAIL_01,
115031 t_TAIL_02,
115032 t_TAIL_03,
115033 t_TAIL_04,
115034 t_TAIL_05,
115035 t_TAIL_06,
115036 t_TAIL_07,
115037 t_TAIL_08,
115038 t_TAIL_09,
115039 t_TAIL_10,
115040 BSLS_COMPILERFEATURES_FILLT( 8)
115041 >::operator=(
115042 const Variant_Base& rhs)
115043{
115044 if (&rhs != this) {
115045 if (this->d_type == rhs.d_type) {
115046 if (d_type != bsl::variant_npos) {
115047 Variant& self = static_cast<Variant&>(*this);
115048 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115049 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115051 void, copyAssign, static_cast<const Variant&>(rhs));
115052 }
115053 }
115054 else {
115055 reset();
115056 if (rhs.d_type != bsl::variant_npos) {
115057 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115058 copyConstructor(this);
115060 void, copyConstructor, static_cast<const Variant&>(rhs));
115061 }
115062 d_type = rhs.d_type;
115063 }
115064 }
115065 return *this;
115066}
115067#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 10
115068
115069#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 11
115070template <class t_HEAD, class t_TAIL_01,
115071 class t_TAIL_02,
115072 class t_TAIL_03,
115073 class t_TAIL_04,
115074 class t_TAIL_05,
115075 class t_TAIL_06,
115076 class t_TAIL_07,
115077 class t_TAIL_08,
115078 class t_TAIL_09,
115079 class t_TAIL_10,
115080 class t_TAIL_11>
115081inline
115082Variant_Base<t_HEAD, t_TAIL_01,
115083 t_TAIL_02,
115084 t_TAIL_03,
115085 t_TAIL_04,
115086 t_TAIL_05,
115087 t_TAIL_06,
115088 t_TAIL_07,
115089 t_TAIL_08,
115090 t_TAIL_09,
115091 t_TAIL_10,
115092 t_TAIL_11>& Variant_Base<t_HEAD,
115093 t_TAIL_01,
115094 t_TAIL_02,
115095 t_TAIL_03,
115096 t_TAIL_04,
115097 t_TAIL_05,
115098 t_TAIL_06,
115099 t_TAIL_07,
115100 t_TAIL_08,
115101 t_TAIL_09,
115102 t_TAIL_10,
115103 t_TAIL_11,
115104 BSLS_COMPILERFEATURES_FILLT( 7)
115105 >::operator=(
115106 const Variant_Base& rhs)
115107{
115108 if (&rhs != this) {
115109 if (this->d_type == rhs.d_type) {
115110 if (d_type != bsl::variant_npos) {
115111 Variant& self = static_cast<Variant&>(*this);
115112 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115113 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115115 void, copyAssign, static_cast<const Variant&>(rhs));
115116 }
115117 }
115118 else {
115119 reset();
115120 if (rhs.d_type != bsl::variant_npos) {
115121 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115122 copyConstructor(this);
115124 void, copyConstructor, static_cast<const Variant&>(rhs));
115125 }
115126 d_type = rhs.d_type;
115127 }
115128 }
115129 return *this;
115130}
115131#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 11
115132
115133#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 12
115134template <class t_HEAD, class t_TAIL_01,
115135 class t_TAIL_02,
115136 class t_TAIL_03,
115137 class t_TAIL_04,
115138 class t_TAIL_05,
115139 class t_TAIL_06,
115140 class t_TAIL_07,
115141 class t_TAIL_08,
115142 class t_TAIL_09,
115143 class t_TAIL_10,
115144 class t_TAIL_11,
115145 class t_TAIL_12>
115146inline
115147Variant_Base<t_HEAD, t_TAIL_01,
115148 t_TAIL_02,
115149 t_TAIL_03,
115150 t_TAIL_04,
115151 t_TAIL_05,
115152 t_TAIL_06,
115153 t_TAIL_07,
115154 t_TAIL_08,
115155 t_TAIL_09,
115156 t_TAIL_10,
115157 t_TAIL_11,
115158 t_TAIL_12>& Variant_Base<t_HEAD,
115159 t_TAIL_01,
115160 t_TAIL_02,
115161 t_TAIL_03,
115162 t_TAIL_04,
115163 t_TAIL_05,
115164 t_TAIL_06,
115165 t_TAIL_07,
115166 t_TAIL_08,
115167 t_TAIL_09,
115168 t_TAIL_10,
115169 t_TAIL_11,
115170 t_TAIL_12,
115171 BSLS_COMPILERFEATURES_FILLT( 6)
115172 >::operator=(
115173 const Variant_Base& rhs)
115174{
115175 if (&rhs != this) {
115176 if (this->d_type == rhs.d_type) {
115177 if (d_type != bsl::variant_npos) {
115178 Variant& self = static_cast<Variant&>(*this);
115179 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115180 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115182 void, copyAssign, static_cast<const Variant&>(rhs));
115183 }
115184 }
115185 else {
115186 reset();
115187 if (rhs.d_type != bsl::variant_npos) {
115188 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115189 copyConstructor(this);
115191 void, copyConstructor, static_cast<const Variant&>(rhs));
115192 }
115193 d_type = rhs.d_type;
115194 }
115195 }
115196 return *this;
115197}
115198#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 12
115199
115200#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 13
115201template <class t_HEAD, class t_TAIL_01,
115202 class t_TAIL_02,
115203 class t_TAIL_03,
115204 class t_TAIL_04,
115205 class t_TAIL_05,
115206 class t_TAIL_06,
115207 class t_TAIL_07,
115208 class t_TAIL_08,
115209 class t_TAIL_09,
115210 class t_TAIL_10,
115211 class t_TAIL_11,
115212 class t_TAIL_12,
115213 class t_TAIL_13>
115214inline
115215Variant_Base<t_HEAD, t_TAIL_01,
115216 t_TAIL_02,
115217 t_TAIL_03,
115218 t_TAIL_04,
115219 t_TAIL_05,
115220 t_TAIL_06,
115221 t_TAIL_07,
115222 t_TAIL_08,
115223 t_TAIL_09,
115224 t_TAIL_10,
115225 t_TAIL_11,
115226 t_TAIL_12,
115227 t_TAIL_13>& Variant_Base<t_HEAD,
115228 t_TAIL_01,
115229 t_TAIL_02,
115230 t_TAIL_03,
115231 t_TAIL_04,
115232 t_TAIL_05,
115233 t_TAIL_06,
115234 t_TAIL_07,
115235 t_TAIL_08,
115236 t_TAIL_09,
115237 t_TAIL_10,
115238 t_TAIL_11,
115239 t_TAIL_12,
115240 t_TAIL_13,
115241 BSLS_COMPILERFEATURES_FILLT( 5)
115242 >::operator=(
115243 const Variant_Base& rhs)
115244{
115245 if (&rhs != this) {
115246 if (this->d_type == rhs.d_type) {
115247 if (d_type != bsl::variant_npos) {
115248 Variant& self = static_cast<Variant&>(*this);
115249 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115250 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115252 void, copyAssign, static_cast<const Variant&>(rhs));
115253 }
115254 }
115255 else {
115256 reset();
115257 if (rhs.d_type != bsl::variant_npos) {
115258 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115259 copyConstructor(this);
115261 void, copyConstructor, static_cast<const Variant&>(rhs));
115262 }
115263 d_type = rhs.d_type;
115264 }
115265 }
115266 return *this;
115267}
115268#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 13
115269
115270#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 14
115271template <class t_HEAD, class t_TAIL_01,
115272 class t_TAIL_02,
115273 class t_TAIL_03,
115274 class t_TAIL_04,
115275 class t_TAIL_05,
115276 class t_TAIL_06,
115277 class t_TAIL_07,
115278 class t_TAIL_08,
115279 class t_TAIL_09,
115280 class t_TAIL_10,
115281 class t_TAIL_11,
115282 class t_TAIL_12,
115283 class t_TAIL_13,
115284 class t_TAIL_14>
115285inline
115286Variant_Base<t_HEAD, t_TAIL_01,
115287 t_TAIL_02,
115288 t_TAIL_03,
115289 t_TAIL_04,
115290 t_TAIL_05,
115291 t_TAIL_06,
115292 t_TAIL_07,
115293 t_TAIL_08,
115294 t_TAIL_09,
115295 t_TAIL_10,
115296 t_TAIL_11,
115297 t_TAIL_12,
115298 t_TAIL_13,
115299 t_TAIL_14>& Variant_Base<t_HEAD,
115300 t_TAIL_01,
115301 t_TAIL_02,
115302 t_TAIL_03,
115303 t_TAIL_04,
115304 t_TAIL_05,
115305 t_TAIL_06,
115306 t_TAIL_07,
115307 t_TAIL_08,
115308 t_TAIL_09,
115309 t_TAIL_10,
115310 t_TAIL_11,
115311 t_TAIL_12,
115312 t_TAIL_13,
115313 t_TAIL_14,
115314 BSLS_COMPILERFEATURES_FILLT( 4)
115315 >::operator=(
115316 const Variant_Base& rhs)
115317{
115318 if (&rhs != this) {
115319 if (this->d_type == rhs.d_type) {
115320 if (d_type != bsl::variant_npos) {
115321 Variant& self = static_cast<Variant&>(*this);
115322 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115323 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115325 void, copyAssign, static_cast<const Variant&>(rhs));
115326 }
115327 }
115328 else {
115329 reset();
115330 if (rhs.d_type != bsl::variant_npos) {
115331 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115332 copyConstructor(this);
115334 void, copyConstructor, static_cast<const Variant&>(rhs));
115335 }
115336 d_type = rhs.d_type;
115337 }
115338 }
115339 return *this;
115340}
115341#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 14
115342
115343#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 15
115344template <class t_HEAD, class t_TAIL_01,
115345 class t_TAIL_02,
115346 class t_TAIL_03,
115347 class t_TAIL_04,
115348 class t_TAIL_05,
115349 class t_TAIL_06,
115350 class t_TAIL_07,
115351 class t_TAIL_08,
115352 class t_TAIL_09,
115353 class t_TAIL_10,
115354 class t_TAIL_11,
115355 class t_TAIL_12,
115356 class t_TAIL_13,
115357 class t_TAIL_14,
115358 class t_TAIL_15>
115359inline
115360Variant_Base<t_HEAD, t_TAIL_01,
115361 t_TAIL_02,
115362 t_TAIL_03,
115363 t_TAIL_04,
115364 t_TAIL_05,
115365 t_TAIL_06,
115366 t_TAIL_07,
115367 t_TAIL_08,
115368 t_TAIL_09,
115369 t_TAIL_10,
115370 t_TAIL_11,
115371 t_TAIL_12,
115372 t_TAIL_13,
115373 t_TAIL_14,
115374 t_TAIL_15>& Variant_Base<t_HEAD,
115375 t_TAIL_01,
115376 t_TAIL_02,
115377 t_TAIL_03,
115378 t_TAIL_04,
115379 t_TAIL_05,
115380 t_TAIL_06,
115381 t_TAIL_07,
115382 t_TAIL_08,
115383 t_TAIL_09,
115384 t_TAIL_10,
115385 t_TAIL_11,
115386 t_TAIL_12,
115387 t_TAIL_13,
115388 t_TAIL_14,
115389 t_TAIL_15,
115390 BSLS_COMPILERFEATURES_FILLT( 3)
115391 >::operator=(
115392 const Variant_Base& rhs)
115393{
115394 if (&rhs != this) {
115395 if (this->d_type == rhs.d_type) {
115396 if (d_type != bsl::variant_npos) {
115397 Variant& self = static_cast<Variant&>(*this);
115398 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115399 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115401 void, copyAssign, static_cast<const Variant&>(rhs));
115402 }
115403 }
115404 else {
115405 reset();
115406 if (rhs.d_type != bsl::variant_npos) {
115407 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115408 copyConstructor(this);
115410 void, copyConstructor, static_cast<const Variant&>(rhs));
115411 }
115412 d_type = rhs.d_type;
115413 }
115414 }
115415 return *this;
115416}
115417#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 15
115418
115419#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 16
115420template <class t_HEAD, class t_TAIL_01,
115421 class t_TAIL_02,
115422 class t_TAIL_03,
115423 class t_TAIL_04,
115424 class t_TAIL_05,
115425 class t_TAIL_06,
115426 class t_TAIL_07,
115427 class t_TAIL_08,
115428 class t_TAIL_09,
115429 class t_TAIL_10,
115430 class t_TAIL_11,
115431 class t_TAIL_12,
115432 class t_TAIL_13,
115433 class t_TAIL_14,
115434 class t_TAIL_15,
115435 class t_TAIL_16>
115436inline
115437Variant_Base<t_HEAD, t_TAIL_01,
115438 t_TAIL_02,
115439 t_TAIL_03,
115440 t_TAIL_04,
115441 t_TAIL_05,
115442 t_TAIL_06,
115443 t_TAIL_07,
115444 t_TAIL_08,
115445 t_TAIL_09,
115446 t_TAIL_10,
115447 t_TAIL_11,
115448 t_TAIL_12,
115449 t_TAIL_13,
115450 t_TAIL_14,
115451 t_TAIL_15,
115452 t_TAIL_16>& Variant_Base<t_HEAD,
115453 t_TAIL_01,
115454 t_TAIL_02,
115455 t_TAIL_03,
115456 t_TAIL_04,
115457 t_TAIL_05,
115458 t_TAIL_06,
115459 t_TAIL_07,
115460 t_TAIL_08,
115461 t_TAIL_09,
115462 t_TAIL_10,
115463 t_TAIL_11,
115464 t_TAIL_12,
115465 t_TAIL_13,
115466 t_TAIL_14,
115467 t_TAIL_15,
115468 t_TAIL_16,
115469 BSLS_COMPILERFEATURES_FILLT( 2)
115470 >::operator=(
115471 const Variant_Base& rhs)
115472{
115473 if (&rhs != this) {
115474 if (this->d_type == rhs.d_type) {
115475 if (d_type != bsl::variant_npos) {
115476 Variant& self = static_cast<Variant&>(*this);
115477 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115478 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115480 void, copyAssign, static_cast<const Variant&>(rhs));
115481 }
115482 }
115483 else {
115484 reset();
115485 if (rhs.d_type != bsl::variant_npos) {
115486 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115487 copyConstructor(this);
115489 void, copyConstructor, static_cast<const Variant&>(rhs));
115490 }
115491 d_type = rhs.d_type;
115492 }
115493 }
115494 return *this;
115495}
115496#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 16
115497
115498#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 17
115499template <class t_HEAD, class t_TAIL_01,
115500 class t_TAIL_02,
115501 class t_TAIL_03,
115502 class t_TAIL_04,
115503 class t_TAIL_05,
115504 class t_TAIL_06,
115505 class t_TAIL_07,
115506 class t_TAIL_08,
115507 class t_TAIL_09,
115508 class t_TAIL_10,
115509 class t_TAIL_11,
115510 class t_TAIL_12,
115511 class t_TAIL_13,
115512 class t_TAIL_14,
115513 class t_TAIL_15,
115514 class t_TAIL_16,
115515 class t_TAIL_17>
115516inline
115517Variant_Base<t_HEAD, t_TAIL_01,
115518 t_TAIL_02,
115519 t_TAIL_03,
115520 t_TAIL_04,
115521 t_TAIL_05,
115522 t_TAIL_06,
115523 t_TAIL_07,
115524 t_TAIL_08,
115525 t_TAIL_09,
115526 t_TAIL_10,
115527 t_TAIL_11,
115528 t_TAIL_12,
115529 t_TAIL_13,
115530 t_TAIL_14,
115531 t_TAIL_15,
115532 t_TAIL_16,
115533 t_TAIL_17>& Variant_Base<t_HEAD,
115534 t_TAIL_01,
115535 t_TAIL_02,
115536 t_TAIL_03,
115537 t_TAIL_04,
115538 t_TAIL_05,
115539 t_TAIL_06,
115540 t_TAIL_07,
115541 t_TAIL_08,
115542 t_TAIL_09,
115543 t_TAIL_10,
115544 t_TAIL_11,
115545 t_TAIL_12,
115546 t_TAIL_13,
115547 t_TAIL_14,
115548 t_TAIL_15,
115549 t_TAIL_16,
115550 t_TAIL_17,
115551 BSLS_COMPILERFEATURES_FILLT( 1)
115552 >::operator=(
115553 const Variant_Base& rhs)
115554{
115555 if (&rhs != this) {
115556 if (this->d_type == rhs.d_type) {
115557 if (d_type != bsl::variant_npos) {
115558 Variant& self = static_cast<Variant&>(*this);
115559 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115560 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115562 void, copyAssign, static_cast<const Variant&>(rhs));
115563 }
115564 }
115565 else {
115566 reset();
115567 if (rhs.d_type != bsl::variant_npos) {
115568 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115569 copyConstructor(this);
115571 void, copyConstructor, static_cast<const Variant&>(rhs));
115572 }
115573 d_type = rhs.d_type;
115574 }
115575 }
115576 return *this;
115577}
115578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 17
115579
115580#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 18
115581template <class t_HEAD, class t_TAIL_01,
115582 class t_TAIL_02,
115583 class t_TAIL_03,
115584 class t_TAIL_04,
115585 class t_TAIL_05,
115586 class t_TAIL_06,
115587 class t_TAIL_07,
115588 class t_TAIL_08,
115589 class t_TAIL_09,
115590 class t_TAIL_10,
115591 class t_TAIL_11,
115592 class t_TAIL_12,
115593 class t_TAIL_13,
115594 class t_TAIL_14,
115595 class t_TAIL_15,
115596 class t_TAIL_16,
115597 class t_TAIL_17,
115598 class t_TAIL_18>
115599inline
115600Variant_Base<t_HEAD, t_TAIL_01,
115601 t_TAIL_02,
115602 t_TAIL_03,
115603 t_TAIL_04,
115604 t_TAIL_05,
115605 t_TAIL_06,
115606 t_TAIL_07,
115607 t_TAIL_08,
115608 t_TAIL_09,
115609 t_TAIL_10,
115610 t_TAIL_11,
115611 t_TAIL_12,
115612 t_TAIL_13,
115613 t_TAIL_14,
115614 t_TAIL_15,
115615 t_TAIL_16,
115616 t_TAIL_17,
115617 t_TAIL_18>& Variant_Base<t_HEAD,
115618 t_TAIL_01,
115619 t_TAIL_02,
115620 t_TAIL_03,
115621 t_TAIL_04,
115622 t_TAIL_05,
115623 t_TAIL_06,
115624 t_TAIL_07,
115625 t_TAIL_08,
115626 t_TAIL_09,
115627 t_TAIL_10,
115628 t_TAIL_11,
115629 t_TAIL_12,
115630 t_TAIL_13,
115631 t_TAIL_14,
115632 t_TAIL_15,
115633 t_TAIL_16,
115634 t_TAIL_17,
115635 t_TAIL_18,
115636 BSLS_COMPILERFEATURES_FILLT( 0)
115637 >::operator=(
115638 const Variant_Base& rhs)
115639{
115640 if (&rhs != this) {
115641 if (this->d_type == rhs.d_type) {
115642 if (d_type != bsl::variant_npos) {
115643 Variant& self = static_cast<Variant&>(*this);
115644 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
115645 copyAssign(BSLS_UTIL_ADDRESSOF(self));
115647 void, copyAssign, static_cast<const Variant&>(rhs));
115648 }
115649 }
115650 else {
115651 reset();
115652 if (rhs.d_type != bsl::variant_npos) {
115653 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
115654 copyConstructor(this);
115656 void, copyConstructor, static_cast<const Variant&>(rhs));
115657 }
115658 d_type = rhs.d_type;
115659 }
115660 }
115661 return *this;
115662}
115663#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 18
115664
115665
115666#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 0
115667template <class t_HEAD>
115668inline
115669Variant_Base<t_HEAD>& Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
115670 >::operator=(
115671 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115672{
115673 Variant_Base& lvalue = rhs;
115674 if (&lvalue != this) {
115675 if (this->d_type == lvalue.d_type) {
115676 if (d_type != bsl::variant_npos) {
115677 Variant& self = static_cast<Variant&>(*this);
115678 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115679 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115681 void, moveAssign, static_cast<Variant&>(lvalue));
115682 }
115683 }
115684 else {
115685 reset();
115686 if (lvalue.d_type != bsl::variant_npos) {
115687 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115688 moveConstructor(this);
115690 void, moveConstructor, static_cast<Variant&>(lvalue));
115691 }
115692 d_type = lvalue.d_type;
115693 }
115694 }
115695 return *this;
115696}
115697#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 0
115698
115699#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 1
115700template <class t_HEAD, class t_TAIL_01>
115701inline
115702Variant_Base<t_HEAD, t_TAIL_01>& Variant_Base<t_HEAD,
115703 t_TAIL_01,
115704 BSLS_COMPILERFEATURES_FILLT(17)
115705 >::operator=(
115706 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115707{
115708 Variant_Base& lvalue = rhs;
115709 if (&lvalue != this) {
115710 if (this->d_type == lvalue.d_type) {
115711 if (d_type != bsl::variant_npos) {
115712 Variant& self = static_cast<Variant&>(*this);
115713 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115714 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115716 void, moveAssign, static_cast<Variant&>(lvalue));
115717 }
115718 }
115719 else {
115720 reset();
115721 if (lvalue.d_type != bsl::variant_npos) {
115722 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115723 moveConstructor(this);
115725 void, moveConstructor, static_cast<Variant&>(lvalue));
115726 }
115727 d_type = lvalue.d_type;
115728 }
115729 }
115730 return *this;
115731}
115732#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 1
115733
115734#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 2
115735template <class t_HEAD, class t_TAIL_01,
115736 class t_TAIL_02>
115737inline
115738Variant_Base<t_HEAD, t_TAIL_01,
115739 t_TAIL_02>& Variant_Base<t_HEAD,
115740 t_TAIL_01,
115741 t_TAIL_02,
115742 BSLS_COMPILERFEATURES_FILLT(16)
115743 >::operator=(
115744 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115745{
115746 Variant_Base& lvalue = rhs;
115747 if (&lvalue != this) {
115748 if (this->d_type == lvalue.d_type) {
115749 if (d_type != bsl::variant_npos) {
115750 Variant& self = static_cast<Variant&>(*this);
115751 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115752 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115754 void, moveAssign, static_cast<Variant&>(lvalue));
115755 }
115756 }
115757 else {
115758 reset();
115759 if (lvalue.d_type != bsl::variant_npos) {
115760 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115761 moveConstructor(this);
115763 void, moveConstructor, static_cast<Variant&>(lvalue));
115764 }
115765 d_type = lvalue.d_type;
115766 }
115767 }
115768 return *this;
115769}
115770#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 2
115771
115772#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 3
115773template <class t_HEAD, class t_TAIL_01,
115774 class t_TAIL_02,
115775 class t_TAIL_03>
115776inline
115777Variant_Base<t_HEAD, t_TAIL_01,
115778 t_TAIL_02,
115779 t_TAIL_03>& Variant_Base<t_HEAD,
115780 t_TAIL_01,
115781 t_TAIL_02,
115782 t_TAIL_03,
115783 BSLS_COMPILERFEATURES_FILLT(15)
115784 >::operator=(
115785 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115786{
115787 Variant_Base& lvalue = rhs;
115788 if (&lvalue != this) {
115789 if (this->d_type == lvalue.d_type) {
115790 if (d_type != bsl::variant_npos) {
115791 Variant& self = static_cast<Variant&>(*this);
115792 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115793 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115795 void, moveAssign, static_cast<Variant&>(lvalue));
115796 }
115797 }
115798 else {
115799 reset();
115800 if (lvalue.d_type != bsl::variant_npos) {
115801 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115802 moveConstructor(this);
115804 void, moveConstructor, static_cast<Variant&>(lvalue));
115805 }
115806 d_type = lvalue.d_type;
115807 }
115808 }
115809 return *this;
115810}
115811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 3
115812
115813#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 4
115814template <class t_HEAD, class t_TAIL_01,
115815 class t_TAIL_02,
115816 class t_TAIL_03,
115817 class t_TAIL_04>
115818inline
115819Variant_Base<t_HEAD, t_TAIL_01,
115820 t_TAIL_02,
115821 t_TAIL_03,
115822 t_TAIL_04>& Variant_Base<t_HEAD,
115823 t_TAIL_01,
115824 t_TAIL_02,
115825 t_TAIL_03,
115826 t_TAIL_04,
115827 BSLS_COMPILERFEATURES_FILLT(14)
115828 >::operator=(
115829 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115830{
115831 Variant_Base& lvalue = rhs;
115832 if (&lvalue != this) {
115833 if (this->d_type == lvalue.d_type) {
115834 if (d_type != bsl::variant_npos) {
115835 Variant& self = static_cast<Variant&>(*this);
115836 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115837 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115839 void, moveAssign, static_cast<Variant&>(lvalue));
115840 }
115841 }
115842 else {
115843 reset();
115844 if (lvalue.d_type != bsl::variant_npos) {
115845 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115846 moveConstructor(this);
115848 void, moveConstructor, static_cast<Variant&>(lvalue));
115849 }
115850 d_type = lvalue.d_type;
115851 }
115852 }
115853 return *this;
115854}
115855#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 4
115856
115857#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 5
115858template <class t_HEAD, class t_TAIL_01,
115859 class t_TAIL_02,
115860 class t_TAIL_03,
115861 class t_TAIL_04,
115862 class t_TAIL_05>
115863inline
115864Variant_Base<t_HEAD, t_TAIL_01,
115865 t_TAIL_02,
115866 t_TAIL_03,
115867 t_TAIL_04,
115868 t_TAIL_05>& Variant_Base<t_HEAD,
115869 t_TAIL_01,
115870 t_TAIL_02,
115871 t_TAIL_03,
115872 t_TAIL_04,
115873 t_TAIL_05,
115874 BSLS_COMPILERFEATURES_FILLT(13)
115875 >::operator=(
115876 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115877{
115878 Variant_Base& lvalue = rhs;
115879 if (&lvalue != this) {
115880 if (this->d_type == lvalue.d_type) {
115881 if (d_type != bsl::variant_npos) {
115882 Variant& self = static_cast<Variant&>(*this);
115883 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115884 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115886 void, moveAssign, static_cast<Variant&>(lvalue));
115887 }
115888 }
115889 else {
115890 reset();
115891 if (lvalue.d_type != bsl::variant_npos) {
115892 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115893 moveConstructor(this);
115895 void, moveConstructor, static_cast<Variant&>(lvalue));
115896 }
115897 d_type = lvalue.d_type;
115898 }
115899 }
115900 return *this;
115901}
115902#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 5
115903
115904#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 6
115905template <class t_HEAD, class t_TAIL_01,
115906 class t_TAIL_02,
115907 class t_TAIL_03,
115908 class t_TAIL_04,
115909 class t_TAIL_05,
115910 class t_TAIL_06>
115911inline
115912Variant_Base<t_HEAD, t_TAIL_01,
115913 t_TAIL_02,
115914 t_TAIL_03,
115915 t_TAIL_04,
115916 t_TAIL_05,
115917 t_TAIL_06>& Variant_Base<t_HEAD,
115918 t_TAIL_01,
115919 t_TAIL_02,
115920 t_TAIL_03,
115921 t_TAIL_04,
115922 t_TAIL_05,
115923 t_TAIL_06,
115924 BSLS_COMPILERFEATURES_FILLT(12)
115925 >::operator=(
115926 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115927{
115928 Variant_Base& lvalue = rhs;
115929 if (&lvalue != this) {
115930 if (this->d_type == lvalue.d_type) {
115931 if (d_type != bsl::variant_npos) {
115932 Variant& self = static_cast<Variant&>(*this);
115933 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115934 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115936 void, moveAssign, static_cast<Variant&>(lvalue));
115937 }
115938 }
115939 else {
115940 reset();
115941 if (lvalue.d_type != bsl::variant_npos) {
115942 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115943 moveConstructor(this);
115945 void, moveConstructor, static_cast<Variant&>(lvalue));
115946 }
115947 d_type = lvalue.d_type;
115948 }
115949 }
115950 return *this;
115951}
115952#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 6
115953
115954#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 7
115955template <class t_HEAD, class t_TAIL_01,
115956 class t_TAIL_02,
115957 class t_TAIL_03,
115958 class t_TAIL_04,
115959 class t_TAIL_05,
115960 class t_TAIL_06,
115961 class t_TAIL_07>
115962inline
115963Variant_Base<t_HEAD, t_TAIL_01,
115964 t_TAIL_02,
115965 t_TAIL_03,
115966 t_TAIL_04,
115967 t_TAIL_05,
115968 t_TAIL_06,
115969 t_TAIL_07>& Variant_Base<t_HEAD,
115970 t_TAIL_01,
115971 t_TAIL_02,
115972 t_TAIL_03,
115973 t_TAIL_04,
115974 t_TAIL_05,
115975 t_TAIL_06,
115976 t_TAIL_07,
115977 BSLS_COMPILERFEATURES_FILLT(11)
115978 >::operator=(
115979 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
115980{
115981 Variant_Base& lvalue = rhs;
115982 if (&lvalue != this) {
115983 if (this->d_type == lvalue.d_type) {
115984 if (d_type != bsl::variant_npos) {
115985 Variant& self = static_cast<Variant&>(*this);
115986 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
115987 moveAssign(BSLS_UTIL_ADDRESSOF(self));
115989 void, moveAssign, static_cast<Variant&>(lvalue));
115990 }
115991 }
115992 else {
115993 reset();
115994 if (lvalue.d_type != bsl::variant_npos) {
115995 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
115996 moveConstructor(this);
115998 void, moveConstructor, static_cast<Variant&>(lvalue));
115999 }
116000 d_type = lvalue.d_type;
116001 }
116002 }
116003 return *this;
116004}
116005#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 7
116006
116007#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 8
116008template <class t_HEAD, class t_TAIL_01,
116009 class t_TAIL_02,
116010 class t_TAIL_03,
116011 class t_TAIL_04,
116012 class t_TAIL_05,
116013 class t_TAIL_06,
116014 class t_TAIL_07,
116015 class t_TAIL_08>
116016inline
116017Variant_Base<t_HEAD, t_TAIL_01,
116018 t_TAIL_02,
116019 t_TAIL_03,
116020 t_TAIL_04,
116021 t_TAIL_05,
116022 t_TAIL_06,
116023 t_TAIL_07,
116024 t_TAIL_08>& Variant_Base<t_HEAD,
116025 t_TAIL_01,
116026 t_TAIL_02,
116027 t_TAIL_03,
116028 t_TAIL_04,
116029 t_TAIL_05,
116030 t_TAIL_06,
116031 t_TAIL_07,
116032 t_TAIL_08,
116033 BSLS_COMPILERFEATURES_FILLT(10)
116034 >::operator=(
116035 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116036{
116037 Variant_Base& lvalue = rhs;
116038 if (&lvalue != this) {
116039 if (this->d_type == lvalue.d_type) {
116040 if (d_type != bsl::variant_npos) {
116041 Variant& self = static_cast<Variant&>(*this);
116042 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116043 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116045 void, moveAssign, static_cast<Variant&>(lvalue));
116046 }
116047 }
116048 else {
116049 reset();
116050 if (lvalue.d_type != bsl::variant_npos) {
116051 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116052 moveConstructor(this);
116054 void, moveConstructor, static_cast<Variant&>(lvalue));
116055 }
116056 d_type = lvalue.d_type;
116057 }
116058 }
116059 return *this;
116060}
116061#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 8
116062
116063#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 9
116064template <class t_HEAD, class t_TAIL_01,
116065 class t_TAIL_02,
116066 class t_TAIL_03,
116067 class t_TAIL_04,
116068 class t_TAIL_05,
116069 class t_TAIL_06,
116070 class t_TAIL_07,
116071 class t_TAIL_08,
116072 class t_TAIL_09>
116073inline
116074Variant_Base<t_HEAD, t_TAIL_01,
116075 t_TAIL_02,
116076 t_TAIL_03,
116077 t_TAIL_04,
116078 t_TAIL_05,
116079 t_TAIL_06,
116080 t_TAIL_07,
116081 t_TAIL_08,
116082 t_TAIL_09>& Variant_Base<t_HEAD,
116083 t_TAIL_01,
116084 t_TAIL_02,
116085 t_TAIL_03,
116086 t_TAIL_04,
116087 t_TAIL_05,
116088 t_TAIL_06,
116089 t_TAIL_07,
116090 t_TAIL_08,
116091 t_TAIL_09,
116092 BSLS_COMPILERFEATURES_FILLT( 9)
116093 >::operator=(
116094 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116095{
116096 Variant_Base& lvalue = rhs;
116097 if (&lvalue != this) {
116098 if (this->d_type == lvalue.d_type) {
116099 if (d_type != bsl::variant_npos) {
116100 Variant& self = static_cast<Variant&>(*this);
116101 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116102 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116104 void, moveAssign, static_cast<Variant&>(lvalue));
116105 }
116106 }
116107 else {
116108 reset();
116109 if (lvalue.d_type != bsl::variant_npos) {
116110 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116111 moveConstructor(this);
116113 void, moveConstructor, static_cast<Variant&>(lvalue));
116114 }
116115 d_type = lvalue.d_type;
116116 }
116117 }
116118 return *this;
116119}
116120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 9
116121
116122#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 10
116123template <class t_HEAD, class t_TAIL_01,
116124 class t_TAIL_02,
116125 class t_TAIL_03,
116126 class t_TAIL_04,
116127 class t_TAIL_05,
116128 class t_TAIL_06,
116129 class t_TAIL_07,
116130 class t_TAIL_08,
116131 class t_TAIL_09,
116132 class t_TAIL_10>
116133inline
116134Variant_Base<t_HEAD, t_TAIL_01,
116135 t_TAIL_02,
116136 t_TAIL_03,
116137 t_TAIL_04,
116138 t_TAIL_05,
116139 t_TAIL_06,
116140 t_TAIL_07,
116141 t_TAIL_08,
116142 t_TAIL_09,
116143 t_TAIL_10>& Variant_Base<t_HEAD,
116144 t_TAIL_01,
116145 t_TAIL_02,
116146 t_TAIL_03,
116147 t_TAIL_04,
116148 t_TAIL_05,
116149 t_TAIL_06,
116150 t_TAIL_07,
116151 t_TAIL_08,
116152 t_TAIL_09,
116153 t_TAIL_10,
116154 BSLS_COMPILERFEATURES_FILLT( 8)
116155 >::operator=(
116156 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116157{
116158 Variant_Base& lvalue = rhs;
116159 if (&lvalue != this) {
116160 if (this->d_type == lvalue.d_type) {
116161 if (d_type != bsl::variant_npos) {
116162 Variant& self = static_cast<Variant&>(*this);
116163 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116164 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116166 void, moveAssign, static_cast<Variant&>(lvalue));
116167 }
116168 }
116169 else {
116170 reset();
116171 if (lvalue.d_type != bsl::variant_npos) {
116172 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116173 moveConstructor(this);
116175 void, moveConstructor, static_cast<Variant&>(lvalue));
116176 }
116177 d_type = lvalue.d_type;
116178 }
116179 }
116180 return *this;
116181}
116182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 10
116183
116184#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 11
116185template <class t_HEAD, class t_TAIL_01,
116186 class t_TAIL_02,
116187 class t_TAIL_03,
116188 class t_TAIL_04,
116189 class t_TAIL_05,
116190 class t_TAIL_06,
116191 class t_TAIL_07,
116192 class t_TAIL_08,
116193 class t_TAIL_09,
116194 class t_TAIL_10,
116195 class t_TAIL_11>
116196inline
116197Variant_Base<t_HEAD, t_TAIL_01,
116198 t_TAIL_02,
116199 t_TAIL_03,
116200 t_TAIL_04,
116201 t_TAIL_05,
116202 t_TAIL_06,
116203 t_TAIL_07,
116204 t_TAIL_08,
116205 t_TAIL_09,
116206 t_TAIL_10,
116207 t_TAIL_11>& Variant_Base<t_HEAD,
116208 t_TAIL_01,
116209 t_TAIL_02,
116210 t_TAIL_03,
116211 t_TAIL_04,
116212 t_TAIL_05,
116213 t_TAIL_06,
116214 t_TAIL_07,
116215 t_TAIL_08,
116216 t_TAIL_09,
116217 t_TAIL_10,
116218 t_TAIL_11,
116219 BSLS_COMPILERFEATURES_FILLT( 7)
116220 >::operator=(
116221 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116222{
116223 Variant_Base& lvalue = rhs;
116224 if (&lvalue != this) {
116225 if (this->d_type == lvalue.d_type) {
116226 if (d_type != bsl::variant_npos) {
116227 Variant& self = static_cast<Variant&>(*this);
116228 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116229 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116231 void, moveAssign, static_cast<Variant&>(lvalue));
116232 }
116233 }
116234 else {
116235 reset();
116236 if (lvalue.d_type != bsl::variant_npos) {
116237 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116238 moveConstructor(this);
116240 void, moveConstructor, static_cast<Variant&>(lvalue));
116241 }
116242 d_type = lvalue.d_type;
116243 }
116244 }
116245 return *this;
116246}
116247#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 11
116248
116249#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 12
116250template <class t_HEAD, class t_TAIL_01,
116251 class t_TAIL_02,
116252 class t_TAIL_03,
116253 class t_TAIL_04,
116254 class t_TAIL_05,
116255 class t_TAIL_06,
116256 class t_TAIL_07,
116257 class t_TAIL_08,
116258 class t_TAIL_09,
116259 class t_TAIL_10,
116260 class t_TAIL_11,
116261 class t_TAIL_12>
116262inline
116263Variant_Base<t_HEAD, t_TAIL_01,
116264 t_TAIL_02,
116265 t_TAIL_03,
116266 t_TAIL_04,
116267 t_TAIL_05,
116268 t_TAIL_06,
116269 t_TAIL_07,
116270 t_TAIL_08,
116271 t_TAIL_09,
116272 t_TAIL_10,
116273 t_TAIL_11,
116274 t_TAIL_12>& Variant_Base<t_HEAD,
116275 t_TAIL_01,
116276 t_TAIL_02,
116277 t_TAIL_03,
116278 t_TAIL_04,
116279 t_TAIL_05,
116280 t_TAIL_06,
116281 t_TAIL_07,
116282 t_TAIL_08,
116283 t_TAIL_09,
116284 t_TAIL_10,
116285 t_TAIL_11,
116286 t_TAIL_12,
116287 BSLS_COMPILERFEATURES_FILLT( 6)
116288 >::operator=(
116289 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116290{
116291 Variant_Base& lvalue = rhs;
116292 if (&lvalue != this) {
116293 if (this->d_type == lvalue.d_type) {
116294 if (d_type != bsl::variant_npos) {
116295 Variant& self = static_cast<Variant&>(*this);
116296 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116297 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116299 void, moveAssign, static_cast<Variant&>(lvalue));
116300 }
116301 }
116302 else {
116303 reset();
116304 if (lvalue.d_type != bsl::variant_npos) {
116305 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116306 moveConstructor(this);
116308 void, moveConstructor, static_cast<Variant&>(lvalue));
116309 }
116310 d_type = lvalue.d_type;
116311 }
116312 }
116313 return *this;
116314}
116315#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 12
116316
116317#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 13
116318template <class t_HEAD, class t_TAIL_01,
116319 class t_TAIL_02,
116320 class t_TAIL_03,
116321 class t_TAIL_04,
116322 class t_TAIL_05,
116323 class t_TAIL_06,
116324 class t_TAIL_07,
116325 class t_TAIL_08,
116326 class t_TAIL_09,
116327 class t_TAIL_10,
116328 class t_TAIL_11,
116329 class t_TAIL_12,
116330 class t_TAIL_13>
116331inline
116332Variant_Base<t_HEAD, t_TAIL_01,
116333 t_TAIL_02,
116334 t_TAIL_03,
116335 t_TAIL_04,
116336 t_TAIL_05,
116337 t_TAIL_06,
116338 t_TAIL_07,
116339 t_TAIL_08,
116340 t_TAIL_09,
116341 t_TAIL_10,
116342 t_TAIL_11,
116343 t_TAIL_12,
116344 t_TAIL_13>& Variant_Base<t_HEAD,
116345 t_TAIL_01,
116346 t_TAIL_02,
116347 t_TAIL_03,
116348 t_TAIL_04,
116349 t_TAIL_05,
116350 t_TAIL_06,
116351 t_TAIL_07,
116352 t_TAIL_08,
116353 t_TAIL_09,
116354 t_TAIL_10,
116355 t_TAIL_11,
116356 t_TAIL_12,
116357 t_TAIL_13,
116358 BSLS_COMPILERFEATURES_FILLT( 5)
116359 >::operator=(
116360 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116361{
116362 Variant_Base& lvalue = rhs;
116363 if (&lvalue != this) {
116364 if (this->d_type == lvalue.d_type) {
116365 if (d_type != bsl::variant_npos) {
116366 Variant& self = static_cast<Variant&>(*this);
116367 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116368 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116370 void, moveAssign, static_cast<Variant&>(lvalue));
116371 }
116372 }
116373 else {
116374 reset();
116375 if (lvalue.d_type != bsl::variant_npos) {
116376 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116377 moveConstructor(this);
116379 void, moveConstructor, static_cast<Variant&>(lvalue));
116380 }
116381 d_type = lvalue.d_type;
116382 }
116383 }
116384 return *this;
116385}
116386#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 13
116387
116388#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 14
116389template <class t_HEAD, class t_TAIL_01,
116390 class t_TAIL_02,
116391 class t_TAIL_03,
116392 class t_TAIL_04,
116393 class t_TAIL_05,
116394 class t_TAIL_06,
116395 class t_TAIL_07,
116396 class t_TAIL_08,
116397 class t_TAIL_09,
116398 class t_TAIL_10,
116399 class t_TAIL_11,
116400 class t_TAIL_12,
116401 class t_TAIL_13,
116402 class t_TAIL_14>
116403inline
116404Variant_Base<t_HEAD, t_TAIL_01,
116405 t_TAIL_02,
116406 t_TAIL_03,
116407 t_TAIL_04,
116408 t_TAIL_05,
116409 t_TAIL_06,
116410 t_TAIL_07,
116411 t_TAIL_08,
116412 t_TAIL_09,
116413 t_TAIL_10,
116414 t_TAIL_11,
116415 t_TAIL_12,
116416 t_TAIL_13,
116417 t_TAIL_14>& Variant_Base<t_HEAD,
116418 t_TAIL_01,
116419 t_TAIL_02,
116420 t_TAIL_03,
116421 t_TAIL_04,
116422 t_TAIL_05,
116423 t_TAIL_06,
116424 t_TAIL_07,
116425 t_TAIL_08,
116426 t_TAIL_09,
116427 t_TAIL_10,
116428 t_TAIL_11,
116429 t_TAIL_12,
116430 t_TAIL_13,
116431 t_TAIL_14,
116432 BSLS_COMPILERFEATURES_FILLT( 4)
116433 >::operator=(
116434 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116435{
116436 Variant_Base& lvalue = rhs;
116437 if (&lvalue != this) {
116438 if (this->d_type == lvalue.d_type) {
116439 if (d_type != bsl::variant_npos) {
116440 Variant& self = static_cast<Variant&>(*this);
116441 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116442 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116444 void, moveAssign, static_cast<Variant&>(lvalue));
116445 }
116446 }
116447 else {
116448 reset();
116449 if (lvalue.d_type != bsl::variant_npos) {
116450 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116451 moveConstructor(this);
116453 void, moveConstructor, static_cast<Variant&>(lvalue));
116454 }
116455 d_type = lvalue.d_type;
116456 }
116457 }
116458 return *this;
116459}
116460#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 14
116461
116462#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 15
116463template <class t_HEAD, class t_TAIL_01,
116464 class t_TAIL_02,
116465 class t_TAIL_03,
116466 class t_TAIL_04,
116467 class t_TAIL_05,
116468 class t_TAIL_06,
116469 class t_TAIL_07,
116470 class t_TAIL_08,
116471 class t_TAIL_09,
116472 class t_TAIL_10,
116473 class t_TAIL_11,
116474 class t_TAIL_12,
116475 class t_TAIL_13,
116476 class t_TAIL_14,
116477 class t_TAIL_15>
116478inline
116479Variant_Base<t_HEAD, t_TAIL_01,
116480 t_TAIL_02,
116481 t_TAIL_03,
116482 t_TAIL_04,
116483 t_TAIL_05,
116484 t_TAIL_06,
116485 t_TAIL_07,
116486 t_TAIL_08,
116487 t_TAIL_09,
116488 t_TAIL_10,
116489 t_TAIL_11,
116490 t_TAIL_12,
116491 t_TAIL_13,
116492 t_TAIL_14,
116493 t_TAIL_15>& Variant_Base<t_HEAD,
116494 t_TAIL_01,
116495 t_TAIL_02,
116496 t_TAIL_03,
116497 t_TAIL_04,
116498 t_TAIL_05,
116499 t_TAIL_06,
116500 t_TAIL_07,
116501 t_TAIL_08,
116502 t_TAIL_09,
116503 t_TAIL_10,
116504 t_TAIL_11,
116505 t_TAIL_12,
116506 t_TAIL_13,
116507 t_TAIL_14,
116508 t_TAIL_15,
116509 BSLS_COMPILERFEATURES_FILLT( 3)
116510 >::operator=(
116511 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116512{
116513 Variant_Base& lvalue = rhs;
116514 if (&lvalue != this) {
116515 if (this->d_type == lvalue.d_type) {
116516 if (d_type != bsl::variant_npos) {
116517 Variant& self = static_cast<Variant&>(*this);
116518 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116519 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116521 void, moveAssign, static_cast<Variant&>(lvalue));
116522 }
116523 }
116524 else {
116525 reset();
116526 if (lvalue.d_type != bsl::variant_npos) {
116527 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116528 moveConstructor(this);
116530 void, moveConstructor, static_cast<Variant&>(lvalue));
116531 }
116532 d_type = lvalue.d_type;
116533 }
116534 }
116535 return *this;
116536}
116537#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 15
116538
116539#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 16
116540template <class t_HEAD, class t_TAIL_01,
116541 class t_TAIL_02,
116542 class t_TAIL_03,
116543 class t_TAIL_04,
116544 class t_TAIL_05,
116545 class t_TAIL_06,
116546 class t_TAIL_07,
116547 class t_TAIL_08,
116548 class t_TAIL_09,
116549 class t_TAIL_10,
116550 class t_TAIL_11,
116551 class t_TAIL_12,
116552 class t_TAIL_13,
116553 class t_TAIL_14,
116554 class t_TAIL_15,
116555 class t_TAIL_16>
116556inline
116557Variant_Base<t_HEAD, t_TAIL_01,
116558 t_TAIL_02,
116559 t_TAIL_03,
116560 t_TAIL_04,
116561 t_TAIL_05,
116562 t_TAIL_06,
116563 t_TAIL_07,
116564 t_TAIL_08,
116565 t_TAIL_09,
116566 t_TAIL_10,
116567 t_TAIL_11,
116568 t_TAIL_12,
116569 t_TAIL_13,
116570 t_TAIL_14,
116571 t_TAIL_15,
116572 t_TAIL_16>& Variant_Base<t_HEAD,
116573 t_TAIL_01,
116574 t_TAIL_02,
116575 t_TAIL_03,
116576 t_TAIL_04,
116577 t_TAIL_05,
116578 t_TAIL_06,
116579 t_TAIL_07,
116580 t_TAIL_08,
116581 t_TAIL_09,
116582 t_TAIL_10,
116583 t_TAIL_11,
116584 t_TAIL_12,
116585 t_TAIL_13,
116586 t_TAIL_14,
116587 t_TAIL_15,
116588 t_TAIL_16,
116589 BSLS_COMPILERFEATURES_FILLT( 2)
116590 >::operator=(
116591 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116592{
116593 Variant_Base& lvalue = rhs;
116594 if (&lvalue != this) {
116595 if (this->d_type == lvalue.d_type) {
116596 if (d_type != bsl::variant_npos) {
116597 Variant& self = static_cast<Variant&>(*this);
116598 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116599 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116601 void, moveAssign, static_cast<Variant&>(lvalue));
116602 }
116603 }
116604 else {
116605 reset();
116606 if (lvalue.d_type != bsl::variant_npos) {
116607 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116608 moveConstructor(this);
116610 void, moveConstructor, static_cast<Variant&>(lvalue));
116611 }
116612 d_type = lvalue.d_type;
116613 }
116614 }
116615 return *this;
116616}
116617#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 16
116618
116619#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 17
116620template <class t_HEAD, class t_TAIL_01,
116621 class t_TAIL_02,
116622 class t_TAIL_03,
116623 class t_TAIL_04,
116624 class t_TAIL_05,
116625 class t_TAIL_06,
116626 class t_TAIL_07,
116627 class t_TAIL_08,
116628 class t_TAIL_09,
116629 class t_TAIL_10,
116630 class t_TAIL_11,
116631 class t_TAIL_12,
116632 class t_TAIL_13,
116633 class t_TAIL_14,
116634 class t_TAIL_15,
116635 class t_TAIL_16,
116636 class t_TAIL_17>
116637inline
116638Variant_Base<t_HEAD, t_TAIL_01,
116639 t_TAIL_02,
116640 t_TAIL_03,
116641 t_TAIL_04,
116642 t_TAIL_05,
116643 t_TAIL_06,
116644 t_TAIL_07,
116645 t_TAIL_08,
116646 t_TAIL_09,
116647 t_TAIL_10,
116648 t_TAIL_11,
116649 t_TAIL_12,
116650 t_TAIL_13,
116651 t_TAIL_14,
116652 t_TAIL_15,
116653 t_TAIL_16,
116654 t_TAIL_17>& Variant_Base<t_HEAD,
116655 t_TAIL_01,
116656 t_TAIL_02,
116657 t_TAIL_03,
116658 t_TAIL_04,
116659 t_TAIL_05,
116660 t_TAIL_06,
116661 t_TAIL_07,
116662 t_TAIL_08,
116663 t_TAIL_09,
116664 t_TAIL_10,
116665 t_TAIL_11,
116666 t_TAIL_12,
116667 t_TAIL_13,
116668 t_TAIL_14,
116669 t_TAIL_15,
116670 t_TAIL_16,
116671 t_TAIL_17,
116672 BSLS_COMPILERFEATURES_FILLT( 1)
116673 >::operator=(
116674 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116675{
116676 Variant_Base& lvalue = rhs;
116677 if (&lvalue != this) {
116678 if (this->d_type == lvalue.d_type) {
116679 if (d_type != bsl::variant_npos) {
116680 Variant& self = static_cast<Variant&>(*this);
116681 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116682 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116684 void, moveAssign, static_cast<Variant&>(lvalue));
116685 }
116686 }
116687 else {
116688 reset();
116689 if (lvalue.d_type != bsl::variant_npos) {
116690 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116691 moveConstructor(this);
116693 void, moveConstructor, static_cast<Variant&>(lvalue));
116694 }
116695 d_type = lvalue.d_type;
116696 }
116697 }
116698 return *this;
116699}
116700#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 17
116701
116702#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 18
116703template <class t_HEAD, class t_TAIL_01,
116704 class t_TAIL_02,
116705 class t_TAIL_03,
116706 class t_TAIL_04,
116707 class t_TAIL_05,
116708 class t_TAIL_06,
116709 class t_TAIL_07,
116710 class t_TAIL_08,
116711 class t_TAIL_09,
116712 class t_TAIL_10,
116713 class t_TAIL_11,
116714 class t_TAIL_12,
116715 class t_TAIL_13,
116716 class t_TAIL_14,
116717 class t_TAIL_15,
116718 class t_TAIL_16,
116719 class t_TAIL_17,
116720 class t_TAIL_18>
116721inline
116722Variant_Base<t_HEAD, t_TAIL_01,
116723 t_TAIL_02,
116724 t_TAIL_03,
116725 t_TAIL_04,
116726 t_TAIL_05,
116727 t_TAIL_06,
116728 t_TAIL_07,
116729 t_TAIL_08,
116730 t_TAIL_09,
116731 t_TAIL_10,
116732 t_TAIL_11,
116733 t_TAIL_12,
116734 t_TAIL_13,
116735 t_TAIL_14,
116736 t_TAIL_15,
116737 t_TAIL_16,
116738 t_TAIL_17,
116739 t_TAIL_18>& Variant_Base<t_HEAD,
116740 t_TAIL_01,
116741 t_TAIL_02,
116742 t_TAIL_03,
116743 t_TAIL_04,
116744 t_TAIL_05,
116745 t_TAIL_06,
116746 t_TAIL_07,
116747 t_TAIL_08,
116748 t_TAIL_09,
116749 t_TAIL_10,
116750 t_TAIL_11,
116751 t_TAIL_12,
116752 t_TAIL_13,
116753 t_TAIL_14,
116754 t_TAIL_15,
116755 t_TAIL_16,
116756 t_TAIL_17,
116757 t_TAIL_18,
116758 BSLS_COMPILERFEATURES_FILLT( 0)
116759 >::operator=(
116760 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
116761{
116762 Variant_Base& lvalue = rhs;
116763 if (&lvalue != this) {
116764 if (this->d_type == lvalue.d_type) {
116765 if (d_type != bsl::variant_npos) {
116766 Variant& self = static_cast<Variant&>(*this);
116767 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
116768 moveAssign(BSLS_UTIL_ADDRESSOF(self));
116770 void, moveAssign, static_cast<Variant&>(lvalue));
116771 }
116772 }
116773 else {
116774 reset();
116775 if (lvalue.d_type != bsl::variant_npos) {
116776 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
116777 moveConstructor(this);
116779 void, moveConstructor, static_cast<Variant&>(lvalue));
116780 }
116781 d_type = lvalue.d_type;
116782 }
116783 }
116784 return *this;
116785}
116786#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 18
116787
116788#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 0
116789template <class t_HEAD>
116790void Variant_Base<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
116791 >::reset() BSLS_KEYWORD_NOEXCEPT
116792{
116793 if (d_type != bsl::variant_npos) {
116794 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116795 bsl::visit(destructor, static_cast<Variant&>(*this));
116796 d_type = bsl::variant_npos;
116797 }
116798}
116799#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 0
116800
116801#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 1
116802template <class t_HEAD, class t_TAIL_01>
116803void Variant_Base<t_HEAD, t_TAIL_01,
116804 BSLS_COMPILERFEATURES_FILLT(17)
116805 >::reset() BSLS_KEYWORD_NOEXCEPT
116806{
116807 if (d_type != bsl::variant_npos) {
116808 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116809 bsl::visit(destructor, static_cast<Variant&>(*this));
116810 d_type = bsl::variant_npos;
116811 }
116812}
116813#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 1
116814
116815#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 2
116816template <class t_HEAD, class t_TAIL_01,
116817 class t_TAIL_02>
116818void Variant_Base<t_HEAD, t_TAIL_01,
116819 t_TAIL_02,
116820 BSLS_COMPILERFEATURES_FILLT(16)
116821 >::reset() BSLS_KEYWORD_NOEXCEPT
116822{
116823 if (d_type != bsl::variant_npos) {
116824 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116825 bsl::visit(destructor, static_cast<Variant&>(*this));
116826 d_type = bsl::variant_npos;
116827 }
116828}
116829#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 2
116830
116831#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 3
116832template <class t_HEAD, class t_TAIL_01,
116833 class t_TAIL_02,
116834 class t_TAIL_03>
116835void Variant_Base<t_HEAD, t_TAIL_01,
116836 t_TAIL_02,
116837 t_TAIL_03,
116838 BSLS_COMPILERFEATURES_FILLT(15)
116839 >::reset() BSLS_KEYWORD_NOEXCEPT
116840{
116841 if (d_type != bsl::variant_npos) {
116842 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116843 bsl::visit(destructor, static_cast<Variant&>(*this));
116844 d_type = bsl::variant_npos;
116845 }
116846}
116847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 3
116848
116849#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 4
116850template <class t_HEAD, class t_TAIL_01,
116851 class t_TAIL_02,
116852 class t_TAIL_03,
116853 class t_TAIL_04>
116854void Variant_Base<t_HEAD, t_TAIL_01,
116855 t_TAIL_02,
116856 t_TAIL_03,
116857 t_TAIL_04,
116858 BSLS_COMPILERFEATURES_FILLT(14)
116859 >::reset() BSLS_KEYWORD_NOEXCEPT
116860{
116861 if (d_type != bsl::variant_npos) {
116862 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116863 bsl::visit(destructor, static_cast<Variant&>(*this));
116864 d_type = bsl::variant_npos;
116865 }
116866}
116867#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 4
116868
116869#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 5
116870template <class t_HEAD, class t_TAIL_01,
116871 class t_TAIL_02,
116872 class t_TAIL_03,
116873 class t_TAIL_04,
116874 class t_TAIL_05>
116875void Variant_Base<t_HEAD, t_TAIL_01,
116876 t_TAIL_02,
116877 t_TAIL_03,
116878 t_TAIL_04,
116879 t_TAIL_05,
116880 BSLS_COMPILERFEATURES_FILLT(13)
116881 >::reset() BSLS_KEYWORD_NOEXCEPT
116882{
116883 if (d_type != bsl::variant_npos) {
116884 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116885 bsl::visit(destructor, static_cast<Variant&>(*this));
116886 d_type = bsl::variant_npos;
116887 }
116888}
116889#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 5
116890
116891#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 6
116892template <class t_HEAD, class t_TAIL_01,
116893 class t_TAIL_02,
116894 class t_TAIL_03,
116895 class t_TAIL_04,
116896 class t_TAIL_05,
116897 class t_TAIL_06>
116898void Variant_Base<t_HEAD, t_TAIL_01,
116899 t_TAIL_02,
116900 t_TAIL_03,
116901 t_TAIL_04,
116902 t_TAIL_05,
116903 t_TAIL_06,
116904 BSLS_COMPILERFEATURES_FILLT(12)
116905 >::reset() BSLS_KEYWORD_NOEXCEPT
116906{
116907 if (d_type != bsl::variant_npos) {
116908 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116909 bsl::visit(destructor, static_cast<Variant&>(*this));
116910 d_type = bsl::variant_npos;
116911 }
116912}
116913#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 6
116914
116915#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 7
116916template <class t_HEAD, class t_TAIL_01,
116917 class t_TAIL_02,
116918 class t_TAIL_03,
116919 class t_TAIL_04,
116920 class t_TAIL_05,
116921 class t_TAIL_06,
116922 class t_TAIL_07>
116923void Variant_Base<t_HEAD, t_TAIL_01,
116924 t_TAIL_02,
116925 t_TAIL_03,
116926 t_TAIL_04,
116927 t_TAIL_05,
116928 t_TAIL_06,
116929 t_TAIL_07,
116930 BSLS_COMPILERFEATURES_FILLT(11)
116931 >::reset() BSLS_KEYWORD_NOEXCEPT
116932{
116933 if (d_type != bsl::variant_npos) {
116934 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116935 bsl::visit(destructor, static_cast<Variant&>(*this));
116936 d_type = bsl::variant_npos;
116937 }
116938}
116939#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 7
116940
116941#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 8
116942template <class t_HEAD, class t_TAIL_01,
116943 class t_TAIL_02,
116944 class t_TAIL_03,
116945 class t_TAIL_04,
116946 class t_TAIL_05,
116947 class t_TAIL_06,
116948 class t_TAIL_07,
116949 class t_TAIL_08>
116950void Variant_Base<t_HEAD, t_TAIL_01,
116951 t_TAIL_02,
116952 t_TAIL_03,
116953 t_TAIL_04,
116954 t_TAIL_05,
116955 t_TAIL_06,
116956 t_TAIL_07,
116957 t_TAIL_08,
116958 BSLS_COMPILERFEATURES_FILLT(10)
116959 >::reset() BSLS_KEYWORD_NOEXCEPT
116960{
116961 if (d_type != bsl::variant_npos) {
116962 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116963 bsl::visit(destructor, static_cast<Variant&>(*this));
116964 d_type = bsl::variant_npos;
116965 }
116966}
116967#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 8
116968
116969#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 9
116970template <class t_HEAD, class t_TAIL_01,
116971 class t_TAIL_02,
116972 class t_TAIL_03,
116973 class t_TAIL_04,
116974 class t_TAIL_05,
116975 class t_TAIL_06,
116976 class t_TAIL_07,
116977 class t_TAIL_08,
116978 class t_TAIL_09>
116979void Variant_Base<t_HEAD, t_TAIL_01,
116980 t_TAIL_02,
116981 t_TAIL_03,
116982 t_TAIL_04,
116983 t_TAIL_05,
116984 t_TAIL_06,
116985 t_TAIL_07,
116986 t_TAIL_08,
116987 t_TAIL_09,
116988 BSLS_COMPILERFEATURES_FILLT( 9)
116989 >::reset() BSLS_KEYWORD_NOEXCEPT
116990{
116991 if (d_type != bsl::variant_npos) {
116992 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
116993 bsl::visit(destructor, static_cast<Variant&>(*this));
116994 d_type = bsl::variant_npos;
116995 }
116996}
116997#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 9
116998
116999#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 10
117000template <class t_HEAD, class t_TAIL_01,
117001 class t_TAIL_02,
117002 class t_TAIL_03,
117003 class t_TAIL_04,
117004 class t_TAIL_05,
117005 class t_TAIL_06,
117006 class t_TAIL_07,
117007 class t_TAIL_08,
117008 class t_TAIL_09,
117009 class t_TAIL_10>
117010void Variant_Base<t_HEAD, t_TAIL_01,
117011 t_TAIL_02,
117012 t_TAIL_03,
117013 t_TAIL_04,
117014 t_TAIL_05,
117015 t_TAIL_06,
117016 t_TAIL_07,
117017 t_TAIL_08,
117018 t_TAIL_09,
117019 t_TAIL_10,
117020 BSLS_COMPILERFEATURES_FILLT( 8)
117021 >::reset() BSLS_KEYWORD_NOEXCEPT
117022{
117023 if (d_type != bsl::variant_npos) {
117024 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117025 bsl::visit(destructor, static_cast<Variant&>(*this));
117026 d_type = bsl::variant_npos;
117027 }
117028}
117029#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 10
117030
117031#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 11
117032template <class t_HEAD, class t_TAIL_01,
117033 class t_TAIL_02,
117034 class t_TAIL_03,
117035 class t_TAIL_04,
117036 class t_TAIL_05,
117037 class t_TAIL_06,
117038 class t_TAIL_07,
117039 class t_TAIL_08,
117040 class t_TAIL_09,
117041 class t_TAIL_10,
117042 class t_TAIL_11>
117043void Variant_Base<t_HEAD, t_TAIL_01,
117044 t_TAIL_02,
117045 t_TAIL_03,
117046 t_TAIL_04,
117047 t_TAIL_05,
117048 t_TAIL_06,
117049 t_TAIL_07,
117050 t_TAIL_08,
117051 t_TAIL_09,
117052 t_TAIL_10,
117053 t_TAIL_11,
117054 BSLS_COMPILERFEATURES_FILLT( 7)
117055 >::reset() BSLS_KEYWORD_NOEXCEPT
117056{
117057 if (d_type != bsl::variant_npos) {
117058 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117059 bsl::visit(destructor, static_cast<Variant&>(*this));
117060 d_type = bsl::variant_npos;
117061 }
117062}
117063#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 11
117064
117065#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 12
117066template <class t_HEAD, class t_TAIL_01,
117067 class t_TAIL_02,
117068 class t_TAIL_03,
117069 class t_TAIL_04,
117070 class t_TAIL_05,
117071 class t_TAIL_06,
117072 class t_TAIL_07,
117073 class t_TAIL_08,
117074 class t_TAIL_09,
117075 class t_TAIL_10,
117076 class t_TAIL_11,
117077 class t_TAIL_12>
117078void Variant_Base<t_HEAD, t_TAIL_01,
117079 t_TAIL_02,
117080 t_TAIL_03,
117081 t_TAIL_04,
117082 t_TAIL_05,
117083 t_TAIL_06,
117084 t_TAIL_07,
117085 t_TAIL_08,
117086 t_TAIL_09,
117087 t_TAIL_10,
117088 t_TAIL_11,
117089 t_TAIL_12,
117090 BSLS_COMPILERFEATURES_FILLT( 6)
117091 >::reset() BSLS_KEYWORD_NOEXCEPT
117092{
117093 if (d_type != bsl::variant_npos) {
117094 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117095 bsl::visit(destructor, static_cast<Variant&>(*this));
117096 d_type = bsl::variant_npos;
117097 }
117098}
117099#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 12
117100
117101#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 13
117102template <class t_HEAD, class t_TAIL_01,
117103 class t_TAIL_02,
117104 class t_TAIL_03,
117105 class t_TAIL_04,
117106 class t_TAIL_05,
117107 class t_TAIL_06,
117108 class t_TAIL_07,
117109 class t_TAIL_08,
117110 class t_TAIL_09,
117111 class t_TAIL_10,
117112 class t_TAIL_11,
117113 class t_TAIL_12,
117114 class t_TAIL_13>
117115void Variant_Base<t_HEAD, t_TAIL_01,
117116 t_TAIL_02,
117117 t_TAIL_03,
117118 t_TAIL_04,
117119 t_TAIL_05,
117120 t_TAIL_06,
117121 t_TAIL_07,
117122 t_TAIL_08,
117123 t_TAIL_09,
117124 t_TAIL_10,
117125 t_TAIL_11,
117126 t_TAIL_12,
117127 t_TAIL_13,
117128 BSLS_COMPILERFEATURES_FILLT( 5)
117129 >::reset() BSLS_KEYWORD_NOEXCEPT
117130{
117131 if (d_type != bsl::variant_npos) {
117132 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117133 bsl::visit(destructor, static_cast<Variant&>(*this));
117134 d_type = bsl::variant_npos;
117135 }
117136}
117137#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 13
117138
117139#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 14
117140template <class t_HEAD, class t_TAIL_01,
117141 class t_TAIL_02,
117142 class t_TAIL_03,
117143 class t_TAIL_04,
117144 class t_TAIL_05,
117145 class t_TAIL_06,
117146 class t_TAIL_07,
117147 class t_TAIL_08,
117148 class t_TAIL_09,
117149 class t_TAIL_10,
117150 class t_TAIL_11,
117151 class t_TAIL_12,
117152 class t_TAIL_13,
117153 class t_TAIL_14>
117154void Variant_Base<t_HEAD, t_TAIL_01,
117155 t_TAIL_02,
117156 t_TAIL_03,
117157 t_TAIL_04,
117158 t_TAIL_05,
117159 t_TAIL_06,
117160 t_TAIL_07,
117161 t_TAIL_08,
117162 t_TAIL_09,
117163 t_TAIL_10,
117164 t_TAIL_11,
117165 t_TAIL_12,
117166 t_TAIL_13,
117167 t_TAIL_14,
117168 BSLS_COMPILERFEATURES_FILLT( 4)
117169 >::reset() BSLS_KEYWORD_NOEXCEPT
117170{
117171 if (d_type != bsl::variant_npos) {
117172 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117173 bsl::visit(destructor, static_cast<Variant&>(*this));
117174 d_type = bsl::variant_npos;
117175 }
117176}
117177#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 14
117178
117179#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 15
117180template <class t_HEAD, class t_TAIL_01,
117181 class t_TAIL_02,
117182 class t_TAIL_03,
117183 class t_TAIL_04,
117184 class t_TAIL_05,
117185 class t_TAIL_06,
117186 class t_TAIL_07,
117187 class t_TAIL_08,
117188 class t_TAIL_09,
117189 class t_TAIL_10,
117190 class t_TAIL_11,
117191 class t_TAIL_12,
117192 class t_TAIL_13,
117193 class t_TAIL_14,
117194 class t_TAIL_15>
117195void Variant_Base<t_HEAD, t_TAIL_01,
117196 t_TAIL_02,
117197 t_TAIL_03,
117198 t_TAIL_04,
117199 t_TAIL_05,
117200 t_TAIL_06,
117201 t_TAIL_07,
117202 t_TAIL_08,
117203 t_TAIL_09,
117204 t_TAIL_10,
117205 t_TAIL_11,
117206 t_TAIL_12,
117207 t_TAIL_13,
117208 t_TAIL_14,
117209 t_TAIL_15,
117210 BSLS_COMPILERFEATURES_FILLT( 3)
117211 >::reset() BSLS_KEYWORD_NOEXCEPT
117212{
117213 if (d_type != bsl::variant_npos) {
117214 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117215 bsl::visit(destructor, static_cast<Variant&>(*this));
117216 d_type = bsl::variant_npos;
117217 }
117218}
117219#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 15
117220
117221#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 16
117222template <class t_HEAD, class t_TAIL_01,
117223 class t_TAIL_02,
117224 class t_TAIL_03,
117225 class t_TAIL_04,
117226 class t_TAIL_05,
117227 class t_TAIL_06,
117228 class t_TAIL_07,
117229 class t_TAIL_08,
117230 class t_TAIL_09,
117231 class t_TAIL_10,
117232 class t_TAIL_11,
117233 class t_TAIL_12,
117234 class t_TAIL_13,
117235 class t_TAIL_14,
117236 class t_TAIL_15,
117237 class t_TAIL_16>
117238void Variant_Base<t_HEAD, t_TAIL_01,
117239 t_TAIL_02,
117240 t_TAIL_03,
117241 t_TAIL_04,
117242 t_TAIL_05,
117243 t_TAIL_06,
117244 t_TAIL_07,
117245 t_TAIL_08,
117246 t_TAIL_09,
117247 t_TAIL_10,
117248 t_TAIL_11,
117249 t_TAIL_12,
117250 t_TAIL_13,
117251 t_TAIL_14,
117252 t_TAIL_15,
117253 t_TAIL_16,
117254 BSLS_COMPILERFEATURES_FILLT( 2)
117255 >::reset() BSLS_KEYWORD_NOEXCEPT
117256{
117257 if (d_type != bsl::variant_npos) {
117258 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117259 bsl::visit(destructor, static_cast<Variant&>(*this));
117260 d_type = bsl::variant_npos;
117261 }
117262}
117263#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 16
117264
117265#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 17
117266template <class t_HEAD, class t_TAIL_01,
117267 class t_TAIL_02,
117268 class t_TAIL_03,
117269 class t_TAIL_04,
117270 class t_TAIL_05,
117271 class t_TAIL_06,
117272 class t_TAIL_07,
117273 class t_TAIL_08,
117274 class t_TAIL_09,
117275 class t_TAIL_10,
117276 class t_TAIL_11,
117277 class t_TAIL_12,
117278 class t_TAIL_13,
117279 class t_TAIL_14,
117280 class t_TAIL_15,
117281 class t_TAIL_16,
117282 class t_TAIL_17>
117283void Variant_Base<t_HEAD, t_TAIL_01,
117284 t_TAIL_02,
117285 t_TAIL_03,
117286 t_TAIL_04,
117287 t_TAIL_05,
117288 t_TAIL_06,
117289 t_TAIL_07,
117290 t_TAIL_08,
117291 t_TAIL_09,
117292 t_TAIL_10,
117293 t_TAIL_11,
117294 t_TAIL_12,
117295 t_TAIL_13,
117296 t_TAIL_14,
117297 t_TAIL_15,
117298 t_TAIL_16,
117299 t_TAIL_17,
117300 BSLS_COMPILERFEATURES_FILLT( 1)
117301 >::reset() BSLS_KEYWORD_NOEXCEPT
117302{
117303 if (d_type != bsl::variant_npos) {
117304 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117305 bsl::visit(destructor, static_cast<Variant&>(*this));
117306 d_type = bsl::variant_npos;
117307 }
117308}
117309#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 17
117310
117311#if BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 18
117312template <class t_HEAD, class t_TAIL_01,
117313 class t_TAIL_02,
117314 class t_TAIL_03,
117315 class t_TAIL_04,
117316 class t_TAIL_05,
117317 class t_TAIL_06,
117318 class t_TAIL_07,
117319 class t_TAIL_08,
117320 class t_TAIL_09,
117321 class t_TAIL_10,
117322 class t_TAIL_11,
117323 class t_TAIL_12,
117324 class t_TAIL_13,
117325 class t_TAIL_14,
117326 class t_TAIL_15,
117327 class t_TAIL_16,
117328 class t_TAIL_17,
117329 class t_TAIL_18>
117330void Variant_Base<t_HEAD, t_TAIL_01,
117331 t_TAIL_02,
117332 t_TAIL_03,
117333 t_TAIL_04,
117334 t_TAIL_05,
117335 t_TAIL_06,
117336 t_TAIL_07,
117337 t_TAIL_08,
117338 t_TAIL_09,
117339 t_TAIL_10,
117340 t_TAIL_11,
117341 t_TAIL_12,
117342 t_TAIL_13,
117343 t_TAIL_14,
117344 t_TAIL_15,
117345 t_TAIL_16,
117346 t_TAIL_17,
117347 t_TAIL_18,
117348 BSLS_COMPILERFEATURES_FILLT( 0)
117349 >::reset() BSLS_KEYWORD_NOEXCEPT
117350{
117351 if (d_type != bsl::variant_npos) {
117352 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117353 bsl::visit(destructor, static_cast<Variant&>(*this));
117354 d_type = bsl::variant_npos;
117355 }
117356}
117357#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_O >= 18
117358
117359#else
117360// The generated code below is a workaround for the absence of perfect
117361// forwarding in some compilers.
117362template <class t_HEAD, class... t_TAIL>
117363inline
117364Variant_Base<t_HEAD, t_TAIL...>& Variant_Base<t_HEAD, t_TAIL...>::operator=(
117365 const Variant_Base& rhs)
117366{
117367 if (&rhs != this) {
117368 if (this->d_type == rhs.d_type) {
117369 if (d_type != bsl::variant_npos) {
117370 Variant& self = static_cast<Variant&>(*this);
117371 BloombergLP::bslstl::Variant_CopyAssignVisitor<Variant>
117372 copyAssign(BSLS_UTIL_ADDRESSOF(self));
117374 void, copyAssign, static_cast<const Variant&>(rhs));
117375 }
117376 }
117377 else {
117378 reset();
117379 if (rhs.d_type != bsl::variant_npos) {
117380 BloombergLP::bslstl::Variant_CopyConstructVisitor<Variant_Base>
117381 copyConstructor(this);
117383 void, copyConstructor, static_cast<const Variant&>(rhs));
117384 }
117385 d_type = rhs.d_type;
117386 }
117387 }
117388 return *this;
117389}
117390
117391template <class t_HEAD, class... t_TAIL>
117392inline
117393Variant_Base<t_HEAD, t_TAIL...>& Variant_Base<t_HEAD, t_TAIL...>::operator=(
117394 BloombergLP::bslmf::MovableRef<Variant_Base> rhs)
117395{
117396 Variant_Base& lvalue = rhs;
117397 if (&lvalue != this) {
117398 if (this->d_type == lvalue.d_type) {
117399 if (d_type != bsl::variant_npos) {
117400 Variant& self = static_cast<Variant&>(*this);
117401 BloombergLP::bslstl::Variant_MoveAssignVisitor<Variant>
117402 moveAssign(BSLS_UTIL_ADDRESSOF(self));
117404 void, moveAssign, static_cast<Variant&>(lvalue));
117405 }
117406 }
117407 else {
117408 reset();
117409 if (lvalue.d_type != bsl::variant_npos) {
117410 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
117411 moveConstructor(this);
117413 void, moveConstructor, static_cast<Variant&>(lvalue));
117414 }
117415 d_type = lvalue.d_type;
117416 }
117417 }
117418 return *this;
117419}
117420template <class t_HEAD, class... t_TAIL>
117421void Variant_Base<t_HEAD, t_TAIL...>::reset() BSLS_KEYWORD_NOEXCEPT
117422{
117423 if (d_type != bsl::variant_npos) {
117424 BloombergLP::bslstl::Variant_DestructorVisitor destructor;
117425 bsl::visit(destructor, static_cast<Variant&>(*this));
117426 d_type = bsl::variant_npos;
117427 }
117428}
117429// }}} END GENERATED CODE
117430#endif
117431} // close package namespace
117432
117433
117434namespace bsl {
117435
117436 // -------------
117437 // class variant
117438 // -------------
117439
117440// CREATORS
117441#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
117442template <class t_HEAD, class... t_TAIL>
117443template <class t_TYPE>
117444inline
117446 t_TYPE&& value,
117448: Variant_Base(
117449 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
117450 variant)>(),
117451 std::forward<t_TYPE>(value))
117452{
117453}
117454
117455template <class t_HEAD, class... t_TAIL>
117456template <class t_TYPE>
117457inline
117458variant<t_HEAD, t_TAIL...>::variant(
117459 bsl::allocator_arg_t,
117460 allocator_type allocator,
117461 t_TYPE&& value,
117463: Variant_Base(
117464 bsl::allocator_arg_t{},
117465 allocator,
117466 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
117467 variant)>(),
117468 std::forward<t_TYPE>(value))
117469{
117470}
117471#else // BSL_VARIANT_FULL_IMPLEMENTATION
117472#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
117473// {{{ BEGIN GENERATED CODE
117474// Command line: sim_cpp11_features.pl bslstl_variant.h
117475#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
117476#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
117477#endif
117478#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_P
117479#define BSLSTL_VARIANT_VARIADIC_LIMIT_P BSLSTL_VARIANT_VARIADIC_LIMIT
117480#endif
117481#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
117482template <class t_HEAD>
117483inline
117484variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant()
117485: Variant_Base()
117486{
117487}
117488#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
117489
117490#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
117491template <class t_HEAD, class t_TAIL_01>
117492inline
117493variant<t_HEAD, t_TAIL_01,
117494 BSLS_COMPILERFEATURES_FILLT(17)>::variant()
117495: Variant_Base()
117496{
117497}
117498#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
117499
117500#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
117501template <class t_HEAD, class t_TAIL_01,
117502 class t_TAIL_02>
117503inline
117504variant<t_HEAD, t_TAIL_01,
117505 t_TAIL_02,
117506 BSLS_COMPILERFEATURES_FILLT(16)>::variant()
117507: Variant_Base()
117508{
117509}
117510#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
117511
117512#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
117513template <class t_HEAD, class t_TAIL_01,
117514 class t_TAIL_02,
117515 class t_TAIL_03>
117516inline
117517variant<t_HEAD, t_TAIL_01,
117518 t_TAIL_02,
117519 t_TAIL_03,
117520 BSLS_COMPILERFEATURES_FILLT(15)>::variant()
117521: Variant_Base()
117522{
117523}
117524#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
117525
117526#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
117527template <class t_HEAD, class t_TAIL_01,
117528 class t_TAIL_02,
117529 class t_TAIL_03,
117530 class t_TAIL_04>
117531inline
117532variant<t_HEAD, t_TAIL_01,
117533 t_TAIL_02,
117534 t_TAIL_03,
117535 t_TAIL_04,
117536 BSLS_COMPILERFEATURES_FILLT(14)>::variant()
117537: Variant_Base()
117538{
117539}
117540#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
117541
117542#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
117543template <class t_HEAD, class t_TAIL_01,
117544 class t_TAIL_02,
117545 class t_TAIL_03,
117546 class t_TAIL_04,
117547 class t_TAIL_05>
117548inline
117549variant<t_HEAD, t_TAIL_01,
117550 t_TAIL_02,
117551 t_TAIL_03,
117552 t_TAIL_04,
117553 t_TAIL_05,
117554 BSLS_COMPILERFEATURES_FILLT(13)>::variant()
117555: Variant_Base()
117556{
117557}
117558#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
117559
117560#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
117561template <class t_HEAD, class t_TAIL_01,
117562 class t_TAIL_02,
117563 class t_TAIL_03,
117564 class t_TAIL_04,
117565 class t_TAIL_05,
117566 class t_TAIL_06>
117567inline
117568variant<t_HEAD, t_TAIL_01,
117569 t_TAIL_02,
117570 t_TAIL_03,
117571 t_TAIL_04,
117572 t_TAIL_05,
117573 t_TAIL_06,
117574 BSLS_COMPILERFEATURES_FILLT(12)>::variant()
117575: Variant_Base()
117576{
117577}
117578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
117579
117580#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
117581template <class t_HEAD, class t_TAIL_01,
117582 class t_TAIL_02,
117583 class t_TAIL_03,
117584 class t_TAIL_04,
117585 class t_TAIL_05,
117586 class t_TAIL_06,
117587 class t_TAIL_07>
117588inline
117589variant<t_HEAD, t_TAIL_01,
117590 t_TAIL_02,
117591 t_TAIL_03,
117592 t_TAIL_04,
117593 t_TAIL_05,
117594 t_TAIL_06,
117595 t_TAIL_07,
117596 BSLS_COMPILERFEATURES_FILLT(11)>::variant()
117597: Variant_Base()
117598{
117599}
117600#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
117601
117602#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
117603template <class t_HEAD, class t_TAIL_01,
117604 class t_TAIL_02,
117605 class t_TAIL_03,
117606 class t_TAIL_04,
117607 class t_TAIL_05,
117608 class t_TAIL_06,
117609 class t_TAIL_07,
117610 class t_TAIL_08>
117611inline
117612variant<t_HEAD, t_TAIL_01,
117613 t_TAIL_02,
117614 t_TAIL_03,
117615 t_TAIL_04,
117616 t_TAIL_05,
117617 t_TAIL_06,
117618 t_TAIL_07,
117619 t_TAIL_08,
117620 BSLS_COMPILERFEATURES_FILLT(10)>::variant()
117621: Variant_Base()
117622{
117623}
117624#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
117625
117626#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
117627template <class t_HEAD, class t_TAIL_01,
117628 class t_TAIL_02,
117629 class t_TAIL_03,
117630 class t_TAIL_04,
117631 class t_TAIL_05,
117632 class t_TAIL_06,
117633 class t_TAIL_07,
117634 class t_TAIL_08,
117635 class t_TAIL_09>
117636inline
117637variant<t_HEAD, t_TAIL_01,
117638 t_TAIL_02,
117639 t_TAIL_03,
117640 t_TAIL_04,
117641 t_TAIL_05,
117642 t_TAIL_06,
117643 t_TAIL_07,
117644 t_TAIL_08,
117645 t_TAIL_09,
117646 BSLS_COMPILERFEATURES_FILLT( 9)>::variant()
117647: Variant_Base()
117648{
117649}
117650#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
117651
117652#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
117653template <class t_HEAD, class t_TAIL_01,
117654 class t_TAIL_02,
117655 class t_TAIL_03,
117656 class t_TAIL_04,
117657 class t_TAIL_05,
117658 class t_TAIL_06,
117659 class t_TAIL_07,
117660 class t_TAIL_08,
117661 class t_TAIL_09,
117662 class t_TAIL_10>
117663inline
117664variant<t_HEAD, t_TAIL_01,
117665 t_TAIL_02,
117666 t_TAIL_03,
117667 t_TAIL_04,
117668 t_TAIL_05,
117669 t_TAIL_06,
117670 t_TAIL_07,
117671 t_TAIL_08,
117672 t_TAIL_09,
117673 t_TAIL_10,
117674 BSLS_COMPILERFEATURES_FILLT( 8)>::variant()
117675: Variant_Base()
117676{
117677}
117678#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
117679
117680#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
117681template <class t_HEAD, class t_TAIL_01,
117682 class t_TAIL_02,
117683 class t_TAIL_03,
117684 class t_TAIL_04,
117685 class t_TAIL_05,
117686 class t_TAIL_06,
117687 class t_TAIL_07,
117688 class t_TAIL_08,
117689 class t_TAIL_09,
117690 class t_TAIL_10,
117691 class t_TAIL_11>
117692inline
117693variant<t_HEAD, t_TAIL_01,
117694 t_TAIL_02,
117695 t_TAIL_03,
117696 t_TAIL_04,
117697 t_TAIL_05,
117698 t_TAIL_06,
117699 t_TAIL_07,
117700 t_TAIL_08,
117701 t_TAIL_09,
117702 t_TAIL_10,
117703 t_TAIL_11,
117704 BSLS_COMPILERFEATURES_FILLT( 7)>::variant()
117705: Variant_Base()
117706{
117707}
117708#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
117709
117710#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
117711template <class t_HEAD, class t_TAIL_01,
117712 class t_TAIL_02,
117713 class t_TAIL_03,
117714 class t_TAIL_04,
117715 class t_TAIL_05,
117716 class t_TAIL_06,
117717 class t_TAIL_07,
117718 class t_TAIL_08,
117719 class t_TAIL_09,
117720 class t_TAIL_10,
117721 class t_TAIL_11,
117722 class t_TAIL_12>
117723inline
117724variant<t_HEAD, t_TAIL_01,
117725 t_TAIL_02,
117726 t_TAIL_03,
117727 t_TAIL_04,
117728 t_TAIL_05,
117729 t_TAIL_06,
117730 t_TAIL_07,
117731 t_TAIL_08,
117732 t_TAIL_09,
117733 t_TAIL_10,
117734 t_TAIL_11,
117735 t_TAIL_12,
117736 BSLS_COMPILERFEATURES_FILLT( 6)>::variant()
117737: Variant_Base()
117738{
117739}
117740#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
117741
117742#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
117743template <class t_HEAD, class t_TAIL_01,
117744 class t_TAIL_02,
117745 class t_TAIL_03,
117746 class t_TAIL_04,
117747 class t_TAIL_05,
117748 class t_TAIL_06,
117749 class t_TAIL_07,
117750 class t_TAIL_08,
117751 class t_TAIL_09,
117752 class t_TAIL_10,
117753 class t_TAIL_11,
117754 class t_TAIL_12,
117755 class t_TAIL_13>
117756inline
117757variant<t_HEAD, t_TAIL_01,
117758 t_TAIL_02,
117759 t_TAIL_03,
117760 t_TAIL_04,
117761 t_TAIL_05,
117762 t_TAIL_06,
117763 t_TAIL_07,
117764 t_TAIL_08,
117765 t_TAIL_09,
117766 t_TAIL_10,
117767 t_TAIL_11,
117768 t_TAIL_12,
117769 t_TAIL_13,
117770 BSLS_COMPILERFEATURES_FILLT( 5)>::variant()
117771: Variant_Base()
117772{
117773}
117774#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
117775
117776#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
117777template <class t_HEAD, class t_TAIL_01,
117778 class t_TAIL_02,
117779 class t_TAIL_03,
117780 class t_TAIL_04,
117781 class t_TAIL_05,
117782 class t_TAIL_06,
117783 class t_TAIL_07,
117784 class t_TAIL_08,
117785 class t_TAIL_09,
117786 class t_TAIL_10,
117787 class t_TAIL_11,
117788 class t_TAIL_12,
117789 class t_TAIL_13,
117790 class t_TAIL_14>
117791inline
117792variant<t_HEAD, t_TAIL_01,
117793 t_TAIL_02,
117794 t_TAIL_03,
117795 t_TAIL_04,
117796 t_TAIL_05,
117797 t_TAIL_06,
117798 t_TAIL_07,
117799 t_TAIL_08,
117800 t_TAIL_09,
117801 t_TAIL_10,
117802 t_TAIL_11,
117803 t_TAIL_12,
117804 t_TAIL_13,
117805 t_TAIL_14,
117806 BSLS_COMPILERFEATURES_FILLT( 4)>::variant()
117807: Variant_Base()
117808{
117809}
117810#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
117811
117812#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
117813template <class t_HEAD, class t_TAIL_01,
117814 class t_TAIL_02,
117815 class t_TAIL_03,
117816 class t_TAIL_04,
117817 class t_TAIL_05,
117818 class t_TAIL_06,
117819 class t_TAIL_07,
117820 class t_TAIL_08,
117821 class t_TAIL_09,
117822 class t_TAIL_10,
117823 class t_TAIL_11,
117824 class t_TAIL_12,
117825 class t_TAIL_13,
117826 class t_TAIL_14,
117827 class t_TAIL_15>
117828inline
117829variant<t_HEAD, t_TAIL_01,
117830 t_TAIL_02,
117831 t_TAIL_03,
117832 t_TAIL_04,
117833 t_TAIL_05,
117834 t_TAIL_06,
117835 t_TAIL_07,
117836 t_TAIL_08,
117837 t_TAIL_09,
117838 t_TAIL_10,
117839 t_TAIL_11,
117840 t_TAIL_12,
117841 t_TAIL_13,
117842 t_TAIL_14,
117843 t_TAIL_15,
117844 BSLS_COMPILERFEATURES_FILLT( 3)>::variant()
117845: Variant_Base()
117846{
117847}
117848#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
117849
117850#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
117851template <class t_HEAD, class t_TAIL_01,
117852 class t_TAIL_02,
117853 class t_TAIL_03,
117854 class t_TAIL_04,
117855 class t_TAIL_05,
117856 class t_TAIL_06,
117857 class t_TAIL_07,
117858 class t_TAIL_08,
117859 class t_TAIL_09,
117860 class t_TAIL_10,
117861 class t_TAIL_11,
117862 class t_TAIL_12,
117863 class t_TAIL_13,
117864 class t_TAIL_14,
117865 class t_TAIL_15,
117866 class t_TAIL_16>
117867inline
117868variant<t_HEAD, t_TAIL_01,
117869 t_TAIL_02,
117870 t_TAIL_03,
117871 t_TAIL_04,
117872 t_TAIL_05,
117873 t_TAIL_06,
117874 t_TAIL_07,
117875 t_TAIL_08,
117876 t_TAIL_09,
117877 t_TAIL_10,
117878 t_TAIL_11,
117879 t_TAIL_12,
117880 t_TAIL_13,
117881 t_TAIL_14,
117882 t_TAIL_15,
117883 t_TAIL_16,
117884 BSLS_COMPILERFEATURES_FILLT( 2)>::variant()
117885: Variant_Base()
117886{
117887}
117888#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
117889
117890#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
117891template <class t_HEAD, class t_TAIL_01,
117892 class t_TAIL_02,
117893 class t_TAIL_03,
117894 class t_TAIL_04,
117895 class t_TAIL_05,
117896 class t_TAIL_06,
117897 class t_TAIL_07,
117898 class t_TAIL_08,
117899 class t_TAIL_09,
117900 class t_TAIL_10,
117901 class t_TAIL_11,
117902 class t_TAIL_12,
117903 class t_TAIL_13,
117904 class t_TAIL_14,
117905 class t_TAIL_15,
117906 class t_TAIL_16,
117907 class t_TAIL_17>
117908inline
117909variant<t_HEAD, t_TAIL_01,
117910 t_TAIL_02,
117911 t_TAIL_03,
117912 t_TAIL_04,
117913 t_TAIL_05,
117914 t_TAIL_06,
117915 t_TAIL_07,
117916 t_TAIL_08,
117917 t_TAIL_09,
117918 t_TAIL_10,
117919 t_TAIL_11,
117920 t_TAIL_12,
117921 t_TAIL_13,
117922 t_TAIL_14,
117923 t_TAIL_15,
117924 t_TAIL_16,
117925 t_TAIL_17,
117926 BSLS_COMPILERFEATURES_FILLT( 1)>::variant()
117927: Variant_Base()
117928{
117929}
117930#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
117931
117932#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
117933template <class t_HEAD, class t_TAIL_01,
117934 class t_TAIL_02,
117935 class t_TAIL_03,
117936 class t_TAIL_04,
117937 class t_TAIL_05,
117938 class t_TAIL_06,
117939 class t_TAIL_07,
117940 class t_TAIL_08,
117941 class t_TAIL_09,
117942 class t_TAIL_10,
117943 class t_TAIL_11,
117944 class t_TAIL_12,
117945 class t_TAIL_13,
117946 class t_TAIL_14,
117947 class t_TAIL_15,
117948 class t_TAIL_16,
117949 class t_TAIL_17,
117950 class t_TAIL_18>
117951inline
117952variant<t_HEAD, t_TAIL_01,
117953 t_TAIL_02,
117954 t_TAIL_03,
117955 t_TAIL_04,
117956 t_TAIL_05,
117957 t_TAIL_06,
117958 t_TAIL_07,
117959 t_TAIL_08,
117960 t_TAIL_09,
117961 t_TAIL_10,
117962 t_TAIL_11,
117963 t_TAIL_12,
117964 t_TAIL_13,
117965 t_TAIL_14,
117966 t_TAIL_15,
117967 t_TAIL_16,
117968 t_TAIL_17,
117969 t_TAIL_18,
117970 BSLS_COMPILERFEATURES_FILLT( 0)>::variant()
117971: Variant_Base()
117972{
117973}
117974#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
117975
117976
117977#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
117978template <class t_HEAD>
117979inline
117980variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
117981 >::variant(const variant& original)
117982: Variant_Base(original)
117983{
117984}
117985#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
117986
117987#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
117988template <class t_HEAD, class t_TAIL_01>
117989inline
117990variant<t_HEAD, t_TAIL_01,
117991 BSLS_COMPILERFEATURES_FILLT(17)
117992 >::variant(const variant& original)
117993: Variant_Base(original)
117994{
117995}
117996#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
117997
117998#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
117999template <class t_HEAD, class t_TAIL_01,
118000 class t_TAIL_02>
118001inline
118002variant<t_HEAD, t_TAIL_01,
118003 t_TAIL_02,
118004 BSLS_COMPILERFEATURES_FILLT(16)
118005 >::variant(const variant& original)
118006: Variant_Base(original)
118007{
118008}
118009#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
118010
118011#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
118012template <class t_HEAD, class t_TAIL_01,
118013 class t_TAIL_02,
118014 class t_TAIL_03>
118015inline
118016variant<t_HEAD, t_TAIL_01,
118017 t_TAIL_02,
118018 t_TAIL_03,
118019 BSLS_COMPILERFEATURES_FILLT(15)
118020 >::variant(const variant& original)
118021: Variant_Base(original)
118022{
118023}
118024#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
118025
118026#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
118027template <class t_HEAD, class t_TAIL_01,
118028 class t_TAIL_02,
118029 class t_TAIL_03,
118030 class t_TAIL_04>
118031inline
118032variant<t_HEAD, t_TAIL_01,
118033 t_TAIL_02,
118034 t_TAIL_03,
118035 t_TAIL_04,
118036 BSLS_COMPILERFEATURES_FILLT(14)
118037 >::variant(const variant& original)
118038: Variant_Base(original)
118039{
118040}
118041#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
118042
118043#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
118044template <class t_HEAD, class t_TAIL_01,
118045 class t_TAIL_02,
118046 class t_TAIL_03,
118047 class t_TAIL_04,
118048 class t_TAIL_05>
118049inline
118050variant<t_HEAD, t_TAIL_01,
118051 t_TAIL_02,
118052 t_TAIL_03,
118053 t_TAIL_04,
118054 t_TAIL_05,
118055 BSLS_COMPILERFEATURES_FILLT(13)
118056 >::variant(const variant& original)
118057: Variant_Base(original)
118058{
118059}
118060#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
118061
118062#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
118063template <class t_HEAD, class t_TAIL_01,
118064 class t_TAIL_02,
118065 class t_TAIL_03,
118066 class t_TAIL_04,
118067 class t_TAIL_05,
118068 class t_TAIL_06>
118069inline
118070variant<t_HEAD, t_TAIL_01,
118071 t_TAIL_02,
118072 t_TAIL_03,
118073 t_TAIL_04,
118074 t_TAIL_05,
118075 t_TAIL_06,
118076 BSLS_COMPILERFEATURES_FILLT(12)
118077 >::variant(const variant& original)
118078: Variant_Base(original)
118079{
118080}
118081#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
118082
118083#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
118084template <class t_HEAD, class t_TAIL_01,
118085 class t_TAIL_02,
118086 class t_TAIL_03,
118087 class t_TAIL_04,
118088 class t_TAIL_05,
118089 class t_TAIL_06,
118090 class t_TAIL_07>
118091inline
118092variant<t_HEAD, t_TAIL_01,
118093 t_TAIL_02,
118094 t_TAIL_03,
118095 t_TAIL_04,
118096 t_TAIL_05,
118097 t_TAIL_06,
118098 t_TAIL_07,
118099 BSLS_COMPILERFEATURES_FILLT(11)
118100 >::variant(const variant& original)
118101: Variant_Base(original)
118102{
118103}
118104#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
118105
118106#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
118107template <class t_HEAD, class t_TAIL_01,
118108 class t_TAIL_02,
118109 class t_TAIL_03,
118110 class t_TAIL_04,
118111 class t_TAIL_05,
118112 class t_TAIL_06,
118113 class t_TAIL_07,
118114 class t_TAIL_08>
118115inline
118116variant<t_HEAD, t_TAIL_01,
118117 t_TAIL_02,
118118 t_TAIL_03,
118119 t_TAIL_04,
118120 t_TAIL_05,
118121 t_TAIL_06,
118122 t_TAIL_07,
118123 t_TAIL_08,
118124 BSLS_COMPILERFEATURES_FILLT(10)
118125 >::variant(const variant& original)
118126: Variant_Base(original)
118127{
118128}
118129#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
118130
118131#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
118132template <class t_HEAD, class t_TAIL_01,
118133 class t_TAIL_02,
118134 class t_TAIL_03,
118135 class t_TAIL_04,
118136 class t_TAIL_05,
118137 class t_TAIL_06,
118138 class t_TAIL_07,
118139 class t_TAIL_08,
118140 class t_TAIL_09>
118141inline
118142variant<t_HEAD, t_TAIL_01,
118143 t_TAIL_02,
118144 t_TAIL_03,
118145 t_TAIL_04,
118146 t_TAIL_05,
118147 t_TAIL_06,
118148 t_TAIL_07,
118149 t_TAIL_08,
118150 t_TAIL_09,
118151 BSLS_COMPILERFEATURES_FILLT( 9)
118152 >::variant(const variant& original)
118153: Variant_Base(original)
118154{
118155}
118156#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
118157
118158#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
118159template <class t_HEAD, class t_TAIL_01,
118160 class t_TAIL_02,
118161 class t_TAIL_03,
118162 class t_TAIL_04,
118163 class t_TAIL_05,
118164 class t_TAIL_06,
118165 class t_TAIL_07,
118166 class t_TAIL_08,
118167 class t_TAIL_09,
118168 class t_TAIL_10>
118169inline
118170variant<t_HEAD, t_TAIL_01,
118171 t_TAIL_02,
118172 t_TAIL_03,
118173 t_TAIL_04,
118174 t_TAIL_05,
118175 t_TAIL_06,
118176 t_TAIL_07,
118177 t_TAIL_08,
118178 t_TAIL_09,
118179 t_TAIL_10,
118180 BSLS_COMPILERFEATURES_FILLT( 8)
118181 >::variant(const variant& original)
118182: Variant_Base(original)
118183{
118184}
118185#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
118186
118187#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
118188template <class t_HEAD, class t_TAIL_01,
118189 class t_TAIL_02,
118190 class t_TAIL_03,
118191 class t_TAIL_04,
118192 class t_TAIL_05,
118193 class t_TAIL_06,
118194 class t_TAIL_07,
118195 class t_TAIL_08,
118196 class t_TAIL_09,
118197 class t_TAIL_10,
118198 class t_TAIL_11>
118199inline
118200variant<t_HEAD, t_TAIL_01,
118201 t_TAIL_02,
118202 t_TAIL_03,
118203 t_TAIL_04,
118204 t_TAIL_05,
118205 t_TAIL_06,
118206 t_TAIL_07,
118207 t_TAIL_08,
118208 t_TAIL_09,
118209 t_TAIL_10,
118210 t_TAIL_11,
118211 BSLS_COMPILERFEATURES_FILLT( 7)
118212 >::variant(const variant& original)
118213: Variant_Base(original)
118214{
118215}
118216#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
118217
118218#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
118219template <class t_HEAD, class t_TAIL_01,
118220 class t_TAIL_02,
118221 class t_TAIL_03,
118222 class t_TAIL_04,
118223 class t_TAIL_05,
118224 class t_TAIL_06,
118225 class t_TAIL_07,
118226 class t_TAIL_08,
118227 class t_TAIL_09,
118228 class t_TAIL_10,
118229 class t_TAIL_11,
118230 class t_TAIL_12>
118231inline
118232variant<t_HEAD, t_TAIL_01,
118233 t_TAIL_02,
118234 t_TAIL_03,
118235 t_TAIL_04,
118236 t_TAIL_05,
118237 t_TAIL_06,
118238 t_TAIL_07,
118239 t_TAIL_08,
118240 t_TAIL_09,
118241 t_TAIL_10,
118242 t_TAIL_11,
118243 t_TAIL_12,
118244 BSLS_COMPILERFEATURES_FILLT( 6)
118245 >::variant(const variant& original)
118246: Variant_Base(original)
118247{
118248}
118249#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
118250
118251#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
118252template <class t_HEAD, class t_TAIL_01,
118253 class t_TAIL_02,
118254 class t_TAIL_03,
118255 class t_TAIL_04,
118256 class t_TAIL_05,
118257 class t_TAIL_06,
118258 class t_TAIL_07,
118259 class t_TAIL_08,
118260 class t_TAIL_09,
118261 class t_TAIL_10,
118262 class t_TAIL_11,
118263 class t_TAIL_12,
118264 class t_TAIL_13>
118265inline
118266variant<t_HEAD, t_TAIL_01,
118267 t_TAIL_02,
118268 t_TAIL_03,
118269 t_TAIL_04,
118270 t_TAIL_05,
118271 t_TAIL_06,
118272 t_TAIL_07,
118273 t_TAIL_08,
118274 t_TAIL_09,
118275 t_TAIL_10,
118276 t_TAIL_11,
118277 t_TAIL_12,
118278 t_TAIL_13,
118279 BSLS_COMPILERFEATURES_FILLT( 5)
118280 >::variant(const variant& original)
118281: Variant_Base(original)
118282{
118283}
118284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
118285
118286#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
118287template <class t_HEAD, class t_TAIL_01,
118288 class t_TAIL_02,
118289 class t_TAIL_03,
118290 class t_TAIL_04,
118291 class t_TAIL_05,
118292 class t_TAIL_06,
118293 class t_TAIL_07,
118294 class t_TAIL_08,
118295 class t_TAIL_09,
118296 class t_TAIL_10,
118297 class t_TAIL_11,
118298 class t_TAIL_12,
118299 class t_TAIL_13,
118300 class t_TAIL_14>
118301inline
118302variant<t_HEAD, t_TAIL_01,
118303 t_TAIL_02,
118304 t_TAIL_03,
118305 t_TAIL_04,
118306 t_TAIL_05,
118307 t_TAIL_06,
118308 t_TAIL_07,
118309 t_TAIL_08,
118310 t_TAIL_09,
118311 t_TAIL_10,
118312 t_TAIL_11,
118313 t_TAIL_12,
118314 t_TAIL_13,
118315 t_TAIL_14,
118316 BSLS_COMPILERFEATURES_FILLT( 4)
118317 >::variant(const variant& original)
118318: Variant_Base(original)
118319{
118320}
118321#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
118322
118323#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
118324template <class t_HEAD, class t_TAIL_01,
118325 class t_TAIL_02,
118326 class t_TAIL_03,
118327 class t_TAIL_04,
118328 class t_TAIL_05,
118329 class t_TAIL_06,
118330 class t_TAIL_07,
118331 class t_TAIL_08,
118332 class t_TAIL_09,
118333 class t_TAIL_10,
118334 class t_TAIL_11,
118335 class t_TAIL_12,
118336 class t_TAIL_13,
118337 class t_TAIL_14,
118338 class t_TAIL_15>
118339inline
118340variant<t_HEAD, t_TAIL_01,
118341 t_TAIL_02,
118342 t_TAIL_03,
118343 t_TAIL_04,
118344 t_TAIL_05,
118345 t_TAIL_06,
118346 t_TAIL_07,
118347 t_TAIL_08,
118348 t_TAIL_09,
118349 t_TAIL_10,
118350 t_TAIL_11,
118351 t_TAIL_12,
118352 t_TAIL_13,
118353 t_TAIL_14,
118354 t_TAIL_15,
118355 BSLS_COMPILERFEATURES_FILLT( 3)
118356 >::variant(const variant& original)
118357: Variant_Base(original)
118358{
118359}
118360#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
118361
118362#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
118363template <class t_HEAD, class t_TAIL_01,
118364 class t_TAIL_02,
118365 class t_TAIL_03,
118366 class t_TAIL_04,
118367 class t_TAIL_05,
118368 class t_TAIL_06,
118369 class t_TAIL_07,
118370 class t_TAIL_08,
118371 class t_TAIL_09,
118372 class t_TAIL_10,
118373 class t_TAIL_11,
118374 class t_TAIL_12,
118375 class t_TAIL_13,
118376 class t_TAIL_14,
118377 class t_TAIL_15,
118378 class t_TAIL_16>
118379inline
118380variant<t_HEAD, t_TAIL_01,
118381 t_TAIL_02,
118382 t_TAIL_03,
118383 t_TAIL_04,
118384 t_TAIL_05,
118385 t_TAIL_06,
118386 t_TAIL_07,
118387 t_TAIL_08,
118388 t_TAIL_09,
118389 t_TAIL_10,
118390 t_TAIL_11,
118391 t_TAIL_12,
118392 t_TAIL_13,
118393 t_TAIL_14,
118394 t_TAIL_15,
118395 t_TAIL_16,
118396 BSLS_COMPILERFEATURES_FILLT( 2)
118397 >::variant(const variant& original)
118398: Variant_Base(original)
118399{
118400}
118401#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
118402
118403#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
118404template <class t_HEAD, class t_TAIL_01,
118405 class t_TAIL_02,
118406 class t_TAIL_03,
118407 class t_TAIL_04,
118408 class t_TAIL_05,
118409 class t_TAIL_06,
118410 class t_TAIL_07,
118411 class t_TAIL_08,
118412 class t_TAIL_09,
118413 class t_TAIL_10,
118414 class t_TAIL_11,
118415 class t_TAIL_12,
118416 class t_TAIL_13,
118417 class t_TAIL_14,
118418 class t_TAIL_15,
118419 class t_TAIL_16,
118420 class t_TAIL_17>
118421inline
118422variant<t_HEAD, t_TAIL_01,
118423 t_TAIL_02,
118424 t_TAIL_03,
118425 t_TAIL_04,
118426 t_TAIL_05,
118427 t_TAIL_06,
118428 t_TAIL_07,
118429 t_TAIL_08,
118430 t_TAIL_09,
118431 t_TAIL_10,
118432 t_TAIL_11,
118433 t_TAIL_12,
118434 t_TAIL_13,
118435 t_TAIL_14,
118436 t_TAIL_15,
118437 t_TAIL_16,
118438 t_TAIL_17,
118439 BSLS_COMPILERFEATURES_FILLT( 1)
118440 >::variant(const variant& original)
118441: Variant_Base(original)
118442{
118443}
118444#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
118445
118446#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
118447template <class t_HEAD, class t_TAIL_01,
118448 class t_TAIL_02,
118449 class t_TAIL_03,
118450 class t_TAIL_04,
118451 class t_TAIL_05,
118452 class t_TAIL_06,
118453 class t_TAIL_07,
118454 class t_TAIL_08,
118455 class t_TAIL_09,
118456 class t_TAIL_10,
118457 class t_TAIL_11,
118458 class t_TAIL_12,
118459 class t_TAIL_13,
118460 class t_TAIL_14,
118461 class t_TAIL_15,
118462 class t_TAIL_16,
118463 class t_TAIL_17,
118464 class t_TAIL_18>
118465inline
118466variant<t_HEAD, t_TAIL_01,
118467 t_TAIL_02,
118468 t_TAIL_03,
118469 t_TAIL_04,
118470 t_TAIL_05,
118471 t_TAIL_06,
118472 t_TAIL_07,
118473 t_TAIL_08,
118474 t_TAIL_09,
118475 t_TAIL_10,
118476 t_TAIL_11,
118477 t_TAIL_12,
118478 t_TAIL_13,
118479 t_TAIL_14,
118480 t_TAIL_15,
118481 t_TAIL_16,
118482 t_TAIL_17,
118483 t_TAIL_18,
118484 BSLS_COMPILERFEATURES_FILLT( 0)
118485 >::variant(const variant& original)
118486: Variant_Base(original)
118487{
118488}
118489#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
118490
118491
118492#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
118493template <class t_HEAD>
118494inline
118495variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
118496 BloombergLP::bslmf::MovableRef<variant> original)
118497: Variant_Base(original)
118498{
118499}
118500#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
118501
118502#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
118503template <class t_HEAD, class t_TAIL_01>
118504inline
118505variant<t_HEAD, t_TAIL_01,
118506 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
118507 BloombergLP::bslmf::MovableRef<variant> original)
118508: Variant_Base(original)
118509{
118510}
118511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
118512
118513#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
118514template <class t_HEAD, class t_TAIL_01,
118515 class t_TAIL_02>
118516inline
118517variant<t_HEAD, t_TAIL_01,
118518 t_TAIL_02,
118519 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
118520 BloombergLP::bslmf::MovableRef<variant> original)
118521: Variant_Base(original)
118522{
118523}
118524#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
118525
118526#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
118527template <class t_HEAD, class t_TAIL_01,
118528 class t_TAIL_02,
118529 class t_TAIL_03>
118530inline
118531variant<t_HEAD, t_TAIL_01,
118532 t_TAIL_02,
118533 t_TAIL_03,
118534 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
118535 BloombergLP::bslmf::MovableRef<variant> original)
118536: Variant_Base(original)
118537{
118538}
118539#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
118540
118541#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
118542template <class t_HEAD, class t_TAIL_01,
118543 class t_TAIL_02,
118544 class t_TAIL_03,
118545 class t_TAIL_04>
118546inline
118547variant<t_HEAD, t_TAIL_01,
118548 t_TAIL_02,
118549 t_TAIL_03,
118550 t_TAIL_04,
118551 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
118552 BloombergLP::bslmf::MovableRef<variant> original)
118553: Variant_Base(original)
118554{
118555}
118556#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
118557
118558#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
118559template <class t_HEAD, class t_TAIL_01,
118560 class t_TAIL_02,
118561 class t_TAIL_03,
118562 class t_TAIL_04,
118563 class t_TAIL_05>
118564inline
118565variant<t_HEAD, t_TAIL_01,
118566 t_TAIL_02,
118567 t_TAIL_03,
118568 t_TAIL_04,
118569 t_TAIL_05,
118570 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
118571 BloombergLP::bslmf::MovableRef<variant> original)
118572: Variant_Base(original)
118573{
118574}
118575#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
118576
118577#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
118578template <class t_HEAD, class t_TAIL_01,
118579 class t_TAIL_02,
118580 class t_TAIL_03,
118581 class t_TAIL_04,
118582 class t_TAIL_05,
118583 class t_TAIL_06>
118584inline
118585variant<t_HEAD, t_TAIL_01,
118586 t_TAIL_02,
118587 t_TAIL_03,
118588 t_TAIL_04,
118589 t_TAIL_05,
118590 t_TAIL_06,
118591 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
118592 BloombergLP::bslmf::MovableRef<variant> original)
118593: Variant_Base(original)
118594{
118595}
118596#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
118597
118598#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
118599template <class t_HEAD, class t_TAIL_01,
118600 class t_TAIL_02,
118601 class t_TAIL_03,
118602 class t_TAIL_04,
118603 class t_TAIL_05,
118604 class t_TAIL_06,
118605 class t_TAIL_07>
118606inline
118607variant<t_HEAD, t_TAIL_01,
118608 t_TAIL_02,
118609 t_TAIL_03,
118610 t_TAIL_04,
118611 t_TAIL_05,
118612 t_TAIL_06,
118613 t_TAIL_07,
118614 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
118615 BloombergLP::bslmf::MovableRef<variant> original)
118616: Variant_Base(original)
118617{
118618}
118619#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
118620
118621#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
118622template <class t_HEAD, class t_TAIL_01,
118623 class t_TAIL_02,
118624 class t_TAIL_03,
118625 class t_TAIL_04,
118626 class t_TAIL_05,
118627 class t_TAIL_06,
118628 class t_TAIL_07,
118629 class t_TAIL_08>
118630inline
118631variant<t_HEAD, t_TAIL_01,
118632 t_TAIL_02,
118633 t_TAIL_03,
118634 t_TAIL_04,
118635 t_TAIL_05,
118636 t_TAIL_06,
118637 t_TAIL_07,
118638 t_TAIL_08,
118639 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
118640 BloombergLP::bslmf::MovableRef<variant> original)
118641: Variant_Base(original)
118642{
118643}
118644#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
118645
118646#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
118647template <class t_HEAD, class t_TAIL_01,
118648 class t_TAIL_02,
118649 class t_TAIL_03,
118650 class t_TAIL_04,
118651 class t_TAIL_05,
118652 class t_TAIL_06,
118653 class t_TAIL_07,
118654 class t_TAIL_08,
118655 class t_TAIL_09>
118656inline
118657variant<t_HEAD, t_TAIL_01,
118658 t_TAIL_02,
118659 t_TAIL_03,
118660 t_TAIL_04,
118661 t_TAIL_05,
118662 t_TAIL_06,
118663 t_TAIL_07,
118664 t_TAIL_08,
118665 t_TAIL_09,
118666 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
118667 BloombergLP::bslmf::MovableRef<variant> original)
118668: Variant_Base(original)
118669{
118670}
118671#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
118672
118673#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
118674template <class t_HEAD, class t_TAIL_01,
118675 class t_TAIL_02,
118676 class t_TAIL_03,
118677 class t_TAIL_04,
118678 class t_TAIL_05,
118679 class t_TAIL_06,
118680 class t_TAIL_07,
118681 class t_TAIL_08,
118682 class t_TAIL_09,
118683 class t_TAIL_10>
118684inline
118685variant<t_HEAD, t_TAIL_01,
118686 t_TAIL_02,
118687 t_TAIL_03,
118688 t_TAIL_04,
118689 t_TAIL_05,
118690 t_TAIL_06,
118691 t_TAIL_07,
118692 t_TAIL_08,
118693 t_TAIL_09,
118694 t_TAIL_10,
118695 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
118696 BloombergLP::bslmf::MovableRef<variant> original)
118697: Variant_Base(original)
118698{
118699}
118700#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
118701
118702#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
118703template <class t_HEAD, class t_TAIL_01,
118704 class t_TAIL_02,
118705 class t_TAIL_03,
118706 class t_TAIL_04,
118707 class t_TAIL_05,
118708 class t_TAIL_06,
118709 class t_TAIL_07,
118710 class t_TAIL_08,
118711 class t_TAIL_09,
118712 class t_TAIL_10,
118713 class t_TAIL_11>
118714inline
118715variant<t_HEAD, t_TAIL_01,
118716 t_TAIL_02,
118717 t_TAIL_03,
118718 t_TAIL_04,
118719 t_TAIL_05,
118720 t_TAIL_06,
118721 t_TAIL_07,
118722 t_TAIL_08,
118723 t_TAIL_09,
118724 t_TAIL_10,
118725 t_TAIL_11,
118726 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
118727 BloombergLP::bslmf::MovableRef<variant> original)
118728: Variant_Base(original)
118729{
118730}
118731#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
118732
118733#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
118734template <class t_HEAD, class t_TAIL_01,
118735 class t_TAIL_02,
118736 class t_TAIL_03,
118737 class t_TAIL_04,
118738 class t_TAIL_05,
118739 class t_TAIL_06,
118740 class t_TAIL_07,
118741 class t_TAIL_08,
118742 class t_TAIL_09,
118743 class t_TAIL_10,
118744 class t_TAIL_11,
118745 class t_TAIL_12>
118746inline
118747variant<t_HEAD, t_TAIL_01,
118748 t_TAIL_02,
118749 t_TAIL_03,
118750 t_TAIL_04,
118751 t_TAIL_05,
118752 t_TAIL_06,
118753 t_TAIL_07,
118754 t_TAIL_08,
118755 t_TAIL_09,
118756 t_TAIL_10,
118757 t_TAIL_11,
118758 t_TAIL_12,
118759 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
118760 BloombergLP::bslmf::MovableRef<variant> original)
118761: Variant_Base(original)
118762{
118763}
118764#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
118765
118766#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
118767template <class t_HEAD, class t_TAIL_01,
118768 class t_TAIL_02,
118769 class t_TAIL_03,
118770 class t_TAIL_04,
118771 class t_TAIL_05,
118772 class t_TAIL_06,
118773 class t_TAIL_07,
118774 class t_TAIL_08,
118775 class t_TAIL_09,
118776 class t_TAIL_10,
118777 class t_TAIL_11,
118778 class t_TAIL_12,
118779 class t_TAIL_13>
118780inline
118781variant<t_HEAD, t_TAIL_01,
118782 t_TAIL_02,
118783 t_TAIL_03,
118784 t_TAIL_04,
118785 t_TAIL_05,
118786 t_TAIL_06,
118787 t_TAIL_07,
118788 t_TAIL_08,
118789 t_TAIL_09,
118790 t_TAIL_10,
118791 t_TAIL_11,
118792 t_TAIL_12,
118793 t_TAIL_13,
118794 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
118795 BloombergLP::bslmf::MovableRef<variant> original)
118796: Variant_Base(original)
118797{
118798}
118799#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
118800
118801#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
118802template <class t_HEAD, class t_TAIL_01,
118803 class t_TAIL_02,
118804 class t_TAIL_03,
118805 class t_TAIL_04,
118806 class t_TAIL_05,
118807 class t_TAIL_06,
118808 class t_TAIL_07,
118809 class t_TAIL_08,
118810 class t_TAIL_09,
118811 class t_TAIL_10,
118812 class t_TAIL_11,
118813 class t_TAIL_12,
118814 class t_TAIL_13,
118815 class t_TAIL_14>
118816inline
118817variant<t_HEAD, t_TAIL_01,
118818 t_TAIL_02,
118819 t_TAIL_03,
118820 t_TAIL_04,
118821 t_TAIL_05,
118822 t_TAIL_06,
118823 t_TAIL_07,
118824 t_TAIL_08,
118825 t_TAIL_09,
118826 t_TAIL_10,
118827 t_TAIL_11,
118828 t_TAIL_12,
118829 t_TAIL_13,
118830 t_TAIL_14,
118831 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
118832 BloombergLP::bslmf::MovableRef<variant> original)
118833: Variant_Base(original)
118834{
118835}
118836#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
118837
118838#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
118839template <class t_HEAD, class t_TAIL_01,
118840 class t_TAIL_02,
118841 class t_TAIL_03,
118842 class t_TAIL_04,
118843 class t_TAIL_05,
118844 class t_TAIL_06,
118845 class t_TAIL_07,
118846 class t_TAIL_08,
118847 class t_TAIL_09,
118848 class t_TAIL_10,
118849 class t_TAIL_11,
118850 class t_TAIL_12,
118851 class t_TAIL_13,
118852 class t_TAIL_14,
118853 class t_TAIL_15>
118854inline
118855variant<t_HEAD, t_TAIL_01,
118856 t_TAIL_02,
118857 t_TAIL_03,
118858 t_TAIL_04,
118859 t_TAIL_05,
118860 t_TAIL_06,
118861 t_TAIL_07,
118862 t_TAIL_08,
118863 t_TAIL_09,
118864 t_TAIL_10,
118865 t_TAIL_11,
118866 t_TAIL_12,
118867 t_TAIL_13,
118868 t_TAIL_14,
118869 t_TAIL_15,
118870 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
118871 BloombergLP::bslmf::MovableRef<variant> original)
118872: Variant_Base(original)
118873{
118874}
118875#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
118876
118877#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
118878template <class t_HEAD, class t_TAIL_01,
118879 class t_TAIL_02,
118880 class t_TAIL_03,
118881 class t_TAIL_04,
118882 class t_TAIL_05,
118883 class t_TAIL_06,
118884 class t_TAIL_07,
118885 class t_TAIL_08,
118886 class t_TAIL_09,
118887 class t_TAIL_10,
118888 class t_TAIL_11,
118889 class t_TAIL_12,
118890 class t_TAIL_13,
118891 class t_TAIL_14,
118892 class t_TAIL_15,
118893 class t_TAIL_16>
118894inline
118895variant<t_HEAD, t_TAIL_01,
118896 t_TAIL_02,
118897 t_TAIL_03,
118898 t_TAIL_04,
118899 t_TAIL_05,
118900 t_TAIL_06,
118901 t_TAIL_07,
118902 t_TAIL_08,
118903 t_TAIL_09,
118904 t_TAIL_10,
118905 t_TAIL_11,
118906 t_TAIL_12,
118907 t_TAIL_13,
118908 t_TAIL_14,
118909 t_TAIL_15,
118910 t_TAIL_16,
118911 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
118912 BloombergLP::bslmf::MovableRef<variant> original)
118913: Variant_Base(original)
118914{
118915}
118916#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
118917
118918#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
118919template <class t_HEAD, class t_TAIL_01,
118920 class t_TAIL_02,
118921 class t_TAIL_03,
118922 class t_TAIL_04,
118923 class t_TAIL_05,
118924 class t_TAIL_06,
118925 class t_TAIL_07,
118926 class t_TAIL_08,
118927 class t_TAIL_09,
118928 class t_TAIL_10,
118929 class t_TAIL_11,
118930 class t_TAIL_12,
118931 class t_TAIL_13,
118932 class t_TAIL_14,
118933 class t_TAIL_15,
118934 class t_TAIL_16,
118935 class t_TAIL_17>
118936inline
118937variant<t_HEAD, t_TAIL_01,
118938 t_TAIL_02,
118939 t_TAIL_03,
118940 t_TAIL_04,
118941 t_TAIL_05,
118942 t_TAIL_06,
118943 t_TAIL_07,
118944 t_TAIL_08,
118945 t_TAIL_09,
118946 t_TAIL_10,
118947 t_TAIL_11,
118948 t_TAIL_12,
118949 t_TAIL_13,
118950 t_TAIL_14,
118951 t_TAIL_15,
118952 t_TAIL_16,
118953 t_TAIL_17,
118954 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
118955 BloombergLP::bslmf::MovableRef<variant> original)
118956: Variant_Base(original)
118957{
118958}
118959#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
118960
118961#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
118962template <class t_HEAD, class t_TAIL_01,
118963 class t_TAIL_02,
118964 class t_TAIL_03,
118965 class t_TAIL_04,
118966 class t_TAIL_05,
118967 class t_TAIL_06,
118968 class t_TAIL_07,
118969 class t_TAIL_08,
118970 class t_TAIL_09,
118971 class t_TAIL_10,
118972 class t_TAIL_11,
118973 class t_TAIL_12,
118974 class t_TAIL_13,
118975 class t_TAIL_14,
118976 class t_TAIL_15,
118977 class t_TAIL_16,
118978 class t_TAIL_17,
118979 class t_TAIL_18>
118980inline
118981variant<t_HEAD, t_TAIL_01,
118982 t_TAIL_02,
118983 t_TAIL_03,
118984 t_TAIL_04,
118985 t_TAIL_05,
118986 t_TAIL_06,
118987 t_TAIL_07,
118988 t_TAIL_08,
118989 t_TAIL_09,
118990 t_TAIL_10,
118991 t_TAIL_11,
118992 t_TAIL_12,
118993 t_TAIL_13,
118994 t_TAIL_14,
118995 t_TAIL_15,
118996 t_TAIL_16,
118997 t_TAIL_17,
118998 t_TAIL_18,
118999 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
119000 BloombergLP::bslmf::MovableRef<variant> original)
119001: Variant_Base(original)
119002{
119003}
119004#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
119005
119006
119007#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
119008template <class t_HEAD>
119009template <class t_TYPE>
119010inline
119011variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
119012 const t_TYPE& value,
119014: Variant_Base(
119015 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119016 variant)>(),
119017 value)
119018{
119019}
119020#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
119021
119022#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
119023template <class t_HEAD, class t_TAIL_01>
119024template <class t_TYPE>
119025inline
119026variant<t_HEAD, t_TAIL_01,
119027 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
119028 const t_TYPE& value,
119030: Variant_Base(
119031 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119032 variant)>(),
119033 value)
119034{
119035}
119036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
119037
119038#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
119039template <class t_HEAD, class t_TAIL_01,
119040 class t_TAIL_02>
119041template <class t_TYPE>
119042inline
119043variant<t_HEAD, t_TAIL_01,
119044 t_TAIL_02,
119045 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
119046 const t_TYPE& value,
119048: Variant_Base(
119049 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119050 variant)>(),
119051 value)
119052{
119053}
119054#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
119055
119056#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
119057template <class t_HEAD, class t_TAIL_01,
119058 class t_TAIL_02,
119059 class t_TAIL_03>
119060template <class t_TYPE>
119061inline
119062variant<t_HEAD, t_TAIL_01,
119063 t_TAIL_02,
119064 t_TAIL_03,
119065 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
119066 const t_TYPE& value,
119068: Variant_Base(
119069 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119070 variant)>(),
119071 value)
119072{
119073}
119074#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
119075
119076#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
119077template <class t_HEAD, class t_TAIL_01,
119078 class t_TAIL_02,
119079 class t_TAIL_03,
119080 class t_TAIL_04>
119081template <class t_TYPE>
119082inline
119083variant<t_HEAD, t_TAIL_01,
119084 t_TAIL_02,
119085 t_TAIL_03,
119086 t_TAIL_04,
119087 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
119088 const t_TYPE& value,
119090: Variant_Base(
119091 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119092 variant)>(),
119093 value)
119094{
119095}
119096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
119097
119098#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
119099template <class t_HEAD, class t_TAIL_01,
119100 class t_TAIL_02,
119101 class t_TAIL_03,
119102 class t_TAIL_04,
119103 class t_TAIL_05>
119104template <class t_TYPE>
119105inline
119106variant<t_HEAD, t_TAIL_01,
119107 t_TAIL_02,
119108 t_TAIL_03,
119109 t_TAIL_04,
119110 t_TAIL_05,
119111 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
119112 const t_TYPE& value,
119114: Variant_Base(
119115 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119116 variant)>(),
119117 value)
119118{
119119}
119120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
119121
119122#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
119123template <class t_HEAD, class t_TAIL_01,
119124 class t_TAIL_02,
119125 class t_TAIL_03,
119126 class t_TAIL_04,
119127 class t_TAIL_05,
119128 class t_TAIL_06>
119129template <class t_TYPE>
119130inline
119131variant<t_HEAD, t_TAIL_01,
119132 t_TAIL_02,
119133 t_TAIL_03,
119134 t_TAIL_04,
119135 t_TAIL_05,
119136 t_TAIL_06,
119137 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
119138 const t_TYPE& value,
119140: Variant_Base(
119141 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119142 variant)>(),
119143 value)
119144{
119145}
119146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
119147
119148#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
119149template <class t_HEAD, class t_TAIL_01,
119150 class t_TAIL_02,
119151 class t_TAIL_03,
119152 class t_TAIL_04,
119153 class t_TAIL_05,
119154 class t_TAIL_06,
119155 class t_TAIL_07>
119156template <class t_TYPE>
119157inline
119158variant<t_HEAD, t_TAIL_01,
119159 t_TAIL_02,
119160 t_TAIL_03,
119161 t_TAIL_04,
119162 t_TAIL_05,
119163 t_TAIL_06,
119164 t_TAIL_07,
119165 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
119166 const t_TYPE& value,
119168: Variant_Base(
119169 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119170 variant)>(),
119171 value)
119172{
119173}
119174#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
119175
119176#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
119177template <class t_HEAD, class t_TAIL_01,
119178 class t_TAIL_02,
119179 class t_TAIL_03,
119180 class t_TAIL_04,
119181 class t_TAIL_05,
119182 class t_TAIL_06,
119183 class t_TAIL_07,
119184 class t_TAIL_08>
119185template <class t_TYPE>
119186inline
119187variant<t_HEAD, t_TAIL_01,
119188 t_TAIL_02,
119189 t_TAIL_03,
119190 t_TAIL_04,
119191 t_TAIL_05,
119192 t_TAIL_06,
119193 t_TAIL_07,
119194 t_TAIL_08,
119195 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
119196 const t_TYPE& value,
119198: Variant_Base(
119199 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119200 variant)>(),
119201 value)
119202{
119203}
119204#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
119205
119206#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
119207template <class t_HEAD, class t_TAIL_01,
119208 class t_TAIL_02,
119209 class t_TAIL_03,
119210 class t_TAIL_04,
119211 class t_TAIL_05,
119212 class t_TAIL_06,
119213 class t_TAIL_07,
119214 class t_TAIL_08,
119215 class t_TAIL_09>
119216template <class t_TYPE>
119217inline
119218variant<t_HEAD, t_TAIL_01,
119219 t_TAIL_02,
119220 t_TAIL_03,
119221 t_TAIL_04,
119222 t_TAIL_05,
119223 t_TAIL_06,
119224 t_TAIL_07,
119225 t_TAIL_08,
119226 t_TAIL_09,
119227 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
119228 const t_TYPE& value,
119230: Variant_Base(
119231 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119232 variant)>(),
119233 value)
119234{
119235}
119236#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
119237
119238#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
119239template <class t_HEAD, class t_TAIL_01,
119240 class t_TAIL_02,
119241 class t_TAIL_03,
119242 class t_TAIL_04,
119243 class t_TAIL_05,
119244 class t_TAIL_06,
119245 class t_TAIL_07,
119246 class t_TAIL_08,
119247 class t_TAIL_09,
119248 class t_TAIL_10>
119249template <class t_TYPE>
119250inline
119251variant<t_HEAD, t_TAIL_01,
119252 t_TAIL_02,
119253 t_TAIL_03,
119254 t_TAIL_04,
119255 t_TAIL_05,
119256 t_TAIL_06,
119257 t_TAIL_07,
119258 t_TAIL_08,
119259 t_TAIL_09,
119260 t_TAIL_10,
119261 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
119262 const t_TYPE& value,
119264: Variant_Base(
119265 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119266 variant)>(),
119267 value)
119268{
119269}
119270#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
119271
119272#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
119273template <class t_HEAD, class t_TAIL_01,
119274 class t_TAIL_02,
119275 class t_TAIL_03,
119276 class t_TAIL_04,
119277 class t_TAIL_05,
119278 class t_TAIL_06,
119279 class t_TAIL_07,
119280 class t_TAIL_08,
119281 class t_TAIL_09,
119282 class t_TAIL_10,
119283 class t_TAIL_11>
119284template <class t_TYPE>
119285inline
119286variant<t_HEAD, t_TAIL_01,
119287 t_TAIL_02,
119288 t_TAIL_03,
119289 t_TAIL_04,
119290 t_TAIL_05,
119291 t_TAIL_06,
119292 t_TAIL_07,
119293 t_TAIL_08,
119294 t_TAIL_09,
119295 t_TAIL_10,
119296 t_TAIL_11,
119297 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
119298 const t_TYPE& value,
119300: Variant_Base(
119301 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119302 variant)>(),
119303 value)
119304{
119305}
119306#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
119307
119308#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
119309template <class t_HEAD, class t_TAIL_01,
119310 class t_TAIL_02,
119311 class t_TAIL_03,
119312 class t_TAIL_04,
119313 class t_TAIL_05,
119314 class t_TAIL_06,
119315 class t_TAIL_07,
119316 class t_TAIL_08,
119317 class t_TAIL_09,
119318 class t_TAIL_10,
119319 class t_TAIL_11,
119320 class t_TAIL_12>
119321template <class t_TYPE>
119322inline
119323variant<t_HEAD, t_TAIL_01,
119324 t_TAIL_02,
119325 t_TAIL_03,
119326 t_TAIL_04,
119327 t_TAIL_05,
119328 t_TAIL_06,
119329 t_TAIL_07,
119330 t_TAIL_08,
119331 t_TAIL_09,
119332 t_TAIL_10,
119333 t_TAIL_11,
119334 t_TAIL_12,
119335 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
119336 const t_TYPE& value,
119338: Variant_Base(
119339 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119340 variant)>(),
119341 value)
119342{
119343}
119344#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
119345
119346#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
119347template <class t_HEAD, class t_TAIL_01,
119348 class t_TAIL_02,
119349 class t_TAIL_03,
119350 class t_TAIL_04,
119351 class t_TAIL_05,
119352 class t_TAIL_06,
119353 class t_TAIL_07,
119354 class t_TAIL_08,
119355 class t_TAIL_09,
119356 class t_TAIL_10,
119357 class t_TAIL_11,
119358 class t_TAIL_12,
119359 class t_TAIL_13>
119360template <class t_TYPE>
119361inline
119362variant<t_HEAD, t_TAIL_01,
119363 t_TAIL_02,
119364 t_TAIL_03,
119365 t_TAIL_04,
119366 t_TAIL_05,
119367 t_TAIL_06,
119368 t_TAIL_07,
119369 t_TAIL_08,
119370 t_TAIL_09,
119371 t_TAIL_10,
119372 t_TAIL_11,
119373 t_TAIL_12,
119374 t_TAIL_13,
119375 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
119376 const t_TYPE& value,
119378: Variant_Base(
119379 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119380 variant)>(),
119381 value)
119382{
119383}
119384#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
119385
119386#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
119387template <class t_HEAD, class t_TAIL_01,
119388 class t_TAIL_02,
119389 class t_TAIL_03,
119390 class t_TAIL_04,
119391 class t_TAIL_05,
119392 class t_TAIL_06,
119393 class t_TAIL_07,
119394 class t_TAIL_08,
119395 class t_TAIL_09,
119396 class t_TAIL_10,
119397 class t_TAIL_11,
119398 class t_TAIL_12,
119399 class t_TAIL_13,
119400 class t_TAIL_14>
119401template <class t_TYPE>
119402inline
119403variant<t_HEAD, t_TAIL_01,
119404 t_TAIL_02,
119405 t_TAIL_03,
119406 t_TAIL_04,
119407 t_TAIL_05,
119408 t_TAIL_06,
119409 t_TAIL_07,
119410 t_TAIL_08,
119411 t_TAIL_09,
119412 t_TAIL_10,
119413 t_TAIL_11,
119414 t_TAIL_12,
119415 t_TAIL_13,
119416 t_TAIL_14,
119417 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
119418 const t_TYPE& value,
119420: Variant_Base(
119421 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119422 variant)>(),
119423 value)
119424{
119425}
119426#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
119427
119428#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
119429template <class t_HEAD, class t_TAIL_01,
119430 class t_TAIL_02,
119431 class t_TAIL_03,
119432 class t_TAIL_04,
119433 class t_TAIL_05,
119434 class t_TAIL_06,
119435 class t_TAIL_07,
119436 class t_TAIL_08,
119437 class t_TAIL_09,
119438 class t_TAIL_10,
119439 class t_TAIL_11,
119440 class t_TAIL_12,
119441 class t_TAIL_13,
119442 class t_TAIL_14,
119443 class t_TAIL_15>
119444template <class t_TYPE>
119445inline
119446variant<t_HEAD, t_TAIL_01,
119447 t_TAIL_02,
119448 t_TAIL_03,
119449 t_TAIL_04,
119450 t_TAIL_05,
119451 t_TAIL_06,
119452 t_TAIL_07,
119453 t_TAIL_08,
119454 t_TAIL_09,
119455 t_TAIL_10,
119456 t_TAIL_11,
119457 t_TAIL_12,
119458 t_TAIL_13,
119459 t_TAIL_14,
119460 t_TAIL_15,
119461 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
119462 const t_TYPE& value,
119464: Variant_Base(
119465 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119466 variant)>(),
119467 value)
119468{
119469}
119470#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
119471
119472#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
119473template <class t_HEAD, class t_TAIL_01,
119474 class t_TAIL_02,
119475 class t_TAIL_03,
119476 class t_TAIL_04,
119477 class t_TAIL_05,
119478 class t_TAIL_06,
119479 class t_TAIL_07,
119480 class t_TAIL_08,
119481 class t_TAIL_09,
119482 class t_TAIL_10,
119483 class t_TAIL_11,
119484 class t_TAIL_12,
119485 class t_TAIL_13,
119486 class t_TAIL_14,
119487 class t_TAIL_15,
119488 class t_TAIL_16>
119489template <class t_TYPE>
119490inline
119491variant<t_HEAD, t_TAIL_01,
119492 t_TAIL_02,
119493 t_TAIL_03,
119494 t_TAIL_04,
119495 t_TAIL_05,
119496 t_TAIL_06,
119497 t_TAIL_07,
119498 t_TAIL_08,
119499 t_TAIL_09,
119500 t_TAIL_10,
119501 t_TAIL_11,
119502 t_TAIL_12,
119503 t_TAIL_13,
119504 t_TAIL_14,
119505 t_TAIL_15,
119506 t_TAIL_16,
119507 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
119508 const t_TYPE& value,
119510: Variant_Base(
119511 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119512 variant)>(),
119513 value)
119514{
119515}
119516#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
119517
119518#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
119519template <class t_HEAD, class t_TAIL_01,
119520 class t_TAIL_02,
119521 class t_TAIL_03,
119522 class t_TAIL_04,
119523 class t_TAIL_05,
119524 class t_TAIL_06,
119525 class t_TAIL_07,
119526 class t_TAIL_08,
119527 class t_TAIL_09,
119528 class t_TAIL_10,
119529 class t_TAIL_11,
119530 class t_TAIL_12,
119531 class t_TAIL_13,
119532 class t_TAIL_14,
119533 class t_TAIL_15,
119534 class t_TAIL_16,
119535 class t_TAIL_17>
119536template <class t_TYPE>
119537inline
119538variant<t_HEAD, t_TAIL_01,
119539 t_TAIL_02,
119540 t_TAIL_03,
119541 t_TAIL_04,
119542 t_TAIL_05,
119543 t_TAIL_06,
119544 t_TAIL_07,
119545 t_TAIL_08,
119546 t_TAIL_09,
119547 t_TAIL_10,
119548 t_TAIL_11,
119549 t_TAIL_12,
119550 t_TAIL_13,
119551 t_TAIL_14,
119552 t_TAIL_15,
119553 t_TAIL_16,
119554 t_TAIL_17,
119555 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
119556 const t_TYPE& value,
119558: Variant_Base(
119559 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119560 variant)>(),
119561 value)
119562{
119563}
119564#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
119565
119566#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
119567template <class t_HEAD, class t_TAIL_01,
119568 class t_TAIL_02,
119569 class t_TAIL_03,
119570 class t_TAIL_04,
119571 class t_TAIL_05,
119572 class t_TAIL_06,
119573 class t_TAIL_07,
119574 class t_TAIL_08,
119575 class t_TAIL_09,
119576 class t_TAIL_10,
119577 class t_TAIL_11,
119578 class t_TAIL_12,
119579 class t_TAIL_13,
119580 class t_TAIL_14,
119581 class t_TAIL_15,
119582 class t_TAIL_16,
119583 class t_TAIL_17,
119584 class t_TAIL_18>
119585template <class t_TYPE>
119586inline
119587variant<t_HEAD, t_TAIL_01,
119588 t_TAIL_02,
119589 t_TAIL_03,
119590 t_TAIL_04,
119591 t_TAIL_05,
119592 t_TAIL_06,
119593 t_TAIL_07,
119594 t_TAIL_08,
119595 t_TAIL_09,
119596 t_TAIL_10,
119597 t_TAIL_11,
119598 t_TAIL_12,
119599 t_TAIL_13,
119600 t_TAIL_14,
119601 t_TAIL_15,
119602 t_TAIL_16,
119603 t_TAIL_17,
119604 t_TAIL_18,
119605 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
119606 const t_TYPE& value,
119608: Variant_Base(
119609 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
119610 variant)>(),
119611 value)
119612{
119613}
119614#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
119615
119616
119617#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
119618template <class t_HEAD>
119619template <class t_TYPE>
119620inline
119621variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
119624: Variant_Base(
119625 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119626{
119627}
119628#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
119629
119630#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
119631template <class t_HEAD, class t_TAIL_01>
119632template <class t_TYPE>
119633inline
119634variant<t_HEAD, t_TAIL_01,
119635 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
119638: Variant_Base(
119639 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119640{
119641}
119642#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
119643
119644#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
119645template <class t_HEAD, class t_TAIL_01,
119646 class t_TAIL_02>
119647template <class t_TYPE>
119648inline
119649variant<t_HEAD, t_TAIL_01,
119650 t_TAIL_02,
119651 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
119654: Variant_Base(
119655 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119656{
119657}
119658#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
119659
119660#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
119661template <class t_HEAD, class t_TAIL_01,
119662 class t_TAIL_02,
119663 class t_TAIL_03>
119664template <class t_TYPE>
119665inline
119666variant<t_HEAD, t_TAIL_01,
119667 t_TAIL_02,
119668 t_TAIL_03,
119669 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
119672: Variant_Base(
119673 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119674{
119675}
119676#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
119677
119678#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
119679template <class t_HEAD, class t_TAIL_01,
119680 class t_TAIL_02,
119681 class t_TAIL_03,
119682 class t_TAIL_04>
119683template <class t_TYPE>
119684inline
119685variant<t_HEAD, t_TAIL_01,
119686 t_TAIL_02,
119687 t_TAIL_03,
119688 t_TAIL_04,
119689 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
119692: Variant_Base(
119693 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119694{
119695}
119696#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
119697
119698#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
119699template <class t_HEAD, class t_TAIL_01,
119700 class t_TAIL_02,
119701 class t_TAIL_03,
119702 class t_TAIL_04,
119703 class t_TAIL_05>
119704template <class t_TYPE>
119705inline
119706variant<t_HEAD, t_TAIL_01,
119707 t_TAIL_02,
119708 t_TAIL_03,
119709 t_TAIL_04,
119710 t_TAIL_05,
119711 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
119714: Variant_Base(
119715 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119716{
119717}
119718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
119719
119720#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
119721template <class t_HEAD, class t_TAIL_01,
119722 class t_TAIL_02,
119723 class t_TAIL_03,
119724 class t_TAIL_04,
119725 class t_TAIL_05,
119726 class t_TAIL_06>
119727template <class t_TYPE>
119728inline
119729variant<t_HEAD, t_TAIL_01,
119730 t_TAIL_02,
119731 t_TAIL_03,
119732 t_TAIL_04,
119733 t_TAIL_05,
119734 t_TAIL_06,
119735 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
119738: Variant_Base(
119739 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119740{
119741}
119742#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
119743
119744#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
119745template <class t_HEAD, class t_TAIL_01,
119746 class t_TAIL_02,
119747 class t_TAIL_03,
119748 class t_TAIL_04,
119749 class t_TAIL_05,
119750 class t_TAIL_06,
119751 class t_TAIL_07>
119752template <class t_TYPE>
119753inline
119754variant<t_HEAD, t_TAIL_01,
119755 t_TAIL_02,
119756 t_TAIL_03,
119757 t_TAIL_04,
119758 t_TAIL_05,
119759 t_TAIL_06,
119760 t_TAIL_07,
119761 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
119764: Variant_Base(
119765 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119766{
119767}
119768#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
119769
119770#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
119771template <class t_HEAD, class t_TAIL_01,
119772 class t_TAIL_02,
119773 class t_TAIL_03,
119774 class t_TAIL_04,
119775 class t_TAIL_05,
119776 class t_TAIL_06,
119777 class t_TAIL_07,
119778 class t_TAIL_08>
119779template <class t_TYPE>
119780inline
119781variant<t_HEAD, t_TAIL_01,
119782 t_TAIL_02,
119783 t_TAIL_03,
119784 t_TAIL_04,
119785 t_TAIL_05,
119786 t_TAIL_06,
119787 t_TAIL_07,
119788 t_TAIL_08,
119789 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
119792: Variant_Base(
119793 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119794{
119795}
119796#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
119797
119798#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
119799template <class t_HEAD, class t_TAIL_01,
119800 class t_TAIL_02,
119801 class t_TAIL_03,
119802 class t_TAIL_04,
119803 class t_TAIL_05,
119804 class t_TAIL_06,
119805 class t_TAIL_07,
119806 class t_TAIL_08,
119807 class t_TAIL_09>
119808template <class t_TYPE>
119809inline
119810variant<t_HEAD, t_TAIL_01,
119811 t_TAIL_02,
119812 t_TAIL_03,
119813 t_TAIL_04,
119814 t_TAIL_05,
119815 t_TAIL_06,
119816 t_TAIL_07,
119817 t_TAIL_08,
119818 t_TAIL_09,
119819 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
119822: Variant_Base(
119823 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119824{
119825}
119826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
119827
119828#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
119829template <class t_HEAD, class t_TAIL_01,
119830 class t_TAIL_02,
119831 class t_TAIL_03,
119832 class t_TAIL_04,
119833 class t_TAIL_05,
119834 class t_TAIL_06,
119835 class t_TAIL_07,
119836 class t_TAIL_08,
119837 class t_TAIL_09,
119838 class t_TAIL_10>
119839template <class t_TYPE>
119840inline
119841variant<t_HEAD, t_TAIL_01,
119842 t_TAIL_02,
119843 t_TAIL_03,
119844 t_TAIL_04,
119845 t_TAIL_05,
119846 t_TAIL_06,
119847 t_TAIL_07,
119848 t_TAIL_08,
119849 t_TAIL_09,
119850 t_TAIL_10,
119851 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
119854: Variant_Base(
119855 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119856{
119857}
119858#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
119859
119860#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
119861template <class t_HEAD, class t_TAIL_01,
119862 class t_TAIL_02,
119863 class t_TAIL_03,
119864 class t_TAIL_04,
119865 class t_TAIL_05,
119866 class t_TAIL_06,
119867 class t_TAIL_07,
119868 class t_TAIL_08,
119869 class t_TAIL_09,
119870 class t_TAIL_10,
119871 class t_TAIL_11>
119872template <class t_TYPE>
119873inline
119874variant<t_HEAD, t_TAIL_01,
119875 t_TAIL_02,
119876 t_TAIL_03,
119877 t_TAIL_04,
119878 t_TAIL_05,
119879 t_TAIL_06,
119880 t_TAIL_07,
119881 t_TAIL_08,
119882 t_TAIL_09,
119883 t_TAIL_10,
119884 t_TAIL_11,
119885 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
119888: Variant_Base(
119889 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119890{
119891}
119892#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
119893
119894#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
119895template <class t_HEAD, class t_TAIL_01,
119896 class t_TAIL_02,
119897 class t_TAIL_03,
119898 class t_TAIL_04,
119899 class t_TAIL_05,
119900 class t_TAIL_06,
119901 class t_TAIL_07,
119902 class t_TAIL_08,
119903 class t_TAIL_09,
119904 class t_TAIL_10,
119905 class t_TAIL_11,
119906 class t_TAIL_12>
119907template <class t_TYPE>
119908inline
119909variant<t_HEAD, t_TAIL_01,
119910 t_TAIL_02,
119911 t_TAIL_03,
119912 t_TAIL_04,
119913 t_TAIL_05,
119914 t_TAIL_06,
119915 t_TAIL_07,
119916 t_TAIL_08,
119917 t_TAIL_09,
119918 t_TAIL_10,
119919 t_TAIL_11,
119920 t_TAIL_12,
119921 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
119924: Variant_Base(
119925 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119926{
119927}
119928#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
119929
119930#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
119931template <class t_HEAD, class t_TAIL_01,
119932 class t_TAIL_02,
119933 class t_TAIL_03,
119934 class t_TAIL_04,
119935 class t_TAIL_05,
119936 class t_TAIL_06,
119937 class t_TAIL_07,
119938 class t_TAIL_08,
119939 class t_TAIL_09,
119940 class t_TAIL_10,
119941 class t_TAIL_11,
119942 class t_TAIL_12,
119943 class t_TAIL_13>
119944template <class t_TYPE>
119945inline
119946variant<t_HEAD, t_TAIL_01,
119947 t_TAIL_02,
119948 t_TAIL_03,
119949 t_TAIL_04,
119950 t_TAIL_05,
119951 t_TAIL_06,
119952 t_TAIL_07,
119953 t_TAIL_08,
119954 t_TAIL_09,
119955 t_TAIL_10,
119956 t_TAIL_11,
119957 t_TAIL_12,
119958 t_TAIL_13,
119959 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
119962: Variant_Base(
119963 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
119964{
119965}
119966#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
119967
119968#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
119969template <class t_HEAD, class t_TAIL_01,
119970 class t_TAIL_02,
119971 class t_TAIL_03,
119972 class t_TAIL_04,
119973 class t_TAIL_05,
119974 class t_TAIL_06,
119975 class t_TAIL_07,
119976 class t_TAIL_08,
119977 class t_TAIL_09,
119978 class t_TAIL_10,
119979 class t_TAIL_11,
119980 class t_TAIL_12,
119981 class t_TAIL_13,
119982 class t_TAIL_14>
119983template <class t_TYPE>
119984inline
119985variant<t_HEAD, t_TAIL_01,
119986 t_TAIL_02,
119987 t_TAIL_03,
119988 t_TAIL_04,
119989 t_TAIL_05,
119990 t_TAIL_06,
119991 t_TAIL_07,
119992 t_TAIL_08,
119993 t_TAIL_09,
119994 t_TAIL_10,
119995 t_TAIL_11,
119996 t_TAIL_12,
119997 t_TAIL_13,
119998 t_TAIL_14,
119999 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
120002: Variant_Base(
120003 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
120004{
120005}
120006#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
120007
120008#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
120009template <class t_HEAD, class t_TAIL_01,
120010 class t_TAIL_02,
120011 class t_TAIL_03,
120012 class t_TAIL_04,
120013 class t_TAIL_05,
120014 class t_TAIL_06,
120015 class t_TAIL_07,
120016 class t_TAIL_08,
120017 class t_TAIL_09,
120018 class t_TAIL_10,
120019 class t_TAIL_11,
120020 class t_TAIL_12,
120021 class t_TAIL_13,
120022 class t_TAIL_14,
120023 class t_TAIL_15>
120024template <class t_TYPE>
120025inline
120026variant<t_HEAD, t_TAIL_01,
120027 t_TAIL_02,
120028 t_TAIL_03,
120029 t_TAIL_04,
120030 t_TAIL_05,
120031 t_TAIL_06,
120032 t_TAIL_07,
120033 t_TAIL_08,
120034 t_TAIL_09,
120035 t_TAIL_10,
120036 t_TAIL_11,
120037 t_TAIL_12,
120038 t_TAIL_13,
120039 t_TAIL_14,
120040 t_TAIL_15,
120041 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
120044: Variant_Base(
120045 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
120046{
120047}
120048#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
120049
120050#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
120051template <class t_HEAD, class t_TAIL_01,
120052 class t_TAIL_02,
120053 class t_TAIL_03,
120054 class t_TAIL_04,
120055 class t_TAIL_05,
120056 class t_TAIL_06,
120057 class t_TAIL_07,
120058 class t_TAIL_08,
120059 class t_TAIL_09,
120060 class t_TAIL_10,
120061 class t_TAIL_11,
120062 class t_TAIL_12,
120063 class t_TAIL_13,
120064 class t_TAIL_14,
120065 class t_TAIL_15,
120066 class t_TAIL_16>
120067template <class t_TYPE>
120068inline
120069variant<t_HEAD, t_TAIL_01,
120070 t_TAIL_02,
120071 t_TAIL_03,
120072 t_TAIL_04,
120073 t_TAIL_05,
120074 t_TAIL_06,
120075 t_TAIL_07,
120076 t_TAIL_08,
120077 t_TAIL_09,
120078 t_TAIL_10,
120079 t_TAIL_11,
120080 t_TAIL_12,
120081 t_TAIL_13,
120082 t_TAIL_14,
120083 t_TAIL_15,
120084 t_TAIL_16,
120085 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
120088: Variant_Base(
120089 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
120090{
120091}
120092#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
120093
120094#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
120095template <class t_HEAD, class t_TAIL_01,
120096 class t_TAIL_02,
120097 class t_TAIL_03,
120098 class t_TAIL_04,
120099 class t_TAIL_05,
120100 class t_TAIL_06,
120101 class t_TAIL_07,
120102 class t_TAIL_08,
120103 class t_TAIL_09,
120104 class t_TAIL_10,
120105 class t_TAIL_11,
120106 class t_TAIL_12,
120107 class t_TAIL_13,
120108 class t_TAIL_14,
120109 class t_TAIL_15,
120110 class t_TAIL_16,
120111 class t_TAIL_17>
120112template <class t_TYPE>
120113inline
120114variant<t_HEAD, t_TAIL_01,
120115 t_TAIL_02,
120116 t_TAIL_03,
120117 t_TAIL_04,
120118 t_TAIL_05,
120119 t_TAIL_06,
120120 t_TAIL_07,
120121 t_TAIL_08,
120122 t_TAIL_09,
120123 t_TAIL_10,
120124 t_TAIL_11,
120125 t_TAIL_12,
120126 t_TAIL_13,
120127 t_TAIL_14,
120128 t_TAIL_15,
120129 t_TAIL_16,
120130 t_TAIL_17,
120131 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
120134: Variant_Base(
120135 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
120136{
120137}
120138#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
120139
120140#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
120141template <class t_HEAD, class t_TAIL_01,
120142 class t_TAIL_02,
120143 class t_TAIL_03,
120144 class t_TAIL_04,
120145 class t_TAIL_05,
120146 class t_TAIL_06,
120147 class t_TAIL_07,
120148 class t_TAIL_08,
120149 class t_TAIL_09,
120150 class t_TAIL_10,
120151 class t_TAIL_11,
120152 class t_TAIL_12,
120153 class t_TAIL_13,
120154 class t_TAIL_14,
120155 class t_TAIL_15,
120156 class t_TAIL_16,
120157 class t_TAIL_17,
120158 class t_TAIL_18>
120159template <class t_TYPE>
120160inline
120161variant<t_HEAD, t_TAIL_01,
120162 t_TAIL_02,
120163 t_TAIL_03,
120164 t_TAIL_04,
120165 t_TAIL_05,
120166 t_TAIL_06,
120167 t_TAIL_07,
120168 t_TAIL_08,
120169 t_TAIL_09,
120170 t_TAIL_10,
120171 t_TAIL_11,
120172 t_TAIL_12,
120173 t_TAIL_13,
120174 t_TAIL_14,
120175 t_TAIL_15,
120176 t_TAIL_16,
120177 t_TAIL_17,
120178 t_TAIL_18,
120179 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
120182: Variant_Base(
120183 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
120184{
120185}
120186#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
120187
120188
120189#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
120190template <class t_HEAD>
120191template <class t_TYPE, class t_ARG_01>
120192inline
120193variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
120195 const t_ARG_01& arg_01,
120197: Variant_Base(
120198 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120199 arg_01)
120200{
120201}
120202#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
120203
120204#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
120205template <class t_HEAD, class t_TAIL_01>
120206template <class t_TYPE, class t_ARG_01>
120207inline
120208variant<t_HEAD, t_TAIL_01,
120209 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
120211 const t_ARG_01& arg_01,
120213: Variant_Base(
120214 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120215 arg_01)
120216{
120217}
120218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
120219
120220#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
120221template <class t_HEAD, class t_TAIL_01,
120222 class t_TAIL_02>
120223template <class t_TYPE, class t_ARG_01>
120224inline
120225variant<t_HEAD, t_TAIL_01,
120226 t_TAIL_02,
120227 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
120229 const t_ARG_01& arg_01,
120231: Variant_Base(
120232 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120233 arg_01)
120234{
120235}
120236#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
120237
120238#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
120239template <class t_HEAD, class t_TAIL_01,
120240 class t_TAIL_02,
120241 class t_TAIL_03>
120242template <class t_TYPE, class t_ARG_01>
120243inline
120244variant<t_HEAD, t_TAIL_01,
120245 t_TAIL_02,
120246 t_TAIL_03,
120247 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
120249 const t_ARG_01& arg_01,
120251: Variant_Base(
120252 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120253 arg_01)
120254{
120255}
120256#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
120257
120258#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
120259template <class t_HEAD, class t_TAIL_01,
120260 class t_TAIL_02,
120261 class t_TAIL_03,
120262 class t_TAIL_04>
120263template <class t_TYPE, class t_ARG_01>
120264inline
120265variant<t_HEAD, t_TAIL_01,
120266 t_TAIL_02,
120267 t_TAIL_03,
120268 t_TAIL_04,
120269 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
120271 const t_ARG_01& arg_01,
120273: Variant_Base(
120274 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120275 arg_01)
120276{
120277}
120278#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
120279
120280#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
120281template <class t_HEAD, class t_TAIL_01,
120282 class t_TAIL_02,
120283 class t_TAIL_03,
120284 class t_TAIL_04,
120285 class t_TAIL_05>
120286template <class t_TYPE, class t_ARG_01>
120287inline
120288variant<t_HEAD, t_TAIL_01,
120289 t_TAIL_02,
120290 t_TAIL_03,
120291 t_TAIL_04,
120292 t_TAIL_05,
120293 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
120295 const t_ARG_01& arg_01,
120297: Variant_Base(
120298 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120299 arg_01)
120300{
120301}
120302#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
120303
120304#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
120305template <class t_HEAD, class t_TAIL_01,
120306 class t_TAIL_02,
120307 class t_TAIL_03,
120308 class t_TAIL_04,
120309 class t_TAIL_05,
120310 class t_TAIL_06>
120311template <class t_TYPE, class t_ARG_01>
120312inline
120313variant<t_HEAD, t_TAIL_01,
120314 t_TAIL_02,
120315 t_TAIL_03,
120316 t_TAIL_04,
120317 t_TAIL_05,
120318 t_TAIL_06,
120319 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
120321 const t_ARG_01& arg_01,
120323: Variant_Base(
120324 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120325 arg_01)
120326{
120327}
120328#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
120329
120330#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
120331template <class t_HEAD, class t_TAIL_01,
120332 class t_TAIL_02,
120333 class t_TAIL_03,
120334 class t_TAIL_04,
120335 class t_TAIL_05,
120336 class t_TAIL_06,
120337 class t_TAIL_07>
120338template <class t_TYPE, class t_ARG_01>
120339inline
120340variant<t_HEAD, t_TAIL_01,
120341 t_TAIL_02,
120342 t_TAIL_03,
120343 t_TAIL_04,
120344 t_TAIL_05,
120345 t_TAIL_06,
120346 t_TAIL_07,
120347 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
120349 const t_ARG_01& arg_01,
120351: Variant_Base(
120352 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120353 arg_01)
120354{
120355}
120356#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
120357
120358#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
120359template <class t_HEAD, class t_TAIL_01,
120360 class t_TAIL_02,
120361 class t_TAIL_03,
120362 class t_TAIL_04,
120363 class t_TAIL_05,
120364 class t_TAIL_06,
120365 class t_TAIL_07,
120366 class t_TAIL_08>
120367template <class t_TYPE, class t_ARG_01>
120368inline
120369variant<t_HEAD, t_TAIL_01,
120370 t_TAIL_02,
120371 t_TAIL_03,
120372 t_TAIL_04,
120373 t_TAIL_05,
120374 t_TAIL_06,
120375 t_TAIL_07,
120376 t_TAIL_08,
120377 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
120379 const t_ARG_01& arg_01,
120381: Variant_Base(
120382 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120383 arg_01)
120384{
120385}
120386#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
120387
120388#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
120389template <class t_HEAD, class t_TAIL_01,
120390 class t_TAIL_02,
120391 class t_TAIL_03,
120392 class t_TAIL_04,
120393 class t_TAIL_05,
120394 class t_TAIL_06,
120395 class t_TAIL_07,
120396 class t_TAIL_08,
120397 class t_TAIL_09>
120398template <class t_TYPE, class t_ARG_01>
120399inline
120400variant<t_HEAD, t_TAIL_01,
120401 t_TAIL_02,
120402 t_TAIL_03,
120403 t_TAIL_04,
120404 t_TAIL_05,
120405 t_TAIL_06,
120406 t_TAIL_07,
120407 t_TAIL_08,
120408 t_TAIL_09,
120409 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
120411 const t_ARG_01& arg_01,
120413: Variant_Base(
120414 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120415 arg_01)
120416{
120417}
120418#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
120419
120420#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
120421template <class t_HEAD, class t_TAIL_01,
120422 class t_TAIL_02,
120423 class t_TAIL_03,
120424 class t_TAIL_04,
120425 class t_TAIL_05,
120426 class t_TAIL_06,
120427 class t_TAIL_07,
120428 class t_TAIL_08,
120429 class t_TAIL_09,
120430 class t_TAIL_10>
120431template <class t_TYPE, class t_ARG_01>
120432inline
120433variant<t_HEAD, t_TAIL_01,
120434 t_TAIL_02,
120435 t_TAIL_03,
120436 t_TAIL_04,
120437 t_TAIL_05,
120438 t_TAIL_06,
120439 t_TAIL_07,
120440 t_TAIL_08,
120441 t_TAIL_09,
120442 t_TAIL_10,
120443 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
120445 const t_ARG_01& arg_01,
120447: Variant_Base(
120448 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120449 arg_01)
120450{
120451}
120452#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
120453
120454#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
120455template <class t_HEAD, class t_TAIL_01,
120456 class t_TAIL_02,
120457 class t_TAIL_03,
120458 class t_TAIL_04,
120459 class t_TAIL_05,
120460 class t_TAIL_06,
120461 class t_TAIL_07,
120462 class t_TAIL_08,
120463 class t_TAIL_09,
120464 class t_TAIL_10,
120465 class t_TAIL_11>
120466template <class t_TYPE, class t_ARG_01>
120467inline
120468variant<t_HEAD, t_TAIL_01,
120469 t_TAIL_02,
120470 t_TAIL_03,
120471 t_TAIL_04,
120472 t_TAIL_05,
120473 t_TAIL_06,
120474 t_TAIL_07,
120475 t_TAIL_08,
120476 t_TAIL_09,
120477 t_TAIL_10,
120478 t_TAIL_11,
120479 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
120481 const t_ARG_01& arg_01,
120483: Variant_Base(
120484 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120485 arg_01)
120486{
120487}
120488#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
120489
120490#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
120491template <class t_HEAD, class t_TAIL_01,
120492 class t_TAIL_02,
120493 class t_TAIL_03,
120494 class t_TAIL_04,
120495 class t_TAIL_05,
120496 class t_TAIL_06,
120497 class t_TAIL_07,
120498 class t_TAIL_08,
120499 class t_TAIL_09,
120500 class t_TAIL_10,
120501 class t_TAIL_11,
120502 class t_TAIL_12>
120503template <class t_TYPE, class t_ARG_01>
120504inline
120505variant<t_HEAD, t_TAIL_01,
120506 t_TAIL_02,
120507 t_TAIL_03,
120508 t_TAIL_04,
120509 t_TAIL_05,
120510 t_TAIL_06,
120511 t_TAIL_07,
120512 t_TAIL_08,
120513 t_TAIL_09,
120514 t_TAIL_10,
120515 t_TAIL_11,
120516 t_TAIL_12,
120517 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
120519 const t_ARG_01& arg_01,
120521: Variant_Base(
120522 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120523 arg_01)
120524{
120525}
120526#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
120527
120528#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
120529template <class t_HEAD, class t_TAIL_01,
120530 class t_TAIL_02,
120531 class t_TAIL_03,
120532 class t_TAIL_04,
120533 class t_TAIL_05,
120534 class t_TAIL_06,
120535 class t_TAIL_07,
120536 class t_TAIL_08,
120537 class t_TAIL_09,
120538 class t_TAIL_10,
120539 class t_TAIL_11,
120540 class t_TAIL_12,
120541 class t_TAIL_13>
120542template <class t_TYPE, class t_ARG_01>
120543inline
120544variant<t_HEAD, t_TAIL_01,
120545 t_TAIL_02,
120546 t_TAIL_03,
120547 t_TAIL_04,
120548 t_TAIL_05,
120549 t_TAIL_06,
120550 t_TAIL_07,
120551 t_TAIL_08,
120552 t_TAIL_09,
120553 t_TAIL_10,
120554 t_TAIL_11,
120555 t_TAIL_12,
120556 t_TAIL_13,
120557 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
120559 const t_ARG_01& arg_01,
120561: Variant_Base(
120562 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120563 arg_01)
120564{
120565}
120566#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
120567
120568#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
120569template <class t_HEAD, class t_TAIL_01,
120570 class t_TAIL_02,
120571 class t_TAIL_03,
120572 class t_TAIL_04,
120573 class t_TAIL_05,
120574 class t_TAIL_06,
120575 class t_TAIL_07,
120576 class t_TAIL_08,
120577 class t_TAIL_09,
120578 class t_TAIL_10,
120579 class t_TAIL_11,
120580 class t_TAIL_12,
120581 class t_TAIL_13,
120582 class t_TAIL_14>
120583template <class t_TYPE, class t_ARG_01>
120584inline
120585variant<t_HEAD, t_TAIL_01,
120586 t_TAIL_02,
120587 t_TAIL_03,
120588 t_TAIL_04,
120589 t_TAIL_05,
120590 t_TAIL_06,
120591 t_TAIL_07,
120592 t_TAIL_08,
120593 t_TAIL_09,
120594 t_TAIL_10,
120595 t_TAIL_11,
120596 t_TAIL_12,
120597 t_TAIL_13,
120598 t_TAIL_14,
120599 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
120601 const t_ARG_01& arg_01,
120603: Variant_Base(
120604 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120605 arg_01)
120606{
120607}
120608#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
120609
120610#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
120611template <class t_HEAD, class t_TAIL_01,
120612 class t_TAIL_02,
120613 class t_TAIL_03,
120614 class t_TAIL_04,
120615 class t_TAIL_05,
120616 class t_TAIL_06,
120617 class t_TAIL_07,
120618 class t_TAIL_08,
120619 class t_TAIL_09,
120620 class t_TAIL_10,
120621 class t_TAIL_11,
120622 class t_TAIL_12,
120623 class t_TAIL_13,
120624 class t_TAIL_14,
120625 class t_TAIL_15>
120626template <class t_TYPE, class t_ARG_01>
120627inline
120628variant<t_HEAD, t_TAIL_01,
120629 t_TAIL_02,
120630 t_TAIL_03,
120631 t_TAIL_04,
120632 t_TAIL_05,
120633 t_TAIL_06,
120634 t_TAIL_07,
120635 t_TAIL_08,
120636 t_TAIL_09,
120637 t_TAIL_10,
120638 t_TAIL_11,
120639 t_TAIL_12,
120640 t_TAIL_13,
120641 t_TAIL_14,
120642 t_TAIL_15,
120643 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
120645 const t_ARG_01& arg_01,
120647: Variant_Base(
120648 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120649 arg_01)
120650{
120651}
120652#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
120653
120654#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
120655template <class t_HEAD, class t_TAIL_01,
120656 class t_TAIL_02,
120657 class t_TAIL_03,
120658 class t_TAIL_04,
120659 class t_TAIL_05,
120660 class t_TAIL_06,
120661 class t_TAIL_07,
120662 class t_TAIL_08,
120663 class t_TAIL_09,
120664 class t_TAIL_10,
120665 class t_TAIL_11,
120666 class t_TAIL_12,
120667 class t_TAIL_13,
120668 class t_TAIL_14,
120669 class t_TAIL_15,
120670 class t_TAIL_16>
120671template <class t_TYPE, class t_ARG_01>
120672inline
120673variant<t_HEAD, t_TAIL_01,
120674 t_TAIL_02,
120675 t_TAIL_03,
120676 t_TAIL_04,
120677 t_TAIL_05,
120678 t_TAIL_06,
120679 t_TAIL_07,
120680 t_TAIL_08,
120681 t_TAIL_09,
120682 t_TAIL_10,
120683 t_TAIL_11,
120684 t_TAIL_12,
120685 t_TAIL_13,
120686 t_TAIL_14,
120687 t_TAIL_15,
120688 t_TAIL_16,
120689 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
120691 const t_ARG_01& arg_01,
120693: Variant_Base(
120694 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120695 arg_01)
120696{
120697}
120698#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
120699
120700#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
120701template <class t_HEAD, class t_TAIL_01,
120702 class t_TAIL_02,
120703 class t_TAIL_03,
120704 class t_TAIL_04,
120705 class t_TAIL_05,
120706 class t_TAIL_06,
120707 class t_TAIL_07,
120708 class t_TAIL_08,
120709 class t_TAIL_09,
120710 class t_TAIL_10,
120711 class t_TAIL_11,
120712 class t_TAIL_12,
120713 class t_TAIL_13,
120714 class t_TAIL_14,
120715 class t_TAIL_15,
120716 class t_TAIL_16,
120717 class t_TAIL_17>
120718template <class t_TYPE, class t_ARG_01>
120719inline
120720variant<t_HEAD, t_TAIL_01,
120721 t_TAIL_02,
120722 t_TAIL_03,
120723 t_TAIL_04,
120724 t_TAIL_05,
120725 t_TAIL_06,
120726 t_TAIL_07,
120727 t_TAIL_08,
120728 t_TAIL_09,
120729 t_TAIL_10,
120730 t_TAIL_11,
120731 t_TAIL_12,
120732 t_TAIL_13,
120733 t_TAIL_14,
120734 t_TAIL_15,
120735 t_TAIL_16,
120736 t_TAIL_17,
120737 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
120739 const t_ARG_01& arg_01,
120741: Variant_Base(
120742 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120743 arg_01)
120744{
120745}
120746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
120747
120748#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
120749template <class t_HEAD, class t_TAIL_01,
120750 class t_TAIL_02,
120751 class t_TAIL_03,
120752 class t_TAIL_04,
120753 class t_TAIL_05,
120754 class t_TAIL_06,
120755 class t_TAIL_07,
120756 class t_TAIL_08,
120757 class t_TAIL_09,
120758 class t_TAIL_10,
120759 class t_TAIL_11,
120760 class t_TAIL_12,
120761 class t_TAIL_13,
120762 class t_TAIL_14,
120763 class t_TAIL_15,
120764 class t_TAIL_16,
120765 class t_TAIL_17,
120766 class t_TAIL_18>
120767template <class t_TYPE, class t_ARG_01>
120768inline
120769variant<t_HEAD, t_TAIL_01,
120770 t_TAIL_02,
120771 t_TAIL_03,
120772 t_TAIL_04,
120773 t_TAIL_05,
120774 t_TAIL_06,
120775 t_TAIL_07,
120776 t_TAIL_08,
120777 t_TAIL_09,
120778 t_TAIL_10,
120779 t_TAIL_11,
120780 t_TAIL_12,
120781 t_TAIL_13,
120782 t_TAIL_14,
120783 t_TAIL_15,
120784 t_TAIL_16,
120785 t_TAIL_17,
120786 t_TAIL_18,
120787 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
120789 const t_ARG_01& arg_01,
120791: Variant_Base(
120792 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120793 arg_01)
120794{
120795}
120796#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
120797
120798
120799#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
120800template <class t_HEAD>
120801template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120802inline
120803variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
120805 const t_ARG_01& arg_01,
120806 const t_ARG_02& arg_02,
120808: Variant_Base(
120809 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120810 arg_01,
120811 arg_02)
120812{
120813}
120814#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
120815
120816#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
120817template <class t_HEAD, class t_TAIL_01>
120818template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120819inline
120820variant<t_HEAD, t_TAIL_01,
120821 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
120823 const t_ARG_01& arg_01,
120824 const t_ARG_02& arg_02,
120826: Variant_Base(
120827 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120828 arg_01,
120829 arg_02)
120830{
120831}
120832#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
120833
120834#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
120835template <class t_HEAD, class t_TAIL_01,
120836 class t_TAIL_02>
120837template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120838inline
120839variant<t_HEAD, t_TAIL_01,
120840 t_TAIL_02,
120841 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
120843 const t_ARG_01& arg_01,
120844 const t_ARG_02& arg_02,
120846: Variant_Base(
120847 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120848 arg_01,
120849 arg_02)
120850{
120851}
120852#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
120853
120854#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
120855template <class t_HEAD, class t_TAIL_01,
120856 class t_TAIL_02,
120857 class t_TAIL_03>
120858template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120859inline
120860variant<t_HEAD, t_TAIL_01,
120861 t_TAIL_02,
120862 t_TAIL_03,
120863 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
120865 const t_ARG_01& arg_01,
120866 const t_ARG_02& arg_02,
120868: Variant_Base(
120869 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120870 arg_01,
120871 arg_02)
120872{
120873}
120874#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
120875
120876#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
120877template <class t_HEAD, class t_TAIL_01,
120878 class t_TAIL_02,
120879 class t_TAIL_03,
120880 class t_TAIL_04>
120881template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120882inline
120883variant<t_HEAD, t_TAIL_01,
120884 t_TAIL_02,
120885 t_TAIL_03,
120886 t_TAIL_04,
120887 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
120889 const t_ARG_01& arg_01,
120890 const t_ARG_02& arg_02,
120892: Variant_Base(
120893 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120894 arg_01,
120895 arg_02)
120896{
120897}
120898#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
120899
120900#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
120901template <class t_HEAD, class t_TAIL_01,
120902 class t_TAIL_02,
120903 class t_TAIL_03,
120904 class t_TAIL_04,
120905 class t_TAIL_05>
120906template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120907inline
120908variant<t_HEAD, t_TAIL_01,
120909 t_TAIL_02,
120910 t_TAIL_03,
120911 t_TAIL_04,
120912 t_TAIL_05,
120913 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
120915 const t_ARG_01& arg_01,
120916 const t_ARG_02& arg_02,
120918: Variant_Base(
120919 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120920 arg_01,
120921 arg_02)
120922{
120923}
120924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
120925
120926#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
120927template <class t_HEAD, class t_TAIL_01,
120928 class t_TAIL_02,
120929 class t_TAIL_03,
120930 class t_TAIL_04,
120931 class t_TAIL_05,
120932 class t_TAIL_06>
120933template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120934inline
120935variant<t_HEAD, t_TAIL_01,
120936 t_TAIL_02,
120937 t_TAIL_03,
120938 t_TAIL_04,
120939 t_TAIL_05,
120940 t_TAIL_06,
120941 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
120943 const t_ARG_01& arg_01,
120944 const t_ARG_02& arg_02,
120946: Variant_Base(
120947 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120948 arg_01,
120949 arg_02)
120950{
120951}
120952#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
120953
120954#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
120955template <class t_HEAD, class t_TAIL_01,
120956 class t_TAIL_02,
120957 class t_TAIL_03,
120958 class t_TAIL_04,
120959 class t_TAIL_05,
120960 class t_TAIL_06,
120961 class t_TAIL_07>
120962template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120963inline
120964variant<t_HEAD, t_TAIL_01,
120965 t_TAIL_02,
120966 t_TAIL_03,
120967 t_TAIL_04,
120968 t_TAIL_05,
120969 t_TAIL_06,
120970 t_TAIL_07,
120971 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
120973 const t_ARG_01& arg_01,
120974 const t_ARG_02& arg_02,
120976: Variant_Base(
120977 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
120978 arg_01,
120979 arg_02)
120980{
120981}
120982#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
120983
120984#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
120985template <class t_HEAD, class t_TAIL_01,
120986 class t_TAIL_02,
120987 class t_TAIL_03,
120988 class t_TAIL_04,
120989 class t_TAIL_05,
120990 class t_TAIL_06,
120991 class t_TAIL_07,
120992 class t_TAIL_08>
120993template <class t_TYPE, class t_ARG_01, class t_ARG_02>
120994inline
120995variant<t_HEAD, t_TAIL_01,
120996 t_TAIL_02,
120997 t_TAIL_03,
120998 t_TAIL_04,
120999 t_TAIL_05,
121000 t_TAIL_06,
121001 t_TAIL_07,
121002 t_TAIL_08,
121003 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
121005 const t_ARG_01& arg_01,
121006 const t_ARG_02& arg_02,
121008: Variant_Base(
121009 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121010 arg_01,
121011 arg_02)
121012{
121013}
121014#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
121015
121016#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
121017template <class t_HEAD, class t_TAIL_01,
121018 class t_TAIL_02,
121019 class t_TAIL_03,
121020 class t_TAIL_04,
121021 class t_TAIL_05,
121022 class t_TAIL_06,
121023 class t_TAIL_07,
121024 class t_TAIL_08,
121025 class t_TAIL_09>
121026template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121027inline
121028variant<t_HEAD, t_TAIL_01,
121029 t_TAIL_02,
121030 t_TAIL_03,
121031 t_TAIL_04,
121032 t_TAIL_05,
121033 t_TAIL_06,
121034 t_TAIL_07,
121035 t_TAIL_08,
121036 t_TAIL_09,
121037 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
121039 const t_ARG_01& arg_01,
121040 const t_ARG_02& arg_02,
121042: Variant_Base(
121043 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121044 arg_01,
121045 arg_02)
121046{
121047}
121048#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
121049
121050#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
121051template <class t_HEAD, class t_TAIL_01,
121052 class t_TAIL_02,
121053 class t_TAIL_03,
121054 class t_TAIL_04,
121055 class t_TAIL_05,
121056 class t_TAIL_06,
121057 class t_TAIL_07,
121058 class t_TAIL_08,
121059 class t_TAIL_09,
121060 class t_TAIL_10>
121061template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121062inline
121063variant<t_HEAD, t_TAIL_01,
121064 t_TAIL_02,
121065 t_TAIL_03,
121066 t_TAIL_04,
121067 t_TAIL_05,
121068 t_TAIL_06,
121069 t_TAIL_07,
121070 t_TAIL_08,
121071 t_TAIL_09,
121072 t_TAIL_10,
121073 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
121075 const t_ARG_01& arg_01,
121076 const t_ARG_02& arg_02,
121078: Variant_Base(
121079 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121080 arg_01,
121081 arg_02)
121082{
121083}
121084#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
121085
121086#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
121087template <class t_HEAD, class t_TAIL_01,
121088 class t_TAIL_02,
121089 class t_TAIL_03,
121090 class t_TAIL_04,
121091 class t_TAIL_05,
121092 class t_TAIL_06,
121093 class t_TAIL_07,
121094 class t_TAIL_08,
121095 class t_TAIL_09,
121096 class t_TAIL_10,
121097 class t_TAIL_11>
121098template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121099inline
121100variant<t_HEAD, t_TAIL_01,
121101 t_TAIL_02,
121102 t_TAIL_03,
121103 t_TAIL_04,
121104 t_TAIL_05,
121105 t_TAIL_06,
121106 t_TAIL_07,
121107 t_TAIL_08,
121108 t_TAIL_09,
121109 t_TAIL_10,
121110 t_TAIL_11,
121111 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
121113 const t_ARG_01& arg_01,
121114 const t_ARG_02& arg_02,
121116: Variant_Base(
121117 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121118 arg_01,
121119 arg_02)
121120{
121121}
121122#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
121123
121124#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
121125template <class t_HEAD, class t_TAIL_01,
121126 class t_TAIL_02,
121127 class t_TAIL_03,
121128 class t_TAIL_04,
121129 class t_TAIL_05,
121130 class t_TAIL_06,
121131 class t_TAIL_07,
121132 class t_TAIL_08,
121133 class t_TAIL_09,
121134 class t_TAIL_10,
121135 class t_TAIL_11,
121136 class t_TAIL_12>
121137template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121138inline
121139variant<t_HEAD, t_TAIL_01,
121140 t_TAIL_02,
121141 t_TAIL_03,
121142 t_TAIL_04,
121143 t_TAIL_05,
121144 t_TAIL_06,
121145 t_TAIL_07,
121146 t_TAIL_08,
121147 t_TAIL_09,
121148 t_TAIL_10,
121149 t_TAIL_11,
121150 t_TAIL_12,
121151 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
121153 const t_ARG_01& arg_01,
121154 const t_ARG_02& arg_02,
121156: Variant_Base(
121157 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121158 arg_01,
121159 arg_02)
121160{
121161}
121162#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
121163
121164#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
121165template <class t_HEAD, class t_TAIL_01,
121166 class t_TAIL_02,
121167 class t_TAIL_03,
121168 class t_TAIL_04,
121169 class t_TAIL_05,
121170 class t_TAIL_06,
121171 class t_TAIL_07,
121172 class t_TAIL_08,
121173 class t_TAIL_09,
121174 class t_TAIL_10,
121175 class t_TAIL_11,
121176 class t_TAIL_12,
121177 class t_TAIL_13>
121178template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121179inline
121180variant<t_HEAD, t_TAIL_01,
121181 t_TAIL_02,
121182 t_TAIL_03,
121183 t_TAIL_04,
121184 t_TAIL_05,
121185 t_TAIL_06,
121186 t_TAIL_07,
121187 t_TAIL_08,
121188 t_TAIL_09,
121189 t_TAIL_10,
121190 t_TAIL_11,
121191 t_TAIL_12,
121192 t_TAIL_13,
121193 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
121195 const t_ARG_01& arg_01,
121196 const t_ARG_02& arg_02,
121198: Variant_Base(
121199 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121200 arg_01,
121201 arg_02)
121202{
121203}
121204#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
121205
121206#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
121207template <class t_HEAD, class t_TAIL_01,
121208 class t_TAIL_02,
121209 class t_TAIL_03,
121210 class t_TAIL_04,
121211 class t_TAIL_05,
121212 class t_TAIL_06,
121213 class t_TAIL_07,
121214 class t_TAIL_08,
121215 class t_TAIL_09,
121216 class t_TAIL_10,
121217 class t_TAIL_11,
121218 class t_TAIL_12,
121219 class t_TAIL_13,
121220 class t_TAIL_14>
121221template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121222inline
121223variant<t_HEAD, t_TAIL_01,
121224 t_TAIL_02,
121225 t_TAIL_03,
121226 t_TAIL_04,
121227 t_TAIL_05,
121228 t_TAIL_06,
121229 t_TAIL_07,
121230 t_TAIL_08,
121231 t_TAIL_09,
121232 t_TAIL_10,
121233 t_TAIL_11,
121234 t_TAIL_12,
121235 t_TAIL_13,
121236 t_TAIL_14,
121237 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
121239 const t_ARG_01& arg_01,
121240 const t_ARG_02& arg_02,
121242: Variant_Base(
121243 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121244 arg_01,
121245 arg_02)
121246{
121247}
121248#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
121249
121250#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
121251template <class t_HEAD, class t_TAIL_01,
121252 class t_TAIL_02,
121253 class t_TAIL_03,
121254 class t_TAIL_04,
121255 class t_TAIL_05,
121256 class t_TAIL_06,
121257 class t_TAIL_07,
121258 class t_TAIL_08,
121259 class t_TAIL_09,
121260 class t_TAIL_10,
121261 class t_TAIL_11,
121262 class t_TAIL_12,
121263 class t_TAIL_13,
121264 class t_TAIL_14,
121265 class t_TAIL_15>
121266template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121267inline
121268variant<t_HEAD, t_TAIL_01,
121269 t_TAIL_02,
121270 t_TAIL_03,
121271 t_TAIL_04,
121272 t_TAIL_05,
121273 t_TAIL_06,
121274 t_TAIL_07,
121275 t_TAIL_08,
121276 t_TAIL_09,
121277 t_TAIL_10,
121278 t_TAIL_11,
121279 t_TAIL_12,
121280 t_TAIL_13,
121281 t_TAIL_14,
121282 t_TAIL_15,
121283 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
121285 const t_ARG_01& arg_01,
121286 const t_ARG_02& arg_02,
121288: Variant_Base(
121289 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121290 arg_01,
121291 arg_02)
121292{
121293}
121294#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
121295
121296#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
121297template <class t_HEAD, class t_TAIL_01,
121298 class t_TAIL_02,
121299 class t_TAIL_03,
121300 class t_TAIL_04,
121301 class t_TAIL_05,
121302 class t_TAIL_06,
121303 class t_TAIL_07,
121304 class t_TAIL_08,
121305 class t_TAIL_09,
121306 class t_TAIL_10,
121307 class t_TAIL_11,
121308 class t_TAIL_12,
121309 class t_TAIL_13,
121310 class t_TAIL_14,
121311 class t_TAIL_15,
121312 class t_TAIL_16>
121313template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121314inline
121315variant<t_HEAD, t_TAIL_01,
121316 t_TAIL_02,
121317 t_TAIL_03,
121318 t_TAIL_04,
121319 t_TAIL_05,
121320 t_TAIL_06,
121321 t_TAIL_07,
121322 t_TAIL_08,
121323 t_TAIL_09,
121324 t_TAIL_10,
121325 t_TAIL_11,
121326 t_TAIL_12,
121327 t_TAIL_13,
121328 t_TAIL_14,
121329 t_TAIL_15,
121330 t_TAIL_16,
121331 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
121333 const t_ARG_01& arg_01,
121334 const t_ARG_02& arg_02,
121336: Variant_Base(
121337 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121338 arg_01,
121339 arg_02)
121340{
121341}
121342#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
121343
121344#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
121345template <class t_HEAD, class t_TAIL_01,
121346 class t_TAIL_02,
121347 class t_TAIL_03,
121348 class t_TAIL_04,
121349 class t_TAIL_05,
121350 class t_TAIL_06,
121351 class t_TAIL_07,
121352 class t_TAIL_08,
121353 class t_TAIL_09,
121354 class t_TAIL_10,
121355 class t_TAIL_11,
121356 class t_TAIL_12,
121357 class t_TAIL_13,
121358 class t_TAIL_14,
121359 class t_TAIL_15,
121360 class t_TAIL_16,
121361 class t_TAIL_17>
121362template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121363inline
121364variant<t_HEAD, t_TAIL_01,
121365 t_TAIL_02,
121366 t_TAIL_03,
121367 t_TAIL_04,
121368 t_TAIL_05,
121369 t_TAIL_06,
121370 t_TAIL_07,
121371 t_TAIL_08,
121372 t_TAIL_09,
121373 t_TAIL_10,
121374 t_TAIL_11,
121375 t_TAIL_12,
121376 t_TAIL_13,
121377 t_TAIL_14,
121378 t_TAIL_15,
121379 t_TAIL_16,
121380 t_TAIL_17,
121381 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
121383 const t_ARG_01& arg_01,
121384 const t_ARG_02& arg_02,
121386: Variant_Base(
121387 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121388 arg_01,
121389 arg_02)
121390{
121391}
121392#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
121393
121394#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
121395template <class t_HEAD, class t_TAIL_01,
121396 class t_TAIL_02,
121397 class t_TAIL_03,
121398 class t_TAIL_04,
121399 class t_TAIL_05,
121400 class t_TAIL_06,
121401 class t_TAIL_07,
121402 class t_TAIL_08,
121403 class t_TAIL_09,
121404 class t_TAIL_10,
121405 class t_TAIL_11,
121406 class t_TAIL_12,
121407 class t_TAIL_13,
121408 class t_TAIL_14,
121409 class t_TAIL_15,
121410 class t_TAIL_16,
121411 class t_TAIL_17,
121412 class t_TAIL_18>
121413template <class t_TYPE, class t_ARG_01, class t_ARG_02>
121414inline
121415variant<t_HEAD, t_TAIL_01,
121416 t_TAIL_02,
121417 t_TAIL_03,
121418 t_TAIL_04,
121419 t_TAIL_05,
121420 t_TAIL_06,
121421 t_TAIL_07,
121422 t_TAIL_08,
121423 t_TAIL_09,
121424 t_TAIL_10,
121425 t_TAIL_11,
121426 t_TAIL_12,
121427 t_TAIL_13,
121428 t_TAIL_14,
121429 t_TAIL_15,
121430 t_TAIL_16,
121431 t_TAIL_17,
121432 t_TAIL_18,
121433 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
121435 const t_ARG_01& arg_01,
121436 const t_ARG_02& arg_02,
121438: Variant_Base(
121439 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121440 arg_01,
121441 arg_02)
121442{
121443}
121444#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
121445
121446
121447#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
121448template <class t_HEAD>
121449template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121450inline
121451variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
121453 const t_ARG_01& arg_01,
121454 const t_ARG_02& arg_02,
121455 const t_ARG_03& arg_03,
121457: Variant_Base(
121458 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121459 arg_01,
121460 arg_02,
121461 arg_03)
121462{
121463}
121464#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
121465
121466#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
121467template <class t_HEAD, class t_TAIL_01>
121468template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121469inline
121470variant<t_HEAD, t_TAIL_01,
121471 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
121473 const t_ARG_01& arg_01,
121474 const t_ARG_02& arg_02,
121475 const t_ARG_03& arg_03,
121477: Variant_Base(
121478 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121479 arg_01,
121480 arg_02,
121481 arg_03)
121482{
121483}
121484#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
121485
121486#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
121487template <class t_HEAD, class t_TAIL_01,
121488 class t_TAIL_02>
121489template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121490inline
121491variant<t_HEAD, t_TAIL_01,
121492 t_TAIL_02,
121493 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
121495 const t_ARG_01& arg_01,
121496 const t_ARG_02& arg_02,
121497 const t_ARG_03& arg_03,
121499: Variant_Base(
121500 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121501 arg_01,
121502 arg_02,
121503 arg_03)
121504{
121505}
121506#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
121507
121508#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
121509template <class t_HEAD, class t_TAIL_01,
121510 class t_TAIL_02,
121511 class t_TAIL_03>
121512template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121513inline
121514variant<t_HEAD, t_TAIL_01,
121515 t_TAIL_02,
121516 t_TAIL_03,
121517 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
121519 const t_ARG_01& arg_01,
121520 const t_ARG_02& arg_02,
121521 const t_ARG_03& arg_03,
121523: Variant_Base(
121524 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121525 arg_01,
121526 arg_02,
121527 arg_03)
121528{
121529}
121530#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
121531
121532#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
121533template <class t_HEAD, class t_TAIL_01,
121534 class t_TAIL_02,
121535 class t_TAIL_03,
121536 class t_TAIL_04>
121537template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121538inline
121539variant<t_HEAD, t_TAIL_01,
121540 t_TAIL_02,
121541 t_TAIL_03,
121542 t_TAIL_04,
121543 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
121545 const t_ARG_01& arg_01,
121546 const t_ARG_02& arg_02,
121547 const t_ARG_03& arg_03,
121549: Variant_Base(
121550 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121551 arg_01,
121552 arg_02,
121553 arg_03)
121554{
121555}
121556#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
121557
121558#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
121559template <class t_HEAD, class t_TAIL_01,
121560 class t_TAIL_02,
121561 class t_TAIL_03,
121562 class t_TAIL_04,
121563 class t_TAIL_05>
121564template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121565inline
121566variant<t_HEAD, t_TAIL_01,
121567 t_TAIL_02,
121568 t_TAIL_03,
121569 t_TAIL_04,
121570 t_TAIL_05,
121571 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
121573 const t_ARG_01& arg_01,
121574 const t_ARG_02& arg_02,
121575 const t_ARG_03& arg_03,
121577: Variant_Base(
121578 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121579 arg_01,
121580 arg_02,
121581 arg_03)
121582{
121583}
121584#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
121585
121586#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
121587template <class t_HEAD, class t_TAIL_01,
121588 class t_TAIL_02,
121589 class t_TAIL_03,
121590 class t_TAIL_04,
121591 class t_TAIL_05,
121592 class t_TAIL_06>
121593template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121594inline
121595variant<t_HEAD, t_TAIL_01,
121596 t_TAIL_02,
121597 t_TAIL_03,
121598 t_TAIL_04,
121599 t_TAIL_05,
121600 t_TAIL_06,
121601 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
121603 const t_ARG_01& arg_01,
121604 const t_ARG_02& arg_02,
121605 const t_ARG_03& arg_03,
121607: Variant_Base(
121608 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121609 arg_01,
121610 arg_02,
121611 arg_03)
121612{
121613}
121614#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
121615
121616#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
121617template <class t_HEAD, class t_TAIL_01,
121618 class t_TAIL_02,
121619 class t_TAIL_03,
121620 class t_TAIL_04,
121621 class t_TAIL_05,
121622 class t_TAIL_06,
121623 class t_TAIL_07>
121624template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121625inline
121626variant<t_HEAD, t_TAIL_01,
121627 t_TAIL_02,
121628 t_TAIL_03,
121629 t_TAIL_04,
121630 t_TAIL_05,
121631 t_TAIL_06,
121632 t_TAIL_07,
121633 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
121635 const t_ARG_01& arg_01,
121636 const t_ARG_02& arg_02,
121637 const t_ARG_03& arg_03,
121639: Variant_Base(
121640 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121641 arg_01,
121642 arg_02,
121643 arg_03)
121644{
121645}
121646#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
121647
121648#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
121649template <class t_HEAD, class t_TAIL_01,
121650 class t_TAIL_02,
121651 class t_TAIL_03,
121652 class t_TAIL_04,
121653 class t_TAIL_05,
121654 class t_TAIL_06,
121655 class t_TAIL_07,
121656 class t_TAIL_08>
121657template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121658inline
121659variant<t_HEAD, t_TAIL_01,
121660 t_TAIL_02,
121661 t_TAIL_03,
121662 t_TAIL_04,
121663 t_TAIL_05,
121664 t_TAIL_06,
121665 t_TAIL_07,
121666 t_TAIL_08,
121667 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
121669 const t_ARG_01& arg_01,
121670 const t_ARG_02& arg_02,
121671 const t_ARG_03& arg_03,
121673: Variant_Base(
121674 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121675 arg_01,
121676 arg_02,
121677 arg_03)
121678{
121679}
121680#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
121681
121682#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
121683template <class t_HEAD, class t_TAIL_01,
121684 class t_TAIL_02,
121685 class t_TAIL_03,
121686 class t_TAIL_04,
121687 class t_TAIL_05,
121688 class t_TAIL_06,
121689 class t_TAIL_07,
121690 class t_TAIL_08,
121691 class t_TAIL_09>
121692template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121693inline
121694variant<t_HEAD, t_TAIL_01,
121695 t_TAIL_02,
121696 t_TAIL_03,
121697 t_TAIL_04,
121698 t_TAIL_05,
121699 t_TAIL_06,
121700 t_TAIL_07,
121701 t_TAIL_08,
121702 t_TAIL_09,
121703 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
121705 const t_ARG_01& arg_01,
121706 const t_ARG_02& arg_02,
121707 const t_ARG_03& arg_03,
121709: Variant_Base(
121710 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121711 arg_01,
121712 arg_02,
121713 arg_03)
121714{
121715}
121716#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
121717
121718#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
121719template <class t_HEAD, class t_TAIL_01,
121720 class t_TAIL_02,
121721 class t_TAIL_03,
121722 class t_TAIL_04,
121723 class t_TAIL_05,
121724 class t_TAIL_06,
121725 class t_TAIL_07,
121726 class t_TAIL_08,
121727 class t_TAIL_09,
121728 class t_TAIL_10>
121729template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121730inline
121731variant<t_HEAD, t_TAIL_01,
121732 t_TAIL_02,
121733 t_TAIL_03,
121734 t_TAIL_04,
121735 t_TAIL_05,
121736 t_TAIL_06,
121737 t_TAIL_07,
121738 t_TAIL_08,
121739 t_TAIL_09,
121740 t_TAIL_10,
121741 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
121743 const t_ARG_01& arg_01,
121744 const t_ARG_02& arg_02,
121745 const t_ARG_03& arg_03,
121747: Variant_Base(
121748 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121749 arg_01,
121750 arg_02,
121751 arg_03)
121752{
121753}
121754#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
121755
121756#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
121757template <class t_HEAD, class t_TAIL_01,
121758 class t_TAIL_02,
121759 class t_TAIL_03,
121760 class t_TAIL_04,
121761 class t_TAIL_05,
121762 class t_TAIL_06,
121763 class t_TAIL_07,
121764 class t_TAIL_08,
121765 class t_TAIL_09,
121766 class t_TAIL_10,
121767 class t_TAIL_11>
121768template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121769inline
121770variant<t_HEAD, t_TAIL_01,
121771 t_TAIL_02,
121772 t_TAIL_03,
121773 t_TAIL_04,
121774 t_TAIL_05,
121775 t_TAIL_06,
121776 t_TAIL_07,
121777 t_TAIL_08,
121778 t_TAIL_09,
121779 t_TAIL_10,
121780 t_TAIL_11,
121781 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
121783 const t_ARG_01& arg_01,
121784 const t_ARG_02& arg_02,
121785 const t_ARG_03& arg_03,
121787: Variant_Base(
121788 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121789 arg_01,
121790 arg_02,
121791 arg_03)
121792{
121793}
121794#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
121795
121796#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
121797template <class t_HEAD, class t_TAIL_01,
121798 class t_TAIL_02,
121799 class t_TAIL_03,
121800 class t_TAIL_04,
121801 class t_TAIL_05,
121802 class t_TAIL_06,
121803 class t_TAIL_07,
121804 class t_TAIL_08,
121805 class t_TAIL_09,
121806 class t_TAIL_10,
121807 class t_TAIL_11,
121808 class t_TAIL_12>
121809template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121810inline
121811variant<t_HEAD, t_TAIL_01,
121812 t_TAIL_02,
121813 t_TAIL_03,
121814 t_TAIL_04,
121815 t_TAIL_05,
121816 t_TAIL_06,
121817 t_TAIL_07,
121818 t_TAIL_08,
121819 t_TAIL_09,
121820 t_TAIL_10,
121821 t_TAIL_11,
121822 t_TAIL_12,
121823 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
121825 const t_ARG_01& arg_01,
121826 const t_ARG_02& arg_02,
121827 const t_ARG_03& arg_03,
121829: Variant_Base(
121830 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121831 arg_01,
121832 arg_02,
121833 arg_03)
121834{
121835}
121836#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
121837
121838#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
121839template <class t_HEAD, class t_TAIL_01,
121840 class t_TAIL_02,
121841 class t_TAIL_03,
121842 class t_TAIL_04,
121843 class t_TAIL_05,
121844 class t_TAIL_06,
121845 class t_TAIL_07,
121846 class t_TAIL_08,
121847 class t_TAIL_09,
121848 class t_TAIL_10,
121849 class t_TAIL_11,
121850 class t_TAIL_12,
121851 class t_TAIL_13>
121852template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121853inline
121854variant<t_HEAD, t_TAIL_01,
121855 t_TAIL_02,
121856 t_TAIL_03,
121857 t_TAIL_04,
121858 t_TAIL_05,
121859 t_TAIL_06,
121860 t_TAIL_07,
121861 t_TAIL_08,
121862 t_TAIL_09,
121863 t_TAIL_10,
121864 t_TAIL_11,
121865 t_TAIL_12,
121866 t_TAIL_13,
121867 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
121869 const t_ARG_01& arg_01,
121870 const t_ARG_02& arg_02,
121871 const t_ARG_03& arg_03,
121873: Variant_Base(
121874 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121875 arg_01,
121876 arg_02,
121877 arg_03)
121878{
121879}
121880#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
121881
121882#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
121883template <class t_HEAD, class t_TAIL_01,
121884 class t_TAIL_02,
121885 class t_TAIL_03,
121886 class t_TAIL_04,
121887 class t_TAIL_05,
121888 class t_TAIL_06,
121889 class t_TAIL_07,
121890 class t_TAIL_08,
121891 class t_TAIL_09,
121892 class t_TAIL_10,
121893 class t_TAIL_11,
121894 class t_TAIL_12,
121895 class t_TAIL_13,
121896 class t_TAIL_14>
121897template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121898inline
121899variant<t_HEAD, t_TAIL_01,
121900 t_TAIL_02,
121901 t_TAIL_03,
121902 t_TAIL_04,
121903 t_TAIL_05,
121904 t_TAIL_06,
121905 t_TAIL_07,
121906 t_TAIL_08,
121907 t_TAIL_09,
121908 t_TAIL_10,
121909 t_TAIL_11,
121910 t_TAIL_12,
121911 t_TAIL_13,
121912 t_TAIL_14,
121913 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
121915 const t_ARG_01& arg_01,
121916 const t_ARG_02& arg_02,
121917 const t_ARG_03& arg_03,
121919: Variant_Base(
121920 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121921 arg_01,
121922 arg_02,
121923 arg_03)
121924{
121925}
121926#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
121927
121928#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
121929template <class t_HEAD, class t_TAIL_01,
121930 class t_TAIL_02,
121931 class t_TAIL_03,
121932 class t_TAIL_04,
121933 class t_TAIL_05,
121934 class t_TAIL_06,
121935 class t_TAIL_07,
121936 class t_TAIL_08,
121937 class t_TAIL_09,
121938 class t_TAIL_10,
121939 class t_TAIL_11,
121940 class t_TAIL_12,
121941 class t_TAIL_13,
121942 class t_TAIL_14,
121943 class t_TAIL_15>
121944template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121945inline
121946variant<t_HEAD, t_TAIL_01,
121947 t_TAIL_02,
121948 t_TAIL_03,
121949 t_TAIL_04,
121950 t_TAIL_05,
121951 t_TAIL_06,
121952 t_TAIL_07,
121953 t_TAIL_08,
121954 t_TAIL_09,
121955 t_TAIL_10,
121956 t_TAIL_11,
121957 t_TAIL_12,
121958 t_TAIL_13,
121959 t_TAIL_14,
121960 t_TAIL_15,
121961 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
121963 const t_ARG_01& arg_01,
121964 const t_ARG_02& arg_02,
121965 const t_ARG_03& arg_03,
121967: Variant_Base(
121968 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
121969 arg_01,
121970 arg_02,
121971 arg_03)
121972{
121973}
121974#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
121975
121976#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
121977template <class t_HEAD, class t_TAIL_01,
121978 class t_TAIL_02,
121979 class t_TAIL_03,
121980 class t_TAIL_04,
121981 class t_TAIL_05,
121982 class t_TAIL_06,
121983 class t_TAIL_07,
121984 class t_TAIL_08,
121985 class t_TAIL_09,
121986 class t_TAIL_10,
121987 class t_TAIL_11,
121988 class t_TAIL_12,
121989 class t_TAIL_13,
121990 class t_TAIL_14,
121991 class t_TAIL_15,
121992 class t_TAIL_16>
121993template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
121994inline
121995variant<t_HEAD, t_TAIL_01,
121996 t_TAIL_02,
121997 t_TAIL_03,
121998 t_TAIL_04,
121999 t_TAIL_05,
122000 t_TAIL_06,
122001 t_TAIL_07,
122002 t_TAIL_08,
122003 t_TAIL_09,
122004 t_TAIL_10,
122005 t_TAIL_11,
122006 t_TAIL_12,
122007 t_TAIL_13,
122008 t_TAIL_14,
122009 t_TAIL_15,
122010 t_TAIL_16,
122011 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
122013 const t_ARG_01& arg_01,
122014 const t_ARG_02& arg_02,
122015 const t_ARG_03& arg_03,
122017: Variant_Base(
122018 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122019 arg_01,
122020 arg_02,
122021 arg_03)
122022{
122023}
122024#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
122025
122026#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
122027template <class t_HEAD, class t_TAIL_01,
122028 class t_TAIL_02,
122029 class t_TAIL_03,
122030 class t_TAIL_04,
122031 class t_TAIL_05,
122032 class t_TAIL_06,
122033 class t_TAIL_07,
122034 class t_TAIL_08,
122035 class t_TAIL_09,
122036 class t_TAIL_10,
122037 class t_TAIL_11,
122038 class t_TAIL_12,
122039 class t_TAIL_13,
122040 class t_TAIL_14,
122041 class t_TAIL_15,
122042 class t_TAIL_16,
122043 class t_TAIL_17>
122044template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
122045inline
122046variant<t_HEAD, t_TAIL_01,
122047 t_TAIL_02,
122048 t_TAIL_03,
122049 t_TAIL_04,
122050 t_TAIL_05,
122051 t_TAIL_06,
122052 t_TAIL_07,
122053 t_TAIL_08,
122054 t_TAIL_09,
122055 t_TAIL_10,
122056 t_TAIL_11,
122057 t_TAIL_12,
122058 t_TAIL_13,
122059 t_TAIL_14,
122060 t_TAIL_15,
122061 t_TAIL_16,
122062 t_TAIL_17,
122063 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
122065 const t_ARG_01& arg_01,
122066 const t_ARG_02& arg_02,
122067 const t_ARG_03& arg_03,
122069: Variant_Base(
122070 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122071 arg_01,
122072 arg_02,
122073 arg_03)
122074{
122075}
122076#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
122077
122078#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
122079template <class t_HEAD, class t_TAIL_01,
122080 class t_TAIL_02,
122081 class t_TAIL_03,
122082 class t_TAIL_04,
122083 class t_TAIL_05,
122084 class t_TAIL_06,
122085 class t_TAIL_07,
122086 class t_TAIL_08,
122087 class t_TAIL_09,
122088 class t_TAIL_10,
122089 class t_TAIL_11,
122090 class t_TAIL_12,
122091 class t_TAIL_13,
122092 class t_TAIL_14,
122093 class t_TAIL_15,
122094 class t_TAIL_16,
122095 class t_TAIL_17,
122096 class t_TAIL_18>
122097template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
122098inline
122099variant<t_HEAD, t_TAIL_01,
122100 t_TAIL_02,
122101 t_TAIL_03,
122102 t_TAIL_04,
122103 t_TAIL_05,
122104 t_TAIL_06,
122105 t_TAIL_07,
122106 t_TAIL_08,
122107 t_TAIL_09,
122108 t_TAIL_10,
122109 t_TAIL_11,
122110 t_TAIL_12,
122111 t_TAIL_13,
122112 t_TAIL_14,
122113 t_TAIL_15,
122114 t_TAIL_16,
122115 t_TAIL_17,
122116 t_TAIL_18,
122117 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
122119 const t_ARG_01& arg_01,
122120 const t_ARG_02& arg_02,
122121 const t_ARG_03& arg_03,
122123: Variant_Base(
122124 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122125 arg_01,
122126 arg_02,
122127 arg_03)
122128{
122129}
122130#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
122131
122132
122133#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
122134template <class t_HEAD>
122135template <class t_TYPE,
122136 class t_ARG_01,
122137 class t_ARG_02,
122138 class t_ARG_03,
122139 class t_ARG_04>
122140inline
122141variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
122143 const t_ARG_01& arg_01,
122144 const t_ARG_02& arg_02,
122145 const t_ARG_03& arg_03,
122146 const t_ARG_04& arg_04,
122148: Variant_Base(
122149 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122150 arg_01,
122151 arg_02,
122152 arg_03,
122153 arg_04)
122154{
122155}
122156#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
122157
122158#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
122159template <class t_HEAD, class t_TAIL_01>
122160template <class t_TYPE,
122161 class t_ARG_01,
122162 class t_ARG_02,
122163 class t_ARG_03,
122164 class t_ARG_04>
122165inline
122166variant<t_HEAD, t_TAIL_01,
122167 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
122169 const t_ARG_01& arg_01,
122170 const t_ARG_02& arg_02,
122171 const t_ARG_03& arg_03,
122172 const t_ARG_04& arg_04,
122174: Variant_Base(
122175 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122176 arg_01,
122177 arg_02,
122178 arg_03,
122179 arg_04)
122180{
122181}
122182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
122183
122184#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
122185template <class t_HEAD, class t_TAIL_01,
122186 class t_TAIL_02>
122187template <class t_TYPE,
122188 class t_ARG_01,
122189 class t_ARG_02,
122190 class t_ARG_03,
122191 class t_ARG_04>
122192inline
122193variant<t_HEAD, t_TAIL_01,
122194 t_TAIL_02,
122195 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
122197 const t_ARG_01& arg_01,
122198 const t_ARG_02& arg_02,
122199 const t_ARG_03& arg_03,
122200 const t_ARG_04& arg_04,
122202: Variant_Base(
122203 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122204 arg_01,
122205 arg_02,
122206 arg_03,
122207 arg_04)
122208{
122209}
122210#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
122211
122212#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
122213template <class t_HEAD, class t_TAIL_01,
122214 class t_TAIL_02,
122215 class t_TAIL_03>
122216template <class t_TYPE,
122217 class t_ARG_01,
122218 class t_ARG_02,
122219 class t_ARG_03,
122220 class t_ARG_04>
122221inline
122222variant<t_HEAD, t_TAIL_01,
122223 t_TAIL_02,
122224 t_TAIL_03,
122225 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
122227 const t_ARG_01& arg_01,
122228 const t_ARG_02& arg_02,
122229 const t_ARG_03& arg_03,
122230 const t_ARG_04& arg_04,
122232: Variant_Base(
122233 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122234 arg_01,
122235 arg_02,
122236 arg_03,
122237 arg_04)
122238{
122239}
122240#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
122241
122242#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
122243template <class t_HEAD, class t_TAIL_01,
122244 class t_TAIL_02,
122245 class t_TAIL_03,
122246 class t_TAIL_04>
122247template <class t_TYPE,
122248 class t_ARG_01,
122249 class t_ARG_02,
122250 class t_ARG_03,
122251 class t_ARG_04>
122252inline
122253variant<t_HEAD, t_TAIL_01,
122254 t_TAIL_02,
122255 t_TAIL_03,
122256 t_TAIL_04,
122257 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
122259 const t_ARG_01& arg_01,
122260 const t_ARG_02& arg_02,
122261 const t_ARG_03& arg_03,
122262 const t_ARG_04& arg_04,
122264: Variant_Base(
122265 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122266 arg_01,
122267 arg_02,
122268 arg_03,
122269 arg_04)
122270{
122271}
122272#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
122273
122274#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
122275template <class t_HEAD, class t_TAIL_01,
122276 class t_TAIL_02,
122277 class t_TAIL_03,
122278 class t_TAIL_04,
122279 class t_TAIL_05>
122280template <class t_TYPE,
122281 class t_ARG_01,
122282 class t_ARG_02,
122283 class t_ARG_03,
122284 class t_ARG_04>
122285inline
122286variant<t_HEAD, t_TAIL_01,
122287 t_TAIL_02,
122288 t_TAIL_03,
122289 t_TAIL_04,
122290 t_TAIL_05,
122291 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
122293 const t_ARG_01& arg_01,
122294 const t_ARG_02& arg_02,
122295 const t_ARG_03& arg_03,
122296 const t_ARG_04& arg_04,
122298: Variant_Base(
122299 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122300 arg_01,
122301 arg_02,
122302 arg_03,
122303 arg_04)
122304{
122305}
122306#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
122307
122308#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
122309template <class t_HEAD, class t_TAIL_01,
122310 class t_TAIL_02,
122311 class t_TAIL_03,
122312 class t_TAIL_04,
122313 class t_TAIL_05,
122314 class t_TAIL_06>
122315template <class t_TYPE,
122316 class t_ARG_01,
122317 class t_ARG_02,
122318 class t_ARG_03,
122319 class t_ARG_04>
122320inline
122321variant<t_HEAD, t_TAIL_01,
122322 t_TAIL_02,
122323 t_TAIL_03,
122324 t_TAIL_04,
122325 t_TAIL_05,
122326 t_TAIL_06,
122327 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
122329 const t_ARG_01& arg_01,
122330 const t_ARG_02& arg_02,
122331 const t_ARG_03& arg_03,
122332 const t_ARG_04& arg_04,
122334: Variant_Base(
122335 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122336 arg_01,
122337 arg_02,
122338 arg_03,
122339 arg_04)
122340{
122341}
122342#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
122343
122344#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
122345template <class t_HEAD, class t_TAIL_01,
122346 class t_TAIL_02,
122347 class t_TAIL_03,
122348 class t_TAIL_04,
122349 class t_TAIL_05,
122350 class t_TAIL_06,
122351 class t_TAIL_07>
122352template <class t_TYPE,
122353 class t_ARG_01,
122354 class t_ARG_02,
122355 class t_ARG_03,
122356 class t_ARG_04>
122357inline
122358variant<t_HEAD, t_TAIL_01,
122359 t_TAIL_02,
122360 t_TAIL_03,
122361 t_TAIL_04,
122362 t_TAIL_05,
122363 t_TAIL_06,
122364 t_TAIL_07,
122365 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
122367 const t_ARG_01& arg_01,
122368 const t_ARG_02& arg_02,
122369 const t_ARG_03& arg_03,
122370 const t_ARG_04& arg_04,
122372: Variant_Base(
122373 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122374 arg_01,
122375 arg_02,
122376 arg_03,
122377 arg_04)
122378{
122379}
122380#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
122381
122382#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
122383template <class t_HEAD, class t_TAIL_01,
122384 class t_TAIL_02,
122385 class t_TAIL_03,
122386 class t_TAIL_04,
122387 class t_TAIL_05,
122388 class t_TAIL_06,
122389 class t_TAIL_07,
122390 class t_TAIL_08>
122391template <class t_TYPE,
122392 class t_ARG_01,
122393 class t_ARG_02,
122394 class t_ARG_03,
122395 class t_ARG_04>
122396inline
122397variant<t_HEAD, t_TAIL_01,
122398 t_TAIL_02,
122399 t_TAIL_03,
122400 t_TAIL_04,
122401 t_TAIL_05,
122402 t_TAIL_06,
122403 t_TAIL_07,
122404 t_TAIL_08,
122405 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
122407 const t_ARG_01& arg_01,
122408 const t_ARG_02& arg_02,
122409 const t_ARG_03& arg_03,
122410 const t_ARG_04& arg_04,
122412: Variant_Base(
122413 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122414 arg_01,
122415 arg_02,
122416 arg_03,
122417 arg_04)
122418{
122419}
122420#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
122421
122422#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
122423template <class t_HEAD, class t_TAIL_01,
122424 class t_TAIL_02,
122425 class t_TAIL_03,
122426 class t_TAIL_04,
122427 class t_TAIL_05,
122428 class t_TAIL_06,
122429 class t_TAIL_07,
122430 class t_TAIL_08,
122431 class t_TAIL_09>
122432template <class t_TYPE,
122433 class t_ARG_01,
122434 class t_ARG_02,
122435 class t_ARG_03,
122436 class t_ARG_04>
122437inline
122438variant<t_HEAD, t_TAIL_01,
122439 t_TAIL_02,
122440 t_TAIL_03,
122441 t_TAIL_04,
122442 t_TAIL_05,
122443 t_TAIL_06,
122444 t_TAIL_07,
122445 t_TAIL_08,
122446 t_TAIL_09,
122447 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
122449 const t_ARG_01& arg_01,
122450 const t_ARG_02& arg_02,
122451 const t_ARG_03& arg_03,
122452 const t_ARG_04& arg_04,
122454: Variant_Base(
122455 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122456 arg_01,
122457 arg_02,
122458 arg_03,
122459 arg_04)
122460{
122461}
122462#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
122463
122464#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
122465template <class t_HEAD, class t_TAIL_01,
122466 class t_TAIL_02,
122467 class t_TAIL_03,
122468 class t_TAIL_04,
122469 class t_TAIL_05,
122470 class t_TAIL_06,
122471 class t_TAIL_07,
122472 class t_TAIL_08,
122473 class t_TAIL_09,
122474 class t_TAIL_10>
122475template <class t_TYPE,
122476 class t_ARG_01,
122477 class t_ARG_02,
122478 class t_ARG_03,
122479 class t_ARG_04>
122480inline
122481variant<t_HEAD, t_TAIL_01,
122482 t_TAIL_02,
122483 t_TAIL_03,
122484 t_TAIL_04,
122485 t_TAIL_05,
122486 t_TAIL_06,
122487 t_TAIL_07,
122488 t_TAIL_08,
122489 t_TAIL_09,
122490 t_TAIL_10,
122491 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
122493 const t_ARG_01& arg_01,
122494 const t_ARG_02& arg_02,
122495 const t_ARG_03& arg_03,
122496 const t_ARG_04& arg_04,
122498: Variant_Base(
122499 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122500 arg_01,
122501 arg_02,
122502 arg_03,
122503 arg_04)
122504{
122505}
122506#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
122507
122508#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
122509template <class t_HEAD, class t_TAIL_01,
122510 class t_TAIL_02,
122511 class t_TAIL_03,
122512 class t_TAIL_04,
122513 class t_TAIL_05,
122514 class t_TAIL_06,
122515 class t_TAIL_07,
122516 class t_TAIL_08,
122517 class t_TAIL_09,
122518 class t_TAIL_10,
122519 class t_TAIL_11>
122520template <class t_TYPE,
122521 class t_ARG_01,
122522 class t_ARG_02,
122523 class t_ARG_03,
122524 class t_ARG_04>
122525inline
122526variant<t_HEAD, t_TAIL_01,
122527 t_TAIL_02,
122528 t_TAIL_03,
122529 t_TAIL_04,
122530 t_TAIL_05,
122531 t_TAIL_06,
122532 t_TAIL_07,
122533 t_TAIL_08,
122534 t_TAIL_09,
122535 t_TAIL_10,
122536 t_TAIL_11,
122537 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
122539 const t_ARG_01& arg_01,
122540 const t_ARG_02& arg_02,
122541 const t_ARG_03& arg_03,
122542 const t_ARG_04& arg_04,
122544: Variant_Base(
122545 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122546 arg_01,
122547 arg_02,
122548 arg_03,
122549 arg_04)
122550{
122551}
122552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
122553
122554#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
122555template <class t_HEAD, class t_TAIL_01,
122556 class t_TAIL_02,
122557 class t_TAIL_03,
122558 class t_TAIL_04,
122559 class t_TAIL_05,
122560 class t_TAIL_06,
122561 class t_TAIL_07,
122562 class t_TAIL_08,
122563 class t_TAIL_09,
122564 class t_TAIL_10,
122565 class t_TAIL_11,
122566 class t_TAIL_12>
122567template <class t_TYPE,
122568 class t_ARG_01,
122569 class t_ARG_02,
122570 class t_ARG_03,
122571 class t_ARG_04>
122572inline
122573variant<t_HEAD, t_TAIL_01,
122574 t_TAIL_02,
122575 t_TAIL_03,
122576 t_TAIL_04,
122577 t_TAIL_05,
122578 t_TAIL_06,
122579 t_TAIL_07,
122580 t_TAIL_08,
122581 t_TAIL_09,
122582 t_TAIL_10,
122583 t_TAIL_11,
122584 t_TAIL_12,
122585 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
122587 const t_ARG_01& arg_01,
122588 const t_ARG_02& arg_02,
122589 const t_ARG_03& arg_03,
122590 const t_ARG_04& arg_04,
122592: Variant_Base(
122593 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122594 arg_01,
122595 arg_02,
122596 arg_03,
122597 arg_04)
122598{
122599}
122600#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
122601
122602#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
122603template <class t_HEAD, class t_TAIL_01,
122604 class t_TAIL_02,
122605 class t_TAIL_03,
122606 class t_TAIL_04,
122607 class t_TAIL_05,
122608 class t_TAIL_06,
122609 class t_TAIL_07,
122610 class t_TAIL_08,
122611 class t_TAIL_09,
122612 class t_TAIL_10,
122613 class t_TAIL_11,
122614 class t_TAIL_12,
122615 class t_TAIL_13>
122616template <class t_TYPE,
122617 class t_ARG_01,
122618 class t_ARG_02,
122619 class t_ARG_03,
122620 class t_ARG_04>
122621inline
122622variant<t_HEAD, t_TAIL_01,
122623 t_TAIL_02,
122624 t_TAIL_03,
122625 t_TAIL_04,
122626 t_TAIL_05,
122627 t_TAIL_06,
122628 t_TAIL_07,
122629 t_TAIL_08,
122630 t_TAIL_09,
122631 t_TAIL_10,
122632 t_TAIL_11,
122633 t_TAIL_12,
122634 t_TAIL_13,
122635 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
122637 const t_ARG_01& arg_01,
122638 const t_ARG_02& arg_02,
122639 const t_ARG_03& arg_03,
122640 const t_ARG_04& arg_04,
122642: Variant_Base(
122643 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122644 arg_01,
122645 arg_02,
122646 arg_03,
122647 arg_04)
122648{
122649}
122650#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
122651
122652#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
122653template <class t_HEAD, class t_TAIL_01,
122654 class t_TAIL_02,
122655 class t_TAIL_03,
122656 class t_TAIL_04,
122657 class t_TAIL_05,
122658 class t_TAIL_06,
122659 class t_TAIL_07,
122660 class t_TAIL_08,
122661 class t_TAIL_09,
122662 class t_TAIL_10,
122663 class t_TAIL_11,
122664 class t_TAIL_12,
122665 class t_TAIL_13,
122666 class t_TAIL_14>
122667template <class t_TYPE,
122668 class t_ARG_01,
122669 class t_ARG_02,
122670 class t_ARG_03,
122671 class t_ARG_04>
122672inline
122673variant<t_HEAD, t_TAIL_01,
122674 t_TAIL_02,
122675 t_TAIL_03,
122676 t_TAIL_04,
122677 t_TAIL_05,
122678 t_TAIL_06,
122679 t_TAIL_07,
122680 t_TAIL_08,
122681 t_TAIL_09,
122682 t_TAIL_10,
122683 t_TAIL_11,
122684 t_TAIL_12,
122685 t_TAIL_13,
122686 t_TAIL_14,
122687 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
122689 const t_ARG_01& arg_01,
122690 const t_ARG_02& arg_02,
122691 const t_ARG_03& arg_03,
122692 const t_ARG_04& arg_04,
122694: Variant_Base(
122695 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122696 arg_01,
122697 arg_02,
122698 arg_03,
122699 arg_04)
122700{
122701}
122702#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
122703
122704#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
122705template <class t_HEAD, class t_TAIL_01,
122706 class t_TAIL_02,
122707 class t_TAIL_03,
122708 class t_TAIL_04,
122709 class t_TAIL_05,
122710 class t_TAIL_06,
122711 class t_TAIL_07,
122712 class t_TAIL_08,
122713 class t_TAIL_09,
122714 class t_TAIL_10,
122715 class t_TAIL_11,
122716 class t_TAIL_12,
122717 class t_TAIL_13,
122718 class t_TAIL_14,
122719 class t_TAIL_15>
122720template <class t_TYPE,
122721 class t_ARG_01,
122722 class t_ARG_02,
122723 class t_ARG_03,
122724 class t_ARG_04>
122725inline
122726variant<t_HEAD, t_TAIL_01,
122727 t_TAIL_02,
122728 t_TAIL_03,
122729 t_TAIL_04,
122730 t_TAIL_05,
122731 t_TAIL_06,
122732 t_TAIL_07,
122733 t_TAIL_08,
122734 t_TAIL_09,
122735 t_TAIL_10,
122736 t_TAIL_11,
122737 t_TAIL_12,
122738 t_TAIL_13,
122739 t_TAIL_14,
122740 t_TAIL_15,
122741 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
122743 const t_ARG_01& arg_01,
122744 const t_ARG_02& arg_02,
122745 const t_ARG_03& arg_03,
122746 const t_ARG_04& arg_04,
122748: Variant_Base(
122749 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122750 arg_01,
122751 arg_02,
122752 arg_03,
122753 arg_04)
122754{
122755}
122756#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
122757
122758#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
122759template <class t_HEAD, class t_TAIL_01,
122760 class t_TAIL_02,
122761 class t_TAIL_03,
122762 class t_TAIL_04,
122763 class t_TAIL_05,
122764 class t_TAIL_06,
122765 class t_TAIL_07,
122766 class t_TAIL_08,
122767 class t_TAIL_09,
122768 class t_TAIL_10,
122769 class t_TAIL_11,
122770 class t_TAIL_12,
122771 class t_TAIL_13,
122772 class t_TAIL_14,
122773 class t_TAIL_15,
122774 class t_TAIL_16>
122775template <class t_TYPE,
122776 class t_ARG_01,
122777 class t_ARG_02,
122778 class t_ARG_03,
122779 class t_ARG_04>
122780inline
122781variant<t_HEAD, t_TAIL_01,
122782 t_TAIL_02,
122783 t_TAIL_03,
122784 t_TAIL_04,
122785 t_TAIL_05,
122786 t_TAIL_06,
122787 t_TAIL_07,
122788 t_TAIL_08,
122789 t_TAIL_09,
122790 t_TAIL_10,
122791 t_TAIL_11,
122792 t_TAIL_12,
122793 t_TAIL_13,
122794 t_TAIL_14,
122795 t_TAIL_15,
122796 t_TAIL_16,
122797 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
122799 const t_ARG_01& arg_01,
122800 const t_ARG_02& arg_02,
122801 const t_ARG_03& arg_03,
122802 const t_ARG_04& arg_04,
122804: Variant_Base(
122805 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122806 arg_01,
122807 arg_02,
122808 arg_03,
122809 arg_04)
122810{
122811}
122812#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
122813
122814#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
122815template <class t_HEAD, class t_TAIL_01,
122816 class t_TAIL_02,
122817 class t_TAIL_03,
122818 class t_TAIL_04,
122819 class t_TAIL_05,
122820 class t_TAIL_06,
122821 class t_TAIL_07,
122822 class t_TAIL_08,
122823 class t_TAIL_09,
122824 class t_TAIL_10,
122825 class t_TAIL_11,
122826 class t_TAIL_12,
122827 class t_TAIL_13,
122828 class t_TAIL_14,
122829 class t_TAIL_15,
122830 class t_TAIL_16,
122831 class t_TAIL_17>
122832template <class t_TYPE,
122833 class t_ARG_01,
122834 class t_ARG_02,
122835 class t_ARG_03,
122836 class t_ARG_04>
122837inline
122838variant<t_HEAD, t_TAIL_01,
122839 t_TAIL_02,
122840 t_TAIL_03,
122841 t_TAIL_04,
122842 t_TAIL_05,
122843 t_TAIL_06,
122844 t_TAIL_07,
122845 t_TAIL_08,
122846 t_TAIL_09,
122847 t_TAIL_10,
122848 t_TAIL_11,
122849 t_TAIL_12,
122850 t_TAIL_13,
122851 t_TAIL_14,
122852 t_TAIL_15,
122853 t_TAIL_16,
122854 t_TAIL_17,
122855 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
122857 const t_ARG_01& arg_01,
122858 const t_ARG_02& arg_02,
122859 const t_ARG_03& arg_03,
122860 const t_ARG_04& arg_04,
122862: Variant_Base(
122863 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122864 arg_01,
122865 arg_02,
122866 arg_03,
122867 arg_04)
122868{
122869}
122870#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
122871
122872#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
122873template <class t_HEAD, class t_TAIL_01,
122874 class t_TAIL_02,
122875 class t_TAIL_03,
122876 class t_TAIL_04,
122877 class t_TAIL_05,
122878 class t_TAIL_06,
122879 class t_TAIL_07,
122880 class t_TAIL_08,
122881 class t_TAIL_09,
122882 class t_TAIL_10,
122883 class t_TAIL_11,
122884 class t_TAIL_12,
122885 class t_TAIL_13,
122886 class t_TAIL_14,
122887 class t_TAIL_15,
122888 class t_TAIL_16,
122889 class t_TAIL_17,
122890 class t_TAIL_18>
122891template <class t_TYPE,
122892 class t_ARG_01,
122893 class t_ARG_02,
122894 class t_ARG_03,
122895 class t_ARG_04>
122896inline
122897variant<t_HEAD, t_TAIL_01,
122898 t_TAIL_02,
122899 t_TAIL_03,
122900 t_TAIL_04,
122901 t_TAIL_05,
122902 t_TAIL_06,
122903 t_TAIL_07,
122904 t_TAIL_08,
122905 t_TAIL_09,
122906 t_TAIL_10,
122907 t_TAIL_11,
122908 t_TAIL_12,
122909 t_TAIL_13,
122910 t_TAIL_14,
122911 t_TAIL_15,
122912 t_TAIL_16,
122913 t_TAIL_17,
122914 t_TAIL_18,
122915 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
122917 const t_ARG_01& arg_01,
122918 const t_ARG_02& arg_02,
122919 const t_ARG_03& arg_03,
122920 const t_ARG_04& arg_04,
122922: Variant_Base(
122923 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122924 arg_01,
122925 arg_02,
122926 arg_03,
122927 arg_04)
122928{
122929}
122930#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
122931
122932
122933#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
122934template <class t_HEAD>
122935template <class t_TYPE,
122936 class t_ARG_01,
122937 class t_ARG_02,
122938 class t_ARG_03,
122939 class t_ARG_04,
122940 class t_ARG_05>
122941inline
122942variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
122944 const t_ARG_01& arg_01,
122945 const t_ARG_02& arg_02,
122946 const t_ARG_03& arg_03,
122947 const t_ARG_04& arg_04,
122948 const t_ARG_05& arg_05,
122950: Variant_Base(
122951 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122952 arg_01,
122953 arg_02,
122954 arg_03,
122955 arg_04,
122956 arg_05)
122957{
122958}
122959#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
122960
122961#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
122962template <class t_HEAD, class t_TAIL_01>
122963template <class t_TYPE,
122964 class t_ARG_01,
122965 class t_ARG_02,
122966 class t_ARG_03,
122967 class t_ARG_04,
122968 class t_ARG_05>
122969inline
122970variant<t_HEAD, t_TAIL_01,
122971 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
122973 const t_ARG_01& arg_01,
122974 const t_ARG_02& arg_02,
122975 const t_ARG_03& arg_03,
122976 const t_ARG_04& arg_04,
122977 const t_ARG_05& arg_05,
122979: Variant_Base(
122980 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
122981 arg_01,
122982 arg_02,
122983 arg_03,
122984 arg_04,
122985 arg_05)
122986{
122987}
122988#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
122989
122990#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
122991template <class t_HEAD, class t_TAIL_01,
122992 class t_TAIL_02>
122993template <class t_TYPE,
122994 class t_ARG_01,
122995 class t_ARG_02,
122996 class t_ARG_03,
122997 class t_ARG_04,
122998 class t_ARG_05>
122999inline
123000variant<t_HEAD, t_TAIL_01,
123001 t_TAIL_02,
123002 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
123004 const t_ARG_01& arg_01,
123005 const t_ARG_02& arg_02,
123006 const t_ARG_03& arg_03,
123007 const t_ARG_04& arg_04,
123008 const t_ARG_05& arg_05,
123010: Variant_Base(
123011 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123012 arg_01,
123013 arg_02,
123014 arg_03,
123015 arg_04,
123016 arg_05)
123017{
123018}
123019#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
123020
123021#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
123022template <class t_HEAD, class t_TAIL_01,
123023 class t_TAIL_02,
123024 class t_TAIL_03>
123025template <class t_TYPE,
123026 class t_ARG_01,
123027 class t_ARG_02,
123028 class t_ARG_03,
123029 class t_ARG_04,
123030 class t_ARG_05>
123031inline
123032variant<t_HEAD, t_TAIL_01,
123033 t_TAIL_02,
123034 t_TAIL_03,
123035 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
123037 const t_ARG_01& arg_01,
123038 const t_ARG_02& arg_02,
123039 const t_ARG_03& arg_03,
123040 const t_ARG_04& arg_04,
123041 const t_ARG_05& arg_05,
123043: Variant_Base(
123044 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123045 arg_01,
123046 arg_02,
123047 arg_03,
123048 arg_04,
123049 arg_05)
123050{
123051}
123052#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
123053
123054#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
123055template <class t_HEAD, class t_TAIL_01,
123056 class t_TAIL_02,
123057 class t_TAIL_03,
123058 class t_TAIL_04>
123059template <class t_TYPE,
123060 class t_ARG_01,
123061 class t_ARG_02,
123062 class t_ARG_03,
123063 class t_ARG_04,
123064 class t_ARG_05>
123065inline
123066variant<t_HEAD, t_TAIL_01,
123067 t_TAIL_02,
123068 t_TAIL_03,
123069 t_TAIL_04,
123070 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
123072 const t_ARG_01& arg_01,
123073 const t_ARG_02& arg_02,
123074 const t_ARG_03& arg_03,
123075 const t_ARG_04& arg_04,
123076 const t_ARG_05& arg_05,
123078: Variant_Base(
123079 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123080 arg_01,
123081 arg_02,
123082 arg_03,
123083 arg_04,
123084 arg_05)
123085{
123086}
123087#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
123088
123089#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
123090template <class t_HEAD, class t_TAIL_01,
123091 class t_TAIL_02,
123092 class t_TAIL_03,
123093 class t_TAIL_04,
123094 class t_TAIL_05>
123095template <class t_TYPE,
123096 class t_ARG_01,
123097 class t_ARG_02,
123098 class t_ARG_03,
123099 class t_ARG_04,
123100 class t_ARG_05>
123101inline
123102variant<t_HEAD, t_TAIL_01,
123103 t_TAIL_02,
123104 t_TAIL_03,
123105 t_TAIL_04,
123106 t_TAIL_05,
123107 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
123109 const t_ARG_01& arg_01,
123110 const t_ARG_02& arg_02,
123111 const t_ARG_03& arg_03,
123112 const t_ARG_04& arg_04,
123113 const t_ARG_05& arg_05,
123115: Variant_Base(
123116 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123117 arg_01,
123118 arg_02,
123119 arg_03,
123120 arg_04,
123121 arg_05)
123122{
123123}
123124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
123125
123126#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
123127template <class t_HEAD, class t_TAIL_01,
123128 class t_TAIL_02,
123129 class t_TAIL_03,
123130 class t_TAIL_04,
123131 class t_TAIL_05,
123132 class t_TAIL_06>
123133template <class t_TYPE,
123134 class t_ARG_01,
123135 class t_ARG_02,
123136 class t_ARG_03,
123137 class t_ARG_04,
123138 class t_ARG_05>
123139inline
123140variant<t_HEAD, t_TAIL_01,
123141 t_TAIL_02,
123142 t_TAIL_03,
123143 t_TAIL_04,
123144 t_TAIL_05,
123145 t_TAIL_06,
123146 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
123148 const t_ARG_01& arg_01,
123149 const t_ARG_02& arg_02,
123150 const t_ARG_03& arg_03,
123151 const t_ARG_04& arg_04,
123152 const t_ARG_05& arg_05,
123154: Variant_Base(
123155 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123156 arg_01,
123157 arg_02,
123158 arg_03,
123159 arg_04,
123160 arg_05)
123161{
123162}
123163#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
123164
123165#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
123166template <class t_HEAD, class t_TAIL_01,
123167 class t_TAIL_02,
123168 class t_TAIL_03,
123169 class t_TAIL_04,
123170 class t_TAIL_05,
123171 class t_TAIL_06,
123172 class t_TAIL_07>
123173template <class t_TYPE,
123174 class t_ARG_01,
123175 class t_ARG_02,
123176 class t_ARG_03,
123177 class t_ARG_04,
123178 class t_ARG_05>
123179inline
123180variant<t_HEAD, t_TAIL_01,
123181 t_TAIL_02,
123182 t_TAIL_03,
123183 t_TAIL_04,
123184 t_TAIL_05,
123185 t_TAIL_06,
123186 t_TAIL_07,
123187 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
123189 const t_ARG_01& arg_01,
123190 const t_ARG_02& arg_02,
123191 const t_ARG_03& arg_03,
123192 const t_ARG_04& arg_04,
123193 const t_ARG_05& arg_05,
123195: Variant_Base(
123196 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123197 arg_01,
123198 arg_02,
123199 arg_03,
123200 arg_04,
123201 arg_05)
123202{
123203}
123204#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
123205
123206#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
123207template <class t_HEAD, class t_TAIL_01,
123208 class t_TAIL_02,
123209 class t_TAIL_03,
123210 class t_TAIL_04,
123211 class t_TAIL_05,
123212 class t_TAIL_06,
123213 class t_TAIL_07,
123214 class t_TAIL_08>
123215template <class t_TYPE,
123216 class t_ARG_01,
123217 class t_ARG_02,
123218 class t_ARG_03,
123219 class t_ARG_04,
123220 class t_ARG_05>
123221inline
123222variant<t_HEAD, t_TAIL_01,
123223 t_TAIL_02,
123224 t_TAIL_03,
123225 t_TAIL_04,
123226 t_TAIL_05,
123227 t_TAIL_06,
123228 t_TAIL_07,
123229 t_TAIL_08,
123230 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
123232 const t_ARG_01& arg_01,
123233 const t_ARG_02& arg_02,
123234 const t_ARG_03& arg_03,
123235 const t_ARG_04& arg_04,
123236 const t_ARG_05& arg_05,
123238: Variant_Base(
123239 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123240 arg_01,
123241 arg_02,
123242 arg_03,
123243 arg_04,
123244 arg_05)
123245{
123246}
123247#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
123248
123249#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
123250template <class t_HEAD, class t_TAIL_01,
123251 class t_TAIL_02,
123252 class t_TAIL_03,
123253 class t_TAIL_04,
123254 class t_TAIL_05,
123255 class t_TAIL_06,
123256 class t_TAIL_07,
123257 class t_TAIL_08,
123258 class t_TAIL_09>
123259template <class t_TYPE,
123260 class t_ARG_01,
123261 class t_ARG_02,
123262 class t_ARG_03,
123263 class t_ARG_04,
123264 class t_ARG_05>
123265inline
123266variant<t_HEAD, t_TAIL_01,
123267 t_TAIL_02,
123268 t_TAIL_03,
123269 t_TAIL_04,
123270 t_TAIL_05,
123271 t_TAIL_06,
123272 t_TAIL_07,
123273 t_TAIL_08,
123274 t_TAIL_09,
123275 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
123277 const t_ARG_01& arg_01,
123278 const t_ARG_02& arg_02,
123279 const t_ARG_03& arg_03,
123280 const t_ARG_04& arg_04,
123281 const t_ARG_05& arg_05,
123283: Variant_Base(
123284 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123285 arg_01,
123286 arg_02,
123287 arg_03,
123288 arg_04,
123289 arg_05)
123290{
123291}
123292#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
123293
123294#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
123295template <class t_HEAD, class t_TAIL_01,
123296 class t_TAIL_02,
123297 class t_TAIL_03,
123298 class t_TAIL_04,
123299 class t_TAIL_05,
123300 class t_TAIL_06,
123301 class t_TAIL_07,
123302 class t_TAIL_08,
123303 class t_TAIL_09,
123304 class t_TAIL_10>
123305template <class t_TYPE,
123306 class t_ARG_01,
123307 class t_ARG_02,
123308 class t_ARG_03,
123309 class t_ARG_04,
123310 class t_ARG_05>
123311inline
123312variant<t_HEAD, t_TAIL_01,
123313 t_TAIL_02,
123314 t_TAIL_03,
123315 t_TAIL_04,
123316 t_TAIL_05,
123317 t_TAIL_06,
123318 t_TAIL_07,
123319 t_TAIL_08,
123320 t_TAIL_09,
123321 t_TAIL_10,
123322 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
123324 const t_ARG_01& arg_01,
123325 const t_ARG_02& arg_02,
123326 const t_ARG_03& arg_03,
123327 const t_ARG_04& arg_04,
123328 const t_ARG_05& arg_05,
123330: Variant_Base(
123331 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123332 arg_01,
123333 arg_02,
123334 arg_03,
123335 arg_04,
123336 arg_05)
123337{
123338}
123339#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
123340
123341#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
123342template <class t_HEAD, class t_TAIL_01,
123343 class t_TAIL_02,
123344 class t_TAIL_03,
123345 class t_TAIL_04,
123346 class t_TAIL_05,
123347 class t_TAIL_06,
123348 class t_TAIL_07,
123349 class t_TAIL_08,
123350 class t_TAIL_09,
123351 class t_TAIL_10,
123352 class t_TAIL_11>
123353template <class t_TYPE,
123354 class t_ARG_01,
123355 class t_ARG_02,
123356 class t_ARG_03,
123357 class t_ARG_04,
123358 class t_ARG_05>
123359inline
123360variant<t_HEAD, t_TAIL_01,
123361 t_TAIL_02,
123362 t_TAIL_03,
123363 t_TAIL_04,
123364 t_TAIL_05,
123365 t_TAIL_06,
123366 t_TAIL_07,
123367 t_TAIL_08,
123368 t_TAIL_09,
123369 t_TAIL_10,
123370 t_TAIL_11,
123371 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
123373 const t_ARG_01& arg_01,
123374 const t_ARG_02& arg_02,
123375 const t_ARG_03& arg_03,
123376 const t_ARG_04& arg_04,
123377 const t_ARG_05& arg_05,
123379: Variant_Base(
123380 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123381 arg_01,
123382 arg_02,
123383 arg_03,
123384 arg_04,
123385 arg_05)
123386{
123387}
123388#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
123389
123390#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
123391template <class t_HEAD, class t_TAIL_01,
123392 class t_TAIL_02,
123393 class t_TAIL_03,
123394 class t_TAIL_04,
123395 class t_TAIL_05,
123396 class t_TAIL_06,
123397 class t_TAIL_07,
123398 class t_TAIL_08,
123399 class t_TAIL_09,
123400 class t_TAIL_10,
123401 class t_TAIL_11,
123402 class t_TAIL_12>
123403template <class t_TYPE,
123404 class t_ARG_01,
123405 class t_ARG_02,
123406 class t_ARG_03,
123407 class t_ARG_04,
123408 class t_ARG_05>
123409inline
123410variant<t_HEAD, t_TAIL_01,
123411 t_TAIL_02,
123412 t_TAIL_03,
123413 t_TAIL_04,
123414 t_TAIL_05,
123415 t_TAIL_06,
123416 t_TAIL_07,
123417 t_TAIL_08,
123418 t_TAIL_09,
123419 t_TAIL_10,
123420 t_TAIL_11,
123421 t_TAIL_12,
123422 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
123424 const t_ARG_01& arg_01,
123425 const t_ARG_02& arg_02,
123426 const t_ARG_03& arg_03,
123427 const t_ARG_04& arg_04,
123428 const t_ARG_05& arg_05,
123430: Variant_Base(
123431 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123432 arg_01,
123433 arg_02,
123434 arg_03,
123435 arg_04,
123436 arg_05)
123437{
123438}
123439#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
123440
123441#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
123442template <class t_HEAD, class t_TAIL_01,
123443 class t_TAIL_02,
123444 class t_TAIL_03,
123445 class t_TAIL_04,
123446 class t_TAIL_05,
123447 class t_TAIL_06,
123448 class t_TAIL_07,
123449 class t_TAIL_08,
123450 class t_TAIL_09,
123451 class t_TAIL_10,
123452 class t_TAIL_11,
123453 class t_TAIL_12,
123454 class t_TAIL_13>
123455template <class t_TYPE,
123456 class t_ARG_01,
123457 class t_ARG_02,
123458 class t_ARG_03,
123459 class t_ARG_04,
123460 class t_ARG_05>
123461inline
123462variant<t_HEAD, t_TAIL_01,
123463 t_TAIL_02,
123464 t_TAIL_03,
123465 t_TAIL_04,
123466 t_TAIL_05,
123467 t_TAIL_06,
123468 t_TAIL_07,
123469 t_TAIL_08,
123470 t_TAIL_09,
123471 t_TAIL_10,
123472 t_TAIL_11,
123473 t_TAIL_12,
123474 t_TAIL_13,
123475 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
123477 const t_ARG_01& arg_01,
123478 const t_ARG_02& arg_02,
123479 const t_ARG_03& arg_03,
123480 const t_ARG_04& arg_04,
123481 const t_ARG_05& arg_05,
123483: Variant_Base(
123484 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123485 arg_01,
123486 arg_02,
123487 arg_03,
123488 arg_04,
123489 arg_05)
123490{
123491}
123492#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
123493
123494#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
123495template <class t_HEAD, class t_TAIL_01,
123496 class t_TAIL_02,
123497 class t_TAIL_03,
123498 class t_TAIL_04,
123499 class t_TAIL_05,
123500 class t_TAIL_06,
123501 class t_TAIL_07,
123502 class t_TAIL_08,
123503 class t_TAIL_09,
123504 class t_TAIL_10,
123505 class t_TAIL_11,
123506 class t_TAIL_12,
123507 class t_TAIL_13,
123508 class t_TAIL_14>
123509template <class t_TYPE,
123510 class t_ARG_01,
123511 class t_ARG_02,
123512 class t_ARG_03,
123513 class t_ARG_04,
123514 class t_ARG_05>
123515inline
123516variant<t_HEAD, t_TAIL_01,
123517 t_TAIL_02,
123518 t_TAIL_03,
123519 t_TAIL_04,
123520 t_TAIL_05,
123521 t_TAIL_06,
123522 t_TAIL_07,
123523 t_TAIL_08,
123524 t_TAIL_09,
123525 t_TAIL_10,
123526 t_TAIL_11,
123527 t_TAIL_12,
123528 t_TAIL_13,
123529 t_TAIL_14,
123530 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
123532 const t_ARG_01& arg_01,
123533 const t_ARG_02& arg_02,
123534 const t_ARG_03& arg_03,
123535 const t_ARG_04& arg_04,
123536 const t_ARG_05& arg_05,
123538: Variant_Base(
123539 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123540 arg_01,
123541 arg_02,
123542 arg_03,
123543 arg_04,
123544 arg_05)
123545{
123546}
123547#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
123548
123549#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
123550template <class t_HEAD, class t_TAIL_01,
123551 class t_TAIL_02,
123552 class t_TAIL_03,
123553 class t_TAIL_04,
123554 class t_TAIL_05,
123555 class t_TAIL_06,
123556 class t_TAIL_07,
123557 class t_TAIL_08,
123558 class t_TAIL_09,
123559 class t_TAIL_10,
123560 class t_TAIL_11,
123561 class t_TAIL_12,
123562 class t_TAIL_13,
123563 class t_TAIL_14,
123564 class t_TAIL_15>
123565template <class t_TYPE,
123566 class t_ARG_01,
123567 class t_ARG_02,
123568 class t_ARG_03,
123569 class t_ARG_04,
123570 class t_ARG_05>
123571inline
123572variant<t_HEAD, t_TAIL_01,
123573 t_TAIL_02,
123574 t_TAIL_03,
123575 t_TAIL_04,
123576 t_TAIL_05,
123577 t_TAIL_06,
123578 t_TAIL_07,
123579 t_TAIL_08,
123580 t_TAIL_09,
123581 t_TAIL_10,
123582 t_TAIL_11,
123583 t_TAIL_12,
123584 t_TAIL_13,
123585 t_TAIL_14,
123586 t_TAIL_15,
123587 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
123589 const t_ARG_01& arg_01,
123590 const t_ARG_02& arg_02,
123591 const t_ARG_03& arg_03,
123592 const t_ARG_04& arg_04,
123593 const t_ARG_05& arg_05,
123595: Variant_Base(
123596 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123597 arg_01,
123598 arg_02,
123599 arg_03,
123600 arg_04,
123601 arg_05)
123602{
123603}
123604#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
123605
123606#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
123607template <class t_HEAD, class t_TAIL_01,
123608 class t_TAIL_02,
123609 class t_TAIL_03,
123610 class t_TAIL_04,
123611 class t_TAIL_05,
123612 class t_TAIL_06,
123613 class t_TAIL_07,
123614 class t_TAIL_08,
123615 class t_TAIL_09,
123616 class t_TAIL_10,
123617 class t_TAIL_11,
123618 class t_TAIL_12,
123619 class t_TAIL_13,
123620 class t_TAIL_14,
123621 class t_TAIL_15,
123622 class t_TAIL_16>
123623template <class t_TYPE,
123624 class t_ARG_01,
123625 class t_ARG_02,
123626 class t_ARG_03,
123627 class t_ARG_04,
123628 class t_ARG_05>
123629inline
123630variant<t_HEAD, t_TAIL_01,
123631 t_TAIL_02,
123632 t_TAIL_03,
123633 t_TAIL_04,
123634 t_TAIL_05,
123635 t_TAIL_06,
123636 t_TAIL_07,
123637 t_TAIL_08,
123638 t_TAIL_09,
123639 t_TAIL_10,
123640 t_TAIL_11,
123641 t_TAIL_12,
123642 t_TAIL_13,
123643 t_TAIL_14,
123644 t_TAIL_15,
123645 t_TAIL_16,
123646 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
123648 const t_ARG_01& arg_01,
123649 const t_ARG_02& arg_02,
123650 const t_ARG_03& arg_03,
123651 const t_ARG_04& arg_04,
123652 const t_ARG_05& arg_05,
123654: Variant_Base(
123655 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123656 arg_01,
123657 arg_02,
123658 arg_03,
123659 arg_04,
123660 arg_05)
123661{
123662}
123663#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
123664
123665#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
123666template <class t_HEAD, class t_TAIL_01,
123667 class t_TAIL_02,
123668 class t_TAIL_03,
123669 class t_TAIL_04,
123670 class t_TAIL_05,
123671 class t_TAIL_06,
123672 class t_TAIL_07,
123673 class t_TAIL_08,
123674 class t_TAIL_09,
123675 class t_TAIL_10,
123676 class t_TAIL_11,
123677 class t_TAIL_12,
123678 class t_TAIL_13,
123679 class t_TAIL_14,
123680 class t_TAIL_15,
123681 class t_TAIL_16,
123682 class t_TAIL_17>
123683template <class t_TYPE,
123684 class t_ARG_01,
123685 class t_ARG_02,
123686 class t_ARG_03,
123687 class t_ARG_04,
123688 class t_ARG_05>
123689inline
123690variant<t_HEAD, t_TAIL_01,
123691 t_TAIL_02,
123692 t_TAIL_03,
123693 t_TAIL_04,
123694 t_TAIL_05,
123695 t_TAIL_06,
123696 t_TAIL_07,
123697 t_TAIL_08,
123698 t_TAIL_09,
123699 t_TAIL_10,
123700 t_TAIL_11,
123701 t_TAIL_12,
123702 t_TAIL_13,
123703 t_TAIL_14,
123704 t_TAIL_15,
123705 t_TAIL_16,
123706 t_TAIL_17,
123707 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
123709 const t_ARG_01& arg_01,
123710 const t_ARG_02& arg_02,
123711 const t_ARG_03& arg_03,
123712 const t_ARG_04& arg_04,
123713 const t_ARG_05& arg_05,
123715: Variant_Base(
123716 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123717 arg_01,
123718 arg_02,
123719 arg_03,
123720 arg_04,
123721 arg_05)
123722{
123723}
123724#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
123725
123726#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
123727template <class t_HEAD, class t_TAIL_01,
123728 class t_TAIL_02,
123729 class t_TAIL_03,
123730 class t_TAIL_04,
123731 class t_TAIL_05,
123732 class t_TAIL_06,
123733 class t_TAIL_07,
123734 class t_TAIL_08,
123735 class t_TAIL_09,
123736 class t_TAIL_10,
123737 class t_TAIL_11,
123738 class t_TAIL_12,
123739 class t_TAIL_13,
123740 class t_TAIL_14,
123741 class t_TAIL_15,
123742 class t_TAIL_16,
123743 class t_TAIL_17,
123744 class t_TAIL_18>
123745template <class t_TYPE,
123746 class t_ARG_01,
123747 class t_ARG_02,
123748 class t_ARG_03,
123749 class t_ARG_04,
123750 class t_ARG_05>
123751inline
123752variant<t_HEAD, t_TAIL_01,
123753 t_TAIL_02,
123754 t_TAIL_03,
123755 t_TAIL_04,
123756 t_TAIL_05,
123757 t_TAIL_06,
123758 t_TAIL_07,
123759 t_TAIL_08,
123760 t_TAIL_09,
123761 t_TAIL_10,
123762 t_TAIL_11,
123763 t_TAIL_12,
123764 t_TAIL_13,
123765 t_TAIL_14,
123766 t_TAIL_15,
123767 t_TAIL_16,
123768 t_TAIL_17,
123769 t_TAIL_18,
123770 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
123772 const t_ARG_01& arg_01,
123773 const t_ARG_02& arg_02,
123774 const t_ARG_03& arg_03,
123775 const t_ARG_04& arg_04,
123776 const t_ARG_05& arg_05,
123778: Variant_Base(
123779 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123780 arg_01,
123781 arg_02,
123782 arg_03,
123783 arg_04,
123784 arg_05)
123785{
123786}
123787#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
123788
123789
123790#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
123791template <class t_HEAD>
123792template <class t_TYPE,
123793 class t_ARG_01,
123794 class t_ARG_02,
123795 class t_ARG_03,
123796 class t_ARG_04,
123797 class t_ARG_05,
123798 class t_ARG_06>
123799inline
123800variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
123802 const t_ARG_01& arg_01,
123803 const t_ARG_02& arg_02,
123804 const t_ARG_03& arg_03,
123805 const t_ARG_04& arg_04,
123806 const t_ARG_05& arg_05,
123807 const t_ARG_06& arg_06,
123809: Variant_Base(
123810 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123811 arg_01,
123812 arg_02,
123813 arg_03,
123814 arg_04,
123815 arg_05,
123816 arg_06)
123817{
123818}
123819#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
123820
123821#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
123822template <class t_HEAD, class t_TAIL_01>
123823template <class t_TYPE,
123824 class t_ARG_01,
123825 class t_ARG_02,
123826 class t_ARG_03,
123827 class t_ARG_04,
123828 class t_ARG_05,
123829 class t_ARG_06>
123830inline
123831variant<t_HEAD, t_TAIL_01,
123832 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
123834 const t_ARG_01& arg_01,
123835 const t_ARG_02& arg_02,
123836 const t_ARG_03& arg_03,
123837 const t_ARG_04& arg_04,
123838 const t_ARG_05& arg_05,
123839 const t_ARG_06& arg_06,
123841: Variant_Base(
123842 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123843 arg_01,
123844 arg_02,
123845 arg_03,
123846 arg_04,
123847 arg_05,
123848 arg_06)
123849{
123850}
123851#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
123852
123853#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
123854template <class t_HEAD, class t_TAIL_01,
123855 class t_TAIL_02>
123856template <class t_TYPE,
123857 class t_ARG_01,
123858 class t_ARG_02,
123859 class t_ARG_03,
123860 class t_ARG_04,
123861 class t_ARG_05,
123862 class t_ARG_06>
123863inline
123864variant<t_HEAD, t_TAIL_01,
123865 t_TAIL_02,
123866 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
123868 const t_ARG_01& arg_01,
123869 const t_ARG_02& arg_02,
123870 const t_ARG_03& arg_03,
123871 const t_ARG_04& arg_04,
123872 const t_ARG_05& arg_05,
123873 const t_ARG_06& arg_06,
123875: Variant_Base(
123876 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123877 arg_01,
123878 arg_02,
123879 arg_03,
123880 arg_04,
123881 arg_05,
123882 arg_06)
123883{
123884}
123885#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
123886
123887#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
123888template <class t_HEAD, class t_TAIL_01,
123889 class t_TAIL_02,
123890 class t_TAIL_03>
123891template <class t_TYPE,
123892 class t_ARG_01,
123893 class t_ARG_02,
123894 class t_ARG_03,
123895 class t_ARG_04,
123896 class t_ARG_05,
123897 class t_ARG_06>
123898inline
123899variant<t_HEAD, t_TAIL_01,
123900 t_TAIL_02,
123901 t_TAIL_03,
123902 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
123904 const t_ARG_01& arg_01,
123905 const t_ARG_02& arg_02,
123906 const t_ARG_03& arg_03,
123907 const t_ARG_04& arg_04,
123908 const t_ARG_05& arg_05,
123909 const t_ARG_06& arg_06,
123911: Variant_Base(
123912 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123913 arg_01,
123914 arg_02,
123915 arg_03,
123916 arg_04,
123917 arg_05,
123918 arg_06)
123919{
123920}
123921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
123922
123923#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
123924template <class t_HEAD, class t_TAIL_01,
123925 class t_TAIL_02,
123926 class t_TAIL_03,
123927 class t_TAIL_04>
123928template <class t_TYPE,
123929 class t_ARG_01,
123930 class t_ARG_02,
123931 class t_ARG_03,
123932 class t_ARG_04,
123933 class t_ARG_05,
123934 class t_ARG_06>
123935inline
123936variant<t_HEAD, t_TAIL_01,
123937 t_TAIL_02,
123938 t_TAIL_03,
123939 t_TAIL_04,
123940 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
123942 const t_ARG_01& arg_01,
123943 const t_ARG_02& arg_02,
123944 const t_ARG_03& arg_03,
123945 const t_ARG_04& arg_04,
123946 const t_ARG_05& arg_05,
123947 const t_ARG_06& arg_06,
123949: Variant_Base(
123950 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123951 arg_01,
123952 arg_02,
123953 arg_03,
123954 arg_04,
123955 arg_05,
123956 arg_06)
123957{
123958}
123959#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
123960
123961#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
123962template <class t_HEAD, class t_TAIL_01,
123963 class t_TAIL_02,
123964 class t_TAIL_03,
123965 class t_TAIL_04,
123966 class t_TAIL_05>
123967template <class t_TYPE,
123968 class t_ARG_01,
123969 class t_ARG_02,
123970 class t_ARG_03,
123971 class t_ARG_04,
123972 class t_ARG_05,
123973 class t_ARG_06>
123974inline
123975variant<t_HEAD, t_TAIL_01,
123976 t_TAIL_02,
123977 t_TAIL_03,
123978 t_TAIL_04,
123979 t_TAIL_05,
123980 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
123982 const t_ARG_01& arg_01,
123983 const t_ARG_02& arg_02,
123984 const t_ARG_03& arg_03,
123985 const t_ARG_04& arg_04,
123986 const t_ARG_05& arg_05,
123987 const t_ARG_06& arg_06,
123989: Variant_Base(
123990 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
123991 arg_01,
123992 arg_02,
123993 arg_03,
123994 arg_04,
123995 arg_05,
123996 arg_06)
123997{
123998}
123999#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
124000
124001#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
124002template <class t_HEAD, class t_TAIL_01,
124003 class t_TAIL_02,
124004 class t_TAIL_03,
124005 class t_TAIL_04,
124006 class t_TAIL_05,
124007 class t_TAIL_06>
124008template <class t_TYPE,
124009 class t_ARG_01,
124010 class t_ARG_02,
124011 class t_ARG_03,
124012 class t_ARG_04,
124013 class t_ARG_05,
124014 class t_ARG_06>
124015inline
124016variant<t_HEAD, t_TAIL_01,
124017 t_TAIL_02,
124018 t_TAIL_03,
124019 t_TAIL_04,
124020 t_TAIL_05,
124021 t_TAIL_06,
124022 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
124024 const t_ARG_01& arg_01,
124025 const t_ARG_02& arg_02,
124026 const t_ARG_03& arg_03,
124027 const t_ARG_04& arg_04,
124028 const t_ARG_05& arg_05,
124029 const t_ARG_06& arg_06,
124031: Variant_Base(
124032 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124033 arg_01,
124034 arg_02,
124035 arg_03,
124036 arg_04,
124037 arg_05,
124038 arg_06)
124039{
124040}
124041#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
124042
124043#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
124044template <class t_HEAD, class t_TAIL_01,
124045 class t_TAIL_02,
124046 class t_TAIL_03,
124047 class t_TAIL_04,
124048 class t_TAIL_05,
124049 class t_TAIL_06,
124050 class t_TAIL_07>
124051template <class t_TYPE,
124052 class t_ARG_01,
124053 class t_ARG_02,
124054 class t_ARG_03,
124055 class t_ARG_04,
124056 class t_ARG_05,
124057 class t_ARG_06>
124058inline
124059variant<t_HEAD, t_TAIL_01,
124060 t_TAIL_02,
124061 t_TAIL_03,
124062 t_TAIL_04,
124063 t_TAIL_05,
124064 t_TAIL_06,
124065 t_TAIL_07,
124066 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
124068 const t_ARG_01& arg_01,
124069 const t_ARG_02& arg_02,
124070 const t_ARG_03& arg_03,
124071 const t_ARG_04& arg_04,
124072 const t_ARG_05& arg_05,
124073 const t_ARG_06& arg_06,
124075: Variant_Base(
124076 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124077 arg_01,
124078 arg_02,
124079 arg_03,
124080 arg_04,
124081 arg_05,
124082 arg_06)
124083{
124084}
124085#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
124086
124087#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
124088template <class t_HEAD, class t_TAIL_01,
124089 class t_TAIL_02,
124090 class t_TAIL_03,
124091 class t_TAIL_04,
124092 class t_TAIL_05,
124093 class t_TAIL_06,
124094 class t_TAIL_07,
124095 class t_TAIL_08>
124096template <class t_TYPE,
124097 class t_ARG_01,
124098 class t_ARG_02,
124099 class t_ARG_03,
124100 class t_ARG_04,
124101 class t_ARG_05,
124102 class t_ARG_06>
124103inline
124104variant<t_HEAD, t_TAIL_01,
124105 t_TAIL_02,
124106 t_TAIL_03,
124107 t_TAIL_04,
124108 t_TAIL_05,
124109 t_TAIL_06,
124110 t_TAIL_07,
124111 t_TAIL_08,
124112 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
124114 const t_ARG_01& arg_01,
124115 const t_ARG_02& arg_02,
124116 const t_ARG_03& arg_03,
124117 const t_ARG_04& arg_04,
124118 const t_ARG_05& arg_05,
124119 const t_ARG_06& arg_06,
124121: Variant_Base(
124122 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124123 arg_01,
124124 arg_02,
124125 arg_03,
124126 arg_04,
124127 arg_05,
124128 arg_06)
124129{
124130}
124131#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
124132
124133#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
124134template <class t_HEAD, class t_TAIL_01,
124135 class t_TAIL_02,
124136 class t_TAIL_03,
124137 class t_TAIL_04,
124138 class t_TAIL_05,
124139 class t_TAIL_06,
124140 class t_TAIL_07,
124141 class t_TAIL_08,
124142 class t_TAIL_09>
124143template <class t_TYPE,
124144 class t_ARG_01,
124145 class t_ARG_02,
124146 class t_ARG_03,
124147 class t_ARG_04,
124148 class t_ARG_05,
124149 class t_ARG_06>
124150inline
124151variant<t_HEAD, t_TAIL_01,
124152 t_TAIL_02,
124153 t_TAIL_03,
124154 t_TAIL_04,
124155 t_TAIL_05,
124156 t_TAIL_06,
124157 t_TAIL_07,
124158 t_TAIL_08,
124159 t_TAIL_09,
124160 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
124162 const t_ARG_01& arg_01,
124163 const t_ARG_02& arg_02,
124164 const t_ARG_03& arg_03,
124165 const t_ARG_04& arg_04,
124166 const t_ARG_05& arg_05,
124167 const t_ARG_06& arg_06,
124169: Variant_Base(
124170 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124171 arg_01,
124172 arg_02,
124173 arg_03,
124174 arg_04,
124175 arg_05,
124176 arg_06)
124177{
124178}
124179#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
124180
124181#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
124182template <class t_HEAD, class t_TAIL_01,
124183 class t_TAIL_02,
124184 class t_TAIL_03,
124185 class t_TAIL_04,
124186 class t_TAIL_05,
124187 class t_TAIL_06,
124188 class t_TAIL_07,
124189 class t_TAIL_08,
124190 class t_TAIL_09,
124191 class t_TAIL_10>
124192template <class t_TYPE,
124193 class t_ARG_01,
124194 class t_ARG_02,
124195 class t_ARG_03,
124196 class t_ARG_04,
124197 class t_ARG_05,
124198 class t_ARG_06>
124199inline
124200variant<t_HEAD, t_TAIL_01,
124201 t_TAIL_02,
124202 t_TAIL_03,
124203 t_TAIL_04,
124204 t_TAIL_05,
124205 t_TAIL_06,
124206 t_TAIL_07,
124207 t_TAIL_08,
124208 t_TAIL_09,
124209 t_TAIL_10,
124210 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
124212 const t_ARG_01& arg_01,
124213 const t_ARG_02& arg_02,
124214 const t_ARG_03& arg_03,
124215 const t_ARG_04& arg_04,
124216 const t_ARG_05& arg_05,
124217 const t_ARG_06& arg_06,
124219: Variant_Base(
124220 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124221 arg_01,
124222 arg_02,
124223 arg_03,
124224 arg_04,
124225 arg_05,
124226 arg_06)
124227{
124228}
124229#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
124230
124231#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
124232template <class t_HEAD, class t_TAIL_01,
124233 class t_TAIL_02,
124234 class t_TAIL_03,
124235 class t_TAIL_04,
124236 class t_TAIL_05,
124237 class t_TAIL_06,
124238 class t_TAIL_07,
124239 class t_TAIL_08,
124240 class t_TAIL_09,
124241 class t_TAIL_10,
124242 class t_TAIL_11>
124243template <class t_TYPE,
124244 class t_ARG_01,
124245 class t_ARG_02,
124246 class t_ARG_03,
124247 class t_ARG_04,
124248 class t_ARG_05,
124249 class t_ARG_06>
124250inline
124251variant<t_HEAD, t_TAIL_01,
124252 t_TAIL_02,
124253 t_TAIL_03,
124254 t_TAIL_04,
124255 t_TAIL_05,
124256 t_TAIL_06,
124257 t_TAIL_07,
124258 t_TAIL_08,
124259 t_TAIL_09,
124260 t_TAIL_10,
124261 t_TAIL_11,
124262 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
124264 const t_ARG_01& arg_01,
124265 const t_ARG_02& arg_02,
124266 const t_ARG_03& arg_03,
124267 const t_ARG_04& arg_04,
124268 const t_ARG_05& arg_05,
124269 const t_ARG_06& arg_06,
124271: Variant_Base(
124272 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124273 arg_01,
124274 arg_02,
124275 arg_03,
124276 arg_04,
124277 arg_05,
124278 arg_06)
124279{
124280}
124281#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
124282
124283#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
124284template <class t_HEAD, class t_TAIL_01,
124285 class t_TAIL_02,
124286 class t_TAIL_03,
124287 class t_TAIL_04,
124288 class t_TAIL_05,
124289 class t_TAIL_06,
124290 class t_TAIL_07,
124291 class t_TAIL_08,
124292 class t_TAIL_09,
124293 class t_TAIL_10,
124294 class t_TAIL_11,
124295 class t_TAIL_12>
124296template <class t_TYPE,
124297 class t_ARG_01,
124298 class t_ARG_02,
124299 class t_ARG_03,
124300 class t_ARG_04,
124301 class t_ARG_05,
124302 class t_ARG_06>
124303inline
124304variant<t_HEAD, t_TAIL_01,
124305 t_TAIL_02,
124306 t_TAIL_03,
124307 t_TAIL_04,
124308 t_TAIL_05,
124309 t_TAIL_06,
124310 t_TAIL_07,
124311 t_TAIL_08,
124312 t_TAIL_09,
124313 t_TAIL_10,
124314 t_TAIL_11,
124315 t_TAIL_12,
124316 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
124318 const t_ARG_01& arg_01,
124319 const t_ARG_02& arg_02,
124320 const t_ARG_03& arg_03,
124321 const t_ARG_04& arg_04,
124322 const t_ARG_05& arg_05,
124323 const t_ARG_06& arg_06,
124325: Variant_Base(
124326 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124327 arg_01,
124328 arg_02,
124329 arg_03,
124330 arg_04,
124331 arg_05,
124332 arg_06)
124333{
124334}
124335#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
124336
124337#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
124338template <class t_HEAD, class t_TAIL_01,
124339 class t_TAIL_02,
124340 class t_TAIL_03,
124341 class t_TAIL_04,
124342 class t_TAIL_05,
124343 class t_TAIL_06,
124344 class t_TAIL_07,
124345 class t_TAIL_08,
124346 class t_TAIL_09,
124347 class t_TAIL_10,
124348 class t_TAIL_11,
124349 class t_TAIL_12,
124350 class t_TAIL_13>
124351template <class t_TYPE,
124352 class t_ARG_01,
124353 class t_ARG_02,
124354 class t_ARG_03,
124355 class t_ARG_04,
124356 class t_ARG_05,
124357 class t_ARG_06>
124358inline
124359variant<t_HEAD, t_TAIL_01,
124360 t_TAIL_02,
124361 t_TAIL_03,
124362 t_TAIL_04,
124363 t_TAIL_05,
124364 t_TAIL_06,
124365 t_TAIL_07,
124366 t_TAIL_08,
124367 t_TAIL_09,
124368 t_TAIL_10,
124369 t_TAIL_11,
124370 t_TAIL_12,
124371 t_TAIL_13,
124372 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
124374 const t_ARG_01& arg_01,
124375 const t_ARG_02& arg_02,
124376 const t_ARG_03& arg_03,
124377 const t_ARG_04& arg_04,
124378 const t_ARG_05& arg_05,
124379 const t_ARG_06& arg_06,
124381: Variant_Base(
124382 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124383 arg_01,
124384 arg_02,
124385 arg_03,
124386 arg_04,
124387 arg_05,
124388 arg_06)
124389{
124390}
124391#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
124392
124393#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
124394template <class t_HEAD, class t_TAIL_01,
124395 class t_TAIL_02,
124396 class t_TAIL_03,
124397 class t_TAIL_04,
124398 class t_TAIL_05,
124399 class t_TAIL_06,
124400 class t_TAIL_07,
124401 class t_TAIL_08,
124402 class t_TAIL_09,
124403 class t_TAIL_10,
124404 class t_TAIL_11,
124405 class t_TAIL_12,
124406 class t_TAIL_13,
124407 class t_TAIL_14>
124408template <class t_TYPE,
124409 class t_ARG_01,
124410 class t_ARG_02,
124411 class t_ARG_03,
124412 class t_ARG_04,
124413 class t_ARG_05,
124414 class t_ARG_06>
124415inline
124416variant<t_HEAD, t_TAIL_01,
124417 t_TAIL_02,
124418 t_TAIL_03,
124419 t_TAIL_04,
124420 t_TAIL_05,
124421 t_TAIL_06,
124422 t_TAIL_07,
124423 t_TAIL_08,
124424 t_TAIL_09,
124425 t_TAIL_10,
124426 t_TAIL_11,
124427 t_TAIL_12,
124428 t_TAIL_13,
124429 t_TAIL_14,
124430 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
124432 const t_ARG_01& arg_01,
124433 const t_ARG_02& arg_02,
124434 const t_ARG_03& arg_03,
124435 const t_ARG_04& arg_04,
124436 const t_ARG_05& arg_05,
124437 const t_ARG_06& arg_06,
124439: Variant_Base(
124440 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124441 arg_01,
124442 arg_02,
124443 arg_03,
124444 arg_04,
124445 arg_05,
124446 arg_06)
124447{
124448}
124449#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
124450
124451#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
124452template <class t_HEAD, class t_TAIL_01,
124453 class t_TAIL_02,
124454 class t_TAIL_03,
124455 class t_TAIL_04,
124456 class t_TAIL_05,
124457 class t_TAIL_06,
124458 class t_TAIL_07,
124459 class t_TAIL_08,
124460 class t_TAIL_09,
124461 class t_TAIL_10,
124462 class t_TAIL_11,
124463 class t_TAIL_12,
124464 class t_TAIL_13,
124465 class t_TAIL_14,
124466 class t_TAIL_15>
124467template <class t_TYPE,
124468 class t_ARG_01,
124469 class t_ARG_02,
124470 class t_ARG_03,
124471 class t_ARG_04,
124472 class t_ARG_05,
124473 class t_ARG_06>
124474inline
124475variant<t_HEAD, t_TAIL_01,
124476 t_TAIL_02,
124477 t_TAIL_03,
124478 t_TAIL_04,
124479 t_TAIL_05,
124480 t_TAIL_06,
124481 t_TAIL_07,
124482 t_TAIL_08,
124483 t_TAIL_09,
124484 t_TAIL_10,
124485 t_TAIL_11,
124486 t_TAIL_12,
124487 t_TAIL_13,
124488 t_TAIL_14,
124489 t_TAIL_15,
124490 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
124492 const t_ARG_01& arg_01,
124493 const t_ARG_02& arg_02,
124494 const t_ARG_03& arg_03,
124495 const t_ARG_04& arg_04,
124496 const t_ARG_05& arg_05,
124497 const t_ARG_06& arg_06,
124499: Variant_Base(
124500 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124501 arg_01,
124502 arg_02,
124503 arg_03,
124504 arg_04,
124505 arg_05,
124506 arg_06)
124507{
124508}
124509#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
124510
124511#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
124512template <class t_HEAD, class t_TAIL_01,
124513 class t_TAIL_02,
124514 class t_TAIL_03,
124515 class t_TAIL_04,
124516 class t_TAIL_05,
124517 class t_TAIL_06,
124518 class t_TAIL_07,
124519 class t_TAIL_08,
124520 class t_TAIL_09,
124521 class t_TAIL_10,
124522 class t_TAIL_11,
124523 class t_TAIL_12,
124524 class t_TAIL_13,
124525 class t_TAIL_14,
124526 class t_TAIL_15,
124527 class t_TAIL_16>
124528template <class t_TYPE,
124529 class t_ARG_01,
124530 class t_ARG_02,
124531 class t_ARG_03,
124532 class t_ARG_04,
124533 class t_ARG_05,
124534 class t_ARG_06>
124535inline
124536variant<t_HEAD, t_TAIL_01,
124537 t_TAIL_02,
124538 t_TAIL_03,
124539 t_TAIL_04,
124540 t_TAIL_05,
124541 t_TAIL_06,
124542 t_TAIL_07,
124543 t_TAIL_08,
124544 t_TAIL_09,
124545 t_TAIL_10,
124546 t_TAIL_11,
124547 t_TAIL_12,
124548 t_TAIL_13,
124549 t_TAIL_14,
124550 t_TAIL_15,
124551 t_TAIL_16,
124552 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
124554 const t_ARG_01& arg_01,
124555 const t_ARG_02& arg_02,
124556 const t_ARG_03& arg_03,
124557 const t_ARG_04& arg_04,
124558 const t_ARG_05& arg_05,
124559 const t_ARG_06& arg_06,
124561: Variant_Base(
124562 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124563 arg_01,
124564 arg_02,
124565 arg_03,
124566 arg_04,
124567 arg_05,
124568 arg_06)
124569{
124570}
124571#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
124572
124573#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
124574template <class t_HEAD, class t_TAIL_01,
124575 class t_TAIL_02,
124576 class t_TAIL_03,
124577 class t_TAIL_04,
124578 class t_TAIL_05,
124579 class t_TAIL_06,
124580 class t_TAIL_07,
124581 class t_TAIL_08,
124582 class t_TAIL_09,
124583 class t_TAIL_10,
124584 class t_TAIL_11,
124585 class t_TAIL_12,
124586 class t_TAIL_13,
124587 class t_TAIL_14,
124588 class t_TAIL_15,
124589 class t_TAIL_16,
124590 class t_TAIL_17>
124591template <class t_TYPE,
124592 class t_ARG_01,
124593 class t_ARG_02,
124594 class t_ARG_03,
124595 class t_ARG_04,
124596 class t_ARG_05,
124597 class t_ARG_06>
124598inline
124599variant<t_HEAD, t_TAIL_01,
124600 t_TAIL_02,
124601 t_TAIL_03,
124602 t_TAIL_04,
124603 t_TAIL_05,
124604 t_TAIL_06,
124605 t_TAIL_07,
124606 t_TAIL_08,
124607 t_TAIL_09,
124608 t_TAIL_10,
124609 t_TAIL_11,
124610 t_TAIL_12,
124611 t_TAIL_13,
124612 t_TAIL_14,
124613 t_TAIL_15,
124614 t_TAIL_16,
124615 t_TAIL_17,
124616 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
124618 const t_ARG_01& arg_01,
124619 const t_ARG_02& arg_02,
124620 const t_ARG_03& arg_03,
124621 const t_ARG_04& arg_04,
124622 const t_ARG_05& arg_05,
124623 const t_ARG_06& arg_06,
124625: Variant_Base(
124626 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124627 arg_01,
124628 arg_02,
124629 arg_03,
124630 arg_04,
124631 arg_05,
124632 arg_06)
124633{
124634}
124635#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
124636
124637#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
124638template <class t_HEAD, class t_TAIL_01,
124639 class t_TAIL_02,
124640 class t_TAIL_03,
124641 class t_TAIL_04,
124642 class t_TAIL_05,
124643 class t_TAIL_06,
124644 class t_TAIL_07,
124645 class t_TAIL_08,
124646 class t_TAIL_09,
124647 class t_TAIL_10,
124648 class t_TAIL_11,
124649 class t_TAIL_12,
124650 class t_TAIL_13,
124651 class t_TAIL_14,
124652 class t_TAIL_15,
124653 class t_TAIL_16,
124654 class t_TAIL_17,
124655 class t_TAIL_18>
124656template <class t_TYPE,
124657 class t_ARG_01,
124658 class t_ARG_02,
124659 class t_ARG_03,
124660 class t_ARG_04,
124661 class t_ARG_05,
124662 class t_ARG_06>
124663inline
124664variant<t_HEAD, t_TAIL_01,
124665 t_TAIL_02,
124666 t_TAIL_03,
124667 t_TAIL_04,
124668 t_TAIL_05,
124669 t_TAIL_06,
124670 t_TAIL_07,
124671 t_TAIL_08,
124672 t_TAIL_09,
124673 t_TAIL_10,
124674 t_TAIL_11,
124675 t_TAIL_12,
124676 t_TAIL_13,
124677 t_TAIL_14,
124678 t_TAIL_15,
124679 t_TAIL_16,
124680 t_TAIL_17,
124681 t_TAIL_18,
124682 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
124684 const t_ARG_01& arg_01,
124685 const t_ARG_02& arg_02,
124686 const t_ARG_03& arg_03,
124687 const t_ARG_04& arg_04,
124688 const t_ARG_05& arg_05,
124689 const t_ARG_06& arg_06,
124691: Variant_Base(
124692 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124693 arg_01,
124694 arg_02,
124695 arg_03,
124696 arg_04,
124697 arg_05,
124698 arg_06)
124699{
124700}
124701#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
124702
124703
124704#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
124705template <class t_HEAD>
124706template <class t_TYPE,
124707 class t_ARG_01,
124708 class t_ARG_02,
124709 class t_ARG_03,
124710 class t_ARG_04,
124711 class t_ARG_05,
124712 class t_ARG_06,
124713 class t_ARG_07>
124714inline
124715variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
124717 const t_ARG_01& arg_01,
124718 const t_ARG_02& arg_02,
124719 const t_ARG_03& arg_03,
124720 const t_ARG_04& arg_04,
124721 const t_ARG_05& arg_05,
124722 const t_ARG_06& arg_06,
124723 const t_ARG_07& arg_07,
124725: Variant_Base(
124726 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124727 arg_01,
124728 arg_02,
124729 arg_03,
124730 arg_04,
124731 arg_05,
124732 arg_06,
124733 arg_07)
124734{
124735}
124736#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
124737
124738#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
124739template <class t_HEAD, class t_TAIL_01>
124740template <class t_TYPE,
124741 class t_ARG_01,
124742 class t_ARG_02,
124743 class t_ARG_03,
124744 class t_ARG_04,
124745 class t_ARG_05,
124746 class t_ARG_06,
124747 class t_ARG_07>
124748inline
124749variant<t_HEAD, t_TAIL_01,
124750 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
124752 const t_ARG_01& arg_01,
124753 const t_ARG_02& arg_02,
124754 const t_ARG_03& arg_03,
124755 const t_ARG_04& arg_04,
124756 const t_ARG_05& arg_05,
124757 const t_ARG_06& arg_06,
124758 const t_ARG_07& arg_07,
124760: Variant_Base(
124761 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124762 arg_01,
124763 arg_02,
124764 arg_03,
124765 arg_04,
124766 arg_05,
124767 arg_06,
124768 arg_07)
124769{
124770}
124771#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
124772
124773#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
124774template <class t_HEAD, class t_TAIL_01,
124775 class t_TAIL_02>
124776template <class t_TYPE,
124777 class t_ARG_01,
124778 class t_ARG_02,
124779 class t_ARG_03,
124780 class t_ARG_04,
124781 class t_ARG_05,
124782 class t_ARG_06,
124783 class t_ARG_07>
124784inline
124785variant<t_HEAD, t_TAIL_01,
124786 t_TAIL_02,
124787 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
124789 const t_ARG_01& arg_01,
124790 const t_ARG_02& arg_02,
124791 const t_ARG_03& arg_03,
124792 const t_ARG_04& arg_04,
124793 const t_ARG_05& arg_05,
124794 const t_ARG_06& arg_06,
124795 const t_ARG_07& arg_07,
124797: Variant_Base(
124798 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124799 arg_01,
124800 arg_02,
124801 arg_03,
124802 arg_04,
124803 arg_05,
124804 arg_06,
124805 arg_07)
124806{
124807}
124808#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
124809
124810#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
124811template <class t_HEAD, class t_TAIL_01,
124812 class t_TAIL_02,
124813 class t_TAIL_03>
124814template <class t_TYPE,
124815 class t_ARG_01,
124816 class t_ARG_02,
124817 class t_ARG_03,
124818 class t_ARG_04,
124819 class t_ARG_05,
124820 class t_ARG_06,
124821 class t_ARG_07>
124822inline
124823variant<t_HEAD, t_TAIL_01,
124824 t_TAIL_02,
124825 t_TAIL_03,
124826 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
124828 const t_ARG_01& arg_01,
124829 const t_ARG_02& arg_02,
124830 const t_ARG_03& arg_03,
124831 const t_ARG_04& arg_04,
124832 const t_ARG_05& arg_05,
124833 const t_ARG_06& arg_06,
124834 const t_ARG_07& arg_07,
124836: Variant_Base(
124837 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124838 arg_01,
124839 arg_02,
124840 arg_03,
124841 arg_04,
124842 arg_05,
124843 arg_06,
124844 arg_07)
124845{
124846}
124847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
124848
124849#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
124850template <class t_HEAD, class t_TAIL_01,
124851 class t_TAIL_02,
124852 class t_TAIL_03,
124853 class t_TAIL_04>
124854template <class t_TYPE,
124855 class t_ARG_01,
124856 class t_ARG_02,
124857 class t_ARG_03,
124858 class t_ARG_04,
124859 class t_ARG_05,
124860 class t_ARG_06,
124861 class t_ARG_07>
124862inline
124863variant<t_HEAD, t_TAIL_01,
124864 t_TAIL_02,
124865 t_TAIL_03,
124866 t_TAIL_04,
124867 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
124869 const t_ARG_01& arg_01,
124870 const t_ARG_02& arg_02,
124871 const t_ARG_03& arg_03,
124872 const t_ARG_04& arg_04,
124873 const t_ARG_05& arg_05,
124874 const t_ARG_06& arg_06,
124875 const t_ARG_07& arg_07,
124877: Variant_Base(
124878 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124879 arg_01,
124880 arg_02,
124881 arg_03,
124882 arg_04,
124883 arg_05,
124884 arg_06,
124885 arg_07)
124886{
124887}
124888#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
124889
124890#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
124891template <class t_HEAD, class t_TAIL_01,
124892 class t_TAIL_02,
124893 class t_TAIL_03,
124894 class t_TAIL_04,
124895 class t_TAIL_05>
124896template <class t_TYPE,
124897 class t_ARG_01,
124898 class t_ARG_02,
124899 class t_ARG_03,
124900 class t_ARG_04,
124901 class t_ARG_05,
124902 class t_ARG_06,
124903 class t_ARG_07>
124904inline
124905variant<t_HEAD, t_TAIL_01,
124906 t_TAIL_02,
124907 t_TAIL_03,
124908 t_TAIL_04,
124909 t_TAIL_05,
124910 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
124912 const t_ARG_01& arg_01,
124913 const t_ARG_02& arg_02,
124914 const t_ARG_03& arg_03,
124915 const t_ARG_04& arg_04,
124916 const t_ARG_05& arg_05,
124917 const t_ARG_06& arg_06,
124918 const t_ARG_07& arg_07,
124920: Variant_Base(
124921 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124922 arg_01,
124923 arg_02,
124924 arg_03,
124925 arg_04,
124926 arg_05,
124927 arg_06,
124928 arg_07)
124929{
124930}
124931#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
124932
124933#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
124934template <class t_HEAD, class t_TAIL_01,
124935 class t_TAIL_02,
124936 class t_TAIL_03,
124937 class t_TAIL_04,
124938 class t_TAIL_05,
124939 class t_TAIL_06>
124940template <class t_TYPE,
124941 class t_ARG_01,
124942 class t_ARG_02,
124943 class t_ARG_03,
124944 class t_ARG_04,
124945 class t_ARG_05,
124946 class t_ARG_06,
124947 class t_ARG_07>
124948inline
124949variant<t_HEAD, t_TAIL_01,
124950 t_TAIL_02,
124951 t_TAIL_03,
124952 t_TAIL_04,
124953 t_TAIL_05,
124954 t_TAIL_06,
124955 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
124957 const t_ARG_01& arg_01,
124958 const t_ARG_02& arg_02,
124959 const t_ARG_03& arg_03,
124960 const t_ARG_04& arg_04,
124961 const t_ARG_05& arg_05,
124962 const t_ARG_06& arg_06,
124963 const t_ARG_07& arg_07,
124965: Variant_Base(
124966 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
124967 arg_01,
124968 arg_02,
124969 arg_03,
124970 arg_04,
124971 arg_05,
124972 arg_06,
124973 arg_07)
124974{
124975}
124976#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
124977
124978#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
124979template <class t_HEAD, class t_TAIL_01,
124980 class t_TAIL_02,
124981 class t_TAIL_03,
124982 class t_TAIL_04,
124983 class t_TAIL_05,
124984 class t_TAIL_06,
124985 class t_TAIL_07>
124986template <class t_TYPE,
124987 class t_ARG_01,
124988 class t_ARG_02,
124989 class t_ARG_03,
124990 class t_ARG_04,
124991 class t_ARG_05,
124992 class t_ARG_06,
124993 class t_ARG_07>
124994inline
124995variant<t_HEAD, t_TAIL_01,
124996 t_TAIL_02,
124997 t_TAIL_03,
124998 t_TAIL_04,
124999 t_TAIL_05,
125000 t_TAIL_06,
125001 t_TAIL_07,
125002 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
125004 const t_ARG_01& arg_01,
125005 const t_ARG_02& arg_02,
125006 const t_ARG_03& arg_03,
125007 const t_ARG_04& arg_04,
125008 const t_ARG_05& arg_05,
125009 const t_ARG_06& arg_06,
125010 const t_ARG_07& arg_07,
125012: Variant_Base(
125013 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125014 arg_01,
125015 arg_02,
125016 arg_03,
125017 arg_04,
125018 arg_05,
125019 arg_06,
125020 arg_07)
125021{
125022}
125023#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
125024
125025#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
125026template <class t_HEAD, class t_TAIL_01,
125027 class t_TAIL_02,
125028 class t_TAIL_03,
125029 class t_TAIL_04,
125030 class t_TAIL_05,
125031 class t_TAIL_06,
125032 class t_TAIL_07,
125033 class t_TAIL_08>
125034template <class t_TYPE,
125035 class t_ARG_01,
125036 class t_ARG_02,
125037 class t_ARG_03,
125038 class t_ARG_04,
125039 class t_ARG_05,
125040 class t_ARG_06,
125041 class t_ARG_07>
125042inline
125043variant<t_HEAD, t_TAIL_01,
125044 t_TAIL_02,
125045 t_TAIL_03,
125046 t_TAIL_04,
125047 t_TAIL_05,
125048 t_TAIL_06,
125049 t_TAIL_07,
125050 t_TAIL_08,
125051 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
125053 const t_ARG_01& arg_01,
125054 const t_ARG_02& arg_02,
125055 const t_ARG_03& arg_03,
125056 const t_ARG_04& arg_04,
125057 const t_ARG_05& arg_05,
125058 const t_ARG_06& arg_06,
125059 const t_ARG_07& arg_07,
125061: Variant_Base(
125062 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125063 arg_01,
125064 arg_02,
125065 arg_03,
125066 arg_04,
125067 arg_05,
125068 arg_06,
125069 arg_07)
125070{
125071}
125072#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
125073
125074#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
125075template <class t_HEAD, class t_TAIL_01,
125076 class t_TAIL_02,
125077 class t_TAIL_03,
125078 class t_TAIL_04,
125079 class t_TAIL_05,
125080 class t_TAIL_06,
125081 class t_TAIL_07,
125082 class t_TAIL_08,
125083 class t_TAIL_09>
125084template <class t_TYPE,
125085 class t_ARG_01,
125086 class t_ARG_02,
125087 class t_ARG_03,
125088 class t_ARG_04,
125089 class t_ARG_05,
125090 class t_ARG_06,
125091 class t_ARG_07>
125092inline
125093variant<t_HEAD, t_TAIL_01,
125094 t_TAIL_02,
125095 t_TAIL_03,
125096 t_TAIL_04,
125097 t_TAIL_05,
125098 t_TAIL_06,
125099 t_TAIL_07,
125100 t_TAIL_08,
125101 t_TAIL_09,
125102 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
125104 const t_ARG_01& arg_01,
125105 const t_ARG_02& arg_02,
125106 const t_ARG_03& arg_03,
125107 const t_ARG_04& arg_04,
125108 const t_ARG_05& arg_05,
125109 const t_ARG_06& arg_06,
125110 const t_ARG_07& arg_07,
125112: Variant_Base(
125113 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125114 arg_01,
125115 arg_02,
125116 arg_03,
125117 arg_04,
125118 arg_05,
125119 arg_06,
125120 arg_07)
125121{
125122}
125123#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
125124
125125#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
125126template <class t_HEAD, class t_TAIL_01,
125127 class t_TAIL_02,
125128 class t_TAIL_03,
125129 class t_TAIL_04,
125130 class t_TAIL_05,
125131 class t_TAIL_06,
125132 class t_TAIL_07,
125133 class t_TAIL_08,
125134 class t_TAIL_09,
125135 class t_TAIL_10>
125136template <class t_TYPE,
125137 class t_ARG_01,
125138 class t_ARG_02,
125139 class t_ARG_03,
125140 class t_ARG_04,
125141 class t_ARG_05,
125142 class t_ARG_06,
125143 class t_ARG_07>
125144inline
125145variant<t_HEAD, t_TAIL_01,
125146 t_TAIL_02,
125147 t_TAIL_03,
125148 t_TAIL_04,
125149 t_TAIL_05,
125150 t_TAIL_06,
125151 t_TAIL_07,
125152 t_TAIL_08,
125153 t_TAIL_09,
125154 t_TAIL_10,
125155 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
125157 const t_ARG_01& arg_01,
125158 const t_ARG_02& arg_02,
125159 const t_ARG_03& arg_03,
125160 const t_ARG_04& arg_04,
125161 const t_ARG_05& arg_05,
125162 const t_ARG_06& arg_06,
125163 const t_ARG_07& arg_07,
125165: Variant_Base(
125166 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125167 arg_01,
125168 arg_02,
125169 arg_03,
125170 arg_04,
125171 arg_05,
125172 arg_06,
125173 arg_07)
125174{
125175}
125176#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
125177
125178#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
125179template <class t_HEAD, class t_TAIL_01,
125180 class t_TAIL_02,
125181 class t_TAIL_03,
125182 class t_TAIL_04,
125183 class t_TAIL_05,
125184 class t_TAIL_06,
125185 class t_TAIL_07,
125186 class t_TAIL_08,
125187 class t_TAIL_09,
125188 class t_TAIL_10,
125189 class t_TAIL_11>
125190template <class t_TYPE,
125191 class t_ARG_01,
125192 class t_ARG_02,
125193 class t_ARG_03,
125194 class t_ARG_04,
125195 class t_ARG_05,
125196 class t_ARG_06,
125197 class t_ARG_07>
125198inline
125199variant<t_HEAD, t_TAIL_01,
125200 t_TAIL_02,
125201 t_TAIL_03,
125202 t_TAIL_04,
125203 t_TAIL_05,
125204 t_TAIL_06,
125205 t_TAIL_07,
125206 t_TAIL_08,
125207 t_TAIL_09,
125208 t_TAIL_10,
125209 t_TAIL_11,
125210 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
125212 const t_ARG_01& arg_01,
125213 const t_ARG_02& arg_02,
125214 const t_ARG_03& arg_03,
125215 const t_ARG_04& arg_04,
125216 const t_ARG_05& arg_05,
125217 const t_ARG_06& arg_06,
125218 const t_ARG_07& arg_07,
125220: Variant_Base(
125221 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125222 arg_01,
125223 arg_02,
125224 arg_03,
125225 arg_04,
125226 arg_05,
125227 arg_06,
125228 arg_07)
125229{
125230}
125231#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
125232
125233#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
125234template <class t_HEAD, class t_TAIL_01,
125235 class t_TAIL_02,
125236 class t_TAIL_03,
125237 class t_TAIL_04,
125238 class t_TAIL_05,
125239 class t_TAIL_06,
125240 class t_TAIL_07,
125241 class t_TAIL_08,
125242 class t_TAIL_09,
125243 class t_TAIL_10,
125244 class t_TAIL_11,
125245 class t_TAIL_12>
125246template <class t_TYPE,
125247 class t_ARG_01,
125248 class t_ARG_02,
125249 class t_ARG_03,
125250 class t_ARG_04,
125251 class t_ARG_05,
125252 class t_ARG_06,
125253 class t_ARG_07>
125254inline
125255variant<t_HEAD, t_TAIL_01,
125256 t_TAIL_02,
125257 t_TAIL_03,
125258 t_TAIL_04,
125259 t_TAIL_05,
125260 t_TAIL_06,
125261 t_TAIL_07,
125262 t_TAIL_08,
125263 t_TAIL_09,
125264 t_TAIL_10,
125265 t_TAIL_11,
125266 t_TAIL_12,
125267 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
125269 const t_ARG_01& arg_01,
125270 const t_ARG_02& arg_02,
125271 const t_ARG_03& arg_03,
125272 const t_ARG_04& arg_04,
125273 const t_ARG_05& arg_05,
125274 const t_ARG_06& arg_06,
125275 const t_ARG_07& arg_07,
125277: Variant_Base(
125278 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125279 arg_01,
125280 arg_02,
125281 arg_03,
125282 arg_04,
125283 arg_05,
125284 arg_06,
125285 arg_07)
125286{
125287}
125288#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
125289
125290#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
125291template <class t_HEAD, class t_TAIL_01,
125292 class t_TAIL_02,
125293 class t_TAIL_03,
125294 class t_TAIL_04,
125295 class t_TAIL_05,
125296 class t_TAIL_06,
125297 class t_TAIL_07,
125298 class t_TAIL_08,
125299 class t_TAIL_09,
125300 class t_TAIL_10,
125301 class t_TAIL_11,
125302 class t_TAIL_12,
125303 class t_TAIL_13>
125304template <class t_TYPE,
125305 class t_ARG_01,
125306 class t_ARG_02,
125307 class t_ARG_03,
125308 class t_ARG_04,
125309 class t_ARG_05,
125310 class t_ARG_06,
125311 class t_ARG_07>
125312inline
125313variant<t_HEAD, t_TAIL_01,
125314 t_TAIL_02,
125315 t_TAIL_03,
125316 t_TAIL_04,
125317 t_TAIL_05,
125318 t_TAIL_06,
125319 t_TAIL_07,
125320 t_TAIL_08,
125321 t_TAIL_09,
125322 t_TAIL_10,
125323 t_TAIL_11,
125324 t_TAIL_12,
125325 t_TAIL_13,
125326 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
125328 const t_ARG_01& arg_01,
125329 const t_ARG_02& arg_02,
125330 const t_ARG_03& arg_03,
125331 const t_ARG_04& arg_04,
125332 const t_ARG_05& arg_05,
125333 const t_ARG_06& arg_06,
125334 const t_ARG_07& arg_07,
125336: Variant_Base(
125337 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125338 arg_01,
125339 arg_02,
125340 arg_03,
125341 arg_04,
125342 arg_05,
125343 arg_06,
125344 arg_07)
125345{
125346}
125347#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
125348
125349#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
125350template <class t_HEAD, class t_TAIL_01,
125351 class t_TAIL_02,
125352 class t_TAIL_03,
125353 class t_TAIL_04,
125354 class t_TAIL_05,
125355 class t_TAIL_06,
125356 class t_TAIL_07,
125357 class t_TAIL_08,
125358 class t_TAIL_09,
125359 class t_TAIL_10,
125360 class t_TAIL_11,
125361 class t_TAIL_12,
125362 class t_TAIL_13,
125363 class t_TAIL_14>
125364template <class t_TYPE,
125365 class t_ARG_01,
125366 class t_ARG_02,
125367 class t_ARG_03,
125368 class t_ARG_04,
125369 class t_ARG_05,
125370 class t_ARG_06,
125371 class t_ARG_07>
125372inline
125373variant<t_HEAD, t_TAIL_01,
125374 t_TAIL_02,
125375 t_TAIL_03,
125376 t_TAIL_04,
125377 t_TAIL_05,
125378 t_TAIL_06,
125379 t_TAIL_07,
125380 t_TAIL_08,
125381 t_TAIL_09,
125382 t_TAIL_10,
125383 t_TAIL_11,
125384 t_TAIL_12,
125385 t_TAIL_13,
125386 t_TAIL_14,
125387 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
125389 const t_ARG_01& arg_01,
125390 const t_ARG_02& arg_02,
125391 const t_ARG_03& arg_03,
125392 const t_ARG_04& arg_04,
125393 const t_ARG_05& arg_05,
125394 const t_ARG_06& arg_06,
125395 const t_ARG_07& arg_07,
125397: Variant_Base(
125398 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125399 arg_01,
125400 arg_02,
125401 arg_03,
125402 arg_04,
125403 arg_05,
125404 arg_06,
125405 arg_07)
125406{
125407}
125408#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
125409
125410#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
125411template <class t_HEAD, class t_TAIL_01,
125412 class t_TAIL_02,
125413 class t_TAIL_03,
125414 class t_TAIL_04,
125415 class t_TAIL_05,
125416 class t_TAIL_06,
125417 class t_TAIL_07,
125418 class t_TAIL_08,
125419 class t_TAIL_09,
125420 class t_TAIL_10,
125421 class t_TAIL_11,
125422 class t_TAIL_12,
125423 class t_TAIL_13,
125424 class t_TAIL_14,
125425 class t_TAIL_15>
125426template <class t_TYPE,
125427 class t_ARG_01,
125428 class t_ARG_02,
125429 class t_ARG_03,
125430 class t_ARG_04,
125431 class t_ARG_05,
125432 class t_ARG_06,
125433 class t_ARG_07>
125434inline
125435variant<t_HEAD, t_TAIL_01,
125436 t_TAIL_02,
125437 t_TAIL_03,
125438 t_TAIL_04,
125439 t_TAIL_05,
125440 t_TAIL_06,
125441 t_TAIL_07,
125442 t_TAIL_08,
125443 t_TAIL_09,
125444 t_TAIL_10,
125445 t_TAIL_11,
125446 t_TAIL_12,
125447 t_TAIL_13,
125448 t_TAIL_14,
125449 t_TAIL_15,
125450 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
125452 const t_ARG_01& arg_01,
125453 const t_ARG_02& arg_02,
125454 const t_ARG_03& arg_03,
125455 const t_ARG_04& arg_04,
125456 const t_ARG_05& arg_05,
125457 const t_ARG_06& arg_06,
125458 const t_ARG_07& arg_07,
125460: Variant_Base(
125461 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125462 arg_01,
125463 arg_02,
125464 arg_03,
125465 arg_04,
125466 arg_05,
125467 arg_06,
125468 arg_07)
125469{
125470}
125471#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
125472
125473#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
125474template <class t_HEAD, class t_TAIL_01,
125475 class t_TAIL_02,
125476 class t_TAIL_03,
125477 class t_TAIL_04,
125478 class t_TAIL_05,
125479 class t_TAIL_06,
125480 class t_TAIL_07,
125481 class t_TAIL_08,
125482 class t_TAIL_09,
125483 class t_TAIL_10,
125484 class t_TAIL_11,
125485 class t_TAIL_12,
125486 class t_TAIL_13,
125487 class t_TAIL_14,
125488 class t_TAIL_15,
125489 class t_TAIL_16>
125490template <class t_TYPE,
125491 class t_ARG_01,
125492 class t_ARG_02,
125493 class t_ARG_03,
125494 class t_ARG_04,
125495 class t_ARG_05,
125496 class t_ARG_06,
125497 class t_ARG_07>
125498inline
125499variant<t_HEAD, t_TAIL_01,
125500 t_TAIL_02,
125501 t_TAIL_03,
125502 t_TAIL_04,
125503 t_TAIL_05,
125504 t_TAIL_06,
125505 t_TAIL_07,
125506 t_TAIL_08,
125507 t_TAIL_09,
125508 t_TAIL_10,
125509 t_TAIL_11,
125510 t_TAIL_12,
125511 t_TAIL_13,
125512 t_TAIL_14,
125513 t_TAIL_15,
125514 t_TAIL_16,
125515 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
125517 const t_ARG_01& arg_01,
125518 const t_ARG_02& arg_02,
125519 const t_ARG_03& arg_03,
125520 const t_ARG_04& arg_04,
125521 const t_ARG_05& arg_05,
125522 const t_ARG_06& arg_06,
125523 const t_ARG_07& arg_07,
125525: Variant_Base(
125526 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125527 arg_01,
125528 arg_02,
125529 arg_03,
125530 arg_04,
125531 arg_05,
125532 arg_06,
125533 arg_07)
125534{
125535}
125536#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
125537
125538#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
125539template <class t_HEAD, class t_TAIL_01,
125540 class t_TAIL_02,
125541 class t_TAIL_03,
125542 class t_TAIL_04,
125543 class t_TAIL_05,
125544 class t_TAIL_06,
125545 class t_TAIL_07,
125546 class t_TAIL_08,
125547 class t_TAIL_09,
125548 class t_TAIL_10,
125549 class t_TAIL_11,
125550 class t_TAIL_12,
125551 class t_TAIL_13,
125552 class t_TAIL_14,
125553 class t_TAIL_15,
125554 class t_TAIL_16,
125555 class t_TAIL_17>
125556template <class t_TYPE,
125557 class t_ARG_01,
125558 class t_ARG_02,
125559 class t_ARG_03,
125560 class t_ARG_04,
125561 class t_ARG_05,
125562 class t_ARG_06,
125563 class t_ARG_07>
125564inline
125565variant<t_HEAD, t_TAIL_01,
125566 t_TAIL_02,
125567 t_TAIL_03,
125568 t_TAIL_04,
125569 t_TAIL_05,
125570 t_TAIL_06,
125571 t_TAIL_07,
125572 t_TAIL_08,
125573 t_TAIL_09,
125574 t_TAIL_10,
125575 t_TAIL_11,
125576 t_TAIL_12,
125577 t_TAIL_13,
125578 t_TAIL_14,
125579 t_TAIL_15,
125580 t_TAIL_16,
125581 t_TAIL_17,
125582 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
125584 const t_ARG_01& arg_01,
125585 const t_ARG_02& arg_02,
125586 const t_ARG_03& arg_03,
125587 const t_ARG_04& arg_04,
125588 const t_ARG_05& arg_05,
125589 const t_ARG_06& arg_06,
125590 const t_ARG_07& arg_07,
125592: Variant_Base(
125593 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125594 arg_01,
125595 arg_02,
125596 arg_03,
125597 arg_04,
125598 arg_05,
125599 arg_06,
125600 arg_07)
125601{
125602}
125603#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
125604
125605#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
125606template <class t_HEAD, class t_TAIL_01,
125607 class t_TAIL_02,
125608 class t_TAIL_03,
125609 class t_TAIL_04,
125610 class t_TAIL_05,
125611 class t_TAIL_06,
125612 class t_TAIL_07,
125613 class t_TAIL_08,
125614 class t_TAIL_09,
125615 class t_TAIL_10,
125616 class t_TAIL_11,
125617 class t_TAIL_12,
125618 class t_TAIL_13,
125619 class t_TAIL_14,
125620 class t_TAIL_15,
125621 class t_TAIL_16,
125622 class t_TAIL_17,
125623 class t_TAIL_18>
125624template <class t_TYPE,
125625 class t_ARG_01,
125626 class t_ARG_02,
125627 class t_ARG_03,
125628 class t_ARG_04,
125629 class t_ARG_05,
125630 class t_ARG_06,
125631 class t_ARG_07>
125632inline
125633variant<t_HEAD, t_TAIL_01,
125634 t_TAIL_02,
125635 t_TAIL_03,
125636 t_TAIL_04,
125637 t_TAIL_05,
125638 t_TAIL_06,
125639 t_TAIL_07,
125640 t_TAIL_08,
125641 t_TAIL_09,
125642 t_TAIL_10,
125643 t_TAIL_11,
125644 t_TAIL_12,
125645 t_TAIL_13,
125646 t_TAIL_14,
125647 t_TAIL_15,
125648 t_TAIL_16,
125649 t_TAIL_17,
125650 t_TAIL_18,
125651 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
125653 const t_ARG_01& arg_01,
125654 const t_ARG_02& arg_02,
125655 const t_ARG_03& arg_03,
125656 const t_ARG_04& arg_04,
125657 const t_ARG_05& arg_05,
125658 const t_ARG_06& arg_06,
125659 const t_ARG_07& arg_07,
125661: Variant_Base(
125662 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125663 arg_01,
125664 arg_02,
125665 arg_03,
125666 arg_04,
125667 arg_05,
125668 arg_06,
125669 arg_07)
125670{
125671}
125672#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
125673
125674
125675#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
125676template <class t_HEAD>
125677template <class t_TYPE,
125678 class t_ARG_01,
125679 class t_ARG_02,
125680 class t_ARG_03,
125681 class t_ARG_04,
125682 class t_ARG_05,
125683 class t_ARG_06,
125684 class t_ARG_07,
125685 class t_ARG_08>
125686inline
125687variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
125689 const t_ARG_01& arg_01,
125690 const t_ARG_02& arg_02,
125691 const t_ARG_03& arg_03,
125692 const t_ARG_04& arg_04,
125693 const t_ARG_05& arg_05,
125694 const t_ARG_06& arg_06,
125695 const t_ARG_07& arg_07,
125696 const t_ARG_08& arg_08,
125698: Variant_Base(
125699 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125700 arg_01,
125701 arg_02,
125702 arg_03,
125703 arg_04,
125704 arg_05,
125705 arg_06,
125706 arg_07,
125707 arg_08)
125708{
125709}
125710#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
125711
125712#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
125713template <class t_HEAD, class t_TAIL_01>
125714template <class t_TYPE,
125715 class t_ARG_01,
125716 class t_ARG_02,
125717 class t_ARG_03,
125718 class t_ARG_04,
125719 class t_ARG_05,
125720 class t_ARG_06,
125721 class t_ARG_07,
125722 class t_ARG_08>
125723inline
125724variant<t_HEAD, t_TAIL_01,
125725 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
125727 const t_ARG_01& arg_01,
125728 const t_ARG_02& arg_02,
125729 const t_ARG_03& arg_03,
125730 const t_ARG_04& arg_04,
125731 const t_ARG_05& arg_05,
125732 const t_ARG_06& arg_06,
125733 const t_ARG_07& arg_07,
125734 const t_ARG_08& arg_08,
125736: Variant_Base(
125737 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125738 arg_01,
125739 arg_02,
125740 arg_03,
125741 arg_04,
125742 arg_05,
125743 arg_06,
125744 arg_07,
125745 arg_08)
125746{
125747}
125748#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
125749
125750#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
125751template <class t_HEAD, class t_TAIL_01,
125752 class t_TAIL_02>
125753template <class t_TYPE,
125754 class t_ARG_01,
125755 class t_ARG_02,
125756 class t_ARG_03,
125757 class t_ARG_04,
125758 class t_ARG_05,
125759 class t_ARG_06,
125760 class t_ARG_07,
125761 class t_ARG_08>
125762inline
125763variant<t_HEAD, t_TAIL_01,
125764 t_TAIL_02,
125765 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
125767 const t_ARG_01& arg_01,
125768 const t_ARG_02& arg_02,
125769 const t_ARG_03& arg_03,
125770 const t_ARG_04& arg_04,
125771 const t_ARG_05& arg_05,
125772 const t_ARG_06& arg_06,
125773 const t_ARG_07& arg_07,
125774 const t_ARG_08& arg_08,
125776: Variant_Base(
125777 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125778 arg_01,
125779 arg_02,
125780 arg_03,
125781 arg_04,
125782 arg_05,
125783 arg_06,
125784 arg_07,
125785 arg_08)
125786{
125787}
125788#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
125789
125790#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
125791template <class t_HEAD, class t_TAIL_01,
125792 class t_TAIL_02,
125793 class t_TAIL_03>
125794template <class t_TYPE,
125795 class t_ARG_01,
125796 class t_ARG_02,
125797 class t_ARG_03,
125798 class t_ARG_04,
125799 class t_ARG_05,
125800 class t_ARG_06,
125801 class t_ARG_07,
125802 class t_ARG_08>
125803inline
125804variant<t_HEAD, t_TAIL_01,
125805 t_TAIL_02,
125806 t_TAIL_03,
125807 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
125809 const t_ARG_01& arg_01,
125810 const t_ARG_02& arg_02,
125811 const t_ARG_03& arg_03,
125812 const t_ARG_04& arg_04,
125813 const t_ARG_05& arg_05,
125814 const t_ARG_06& arg_06,
125815 const t_ARG_07& arg_07,
125816 const t_ARG_08& arg_08,
125818: Variant_Base(
125819 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125820 arg_01,
125821 arg_02,
125822 arg_03,
125823 arg_04,
125824 arg_05,
125825 arg_06,
125826 arg_07,
125827 arg_08)
125828{
125829}
125830#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
125831
125832#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
125833template <class t_HEAD, class t_TAIL_01,
125834 class t_TAIL_02,
125835 class t_TAIL_03,
125836 class t_TAIL_04>
125837template <class t_TYPE,
125838 class t_ARG_01,
125839 class t_ARG_02,
125840 class t_ARG_03,
125841 class t_ARG_04,
125842 class t_ARG_05,
125843 class t_ARG_06,
125844 class t_ARG_07,
125845 class t_ARG_08>
125846inline
125847variant<t_HEAD, t_TAIL_01,
125848 t_TAIL_02,
125849 t_TAIL_03,
125850 t_TAIL_04,
125851 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
125853 const t_ARG_01& arg_01,
125854 const t_ARG_02& arg_02,
125855 const t_ARG_03& arg_03,
125856 const t_ARG_04& arg_04,
125857 const t_ARG_05& arg_05,
125858 const t_ARG_06& arg_06,
125859 const t_ARG_07& arg_07,
125860 const t_ARG_08& arg_08,
125862: Variant_Base(
125863 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125864 arg_01,
125865 arg_02,
125866 arg_03,
125867 arg_04,
125868 arg_05,
125869 arg_06,
125870 arg_07,
125871 arg_08)
125872{
125873}
125874#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
125875
125876#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
125877template <class t_HEAD, class t_TAIL_01,
125878 class t_TAIL_02,
125879 class t_TAIL_03,
125880 class t_TAIL_04,
125881 class t_TAIL_05>
125882template <class t_TYPE,
125883 class t_ARG_01,
125884 class t_ARG_02,
125885 class t_ARG_03,
125886 class t_ARG_04,
125887 class t_ARG_05,
125888 class t_ARG_06,
125889 class t_ARG_07,
125890 class t_ARG_08>
125891inline
125892variant<t_HEAD, t_TAIL_01,
125893 t_TAIL_02,
125894 t_TAIL_03,
125895 t_TAIL_04,
125896 t_TAIL_05,
125897 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
125899 const t_ARG_01& arg_01,
125900 const t_ARG_02& arg_02,
125901 const t_ARG_03& arg_03,
125902 const t_ARG_04& arg_04,
125903 const t_ARG_05& arg_05,
125904 const t_ARG_06& arg_06,
125905 const t_ARG_07& arg_07,
125906 const t_ARG_08& arg_08,
125908: Variant_Base(
125909 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125910 arg_01,
125911 arg_02,
125912 arg_03,
125913 arg_04,
125914 arg_05,
125915 arg_06,
125916 arg_07,
125917 arg_08)
125918{
125919}
125920#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
125921
125922#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
125923template <class t_HEAD, class t_TAIL_01,
125924 class t_TAIL_02,
125925 class t_TAIL_03,
125926 class t_TAIL_04,
125927 class t_TAIL_05,
125928 class t_TAIL_06>
125929template <class t_TYPE,
125930 class t_ARG_01,
125931 class t_ARG_02,
125932 class t_ARG_03,
125933 class t_ARG_04,
125934 class t_ARG_05,
125935 class t_ARG_06,
125936 class t_ARG_07,
125937 class t_ARG_08>
125938inline
125939variant<t_HEAD, t_TAIL_01,
125940 t_TAIL_02,
125941 t_TAIL_03,
125942 t_TAIL_04,
125943 t_TAIL_05,
125944 t_TAIL_06,
125945 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
125947 const t_ARG_01& arg_01,
125948 const t_ARG_02& arg_02,
125949 const t_ARG_03& arg_03,
125950 const t_ARG_04& arg_04,
125951 const t_ARG_05& arg_05,
125952 const t_ARG_06& arg_06,
125953 const t_ARG_07& arg_07,
125954 const t_ARG_08& arg_08,
125956: Variant_Base(
125957 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
125958 arg_01,
125959 arg_02,
125960 arg_03,
125961 arg_04,
125962 arg_05,
125963 arg_06,
125964 arg_07,
125965 arg_08)
125966{
125967}
125968#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
125969
125970#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
125971template <class t_HEAD, class t_TAIL_01,
125972 class t_TAIL_02,
125973 class t_TAIL_03,
125974 class t_TAIL_04,
125975 class t_TAIL_05,
125976 class t_TAIL_06,
125977 class t_TAIL_07>
125978template <class t_TYPE,
125979 class t_ARG_01,
125980 class t_ARG_02,
125981 class t_ARG_03,
125982 class t_ARG_04,
125983 class t_ARG_05,
125984 class t_ARG_06,
125985 class t_ARG_07,
125986 class t_ARG_08>
125987inline
125988variant<t_HEAD, t_TAIL_01,
125989 t_TAIL_02,
125990 t_TAIL_03,
125991 t_TAIL_04,
125992 t_TAIL_05,
125993 t_TAIL_06,
125994 t_TAIL_07,
125995 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
125997 const t_ARG_01& arg_01,
125998 const t_ARG_02& arg_02,
125999 const t_ARG_03& arg_03,
126000 const t_ARG_04& arg_04,
126001 const t_ARG_05& arg_05,
126002 const t_ARG_06& arg_06,
126003 const t_ARG_07& arg_07,
126004 const t_ARG_08& arg_08,
126006: Variant_Base(
126007 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126008 arg_01,
126009 arg_02,
126010 arg_03,
126011 arg_04,
126012 arg_05,
126013 arg_06,
126014 arg_07,
126015 arg_08)
126016{
126017}
126018#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
126019
126020#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
126021template <class t_HEAD, class t_TAIL_01,
126022 class t_TAIL_02,
126023 class t_TAIL_03,
126024 class t_TAIL_04,
126025 class t_TAIL_05,
126026 class t_TAIL_06,
126027 class t_TAIL_07,
126028 class t_TAIL_08>
126029template <class t_TYPE,
126030 class t_ARG_01,
126031 class t_ARG_02,
126032 class t_ARG_03,
126033 class t_ARG_04,
126034 class t_ARG_05,
126035 class t_ARG_06,
126036 class t_ARG_07,
126037 class t_ARG_08>
126038inline
126039variant<t_HEAD, t_TAIL_01,
126040 t_TAIL_02,
126041 t_TAIL_03,
126042 t_TAIL_04,
126043 t_TAIL_05,
126044 t_TAIL_06,
126045 t_TAIL_07,
126046 t_TAIL_08,
126047 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
126049 const t_ARG_01& arg_01,
126050 const t_ARG_02& arg_02,
126051 const t_ARG_03& arg_03,
126052 const t_ARG_04& arg_04,
126053 const t_ARG_05& arg_05,
126054 const t_ARG_06& arg_06,
126055 const t_ARG_07& arg_07,
126056 const t_ARG_08& arg_08,
126058: Variant_Base(
126059 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126060 arg_01,
126061 arg_02,
126062 arg_03,
126063 arg_04,
126064 arg_05,
126065 arg_06,
126066 arg_07,
126067 arg_08)
126068{
126069}
126070#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
126071
126072#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
126073template <class t_HEAD, class t_TAIL_01,
126074 class t_TAIL_02,
126075 class t_TAIL_03,
126076 class t_TAIL_04,
126077 class t_TAIL_05,
126078 class t_TAIL_06,
126079 class t_TAIL_07,
126080 class t_TAIL_08,
126081 class t_TAIL_09>
126082template <class t_TYPE,
126083 class t_ARG_01,
126084 class t_ARG_02,
126085 class t_ARG_03,
126086 class t_ARG_04,
126087 class t_ARG_05,
126088 class t_ARG_06,
126089 class t_ARG_07,
126090 class t_ARG_08>
126091inline
126092variant<t_HEAD, t_TAIL_01,
126093 t_TAIL_02,
126094 t_TAIL_03,
126095 t_TAIL_04,
126096 t_TAIL_05,
126097 t_TAIL_06,
126098 t_TAIL_07,
126099 t_TAIL_08,
126100 t_TAIL_09,
126101 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
126103 const t_ARG_01& arg_01,
126104 const t_ARG_02& arg_02,
126105 const t_ARG_03& arg_03,
126106 const t_ARG_04& arg_04,
126107 const t_ARG_05& arg_05,
126108 const t_ARG_06& arg_06,
126109 const t_ARG_07& arg_07,
126110 const t_ARG_08& arg_08,
126112: Variant_Base(
126113 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126114 arg_01,
126115 arg_02,
126116 arg_03,
126117 arg_04,
126118 arg_05,
126119 arg_06,
126120 arg_07,
126121 arg_08)
126122{
126123}
126124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
126125
126126#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
126127template <class t_HEAD, class t_TAIL_01,
126128 class t_TAIL_02,
126129 class t_TAIL_03,
126130 class t_TAIL_04,
126131 class t_TAIL_05,
126132 class t_TAIL_06,
126133 class t_TAIL_07,
126134 class t_TAIL_08,
126135 class t_TAIL_09,
126136 class t_TAIL_10>
126137template <class t_TYPE,
126138 class t_ARG_01,
126139 class t_ARG_02,
126140 class t_ARG_03,
126141 class t_ARG_04,
126142 class t_ARG_05,
126143 class t_ARG_06,
126144 class t_ARG_07,
126145 class t_ARG_08>
126146inline
126147variant<t_HEAD, t_TAIL_01,
126148 t_TAIL_02,
126149 t_TAIL_03,
126150 t_TAIL_04,
126151 t_TAIL_05,
126152 t_TAIL_06,
126153 t_TAIL_07,
126154 t_TAIL_08,
126155 t_TAIL_09,
126156 t_TAIL_10,
126157 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
126159 const t_ARG_01& arg_01,
126160 const t_ARG_02& arg_02,
126161 const t_ARG_03& arg_03,
126162 const t_ARG_04& arg_04,
126163 const t_ARG_05& arg_05,
126164 const t_ARG_06& arg_06,
126165 const t_ARG_07& arg_07,
126166 const t_ARG_08& arg_08,
126168: Variant_Base(
126169 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126170 arg_01,
126171 arg_02,
126172 arg_03,
126173 arg_04,
126174 arg_05,
126175 arg_06,
126176 arg_07,
126177 arg_08)
126178{
126179}
126180#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
126181
126182#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
126183template <class t_HEAD, class t_TAIL_01,
126184 class t_TAIL_02,
126185 class t_TAIL_03,
126186 class t_TAIL_04,
126187 class t_TAIL_05,
126188 class t_TAIL_06,
126189 class t_TAIL_07,
126190 class t_TAIL_08,
126191 class t_TAIL_09,
126192 class t_TAIL_10,
126193 class t_TAIL_11>
126194template <class t_TYPE,
126195 class t_ARG_01,
126196 class t_ARG_02,
126197 class t_ARG_03,
126198 class t_ARG_04,
126199 class t_ARG_05,
126200 class t_ARG_06,
126201 class t_ARG_07,
126202 class t_ARG_08>
126203inline
126204variant<t_HEAD, t_TAIL_01,
126205 t_TAIL_02,
126206 t_TAIL_03,
126207 t_TAIL_04,
126208 t_TAIL_05,
126209 t_TAIL_06,
126210 t_TAIL_07,
126211 t_TAIL_08,
126212 t_TAIL_09,
126213 t_TAIL_10,
126214 t_TAIL_11,
126215 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
126217 const t_ARG_01& arg_01,
126218 const t_ARG_02& arg_02,
126219 const t_ARG_03& arg_03,
126220 const t_ARG_04& arg_04,
126221 const t_ARG_05& arg_05,
126222 const t_ARG_06& arg_06,
126223 const t_ARG_07& arg_07,
126224 const t_ARG_08& arg_08,
126226: Variant_Base(
126227 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126228 arg_01,
126229 arg_02,
126230 arg_03,
126231 arg_04,
126232 arg_05,
126233 arg_06,
126234 arg_07,
126235 arg_08)
126236{
126237}
126238#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
126239
126240#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
126241template <class t_HEAD, class t_TAIL_01,
126242 class t_TAIL_02,
126243 class t_TAIL_03,
126244 class t_TAIL_04,
126245 class t_TAIL_05,
126246 class t_TAIL_06,
126247 class t_TAIL_07,
126248 class t_TAIL_08,
126249 class t_TAIL_09,
126250 class t_TAIL_10,
126251 class t_TAIL_11,
126252 class t_TAIL_12>
126253template <class t_TYPE,
126254 class t_ARG_01,
126255 class t_ARG_02,
126256 class t_ARG_03,
126257 class t_ARG_04,
126258 class t_ARG_05,
126259 class t_ARG_06,
126260 class t_ARG_07,
126261 class t_ARG_08>
126262inline
126263variant<t_HEAD, t_TAIL_01,
126264 t_TAIL_02,
126265 t_TAIL_03,
126266 t_TAIL_04,
126267 t_TAIL_05,
126268 t_TAIL_06,
126269 t_TAIL_07,
126270 t_TAIL_08,
126271 t_TAIL_09,
126272 t_TAIL_10,
126273 t_TAIL_11,
126274 t_TAIL_12,
126275 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
126277 const t_ARG_01& arg_01,
126278 const t_ARG_02& arg_02,
126279 const t_ARG_03& arg_03,
126280 const t_ARG_04& arg_04,
126281 const t_ARG_05& arg_05,
126282 const t_ARG_06& arg_06,
126283 const t_ARG_07& arg_07,
126284 const t_ARG_08& arg_08,
126286: Variant_Base(
126287 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126288 arg_01,
126289 arg_02,
126290 arg_03,
126291 arg_04,
126292 arg_05,
126293 arg_06,
126294 arg_07,
126295 arg_08)
126296{
126297}
126298#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
126299
126300#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
126301template <class t_HEAD, class t_TAIL_01,
126302 class t_TAIL_02,
126303 class t_TAIL_03,
126304 class t_TAIL_04,
126305 class t_TAIL_05,
126306 class t_TAIL_06,
126307 class t_TAIL_07,
126308 class t_TAIL_08,
126309 class t_TAIL_09,
126310 class t_TAIL_10,
126311 class t_TAIL_11,
126312 class t_TAIL_12,
126313 class t_TAIL_13>
126314template <class t_TYPE,
126315 class t_ARG_01,
126316 class t_ARG_02,
126317 class t_ARG_03,
126318 class t_ARG_04,
126319 class t_ARG_05,
126320 class t_ARG_06,
126321 class t_ARG_07,
126322 class t_ARG_08>
126323inline
126324variant<t_HEAD, t_TAIL_01,
126325 t_TAIL_02,
126326 t_TAIL_03,
126327 t_TAIL_04,
126328 t_TAIL_05,
126329 t_TAIL_06,
126330 t_TAIL_07,
126331 t_TAIL_08,
126332 t_TAIL_09,
126333 t_TAIL_10,
126334 t_TAIL_11,
126335 t_TAIL_12,
126336 t_TAIL_13,
126337 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
126339 const t_ARG_01& arg_01,
126340 const t_ARG_02& arg_02,
126341 const t_ARG_03& arg_03,
126342 const t_ARG_04& arg_04,
126343 const t_ARG_05& arg_05,
126344 const t_ARG_06& arg_06,
126345 const t_ARG_07& arg_07,
126346 const t_ARG_08& arg_08,
126348: Variant_Base(
126349 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126350 arg_01,
126351 arg_02,
126352 arg_03,
126353 arg_04,
126354 arg_05,
126355 arg_06,
126356 arg_07,
126357 arg_08)
126358{
126359}
126360#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
126361
126362#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
126363template <class t_HEAD, class t_TAIL_01,
126364 class t_TAIL_02,
126365 class t_TAIL_03,
126366 class t_TAIL_04,
126367 class t_TAIL_05,
126368 class t_TAIL_06,
126369 class t_TAIL_07,
126370 class t_TAIL_08,
126371 class t_TAIL_09,
126372 class t_TAIL_10,
126373 class t_TAIL_11,
126374 class t_TAIL_12,
126375 class t_TAIL_13,
126376 class t_TAIL_14>
126377template <class t_TYPE,
126378 class t_ARG_01,
126379 class t_ARG_02,
126380 class t_ARG_03,
126381 class t_ARG_04,
126382 class t_ARG_05,
126383 class t_ARG_06,
126384 class t_ARG_07,
126385 class t_ARG_08>
126386inline
126387variant<t_HEAD, t_TAIL_01,
126388 t_TAIL_02,
126389 t_TAIL_03,
126390 t_TAIL_04,
126391 t_TAIL_05,
126392 t_TAIL_06,
126393 t_TAIL_07,
126394 t_TAIL_08,
126395 t_TAIL_09,
126396 t_TAIL_10,
126397 t_TAIL_11,
126398 t_TAIL_12,
126399 t_TAIL_13,
126400 t_TAIL_14,
126401 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
126403 const t_ARG_01& arg_01,
126404 const t_ARG_02& arg_02,
126405 const t_ARG_03& arg_03,
126406 const t_ARG_04& arg_04,
126407 const t_ARG_05& arg_05,
126408 const t_ARG_06& arg_06,
126409 const t_ARG_07& arg_07,
126410 const t_ARG_08& arg_08,
126412: Variant_Base(
126413 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126414 arg_01,
126415 arg_02,
126416 arg_03,
126417 arg_04,
126418 arg_05,
126419 arg_06,
126420 arg_07,
126421 arg_08)
126422{
126423}
126424#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
126425
126426#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
126427template <class t_HEAD, class t_TAIL_01,
126428 class t_TAIL_02,
126429 class t_TAIL_03,
126430 class t_TAIL_04,
126431 class t_TAIL_05,
126432 class t_TAIL_06,
126433 class t_TAIL_07,
126434 class t_TAIL_08,
126435 class t_TAIL_09,
126436 class t_TAIL_10,
126437 class t_TAIL_11,
126438 class t_TAIL_12,
126439 class t_TAIL_13,
126440 class t_TAIL_14,
126441 class t_TAIL_15>
126442template <class t_TYPE,
126443 class t_ARG_01,
126444 class t_ARG_02,
126445 class t_ARG_03,
126446 class t_ARG_04,
126447 class t_ARG_05,
126448 class t_ARG_06,
126449 class t_ARG_07,
126450 class t_ARG_08>
126451inline
126452variant<t_HEAD, t_TAIL_01,
126453 t_TAIL_02,
126454 t_TAIL_03,
126455 t_TAIL_04,
126456 t_TAIL_05,
126457 t_TAIL_06,
126458 t_TAIL_07,
126459 t_TAIL_08,
126460 t_TAIL_09,
126461 t_TAIL_10,
126462 t_TAIL_11,
126463 t_TAIL_12,
126464 t_TAIL_13,
126465 t_TAIL_14,
126466 t_TAIL_15,
126467 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
126469 const t_ARG_01& arg_01,
126470 const t_ARG_02& arg_02,
126471 const t_ARG_03& arg_03,
126472 const t_ARG_04& arg_04,
126473 const t_ARG_05& arg_05,
126474 const t_ARG_06& arg_06,
126475 const t_ARG_07& arg_07,
126476 const t_ARG_08& arg_08,
126478: Variant_Base(
126479 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126480 arg_01,
126481 arg_02,
126482 arg_03,
126483 arg_04,
126484 arg_05,
126485 arg_06,
126486 arg_07,
126487 arg_08)
126488{
126489}
126490#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
126491
126492#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
126493template <class t_HEAD, class t_TAIL_01,
126494 class t_TAIL_02,
126495 class t_TAIL_03,
126496 class t_TAIL_04,
126497 class t_TAIL_05,
126498 class t_TAIL_06,
126499 class t_TAIL_07,
126500 class t_TAIL_08,
126501 class t_TAIL_09,
126502 class t_TAIL_10,
126503 class t_TAIL_11,
126504 class t_TAIL_12,
126505 class t_TAIL_13,
126506 class t_TAIL_14,
126507 class t_TAIL_15,
126508 class t_TAIL_16>
126509template <class t_TYPE,
126510 class t_ARG_01,
126511 class t_ARG_02,
126512 class t_ARG_03,
126513 class t_ARG_04,
126514 class t_ARG_05,
126515 class t_ARG_06,
126516 class t_ARG_07,
126517 class t_ARG_08>
126518inline
126519variant<t_HEAD, t_TAIL_01,
126520 t_TAIL_02,
126521 t_TAIL_03,
126522 t_TAIL_04,
126523 t_TAIL_05,
126524 t_TAIL_06,
126525 t_TAIL_07,
126526 t_TAIL_08,
126527 t_TAIL_09,
126528 t_TAIL_10,
126529 t_TAIL_11,
126530 t_TAIL_12,
126531 t_TAIL_13,
126532 t_TAIL_14,
126533 t_TAIL_15,
126534 t_TAIL_16,
126535 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
126537 const t_ARG_01& arg_01,
126538 const t_ARG_02& arg_02,
126539 const t_ARG_03& arg_03,
126540 const t_ARG_04& arg_04,
126541 const t_ARG_05& arg_05,
126542 const t_ARG_06& arg_06,
126543 const t_ARG_07& arg_07,
126544 const t_ARG_08& arg_08,
126546: Variant_Base(
126547 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126548 arg_01,
126549 arg_02,
126550 arg_03,
126551 arg_04,
126552 arg_05,
126553 arg_06,
126554 arg_07,
126555 arg_08)
126556{
126557}
126558#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
126559
126560#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
126561template <class t_HEAD, class t_TAIL_01,
126562 class t_TAIL_02,
126563 class t_TAIL_03,
126564 class t_TAIL_04,
126565 class t_TAIL_05,
126566 class t_TAIL_06,
126567 class t_TAIL_07,
126568 class t_TAIL_08,
126569 class t_TAIL_09,
126570 class t_TAIL_10,
126571 class t_TAIL_11,
126572 class t_TAIL_12,
126573 class t_TAIL_13,
126574 class t_TAIL_14,
126575 class t_TAIL_15,
126576 class t_TAIL_16,
126577 class t_TAIL_17>
126578template <class t_TYPE,
126579 class t_ARG_01,
126580 class t_ARG_02,
126581 class t_ARG_03,
126582 class t_ARG_04,
126583 class t_ARG_05,
126584 class t_ARG_06,
126585 class t_ARG_07,
126586 class t_ARG_08>
126587inline
126588variant<t_HEAD, t_TAIL_01,
126589 t_TAIL_02,
126590 t_TAIL_03,
126591 t_TAIL_04,
126592 t_TAIL_05,
126593 t_TAIL_06,
126594 t_TAIL_07,
126595 t_TAIL_08,
126596 t_TAIL_09,
126597 t_TAIL_10,
126598 t_TAIL_11,
126599 t_TAIL_12,
126600 t_TAIL_13,
126601 t_TAIL_14,
126602 t_TAIL_15,
126603 t_TAIL_16,
126604 t_TAIL_17,
126605 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
126607 const t_ARG_01& arg_01,
126608 const t_ARG_02& arg_02,
126609 const t_ARG_03& arg_03,
126610 const t_ARG_04& arg_04,
126611 const t_ARG_05& arg_05,
126612 const t_ARG_06& arg_06,
126613 const t_ARG_07& arg_07,
126614 const t_ARG_08& arg_08,
126616: Variant_Base(
126617 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126618 arg_01,
126619 arg_02,
126620 arg_03,
126621 arg_04,
126622 arg_05,
126623 arg_06,
126624 arg_07,
126625 arg_08)
126626{
126627}
126628#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
126629
126630#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
126631template <class t_HEAD, class t_TAIL_01,
126632 class t_TAIL_02,
126633 class t_TAIL_03,
126634 class t_TAIL_04,
126635 class t_TAIL_05,
126636 class t_TAIL_06,
126637 class t_TAIL_07,
126638 class t_TAIL_08,
126639 class t_TAIL_09,
126640 class t_TAIL_10,
126641 class t_TAIL_11,
126642 class t_TAIL_12,
126643 class t_TAIL_13,
126644 class t_TAIL_14,
126645 class t_TAIL_15,
126646 class t_TAIL_16,
126647 class t_TAIL_17,
126648 class t_TAIL_18>
126649template <class t_TYPE,
126650 class t_ARG_01,
126651 class t_ARG_02,
126652 class t_ARG_03,
126653 class t_ARG_04,
126654 class t_ARG_05,
126655 class t_ARG_06,
126656 class t_ARG_07,
126657 class t_ARG_08>
126658inline
126659variant<t_HEAD, t_TAIL_01,
126660 t_TAIL_02,
126661 t_TAIL_03,
126662 t_TAIL_04,
126663 t_TAIL_05,
126664 t_TAIL_06,
126665 t_TAIL_07,
126666 t_TAIL_08,
126667 t_TAIL_09,
126668 t_TAIL_10,
126669 t_TAIL_11,
126670 t_TAIL_12,
126671 t_TAIL_13,
126672 t_TAIL_14,
126673 t_TAIL_15,
126674 t_TAIL_16,
126675 t_TAIL_17,
126676 t_TAIL_18,
126677 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
126679 const t_ARG_01& arg_01,
126680 const t_ARG_02& arg_02,
126681 const t_ARG_03& arg_03,
126682 const t_ARG_04& arg_04,
126683 const t_ARG_05& arg_05,
126684 const t_ARG_06& arg_06,
126685 const t_ARG_07& arg_07,
126686 const t_ARG_08& arg_08,
126688: Variant_Base(
126689 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126690 arg_01,
126691 arg_02,
126692 arg_03,
126693 arg_04,
126694 arg_05,
126695 arg_06,
126696 arg_07,
126697 arg_08)
126698{
126699}
126700#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
126701
126702
126703#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
126704template <class t_HEAD>
126705template <class t_TYPE,
126706 class t_ARG_01,
126707 class t_ARG_02,
126708 class t_ARG_03,
126709 class t_ARG_04,
126710 class t_ARG_05,
126711 class t_ARG_06,
126712 class t_ARG_07,
126713 class t_ARG_08,
126714 class t_ARG_09>
126715inline
126716variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
126718 const t_ARG_01& arg_01,
126719 const t_ARG_02& arg_02,
126720 const t_ARG_03& arg_03,
126721 const t_ARG_04& arg_04,
126722 const t_ARG_05& arg_05,
126723 const t_ARG_06& arg_06,
126724 const t_ARG_07& arg_07,
126725 const t_ARG_08& arg_08,
126726 const t_ARG_09& arg_09,
126728: Variant_Base(
126729 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126730 arg_01,
126731 arg_02,
126732 arg_03,
126733 arg_04,
126734 arg_05,
126735 arg_06,
126736 arg_07,
126737 arg_08,
126738 arg_09)
126739{
126740}
126741#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
126742
126743#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
126744template <class t_HEAD, class t_TAIL_01>
126745template <class t_TYPE,
126746 class t_ARG_01,
126747 class t_ARG_02,
126748 class t_ARG_03,
126749 class t_ARG_04,
126750 class t_ARG_05,
126751 class t_ARG_06,
126752 class t_ARG_07,
126753 class t_ARG_08,
126754 class t_ARG_09>
126755inline
126756variant<t_HEAD, t_TAIL_01,
126757 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
126759 const t_ARG_01& arg_01,
126760 const t_ARG_02& arg_02,
126761 const t_ARG_03& arg_03,
126762 const t_ARG_04& arg_04,
126763 const t_ARG_05& arg_05,
126764 const t_ARG_06& arg_06,
126765 const t_ARG_07& arg_07,
126766 const t_ARG_08& arg_08,
126767 const t_ARG_09& arg_09,
126769: Variant_Base(
126770 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126771 arg_01,
126772 arg_02,
126773 arg_03,
126774 arg_04,
126775 arg_05,
126776 arg_06,
126777 arg_07,
126778 arg_08,
126779 arg_09)
126780{
126781}
126782#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
126783
126784#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
126785template <class t_HEAD, class t_TAIL_01,
126786 class t_TAIL_02>
126787template <class t_TYPE,
126788 class t_ARG_01,
126789 class t_ARG_02,
126790 class t_ARG_03,
126791 class t_ARG_04,
126792 class t_ARG_05,
126793 class t_ARG_06,
126794 class t_ARG_07,
126795 class t_ARG_08,
126796 class t_ARG_09>
126797inline
126798variant<t_HEAD, t_TAIL_01,
126799 t_TAIL_02,
126800 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
126802 const t_ARG_01& arg_01,
126803 const t_ARG_02& arg_02,
126804 const t_ARG_03& arg_03,
126805 const t_ARG_04& arg_04,
126806 const t_ARG_05& arg_05,
126807 const t_ARG_06& arg_06,
126808 const t_ARG_07& arg_07,
126809 const t_ARG_08& arg_08,
126810 const t_ARG_09& arg_09,
126812: Variant_Base(
126813 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126814 arg_01,
126815 arg_02,
126816 arg_03,
126817 arg_04,
126818 arg_05,
126819 arg_06,
126820 arg_07,
126821 arg_08,
126822 arg_09)
126823{
126824}
126825#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
126826
126827#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
126828template <class t_HEAD, class t_TAIL_01,
126829 class t_TAIL_02,
126830 class t_TAIL_03>
126831template <class t_TYPE,
126832 class t_ARG_01,
126833 class t_ARG_02,
126834 class t_ARG_03,
126835 class t_ARG_04,
126836 class t_ARG_05,
126837 class t_ARG_06,
126838 class t_ARG_07,
126839 class t_ARG_08,
126840 class t_ARG_09>
126841inline
126842variant<t_HEAD, t_TAIL_01,
126843 t_TAIL_02,
126844 t_TAIL_03,
126845 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
126847 const t_ARG_01& arg_01,
126848 const t_ARG_02& arg_02,
126849 const t_ARG_03& arg_03,
126850 const t_ARG_04& arg_04,
126851 const t_ARG_05& arg_05,
126852 const t_ARG_06& arg_06,
126853 const t_ARG_07& arg_07,
126854 const t_ARG_08& arg_08,
126855 const t_ARG_09& arg_09,
126857: Variant_Base(
126858 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126859 arg_01,
126860 arg_02,
126861 arg_03,
126862 arg_04,
126863 arg_05,
126864 arg_06,
126865 arg_07,
126866 arg_08,
126867 arg_09)
126868{
126869}
126870#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
126871
126872#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
126873template <class t_HEAD, class t_TAIL_01,
126874 class t_TAIL_02,
126875 class t_TAIL_03,
126876 class t_TAIL_04>
126877template <class t_TYPE,
126878 class t_ARG_01,
126879 class t_ARG_02,
126880 class t_ARG_03,
126881 class t_ARG_04,
126882 class t_ARG_05,
126883 class t_ARG_06,
126884 class t_ARG_07,
126885 class t_ARG_08,
126886 class t_ARG_09>
126887inline
126888variant<t_HEAD, t_TAIL_01,
126889 t_TAIL_02,
126890 t_TAIL_03,
126891 t_TAIL_04,
126892 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
126894 const t_ARG_01& arg_01,
126895 const t_ARG_02& arg_02,
126896 const t_ARG_03& arg_03,
126897 const t_ARG_04& arg_04,
126898 const t_ARG_05& arg_05,
126899 const t_ARG_06& arg_06,
126900 const t_ARG_07& arg_07,
126901 const t_ARG_08& arg_08,
126902 const t_ARG_09& arg_09,
126904: Variant_Base(
126905 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126906 arg_01,
126907 arg_02,
126908 arg_03,
126909 arg_04,
126910 arg_05,
126911 arg_06,
126912 arg_07,
126913 arg_08,
126914 arg_09)
126915{
126916}
126917#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
126918
126919#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
126920template <class t_HEAD, class t_TAIL_01,
126921 class t_TAIL_02,
126922 class t_TAIL_03,
126923 class t_TAIL_04,
126924 class t_TAIL_05>
126925template <class t_TYPE,
126926 class t_ARG_01,
126927 class t_ARG_02,
126928 class t_ARG_03,
126929 class t_ARG_04,
126930 class t_ARG_05,
126931 class t_ARG_06,
126932 class t_ARG_07,
126933 class t_ARG_08,
126934 class t_ARG_09>
126935inline
126936variant<t_HEAD, t_TAIL_01,
126937 t_TAIL_02,
126938 t_TAIL_03,
126939 t_TAIL_04,
126940 t_TAIL_05,
126941 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
126943 const t_ARG_01& arg_01,
126944 const t_ARG_02& arg_02,
126945 const t_ARG_03& arg_03,
126946 const t_ARG_04& arg_04,
126947 const t_ARG_05& arg_05,
126948 const t_ARG_06& arg_06,
126949 const t_ARG_07& arg_07,
126950 const t_ARG_08& arg_08,
126951 const t_ARG_09& arg_09,
126953: Variant_Base(
126954 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
126955 arg_01,
126956 arg_02,
126957 arg_03,
126958 arg_04,
126959 arg_05,
126960 arg_06,
126961 arg_07,
126962 arg_08,
126963 arg_09)
126964{
126965}
126966#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
126967
126968#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
126969template <class t_HEAD, class t_TAIL_01,
126970 class t_TAIL_02,
126971 class t_TAIL_03,
126972 class t_TAIL_04,
126973 class t_TAIL_05,
126974 class t_TAIL_06>
126975template <class t_TYPE,
126976 class t_ARG_01,
126977 class t_ARG_02,
126978 class t_ARG_03,
126979 class t_ARG_04,
126980 class t_ARG_05,
126981 class t_ARG_06,
126982 class t_ARG_07,
126983 class t_ARG_08,
126984 class t_ARG_09>
126985inline
126986variant<t_HEAD, t_TAIL_01,
126987 t_TAIL_02,
126988 t_TAIL_03,
126989 t_TAIL_04,
126990 t_TAIL_05,
126991 t_TAIL_06,
126992 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
126994 const t_ARG_01& arg_01,
126995 const t_ARG_02& arg_02,
126996 const t_ARG_03& arg_03,
126997 const t_ARG_04& arg_04,
126998 const t_ARG_05& arg_05,
126999 const t_ARG_06& arg_06,
127000 const t_ARG_07& arg_07,
127001 const t_ARG_08& arg_08,
127002 const t_ARG_09& arg_09,
127004: Variant_Base(
127005 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127006 arg_01,
127007 arg_02,
127008 arg_03,
127009 arg_04,
127010 arg_05,
127011 arg_06,
127012 arg_07,
127013 arg_08,
127014 arg_09)
127015{
127016}
127017#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
127018
127019#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
127020template <class t_HEAD, class t_TAIL_01,
127021 class t_TAIL_02,
127022 class t_TAIL_03,
127023 class t_TAIL_04,
127024 class t_TAIL_05,
127025 class t_TAIL_06,
127026 class t_TAIL_07>
127027template <class t_TYPE,
127028 class t_ARG_01,
127029 class t_ARG_02,
127030 class t_ARG_03,
127031 class t_ARG_04,
127032 class t_ARG_05,
127033 class t_ARG_06,
127034 class t_ARG_07,
127035 class t_ARG_08,
127036 class t_ARG_09>
127037inline
127038variant<t_HEAD, t_TAIL_01,
127039 t_TAIL_02,
127040 t_TAIL_03,
127041 t_TAIL_04,
127042 t_TAIL_05,
127043 t_TAIL_06,
127044 t_TAIL_07,
127045 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
127047 const t_ARG_01& arg_01,
127048 const t_ARG_02& arg_02,
127049 const t_ARG_03& arg_03,
127050 const t_ARG_04& arg_04,
127051 const t_ARG_05& arg_05,
127052 const t_ARG_06& arg_06,
127053 const t_ARG_07& arg_07,
127054 const t_ARG_08& arg_08,
127055 const t_ARG_09& arg_09,
127057: Variant_Base(
127058 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127059 arg_01,
127060 arg_02,
127061 arg_03,
127062 arg_04,
127063 arg_05,
127064 arg_06,
127065 arg_07,
127066 arg_08,
127067 arg_09)
127068{
127069}
127070#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
127071
127072#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
127073template <class t_HEAD, class t_TAIL_01,
127074 class t_TAIL_02,
127075 class t_TAIL_03,
127076 class t_TAIL_04,
127077 class t_TAIL_05,
127078 class t_TAIL_06,
127079 class t_TAIL_07,
127080 class t_TAIL_08>
127081template <class t_TYPE,
127082 class t_ARG_01,
127083 class t_ARG_02,
127084 class t_ARG_03,
127085 class t_ARG_04,
127086 class t_ARG_05,
127087 class t_ARG_06,
127088 class t_ARG_07,
127089 class t_ARG_08,
127090 class t_ARG_09>
127091inline
127092variant<t_HEAD, t_TAIL_01,
127093 t_TAIL_02,
127094 t_TAIL_03,
127095 t_TAIL_04,
127096 t_TAIL_05,
127097 t_TAIL_06,
127098 t_TAIL_07,
127099 t_TAIL_08,
127100 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
127102 const t_ARG_01& arg_01,
127103 const t_ARG_02& arg_02,
127104 const t_ARG_03& arg_03,
127105 const t_ARG_04& arg_04,
127106 const t_ARG_05& arg_05,
127107 const t_ARG_06& arg_06,
127108 const t_ARG_07& arg_07,
127109 const t_ARG_08& arg_08,
127110 const t_ARG_09& arg_09,
127112: Variant_Base(
127113 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127114 arg_01,
127115 arg_02,
127116 arg_03,
127117 arg_04,
127118 arg_05,
127119 arg_06,
127120 arg_07,
127121 arg_08,
127122 arg_09)
127123{
127124}
127125#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
127126
127127#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
127128template <class t_HEAD, class t_TAIL_01,
127129 class t_TAIL_02,
127130 class t_TAIL_03,
127131 class t_TAIL_04,
127132 class t_TAIL_05,
127133 class t_TAIL_06,
127134 class t_TAIL_07,
127135 class t_TAIL_08,
127136 class t_TAIL_09>
127137template <class t_TYPE,
127138 class t_ARG_01,
127139 class t_ARG_02,
127140 class t_ARG_03,
127141 class t_ARG_04,
127142 class t_ARG_05,
127143 class t_ARG_06,
127144 class t_ARG_07,
127145 class t_ARG_08,
127146 class t_ARG_09>
127147inline
127148variant<t_HEAD, t_TAIL_01,
127149 t_TAIL_02,
127150 t_TAIL_03,
127151 t_TAIL_04,
127152 t_TAIL_05,
127153 t_TAIL_06,
127154 t_TAIL_07,
127155 t_TAIL_08,
127156 t_TAIL_09,
127157 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
127159 const t_ARG_01& arg_01,
127160 const t_ARG_02& arg_02,
127161 const t_ARG_03& arg_03,
127162 const t_ARG_04& arg_04,
127163 const t_ARG_05& arg_05,
127164 const t_ARG_06& arg_06,
127165 const t_ARG_07& arg_07,
127166 const t_ARG_08& arg_08,
127167 const t_ARG_09& arg_09,
127169: Variant_Base(
127170 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127171 arg_01,
127172 arg_02,
127173 arg_03,
127174 arg_04,
127175 arg_05,
127176 arg_06,
127177 arg_07,
127178 arg_08,
127179 arg_09)
127180{
127181}
127182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
127183
127184#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
127185template <class t_HEAD, class t_TAIL_01,
127186 class t_TAIL_02,
127187 class t_TAIL_03,
127188 class t_TAIL_04,
127189 class t_TAIL_05,
127190 class t_TAIL_06,
127191 class t_TAIL_07,
127192 class t_TAIL_08,
127193 class t_TAIL_09,
127194 class t_TAIL_10>
127195template <class t_TYPE,
127196 class t_ARG_01,
127197 class t_ARG_02,
127198 class t_ARG_03,
127199 class t_ARG_04,
127200 class t_ARG_05,
127201 class t_ARG_06,
127202 class t_ARG_07,
127203 class t_ARG_08,
127204 class t_ARG_09>
127205inline
127206variant<t_HEAD, t_TAIL_01,
127207 t_TAIL_02,
127208 t_TAIL_03,
127209 t_TAIL_04,
127210 t_TAIL_05,
127211 t_TAIL_06,
127212 t_TAIL_07,
127213 t_TAIL_08,
127214 t_TAIL_09,
127215 t_TAIL_10,
127216 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
127218 const t_ARG_01& arg_01,
127219 const t_ARG_02& arg_02,
127220 const t_ARG_03& arg_03,
127221 const t_ARG_04& arg_04,
127222 const t_ARG_05& arg_05,
127223 const t_ARG_06& arg_06,
127224 const t_ARG_07& arg_07,
127225 const t_ARG_08& arg_08,
127226 const t_ARG_09& arg_09,
127228: Variant_Base(
127229 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127230 arg_01,
127231 arg_02,
127232 arg_03,
127233 arg_04,
127234 arg_05,
127235 arg_06,
127236 arg_07,
127237 arg_08,
127238 arg_09)
127239{
127240}
127241#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
127242
127243#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
127244template <class t_HEAD, class t_TAIL_01,
127245 class t_TAIL_02,
127246 class t_TAIL_03,
127247 class t_TAIL_04,
127248 class t_TAIL_05,
127249 class t_TAIL_06,
127250 class t_TAIL_07,
127251 class t_TAIL_08,
127252 class t_TAIL_09,
127253 class t_TAIL_10,
127254 class t_TAIL_11>
127255template <class t_TYPE,
127256 class t_ARG_01,
127257 class t_ARG_02,
127258 class t_ARG_03,
127259 class t_ARG_04,
127260 class t_ARG_05,
127261 class t_ARG_06,
127262 class t_ARG_07,
127263 class t_ARG_08,
127264 class t_ARG_09>
127265inline
127266variant<t_HEAD, t_TAIL_01,
127267 t_TAIL_02,
127268 t_TAIL_03,
127269 t_TAIL_04,
127270 t_TAIL_05,
127271 t_TAIL_06,
127272 t_TAIL_07,
127273 t_TAIL_08,
127274 t_TAIL_09,
127275 t_TAIL_10,
127276 t_TAIL_11,
127277 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
127279 const t_ARG_01& arg_01,
127280 const t_ARG_02& arg_02,
127281 const t_ARG_03& arg_03,
127282 const t_ARG_04& arg_04,
127283 const t_ARG_05& arg_05,
127284 const t_ARG_06& arg_06,
127285 const t_ARG_07& arg_07,
127286 const t_ARG_08& arg_08,
127287 const t_ARG_09& arg_09,
127289: Variant_Base(
127290 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127291 arg_01,
127292 arg_02,
127293 arg_03,
127294 arg_04,
127295 arg_05,
127296 arg_06,
127297 arg_07,
127298 arg_08,
127299 arg_09)
127300{
127301}
127302#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
127303
127304#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
127305template <class t_HEAD, class t_TAIL_01,
127306 class t_TAIL_02,
127307 class t_TAIL_03,
127308 class t_TAIL_04,
127309 class t_TAIL_05,
127310 class t_TAIL_06,
127311 class t_TAIL_07,
127312 class t_TAIL_08,
127313 class t_TAIL_09,
127314 class t_TAIL_10,
127315 class t_TAIL_11,
127316 class t_TAIL_12>
127317template <class t_TYPE,
127318 class t_ARG_01,
127319 class t_ARG_02,
127320 class t_ARG_03,
127321 class t_ARG_04,
127322 class t_ARG_05,
127323 class t_ARG_06,
127324 class t_ARG_07,
127325 class t_ARG_08,
127326 class t_ARG_09>
127327inline
127328variant<t_HEAD, t_TAIL_01,
127329 t_TAIL_02,
127330 t_TAIL_03,
127331 t_TAIL_04,
127332 t_TAIL_05,
127333 t_TAIL_06,
127334 t_TAIL_07,
127335 t_TAIL_08,
127336 t_TAIL_09,
127337 t_TAIL_10,
127338 t_TAIL_11,
127339 t_TAIL_12,
127340 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
127342 const t_ARG_01& arg_01,
127343 const t_ARG_02& arg_02,
127344 const t_ARG_03& arg_03,
127345 const t_ARG_04& arg_04,
127346 const t_ARG_05& arg_05,
127347 const t_ARG_06& arg_06,
127348 const t_ARG_07& arg_07,
127349 const t_ARG_08& arg_08,
127350 const t_ARG_09& arg_09,
127352: Variant_Base(
127353 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127354 arg_01,
127355 arg_02,
127356 arg_03,
127357 arg_04,
127358 arg_05,
127359 arg_06,
127360 arg_07,
127361 arg_08,
127362 arg_09)
127363{
127364}
127365#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
127366
127367#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
127368template <class t_HEAD, class t_TAIL_01,
127369 class t_TAIL_02,
127370 class t_TAIL_03,
127371 class t_TAIL_04,
127372 class t_TAIL_05,
127373 class t_TAIL_06,
127374 class t_TAIL_07,
127375 class t_TAIL_08,
127376 class t_TAIL_09,
127377 class t_TAIL_10,
127378 class t_TAIL_11,
127379 class t_TAIL_12,
127380 class t_TAIL_13>
127381template <class t_TYPE,
127382 class t_ARG_01,
127383 class t_ARG_02,
127384 class t_ARG_03,
127385 class t_ARG_04,
127386 class t_ARG_05,
127387 class t_ARG_06,
127388 class t_ARG_07,
127389 class t_ARG_08,
127390 class t_ARG_09>
127391inline
127392variant<t_HEAD, t_TAIL_01,
127393 t_TAIL_02,
127394 t_TAIL_03,
127395 t_TAIL_04,
127396 t_TAIL_05,
127397 t_TAIL_06,
127398 t_TAIL_07,
127399 t_TAIL_08,
127400 t_TAIL_09,
127401 t_TAIL_10,
127402 t_TAIL_11,
127403 t_TAIL_12,
127404 t_TAIL_13,
127405 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
127407 const t_ARG_01& arg_01,
127408 const t_ARG_02& arg_02,
127409 const t_ARG_03& arg_03,
127410 const t_ARG_04& arg_04,
127411 const t_ARG_05& arg_05,
127412 const t_ARG_06& arg_06,
127413 const t_ARG_07& arg_07,
127414 const t_ARG_08& arg_08,
127415 const t_ARG_09& arg_09,
127417: Variant_Base(
127418 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127419 arg_01,
127420 arg_02,
127421 arg_03,
127422 arg_04,
127423 arg_05,
127424 arg_06,
127425 arg_07,
127426 arg_08,
127427 arg_09)
127428{
127429}
127430#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
127431
127432#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
127433template <class t_HEAD, class t_TAIL_01,
127434 class t_TAIL_02,
127435 class t_TAIL_03,
127436 class t_TAIL_04,
127437 class t_TAIL_05,
127438 class t_TAIL_06,
127439 class t_TAIL_07,
127440 class t_TAIL_08,
127441 class t_TAIL_09,
127442 class t_TAIL_10,
127443 class t_TAIL_11,
127444 class t_TAIL_12,
127445 class t_TAIL_13,
127446 class t_TAIL_14>
127447template <class t_TYPE,
127448 class t_ARG_01,
127449 class t_ARG_02,
127450 class t_ARG_03,
127451 class t_ARG_04,
127452 class t_ARG_05,
127453 class t_ARG_06,
127454 class t_ARG_07,
127455 class t_ARG_08,
127456 class t_ARG_09>
127457inline
127458variant<t_HEAD, t_TAIL_01,
127459 t_TAIL_02,
127460 t_TAIL_03,
127461 t_TAIL_04,
127462 t_TAIL_05,
127463 t_TAIL_06,
127464 t_TAIL_07,
127465 t_TAIL_08,
127466 t_TAIL_09,
127467 t_TAIL_10,
127468 t_TAIL_11,
127469 t_TAIL_12,
127470 t_TAIL_13,
127471 t_TAIL_14,
127472 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
127474 const t_ARG_01& arg_01,
127475 const t_ARG_02& arg_02,
127476 const t_ARG_03& arg_03,
127477 const t_ARG_04& arg_04,
127478 const t_ARG_05& arg_05,
127479 const t_ARG_06& arg_06,
127480 const t_ARG_07& arg_07,
127481 const t_ARG_08& arg_08,
127482 const t_ARG_09& arg_09,
127484: Variant_Base(
127485 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127486 arg_01,
127487 arg_02,
127488 arg_03,
127489 arg_04,
127490 arg_05,
127491 arg_06,
127492 arg_07,
127493 arg_08,
127494 arg_09)
127495{
127496}
127497#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
127498
127499#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
127500template <class t_HEAD, class t_TAIL_01,
127501 class t_TAIL_02,
127502 class t_TAIL_03,
127503 class t_TAIL_04,
127504 class t_TAIL_05,
127505 class t_TAIL_06,
127506 class t_TAIL_07,
127507 class t_TAIL_08,
127508 class t_TAIL_09,
127509 class t_TAIL_10,
127510 class t_TAIL_11,
127511 class t_TAIL_12,
127512 class t_TAIL_13,
127513 class t_TAIL_14,
127514 class t_TAIL_15>
127515template <class t_TYPE,
127516 class t_ARG_01,
127517 class t_ARG_02,
127518 class t_ARG_03,
127519 class t_ARG_04,
127520 class t_ARG_05,
127521 class t_ARG_06,
127522 class t_ARG_07,
127523 class t_ARG_08,
127524 class t_ARG_09>
127525inline
127526variant<t_HEAD, t_TAIL_01,
127527 t_TAIL_02,
127528 t_TAIL_03,
127529 t_TAIL_04,
127530 t_TAIL_05,
127531 t_TAIL_06,
127532 t_TAIL_07,
127533 t_TAIL_08,
127534 t_TAIL_09,
127535 t_TAIL_10,
127536 t_TAIL_11,
127537 t_TAIL_12,
127538 t_TAIL_13,
127539 t_TAIL_14,
127540 t_TAIL_15,
127541 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
127543 const t_ARG_01& arg_01,
127544 const t_ARG_02& arg_02,
127545 const t_ARG_03& arg_03,
127546 const t_ARG_04& arg_04,
127547 const t_ARG_05& arg_05,
127548 const t_ARG_06& arg_06,
127549 const t_ARG_07& arg_07,
127550 const t_ARG_08& arg_08,
127551 const t_ARG_09& arg_09,
127553: Variant_Base(
127554 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127555 arg_01,
127556 arg_02,
127557 arg_03,
127558 arg_04,
127559 arg_05,
127560 arg_06,
127561 arg_07,
127562 arg_08,
127563 arg_09)
127564{
127565}
127566#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
127567
127568#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
127569template <class t_HEAD, class t_TAIL_01,
127570 class t_TAIL_02,
127571 class t_TAIL_03,
127572 class t_TAIL_04,
127573 class t_TAIL_05,
127574 class t_TAIL_06,
127575 class t_TAIL_07,
127576 class t_TAIL_08,
127577 class t_TAIL_09,
127578 class t_TAIL_10,
127579 class t_TAIL_11,
127580 class t_TAIL_12,
127581 class t_TAIL_13,
127582 class t_TAIL_14,
127583 class t_TAIL_15,
127584 class t_TAIL_16>
127585template <class t_TYPE,
127586 class t_ARG_01,
127587 class t_ARG_02,
127588 class t_ARG_03,
127589 class t_ARG_04,
127590 class t_ARG_05,
127591 class t_ARG_06,
127592 class t_ARG_07,
127593 class t_ARG_08,
127594 class t_ARG_09>
127595inline
127596variant<t_HEAD, t_TAIL_01,
127597 t_TAIL_02,
127598 t_TAIL_03,
127599 t_TAIL_04,
127600 t_TAIL_05,
127601 t_TAIL_06,
127602 t_TAIL_07,
127603 t_TAIL_08,
127604 t_TAIL_09,
127605 t_TAIL_10,
127606 t_TAIL_11,
127607 t_TAIL_12,
127608 t_TAIL_13,
127609 t_TAIL_14,
127610 t_TAIL_15,
127611 t_TAIL_16,
127612 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
127614 const t_ARG_01& arg_01,
127615 const t_ARG_02& arg_02,
127616 const t_ARG_03& arg_03,
127617 const t_ARG_04& arg_04,
127618 const t_ARG_05& arg_05,
127619 const t_ARG_06& arg_06,
127620 const t_ARG_07& arg_07,
127621 const t_ARG_08& arg_08,
127622 const t_ARG_09& arg_09,
127624: Variant_Base(
127625 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127626 arg_01,
127627 arg_02,
127628 arg_03,
127629 arg_04,
127630 arg_05,
127631 arg_06,
127632 arg_07,
127633 arg_08,
127634 arg_09)
127635{
127636}
127637#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
127638
127639#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
127640template <class t_HEAD, class t_TAIL_01,
127641 class t_TAIL_02,
127642 class t_TAIL_03,
127643 class t_TAIL_04,
127644 class t_TAIL_05,
127645 class t_TAIL_06,
127646 class t_TAIL_07,
127647 class t_TAIL_08,
127648 class t_TAIL_09,
127649 class t_TAIL_10,
127650 class t_TAIL_11,
127651 class t_TAIL_12,
127652 class t_TAIL_13,
127653 class t_TAIL_14,
127654 class t_TAIL_15,
127655 class t_TAIL_16,
127656 class t_TAIL_17>
127657template <class t_TYPE,
127658 class t_ARG_01,
127659 class t_ARG_02,
127660 class t_ARG_03,
127661 class t_ARG_04,
127662 class t_ARG_05,
127663 class t_ARG_06,
127664 class t_ARG_07,
127665 class t_ARG_08,
127666 class t_ARG_09>
127667inline
127668variant<t_HEAD, t_TAIL_01,
127669 t_TAIL_02,
127670 t_TAIL_03,
127671 t_TAIL_04,
127672 t_TAIL_05,
127673 t_TAIL_06,
127674 t_TAIL_07,
127675 t_TAIL_08,
127676 t_TAIL_09,
127677 t_TAIL_10,
127678 t_TAIL_11,
127679 t_TAIL_12,
127680 t_TAIL_13,
127681 t_TAIL_14,
127682 t_TAIL_15,
127683 t_TAIL_16,
127684 t_TAIL_17,
127685 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
127687 const t_ARG_01& arg_01,
127688 const t_ARG_02& arg_02,
127689 const t_ARG_03& arg_03,
127690 const t_ARG_04& arg_04,
127691 const t_ARG_05& arg_05,
127692 const t_ARG_06& arg_06,
127693 const t_ARG_07& arg_07,
127694 const t_ARG_08& arg_08,
127695 const t_ARG_09& arg_09,
127697: Variant_Base(
127698 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127699 arg_01,
127700 arg_02,
127701 arg_03,
127702 arg_04,
127703 arg_05,
127704 arg_06,
127705 arg_07,
127706 arg_08,
127707 arg_09)
127708{
127709}
127710#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
127711
127712#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
127713template <class t_HEAD, class t_TAIL_01,
127714 class t_TAIL_02,
127715 class t_TAIL_03,
127716 class t_TAIL_04,
127717 class t_TAIL_05,
127718 class t_TAIL_06,
127719 class t_TAIL_07,
127720 class t_TAIL_08,
127721 class t_TAIL_09,
127722 class t_TAIL_10,
127723 class t_TAIL_11,
127724 class t_TAIL_12,
127725 class t_TAIL_13,
127726 class t_TAIL_14,
127727 class t_TAIL_15,
127728 class t_TAIL_16,
127729 class t_TAIL_17,
127730 class t_TAIL_18>
127731template <class t_TYPE,
127732 class t_ARG_01,
127733 class t_ARG_02,
127734 class t_ARG_03,
127735 class t_ARG_04,
127736 class t_ARG_05,
127737 class t_ARG_06,
127738 class t_ARG_07,
127739 class t_ARG_08,
127740 class t_ARG_09>
127741inline
127742variant<t_HEAD, t_TAIL_01,
127743 t_TAIL_02,
127744 t_TAIL_03,
127745 t_TAIL_04,
127746 t_TAIL_05,
127747 t_TAIL_06,
127748 t_TAIL_07,
127749 t_TAIL_08,
127750 t_TAIL_09,
127751 t_TAIL_10,
127752 t_TAIL_11,
127753 t_TAIL_12,
127754 t_TAIL_13,
127755 t_TAIL_14,
127756 t_TAIL_15,
127757 t_TAIL_16,
127758 t_TAIL_17,
127759 t_TAIL_18,
127760 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
127762 const t_ARG_01& arg_01,
127763 const t_ARG_02& arg_02,
127764 const t_ARG_03& arg_03,
127765 const t_ARG_04& arg_04,
127766 const t_ARG_05& arg_05,
127767 const t_ARG_06& arg_06,
127768 const t_ARG_07& arg_07,
127769 const t_ARG_08& arg_08,
127770 const t_ARG_09& arg_09,
127772: Variant_Base(
127773 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127774 arg_01,
127775 arg_02,
127776 arg_03,
127777 arg_04,
127778 arg_05,
127779 arg_06,
127780 arg_07,
127781 arg_08,
127782 arg_09)
127783{
127784}
127785#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
127786
127787
127788#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
127789template <class t_HEAD>
127790template <class t_TYPE,
127791 class t_ARG_01,
127792 class t_ARG_02,
127793 class t_ARG_03,
127794 class t_ARG_04,
127795 class t_ARG_05,
127796 class t_ARG_06,
127797 class t_ARG_07,
127798 class t_ARG_08,
127799 class t_ARG_09,
127800 class t_ARG_10>
127801inline
127802variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
127804 const t_ARG_01& arg_01,
127805 const t_ARG_02& arg_02,
127806 const t_ARG_03& arg_03,
127807 const t_ARG_04& arg_04,
127808 const t_ARG_05& arg_05,
127809 const t_ARG_06& arg_06,
127810 const t_ARG_07& arg_07,
127811 const t_ARG_08& arg_08,
127812 const t_ARG_09& arg_09,
127813 const t_ARG_10& arg_10,
127815: Variant_Base(
127816 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127817 arg_01,
127818 arg_02,
127819 arg_03,
127820 arg_04,
127821 arg_05,
127822 arg_06,
127823 arg_07,
127824 arg_08,
127825 arg_09,
127826 arg_10)
127827{
127828}
127829#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
127830
127831#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
127832template <class t_HEAD, class t_TAIL_01>
127833template <class t_TYPE,
127834 class t_ARG_01,
127835 class t_ARG_02,
127836 class t_ARG_03,
127837 class t_ARG_04,
127838 class t_ARG_05,
127839 class t_ARG_06,
127840 class t_ARG_07,
127841 class t_ARG_08,
127842 class t_ARG_09,
127843 class t_ARG_10>
127844inline
127845variant<t_HEAD, t_TAIL_01,
127846 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
127848 const t_ARG_01& arg_01,
127849 const t_ARG_02& arg_02,
127850 const t_ARG_03& arg_03,
127851 const t_ARG_04& arg_04,
127852 const t_ARG_05& arg_05,
127853 const t_ARG_06& arg_06,
127854 const t_ARG_07& arg_07,
127855 const t_ARG_08& arg_08,
127856 const t_ARG_09& arg_09,
127857 const t_ARG_10& arg_10,
127859: Variant_Base(
127860 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127861 arg_01,
127862 arg_02,
127863 arg_03,
127864 arg_04,
127865 arg_05,
127866 arg_06,
127867 arg_07,
127868 arg_08,
127869 arg_09,
127870 arg_10)
127871{
127872}
127873#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
127874
127875#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
127876template <class t_HEAD, class t_TAIL_01,
127877 class t_TAIL_02>
127878template <class t_TYPE,
127879 class t_ARG_01,
127880 class t_ARG_02,
127881 class t_ARG_03,
127882 class t_ARG_04,
127883 class t_ARG_05,
127884 class t_ARG_06,
127885 class t_ARG_07,
127886 class t_ARG_08,
127887 class t_ARG_09,
127888 class t_ARG_10>
127889inline
127890variant<t_HEAD, t_TAIL_01,
127891 t_TAIL_02,
127892 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
127894 const t_ARG_01& arg_01,
127895 const t_ARG_02& arg_02,
127896 const t_ARG_03& arg_03,
127897 const t_ARG_04& arg_04,
127898 const t_ARG_05& arg_05,
127899 const t_ARG_06& arg_06,
127900 const t_ARG_07& arg_07,
127901 const t_ARG_08& arg_08,
127902 const t_ARG_09& arg_09,
127903 const t_ARG_10& arg_10,
127905: Variant_Base(
127906 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127907 arg_01,
127908 arg_02,
127909 arg_03,
127910 arg_04,
127911 arg_05,
127912 arg_06,
127913 arg_07,
127914 arg_08,
127915 arg_09,
127916 arg_10)
127917{
127918}
127919#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
127920
127921#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
127922template <class t_HEAD, class t_TAIL_01,
127923 class t_TAIL_02,
127924 class t_TAIL_03>
127925template <class t_TYPE,
127926 class t_ARG_01,
127927 class t_ARG_02,
127928 class t_ARG_03,
127929 class t_ARG_04,
127930 class t_ARG_05,
127931 class t_ARG_06,
127932 class t_ARG_07,
127933 class t_ARG_08,
127934 class t_ARG_09,
127935 class t_ARG_10>
127936inline
127937variant<t_HEAD, t_TAIL_01,
127938 t_TAIL_02,
127939 t_TAIL_03,
127940 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
127942 const t_ARG_01& arg_01,
127943 const t_ARG_02& arg_02,
127944 const t_ARG_03& arg_03,
127945 const t_ARG_04& arg_04,
127946 const t_ARG_05& arg_05,
127947 const t_ARG_06& arg_06,
127948 const t_ARG_07& arg_07,
127949 const t_ARG_08& arg_08,
127950 const t_ARG_09& arg_09,
127951 const t_ARG_10& arg_10,
127953: Variant_Base(
127954 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
127955 arg_01,
127956 arg_02,
127957 arg_03,
127958 arg_04,
127959 arg_05,
127960 arg_06,
127961 arg_07,
127962 arg_08,
127963 arg_09,
127964 arg_10)
127965{
127966}
127967#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
127968
127969#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
127970template <class t_HEAD, class t_TAIL_01,
127971 class t_TAIL_02,
127972 class t_TAIL_03,
127973 class t_TAIL_04>
127974template <class t_TYPE,
127975 class t_ARG_01,
127976 class t_ARG_02,
127977 class t_ARG_03,
127978 class t_ARG_04,
127979 class t_ARG_05,
127980 class t_ARG_06,
127981 class t_ARG_07,
127982 class t_ARG_08,
127983 class t_ARG_09,
127984 class t_ARG_10>
127985inline
127986variant<t_HEAD, t_TAIL_01,
127987 t_TAIL_02,
127988 t_TAIL_03,
127989 t_TAIL_04,
127990 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
127992 const t_ARG_01& arg_01,
127993 const t_ARG_02& arg_02,
127994 const t_ARG_03& arg_03,
127995 const t_ARG_04& arg_04,
127996 const t_ARG_05& arg_05,
127997 const t_ARG_06& arg_06,
127998 const t_ARG_07& arg_07,
127999 const t_ARG_08& arg_08,
128000 const t_ARG_09& arg_09,
128001 const t_ARG_10& arg_10,
128003: Variant_Base(
128004 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128005 arg_01,
128006 arg_02,
128007 arg_03,
128008 arg_04,
128009 arg_05,
128010 arg_06,
128011 arg_07,
128012 arg_08,
128013 arg_09,
128014 arg_10)
128015{
128016}
128017#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
128018
128019#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
128020template <class t_HEAD, class t_TAIL_01,
128021 class t_TAIL_02,
128022 class t_TAIL_03,
128023 class t_TAIL_04,
128024 class t_TAIL_05>
128025template <class t_TYPE,
128026 class t_ARG_01,
128027 class t_ARG_02,
128028 class t_ARG_03,
128029 class t_ARG_04,
128030 class t_ARG_05,
128031 class t_ARG_06,
128032 class t_ARG_07,
128033 class t_ARG_08,
128034 class t_ARG_09,
128035 class t_ARG_10>
128036inline
128037variant<t_HEAD, t_TAIL_01,
128038 t_TAIL_02,
128039 t_TAIL_03,
128040 t_TAIL_04,
128041 t_TAIL_05,
128042 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
128044 const t_ARG_01& arg_01,
128045 const t_ARG_02& arg_02,
128046 const t_ARG_03& arg_03,
128047 const t_ARG_04& arg_04,
128048 const t_ARG_05& arg_05,
128049 const t_ARG_06& arg_06,
128050 const t_ARG_07& arg_07,
128051 const t_ARG_08& arg_08,
128052 const t_ARG_09& arg_09,
128053 const t_ARG_10& arg_10,
128055: Variant_Base(
128056 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128057 arg_01,
128058 arg_02,
128059 arg_03,
128060 arg_04,
128061 arg_05,
128062 arg_06,
128063 arg_07,
128064 arg_08,
128065 arg_09,
128066 arg_10)
128067{
128068}
128069#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
128070
128071#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
128072template <class t_HEAD, class t_TAIL_01,
128073 class t_TAIL_02,
128074 class t_TAIL_03,
128075 class t_TAIL_04,
128076 class t_TAIL_05,
128077 class t_TAIL_06>
128078template <class t_TYPE,
128079 class t_ARG_01,
128080 class t_ARG_02,
128081 class t_ARG_03,
128082 class t_ARG_04,
128083 class t_ARG_05,
128084 class t_ARG_06,
128085 class t_ARG_07,
128086 class t_ARG_08,
128087 class t_ARG_09,
128088 class t_ARG_10>
128089inline
128090variant<t_HEAD, t_TAIL_01,
128091 t_TAIL_02,
128092 t_TAIL_03,
128093 t_TAIL_04,
128094 t_TAIL_05,
128095 t_TAIL_06,
128096 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
128098 const t_ARG_01& arg_01,
128099 const t_ARG_02& arg_02,
128100 const t_ARG_03& arg_03,
128101 const t_ARG_04& arg_04,
128102 const t_ARG_05& arg_05,
128103 const t_ARG_06& arg_06,
128104 const t_ARG_07& arg_07,
128105 const t_ARG_08& arg_08,
128106 const t_ARG_09& arg_09,
128107 const t_ARG_10& arg_10,
128109: Variant_Base(
128110 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128111 arg_01,
128112 arg_02,
128113 arg_03,
128114 arg_04,
128115 arg_05,
128116 arg_06,
128117 arg_07,
128118 arg_08,
128119 arg_09,
128120 arg_10)
128121{
128122}
128123#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
128124
128125#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
128126template <class t_HEAD, class t_TAIL_01,
128127 class t_TAIL_02,
128128 class t_TAIL_03,
128129 class t_TAIL_04,
128130 class t_TAIL_05,
128131 class t_TAIL_06,
128132 class t_TAIL_07>
128133template <class t_TYPE,
128134 class t_ARG_01,
128135 class t_ARG_02,
128136 class t_ARG_03,
128137 class t_ARG_04,
128138 class t_ARG_05,
128139 class t_ARG_06,
128140 class t_ARG_07,
128141 class t_ARG_08,
128142 class t_ARG_09,
128143 class t_ARG_10>
128144inline
128145variant<t_HEAD, t_TAIL_01,
128146 t_TAIL_02,
128147 t_TAIL_03,
128148 t_TAIL_04,
128149 t_TAIL_05,
128150 t_TAIL_06,
128151 t_TAIL_07,
128152 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
128154 const t_ARG_01& arg_01,
128155 const t_ARG_02& arg_02,
128156 const t_ARG_03& arg_03,
128157 const t_ARG_04& arg_04,
128158 const t_ARG_05& arg_05,
128159 const t_ARG_06& arg_06,
128160 const t_ARG_07& arg_07,
128161 const t_ARG_08& arg_08,
128162 const t_ARG_09& arg_09,
128163 const t_ARG_10& arg_10,
128165: Variant_Base(
128166 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128167 arg_01,
128168 arg_02,
128169 arg_03,
128170 arg_04,
128171 arg_05,
128172 arg_06,
128173 arg_07,
128174 arg_08,
128175 arg_09,
128176 arg_10)
128177{
128178}
128179#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
128180
128181#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
128182template <class t_HEAD, class t_TAIL_01,
128183 class t_TAIL_02,
128184 class t_TAIL_03,
128185 class t_TAIL_04,
128186 class t_TAIL_05,
128187 class t_TAIL_06,
128188 class t_TAIL_07,
128189 class t_TAIL_08>
128190template <class t_TYPE,
128191 class t_ARG_01,
128192 class t_ARG_02,
128193 class t_ARG_03,
128194 class t_ARG_04,
128195 class t_ARG_05,
128196 class t_ARG_06,
128197 class t_ARG_07,
128198 class t_ARG_08,
128199 class t_ARG_09,
128200 class t_ARG_10>
128201inline
128202variant<t_HEAD, t_TAIL_01,
128203 t_TAIL_02,
128204 t_TAIL_03,
128205 t_TAIL_04,
128206 t_TAIL_05,
128207 t_TAIL_06,
128208 t_TAIL_07,
128209 t_TAIL_08,
128210 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
128212 const t_ARG_01& arg_01,
128213 const t_ARG_02& arg_02,
128214 const t_ARG_03& arg_03,
128215 const t_ARG_04& arg_04,
128216 const t_ARG_05& arg_05,
128217 const t_ARG_06& arg_06,
128218 const t_ARG_07& arg_07,
128219 const t_ARG_08& arg_08,
128220 const t_ARG_09& arg_09,
128221 const t_ARG_10& arg_10,
128223: Variant_Base(
128224 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128225 arg_01,
128226 arg_02,
128227 arg_03,
128228 arg_04,
128229 arg_05,
128230 arg_06,
128231 arg_07,
128232 arg_08,
128233 arg_09,
128234 arg_10)
128235{
128236}
128237#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
128238
128239#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
128240template <class t_HEAD, class t_TAIL_01,
128241 class t_TAIL_02,
128242 class t_TAIL_03,
128243 class t_TAIL_04,
128244 class t_TAIL_05,
128245 class t_TAIL_06,
128246 class t_TAIL_07,
128247 class t_TAIL_08,
128248 class t_TAIL_09>
128249template <class t_TYPE,
128250 class t_ARG_01,
128251 class t_ARG_02,
128252 class t_ARG_03,
128253 class t_ARG_04,
128254 class t_ARG_05,
128255 class t_ARG_06,
128256 class t_ARG_07,
128257 class t_ARG_08,
128258 class t_ARG_09,
128259 class t_ARG_10>
128260inline
128261variant<t_HEAD, t_TAIL_01,
128262 t_TAIL_02,
128263 t_TAIL_03,
128264 t_TAIL_04,
128265 t_TAIL_05,
128266 t_TAIL_06,
128267 t_TAIL_07,
128268 t_TAIL_08,
128269 t_TAIL_09,
128270 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
128272 const t_ARG_01& arg_01,
128273 const t_ARG_02& arg_02,
128274 const t_ARG_03& arg_03,
128275 const t_ARG_04& arg_04,
128276 const t_ARG_05& arg_05,
128277 const t_ARG_06& arg_06,
128278 const t_ARG_07& arg_07,
128279 const t_ARG_08& arg_08,
128280 const t_ARG_09& arg_09,
128281 const t_ARG_10& arg_10,
128283: Variant_Base(
128284 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128285 arg_01,
128286 arg_02,
128287 arg_03,
128288 arg_04,
128289 arg_05,
128290 arg_06,
128291 arg_07,
128292 arg_08,
128293 arg_09,
128294 arg_10)
128295{
128296}
128297#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
128298
128299#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
128300template <class t_HEAD, class t_TAIL_01,
128301 class t_TAIL_02,
128302 class t_TAIL_03,
128303 class t_TAIL_04,
128304 class t_TAIL_05,
128305 class t_TAIL_06,
128306 class t_TAIL_07,
128307 class t_TAIL_08,
128308 class t_TAIL_09,
128309 class t_TAIL_10>
128310template <class t_TYPE,
128311 class t_ARG_01,
128312 class t_ARG_02,
128313 class t_ARG_03,
128314 class t_ARG_04,
128315 class t_ARG_05,
128316 class t_ARG_06,
128317 class t_ARG_07,
128318 class t_ARG_08,
128319 class t_ARG_09,
128320 class t_ARG_10>
128321inline
128322variant<t_HEAD, t_TAIL_01,
128323 t_TAIL_02,
128324 t_TAIL_03,
128325 t_TAIL_04,
128326 t_TAIL_05,
128327 t_TAIL_06,
128328 t_TAIL_07,
128329 t_TAIL_08,
128330 t_TAIL_09,
128331 t_TAIL_10,
128332 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
128334 const t_ARG_01& arg_01,
128335 const t_ARG_02& arg_02,
128336 const t_ARG_03& arg_03,
128337 const t_ARG_04& arg_04,
128338 const t_ARG_05& arg_05,
128339 const t_ARG_06& arg_06,
128340 const t_ARG_07& arg_07,
128341 const t_ARG_08& arg_08,
128342 const t_ARG_09& arg_09,
128343 const t_ARG_10& arg_10,
128345: Variant_Base(
128346 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128347 arg_01,
128348 arg_02,
128349 arg_03,
128350 arg_04,
128351 arg_05,
128352 arg_06,
128353 arg_07,
128354 arg_08,
128355 arg_09,
128356 arg_10)
128357{
128358}
128359#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
128360
128361#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
128362template <class t_HEAD, class t_TAIL_01,
128363 class t_TAIL_02,
128364 class t_TAIL_03,
128365 class t_TAIL_04,
128366 class t_TAIL_05,
128367 class t_TAIL_06,
128368 class t_TAIL_07,
128369 class t_TAIL_08,
128370 class t_TAIL_09,
128371 class t_TAIL_10,
128372 class t_TAIL_11>
128373template <class t_TYPE,
128374 class t_ARG_01,
128375 class t_ARG_02,
128376 class t_ARG_03,
128377 class t_ARG_04,
128378 class t_ARG_05,
128379 class t_ARG_06,
128380 class t_ARG_07,
128381 class t_ARG_08,
128382 class t_ARG_09,
128383 class t_ARG_10>
128384inline
128385variant<t_HEAD, t_TAIL_01,
128386 t_TAIL_02,
128387 t_TAIL_03,
128388 t_TAIL_04,
128389 t_TAIL_05,
128390 t_TAIL_06,
128391 t_TAIL_07,
128392 t_TAIL_08,
128393 t_TAIL_09,
128394 t_TAIL_10,
128395 t_TAIL_11,
128396 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
128398 const t_ARG_01& arg_01,
128399 const t_ARG_02& arg_02,
128400 const t_ARG_03& arg_03,
128401 const t_ARG_04& arg_04,
128402 const t_ARG_05& arg_05,
128403 const t_ARG_06& arg_06,
128404 const t_ARG_07& arg_07,
128405 const t_ARG_08& arg_08,
128406 const t_ARG_09& arg_09,
128407 const t_ARG_10& arg_10,
128409: Variant_Base(
128410 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128411 arg_01,
128412 arg_02,
128413 arg_03,
128414 arg_04,
128415 arg_05,
128416 arg_06,
128417 arg_07,
128418 arg_08,
128419 arg_09,
128420 arg_10)
128421{
128422}
128423#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
128424
128425#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
128426template <class t_HEAD, class t_TAIL_01,
128427 class t_TAIL_02,
128428 class t_TAIL_03,
128429 class t_TAIL_04,
128430 class t_TAIL_05,
128431 class t_TAIL_06,
128432 class t_TAIL_07,
128433 class t_TAIL_08,
128434 class t_TAIL_09,
128435 class t_TAIL_10,
128436 class t_TAIL_11,
128437 class t_TAIL_12>
128438template <class t_TYPE,
128439 class t_ARG_01,
128440 class t_ARG_02,
128441 class t_ARG_03,
128442 class t_ARG_04,
128443 class t_ARG_05,
128444 class t_ARG_06,
128445 class t_ARG_07,
128446 class t_ARG_08,
128447 class t_ARG_09,
128448 class t_ARG_10>
128449inline
128450variant<t_HEAD, t_TAIL_01,
128451 t_TAIL_02,
128452 t_TAIL_03,
128453 t_TAIL_04,
128454 t_TAIL_05,
128455 t_TAIL_06,
128456 t_TAIL_07,
128457 t_TAIL_08,
128458 t_TAIL_09,
128459 t_TAIL_10,
128460 t_TAIL_11,
128461 t_TAIL_12,
128462 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
128464 const t_ARG_01& arg_01,
128465 const t_ARG_02& arg_02,
128466 const t_ARG_03& arg_03,
128467 const t_ARG_04& arg_04,
128468 const t_ARG_05& arg_05,
128469 const t_ARG_06& arg_06,
128470 const t_ARG_07& arg_07,
128471 const t_ARG_08& arg_08,
128472 const t_ARG_09& arg_09,
128473 const t_ARG_10& arg_10,
128475: Variant_Base(
128476 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128477 arg_01,
128478 arg_02,
128479 arg_03,
128480 arg_04,
128481 arg_05,
128482 arg_06,
128483 arg_07,
128484 arg_08,
128485 arg_09,
128486 arg_10)
128487{
128488}
128489#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
128490
128491#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
128492template <class t_HEAD, class t_TAIL_01,
128493 class t_TAIL_02,
128494 class t_TAIL_03,
128495 class t_TAIL_04,
128496 class t_TAIL_05,
128497 class t_TAIL_06,
128498 class t_TAIL_07,
128499 class t_TAIL_08,
128500 class t_TAIL_09,
128501 class t_TAIL_10,
128502 class t_TAIL_11,
128503 class t_TAIL_12,
128504 class t_TAIL_13>
128505template <class t_TYPE,
128506 class t_ARG_01,
128507 class t_ARG_02,
128508 class t_ARG_03,
128509 class t_ARG_04,
128510 class t_ARG_05,
128511 class t_ARG_06,
128512 class t_ARG_07,
128513 class t_ARG_08,
128514 class t_ARG_09,
128515 class t_ARG_10>
128516inline
128517variant<t_HEAD, t_TAIL_01,
128518 t_TAIL_02,
128519 t_TAIL_03,
128520 t_TAIL_04,
128521 t_TAIL_05,
128522 t_TAIL_06,
128523 t_TAIL_07,
128524 t_TAIL_08,
128525 t_TAIL_09,
128526 t_TAIL_10,
128527 t_TAIL_11,
128528 t_TAIL_12,
128529 t_TAIL_13,
128530 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
128532 const t_ARG_01& arg_01,
128533 const t_ARG_02& arg_02,
128534 const t_ARG_03& arg_03,
128535 const t_ARG_04& arg_04,
128536 const t_ARG_05& arg_05,
128537 const t_ARG_06& arg_06,
128538 const t_ARG_07& arg_07,
128539 const t_ARG_08& arg_08,
128540 const t_ARG_09& arg_09,
128541 const t_ARG_10& arg_10,
128543: Variant_Base(
128544 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128545 arg_01,
128546 arg_02,
128547 arg_03,
128548 arg_04,
128549 arg_05,
128550 arg_06,
128551 arg_07,
128552 arg_08,
128553 arg_09,
128554 arg_10)
128555{
128556}
128557#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
128558
128559#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
128560template <class t_HEAD, class t_TAIL_01,
128561 class t_TAIL_02,
128562 class t_TAIL_03,
128563 class t_TAIL_04,
128564 class t_TAIL_05,
128565 class t_TAIL_06,
128566 class t_TAIL_07,
128567 class t_TAIL_08,
128568 class t_TAIL_09,
128569 class t_TAIL_10,
128570 class t_TAIL_11,
128571 class t_TAIL_12,
128572 class t_TAIL_13,
128573 class t_TAIL_14>
128574template <class t_TYPE,
128575 class t_ARG_01,
128576 class t_ARG_02,
128577 class t_ARG_03,
128578 class t_ARG_04,
128579 class t_ARG_05,
128580 class t_ARG_06,
128581 class t_ARG_07,
128582 class t_ARG_08,
128583 class t_ARG_09,
128584 class t_ARG_10>
128585inline
128586variant<t_HEAD, t_TAIL_01,
128587 t_TAIL_02,
128588 t_TAIL_03,
128589 t_TAIL_04,
128590 t_TAIL_05,
128591 t_TAIL_06,
128592 t_TAIL_07,
128593 t_TAIL_08,
128594 t_TAIL_09,
128595 t_TAIL_10,
128596 t_TAIL_11,
128597 t_TAIL_12,
128598 t_TAIL_13,
128599 t_TAIL_14,
128600 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
128602 const t_ARG_01& arg_01,
128603 const t_ARG_02& arg_02,
128604 const t_ARG_03& arg_03,
128605 const t_ARG_04& arg_04,
128606 const t_ARG_05& arg_05,
128607 const t_ARG_06& arg_06,
128608 const t_ARG_07& arg_07,
128609 const t_ARG_08& arg_08,
128610 const t_ARG_09& arg_09,
128611 const t_ARG_10& arg_10,
128613: Variant_Base(
128614 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128615 arg_01,
128616 arg_02,
128617 arg_03,
128618 arg_04,
128619 arg_05,
128620 arg_06,
128621 arg_07,
128622 arg_08,
128623 arg_09,
128624 arg_10)
128625{
128626}
128627#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
128628
128629#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
128630template <class t_HEAD, class t_TAIL_01,
128631 class t_TAIL_02,
128632 class t_TAIL_03,
128633 class t_TAIL_04,
128634 class t_TAIL_05,
128635 class t_TAIL_06,
128636 class t_TAIL_07,
128637 class t_TAIL_08,
128638 class t_TAIL_09,
128639 class t_TAIL_10,
128640 class t_TAIL_11,
128641 class t_TAIL_12,
128642 class t_TAIL_13,
128643 class t_TAIL_14,
128644 class t_TAIL_15>
128645template <class t_TYPE,
128646 class t_ARG_01,
128647 class t_ARG_02,
128648 class t_ARG_03,
128649 class t_ARG_04,
128650 class t_ARG_05,
128651 class t_ARG_06,
128652 class t_ARG_07,
128653 class t_ARG_08,
128654 class t_ARG_09,
128655 class t_ARG_10>
128656inline
128657variant<t_HEAD, t_TAIL_01,
128658 t_TAIL_02,
128659 t_TAIL_03,
128660 t_TAIL_04,
128661 t_TAIL_05,
128662 t_TAIL_06,
128663 t_TAIL_07,
128664 t_TAIL_08,
128665 t_TAIL_09,
128666 t_TAIL_10,
128667 t_TAIL_11,
128668 t_TAIL_12,
128669 t_TAIL_13,
128670 t_TAIL_14,
128671 t_TAIL_15,
128672 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
128674 const t_ARG_01& arg_01,
128675 const t_ARG_02& arg_02,
128676 const t_ARG_03& arg_03,
128677 const t_ARG_04& arg_04,
128678 const t_ARG_05& arg_05,
128679 const t_ARG_06& arg_06,
128680 const t_ARG_07& arg_07,
128681 const t_ARG_08& arg_08,
128682 const t_ARG_09& arg_09,
128683 const t_ARG_10& arg_10,
128685: Variant_Base(
128686 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128687 arg_01,
128688 arg_02,
128689 arg_03,
128690 arg_04,
128691 arg_05,
128692 arg_06,
128693 arg_07,
128694 arg_08,
128695 arg_09,
128696 arg_10)
128697{
128698}
128699#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
128700
128701#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
128702template <class t_HEAD, class t_TAIL_01,
128703 class t_TAIL_02,
128704 class t_TAIL_03,
128705 class t_TAIL_04,
128706 class t_TAIL_05,
128707 class t_TAIL_06,
128708 class t_TAIL_07,
128709 class t_TAIL_08,
128710 class t_TAIL_09,
128711 class t_TAIL_10,
128712 class t_TAIL_11,
128713 class t_TAIL_12,
128714 class t_TAIL_13,
128715 class t_TAIL_14,
128716 class t_TAIL_15,
128717 class t_TAIL_16>
128718template <class t_TYPE,
128719 class t_ARG_01,
128720 class t_ARG_02,
128721 class t_ARG_03,
128722 class t_ARG_04,
128723 class t_ARG_05,
128724 class t_ARG_06,
128725 class t_ARG_07,
128726 class t_ARG_08,
128727 class t_ARG_09,
128728 class t_ARG_10>
128729inline
128730variant<t_HEAD, t_TAIL_01,
128731 t_TAIL_02,
128732 t_TAIL_03,
128733 t_TAIL_04,
128734 t_TAIL_05,
128735 t_TAIL_06,
128736 t_TAIL_07,
128737 t_TAIL_08,
128738 t_TAIL_09,
128739 t_TAIL_10,
128740 t_TAIL_11,
128741 t_TAIL_12,
128742 t_TAIL_13,
128743 t_TAIL_14,
128744 t_TAIL_15,
128745 t_TAIL_16,
128746 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
128748 const t_ARG_01& arg_01,
128749 const t_ARG_02& arg_02,
128750 const t_ARG_03& arg_03,
128751 const t_ARG_04& arg_04,
128752 const t_ARG_05& arg_05,
128753 const t_ARG_06& arg_06,
128754 const t_ARG_07& arg_07,
128755 const t_ARG_08& arg_08,
128756 const t_ARG_09& arg_09,
128757 const t_ARG_10& arg_10,
128759: Variant_Base(
128760 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128761 arg_01,
128762 arg_02,
128763 arg_03,
128764 arg_04,
128765 arg_05,
128766 arg_06,
128767 arg_07,
128768 arg_08,
128769 arg_09,
128770 arg_10)
128771{
128772}
128773#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
128774
128775#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
128776template <class t_HEAD, class t_TAIL_01,
128777 class t_TAIL_02,
128778 class t_TAIL_03,
128779 class t_TAIL_04,
128780 class t_TAIL_05,
128781 class t_TAIL_06,
128782 class t_TAIL_07,
128783 class t_TAIL_08,
128784 class t_TAIL_09,
128785 class t_TAIL_10,
128786 class t_TAIL_11,
128787 class t_TAIL_12,
128788 class t_TAIL_13,
128789 class t_TAIL_14,
128790 class t_TAIL_15,
128791 class t_TAIL_16,
128792 class t_TAIL_17>
128793template <class t_TYPE,
128794 class t_ARG_01,
128795 class t_ARG_02,
128796 class t_ARG_03,
128797 class t_ARG_04,
128798 class t_ARG_05,
128799 class t_ARG_06,
128800 class t_ARG_07,
128801 class t_ARG_08,
128802 class t_ARG_09,
128803 class t_ARG_10>
128804inline
128805variant<t_HEAD, t_TAIL_01,
128806 t_TAIL_02,
128807 t_TAIL_03,
128808 t_TAIL_04,
128809 t_TAIL_05,
128810 t_TAIL_06,
128811 t_TAIL_07,
128812 t_TAIL_08,
128813 t_TAIL_09,
128814 t_TAIL_10,
128815 t_TAIL_11,
128816 t_TAIL_12,
128817 t_TAIL_13,
128818 t_TAIL_14,
128819 t_TAIL_15,
128820 t_TAIL_16,
128821 t_TAIL_17,
128822 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
128824 const t_ARG_01& arg_01,
128825 const t_ARG_02& arg_02,
128826 const t_ARG_03& arg_03,
128827 const t_ARG_04& arg_04,
128828 const t_ARG_05& arg_05,
128829 const t_ARG_06& arg_06,
128830 const t_ARG_07& arg_07,
128831 const t_ARG_08& arg_08,
128832 const t_ARG_09& arg_09,
128833 const t_ARG_10& arg_10,
128835: Variant_Base(
128836 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128837 arg_01,
128838 arg_02,
128839 arg_03,
128840 arg_04,
128841 arg_05,
128842 arg_06,
128843 arg_07,
128844 arg_08,
128845 arg_09,
128846 arg_10)
128847{
128848}
128849#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
128850
128851#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
128852template <class t_HEAD, class t_TAIL_01,
128853 class t_TAIL_02,
128854 class t_TAIL_03,
128855 class t_TAIL_04,
128856 class t_TAIL_05,
128857 class t_TAIL_06,
128858 class t_TAIL_07,
128859 class t_TAIL_08,
128860 class t_TAIL_09,
128861 class t_TAIL_10,
128862 class t_TAIL_11,
128863 class t_TAIL_12,
128864 class t_TAIL_13,
128865 class t_TAIL_14,
128866 class t_TAIL_15,
128867 class t_TAIL_16,
128868 class t_TAIL_17,
128869 class t_TAIL_18>
128870template <class t_TYPE,
128871 class t_ARG_01,
128872 class t_ARG_02,
128873 class t_ARG_03,
128874 class t_ARG_04,
128875 class t_ARG_05,
128876 class t_ARG_06,
128877 class t_ARG_07,
128878 class t_ARG_08,
128879 class t_ARG_09,
128880 class t_ARG_10>
128881inline
128882variant<t_HEAD, t_TAIL_01,
128883 t_TAIL_02,
128884 t_TAIL_03,
128885 t_TAIL_04,
128886 t_TAIL_05,
128887 t_TAIL_06,
128888 t_TAIL_07,
128889 t_TAIL_08,
128890 t_TAIL_09,
128891 t_TAIL_10,
128892 t_TAIL_11,
128893 t_TAIL_12,
128894 t_TAIL_13,
128895 t_TAIL_14,
128896 t_TAIL_15,
128897 t_TAIL_16,
128898 t_TAIL_17,
128899 t_TAIL_18,
128900 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
128902 const t_ARG_01& arg_01,
128903 const t_ARG_02& arg_02,
128904 const t_ARG_03& arg_03,
128905 const t_ARG_04& arg_04,
128906 const t_ARG_05& arg_05,
128907 const t_ARG_06& arg_06,
128908 const t_ARG_07& arg_07,
128909 const t_ARG_08& arg_08,
128910 const t_ARG_09& arg_09,
128911 const t_ARG_10& arg_10,
128913: Variant_Base(
128914 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
128915 arg_01,
128916 arg_02,
128917 arg_03,
128918 arg_04,
128919 arg_05,
128920 arg_06,
128921 arg_07,
128922 arg_08,
128923 arg_09,
128924 arg_10)
128925{
128926}
128927#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
128928
128929
128930#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
128931template <class t_HEAD>
128932template <size_t t_INDEX>
128933inline
128934variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
128936: Variant_Base(bsl::in_place_index_t<t_INDEX>())
128937{
128938}
128939#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
128940
128941#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
128942template <class t_HEAD, class t_TAIL_01>
128943template <size_t t_INDEX>
128944inline
128945variant<t_HEAD, t_TAIL_01,
128946 BSLS_COMPILERFEATURES_FILLT(17)
128948: Variant_Base(bsl::in_place_index_t<t_INDEX>())
128949{
128950}
128951#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
128952
128953#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
128954template <class t_HEAD, class t_TAIL_01,
128955 class t_TAIL_02>
128956template <size_t t_INDEX>
128957inline
128958variant<t_HEAD, t_TAIL_01,
128959 t_TAIL_02,
128960 BSLS_COMPILERFEATURES_FILLT(16)
128962: Variant_Base(bsl::in_place_index_t<t_INDEX>())
128963{
128964}
128965#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
128966
128967#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
128968template <class t_HEAD, class t_TAIL_01,
128969 class t_TAIL_02,
128970 class t_TAIL_03>
128971template <size_t t_INDEX>
128972inline
128973variant<t_HEAD, t_TAIL_01,
128974 t_TAIL_02,
128975 t_TAIL_03,
128976 BSLS_COMPILERFEATURES_FILLT(15)
128978: Variant_Base(bsl::in_place_index_t<t_INDEX>())
128979{
128980}
128981#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
128982
128983#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
128984template <class t_HEAD, class t_TAIL_01,
128985 class t_TAIL_02,
128986 class t_TAIL_03,
128987 class t_TAIL_04>
128988template <size_t t_INDEX>
128989inline
128990variant<t_HEAD, t_TAIL_01,
128991 t_TAIL_02,
128992 t_TAIL_03,
128993 t_TAIL_04,
128994 BSLS_COMPILERFEATURES_FILLT(14)
128996: Variant_Base(bsl::in_place_index_t<t_INDEX>())
128997{
128998}
128999#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
129000
129001#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
129002template <class t_HEAD, class t_TAIL_01,
129003 class t_TAIL_02,
129004 class t_TAIL_03,
129005 class t_TAIL_04,
129006 class t_TAIL_05>
129007template <size_t t_INDEX>
129008inline
129009variant<t_HEAD, t_TAIL_01,
129010 t_TAIL_02,
129011 t_TAIL_03,
129012 t_TAIL_04,
129013 t_TAIL_05,
129014 BSLS_COMPILERFEATURES_FILLT(13)
129016: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129017{
129018}
129019#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
129020
129021#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
129022template <class t_HEAD, class t_TAIL_01,
129023 class t_TAIL_02,
129024 class t_TAIL_03,
129025 class t_TAIL_04,
129026 class t_TAIL_05,
129027 class t_TAIL_06>
129028template <size_t t_INDEX>
129029inline
129030variant<t_HEAD, t_TAIL_01,
129031 t_TAIL_02,
129032 t_TAIL_03,
129033 t_TAIL_04,
129034 t_TAIL_05,
129035 t_TAIL_06,
129036 BSLS_COMPILERFEATURES_FILLT(12)
129038: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129039{
129040}
129041#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
129042
129043#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
129044template <class t_HEAD, class t_TAIL_01,
129045 class t_TAIL_02,
129046 class t_TAIL_03,
129047 class t_TAIL_04,
129048 class t_TAIL_05,
129049 class t_TAIL_06,
129050 class t_TAIL_07>
129051template <size_t t_INDEX>
129052inline
129053variant<t_HEAD, t_TAIL_01,
129054 t_TAIL_02,
129055 t_TAIL_03,
129056 t_TAIL_04,
129057 t_TAIL_05,
129058 t_TAIL_06,
129059 t_TAIL_07,
129060 BSLS_COMPILERFEATURES_FILLT(11)
129062: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129063{
129064}
129065#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
129066
129067#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
129068template <class t_HEAD, class t_TAIL_01,
129069 class t_TAIL_02,
129070 class t_TAIL_03,
129071 class t_TAIL_04,
129072 class t_TAIL_05,
129073 class t_TAIL_06,
129074 class t_TAIL_07,
129075 class t_TAIL_08>
129076template <size_t t_INDEX>
129077inline
129078variant<t_HEAD, t_TAIL_01,
129079 t_TAIL_02,
129080 t_TAIL_03,
129081 t_TAIL_04,
129082 t_TAIL_05,
129083 t_TAIL_06,
129084 t_TAIL_07,
129085 t_TAIL_08,
129086 BSLS_COMPILERFEATURES_FILLT(10)
129088: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129089{
129090}
129091#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
129092
129093#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
129094template <class t_HEAD, class t_TAIL_01,
129095 class t_TAIL_02,
129096 class t_TAIL_03,
129097 class t_TAIL_04,
129098 class t_TAIL_05,
129099 class t_TAIL_06,
129100 class t_TAIL_07,
129101 class t_TAIL_08,
129102 class t_TAIL_09>
129103template <size_t t_INDEX>
129104inline
129105variant<t_HEAD, t_TAIL_01,
129106 t_TAIL_02,
129107 t_TAIL_03,
129108 t_TAIL_04,
129109 t_TAIL_05,
129110 t_TAIL_06,
129111 t_TAIL_07,
129112 t_TAIL_08,
129113 t_TAIL_09,
129114 BSLS_COMPILERFEATURES_FILLT( 9)
129116: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129117{
129118}
129119#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
129120
129121#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
129122template <class t_HEAD, class t_TAIL_01,
129123 class t_TAIL_02,
129124 class t_TAIL_03,
129125 class t_TAIL_04,
129126 class t_TAIL_05,
129127 class t_TAIL_06,
129128 class t_TAIL_07,
129129 class t_TAIL_08,
129130 class t_TAIL_09,
129131 class t_TAIL_10>
129132template <size_t t_INDEX>
129133inline
129134variant<t_HEAD, t_TAIL_01,
129135 t_TAIL_02,
129136 t_TAIL_03,
129137 t_TAIL_04,
129138 t_TAIL_05,
129139 t_TAIL_06,
129140 t_TAIL_07,
129141 t_TAIL_08,
129142 t_TAIL_09,
129143 t_TAIL_10,
129144 BSLS_COMPILERFEATURES_FILLT( 8)
129146: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129147{
129148}
129149#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
129150
129151#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
129152template <class t_HEAD, class t_TAIL_01,
129153 class t_TAIL_02,
129154 class t_TAIL_03,
129155 class t_TAIL_04,
129156 class t_TAIL_05,
129157 class t_TAIL_06,
129158 class t_TAIL_07,
129159 class t_TAIL_08,
129160 class t_TAIL_09,
129161 class t_TAIL_10,
129162 class t_TAIL_11>
129163template <size_t t_INDEX>
129164inline
129165variant<t_HEAD, t_TAIL_01,
129166 t_TAIL_02,
129167 t_TAIL_03,
129168 t_TAIL_04,
129169 t_TAIL_05,
129170 t_TAIL_06,
129171 t_TAIL_07,
129172 t_TAIL_08,
129173 t_TAIL_09,
129174 t_TAIL_10,
129175 t_TAIL_11,
129176 BSLS_COMPILERFEATURES_FILLT( 7)
129178: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129179{
129180}
129181#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
129182
129183#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
129184template <class t_HEAD, class t_TAIL_01,
129185 class t_TAIL_02,
129186 class t_TAIL_03,
129187 class t_TAIL_04,
129188 class t_TAIL_05,
129189 class t_TAIL_06,
129190 class t_TAIL_07,
129191 class t_TAIL_08,
129192 class t_TAIL_09,
129193 class t_TAIL_10,
129194 class t_TAIL_11,
129195 class t_TAIL_12>
129196template <size_t t_INDEX>
129197inline
129198variant<t_HEAD, t_TAIL_01,
129199 t_TAIL_02,
129200 t_TAIL_03,
129201 t_TAIL_04,
129202 t_TAIL_05,
129203 t_TAIL_06,
129204 t_TAIL_07,
129205 t_TAIL_08,
129206 t_TAIL_09,
129207 t_TAIL_10,
129208 t_TAIL_11,
129209 t_TAIL_12,
129210 BSLS_COMPILERFEATURES_FILLT( 6)
129212: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129213{
129214}
129215#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
129216
129217#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
129218template <class t_HEAD, class t_TAIL_01,
129219 class t_TAIL_02,
129220 class t_TAIL_03,
129221 class t_TAIL_04,
129222 class t_TAIL_05,
129223 class t_TAIL_06,
129224 class t_TAIL_07,
129225 class t_TAIL_08,
129226 class t_TAIL_09,
129227 class t_TAIL_10,
129228 class t_TAIL_11,
129229 class t_TAIL_12,
129230 class t_TAIL_13>
129231template <size_t t_INDEX>
129232inline
129233variant<t_HEAD, t_TAIL_01,
129234 t_TAIL_02,
129235 t_TAIL_03,
129236 t_TAIL_04,
129237 t_TAIL_05,
129238 t_TAIL_06,
129239 t_TAIL_07,
129240 t_TAIL_08,
129241 t_TAIL_09,
129242 t_TAIL_10,
129243 t_TAIL_11,
129244 t_TAIL_12,
129245 t_TAIL_13,
129246 BSLS_COMPILERFEATURES_FILLT( 5)
129248: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129249{
129250}
129251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
129252
129253#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
129254template <class t_HEAD, class t_TAIL_01,
129255 class t_TAIL_02,
129256 class t_TAIL_03,
129257 class t_TAIL_04,
129258 class t_TAIL_05,
129259 class t_TAIL_06,
129260 class t_TAIL_07,
129261 class t_TAIL_08,
129262 class t_TAIL_09,
129263 class t_TAIL_10,
129264 class t_TAIL_11,
129265 class t_TAIL_12,
129266 class t_TAIL_13,
129267 class t_TAIL_14>
129268template <size_t t_INDEX>
129269inline
129270variant<t_HEAD, t_TAIL_01,
129271 t_TAIL_02,
129272 t_TAIL_03,
129273 t_TAIL_04,
129274 t_TAIL_05,
129275 t_TAIL_06,
129276 t_TAIL_07,
129277 t_TAIL_08,
129278 t_TAIL_09,
129279 t_TAIL_10,
129280 t_TAIL_11,
129281 t_TAIL_12,
129282 t_TAIL_13,
129283 t_TAIL_14,
129284 BSLS_COMPILERFEATURES_FILLT( 4)
129286: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129287{
129288}
129289#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
129290
129291#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
129292template <class t_HEAD, class t_TAIL_01,
129293 class t_TAIL_02,
129294 class t_TAIL_03,
129295 class t_TAIL_04,
129296 class t_TAIL_05,
129297 class t_TAIL_06,
129298 class t_TAIL_07,
129299 class t_TAIL_08,
129300 class t_TAIL_09,
129301 class t_TAIL_10,
129302 class t_TAIL_11,
129303 class t_TAIL_12,
129304 class t_TAIL_13,
129305 class t_TAIL_14,
129306 class t_TAIL_15>
129307template <size_t t_INDEX>
129308inline
129309variant<t_HEAD, t_TAIL_01,
129310 t_TAIL_02,
129311 t_TAIL_03,
129312 t_TAIL_04,
129313 t_TAIL_05,
129314 t_TAIL_06,
129315 t_TAIL_07,
129316 t_TAIL_08,
129317 t_TAIL_09,
129318 t_TAIL_10,
129319 t_TAIL_11,
129320 t_TAIL_12,
129321 t_TAIL_13,
129322 t_TAIL_14,
129323 t_TAIL_15,
129324 BSLS_COMPILERFEATURES_FILLT( 3)
129326: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129327{
129328}
129329#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
129330
129331#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
129332template <class t_HEAD, class t_TAIL_01,
129333 class t_TAIL_02,
129334 class t_TAIL_03,
129335 class t_TAIL_04,
129336 class t_TAIL_05,
129337 class t_TAIL_06,
129338 class t_TAIL_07,
129339 class t_TAIL_08,
129340 class t_TAIL_09,
129341 class t_TAIL_10,
129342 class t_TAIL_11,
129343 class t_TAIL_12,
129344 class t_TAIL_13,
129345 class t_TAIL_14,
129346 class t_TAIL_15,
129347 class t_TAIL_16>
129348template <size_t t_INDEX>
129349inline
129350variant<t_HEAD, t_TAIL_01,
129351 t_TAIL_02,
129352 t_TAIL_03,
129353 t_TAIL_04,
129354 t_TAIL_05,
129355 t_TAIL_06,
129356 t_TAIL_07,
129357 t_TAIL_08,
129358 t_TAIL_09,
129359 t_TAIL_10,
129360 t_TAIL_11,
129361 t_TAIL_12,
129362 t_TAIL_13,
129363 t_TAIL_14,
129364 t_TAIL_15,
129365 t_TAIL_16,
129366 BSLS_COMPILERFEATURES_FILLT( 2)
129368: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129369{
129370}
129371#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
129372
129373#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
129374template <class t_HEAD, class t_TAIL_01,
129375 class t_TAIL_02,
129376 class t_TAIL_03,
129377 class t_TAIL_04,
129378 class t_TAIL_05,
129379 class t_TAIL_06,
129380 class t_TAIL_07,
129381 class t_TAIL_08,
129382 class t_TAIL_09,
129383 class t_TAIL_10,
129384 class t_TAIL_11,
129385 class t_TAIL_12,
129386 class t_TAIL_13,
129387 class t_TAIL_14,
129388 class t_TAIL_15,
129389 class t_TAIL_16,
129390 class t_TAIL_17>
129391template <size_t t_INDEX>
129392inline
129393variant<t_HEAD, t_TAIL_01,
129394 t_TAIL_02,
129395 t_TAIL_03,
129396 t_TAIL_04,
129397 t_TAIL_05,
129398 t_TAIL_06,
129399 t_TAIL_07,
129400 t_TAIL_08,
129401 t_TAIL_09,
129402 t_TAIL_10,
129403 t_TAIL_11,
129404 t_TAIL_12,
129405 t_TAIL_13,
129406 t_TAIL_14,
129407 t_TAIL_15,
129408 t_TAIL_16,
129409 t_TAIL_17,
129410 BSLS_COMPILERFEATURES_FILLT( 1)
129412: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129413{
129414}
129415#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
129416
129417#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
129418template <class t_HEAD, class t_TAIL_01,
129419 class t_TAIL_02,
129420 class t_TAIL_03,
129421 class t_TAIL_04,
129422 class t_TAIL_05,
129423 class t_TAIL_06,
129424 class t_TAIL_07,
129425 class t_TAIL_08,
129426 class t_TAIL_09,
129427 class t_TAIL_10,
129428 class t_TAIL_11,
129429 class t_TAIL_12,
129430 class t_TAIL_13,
129431 class t_TAIL_14,
129432 class t_TAIL_15,
129433 class t_TAIL_16,
129434 class t_TAIL_17,
129435 class t_TAIL_18>
129436template <size_t t_INDEX>
129437inline
129438variant<t_HEAD, t_TAIL_01,
129439 t_TAIL_02,
129440 t_TAIL_03,
129441 t_TAIL_04,
129442 t_TAIL_05,
129443 t_TAIL_06,
129444 t_TAIL_07,
129445 t_TAIL_08,
129446 t_TAIL_09,
129447 t_TAIL_10,
129448 t_TAIL_11,
129449 t_TAIL_12,
129450 t_TAIL_13,
129451 t_TAIL_14,
129452 t_TAIL_15,
129453 t_TAIL_16,
129454 t_TAIL_17,
129455 t_TAIL_18,
129456 BSLS_COMPILERFEATURES_FILLT( 0)
129458: Variant_Base(bsl::in_place_index_t<t_INDEX>())
129459{
129460}
129461#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
129462
129463
129464#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
129465template <class t_HEAD>
129466template <size_t t_INDEX, class t_ARG_01>
129467inline
129468variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
129470 const t_ARG_01& arg_01)
129471: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129472{
129473}
129474#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
129475
129476#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
129477template <class t_HEAD, class t_TAIL_01>
129478template <size_t t_INDEX, class t_ARG_01>
129479inline
129480variant<t_HEAD, t_TAIL_01,
129481 BSLS_COMPILERFEATURES_FILLT(17)
129483 const t_ARG_01& arg_01)
129484: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129485{
129486}
129487#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
129488
129489#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
129490template <class t_HEAD, class t_TAIL_01,
129491 class t_TAIL_02>
129492template <size_t t_INDEX, class t_ARG_01>
129493inline
129494variant<t_HEAD, t_TAIL_01,
129495 t_TAIL_02,
129496 BSLS_COMPILERFEATURES_FILLT(16)
129498 const t_ARG_01& arg_01)
129499: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129500{
129501}
129502#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
129503
129504#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
129505template <class t_HEAD, class t_TAIL_01,
129506 class t_TAIL_02,
129507 class t_TAIL_03>
129508template <size_t t_INDEX, class t_ARG_01>
129509inline
129510variant<t_HEAD, t_TAIL_01,
129511 t_TAIL_02,
129512 t_TAIL_03,
129513 BSLS_COMPILERFEATURES_FILLT(15)
129515 const t_ARG_01& arg_01)
129516: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129517{
129518}
129519#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
129520
129521#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
129522template <class t_HEAD, class t_TAIL_01,
129523 class t_TAIL_02,
129524 class t_TAIL_03,
129525 class t_TAIL_04>
129526template <size_t t_INDEX, class t_ARG_01>
129527inline
129528variant<t_HEAD, t_TAIL_01,
129529 t_TAIL_02,
129530 t_TAIL_03,
129531 t_TAIL_04,
129532 BSLS_COMPILERFEATURES_FILLT(14)
129534 const t_ARG_01& arg_01)
129535: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129536{
129537}
129538#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
129539
129540#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
129541template <class t_HEAD, class t_TAIL_01,
129542 class t_TAIL_02,
129543 class t_TAIL_03,
129544 class t_TAIL_04,
129545 class t_TAIL_05>
129546template <size_t t_INDEX, class t_ARG_01>
129547inline
129548variant<t_HEAD, t_TAIL_01,
129549 t_TAIL_02,
129550 t_TAIL_03,
129551 t_TAIL_04,
129552 t_TAIL_05,
129553 BSLS_COMPILERFEATURES_FILLT(13)
129555 const t_ARG_01& arg_01)
129556: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129557{
129558}
129559#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
129560
129561#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
129562template <class t_HEAD, class t_TAIL_01,
129563 class t_TAIL_02,
129564 class t_TAIL_03,
129565 class t_TAIL_04,
129566 class t_TAIL_05,
129567 class t_TAIL_06>
129568template <size_t t_INDEX, class t_ARG_01>
129569inline
129570variant<t_HEAD, t_TAIL_01,
129571 t_TAIL_02,
129572 t_TAIL_03,
129573 t_TAIL_04,
129574 t_TAIL_05,
129575 t_TAIL_06,
129576 BSLS_COMPILERFEATURES_FILLT(12)
129578 const t_ARG_01& arg_01)
129579: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129580{
129581}
129582#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
129583
129584#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
129585template <class t_HEAD, class t_TAIL_01,
129586 class t_TAIL_02,
129587 class t_TAIL_03,
129588 class t_TAIL_04,
129589 class t_TAIL_05,
129590 class t_TAIL_06,
129591 class t_TAIL_07>
129592template <size_t t_INDEX, class t_ARG_01>
129593inline
129594variant<t_HEAD, t_TAIL_01,
129595 t_TAIL_02,
129596 t_TAIL_03,
129597 t_TAIL_04,
129598 t_TAIL_05,
129599 t_TAIL_06,
129600 t_TAIL_07,
129601 BSLS_COMPILERFEATURES_FILLT(11)
129603 const t_ARG_01& arg_01)
129604: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129605{
129606}
129607#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
129608
129609#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
129610template <class t_HEAD, class t_TAIL_01,
129611 class t_TAIL_02,
129612 class t_TAIL_03,
129613 class t_TAIL_04,
129614 class t_TAIL_05,
129615 class t_TAIL_06,
129616 class t_TAIL_07,
129617 class t_TAIL_08>
129618template <size_t t_INDEX, class t_ARG_01>
129619inline
129620variant<t_HEAD, t_TAIL_01,
129621 t_TAIL_02,
129622 t_TAIL_03,
129623 t_TAIL_04,
129624 t_TAIL_05,
129625 t_TAIL_06,
129626 t_TAIL_07,
129627 t_TAIL_08,
129628 BSLS_COMPILERFEATURES_FILLT(10)
129630 const t_ARG_01& arg_01)
129631: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129632{
129633}
129634#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
129635
129636#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
129637template <class t_HEAD, class t_TAIL_01,
129638 class t_TAIL_02,
129639 class t_TAIL_03,
129640 class t_TAIL_04,
129641 class t_TAIL_05,
129642 class t_TAIL_06,
129643 class t_TAIL_07,
129644 class t_TAIL_08,
129645 class t_TAIL_09>
129646template <size_t t_INDEX, class t_ARG_01>
129647inline
129648variant<t_HEAD, t_TAIL_01,
129649 t_TAIL_02,
129650 t_TAIL_03,
129651 t_TAIL_04,
129652 t_TAIL_05,
129653 t_TAIL_06,
129654 t_TAIL_07,
129655 t_TAIL_08,
129656 t_TAIL_09,
129657 BSLS_COMPILERFEATURES_FILLT( 9)
129659 const t_ARG_01& arg_01)
129660: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129661{
129662}
129663#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
129664
129665#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
129666template <class t_HEAD, class t_TAIL_01,
129667 class t_TAIL_02,
129668 class t_TAIL_03,
129669 class t_TAIL_04,
129670 class t_TAIL_05,
129671 class t_TAIL_06,
129672 class t_TAIL_07,
129673 class t_TAIL_08,
129674 class t_TAIL_09,
129675 class t_TAIL_10>
129676template <size_t t_INDEX, class t_ARG_01>
129677inline
129678variant<t_HEAD, t_TAIL_01,
129679 t_TAIL_02,
129680 t_TAIL_03,
129681 t_TAIL_04,
129682 t_TAIL_05,
129683 t_TAIL_06,
129684 t_TAIL_07,
129685 t_TAIL_08,
129686 t_TAIL_09,
129687 t_TAIL_10,
129688 BSLS_COMPILERFEATURES_FILLT( 8)
129690 const t_ARG_01& arg_01)
129691: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129692{
129693}
129694#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
129695
129696#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
129697template <class t_HEAD, class t_TAIL_01,
129698 class t_TAIL_02,
129699 class t_TAIL_03,
129700 class t_TAIL_04,
129701 class t_TAIL_05,
129702 class t_TAIL_06,
129703 class t_TAIL_07,
129704 class t_TAIL_08,
129705 class t_TAIL_09,
129706 class t_TAIL_10,
129707 class t_TAIL_11>
129708template <size_t t_INDEX, class t_ARG_01>
129709inline
129710variant<t_HEAD, t_TAIL_01,
129711 t_TAIL_02,
129712 t_TAIL_03,
129713 t_TAIL_04,
129714 t_TAIL_05,
129715 t_TAIL_06,
129716 t_TAIL_07,
129717 t_TAIL_08,
129718 t_TAIL_09,
129719 t_TAIL_10,
129720 t_TAIL_11,
129721 BSLS_COMPILERFEATURES_FILLT( 7)
129723 const t_ARG_01& arg_01)
129724: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129725{
129726}
129727#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
129728
129729#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
129730template <class t_HEAD, class t_TAIL_01,
129731 class t_TAIL_02,
129732 class t_TAIL_03,
129733 class t_TAIL_04,
129734 class t_TAIL_05,
129735 class t_TAIL_06,
129736 class t_TAIL_07,
129737 class t_TAIL_08,
129738 class t_TAIL_09,
129739 class t_TAIL_10,
129740 class t_TAIL_11,
129741 class t_TAIL_12>
129742template <size_t t_INDEX, class t_ARG_01>
129743inline
129744variant<t_HEAD, t_TAIL_01,
129745 t_TAIL_02,
129746 t_TAIL_03,
129747 t_TAIL_04,
129748 t_TAIL_05,
129749 t_TAIL_06,
129750 t_TAIL_07,
129751 t_TAIL_08,
129752 t_TAIL_09,
129753 t_TAIL_10,
129754 t_TAIL_11,
129755 t_TAIL_12,
129756 BSLS_COMPILERFEATURES_FILLT( 6)
129758 const t_ARG_01& arg_01)
129759: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129760{
129761}
129762#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
129763
129764#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
129765template <class t_HEAD, class t_TAIL_01,
129766 class t_TAIL_02,
129767 class t_TAIL_03,
129768 class t_TAIL_04,
129769 class t_TAIL_05,
129770 class t_TAIL_06,
129771 class t_TAIL_07,
129772 class t_TAIL_08,
129773 class t_TAIL_09,
129774 class t_TAIL_10,
129775 class t_TAIL_11,
129776 class t_TAIL_12,
129777 class t_TAIL_13>
129778template <size_t t_INDEX, class t_ARG_01>
129779inline
129780variant<t_HEAD, t_TAIL_01,
129781 t_TAIL_02,
129782 t_TAIL_03,
129783 t_TAIL_04,
129784 t_TAIL_05,
129785 t_TAIL_06,
129786 t_TAIL_07,
129787 t_TAIL_08,
129788 t_TAIL_09,
129789 t_TAIL_10,
129790 t_TAIL_11,
129791 t_TAIL_12,
129792 t_TAIL_13,
129793 BSLS_COMPILERFEATURES_FILLT( 5)
129795 const t_ARG_01& arg_01)
129796: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129797{
129798}
129799#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
129800
129801#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
129802template <class t_HEAD, class t_TAIL_01,
129803 class t_TAIL_02,
129804 class t_TAIL_03,
129805 class t_TAIL_04,
129806 class t_TAIL_05,
129807 class t_TAIL_06,
129808 class t_TAIL_07,
129809 class t_TAIL_08,
129810 class t_TAIL_09,
129811 class t_TAIL_10,
129812 class t_TAIL_11,
129813 class t_TAIL_12,
129814 class t_TAIL_13,
129815 class t_TAIL_14>
129816template <size_t t_INDEX, class t_ARG_01>
129817inline
129818variant<t_HEAD, t_TAIL_01,
129819 t_TAIL_02,
129820 t_TAIL_03,
129821 t_TAIL_04,
129822 t_TAIL_05,
129823 t_TAIL_06,
129824 t_TAIL_07,
129825 t_TAIL_08,
129826 t_TAIL_09,
129827 t_TAIL_10,
129828 t_TAIL_11,
129829 t_TAIL_12,
129830 t_TAIL_13,
129831 t_TAIL_14,
129832 BSLS_COMPILERFEATURES_FILLT( 4)
129834 const t_ARG_01& arg_01)
129835: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129836{
129837}
129838#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
129839
129840#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
129841template <class t_HEAD, class t_TAIL_01,
129842 class t_TAIL_02,
129843 class t_TAIL_03,
129844 class t_TAIL_04,
129845 class t_TAIL_05,
129846 class t_TAIL_06,
129847 class t_TAIL_07,
129848 class t_TAIL_08,
129849 class t_TAIL_09,
129850 class t_TAIL_10,
129851 class t_TAIL_11,
129852 class t_TAIL_12,
129853 class t_TAIL_13,
129854 class t_TAIL_14,
129855 class t_TAIL_15>
129856template <size_t t_INDEX, class t_ARG_01>
129857inline
129858variant<t_HEAD, t_TAIL_01,
129859 t_TAIL_02,
129860 t_TAIL_03,
129861 t_TAIL_04,
129862 t_TAIL_05,
129863 t_TAIL_06,
129864 t_TAIL_07,
129865 t_TAIL_08,
129866 t_TAIL_09,
129867 t_TAIL_10,
129868 t_TAIL_11,
129869 t_TAIL_12,
129870 t_TAIL_13,
129871 t_TAIL_14,
129872 t_TAIL_15,
129873 BSLS_COMPILERFEATURES_FILLT( 3)
129875 const t_ARG_01& arg_01)
129876: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129877{
129878}
129879#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
129880
129881#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
129882template <class t_HEAD, class t_TAIL_01,
129883 class t_TAIL_02,
129884 class t_TAIL_03,
129885 class t_TAIL_04,
129886 class t_TAIL_05,
129887 class t_TAIL_06,
129888 class t_TAIL_07,
129889 class t_TAIL_08,
129890 class t_TAIL_09,
129891 class t_TAIL_10,
129892 class t_TAIL_11,
129893 class t_TAIL_12,
129894 class t_TAIL_13,
129895 class t_TAIL_14,
129896 class t_TAIL_15,
129897 class t_TAIL_16>
129898template <size_t t_INDEX, class t_ARG_01>
129899inline
129900variant<t_HEAD, t_TAIL_01,
129901 t_TAIL_02,
129902 t_TAIL_03,
129903 t_TAIL_04,
129904 t_TAIL_05,
129905 t_TAIL_06,
129906 t_TAIL_07,
129907 t_TAIL_08,
129908 t_TAIL_09,
129909 t_TAIL_10,
129910 t_TAIL_11,
129911 t_TAIL_12,
129912 t_TAIL_13,
129913 t_TAIL_14,
129914 t_TAIL_15,
129915 t_TAIL_16,
129916 BSLS_COMPILERFEATURES_FILLT( 2)
129918 const t_ARG_01& arg_01)
129919: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129920{
129921}
129922#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
129923
129924#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
129925template <class t_HEAD, class t_TAIL_01,
129926 class t_TAIL_02,
129927 class t_TAIL_03,
129928 class t_TAIL_04,
129929 class t_TAIL_05,
129930 class t_TAIL_06,
129931 class t_TAIL_07,
129932 class t_TAIL_08,
129933 class t_TAIL_09,
129934 class t_TAIL_10,
129935 class t_TAIL_11,
129936 class t_TAIL_12,
129937 class t_TAIL_13,
129938 class t_TAIL_14,
129939 class t_TAIL_15,
129940 class t_TAIL_16,
129941 class t_TAIL_17>
129942template <size_t t_INDEX, class t_ARG_01>
129943inline
129944variant<t_HEAD, t_TAIL_01,
129945 t_TAIL_02,
129946 t_TAIL_03,
129947 t_TAIL_04,
129948 t_TAIL_05,
129949 t_TAIL_06,
129950 t_TAIL_07,
129951 t_TAIL_08,
129952 t_TAIL_09,
129953 t_TAIL_10,
129954 t_TAIL_11,
129955 t_TAIL_12,
129956 t_TAIL_13,
129957 t_TAIL_14,
129958 t_TAIL_15,
129959 t_TAIL_16,
129960 t_TAIL_17,
129961 BSLS_COMPILERFEATURES_FILLT( 1)
129963 const t_ARG_01& arg_01)
129964: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
129965{
129966}
129967#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
129968
129969#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
129970template <class t_HEAD, class t_TAIL_01,
129971 class t_TAIL_02,
129972 class t_TAIL_03,
129973 class t_TAIL_04,
129974 class t_TAIL_05,
129975 class t_TAIL_06,
129976 class t_TAIL_07,
129977 class t_TAIL_08,
129978 class t_TAIL_09,
129979 class t_TAIL_10,
129980 class t_TAIL_11,
129981 class t_TAIL_12,
129982 class t_TAIL_13,
129983 class t_TAIL_14,
129984 class t_TAIL_15,
129985 class t_TAIL_16,
129986 class t_TAIL_17,
129987 class t_TAIL_18>
129988template <size_t t_INDEX, class t_ARG_01>
129989inline
129990variant<t_HEAD, t_TAIL_01,
129991 t_TAIL_02,
129992 t_TAIL_03,
129993 t_TAIL_04,
129994 t_TAIL_05,
129995 t_TAIL_06,
129996 t_TAIL_07,
129997 t_TAIL_08,
129998 t_TAIL_09,
129999 t_TAIL_10,
130000 t_TAIL_11,
130001 t_TAIL_12,
130002 t_TAIL_13,
130003 t_TAIL_14,
130004 t_TAIL_15,
130005 t_TAIL_16,
130006 t_TAIL_17,
130007 t_TAIL_18,
130008 BSLS_COMPILERFEATURES_FILLT( 0)
130010 const t_ARG_01& arg_01)
130011: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
130012{
130013}
130014#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
130015
130016
130017#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
130018template <class t_HEAD>
130019template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130020inline
130021variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
130023 const t_ARG_01& arg_01,
130024 const t_ARG_02& arg_02)
130025: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130026{
130027}
130028#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
130029
130030#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
130031template <class t_HEAD, class t_TAIL_01>
130032template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130033inline
130034variant<t_HEAD, t_TAIL_01,
130035 BSLS_COMPILERFEATURES_FILLT(17)
130037 const t_ARG_01& arg_01,
130038 const t_ARG_02& arg_02)
130039: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130040{
130041}
130042#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
130043
130044#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
130045template <class t_HEAD, class t_TAIL_01,
130046 class t_TAIL_02>
130047template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130048inline
130049variant<t_HEAD, t_TAIL_01,
130050 t_TAIL_02,
130051 BSLS_COMPILERFEATURES_FILLT(16)
130053 const t_ARG_01& arg_01,
130054 const t_ARG_02& arg_02)
130055: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130056{
130057}
130058#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
130059
130060#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
130061template <class t_HEAD, class t_TAIL_01,
130062 class t_TAIL_02,
130063 class t_TAIL_03>
130064template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130065inline
130066variant<t_HEAD, t_TAIL_01,
130067 t_TAIL_02,
130068 t_TAIL_03,
130069 BSLS_COMPILERFEATURES_FILLT(15)
130071 const t_ARG_01& arg_01,
130072 const t_ARG_02& arg_02)
130073: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130074{
130075}
130076#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
130077
130078#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
130079template <class t_HEAD, class t_TAIL_01,
130080 class t_TAIL_02,
130081 class t_TAIL_03,
130082 class t_TAIL_04>
130083template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130084inline
130085variant<t_HEAD, t_TAIL_01,
130086 t_TAIL_02,
130087 t_TAIL_03,
130088 t_TAIL_04,
130089 BSLS_COMPILERFEATURES_FILLT(14)
130091 const t_ARG_01& arg_01,
130092 const t_ARG_02& arg_02)
130093: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130094{
130095}
130096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
130097
130098#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
130099template <class t_HEAD, class t_TAIL_01,
130100 class t_TAIL_02,
130101 class t_TAIL_03,
130102 class t_TAIL_04,
130103 class t_TAIL_05>
130104template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130105inline
130106variant<t_HEAD, t_TAIL_01,
130107 t_TAIL_02,
130108 t_TAIL_03,
130109 t_TAIL_04,
130110 t_TAIL_05,
130111 BSLS_COMPILERFEATURES_FILLT(13)
130113 const t_ARG_01& arg_01,
130114 const t_ARG_02& arg_02)
130115: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130116{
130117}
130118#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
130119
130120#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
130121template <class t_HEAD, class t_TAIL_01,
130122 class t_TAIL_02,
130123 class t_TAIL_03,
130124 class t_TAIL_04,
130125 class t_TAIL_05,
130126 class t_TAIL_06>
130127template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130128inline
130129variant<t_HEAD, t_TAIL_01,
130130 t_TAIL_02,
130131 t_TAIL_03,
130132 t_TAIL_04,
130133 t_TAIL_05,
130134 t_TAIL_06,
130135 BSLS_COMPILERFEATURES_FILLT(12)
130137 const t_ARG_01& arg_01,
130138 const t_ARG_02& arg_02)
130139: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130140{
130141}
130142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
130143
130144#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
130145template <class t_HEAD, class t_TAIL_01,
130146 class t_TAIL_02,
130147 class t_TAIL_03,
130148 class t_TAIL_04,
130149 class t_TAIL_05,
130150 class t_TAIL_06,
130151 class t_TAIL_07>
130152template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130153inline
130154variant<t_HEAD, t_TAIL_01,
130155 t_TAIL_02,
130156 t_TAIL_03,
130157 t_TAIL_04,
130158 t_TAIL_05,
130159 t_TAIL_06,
130160 t_TAIL_07,
130161 BSLS_COMPILERFEATURES_FILLT(11)
130163 const t_ARG_01& arg_01,
130164 const t_ARG_02& arg_02)
130165: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130166{
130167}
130168#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
130169
130170#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
130171template <class t_HEAD, class t_TAIL_01,
130172 class t_TAIL_02,
130173 class t_TAIL_03,
130174 class t_TAIL_04,
130175 class t_TAIL_05,
130176 class t_TAIL_06,
130177 class t_TAIL_07,
130178 class t_TAIL_08>
130179template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130180inline
130181variant<t_HEAD, t_TAIL_01,
130182 t_TAIL_02,
130183 t_TAIL_03,
130184 t_TAIL_04,
130185 t_TAIL_05,
130186 t_TAIL_06,
130187 t_TAIL_07,
130188 t_TAIL_08,
130189 BSLS_COMPILERFEATURES_FILLT(10)
130191 const t_ARG_01& arg_01,
130192 const t_ARG_02& arg_02)
130193: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130194{
130195}
130196#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
130197
130198#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
130199template <class t_HEAD, class t_TAIL_01,
130200 class t_TAIL_02,
130201 class t_TAIL_03,
130202 class t_TAIL_04,
130203 class t_TAIL_05,
130204 class t_TAIL_06,
130205 class t_TAIL_07,
130206 class t_TAIL_08,
130207 class t_TAIL_09>
130208template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130209inline
130210variant<t_HEAD, t_TAIL_01,
130211 t_TAIL_02,
130212 t_TAIL_03,
130213 t_TAIL_04,
130214 t_TAIL_05,
130215 t_TAIL_06,
130216 t_TAIL_07,
130217 t_TAIL_08,
130218 t_TAIL_09,
130219 BSLS_COMPILERFEATURES_FILLT( 9)
130221 const t_ARG_01& arg_01,
130222 const t_ARG_02& arg_02)
130223: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130224{
130225}
130226#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
130227
130228#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
130229template <class t_HEAD, class t_TAIL_01,
130230 class t_TAIL_02,
130231 class t_TAIL_03,
130232 class t_TAIL_04,
130233 class t_TAIL_05,
130234 class t_TAIL_06,
130235 class t_TAIL_07,
130236 class t_TAIL_08,
130237 class t_TAIL_09,
130238 class t_TAIL_10>
130239template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130240inline
130241variant<t_HEAD, t_TAIL_01,
130242 t_TAIL_02,
130243 t_TAIL_03,
130244 t_TAIL_04,
130245 t_TAIL_05,
130246 t_TAIL_06,
130247 t_TAIL_07,
130248 t_TAIL_08,
130249 t_TAIL_09,
130250 t_TAIL_10,
130251 BSLS_COMPILERFEATURES_FILLT( 8)
130253 const t_ARG_01& arg_01,
130254 const t_ARG_02& arg_02)
130255: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130256{
130257}
130258#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
130259
130260#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
130261template <class t_HEAD, class t_TAIL_01,
130262 class t_TAIL_02,
130263 class t_TAIL_03,
130264 class t_TAIL_04,
130265 class t_TAIL_05,
130266 class t_TAIL_06,
130267 class t_TAIL_07,
130268 class t_TAIL_08,
130269 class t_TAIL_09,
130270 class t_TAIL_10,
130271 class t_TAIL_11>
130272template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130273inline
130274variant<t_HEAD, t_TAIL_01,
130275 t_TAIL_02,
130276 t_TAIL_03,
130277 t_TAIL_04,
130278 t_TAIL_05,
130279 t_TAIL_06,
130280 t_TAIL_07,
130281 t_TAIL_08,
130282 t_TAIL_09,
130283 t_TAIL_10,
130284 t_TAIL_11,
130285 BSLS_COMPILERFEATURES_FILLT( 7)
130287 const t_ARG_01& arg_01,
130288 const t_ARG_02& arg_02)
130289: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130290{
130291}
130292#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
130293
130294#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
130295template <class t_HEAD, class t_TAIL_01,
130296 class t_TAIL_02,
130297 class t_TAIL_03,
130298 class t_TAIL_04,
130299 class t_TAIL_05,
130300 class t_TAIL_06,
130301 class t_TAIL_07,
130302 class t_TAIL_08,
130303 class t_TAIL_09,
130304 class t_TAIL_10,
130305 class t_TAIL_11,
130306 class t_TAIL_12>
130307template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130308inline
130309variant<t_HEAD, t_TAIL_01,
130310 t_TAIL_02,
130311 t_TAIL_03,
130312 t_TAIL_04,
130313 t_TAIL_05,
130314 t_TAIL_06,
130315 t_TAIL_07,
130316 t_TAIL_08,
130317 t_TAIL_09,
130318 t_TAIL_10,
130319 t_TAIL_11,
130320 t_TAIL_12,
130321 BSLS_COMPILERFEATURES_FILLT( 6)
130323 const t_ARG_01& arg_01,
130324 const t_ARG_02& arg_02)
130325: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130326{
130327}
130328#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
130329
130330#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
130331template <class t_HEAD, class t_TAIL_01,
130332 class t_TAIL_02,
130333 class t_TAIL_03,
130334 class t_TAIL_04,
130335 class t_TAIL_05,
130336 class t_TAIL_06,
130337 class t_TAIL_07,
130338 class t_TAIL_08,
130339 class t_TAIL_09,
130340 class t_TAIL_10,
130341 class t_TAIL_11,
130342 class t_TAIL_12,
130343 class t_TAIL_13>
130344template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130345inline
130346variant<t_HEAD, t_TAIL_01,
130347 t_TAIL_02,
130348 t_TAIL_03,
130349 t_TAIL_04,
130350 t_TAIL_05,
130351 t_TAIL_06,
130352 t_TAIL_07,
130353 t_TAIL_08,
130354 t_TAIL_09,
130355 t_TAIL_10,
130356 t_TAIL_11,
130357 t_TAIL_12,
130358 t_TAIL_13,
130359 BSLS_COMPILERFEATURES_FILLT( 5)
130361 const t_ARG_01& arg_01,
130362 const t_ARG_02& arg_02)
130363: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130364{
130365}
130366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
130367
130368#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
130369template <class t_HEAD, class t_TAIL_01,
130370 class t_TAIL_02,
130371 class t_TAIL_03,
130372 class t_TAIL_04,
130373 class t_TAIL_05,
130374 class t_TAIL_06,
130375 class t_TAIL_07,
130376 class t_TAIL_08,
130377 class t_TAIL_09,
130378 class t_TAIL_10,
130379 class t_TAIL_11,
130380 class t_TAIL_12,
130381 class t_TAIL_13,
130382 class t_TAIL_14>
130383template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130384inline
130385variant<t_HEAD, t_TAIL_01,
130386 t_TAIL_02,
130387 t_TAIL_03,
130388 t_TAIL_04,
130389 t_TAIL_05,
130390 t_TAIL_06,
130391 t_TAIL_07,
130392 t_TAIL_08,
130393 t_TAIL_09,
130394 t_TAIL_10,
130395 t_TAIL_11,
130396 t_TAIL_12,
130397 t_TAIL_13,
130398 t_TAIL_14,
130399 BSLS_COMPILERFEATURES_FILLT( 4)
130401 const t_ARG_01& arg_01,
130402 const t_ARG_02& arg_02)
130403: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130404{
130405}
130406#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
130407
130408#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
130409template <class t_HEAD, class t_TAIL_01,
130410 class t_TAIL_02,
130411 class t_TAIL_03,
130412 class t_TAIL_04,
130413 class t_TAIL_05,
130414 class t_TAIL_06,
130415 class t_TAIL_07,
130416 class t_TAIL_08,
130417 class t_TAIL_09,
130418 class t_TAIL_10,
130419 class t_TAIL_11,
130420 class t_TAIL_12,
130421 class t_TAIL_13,
130422 class t_TAIL_14,
130423 class t_TAIL_15>
130424template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130425inline
130426variant<t_HEAD, t_TAIL_01,
130427 t_TAIL_02,
130428 t_TAIL_03,
130429 t_TAIL_04,
130430 t_TAIL_05,
130431 t_TAIL_06,
130432 t_TAIL_07,
130433 t_TAIL_08,
130434 t_TAIL_09,
130435 t_TAIL_10,
130436 t_TAIL_11,
130437 t_TAIL_12,
130438 t_TAIL_13,
130439 t_TAIL_14,
130440 t_TAIL_15,
130441 BSLS_COMPILERFEATURES_FILLT( 3)
130443 const t_ARG_01& arg_01,
130444 const t_ARG_02& arg_02)
130445: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130446{
130447}
130448#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
130449
130450#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
130451template <class t_HEAD, class t_TAIL_01,
130452 class t_TAIL_02,
130453 class t_TAIL_03,
130454 class t_TAIL_04,
130455 class t_TAIL_05,
130456 class t_TAIL_06,
130457 class t_TAIL_07,
130458 class t_TAIL_08,
130459 class t_TAIL_09,
130460 class t_TAIL_10,
130461 class t_TAIL_11,
130462 class t_TAIL_12,
130463 class t_TAIL_13,
130464 class t_TAIL_14,
130465 class t_TAIL_15,
130466 class t_TAIL_16>
130467template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130468inline
130469variant<t_HEAD, t_TAIL_01,
130470 t_TAIL_02,
130471 t_TAIL_03,
130472 t_TAIL_04,
130473 t_TAIL_05,
130474 t_TAIL_06,
130475 t_TAIL_07,
130476 t_TAIL_08,
130477 t_TAIL_09,
130478 t_TAIL_10,
130479 t_TAIL_11,
130480 t_TAIL_12,
130481 t_TAIL_13,
130482 t_TAIL_14,
130483 t_TAIL_15,
130484 t_TAIL_16,
130485 BSLS_COMPILERFEATURES_FILLT( 2)
130487 const t_ARG_01& arg_01,
130488 const t_ARG_02& arg_02)
130489: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130490{
130491}
130492#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
130493
130494#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
130495template <class t_HEAD, class t_TAIL_01,
130496 class t_TAIL_02,
130497 class t_TAIL_03,
130498 class t_TAIL_04,
130499 class t_TAIL_05,
130500 class t_TAIL_06,
130501 class t_TAIL_07,
130502 class t_TAIL_08,
130503 class t_TAIL_09,
130504 class t_TAIL_10,
130505 class t_TAIL_11,
130506 class t_TAIL_12,
130507 class t_TAIL_13,
130508 class t_TAIL_14,
130509 class t_TAIL_15,
130510 class t_TAIL_16,
130511 class t_TAIL_17>
130512template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130513inline
130514variant<t_HEAD, t_TAIL_01,
130515 t_TAIL_02,
130516 t_TAIL_03,
130517 t_TAIL_04,
130518 t_TAIL_05,
130519 t_TAIL_06,
130520 t_TAIL_07,
130521 t_TAIL_08,
130522 t_TAIL_09,
130523 t_TAIL_10,
130524 t_TAIL_11,
130525 t_TAIL_12,
130526 t_TAIL_13,
130527 t_TAIL_14,
130528 t_TAIL_15,
130529 t_TAIL_16,
130530 t_TAIL_17,
130531 BSLS_COMPILERFEATURES_FILLT( 1)
130533 const t_ARG_01& arg_01,
130534 const t_ARG_02& arg_02)
130535: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130536{
130537}
130538#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
130539
130540#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
130541template <class t_HEAD, class t_TAIL_01,
130542 class t_TAIL_02,
130543 class t_TAIL_03,
130544 class t_TAIL_04,
130545 class t_TAIL_05,
130546 class t_TAIL_06,
130547 class t_TAIL_07,
130548 class t_TAIL_08,
130549 class t_TAIL_09,
130550 class t_TAIL_10,
130551 class t_TAIL_11,
130552 class t_TAIL_12,
130553 class t_TAIL_13,
130554 class t_TAIL_14,
130555 class t_TAIL_15,
130556 class t_TAIL_16,
130557 class t_TAIL_17,
130558 class t_TAIL_18>
130559template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
130560inline
130561variant<t_HEAD, t_TAIL_01,
130562 t_TAIL_02,
130563 t_TAIL_03,
130564 t_TAIL_04,
130565 t_TAIL_05,
130566 t_TAIL_06,
130567 t_TAIL_07,
130568 t_TAIL_08,
130569 t_TAIL_09,
130570 t_TAIL_10,
130571 t_TAIL_11,
130572 t_TAIL_12,
130573 t_TAIL_13,
130574 t_TAIL_14,
130575 t_TAIL_15,
130576 t_TAIL_16,
130577 t_TAIL_17,
130578 t_TAIL_18,
130579 BSLS_COMPILERFEATURES_FILLT( 0)
130581 const t_ARG_01& arg_01,
130582 const t_ARG_02& arg_02)
130583: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
130584{
130585}
130586#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
130587
130588
130589#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
130590template <class t_HEAD>
130591template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130592inline
130593variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
130595 const t_ARG_01& arg_01,
130596 const t_ARG_02& arg_02,
130597 const t_ARG_03& arg_03)
130598: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130599{
130600}
130601#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
130602
130603#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
130604template <class t_HEAD, class t_TAIL_01>
130605template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130606inline
130607variant<t_HEAD, t_TAIL_01,
130608 BSLS_COMPILERFEATURES_FILLT(17)
130610 const t_ARG_01& arg_01,
130611 const t_ARG_02& arg_02,
130612 const t_ARG_03& arg_03)
130613: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130614{
130615}
130616#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
130617
130618#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
130619template <class t_HEAD, class t_TAIL_01,
130620 class t_TAIL_02>
130621template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130622inline
130623variant<t_HEAD, t_TAIL_01,
130624 t_TAIL_02,
130625 BSLS_COMPILERFEATURES_FILLT(16)
130627 const t_ARG_01& arg_01,
130628 const t_ARG_02& arg_02,
130629 const t_ARG_03& arg_03)
130630: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130631{
130632}
130633#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
130634
130635#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
130636template <class t_HEAD, class t_TAIL_01,
130637 class t_TAIL_02,
130638 class t_TAIL_03>
130639template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130640inline
130641variant<t_HEAD, t_TAIL_01,
130642 t_TAIL_02,
130643 t_TAIL_03,
130644 BSLS_COMPILERFEATURES_FILLT(15)
130646 const t_ARG_01& arg_01,
130647 const t_ARG_02& arg_02,
130648 const t_ARG_03& arg_03)
130649: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130650{
130651}
130652#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
130653
130654#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
130655template <class t_HEAD, class t_TAIL_01,
130656 class t_TAIL_02,
130657 class t_TAIL_03,
130658 class t_TAIL_04>
130659template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130660inline
130661variant<t_HEAD, t_TAIL_01,
130662 t_TAIL_02,
130663 t_TAIL_03,
130664 t_TAIL_04,
130665 BSLS_COMPILERFEATURES_FILLT(14)
130667 const t_ARG_01& arg_01,
130668 const t_ARG_02& arg_02,
130669 const t_ARG_03& arg_03)
130670: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130671{
130672}
130673#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
130674
130675#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
130676template <class t_HEAD, class t_TAIL_01,
130677 class t_TAIL_02,
130678 class t_TAIL_03,
130679 class t_TAIL_04,
130680 class t_TAIL_05>
130681template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130682inline
130683variant<t_HEAD, t_TAIL_01,
130684 t_TAIL_02,
130685 t_TAIL_03,
130686 t_TAIL_04,
130687 t_TAIL_05,
130688 BSLS_COMPILERFEATURES_FILLT(13)
130690 const t_ARG_01& arg_01,
130691 const t_ARG_02& arg_02,
130692 const t_ARG_03& arg_03)
130693: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130694{
130695}
130696#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
130697
130698#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
130699template <class t_HEAD, class t_TAIL_01,
130700 class t_TAIL_02,
130701 class t_TAIL_03,
130702 class t_TAIL_04,
130703 class t_TAIL_05,
130704 class t_TAIL_06>
130705template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130706inline
130707variant<t_HEAD, t_TAIL_01,
130708 t_TAIL_02,
130709 t_TAIL_03,
130710 t_TAIL_04,
130711 t_TAIL_05,
130712 t_TAIL_06,
130713 BSLS_COMPILERFEATURES_FILLT(12)
130715 const t_ARG_01& arg_01,
130716 const t_ARG_02& arg_02,
130717 const t_ARG_03& arg_03)
130718: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130719{
130720}
130721#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
130722
130723#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
130724template <class t_HEAD, class t_TAIL_01,
130725 class t_TAIL_02,
130726 class t_TAIL_03,
130727 class t_TAIL_04,
130728 class t_TAIL_05,
130729 class t_TAIL_06,
130730 class t_TAIL_07>
130731template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130732inline
130733variant<t_HEAD, t_TAIL_01,
130734 t_TAIL_02,
130735 t_TAIL_03,
130736 t_TAIL_04,
130737 t_TAIL_05,
130738 t_TAIL_06,
130739 t_TAIL_07,
130740 BSLS_COMPILERFEATURES_FILLT(11)
130742 const t_ARG_01& arg_01,
130743 const t_ARG_02& arg_02,
130744 const t_ARG_03& arg_03)
130745: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130746{
130747}
130748#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
130749
130750#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
130751template <class t_HEAD, class t_TAIL_01,
130752 class t_TAIL_02,
130753 class t_TAIL_03,
130754 class t_TAIL_04,
130755 class t_TAIL_05,
130756 class t_TAIL_06,
130757 class t_TAIL_07,
130758 class t_TAIL_08>
130759template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130760inline
130761variant<t_HEAD, t_TAIL_01,
130762 t_TAIL_02,
130763 t_TAIL_03,
130764 t_TAIL_04,
130765 t_TAIL_05,
130766 t_TAIL_06,
130767 t_TAIL_07,
130768 t_TAIL_08,
130769 BSLS_COMPILERFEATURES_FILLT(10)
130771 const t_ARG_01& arg_01,
130772 const t_ARG_02& arg_02,
130773 const t_ARG_03& arg_03)
130774: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130775{
130776}
130777#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
130778
130779#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
130780template <class t_HEAD, class t_TAIL_01,
130781 class t_TAIL_02,
130782 class t_TAIL_03,
130783 class t_TAIL_04,
130784 class t_TAIL_05,
130785 class t_TAIL_06,
130786 class t_TAIL_07,
130787 class t_TAIL_08,
130788 class t_TAIL_09>
130789template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130790inline
130791variant<t_HEAD, t_TAIL_01,
130792 t_TAIL_02,
130793 t_TAIL_03,
130794 t_TAIL_04,
130795 t_TAIL_05,
130796 t_TAIL_06,
130797 t_TAIL_07,
130798 t_TAIL_08,
130799 t_TAIL_09,
130800 BSLS_COMPILERFEATURES_FILLT( 9)
130802 const t_ARG_01& arg_01,
130803 const t_ARG_02& arg_02,
130804 const t_ARG_03& arg_03)
130805: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130806{
130807}
130808#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
130809
130810#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
130811template <class t_HEAD, class t_TAIL_01,
130812 class t_TAIL_02,
130813 class t_TAIL_03,
130814 class t_TAIL_04,
130815 class t_TAIL_05,
130816 class t_TAIL_06,
130817 class t_TAIL_07,
130818 class t_TAIL_08,
130819 class t_TAIL_09,
130820 class t_TAIL_10>
130821template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130822inline
130823variant<t_HEAD, t_TAIL_01,
130824 t_TAIL_02,
130825 t_TAIL_03,
130826 t_TAIL_04,
130827 t_TAIL_05,
130828 t_TAIL_06,
130829 t_TAIL_07,
130830 t_TAIL_08,
130831 t_TAIL_09,
130832 t_TAIL_10,
130833 BSLS_COMPILERFEATURES_FILLT( 8)
130835 const t_ARG_01& arg_01,
130836 const t_ARG_02& arg_02,
130837 const t_ARG_03& arg_03)
130838: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130839{
130840}
130841#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
130842
130843#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
130844template <class t_HEAD, class t_TAIL_01,
130845 class t_TAIL_02,
130846 class t_TAIL_03,
130847 class t_TAIL_04,
130848 class t_TAIL_05,
130849 class t_TAIL_06,
130850 class t_TAIL_07,
130851 class t_TAIL_08,
130852 class t_TAIL_09,
130853 class t_TAIL_10,
130854 class t_TAIL_11>
130855template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130856inline
130857variant<t_HEAD, t_TAIL_01,
130858 t_TAIL_02,
130859 t_TAIL_03,
130860 t_TAIL_04,
130861 t_TAIL_05,
130862 t_TAIL_06,
130863 t_TAIL_07,
130864 t_TAIL_08,
130865 t_TAIL_09,
130866 t_TAIL_10,
130867 t_TAIL_11,
130868 BSLS_COMPILERFEATURES_FILLT( 7)
130870 const t_ARG_01& arg_01,
130871 const t_ARG_02& arg_02,
130872 const t_ARG_03& arg_03)
130873: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130874{
130875}
130876#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
130877
130878#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
130879template <class t_HEAD, class t_TAIL_01,
130880 class t_TAIL_02,
130881 class t_TAIL_03,
130882 class t_TAIL_04,
130883 class t_TAIL_05,
130884 class t_TAIL_06,
130885 class t_TAIL_07,
130886 class t_TAIL_08,
130887 class t_TAIL_09,
130888 class t_TAIL_10,
130889 class t_TAIL_11,
130890 class t_TAIL_12>
130891template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130892inline
130893variant<t_HEAD, t_TAIL_01,
130894 t_TAIL_02,
130895 t_TAIL_03,
130896 t_TAIL_04,
130897 t_TAIL_05,
130898 t_TAIL_06,
130899 t_TAIL_07,
130900 t_TAIL_08,
130901 t_TAIL_09,
130902 t_TAIL_10,
130903 t_TAIL_11,
130904 t_TAIL_12,
130905 BSLS_COMPILERFEATURES_FILLT( 6)
130907 const t_ARG_01& arg_01,
130908 const t_ARG_02& arg_02,
130909 const t_ARG_03& arg_03)
130910: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130911{
130912}
130913#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
130914
130915#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
130916template <class t_HEAD, class t_TAIL_01,
130917 class t_TAIL_02,
130918 class t_TAIL_03,
130919 class t_TAIL_04,
130920 class t_TAIL_05,
130921 class t_TAIL_06,
130922 class t_TAIL_07,
130923 class t_TAIL_08,
130924 class t_TAIL_09,
130925 class t_TAIL_10,
130926 class t_TAIL_11,
130927 class t_TAIL_12,
130928 class t_TAIL_13>
130929template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130930inline
130931variant<t_HEAD, t_TAIL_01,
130932 t_TAIL_02,
130933 t_TAIL_03,
130934 t_TAIL_04,
130935 t_TAIL_05,
130936 t_TAIL_06,
130937 t_TAIL_07,
130938 t_TAIL_08,
130939 t_TAIL_09,
130940 t_TAIL_10,
130941 t_TAIL_11,
130942 t_TAIL_12,
130943 t_TAIL_13,
130944 BSLS_COMPILERFEATURES_FILLT( 5)
130946 const t_ARG_01& arg_01,
130947 const t_ARG_02& arg_02,
130948 const t_ARG_03& arg_03)
130949: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130950{
130951}
130952#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
130953
130954#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
130955template <class t_HEAD, class t_TAIL_01,
130956 class t_TAIL_02,
130957 class t_TAIL_03,
130958 class t_TAIL_04,
130959 class t_TAIL_05,
130960 class t_TAIL_06,
130961 class t_TAIL_07,
130962 class t_TAIL_08,
130963 class t_TAIL_09,
130964 class t_TAIL_10,
130965 class t_TAIL_11,
130966 class t_TAIL_12,
130967 class t_TAIL_13,
130968 class t_TAIL_14>
130969template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
130970inline
130971variant<t_HEAD, t_TAIL_01,
130972 t_TAIL_02,
130973 t_TAIL_03,
130974 t_TAIL_04,
130975 t_TAIL_05,
130976 t_TAIL_06,
130977 t_TAIL_07,
130978 t_TAIL_08,
130979 t_TAIL_09,
130980 t_TAIL_10,
130981 t_TAIL_11,
130982 t_TAIL_12,
130983 t_TAIL_13,
130984 t_TAIL_14,
130985 BSLS_COMPILERFEATURES_FILLT( 4)
130987 const t_ARG_01& arg_01,
130988 const t_ARG_02& arg_02,
130989 const t_ARG_03& arg_03)
130990: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
130991{
130992}
130993#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
130994
130995#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
130996template <class t_HEAD, class t_TAIL_01,
130997 class t_TAIL_02,
130998 class t_TAIL_03,
130999 class t_TAIL_04,
131000 class t_TAIL_05,
131001 class t_TAIL_06,
131002 class t_TAIL_07,
131003 class t_TAIL_08,
131004 class t_TAIL_09,
131005 class t_TAIL_10,
131006 class t_TAIL_11,
131007 class t_TAIL_12,
131008 class t_TAIL_13,
131009 class t_TAIL_14,
131010 class t_TAIL_15>
131011template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
131012inline
131013variant<t_HEAD, t_TAIL_01,
131014 t_TAIL_02,
131015 t_TAIL_03,
131016 t_TAIL_04,
131017 t_TAIL_05,
131018 t_TAIL_06,
131019 t_TAIL_07,
131020 t_TAIL_08,
131021 t_TAIL_09,
131022 t_TAIL_10,
131023 t_TAIL_11,
131024 t_TAIL_12,
131025 t_TAIL_13,
131026 t_TAIL_14,
131027 t_TAIL_15,
131028 BSLS_COMPILERFEATURES_FILLT( 3)
131030 const t_ARG_01& arg_01,
131031 const t_ARG_02& arg_02,
131032 const t_ARG_03& arg_03)
131033: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
131034{
131035}
131036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
131037
131038#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
131039template <class t_HEAD, class t_TAIL_01,
131040 class t_TAIL_02,
131041 class t_TAIL_03,
131042 class t_TAIL_04,
131043 class t_TAIL_05,
131044 class t_TAIL_06,
131045 class t_TAIL_07,
131046 class t_TAIL_08,
131047 class t_TAIL_09,
131048 class t_TAIL_10,
131049 class t_TAIL_11,
131050 class t_TAIL_12,
131051 class t_TAIL_13,
131052 class t_TAIL_14,
131053 class t_TAIL_15,
131054 class t_TAIL_16>
131055template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
131056inline
131057variant<t_HEAD, t_TAIL_01,
131058 t_TAIL_02,
131059 t_TAIL_03,
131060 t_TAIL_04,
131061 t_TAIL_05,
131062 t_TAIL_06,
131063 t_TAIL_07,
131064 t_TAIL_08,
131065 t_TAIL_09,
131066 t_TAIL_10,
131067 t_TAIL_11,
131068 t_TAIL_12,
131069 t_TAIL_13,
131070 t_TAIL_14,
131071 t_TAIL_15,
131072 t_TAIL_16,
131073 BSLS_COMPILERFEATURES_FILLT( 2)
131075 const t_ARG_01& arg_01,
131076 const t_ARG_02& arg_02,
131077 const t_ARG_03& arg_03)
131078: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
131079{
131080}
131081#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
131082
131083#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
131084template <class t_HEAD, class t_TAIL_01,
131085 class t_TAIL_02,
131086 class t_TAIL_03,
131087 class t_TAIL_04,
131088 class t_TAIL_05,
131089 class t_TAIL_06,
131090 class t_TAIL_07,
131091 class t_TAIL_08,
131092 class t_TAIL_09,
131093 class t_TAIL_10,
131094 class t_TAIL_11,
131095 class t_TAIL_12,
131096 class t_TAIL_13,
131097 class t_TAIL_14,
131098 class t_TAIL_15,
131099 class t_TAIL_16,
131100 class t_TAIL_17>
131101template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
131102inline
131103variant<t_HEAD, t_TAIL_01,
131104 t_TAIL_02,
131105 t_TAIL_03,
131106 t_TAIL_04,
131107 t_TAIL_05,
131108 t_TAIL_06,
131109 t_TAIL_07,
131110 t_TAIL_08,
131111 t_TAIL_09,
131112 t_TAIL_10,
131113 t_TAIL_11,
131114 t_TAIL_12,
131115 t_TAIL_13,
131116 t_TAIL_14,
131117 t_TAIL_15,
131118 t_TAIL_16,
131119 t_TAIL_17,
131120 BSLS_COMPILERFEATURES_FILLT( 1)
131122 const t_ARG_01& arg_01,
131123 const t_ARG_02& arg_02,
131124 const t_ARG_03& arg_03)
131125: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
131126{
131127}
131128#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
131129
131130#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
131131template <class t_HEAD, class t_TAIL_01,
131132 class t_TAIL_02,
131133 class t_TAIL_03,
131134 class t_TAIL_04,
131135 class t_TAIL_05,
131136 class t_TAIL_06,
131137 class t_TAIL_07,
131138 class t_TAIL_08,
131139 class t_TAIL_09,
131140 class t_TAIL_10,
131141 class t_TAIL_11,
131142 class t_TAIL_12,
131143 class t_TAIL_13,
131144 class t_TAIL_14,
131145 class t_TAIL_15,
131146 class t_TAIL_16,
131147 class t_TAIL_17,
131148 class t_TAIL_18>
131149template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
131150inline
131151variant<t_HEAD, t_TAIL_01,
131152 t_TAIL_02,
131153 t_TAIL_03,
131154 t_TAIL_04,
131155 t_TAIL_05,
131156 t_TAIL_06,
131157 t_TAIL_07,
131158 t_TAIL_08,
131159 t_TAIL_09,
131160 t_TAIL_10,
131161 t_TAIL_11,
131162 t_TAIL_12,
131163 t_TAIL_13,
131164 t_TAIL_14,
131165 t_TAIL_15,
131166 t_TAIL_16,
131167 t_TAIL_17,
131168 t_TAIL_18,
131169 BSLS_COMPILERFEATURES_FILLT( 0)
131171 const t_ARG_01& arg_01,
131172 const t_ARG_02& arg_02,
131173 const t_ARG_03& arg_03)
131174: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
131175{
131176}
131177#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
131178
131179
131180#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
131181template <class t_HEAD>
131182template <size_t t_INDEX,
131183 class t_ARG_01,
131184 class t_ARG_02,
131185 class t_ARG_03,
131186 class t_ARG_04>
131187inline
131188variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
131190 const t_ARG_01& arg_01,
131191 const t_ARG_02& arg_02,
131192 const t_ARG_03& arg_03,
131193 const t_ARG_04& arg_04)
131194: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131195 arg_01,
131196 arg_02,
131197 arg_03,
131198 arg_04)
131199{
131200}
131201#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
131202
131203#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
131204template <class t_HEAD, class t_TAIL_01>
131205template <size_t t_INDEX,
131206 class t_ARG_01,
131207 class t_ARG_02,
131208 class t_ARG_03,
131209 class t_ARG_04>
131210inline
131211variant<t_HEAD, t_TAIL_01,
131212 BSLS_COMPILERFEATURES_FILLT(17)
131214 const t_ARG_01& arg_01,
131215 const t_ARG_02& arg_02,
131216 const t_ARG_03& arg_03,
131217 const t_ARG_04& arg_04)
131218: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131219 arg_01,
131220 arg_02,
131221 arg_03,
131222 arg_04)
131223{
131224}
131225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
131226
131227#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
131228template <class t_HEAD, class t_TAIL_01,
131229 class t_TAIL_02>
131230template <size_t t_INDEX,
131231 class t_ARG_01,
131232 class t_ARG_02,
131233 class t_ARG_03,
131234 class t_ARG_04>
131235inline
131236variant<t_HEAD, t_TAIL_01,
131237 t_TAIL_02,
131238 BSLS_COMPILERFEATURES_FILLT(16)
131240 const t_ARG_01& arg_01,
131241 const t_ARG_02& arg_02,
131242 const t_ARG_03& arg_03,
131243 const t_ARG_04& arg_04)
131244: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131245 arg_01,
131246 arg_02,
131247 arg_03,
131248 arg_04)
131249{
131250}
131251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
131252
131253#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
131254template <class t_HEAD, class t_TAIL_01,
131255 class t_TAIL_02,
131256 class t_TAIL_03>
131257template <size_t t_INDEX,
131258 class t_ARG_01,
131259 class t_ARG_02,
131260 class t_ARG_03,
131261 class t_ARG_04>
131262inline
131263variant<t_HEAD, t_TAIL_01,
131264 t_TAIL_02,
131265 t_TAIL_03,
131266 BSLS_COMPILERFEATURES_FILLT(15)
131268 const t_ARG_01& arg_01,
131269 const t_ARG_02& arg_02,
131270 const t_ARG_03& arg_03,
131271 const t_ARG_04& arg_04)
131272: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131273 arg_01,
131274 arg_02,
131275 arg_03,
131276 arg_04)
131277{
131278}
131279#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
131280
131281#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
131282template <class t_HEAD, class t_TAIL_01,
131283 class t_TAIL_02,
131284 class t_TAIL_03,
131285 class t_TAIL_04>
131286template <size_t t_INDEX,
131287 class t_ARG_01,
131288 class t_ARG_02,
131289 class t_ARG_03,
131290 class t_ARG_04>
131291inline
131292variant<t_HEAD, t_TAIL_01,
131293 t_TAIL_02,
131294 t_TAIL_03,
131295 t_TAIL_04,
131296 BSLS_COMPILERFEATURES_FILLT(14)
131298 const t_ARG_01& arg_01,
131299 const t_ARG_02& arg_02,
131300 const t_ARG_03& arg_03,
131301 const t_ARG_04& arg_04)
131302: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131303 arg_01,
131304 arg_02,
131305 arg_03,
131306 arg_04)
131307{
131308}
131309#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
131310
131311#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
131312template <class t_HEAD, class t_TAIL_01,
131313 class t_TAIL_02,
131314 class t_TAIL_03,
131315 class t_TAIL_04,
131316 class t_TAIL_05>
131317template <size_t t_INDEX,
131318 class t_ARG_01,
131319 class t_ARG_02,
131320 class t_ARG_03,
131321 class t_ARG_04>
131322inline
131323variant<t_HEAD, t_TAIL_01,
131324 t_TAIL_02,
131325 t_TAIL_03,
131326 t_TAIL_04,
131327 t_TAIL_05,
131328 BSLS_COMPILERFEATURES_FILLT(13)
131330 const t_ARG_01& arg_01,
131331 const t_ARG_02& arg_02,
131332 const t_ARG_03& arg_03,
131333 const t_ARG_04& arg_04)
131334: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131335 arg_01,
131336 arg_02,
131337 arg_03,
131338 arg_04)
131339{
131340}
131341#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
131342
131343#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
131344template <class t_HEAD, class t_TAIL_01,
131345 class t_TAIL_02,
131346 class t_TAIL_03,
131347 class t_TAIL_04,
131348 class t_TAIL_05,
131349 class t_TAIL_06>
131350template <size_t t_INDEX,
131351 class t_ARG_01,
131352 class t_ARG_02,
131353 class t_ARG_03,
131354 class t_ARG_04>
131355inline
131356variant<t_HEAD, t_TAIL_01,
131357 t_TAIL_02,
131358 t_TAIL_03,
131359 t_TAIL_04,
131360 t_TAIL_05,
131361 t_TAIL_06,
131362 BSLS_COMPILERFEATURES_FILLT(12)
131364 const t_ARG_01& arg_01,
131365 const t_ARG_02& arg_02,
131366 const t_ARG_03& arg_03,
131367 const t_ARG_04& arg_04)
131368: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131369 arg_01,
131370 arg_02,
131371 arg_03,
131372 arg_04)
131373{
131374}
131375#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
131376
131377#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
131378template <class t_HEAD, class t_TAIL_01,
131379 class t_TAIL_02,
131380 class t_TAIL_03,
131381 class t_TAIL_04,
131382 class t_TAIL_05,
131383 class t_TAIL_06,
131384 class t_TAIL_07>
131385template <size_t t_INDEX,
131386 class t_ARG_01,
131387 class t_ARG_02,
131388 class t_ARG_03,
131389 class t_ARG_04>
131390inline
131391variant<t_HEAD, t_TAIL_01,
131392 t_TAIL_02,
131393 t_TAIL_03,
131394 t_TAIL_04,
131395 t_TAIL_05,
131396 t_TAIL_06,
131397 t_TAIL_07,
131398 BSLS_COMPILERFEATURES_FILLT(11)
131400 const t_ARG_01& arg_01,
131401 const t_ARG_02& arg_02,
131402 const t_ARG_03& arg_03,
131403 const t_ARG_04& arg_04)
131404: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131405 arg_01,
131406 arg_02,
131407 arg_03,
131408 arg_04)
131409{
131410}
131411#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
131412
131413#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
131414template <class t_HEAD, class t_TAIL_01,
131415 class t_TAIL_02,
131416 class t_TAIL_03,
131417 class t_TAIL_04,
131418 class t_TAIL_05,
131419 class t_TAIL_06,
131420 class t_TAIL_07,
131421 class t_TAIL_08>
131422template <size_t t_INDEX,
131423 class t_ARG_01,
131424 class t_ARG_02,
131425 class t_ARG_03,
131426 class t_ARG_04>
131427inline
131428variant<t_HEAD, t_TAIL_01,
131429 t_TAIL_02,
131430 t_TAIL_03,
131431 t_TAIL_04,
131432 t_TAIL_05,
131433 t_TAIL_06,
131434 t_TAIL_07,
131435 t_TAIL_08,
131436 BSLS_COMPILERFEATURES_FILLT(10)
131438 const t_ARG_01& arg_01,
131439 const t_ARG_02& arg_02,
131440 const t_ARG_03& arg_03,
131441 const t_ARG_04& arg_04)
131442: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131443 arg_01,
131444 arg_02,
131445 arg_03,
131446 arg_04)
131447{
131448}
131449#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
131450
131451#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
131452template <class t_HEAD, class t_TAIL_01,
131453 class t_TAIL_02,
131454 class t_TAIL_03,
131455 class t_TAIL_04,
131456 class t_TAIL_05,
131457 class t_TAIL_06,
131458 class t_TAIL_07,
131459 class t_TAIL_08,
131460 class t_TAIL_09>
131461template <size_t t_INDEX,
131462 class t_ARG_01,
131463 class t_ARG_02,
131464 class t_ARG_03,
131465 class t_ARG_04>
131466inline
131467variant<t_HEAD, t_TAIL_01,
131468 t_TAIL_02,
131469 t_TAIL_03,
131470 t_TAIL_04,
131471 t_TAIL_05,
131472 t_TAIL_06,
131473 t_TAIL_07,
131474 t_TAIL_08,
131475 t_TAIL_09,
131476 BSLS_COMPILERFEATURES_FILLT( 9)
131478 const t_ARG_01& arg_01,
131479 const t_ARG_02& arg_02,
131480 const t_ARG_03& arg_03,
131481 const t_ARG_04& arg_04)
131482: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131483 arg_01,
131484 arg_02,
131485 arg_03,
131486 arg_04)
131487{
131488}
131489#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
131490
131491#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
131492template <class t_HEAD, class t_TAIL_01,
131493 class t_TAIL_02,
131494 class t_TAIL_03,
131495 class t_TAIL_04,
131496 class t_TAIL_05,
131497 class t_TAIL_06,
131498 class t_TAIL_07,
131499 class t_TAIL_08,
131500 class t_TAIL_09,
131501 class t_TAIL_10>
131502template <size_t t_INDEX,
131503 class t_ARG_01,
131504 class t_ARG_02,
131505 class t_ARG_03,
131506 class t_ARG_04>
131507inline
131508variant<t_HEAD, t_TAIL_01,
131509 t_TAIL_02,
131510 t_TAIL_03,
131511 t_TAIL_04,
131512 t_TAIL_05,
131513 t_TAIL_06,
131514 t_TAIL_07,
131515 t_TAIL_08,
131516 t_TAIL_09,
131517 t_TAIL_10,
131518 BSLS_COMPILERFEATURES_FILLT( 8)
131520 const t_ARG_01& arg_01,
131521 const t_ARG_02& arg_02,
131522 const t_ARG_03& arg_03,
131523 const t_ARG_04& arg_04)
131524: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131525 arg_01,
131526 arg_02,
131527 arg_03,
131528 arg_04)
131529{
131530}
131531#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
131532
131533#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
131534template <class t_HEAD, class t_TAIL_01,
131535 class t_TAIL_02,
131536 class t_TAIL_03,
131537 class t_TAIL_04,
131538 class t_TAIL_05,
131539 class t_TAIL_06,
131540 class t_TAIL_07,
131541 class t_TAIL_08,
131542 class t_TAIL_09,
131543 class t_TAIL_10,
131544 class t_TAIL_11>
131545template <size_t t_INDEX,
131546 class t_ARG_01,
131547 class t_ARG_02,
131548 class t_ARG_03,
131549 class t_ARG_04>
131550inline
131551variant<t_HEAD, t_TAIL_01,
131552 t_TAIL_02,
131553 t_TAIL_03,
131554 t_TAIL_04,
131555 t_TAIL_05,
131556 t_TAIL_06,
131557 t_TAIL_07,
131558 t_TAIL_08,
131559 t_TAIL_09,
131560 t_TAIL_10,
131561 t_TAIL_11,
131562 BSLS_COMPILERFEATURES_FILLT( 7)
131564 const t_ARG_01& arg_01,
131565 const t_ARG_02& arg_02,
131566 const t_ARG_03& arg_03,
131567 const t_ARG_04& arg_04)
131568: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131569 arg_01,
131570 arg_02,
131571 arg_03,
131572 arg_04)
131573{
131574}
131575#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
131576
131577#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
131578template <class t_HEAD, class t_TAIL_01,
131579 class t_TAIL_02,
131580 class t_TAIL_03,
131581 class t_TAIL_04,
131582 class t_TAIL_05,
131583 class t_TAIL_06,
131584 class t_TAIL_07,
131585 class t_TAIL_08,
131586 class t_TAIL_09,
131587 class t_TAIL_10,
131588 class t_TAIL_11,
131589 class t_TAIL_12>
131590template <size_t t_INDEX,
131591 class t_ARG_01,
131592 class t_ARG_02,
131593 class t_ARG_03,
131594 class t_ARG_04>
131595inline
131596variant<t_HEAD, t_TAIL_01,
131597 t_TAIL_02,
131598 t_TAIL_03,
131599 t_TAIL_04,
131600 t_TAIL_05,
131601 t_TAIL_06,
131602 t_TAIL_07,
131603 t_TAIL_08,
131604 t_TAIL_09,
131605 t_TAIL_10,
131606 t_TAIL_11,
131607 t_TAIL_12,
131608 BSLS_COMPILERFEATURES_FILLT( 6)
131610 const t_ARG_01& arg_01,
131611 const t_ARG_02& arg_02,
131612 const t_ARG_03& arg_03,
131613 const t_ARG_04& arg_04)
131614: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131615 arg_01,
131616 arg_02,
131617 arg_03,
131618 arg_04)
131619{
131620}
131621#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
131622
131623#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
131624template <class t_HEAD, class t_TAIL_01,
131625 class t_TAIL_02,
131626 class t_TAIL_03,
131627 class t_TAIL_04,
131628 class t_TAIL_05,
131629 class t_TAIL_06,
131630 class t_TAIL_07,
131631 class t_TAIL_08,
131632 class t_TAIL_09,
131633 class t_TAIL_10,
131634 class t_TAIL_11,
131635 class t_TAIL_12,
131636 class t_TAIL_13>
131637template <size_t t_INDEX,
131638 class t_ARG_01,
131639 class t_ARG_02,
131640 class t_ARG_03,
131641 class t_ARG_04>
131642inline
131643variant<t_HEAD, t_TAIL_01,
131644 t_TAIL_02,
131645 t_TAIL_03,
131646 t_TAIL_04,
131647 t_TAIL_05,
131648 t_TAIL_06,
131649 t_TAIL_07,
131650 t_TAIL_08,
131651 t_TAIL_09,
131652 t_TAIL_10,
131653 t_TAIL_11,
131654 t_TAIL_12,
131655 t_TAIL_13,
131656 BSLS_COMPILERFEATURES_FILLT( 5)
131658 const t_ARG_01& arg_01,
131659 const t_ARG_02& arg_02,
131660 const t_ARG_03& arg_03,
131661 const t_ARG_04& arg_04)
131662: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131663 arg_01,
131664 arg_02,
131665 arg_03,
131666 arg_04)
131667{
131668}
131669#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
131670
131671#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
131672template <class t_HEAD, class t_TAIL_01,
131673 class t_TAIL_02,
131674 class t_TAIL_03,
131675 class t_TAIL_04,
131676 class t_TAIL_05,
131677 class t_TAIL_06,
131678 class t_TAIL_07,
131679 class t_TAIL_08,
131680 class t_TAIL_09,
131681 class t_TAIL_10,
131682 class t_TAIL_11,
131683 class t_TAIL_12,
131684 class t_TAIL_13,
131685 class t_TAIL_14>
131686template <size_t t_INDEX,
131687 class t_ARG_01,
131688 class t_ARG_02,
131689 class t_ARG_03,
131690 class t_ARG_04>
131691inline
131692variant<t_HEAD, t_TAIL_01,
131693 t_TAIL_02,
131694 t_TAIL_03,
131695 t_TAIL_04,
131696 t_TAIL_05,
131697 t_TAIL_06,
131698 t_TAIL_07,
131699 t_TAIL_08,
131700 t_TAIL_09,
131701 t_TAIL_10,
131702 t_TAIL_11,
131703 t_TAIL_12,
131704 t_TAIL_13,
131705 t_TAIL_14,
131706 BSLS_COMPILERFEATURES_FILLT( 4)
131708 const t_ARG_01& arg_01,
131709 const t_ARG_02& arg_02,
131710 const t_ARG_03& arg_03,
131711 const t_ARG_04& arg_04)
131712: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131713 arg_01,
131714 arg_02,
131715 arg_03,
131716 arg_04)
131717{
131718}
131719#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
131720
131721#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
131722template <class t_HEAD, class t_TAIL_01,
131723 class t_TAIL_02,
131724 class t_TAIL_03,
131725 class t_TAIL_04,
131726 class t_TAIL_05,
131727 class t_TAIL_06,
131728 class t_TAIL_07,
131729 class t_TAIL_08,
131730 class t_TAIL_09,
131731 class t_TAIL_10,
131732 class t_TAIL_11,
131733 class t_TAIL_12,
131734 class t_TAIL_13,
131735 class t_TAIL_14,
131736 class t_TAIL_15>
131737template <size_t t_INDEX,
131738 class t_ARG_01,
131739 class t_ARG_02,
131740 class t_ARG_03,
131741 class t_ARG_04>
131742inline
131743variant<t_HEAD, t_TAIL_01,
131744 t_TAIL_02,
131745 t_TAIL_03,
131746 t_TAIL_04,
131747 t_TAIL_05,
131748 t_TAIL_06,
131749 t_TAIL_07,
131750 t_TAIL_08,
131751 t_TAIL_09,
131752 t_TAIL_10,
131753 t_TAIL_11,
131754 t_TAIL_12,
131755 t_TAIL_13,
131756 t_TAIL_14,
131757 t_TAIL_15,
131758 BSLS_COMPILERFEATURES_FILLT( 3)
131760 const t_ARG_01& arg_01,
131761 const t_ARG_02& arg_02,
131762 const t_ARG_03& arg_03,
131763 const t_ARG_04& arg_04)
131764: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131765 arg_01,
131766 arg_02,
131767 arg_03,
131768 arg_04)
131769{
131770}
131771#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
131772
131773#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
131774template <class t_HEAD, class t_TAIL_01,
131775 class t_TAIL_02,
131776 class t_TAIL_03,
131777 class t_TAIL_04,
131778 class t_TAIL_05,
131779 class t_TAIL_06,
131780 class t_TAIL_07,
131781 class t_TAIL_08,
131782 class t_TAIL_09,
131783 class t_TAIL_10,
131784 class t_TAIL_11,
131785 class t_TAIL_12,
131786 class t_TAIL_13,
131787 class t_TAIL_14,
131788 class t_TAIL_15,
131789 class t_TAIL_16>
131790template <size_t t_INDEX,
131791 class t_ARG_01,
131792 class t_ARG_02,
131793 class t_ARG_03,
131794 class t_ARG_04>
131795inline
131796variant<t_HEAD, t_TAIL_01,
131797 t_TAIL_02,
131798 t_TAIL_03,
131799 t_TAIL_04,
131800 t_TAIL_05,
131801 t_TAIL_06,
131802 t_TAIL_07,
131803 t_TAIL_08,
131804 t_TAIL_09,
131805 t_TAIL_10,
131806 t_TAIL_11,
131807 t_TAIL_12,
131808 t_TAIL_13,
131809 t_TAIL_14,
131810 t_TAIL_15,
131811 t_TAIL_16,
131812 BSLS_COMPILERFEATURES_FILLT( 2)
131814 const t_ARG_01& arg_01,
131815 const t_ARG_02& arg_02,
131816 const t_ARG_03& arg_03,
131817 const t_ARG_04& arg_04)
131818: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131819 arg_01,
131820 arg_02,
131821 arg_03,
131822 arg_04)
131823{
131824}
131825#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
131826
131827#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
131828template <class t_HEAD, class t_TAIL_01,
131829 class t_TAIL_02,
131830 class t_TAIL_03,
131831 class t_TAIL_04,
131832 class t_TAIL_05,
131833 class t_TAIL_06,
131834 class t_TAIL_07,
131835 class t_TAIL_08,
131836 class t_TAIL_09,
131837 class t_TAIL_10,
131838 class t_TAIL_11,
131839 class t_TAIL_12,
131840 class t_TAIL_13,
131841 class t_TAIL_14,
131842 class t_TAIL_15,
131843 class t_TAIL_16,
131844 class t_TAIL_17>
131845template <size_t t_INDEX,
131846 class t_ARG_01,
131847 class t_ARG_02,
131848 class t_ARG_03,
131849 class t_ARG_04>
131850inline
131851variant<t_HEAD, t_TAIL_01,
131852 t_TAIL_02,
131853 t_TAIL_03,
131854 t_TAIL_04,
131855 t_TAIL_05,
131856 t_TAIL_06,
131857 t_TAIL_07,
131858 t_TAIL_08,
131859 t_TAIL_09,
131860 t_TAIL_10,
131861 t_TAIL_11,
131862 t_TAIL_12,
131863 t_TAIL_13,
131864 t_TAIL_14,
131865 t_TAIL_15,
131866 t_TAIL_16,
131867 t_TAIL_17,
131868 BSLS_COMPILERFEATURES_FILLT( 1)
131870 const t_ARG_01& arg_01,
131871 const t_ARG_02& arg_02,
131872 const t_ARG_03& arg_03,
131873 const t_ARG_04& arg_04)
131874: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131875 arg_01,
131876 arg_02,
131877 arg_03,
131878 arg_04)
131879{
131880}
131881#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
131882
131883#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
131884template <class t_HEAD, class t_TAIL_01,
131885 class t_TAIL_02,
131886 class t_TAIL_03,
131887 class t_TAIL_04,
131888 class t_TAIL_05,
131889 class t_TAIL_06,
131890 class t_TAIL_07,
131891 class t_TAIL_08,
131892 class t_TAIL_09,
131893 class t_TAIL_10,
131894 class t_TAIL_11,
131895 class t_TAIL_12,
131896 class t_TAIL_13,
131897 class t_TAIL_14,
131898 class t_TAIL_15,
131899 class t_TAIL_16,
131900 class t_TAIL_17,
131901 class t_TAIL_18>
131902template <size_t t_INDEX,
131903 class t_ARG_01,
131904 class t_ARG_02,
131905 class t_ARG_03,
131906 class t_ARG_04>
131907inline
131908variant<t_HEAD, t_TAIL_01,
131909 t_TAIL_02,
131910 t_TAIL_03,
131911 t_TAIL_04,
131912 t_TAIL_05,
131913 t_TAIL_06,
131914 t_TAIL_07,
131915 t_TAIL_08,
131916 t_TAIL_09,
131917 t_TAIL_10,
131918 t_TAIL_11,
131919 t_TAIL_12,
131920 t_TAIL_13,
131921 t_TAIL_14,
131922 t_TAIL_15,
131923 t_TAIL_16,
131924 t_TAIL_17,
131925 t_TAIL_18,
131926 BSLS_COMPILERFEATURES_FILLT( 0)
131928 const t_ARG_01& arg_01,
131929 const t_ARG_02& arg_02,
131930 const t_ARG_03& arg_03,
131931 const t_ARG_04& arg_04)
131932: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131933 arg_01,
131934 arg_02,
131935 arg_03,
131936 arg_04)
131937{
131938}
131939#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
131940
131941
131942#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
131943template <class t_HEAD>
131944template <size_t t_INDEX,
131945 class t_ARG_01,
131946 class t_ARG_02,
131947 class t_ARG_03,
131948 class t_ARG_04,
131949 class t_ARG_05>
131950inline
131951variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
131953 const t_ARG_01& arg_01,
131954 const t_ARG_02& arg_02,
131955 const t_ARG_03& arg_03,
131956 const t_ARG_04& arg_04,
131957 const t_ARG_05& arg_05)
131958: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131959 arg_01,
131960 arg_02,
131961 arg_03,
131962 arg_04,
131963 arg_05)
131964{
131965}
131966#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
131967
131968#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
131969template <class t_HEAD, class t_TAIL_01>
131970template <size_t t_INDEX,
131971 class t_ARG_01,
131972 class t_ARG_02,
131973 class t_ARG_03,
131974 class t_ARG_04,
131975 class t_ARG_05>
131976inline
131977variant<t_HEAD, t_TAIL_01,
131978 BSLS_COMPILERFEATURES_FILLT(17)
131980 const t_ARG_01& arg_01,
131981 const t_ARG_02& arg_02,
131982 const t_ARG_03& arg_03,
131983 const t_ARG_04& arg_04,
131984 const t_ARG_05& arg_05)
131985: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
131986 arg_01,
131987 arg_02,
131988 arg_03,
131989 arg_04,
131990 arg_05)
131991{
131992}
131993#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
131994
131995#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
131996template <class t_HEAD, class t_TAIL_01,
131997 class t_TAIL_02>
131998template <size_t t_INDEX,
131999 class t_ARG_01,
132000 class t_ARG_02,
132001 class t_ARG_03,
132002 class t_ARG_04,
132003 class t_ARG_05>
132004inline
132005variant<t_HEAD, t_TAIL_01,
132006 t_TAIL_02,
132007 BSLS_COMPILERFEATURES_FILLT(16)
132009 const t_ARG_01& arg_01,
132010 const t_ARG_02& arg_02,
132011 const t_ARG_03& arg_03,
132012 const t_ARG_04& arg_04,
132013 const t_ARG_05& arg_05)
132014: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132015 arg_01,
132016 arg_02,
132017 arg_03,
132018 arg_04,
132019 arg_05)
132020{
132021}
132022#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
132023
132024#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
132025template <class t_HEAD, class t_TAIL_01,
132026 class t_TAIL_02,
132027 class t_TAIL_03>
132028template <size_t t_INDEX,
132029 class t_ARG_01,
132030 class t_ARG_02,
132031 class t_ARG_03,
132032 class t_ARG_04,
132033 class t_ARG_05>
132034inline
132035variant<t_HEAD, t_TAIL_01,
132036 t_TAIL_02,
132037 t_TAIL_03,
132038 BSLS_COMPILERFEATURES_FILLT(15)
132040 const t_ARG_01& arg_01,
132041 const t_ARG_02& arg_02,
132042 const t_ARG_03& arg_03,
132043 const t_ARG_04& arg_04,
132044 const t_ARG_05& arg_05)
132045: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132046 arg_01,
132047 arg_02,
132048 arg_03,
132049 arg_04,
132050 arg_05)
132051{
132052}
132053#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
132054
132055#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
132056template <class t_HEAD, class t_TAIL_01,
132057 class t_TAIL_02,
132058 class t_TAIL_03,
132059 class t_TAIL_04>
132060template <size_t t_INDEX,
132061 class t_ARG_01,
132062 class t_ARG_02,
132063 class t_ARG_03,
132064 class t_ARG_04,
132065 class t_ARG_05>
132066inline
132067variant<t_HEAD, t_TAIL_01,
132068 t_TAIL_02,
132069 t_TAIL_03,
132070 t_TAIL_04,
132071 BSLS_COMPILERFEATURES_FILLT(14)
132073 const t_ARG_01& arg_01,
132074 const t_ARG_02& arg_02,
132075 const t_ARG_03& arg_03,
132076 const t_ARG_04& arg_04,
132077 const t_ARG_05& arg_05)
132078: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132079 arg_01,
132080 arg_02,
132081 arg_03,
132082 arg_04,
132083 arg_05)
132084{
132085}
132086#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
132087
132088#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
132089template <class t_HEAD, class t_TAIL_01,
132090 class t_TAIL_02,
132091 class t_TAIL_03,
132092 class t_TAIL_04,
132093 class t_TAIL_05>
132094template <size_t t_INDEX,
132095 class t_ARG_01,
132096 class t_ARG_02,
132097 class t_ARG_03,
132098 class t_ARG_04,
132099 class t_ARG_05>
132100inline
132101variant<t_HEAD, t_TAIL_01,
132102 t_TAIL_02,
132103 t_TAIL_03,
132104 t_TAIL_04,
132105 t_TAIL_05,
132106 BSLS_COMPILERFEATURES_FILLT(13)
132108 const t_ARG_01& arg_01,
132109 const t_ARG_02& arg_02,
132110 const t_ARG_03& arg_03,
132111 const t_ARG_04& arg_04,
132112 const t_ARG_05& arg_05)
132113: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132114 arg_01,
132115 arg_02,
132116 arg_03,
132117 arg_04,
132118 arg_05)
132119{
132120}
132121#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
132122
132123#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
132124template <class t_HEAD, class t_TAIL_01,
132125 class t_TAIL_02,
132126 class t_TAIL_03,
132127 class t_TAIL_04,
132128 class t_TAIL_05,
132129 class t_TAIL_06>
132130template <size_t t_INDEX,
132131 class t_ARG_01,
132132 class t_ARG_02,
132133 class t_ARG_03,
132134 class t_ARG_04,
132135 class t_ARG_05>
132136inline
132137variant<t_HEAD, t_TAIL_01,
132138 t_TAIL_02,
132139 t_TAIL_03,
132140 t_TAIL_04,
132141 t_TAIL_05,
132142 t_TAIL_06,
132143 BSLS_COMPILERFEATURES_FILLT(12)
132145 const t_ARG_01& arg_01,
132146 const t_ARG_02& arg_02,
132147 const t_ARG_03& arg_03,
132148 const t_ARG_04& arg_04,
132149 const t_ARG_05& arg_05)
132150: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132151 arg_01,
132152 arg_02,
132153 arg_03,
132154 arg_04,
132155 arg_05)
132156{
132157}
132158#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
132159
132160#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
132161template <class t_HEAD, class t_TAIL_01,
132162 class t_TAIL_02,
132163 class t_TAIL_03,
132164 class t_TAIL_04,
132165 class t_TAIL_05,
132166 class t_TAIL_06,
132167 class t_TAIL_07>
132168template <size_t t_INDEX,
132169 class t_ARG_01,
132170 class t_ARG_02,
132171 class t_ARG_03,
132172 class t_ARG_04,
132173 class t_ARG_05>
132174inline
132175variant<t_HEAD, t_TAIL_01,
132176 t_TAIL_02,
132177 t_TAIL_03,
132178 t_TAIL_04,
132179 t_TAIL_05,
132180 t_TAIL_06,
132181 t_TAIL_07,
132182 BSLS_COMPILERFEATURES_FILLT(11)
132184 const t_ARG_01& arg_01,
132185 const t_ARG_02& arg_02,
132186 const t_ARG_03& arg_03,
132187 const t_ARG_04& arg_04,
132188 const t_ARG_05& arg_05)
132189: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132190 arg_01,
132191 arg_02,
132192 arg_03,
132193 arg_04,
132194 arg_05)
132195{
132196}
132197#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
132198
132199#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
132200template <class t_HEAD, class t_TAIL_01,
132201 class t_TAIL_02,
132202 class t_TAIL_03,
132203 class t_TAIL_04,
132204 class t_TAIL_05,
132205 class t_TAIL_06,
132206 class t_TAIL_07,
132207 class t_TAIL_08>
132208template <size_t t_INDEX,
132209 class t_ARG_01,
132210 class t_ARG_02,
132211 class t_ARG_03,
132212 class t_ARG_04,
132213 class t_ARG_05>
132214inline
132215variant<t_HEAD, t_TAIL_01,
132216 t_TAIL_02,
132217 t_TAIL_03,
132218 t_TAIL_04,
132219 t_TAIL_05,
132220 t_TAIL_06,
132221 t_TAIL_07,
132222 t_TAIL_08,
132223 BSLS_COMPILERFEATURES_FILLT(10)
132225 const t_ARG_01& arg_01,
132226 const t_ARG_02& arg_02,
132227 const t_ARG_03& arg_03,
132228 const t_ARG_04& arg_04,
132229 const t_ARG_05& arg_05)
132230: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132231 arg_01,
132232 arg_02,
132233 arg_03,
132234 arg_04,
132235 arg_05)
132236{
132237}
132238#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
132239
132240#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
132241template <class t_HEAD, class t_TAIL_01,
132242 class t_TAIL_02,
132243 class t_TAIL_03,
132244 class t_TAIL_04,
132245 class t_TAIL_05,
132246 class t_TAIL_06,
132247 class t_TAIL_07,
132248 class t_TAIL_08,
132249 class t_TAIL_09>
132250template <size_t t_INDEX,
132251 class t_ARG_01,
132252 class t_ARG_02,
132253 class t_ARG_03,
132254 class t_ARG_04,
132255 class t_ARG_05>
132256inline
132257variant<t_HEAD, t_TAIL_01,
132258 t_TAIL_02,
132259 t_TAIL_03,
132260 t_TAIL_04,
132261 t_TAIL_05,
132262 t_TAIL_06,
132263 t_TAIL_07,
132264 t_TAIL_08,
132265 t_TAIL_09,
132266 BSLS_COMPILERFEATURES_FILLT( 9)
132268 const t_ARG_01& arg_01,
132269 const t_ARG_02& arg_02,
132270 const t_ARG_03& arg_03,
132271 const t_ARG_04& arg_04,
132272 const t_ARG_05& arg_05)
132273: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132274 arg_01,
132275 arg_02,
132276 arg_03,
132277 arg_04,
132278 arg_05)
132279{
132280}
132281#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
132282
132283#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
132284template <class t_HEAD, class t_TAIL_01,
132285 class t_TAIL_02,
132286 class t_TAIL_03,
132287 class t_TAIL_04,
132288 class t_TAIL_05,
132289 class t_TAIL_06,
132290 class t_TAIL_07,
132291 class t_TAIL_08,
132292 class t_TAIL_09,
132293 class t_TAIL_10>
132294template <size_t t_INDEX,
132295 class t_ARG_01,
132296 class t_ARG_02,
132297 class t_ARG_03,
132298 class t_ARG_04,
132299 class t_ARG_05>
132300inline
132301variant<t_HEAD, t_TAIL_01,
132302 t_TAIL_02,
132303 t_TAIL_03,
132304 t_TAIL_04,
132305 t_TAIL_05,
132306 t_TAIL_06,
132307 t_TAIL_07,
132308 t_TAIL_08,
132309 t_TAIL_09,
132310 t_TAIL_10,
132311 BSLS_COMPILERFEATURES_FILLT( 8)
132313 const t_ARG_01& arg_01,
132314 const t_ARG_02& arg_02,
132315 const t_ARG_03& arg_03,
132316 const t_ARG_04& arg_04,
132317 const t_ARG_05& arg_05)
132318: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132319 arg_01,
132320 arg_02,
132321 arg_03,
132322 arg_04,
132323 arg_05)
132324{
132325}
132326#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
132327
132328#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
132329template <class t_HEAD, class t_TAIL_01,
132330 class t_TAIL_02,
132331 class t_TAIL_03,
132332 class t_TAIL_04,
132333 class t_TAIL_05,
132334 class t_TAIL_06,
132335 class t_TAIL_07,
132336 class t_TAIL_08,
132337 class t_TAIL_09,
132338 class t_TAIL_10,
132339 class t_TAIL_11>
132340template <size_t t_INDEX,
132341 class t_ARG_01,
132342 class t_ARG_02,
132343 class t_ARG_03,
132344 class t_ARG_04,
132345 class t_ARG_05>
132346inline
132347variant<t_HEAD, t_TAIL_01,
132348 t_TAIL_02,
132349 t_TAIL_03,
132350 t_TAIL_04,
132351 t_TAIL_05,
132352 t_TAIL_06,
132353 t_TAIL_07,
132354 t_TAIL_08,
132355 t_TAIL_09,
132356 t_TAIL_10,
132357 t_TAIL_11,
132358 BSLS_COMPILERFEATURES_FILLT( 7)
132360 const t_ARG_01& arg_01,
132361 const t_ARG_02& arg_02,
132362 const t_ARG_03& arg_03,
132363 const t_ARG_04& arg_04,
132364 const t_ARG_05& arg_05)
132365: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132366 arg_01,
132367 arg_02,
132368 arg_03,
132369 arg_04,
132370 arg_05)
132371{
132372}
132373#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
132374
132375#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
132376template <class t_HEAD, class t_TAIL_01,
132377 class t_TAIL_02,
132378 class t_TAIL_03,
132379 class t_TAIL_04,
132380 class t_TAIL_05,
132381 class t_TAIL_06,
132382 class t_TAIL_07,
132383 class t_TAIL_08,
132384 class t_TAIL_09,
132385 class t_TAIL_10,
132386 class t_TAIL_11,
132387 class t_TAIL_12>
132388template <size_t t_INDEX,
132389 class t_ARG_01,
132390 class t_ARG_02,
132391 class t_ARG_03,
132392 class t_ARG_04,
132393 class t_ARG_05>
132394inline
132395variant<t_HEAD, t_TAIL_01,
132396 t_TAIL_02,
132397 t_TAIL_03,
132398 t_TAIL_04,
132399 t_TAIL_05,
132400 t_TAIL_06,
132401 t_TAIL_07,
132402 t_TAIL_08,
132403 t_TAIL_09,
132404 t_TAIL_10,
132405 t_TAIL_11,
132406 t_TAIL_12,
132407 BSLS_COMPILERFEATURES_FILLT( 6)
132409 const t_ARG_01& arg_01,
132410 const t_ARG_02& arg_02,
132411 const t_ARG_03& arg_03,
132412 const t_ARG_04& arg_04,
132413 const t_ARG_05& arg_05)
132414: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132415 arg_01,
132416 arg_02,
132417 arg_03,
132418 arg_04,
132419 arg_05)
132420{
132421}
132422#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
132423
132424#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
132425template <class t_HEAD, class t_TAIL_01,
132426 class t_TAIL_02,
132427 class t_TAIL_03,
132428 class t_TAIL_04,
132429 class t_TAIL_05,
132430 class t_TAIL_06,
132431 class t_TAIL_07,
132432 class t_TAIL_08,
132433 class t_TAIL_09,
132434 class t_TAIL_10,
132435 class t_TAIL_11,
132436 class t_TAIL_12,
132437 class t_TAIL_13>
132438template <size_t t_INDEX,
132439 class t_ARG_01,
132440 class t_ARG_02,
132441 class t_ARG_03,
132442 class t_ARG_04,
132443 class t_ARG_05>
132444inline
132445variant<t_HEAD, t_TAIL_01,
132446 t_TAIL_02,
132447 t_TAIL_03,
132448 t_TAIL_04,
132449 t_TAIL_05,
132450 t_TAIL_06,
132451 t_TAIL_07,
132452 t_TAIL_08,
132453 t_TAIL_09,
132454 t_TAIL_10,
132455 t_TAIL_11,
132456 t_TAIL_12,
132457 t_TAIL_13,
132458 BSLS_COMPILERFEATURES_FILLT( 5)
132460 const t_ARG_01& arg_01,
132461 const t_ARG_02& arg_02,
132462 const t_ARG_03& arg_03,
132463 const t_ARG_04& arg_04,
132464 const t_ARG_05& arg_05)
132465: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132466 arg_01,
132467 arg_02,
132468 arg_03,
132469 arg_04,
132470 arg_05)
132471{
132472}
132473#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
132474
132475#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
132476template <class t_HEAD, class t_TAIL_01,
132477 class t_TAIL_02,
132478 class t_TAIL_03,
132479 class t_TAIL_04,
132480 class t_TAIL_05,
132481 class t_TAIL_06,
132482 class t_TAIL_07,
132483 class t_TAIL_08,
132484 class t_TAIL_09,
132485 class t_TAIL_10,
132486 class t_TAIL_11,
132487 class t_TAIL_12,
132488 class t_TAIL_13,
132489 class t_TAIL_14>
132490template <size_t t_INDEX,
132491 class t_ARG_01,
132492 class t_ARG_02,
132493 class t_ARG_03,
132494 class t_ARG_04,
132495 class t_ARG_05>
132496inline
132497variant<t_HEAD, t_TAIL_01,
132498 t_TAIL_02,
132499 t_TAIL_03,
132500 t_TAIL_04,
132501 t_TAIL_05,
132502 t_TAIL_06,
132503 t_TAIL_07,
132504 t_TAIL_08,
132505 t_TAIL_09,
132506 t_TAIL_10,
132507 t_TAIL_11,
132508 t_TAIL_12,
132509 t_TAIL_13,
132510 t_TAIL_14,
132511 BSLS_COMPILERFEATURES_FILLT( 4)
132513 const t_ARG_01& arg_01,
132514 const t_ARG_02& arg_02,
132515 const t_ARG_03& arg_03,
132516 const t_ARG_04& arg_04,
132517 const t_ARG_05& arg_05)
132518: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132519 arg_01,
132520 arg_02,
132521 arg_03,
132522 arg_04,
132523 arg_05)
132524{
132525}
132526#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
132527
132528#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
132529template <class t_HEAD, class t_TAIL_01,
132530 class t_TAIL_02,
132531 class t_TAIL_03,
132532 class t_TAIL_04,
132533 class t_TAIL_05,
132534 class t_TAIL_06,
132535 class t_TAIL_07,
132536 class t_TAIL_08,
132537 class t_TAIL_09,
132538 class t_TAIL_10,
132539 class t_TAIL_11,
132540 class t_TAIL_12,
132541 class t_TAIL_13,
132542 class t_TAIL_14,
132543 class t_TAIL_15>
132544template <size_t t_INDEX,
132545 class t_ARG_01,
132546 class t_ARG_02,
132547 class t_ARG_03,
132548 class t_ARG_04,
132549 class t_ARG_05>
132550inline
132551variant<t_HEAD, t_TAIL_01,
132552 t_TAIL_02,
132553 t_TAIL_03,
132554 t_TAIL_04,
132555 t_TAIL_05,
132556 t_TAIL_06,
132557 t_TAIL_07,
132558 t_TAIL_08,
132559 t_TAIL_09,
132560 t_TAIL_10,
132561 t_TAIL_11,
132562 t_TAIL_12,
132563 t_TAIL_13,
132564 t_TAIL_14,
132565 t_TAIL_15,
132566 BSLS_COMPILERFEATURES_FILLT( 3)
132568 const t_ARG_01& arg_01,
132569 const t_ARG_02& arg_02,
132570 const t_ARG_03& arg_03,
132571 const t_ARG_04& arg_04,
132572 const t_ARG_05& arg_05)
132573: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132574 arg_01,
132575 arg_02,
132576 arg_03,
132577 arg_04,
132578 arg_05)
132579{
132580}
132581#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
132582
132583#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
132584template <class t_HEAD, class t_TAIL_01,
132585 class t_TAIL_02,
132586 class t_TAIL_03,
132587 class t_TAIL_04,
132588 class t_TAIL_05,
132589 class t_TAIL_06,
132590 class t_TAIL_07,
132591 class t_TAIL_08,
132592 class t_TAIL_09,
132593 class t_TAIL_10,
132594 class t_TAIL_11,
132595 class t_TAIL_12,
132596 class t_TAIL_13,
132597 class t_TAIL_14,
132598 class t_TAIL_15,
132599 class t_TAIL_16>
132600template <size_t t_INDEX,
132601 class t_ARG_01,
132602 class t_ARG_02,
132603 class t_ARG_03,
132604 class t_ARG_04,
132605 class t_ARG_05>
132606inline
132607variant<t_HEAD, t_TAIL_01,
132608 t_TAIL_02,
132609 t_TAIL_03,
132610 t_TAIL_04,
132611 t_TAIL_05,
132612 t_TAIL_06,
132613 t_TAIL_07,
132614 t_TAIL_08,
132615 t_TAIL_09,
132616 t_TAIL_10,
132617 t_TAIL_11,
132618 t_TAIL_12,
132619 t_TAIL_13,
132620 t_TAIL_14,
132621 t_TAIL_15,
132622 t_TAIL_16,
132623 BSLS_COMPILERFEATURES_FILLT( 2)
132625 const t_ARG_01& arg_01,
132626 const t_ARG_02& arg_02,
132627 const t_ARG_03& arg_03,
132628 const t_ARG_04& arg_04,
132629 const t_ARG_05& arg_05)
132630: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132631 arg_01,
132632 arg_02,
132633 arg_03,
132634 arg_04,
132635 arg_05)
132636{
132637}
132638#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
132639
132640#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
132641template <class t_HEAD, class t_TAIL_01,
132642 class t_TAIL_02,
132643 class t_TAIL_03,
132644 class t_TAIL_04,
132645 class t_TAIL_05,
132646 class t_TAIL_06,
132647 class t_TAIL_07,
132648 class t_TAIL_08,
132649 class t_TAIL_09,
132650 class t_TAIL_10,
132651 class t_TAIL_11,
132652 class t_TAIL_12,
132653 class t_TAIL_13,
132654 class t_TAIL_14,
132655 class t_TAIL_15,
132656 class t_TAIL_16,
132657 class t_TAIL_17>
132658template <size_t t_INDEX,
132659 class t_ARG_01,
132660 class t_ARG_02,
132661 class t_ARG_03,
132662 class t_ARG_04,
132663 class t_ARG_05>
132664inline
132665variant<t_HEAD, t_TAIL_01,
132666 t_TAIL_02,
132667 t_TAIL_03,
132668 t_TAIL_04,
132669 t_TAIL_05,
132670 t_TAIL_06,
132671 t_TAIL_07,
132672 t_TAIL_08,
132673 t_TAIL_09,
132674 t_TAIL_10,
132675 t_TAIL_11,
132676 t_TAIL_12,
132677 t_TAIL_13,
132678 t_TAIL_14,
132679 t_TAIL_15,
132680 t_TAIL_16,
132681 t_TAIL_17,
132682 BSLS_COMPILERFEATURES_FILLT( 1)
132684 const t_ARG_01& arg_01,
132685 const t_ARG_02& arg_02,
132686 const t_ARG_03& arg_03,
132687 const t_ARG_04& arg_04,
132688 const t_ARG_05& arg_05)
132689: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132690 arg_01,
132691 arg_02,
132692 arg_03,
132693 arg_04,
132694 arg_05)
132695{
132696}
132697#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
132698
132699#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
132700template <class t_HEAD, class t_TAIL_01,
132701 class t_TAIL_02,
132702 class t_TAIL_03,
132703 class t_TAIL_04,
132704 class t_TAIL_05,
132705 class t_TAIL_06,
132706 class t_TAIL_07,
132707 class t_TAIL_08,
132708 class t_TAIL_09,
132709 class t_TAIL_10,
132710 class t_TAIL_11,
132711 class t_TAIL_12,
132712 class t_TAIL_13,
132713 class t_TAIL_14,
132714 class t_TAIL_15,
132715 class t_TAIL_16,
132716 class t_TAIL_17,
132717 class t_TAIL_18>
132718template <size_t t_INDEX,
132719 class t_ARG_01,
132720 class t_ARG_02,
132721 class t_ARG_03,
132722 class t_ARG_04,
132723 class t_ARG_05>
132724inline
132725variant<t_HEAD, t_TAIL_01,
132726 t_TAIL_02,
132727 t_TAIL_03,
132728 t_TAIL_04,
132729 t_TAIL_05,
132730 t_TAIL_06,
132731 t_TAIL_07,
132732 t_TAIL_08,
132733 t_TAIL_09,
132734 t_TAIL_10,
132735 t_TAIL_11,
132736 t_TAIL_12,
132737 t_TAIL_13,
132738 t_TAIL_14,
132739 t_TAIL_15,
132740 t_TAIL_16,
132741 t_TAIL_17,
132742 t_TAIL_18,
132743 BSLS_COMPILERFEATURES_FILLT( 0)
132745 const t_ARG_01& arg_01,
132746 const t_ARG_02& arg_02,
132747 const t_ARG_03& arg_03,
132748 const t_ARG_04& arg_04,
132749 const t_ARG_05& arg_05)
132750: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132751 arg_01,
132752 arg_02,
132753 arg_03,
132754 arg_04,
132755 arg_05)
132756{
132757}
132758#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
132759
132760
132761#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
132762template <class t_HEAD>
132763template <size_t t_INDEX,
132764 class t_ARG_01,
132765 class t_ARG_02,
132766 class t_ARG_03,
132767 class t_ARG_04,
132768 class t_ARG_05,
132769 class t_ARG_06>
132770inline
132771variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
132773 const t_ARG_01& arg_01,
132774 const t_ARG_02& arg_02,
132775 const t_ARG_03& arg_03,
132776 const t_ARG_04& arg_04,
132777 const t_ARG_05& arg_05,
132778 const t_ARG_06& arg_06)
132779: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132780 arg_01,
132781 arg_02,
132782 arg_03,
132783 arg_04,
132784 arg_05,
132785 arg_06)
132786{
132787}
132788#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
132789
132790#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
132791template <class t_HEAD, class t_TAIL_01>
132792template <size_t t_INDEX,
132793 class t_ARG_01,
132794 class t_ARG_02,
132795 class t_ARG_03,
132796 class t_ARG_04,
132797 class t_ARG_05,
132798 class t_ARG_06>
132799inline
132800variant<t_HEAD, t_TAIL_01,
132801 BSLS_COMPILERFEATURES_FILLT(17)
132803 const t_ARG_01& arg_01,
132804 const t_ARG_02& arg_02,
132805 const t_ARG_03& arg_03,
132806 const t_ARG_04& arg_04,
132807 const t_ARG_05& arg_05,
132808 const t_ARG_06& arg_06)
132809: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132810 arg_01,
132811 arg_02,
132812 arg_03,
132813 arg_04,
132814 arg_05,
132815 arg_06)
132816{
132817}
132818#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
132819
132820#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
132821template <class t_HEAD, class t_TAIL_01,
132822 class t_TAIL_02>
132823template <size_t t_INDEX,
132824 class t_ARG_01,
132825 class t_ARG_02,
132826 class t_ARG_03,
132827 class t_ARG_04,
132828 class t_ARG_05,
132829 class t_ARG_06>
132830inline
132831variant<t_HEAD, t_TAIL_01,
132832 t_TAIL_02,
132833 BSLS_COMPILERFEATURES_FILLT(16)
132835 const t_ARG_01& arg_01,
132836 const t_ARG_02& arg_02,
132837 const t_ARG_03& arg_03,
132838 const t_ARG_04& arg_04,
132839 const t_ARG_05& arg_05,
132840 const t_ARG_06& arg_06)
132841: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132842 arg_01,
132843 arg_02,
132844 arg_03,
132845 arg_04,
132846 arg_05,
132847 arg_06)
132848{
132849}
132850#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
132851
132852#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
132853template <class t_HEAD, class t_TAIL_01,
132854 class t_TAIL_02,
132855 class t_TAIL_03>
132856template <size_t t_INDEX,
132857 class t_ARG_01,
132858 class t_ARG_02,
132859 class t_ARG_03,
132860 class t_ARG_04,
132861 class t_ARG_05,
132862 class t_ARG_06>
132863inline
132864variant<t_HEAD, t_TAIL_01,
132865 t_TAIL_02,
132866 t_TAIL_03,
132867 BSLS_COMPILERFEATURES_FILLT(15)
132869 const t_ARG_01& arg_01,
132870 const t_ARG_02& arg_02,
132871 const t_ARG_03& arg_03,
132872 const t_ARG_04& arg_04,
132873 const t_ARG_05& arg_05,
132874 const t_ARG_06& arg_06)
132875: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132876 arg_01,
132877 arg_02,
132878 arg_03,
132879 arg_04,
132880 arg_05,
132881 arg_06)
132882{
132883}
132884#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
132885
132886#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
132887template <class t_HEAD, class t_TAIL_01,
132888 class t_TAIL_02,
132889 class t_TAIL_03,
132890 class t_TAIL_04>
132891template <size_t t_INDEX,
132892 class t_ARG_01,
132893 class t_ARG_02,
132894 class t_ARG_03,
132895 class t_ARG_04,
132896 class t_ARG_05,
132897 class t_ARG_06>
132898inline
132899variant<t_HEAD, t_TAIL_01,
132900 t_TAIL_02,
132901 t_TAIL_03,
132902 t_TAIL_04,
132903 BSLS_COMPILERFEATURES_FILLT(14)
132905 const t_ARG_01& arg_01,
132906 const t_ARG_02& arg_02,
132907 const t_ARG_03& arg_03,
132908 const t_ARG_04& arg_04,
132909 const t_ARG_05& arg_05,
132910 const t_ARG_06& arg_06)
132911: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132912 arg_01,
132913 arg_02,
132914 arg_03,
132915 arg_04,
132916 arg_05,
132917 arg_06)
132918{
132919}
132920#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
132921
132922#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
132923template <class t_HEAD, class t_TAIL_01,
132924 class t_TAIL_02,
132925 class t_TAIL_03,
132926 class t_TAIL_04,
132927 class t_TAIL_05>
132928template <size_t t_INDEX,
132929 class t_ARG_01,
132930 class t_ARG_02,
132931 class t_ARG_03,
132932 class t_ARG_04,
132933 class t_ARG_05,
132934 class t_ARG_06>
132935inline
132936variant<t_HEAD, t_TAIL_01,
132937 t_TAIL_02,
132938 t_TAIL_03,
132939 t_TAIL_04,
132940 t_TAIL_05,
132941 BSLS_COMPILERFEATURES_FILLT(13)
132943 const t_ARG_01& arg_01,
132944 const t_ARG_02& arg_02,
132945 const t_ARG_03& arg_03,
132946 const t_ARG_04& arg_04,
132947 const t_ARG_05& arg_05,
132948 const t_ARG_06& arg_06)
132949: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132950 arg_01,
132951 arg_02,
132952 arg_03,
132953 arg_04,
132954 arg_05,
132955 arg_06)
132956{
132957}
132958#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
132959
132960#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
132961template <class t_HEAD, class t_TAIL_01,
132962 class t_TAIL_02,
132963 class t_TAIL_03,
132964 class t_TAIL_04,
132965 class t_TAIL_05,
132966 class t_TAIL_06>
132967template <size_t t_INDEX,
132968 class t_ARG_01,
132969 class t_ARG_02,
132970 class t_ARG_03,
132971 class t_ARG_04,
132972 class t_ARG_05,
132973 class t_ARG_06>
132974inline
132975variant<t_HEAD, t_TAIL_01,
132976 t_TAIL_02,
132977 t_TAIL_03,
132978 t_TAIL_04,
132979 t_TAIL_05,
132980 t_TAIL_06,
132981 BSLS_COMPILERFEATURES_FILLT(12)
132983 const t_ARG_01& arg_01,
132984 const t_ARG_02& arg_02,
132985 const t_ARG_03& arg_03,
132986 const t_ARG_04& arg_04,
132987 const t_ARG_05& arg_05,
132988 const t_ARG_06& arg_06)
132989: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
132990 arg_01,
132991 arg_02,
132992 arg_03,
132993 arg_04,
132994 arg_05,
132995 arg_06)
132996{
132997}
132998#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
132999
133000#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
133001template <class t_HEAD, class t_TAIL_01,
133002 class t_TAIL_02,
133003 class t_TAIL_03,
133004 class t_TAIL_04,
133005 class t_TAIL_05,
133006 class t_TAIL_06,
133007 class t_TAIL_07>
133008template <size_t t_INDEX,
133009 class t_ARG_01,
133010 class t_ARG_02,
133011 class t_ARG_03,
133012 class t_ARG_04,
133013 class t_ARG_05,
133014 class t_ARG_06>
133015inline
133016variant<t_HEAD, t_TAIL_01,
133017 t_TAIL_02,
133018 t_TAIL_03,
133019 t_TAIL_04,
133020 t_TAIL_05,
133021 t_TAIL_06,
133022 t_TAIL_07,
133023 BSLS_COMPILERFEATURES_FILLT(11)
133025 const t_ARG_01& arg_01,
133026 const t_ARG_02& arg_02,
133027 const t_ARG_03& arg_03,
133028 const t_ARG_04& arg_04,
133029 const t_ARG_05& arg_05,
133030 const t_ARG_06& arg_06)
133031: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133032 arg_01,
133033 arg_02,
133034 arg_03,
133035 arg_04,
133036 arg_05,
133037 arg_06)
133038{
133039}
133040#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
133041
133042#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
133043template <class t_HEAD, class t_TAIL_01,
133044 class t_TAIL_02,
133045 class t_TAIL_03,
133046 class t_TAIL_04,
133047 class t_TAIL_05,
133048 class t_TAIL_06,
133049 class t_TAIL_07,
133050 class t_TAIL_08>
133051template <size_t t_INDEX,
133052 class t_ARG_01,
133053 class t_ARG_02,
133054 class t_ARG_03,
133055 class t_ARG_04,
133056 class t_ARG_05,
133057 class t_ARG_06>
133058inline
133059variant<t_HEAD, t_TAIL_01,
133060 t_TAIL_02,
133061 t_TAIL_03,
133062 t_TAIL_04,
133063 t_TAIL_05,
133064 t_TAIL_06,
133065 t_TAIL_07,
133066 t_TAIL_08,
133067 BSLS_COMPILERFEATURES_FILLT(10)
133069 const t_ARG_01& arg_01,
133070 const t_ARG_02& arg_02,
133071 const t_ARG_03& arg_03,
133072 const t_ARG_04& arg_04,
133073 const t_ARG_05& arg_05,
133074 const t_ARG_06& arg_06)
133075: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133076 arg_01,
133077 arg_02,
133078 arg_03,
133079 arg_04,
133080 arg_05,
133081 arg_06)
133082{
133083}
133084#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
133085
133086#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
133087template <class t_HEAD, class t_TAIL_01,
133088 class t_TAIL_02,
133089 class t_TAIL_03,
133090 class t_TAIL_04,
133091 class t_TAIL_05,
133092 class t_TAIL_06,
133093 class t_TAIL_07,
133094 class t_TAIL_08,
133095 class t_TAIL_09>
133096template <size_t t_INDEX,
133097 class t_ARG_01,
133098 class t_ARG_02,
133099 class t_ARG_03,
133100 class t_ARG_04,
133101 class t_ARG_05,
133102 class t_ARG_06>
133103inline
133104variant<t_HEAD, t_TAIL_01,
133105 t_TAIL_02,
133106 t_TAIL_03,
133107 t_TAIL_04,
133108 t_TAIL_05,
133109 t_TAIL_06,
133110 t_TAIL_07,
133111 t_TAIL_08,
133112 t_TAIL_09,
133113 BSLS_COMPILERFEATURES_FILLT( 9)
133115 const t_ARG_01& arg_01,
133116 const t_ARG_02& arg_02,
133117 const t_ARG_03& arg_03,
133118 const t_ARG_04& arg_04,
133119 const t_ARG_05& arg_05,
133120 const t_ARG_06& arg_06)
133121: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133122 arg_01,
133123 arg_02,
133124 arg_03,
133125 arg_04,
133126 arg_05,
133127 arg_06)
133128{
133129}
133130#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
133131
133132#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
133133template <class t_HEAD, class t_TAIL_01,
133134 class t_TAIL_02,
133135 class t_TAIL_03,
133136 class t_TAIL_04,
133137 class t_TAIL_05,
133138 class t_TAIL_06,
133139 class t_TAIL_07,
133140 class t_TAIL_08,
133141 class t_TAIL_09,
133142 class t_TAIL_10>
133143template <size_t t_INDEX,
133144 class t_ARG_01,
133145 class t_ARG_02,
133146 class t_ARG_03,
133147 class t_ARG_04,
133148 class t_ARG_05,
133149 class t_ARG_06>
133150inline
133151variant<t_HEAD, t_TAIL_01,
133152 t_TAIL_02,
133153 t_TAIL_03,
133154 t_TAIL_04,
133155 t_TAIL_05,
133156 t_TAIL_06,
133157 t_TAIL_07,
133158 t_TAIL_08,
133159 t_TAIL_09,
133160 t_TAIL_10,
133161 BSLS_COMPILERFEATURES_FILLT( 8)
133163 const t_ARG_01& arg_01,
133164 const t_ARG_02& arg_02,
133165 const t_ARG_03& arg_03,
133166 const t_ARG_04& arg_04,
133167 const t_ARG_05& arg_05,
133168 const t_ARG_06& arg_06)
133169: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133170 arg_01,
133171 arg_02,
133172 arg_03,
133173 arg_04,
133174 arg_05,
133175 arg_06)
133176{
133177}
133178#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
133179
133180#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
133181template <class t_HEAD, class t_TAIL_01,
133182 class t_TAIL_02,
133183 class t_TAIL_03,
133184 class t_TAIL_04,
133185 class t_TAIL_05,
133186 class t_TAIL_06,
133187 class t_TAIL_07,
133188 class t_TAIL_08,
133189 class t_TAIL_09,
133190 class t_TAIL_10,
133191 class t_TAIL_11>
133192template <size_t t_INDEX,
133193 class t_ARG_01,
133194 class t_ARG_02,
133195 class t_ARG_03,
133196 class t_ARG_04,
133197 class t_ARG_05,
133198 class t_ARG_06>
133199inline
133200variant<t_HEAD, t_TAIL_01,
133201 t_TAIL_02,
133202 t_TAIL_03,
133203 t_TAIL_04,
133204 t_TAIL_05,
133205 t_TAIL_06,
133206 t_TAIL_07,
133207 t_TAIL_08,
133208 t_TAIL_09,
133209 t_TAIL_10,
133210 t_TAIL_11,
133211 BSLS_COMPILERFEATURES_FILLT( 7)
133213 const t_ARG_01& arg_01,
133214 const t_ARG_02& arg_02,
133215 const t_ARG_03& arg_03,
133216 const t_ARG_04& arg_04,
133217 const t_ARG_05& arg_05,
133218 const t_ARG_06& arg_06)
133219: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133220 arg_01,
133221 arg_02,
133222 arg_03,
133223 arg_04,
133224 arg_05,
133225 arg_06)
133226{
133227}
133228#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
133229
133230#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
133231template <class t_HEAD, class t_TAIL_01,
133232 class t_TAIL_02,
133233 class t_TAIL_03,
133234 class t_TAIL_04,
133235 class t_TAIL_05,
133236 class t_TAIL_06,
133237 class t_TAIL_07,
133238 class t_TAIL_08,
133239 class t_TAIL_09,
133240 class t_TAIL_10,
133241 class t_TAIL_11,
133242 class t_TAIL_12>
133243template <size_t t_INDEX,
133244 class t_ARG_01,
133245 class t_ARG_02,
133246 class t_ARG_03,
133247 class t_ARG_04,
133248 class t_ARG_05,
133249 class t_ARG_06>
133250inline
133251variant<t_HEAD, t_TAIL_01,
133252 t_TAIL_02,
133253 t_TAIL_03,
133254 t_TAIL_04,
133255 t_TAIL_05,
133256 t_TAIL_06,
133257 t_TAIL_07,
133258 t_TAIL_08,
133259 t_TAIL_09,
133260 t_TAIL_10,
133261 t_TAIL_11,
133262 t_TAIL_12,
133263 BSLS_COMPILERFEATURES_FILLT( 6)
133265 const t_ARG_01& arg_01,
133266 const t_ARG_02& arg_02,
133267 const t_ARG_03& arg_03,
133268 const t_ARG_04& arg_04,
133269 const t_ARG_05& arg_05,
133270 const t_ARG_06& arg_06)
133271: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133272 arg_01,
133273 arg_02,
133274 arg_03,
133275 arg_04,
133276 arg_05,
133277 arg_06)
133278{
133279}
133280#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
133281
133282#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
133283template <class t_HEAD, class t_TAIL_01,
133284 class t_TAIL_02,
133285 class t_TAIL_03,
133286 class t_TAIL_04,
133287 class t_TAIL_05,
133288 class t_TAIL_06,
133289 class t_TAIL_07,
133290 class t_TAIL_08,
133291 class t_TAIL_09,
133292 class t_TAIL_10,
133293 class t_TAIL_11,
133294 class t_TAIL_12,
133295 class t_TAIL_13>
133296template <size_t t_INDEX,
133297 class t_ARG_01,
133298 class t_ARG_02,
133299 class t_ARG_03,
133300 class t_ARG_04,
133301 class t_ARG_05,
133302 class t_ARG_06>
133303inline
133304variant<t_HEAD, t_TAIL_01,
133305 t_TAIL_02,
133306 t_TAIL_03,
133307 t_TAIL_04,
133308 t_TAIL_05,
133309 t_TAIL_06,
133310 t_TAIL_07,
133311 t_TAIL_08,
133312 t_TAIL_09,
133313 t_TAIL_10,
133314 t_TAIL_11,
133315 t_TAIL_12,
133316 t_TAIL_13,
133317 BSLS_COMPILERFEATURES_FILLT( 5)
133319 const t_ARG_01& arg_01,
133320 const t_ARG_02& arg_02,
133321 const t_ARG_03& arg_03,
133322 const t_ARG_04& arg_04,
133323 const t_ARG_05& arg_05,
133324 const t_ARG_06& arg_06)
133325: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133326 arg_01,
133327 arg_02,
133328 arg_03,
133329 arg_04,
133330 arg_05,
133331 arg_06)
133332{
133333}
133334#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
133335
133336#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
133337template <class t_HEAD, class t_TAIL_01,
133338 class t_TAIL_02,
133339 class t_TAIL_03,
133340 class t_TAIL_04,
133341 class t_TAIL_05,
133342 class t_TAIL_06,
133343 class t_TAIL_07,
133344 class t_TAIL_08,
133345 class t_TAIL_09,
133346 class t_TAIL_10,
133347 class t_TAIL_11,
133348 class t_TAIL_12,
133349 class t_TAIL_13,
133350 class t_TAIL_14>
133351template <size_t t_INDEX,
133352 class t_ARG_01,
133353 class t_ARG_02,
133354 class t_ARG_03,
133355 class t_ARG_04,
133356 class t_ARG_05,
133357 class t_ARG_06>
133358inline
133359variant<t_HEAD, t_TAIL_01,
133360 t_TAIL_02,
133361 t_TAIL_03,
133362 t_TAIL_04,
133363 t_TAIL_05,
133364 t_TAIL_06,
133365 t_TAIL_07,
133366 t_TAIL_08,
133367 t_TAIL_09,
133368 t_TAIL_10,
133369 t_TAIL_11,
133370 t_TAIL_12,
133371 t_TAIL_13,
133372 t_TAIL_14,
133373 BSLS_COMPILERFEATURES_FILLT( 4)
133375 const t_ARG_01& arg_01,
133376 const t_ARG_02& arg_02,
133377 const t_ARG_03& arg_03,
133378 const t_ARG_04& arg_04,
133379 const t_ARG_05& arg_05,
133380 const t_ARG_06& arg_06)
133381: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133382 arg_01,
133383 arg_02,
133384 arg_03,
133385 arg_04,
133386 arg_05,
133387 arg_06)
133388{
133389}
133390#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
133391
133392#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
133393template <class t_HEAD, class t_TAIL_01,
133394 class t_TAIL_02,
133395 class t_TAIL_03,
133396 class t_TAIL_04,
133397 class t_TAIL_05,
133398 class t_TAIL_06,
133399 class t_TAIL_07,
133400 class t_TAIL_08,
133401 class t_TAIL_09,
133402 class t_TAIL_10,
133403 class t_TAIL_11,
133404 class t_TAIL_12,
133405 class t_TAIL_13,
133406 class t_TAIL_14,
133407 class t_TAIL_15>
133408template <size_t t_INDEX,
133409 class t_ARG_01,
133410 class t_ARG_02,
133411 class t_ARG_03,
133412 class t_ARG_04,
133413 class t_ARG_05,
133414 class t_ARG_06>
133415inline
133416variant<t_HEAD, t_TAIL_01,
133417 t_TAIL_02,
133418 t_TAIL_03,
133419 t_TAIL_04,
133420 t_TAIL_05,
133421 t_TAIL_06,
133422 t_TAIL_07,
133423 t_TAIL_08,
133424 t_TAIL_09,
133425 t_TAIL_10,
133426 t_TAIL_11,
133427 t_TAIL_12,
133428 t_TAIL_13,
133429 t_TAIL_14,
133430 t_TAIL_15,
133431 BSLS_COMPILERFEATURES_FILLT( 3)
133433 const t_ARG_01& arg_01,
133434 const t_ARG_02& arg_02,
133435 const t_ARG_03& arg_03,
133436 const t_ARG_04& arg_04,
133437 const t_ARG_05& arg_05,
133438 const t_ARG_06& arg_06)
133439: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133440 arg_01,
133441 arg_02,
133442 arg_03,
133443 arg_04,
133444 arg_05,
133445 arg_06)
133446{
133447}
133448#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
133449
133450#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
133451template <class t_HEAD, class t_TAIL_01,
133452 class t_TAIL_02,
133453 class t_TAIL_03,
133454 class t_TAIL_04,
133455 class t_TAIL_05,
133456 class t_TAIL_06,
133457 class t_TAIL_07,
133458 class t_TAIL_08,
133459 class t_TAIL_09,
133460 class t_TAIL_10,
133461 class t_TAIL_11,
133462 class t_TAIL_12,
133463 class t_TAIL_13,
133464 class t_TAIL_14,
133465 class t_TAIL_15,
133466 class t_TAIL_16>
133467template <size_t t_INDEX,
133468 class t_ARG_01,
133469 class t_ARG_02,
133470 class t_ARG_03,
133471 class t_ARG_04,
133472 class t_ARG_05,
133473 class t_ARG_06>
133474inline
133475variant<t_HEAD, t_TAIL_01,
133476 t_TAIL_02,
133477 t_TAIL_03,
133478 t_TAIL_04,
133479 t_TAIL_05,
133480 t_TAIL_06,
133481 t_TAIL_07,
133482 t_TAIL_08,
133483 t_TAIL_09,
133484 t_TAIL_10,
133485 t_TAIL_11,
133486 t_TAIL_12,
133487 t_TAIL_13,
133488 t_TAIL_14,
133489 t_TAIL_15,
133490 t_TAIL_16,
133491 BSLS_COMPILERFEATURES_FILLT( 2)
133493 const t_ARG_01& arg_01,
133494 const t_ARG_02& arg_02,
133495 const t_ARG_03& arg_03,
133496 const t_ARG_04& arg_04,
133497 const t_ARG_05& arg_05,
133498 const t_ARG_06& arg_06)
133499: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133500 arg_01,
133501 arg_02,
133502 arg_03,
133503 arg_04,
133504 arg_05,
133505 arg_06)
133506{
133507}
133508#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
133509
133510#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
133511template <class t_HEAD, class t_TAIL_01,
133512 class t_TAIL_02,
133513 class t_TAIL_03,
133514 class t_TAIL_04,
133515 class t_TAIL_05,
133516 class t_TAIL_06,
133517 class t_TAIL_07,
133518 class t_TAIL_08,
133519 class t_TAIL_09,
133520 class t_TAIL_10,
133521 class t_TAIL_11,
133522 class t_TAIL_12,
133523 class t_TAIL_13,
133524 class t_TAIL_14,
133525 class t_TAIL_15,
133526 class t_TAIL_16,
133527 class t_TAIL_17>
133528template <size_t t_INDEX,
133529 class t_ARG_01,
133530 class t_ARG_02,
133531 class t_ARG_03,
133532 class t_ARG_04,
133533 class t_ARG_05,
133534 class t_ARG_06>
133535inline
133536variant<t_HEAD, t_TAIL_01,
133537 t_TAIL_02,
133538 t_TAIL_03,
133539 t_TAIL_04,
133540 t_TAIL_05,
133541 t_TAIL_06,
133542 t_TAIL_07,
133543 t_TAIL_08,
133544 t_TAIL_09,
133545 t_TAIL_10,
133546 t_TAIL_11,
133547 t_TAIL_12,
133548 t_TAIL_13,
133549 t_TAIL_14,
133550 t_TAIL_15,
133551 t_TAIL_16,
133552 t_TAIL_17,
133553 BSLS_COMPILERFEATURES_FILLT( 1)
133555 const t_ARG_01& arg_01,
133556 const t_ARG_02& arg_02,
133557 const t_ARG_03& arg_03,
133558 const t_ARG_04& arg_04,
133559 const t_ARG_05& arg_05,
133560 const t_ARG_06& arg_06)
133561: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133562 arg_01,
133563 arg_02,
133564 arg_03,
133565 arg_04,
133566 arg_05,
133567 arg_06)
133568{
133569}
133570#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
133571
133572#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
133573template <class t_HEAD, class t_TAIL_01,
133574 class t_TAIL_02,
133575 class t_TAIL_03,
133576 class t_TAIL_04,
133577 class t_TAIL_05,
133578 class t_TAIL_06,
133579 class t_TAIL_07,
133580 class t_TAIL_08,
133581 class t_TAIL_09,
133582 class t_TAIL_10,
133583 class t_TAIL_11,
133584 class t_TAIL_12,
133585 class t_TAIL_13,
133586 class t_TAIL_14,
133587 class t_TAIL_15,
133588 class t_TAIL_16,
133589 class t_TAIL_17,
133590 class t_TAIL_18>
133591template <size_t t_INDEX,
133592 class t_ARG_01,
133593 class t_ARG_02,
133594 class t_ARG_03,
133595 class t_ARG_04,
133596 class t_ARG_05,
133597 class t_ARG_06>
133598inline
133599variant<t_HEAD, t_TAIL_01,
133600 t_TAIL_02,
133601 t_TAIL_03,
133602 t_TAIL_04,
133603 t_TAIL_05,
133604 t_TAIL_06,
133605 t_TAIL_07,
133606 t_TAIL_08,
133607 t_TAIL_09,
133608 t_TAIL_10,
133609 t_TAIL_11,
133610 t_TAIL_12,
133611 t_TAIL_13,
133612 t_TAIL_14,
133613 t_TAIL_15,
133614 t_TAIL_16,
133615 t_TAIL_17,
133616 t_TAIL_18,
133617 BSLS_COMPILERFEATURES_FILLT( 0)
133619 const t_ARG_01& arg_01,
133620 const t_ARG_02& arg_02,
133621 const t_ARG_03& arg_03,
133622 const t_ARG_04& arg_04,
133623 const t_ARG_05& arg_05,
133624 const t_ARG_06& arg_06)
133625: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133626 arg_01,
133627 arg_02,
133628 arg_03,
133629 arg_04,
133630 arg_05,
133631 arg_06)
133632{
133633}
133634#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
133635
133636
133637#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
133638template <class t_HEAD>
133639template <size_t t_INDEX,
133640 class t_ARG_01,
133641 class t_ARG_02,
133642 class t_ARG_03,
133643 class t_ARG_04,
133644 class t_ARG_05,
133645 class t_ARG_06,
133646 class t_ARG_07>
133647inline
133648variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
133650 const t_ARG_01& arg_01,
133651 const t_ARG_02& arg_02,
133652 const t_ARG_03& arg_03,
133653 const t_ARG_04& arg_04,
133654 const t_ARG_05& arg_05,
133655 const t_ARG_06& arg_06,
133656 const t_ARG_07& arg_07)
133657: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133658 arg_01,
133659 arg_02,
133660 arg_03,
133661 arg_04,
133662 arg_05,
133663 arg_06,
133664 arg_07)
133665{
133666}
133667#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
133668
133669#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
133670template <class t_HEAD, class t_TAIL_01>
133671template <size_t t_INDEX,
133672 class t_ARG_01,
133673 class t_ARG_02,
133674 class t_ARG_03,
133675 class t_ARG_04,
133676 class t_ARG_05,
133677 class t_ARG_06,
133678 class t_ARG_07>
133679inline
133680variant<t_HEAD, t_TAIL_01,
133681 BSLS_COMPILERFEATURES_FILLT(17)
133683 const t_ARG_01& arg_01,
133684 const t_ARG_02& arg_02,
133685 const t_ARG_03& arg_03,
133686 const t_ARG_04& arg_04,
133687 const t_ARG_05& arg_05,
133688 const t_ARG_06& arg_06,
133689 const t_ARG_07& arg_07)
133690: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133691 arg_01,
133692 arg_02,
133693 arg_03,
133694 arg_04,
133695 arg_05,
133696 arg_06,
133697 arg_07)
133698{
133699}
133700#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
133701
133702#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
133703template <class t_HEAD, class t_TAIL_01,
133704 class t_TAIL_02>
133705template <size_t t_INDEX,
133706 class t_ARG_01,
133707 class t_ARG_02,
133708 class t_ARG_03,
133709 class t_ARG_04,
133710 class t_ARG_05,
133711 class t_ARG_06,
133712 class t_ARG_07>
133713inline
133714variant<t_HEAD, t_TAIL_01,
133715 t_TAIL_02,
133716 BSLS_COMPILERFEATURES_FILLT(16)
133718 const t_ARG_01& arg_01,
133719 const t_ARG_02& arg_02,
133720 const t_ARG_03& arg_03,
133721 const t_ARG_04& arg_04,
133722 const t_ARG_05& arg_05,
133723 const t_ARG_06& arg_06,
133724 const t_ARG_07& arg_07)
133725: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133726 arg_01,
133727 arg_02,
133728 arg_03,
133729 arg_04,
133730 arg_05,
133731 arg_06,
133732 arg_07)
133733{
133734}
133735#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
133736
133737#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
133738template <class t_HEAD, class t_TAIL_01,
133739 class t_TAIL_02,
133740 class t_TAIL_03>
133741template <size_t t_INDEX,
133742 class t_ARG_01,
133743 class t_ARG_02,
133744 class t_ARG_03,
133745 class t_ARG_04,
133746 class t_ARG_05,
133747 class t_ARG_06,
133748 class t_ARG_07>
133749inline
133750variant<t_HEAD, t_TAIL_01,
133751 t_TAIL_02,
133752 t_TAIL_03,
133753 BSLS_COMPILERFEATURES_FILLT(15)
133755 const t_ARG_01& arg_01,
133756 const t_ARG_02& arg_02,
133757 const t_ARG_03& arg_03,
133758 const t_ARG_04& arg_04,
133759 const t_ARG_05& arg_05,
133760 const t_ARG_06& arg_06,
133761 const t_ARG_07& arg_07)
133762: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133763 arg_01,
133764 arg_02,
133765 arg_03,
133766 arg_04,
133767 arg_05,
133768 arg_06,
133769 arg_07)
133770{
133771}
133772#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
133773
133774#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
133775template <class t_HEAD, class t_TAIL_01,
133776 class t_TAIL_02,
133777 class t_TAIL_03,
133778 class t_TAIL_04>
133779template <size_t t_INDEX,
133780 class t_ARG_01,
133781 class t_ARG_02,
133782 class t_ARG_03,
133783 class t_ARG_04,
133784 class t_ARG_05,
133785 class t_ARG_06,
133786 class t_ARG_07>
133787inline
133788variant<t_HEAD, t_TAIL_01,
133789 t_TAIL_02,
133790 t_TAIL_03,
133791 t_TAIL_04,
133792 BSLS_COMPILERFEATURES_FILLT(14)
133794 const t_ARG_01& arg_01,
133795 const t_ARG_02& arg_02,
133796 const t_ARG_03& arg_03,
133797 const t_ARG_04& arg_04,
133798 const t_ARG_05& arg_05,
133799 const t_ARG_06& arg_06,
133800 const t_ARG_07& arg_07)
133801: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133802 arg_01,
133803 arg_02,
133804 arg_03,
133805 arg_04,
133806 arg_05,
133807 arg_06,
133808 arg_07)
133809{
133810}
133811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
133812
133813#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
133814template <class t_HEAD, class t_TAIL_01,
133815 class t_TAIL_02,
133816 class t_TAIL_03,
133817 class t_TAIL_04,
133818 class t_TAIL_05>
133819template <size_t t_INDEX,
133820 class t_ARG_01,
133821 class t_ARG_02,
133822 class t_ARG_03,
133823 class t_ARG_04,
133824 class t_ARG_05,
133825 class t_ARG_06,
133826 class t_ARG_07>
133827inline
133828variant<t_HEAD, t_TAIL_01,
133829 t_TAIL_02,
133830 t_TAIL_03,
133831 t_TAIL_04,
133832 t_TAIL_05,
133833 BSLS_COMPILERFEATURES_FILLT(13)
133835 const t_ARG_01& arg_01,
133836 const t_ARG_02& arg_02,
133837 const t_ARG_03& arg_03,
133838 const t_ARG_04& arg_04,
133839 const t_ARG_05& arg_05,
133840 const t_ARG_06& arg_06,
133841 const t_ARG_07& arg_07)
133842: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133843 arg_01,
133844 arg_02,
133845 arg_03,
133846 arg_04,
133847 arg_05,
133848 arg_06,
133849 arg_07)
133850{
133851}
133852#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
133853
133854#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
133855template <class t_HEAD, class t_TAIL_01,
133856 class t_TAIL_02,
133857 class t_TAIL_03,
133858 class t_TAIL_04,
133859 class t_TAIL_05,
133860 class t_TAIL_06>
133861template <size_t t_INDEX,
133862 class t_ARG_01,
133863 class t_ARG_02,
133864 class t_ARG_03,
133865 class t_ARG_04,
133866 class t_ARG_05,
133867 class t_ARG_06,
133868 class t_ARG_07>
133869inline
133870variant<t_HEAD, t_TAIL_01,
133871 t_TAIL_02,
133872 t_TAIL_03,
133873 t_TAIL_04,
133874 t_TAIL_05,
133875 t_TAIL_06,
133876 BSLS_COMPILERFEATURES_FILLT(12)
133878 const t_ARG_01& arg_01,
133879 const t_ARG_02& arg_02,
133880 const t_ARG_03& arg_03,
133881 const t_ARG_04& arg_04,
133882 const t_ARG_05& arg_05,
133883 const t_ARG_06& arg_06,
133884 const t_ARG_07& arg_07)
133885: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133886 arg_01,
133887 arg_02,
133888 arg_03,
133889 arg_04,
133890 arg_05,
133891 arg_06,
133892 arg_07)
133893{
133894}
133895#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
133896
133897#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
133898template <class t_HEAD, class t_TAIL_01,
133899 class t_TAIL_02,
133900 class t_TAIL_03,
133901 class t_TAIL_04,
133902 class t_TAIL_05,
133903 class t_TAIL_06,
133904 class t_TAIL_07>
133905template <size_t t_INDEX,
133906 class t_ARG_01,
133907 class t_ARG_02,
133908 class t_ARG_03,
133909 class t_ARG_04,
133910 class t_ARG_05,
133911 class t_ARG_06,
133912 class t_ARG_07>
133913inline
133914variant<t_HEAD, t_TAIL_01,
133915 t_TAIL_02,
133916 t_TAIL_03,
133917 t_TAIL_04,
133918 t_TAIL_05,
133919 t_TAIL_06,
133920 t_TAIL_07,
133921 BSLS_COMPILERFEATURES_FILLT(11)
133923 const t_ARG_01& arg_01,
133924 const t_ARG_02& arg_02,
133925 const t_ARG_03& arg_03,
133926 const t_ARG_04& arg_04,
133927 const t_ARG_05& arg_05,
133928 const t_ARG_06& arg_06,
133929 const t_ARG_07& arg_07)
133930: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133931 arg_01,
133932 arg_02,
133933 arg_03,
133934 arg_04,
133935 arg_05,
133936 arg_06,
133937 arg_07)
133938{
133939}
133940#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
133941
133942#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
133943template <class t_HEAD, class t_TAIL_01,
133944 class t_TAIL_02,
133945 class t_TAIL_03,
133946 class t_TAIL_04,
133947 class t_TAIL_05,
133948 class t_TAIL_06,
133949 class t_TAIL_07,
133950 class t_TAIL_08>
133951template <size_t t_INDEX,
133952 class t_ARG_01,
133953 class t_ARG_02,
133954 class t_ARG_03,
133955 class t_ARG_04,
133956 class t_ARG_05,
133957 class t_ARG_06,
133958 class t_ARG_07>
133959inline
133960variant<t_HEAD, t_TAIL_01,
133961 t_TAIL_02,
133962 t_TAIL_03,
133963 t_TAIL_04,
133964 t_TAIL_05,
133965 t_TAIL_06,
133966 t_TAIL_07,
133967 t_TAIL_08,
133968 BSLS_COMPILERFEATURES_FILLT(10)
133970 const t_ARG_01& arg_01,
133971 const t_ARG_02& arg_02,
133972 const t_ARG_03& arg_03,
133973 const t_ARG_04& arg_04,
133974 const t_ARG_05& arg_05,
133975 const t_ARG_06& arg_06,
133976 const t_ARG_07& arg_07)
133977: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
133978 arg_01,
133979 arg_02,
133980 arg_03,
133981 arg_04,
133982 arg_05,
133983 arg_06,
133984 arg_07)
133985{
133986}
133987#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
133988
133989#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
133990template <class t_HEAD, class t_TAIL_01,
133991 class t_TAIL_02,
133992 class t_TAIL_03,
133993 class t_TAIL_04,
133994 class t_TAIL_05,
133995 class t_TAIL_06,
133996 class t_TAIL_07,
133997 class t_TAIL_08,
133998 class t_TAIL_09>
133999template <size_t t_INDEX,
134000 class t_ARG_01,
134001 class t_ARG_02,
134002 class t_ARG_03,
134003 class t_ARG_04,
134004 class t_ARG_05,
134005 class t_ARG_06,
134006 class t_ARG_07>
134007inline
134008variant<t_HEAD, t_TAIL_01,
134009 t_TAIL_02,
134010 t_TAIL_03,
134011 t_TAIL_04,
134012 t_TAIL_05,
134013 t_TAIL_06,
134014 t_TAIL_07,
134015 t_TAIL_08,
134016 t_TAIL_09,
134017 BSLS_COMPILERFEATURES_FILLT( 9)
134019 const t_ARG_01& arg_01,
134020 const t_ARG_02& arg_02,
134021 const t_ARG_03& arg_03,
134022 const t_ARG_04& arg_04,
134023 const t_ARG_05& arg_05,
134024 const t_ARG_06& arg_06,
134025 const t_ARG_07& arg_07)
134026: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134027 arg_01,
134028 arg_02,
134029 arg_03,
134030 arg_04,
134031 arg_05,
134032 arg_06,
134033 arg_07)
134034{
134035}
134036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
134037
134038#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
134039template <class t_HEAD, class t_TAIL_01,
134040 class t_TAIL_02,
134041 class t_TAIL_03,
134042 class t_TAIL_04,
134043 class t_TAIL_05,
134044 class t_TAIL_06,
134045 class t_TAIL_07,
134046 class t_TAIL_08,
134047 class t_TAIL_09,
134048 class t_TAIL_10>
134049template <size_t t_INDEX,
134050 class t_ARG_01,
134051 class t_ARG_02,
134052 class t_ARG_03,
134053 class t_ARG_04,
134054 class t_ARG_05,
134055 class t_ARG_06,
134056 class t_ARG_07>
134057inline
134058variant<t_HEAD, t_TAIL_01,
134059 t_TAIL_02,
134060 t_TAIL_03,
134061 t_TAIL_04,
134062 t_TAIL_05,
134063 t_TAIL_06,
134064 t_TAIL_07,
134065 t_TAIL_08,
134066 t_TAIL_09,
134067 t_TAIL_10,
134068 BSLS_COMPILERFEATURES_FILLT( 8)
134070 const t_ARG_01& arg_01,
134071 const t_ARG_02& arg_02,
134072 const t_ARG_03& arg_03,
134073 const t_ARG_04& arg_04,
134074 const t_ARG_05& arg_05,
134075 const t_ARG_06& arg_06,
134076 const t_ARG_07& arg_07)
134077: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134078 arg_01,
134079 arg_02,
134080 arg_03,
134081 arg_04,
134082 arg_05,
134083 arg_06,
134084 arg_07)
134085{
134086}
134087#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
134088
134089#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
134090template <class t_HEAD, class t_TAIL_01,
134091 class t_TAIL_02,
134092 class t_TAIL_03,
134093 class t_TAIL_04,
134094 class t_TAIL_05,
134095 class t_TAIL_06,
134096 class t_TAIL_07,
134097 class t_TAIL_08,
134098 class t_TAIL_09,
134099 class t_TAIL_10,
134100 class t_TAIL_11>
134101template <size_t t_INDEX,
134102 class t_ARG_01,
134103 class t_ARG_02,
134104 class t_ARG_03,
134105 class t_ARG_04,
134106 class t_ARG_05,
134107 class t_ARG_06,
134108 class t_ARG_07>
134109inline
134110variant<t_HEAD, t_TAIL_01,
134111 t_TAIL_02,
134112 t_TAIL_03,
134113 t_TAIL_04,
134114 t_TAIL_05,
134115 t_TAIL_06,
134116 t_TAIL_07,
134117 t_TAIL_08,
134118 t_TAIL_09,
134119 t_TAIL_10,
134120 t_TAIL_11,
134121 BSLS_COMPILERFEATURES_FILLT( 7)
134123 const t_ARG_01& arg_01,
134124 const t_ARG_02& arg_02,
134125 const t_ARG_03& arg_03,
134126 const t_ARG_04& arg_04,
134127 const t_ARG_05& arg_05,
134128 const t_ARG_06& arg_06,
134129 const t_ARG_07& arg_07)
134130: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134131 arg_01,
134132 arg_02,
134133 arg_03,
134134 arg_04,
134135 arg_05,
134136 arg_06,
134137 arg_07)
134138{
134139}
134140#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
134141
134142#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
134143template <class t_HEAD, class t_TAIL_01,
134144 class t_TAIL_02,
134145 class t_TAIL_03,
134146 class t_TAIL_04,
134147 class t_TAIL_05,
134148 class t_TAIL_06,
134149 class t_TAIL_07,
134150 class t_TAIL_08,
134151 class t_TAIL_09,
134152 class t_TAIL_10,
134153 class t_TAIL_11,
134154 class t_TAIL_12>
134155template <size_t t_INDEX,
134156 class t_ARG_01,
134157 class t_ARG_02,
134158 class t_ARG_03,
134159 class t_ARG_04,
134160 class t_ARG_05,
134161 class t_ARG_06,
134162 class t_ARG_07>
134163inline
134164variant<t_HEAD, t_TAIL_01,
134165 t_TAIL_02,
134166 t_TAIL_03,
134167 t_TAIL_04,
134168 t_TAIL_05,
134169 t_TAIL_06,
134170 t_TAIL_07,
134171 t_TAIL_08,
134172 t_TAIL_09,
134173 t_TAIL_10,
134174 t_TAIL_11,
134175 t_TAIL_12,
134176 BSLS_COMPILERFEATURES_FILLT( 6)
134178 const t_ARG_01& arg_01,
134179 const t_ARG_02& arg_02,
134180 const t_ARG_03& arg_03,
134181 const t_ARG_04& arg_04,
134182 const t_ARG_05& arg_05,
134183 const t_ARG_06& arg_06,
134184 const t_ARG_07& arg_07)
134185: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134186 arg_01,
134187 arg_02,
134188 arg_03,
134189 arg_04,
134190 arg_05,
134191 arg_06,
134192 arg_07)
134193{
134194}
134195#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
134196
134197#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
134198template <class t_HEAD, class t_TAIL_01,
134199 class t_TAIL_02,
134200 class t_TAIL_03,
134201 class t_TAIL_04,
134202 class t_TAIL_05,
134203 class t_TAIL_06,
134204 class t_TAIL_07,
134205 class t_TAIL_08,
134206 class t_TAIL_09,
134207 class t_TAIL_10,
134208 class t_TAIL_11,
134209 class t_TAIL_12,
134210 class t_TAIL_13>
134211template <size_t t_INDEX,
134212 class t_ARG_01,
134213 class t_ARG_02,
134214 class t_ARG_03,
134215 class t_ARG_04,
134216 class t_ARG_05,
134217 class t_ARG_06,
134218 class t_ARG_07>
134219inline
134220variant<t_HEAD, t_TAIL_01,
134221 t_TAIL_02,
134222 t_TAIL_03,
134223 t_TAIL_04,
134224 t_TAIL_05,
134225 t_TAIL_06,
134226 t_TAIL_07,
134227 t_TAIL_08,
134228 t_TAIL_09,
134229 t_TAIL_10,
134230 t_TAIL_11,
134231 t_TAIL_12,
134232 t_TAIL_13,
134233 BSLS_COMPILERFEATURES_FILLT( 5)
134235 const t_ARG_01& arg_01,
134236 const t_ARG_02& arg_02,
134237 const t_ARG_03& arg_03,
134238 const t_ARG_04& arg_04,
134239 const t_ARG_05& arg_05,
134240 const t_ARG_06& arg_06,
134241 const t_ARG_07& arg_07)
134242: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134243 arg_01,
134244 arg_02,
134245 arg_03,
134246 arg_04,
134247 arg_05,
134248 arg_06,
134249 arg_07)
134250{
134251}
134252#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
134253
134254#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
134255template <class t_HEAD, class t_TAIL_01,
134256 class t_TAIL_02,
134257 class t_TAIL_03,
134258 class t_TAIL_04,
134259 class t_TAIL_05,
134260 class t_TAIL_06,
134261 class t_TAIL_07,
134262 class t_TAIL_08,
134263 class t_TAIL_09,
134264 class t_TAIL_10,
134265 class t_TAIL_11,
134266 class t_TAIL_12,
134267 class t_TAIL_13,
134268 class t_TAIL_14>
134269template <size_t t_INDEX,
134270 class t_ARG_01,
134271 class t_ARG_02,
134272 class t_ARG_03,
134273 class t_ARG_04,
134274 class t_ARG_05,
134275 class t_ARG_06,
134276 class t_ARG_07>
134277inline
134278variant<t_HEAD, t_TAIL_01,
134279 t_TAIL_02,
134280 t_TAIL_03,
134281 t_TAIL_04,
134282 t_TAIL_05,
134283 t_TAIL_06,
134284 t_TAIL_07,
134285 t_TAIL_08,
134286 t_TAIL_09,
134287 t_TAIL_10,
134288 t_TAIL_11,
134289 t_TAIL_12,
134290 t_TAIL_13,
134291 t_TAIL_14,
134292 BSLS_COMPILERFEATURES_FILLT( 4)
134294 const t_ARG_01& arg_01,
134295 const t_ARG_02& arg_02,
134296 const t_ARG_03& arg_03,
134297 const t_ARG_04& arg_04,
134298 const t_ARG_05& arg_05,
134299 const t_ARG_06& arg_06,
134300 const t_ARG_07& arg_07)
134301: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134302 arg_01,
134303 arg_02,
134304 arg_03,
134305 arg_04,
134306 arg_05,
134307 arg_06,
134308 arg_07)
134309{
134310}
134311#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
134312
134313#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
134314template <class t_HEAD, class t_TAIL_01,
134315 class t_TAIL_02,
134316 class t_TAIL_03,
134317 class t_TAIL_04,
134318 class t_TAIL_05,
134319 class t_TAIL_06,
134320 class t_TAIL_07,
134321 class t_TAIL_08,
134322 class t_TAIL_09,
134323 class t_TAIL_10,
134324 class t_TAIL_11,
134325 class t_TAIL_12,
134326 class t_TAIL_13,
134327 class t_TAIL_14,
134328 class t_TAIL_15>
134329template <size_t t_INDEX,
134330 class t_ARG_01,
134331 class t_ARG_02,
134332 class t_ARG_03,
134333 class t_ARG_04,
134334 class t_ARG_05,
134335 class t_ARG_06,
134336 class t_ARG_07>
134337inline
134338variant<t_HEAD, t_TAIL_01,
134339 t_TAIL_02,
134340 t_TAIL_03,
134341 t_TAIL_04,
134342 t_TAIL_05,
134343 t_TAIL_06,
134344 t_TAIL_07,
134345 t_TAIL_08,
134346 t_TAIL_09,
134347 t_TAIL_10,
134348 t_TAIL_11,
134349 t_TAIL_12,
134350 t_TAIL_13,
134351 t_TAIL_14,
134352 t_TAIL_15,
134353 BSLS_COMPILERFEATURES_FILLT( 3)
134355 const t_ARG_01& arg_01,
134356 const t_ARG_02& arg_02,
134357 const t_ARG_03& arg_03,
134358 const t_ARG_04& arg_04,
134359 const t_ARG_05& arg_05,
134360 const t_ARG_06& arg_06,
134361 const t_ARG_07& arg_07)
134362: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134363 arg_01,
134364 arg_02,
134365 arg_03,
134366 arg_04,
134367 arg_05,
134368 arg_06,
134369 arg_07)
134370{
134371}
134372#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
134373
134374#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
134375template <class t_HEAD, class t_TAIL_01,
134376 class t_TAIL_02,
134377 class t_TAIL_03,
134378 class t_TAIL_04,
134379 class t_TAIL_05,
134380 class t_TAIL_06,
134381 class t_TAIL_07,
134382 class t_TAIL_08,
134383 class t_TAIL_09,
134384 class t_TAIL_10,
134385 class t_TAIL_11,
134386 class t_TAIL_12,
134387 class t_TAIL_13,
134388 class t_TAIL_14,
134389 class t_TAIL_15,
134390 class t_TAIL_16>
134391template <size_t t_INDEX,
134392 class t_ARG_01,
134393 class t_ARG_02,
134394 class t_ARG_03,
134395 class t_ARG_04,
134396 class t_ARG_05,
134397 class t_ARG_06,
134398 class t_ARG_07>
134399inline
134400variant<t_HEAD, t_TAIL_01,
134401 t_TAIL_02,
134402 t_TAIL_03,
134403 t_TAIL_04,
134404 t_TAIL_05,
134405 t_TAIL_06,
134406 t_TAIL_07,
134407 t_TAIL_08,
134408 t_TAIL_09,
134409 t_TAIL_10,
134410 t_TAIL_11,
134411 t_TAIL_12,
134412 t_TAIL_13,
134413 t_TAIL_14,
134414 t_TAIL_15,
134415 t_TAIL_16,
134416 BSLS_COMPILERFEATURES_FILLT( 2)
134418 const t_ARG_01& arg_01,
134419 const t_ARG_02& arg_02,
134420 const t_ARG_03& arg_03,
134421 const t_ARG_04& arg_04,
134422 const t_ARG_05& arg_05,
134423 const t_ARG_06& arg_06,
134424 const t_ARG_07& arg_07)
134425: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134426 arg_01,
134427 arg_02,
134428 arg_03,
134429 arg_04,
134430 arg_05,
134431 arg_06,
134432 arg_07)
134433{
134434}
134435#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
134436
134437#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
134438template <class t_HEAD, class t_TAIL_01,
134439 class t_TAIL_02,
134440 class t_TAIL_03,
134441 class t_TAIL_04,
134442 class t_TAIL_05,
134443 class t_TAIL_06,
134444 class t_TAIL_07,
134445 class t_TAIL_08,
134446 class t_TAIL_09,
134447 class t_TAIL_10,
134448 class t_TAIL_11,
134449 class t_TAIL_12,
134450 class t_TAIL_13,
134451 class t_TAIL_14,
134452 class t_TAIL_15,
134453 class t_TAIL_16,
134454 class t_TAIL_17>
134455template <size_t t_INDEX,
134456 class t_ARG_01,
134457 class t_ARG_02,
134458 class t_ARG_03,
134459 class t_ARG_04,
134460 class t_ARG_05,
134461 class t_ARG_06,
134462 class t_ARG_07>
134463inline
134464variant<t_HEAD, t_TAIL_01,
134465 t_TAIL_02,
134466 t_TAIL_03,
134467 t_TAIL_04,
134468 t_TAIL_05,
134469 t_TAIL_06,
134470 t_TAIL_07,
134471 t_TAIL_08,
134472 t_TAIL_09,
134473 t_TAIL_10,
134474 t_TAIL_11,
134475 t_TAIL_12,
134476 t_TAIL_13,
134477 t_TAIL_14,
134478 t_TAIL_15,
134479 t_TAIL_16,
134480 t_TAIL_17,
134481 BSLS_COMPILERFEATURES_FILLT( 1)
134483 const t_ARG_01& arg_01,
134484 const t_ARG_02& arg_02,
134485 const t_ARG_03& arg_03,
134486 const t_ARG_04& arg_04,
134487 const t_ARG_05& arg_05,
134488 const t_ARG_06& arg_06,
134489 const t_ARG_07& arg_07)
134490: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134491 arg_01,
134492 arg_02,
134493 arg_03,
134494 arg_04,
134495 arg_05,
134496 arg_06,
134497 arg_07)
134498{
134499}
134500#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
134501
134502#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
134503template <class t_HEAD, class t_TAIL_01,
134504 class t_TAIL_02,
134505 class t_TAIL_03,
134506 class t_TAIL_04,
134507 class t_TAIL_05,
134508 class t_TAIL_06,
134509 class t_TAIL_07,
134510 class t_TAIL_08,
134511 class t_TAIL_09,
134512 class t_TAIL_10,
134513 class t_TAIL_11,
134514 class t_TAIL_12,
134515 class t_TAIL_13,
134516 class t_TAIL_14,
134517 class t_TAIL_15,
134518 class t_TAIL_16,
134519 class t_TAIL_17,
134520 class t_TAIL_18>
134521template <size_t t_INDEX,
134522 class t_ARG_01,
134523 class t_ARG_02,
134524 class t_ARG_03,
134525 class t_ARG_04,
134526 class t_ARG_05,
134527 class t_ARG_06,
134528 class t_ARG_07>
134529inline
134530variant<t_HEAD, t_TAIL_01,
134531 t_TAIL_02,
134532 t_TAIL_03,
134533 t_TAIL_04,
134534 t_TAIL_05,
134535 t_TAIL_06,
134536 t_TAIL_07,
134537 t_TAIL_08,
134538 t_TAIL_09,
134539 t_TAIL_10,
134540 t_TAIL_11,
134541 t_TAIL_12,
134542 t_TAIL_13,
134543 t_TAIL_14,
134544 t_TAIL_15,
134545 t_TAIL_16,
134546 t_TAIL_17,
134547 t_TAIL_18,
134548 BSLS_COMPILERFEATURES_FILLT( 0)
134550 const t_ARG_01& arg_01,
134551 const t_ARG_02& arg_02,
134552 const t_ARG_03& arg_03,
134553 const t_ARG_04& arg_04,
134554 const t_ARG_05& arg_05,
134555 const t_ARG_06& arg_06,
134556 const t_ARG_07& arg_07)
134557: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134558 arg_01,
134559 arg_02,
134560 arg_03,
134561 arg_04,
134562 arg_05,
134563 arg_06,
134564 arg_07)
134565{
134566}
134567#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
134568
134569
134570#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
134571template <class t_HEAD>
134572template <size_t t_INDEX,
134573 class t_ARG_01,
134574 class t_ARG_02,
134575 class t_ARG_03,
134576 class t_ARG_04,
134577 class t_ARG_05,
134578 class t_ARG_06,
134579 class t_ARG_07,
134580 class t_ARG_08>
134581inline
134582variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
134584 const t_ARG_01& arg_01,
134585 const t_ARG_02& arg_02,
134586 const t_ARG_03& arg_03,
134587 const t_ARG_04& arg_04,
134588 const t_ARG_05& arg_05,
134589 const t_ARG_06& arg_06,
134590 const t_ARG_07& arg_07,
134591 const t_ARG_08& arg_08)
134592: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134593 arg_01,
134594 arg_02,
134595 arg_03,
134596 arg_04,
134597 arg_05,
134598 arg_06,
134599 arg_07,
134600 arg_08)
134601{
134602}
134603#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
134604
134605#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
134606template <class t_HEAD, class t_TAIL_01>
134607template <size_t t_INDEX,
134608 class t_ARG_01,
134609 class t_ARG_02,
134610 class t_ARG_03,
134611 class t_ARG_04,
134612 class t_ARG_05,
134613 class t_ARG_06,
134614 class t_ARG_07,
134615 class t_ARG_08>
134616inline
134617variant<t_HEAD, t_TAIL_01,
134618 BSLS_COMPILERFEATURES_FILLT(17)
134620 const t_ARG_01& arg_01,
134621 const t_ARG_02& arg_02,
134622 const t_ARG_03& arg_03,
134623 const t_ARG_04& arg_04,
134624 const t_ARG_05& arg_05,
134625 const t_ARG_06& arg_06,
134626 const t_ARG_07& arg_07,
134627 const t_ARG_08& arg_08)
134628: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134629 arg_01,
134630 arg_02,
134631 arg_03,
134632 arg_04,
134633 arg_05,
134634 arg_06,
134635 arg_07,
134636 arg_08)
134637{
134638}
134639#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
134640
134641#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
134642template <class t_HEAD, class t_TAIL_01,
134643 class t_TAIL_02>
134644template <size_t t_INDEX,
134645 class t_ARG_01,
134646 class t_ARG_02,
134647 class t_ARG_03,
134648 class t_ARG_04,
134649 class t_ARG_05,
134650 class t_ARG_06,
134651 class t_ARG_07,
134652 class t_ARG_08>
134653inline
134654variant<t_HEAD, t_TAIL_01,
134655 t_TAIL_02,
134656 BSLS_COMPILERFEATURES_FILLT(16)
134658 const t_ARG_01& arg_01,
134659 const t_ARG_02& arg_02,
134660 const t_ARG_03& arg_03,
134661 const t_ARG_04& arg_04,
134662 const t_ARG_05& arg_05,
134663 const t_ARG_06& arg_06,
134664 const t_ARG_07& arg_07,
134665 const t_ARG_08& arg_08)
134666: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134667 arg_01,
134668 arg_02,
134669 arg_03,
134670 arg_04,
134671 arg_05,
134672 arg_06,
134673 arg_07,
134674 arg_08)
134675{
134676}
134677#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
134678
134679#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
134680template <class t_HEAD, class t_TAIL_01,
134681 class t_TAIL_02,
134682 class t_TAIL_03>
134683template <size_t t_INDEX,
134684 class t_ARG_01,
134685 class t_ARG_02,
134686 class t_ARG_03,
134687 class t_ARG_04,
134688 class t_ARG_05,
134689 class t_ARG_06,
134690 class t_ARG_07,
134691 class t_ARG_08>
134692inline
134693variant<t_HEAD, t_TAIL_01,
134694 t_TAIL_02,
134695 t_TAIL_03,
134696 BSLS_COMPILERFEATURES_FILLT(15)
134698 const t_ARG_01& arg_01,
134699 const t_ARG_02& arg_02,
134700 const t_ARG_03& arg_03,
134701 const t_ARG_04& arg_04,
134702 const t_ARG_05& arg_05,
134703 const t_ARG_06& arg_06,
134704 const t_ARG_07& arg_07,
134705 const t_ARG_08& arg_08)
134706: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134707 arg_01,
134708 arg_02,
134709 arg_03,
134710 arg_04,
134711 arg_05,
134712 arg_06,
134713 arg_07,
134714 arg_08)
134715{
134716}
134717#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
134718
134719#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
134720template <class t_HEAD, class t_TAIL_01,
134721 class t_TAIL_02,
134722 class t_TAIL_03,
134723 class t_TAIL_04>
134724template <size_t t_INDEX,
134725 class t_ARG_01,
134726 class t_ARG_02,
134727 class t_ARG_03,
134728 class t_ARG_04,
134729 class t_ARG_05,
134730 class t_ARG_06,
134731 class t_ARG_07,
134732 class t_ARG_08>
134733inline
134734variant<t_HEAD, t_TAIL_01,
134735 t_TAIL_02,
134736 t_TAIL_03,
134737 t_TAIL_04,
134738 BSLS_COMPILERFEATURES_FILLT(14)
134740 const t_ARG_01& arg_01,
134741 const t_ARG_02& arg_02,
134742 const t_ARG_03& arg_03,
134743 const t_ARG_04& arg_04,
134744 const t_ARG_05& arg_05,
134745 const t_ARG_06& arg_06,
134746 const t_ARG_07& arg_07,
134747 const t_ARG_08& arg_08)
134748: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134749 arg_01,
134750 arg_02,
134751 arg_03,
134752 arg_04,
134753 arg_05,
134754 arg_06,
134755 arg_07,
134756 arg_08)
134757{
134758}
134759#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
134760
134761#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
134762template <class t_HEAD, class t_TAIL_01,
134763 class t_TAIL_02,
134764 class t_TAIL_03,
134765 class t_TAIL_04,
134766 class t_TAIL_05>
134767template <size_t t_INDEX,
134768 class t_ARG_01,
134769 class t_ARG_02,
134770 class t_ARG_03,
134771 class t_ARG_04,
134772 class t_ARG_05,
134773 class t_ARG_06,
134774 class t_ARG_07,
134775 class t_ARG_08>
134776inline
134777variant<t_HEAD, t_TAIL_01,
134778 t_TAIL_02,
134779 t_TAIL_03,
134780 t_TAIL_04,
134781 t_TAIL_05,
134782 BSLS_COMPILERFEATURES_FILLT(13)
134784 const t_ARG_01& arg_01,
134785 const t_ARG_02& arg_02,
134786 const t_ARG_03& arg_03,
134787 const t_ARG_04& arg_04,
134788 const t_ARG_05& arg_05,
134789 const t_ARG_06& arg_06,
134790 const t_ARG_07& arg_07,
134791 const t_ARG_08& arg_08)
134792: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134793 arg_01,
134794 arg_02,
134795 arg_03,
134796 arg_04,
134797 arg_05,
134798 arg_06,
134799 arg_07,
134800 arg_08)
134801{
134802}
134803#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
134804
134805#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
134806template <class t_HEAD, class t_TAIL_01,
134807 class t_TAIL_02,
134808 class t_TAIL_03,
134809 class t_TAIL_04,
134810 class t_TAIL_05,
134811 class t_TAIL_06>
134812template <size_t t_INDEX,
134813 class t_ARG_01,
134814 class t_ARG_02,
134815 class t_ARG_03,
134816 class t_ARG_04,
134817 class t_ARG_05,
134818 class t_ARG_06,
134819 class t_ARG_07,
134820 class t_ARG_08>
134821inline
134822variant<t_HEAD, t_TAIL_01,
134823 t_TAIL_02,
134824 t_TAIL_03,
134825 t_TAIL_04,
134826 t_TAIL_05,
134827 t_TAIL_06,
134828 BSLS_COMPILERFEATURES_FILLT(12)
134830 const t_ARG_01& arg_01,
134831 const t_ARG_02& arg_02,
134832 const t_ARG_03& arg_03,
134833 const t_ARG_04& arg_04,
134834 const t_ARG_05& arg_05,
134835 const t_ARG_06& arg_06,
134836 const t_ARG_07& arg_07,
134837 const t_ARG_08& arg_08)
134838: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134839 arg_01,
134840 arg_02,
134841 arg_03,
134842 arg_04,
134843 arg_05,
134844 arg_06,
134845 arg_07,
134846 arg_08)
134847{
134848}
134849#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
134850
134851#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
134852template <class t_HEAD, class t_TAIL_01,
134853 class t_TAIL_02,
134854 class t_TAIL_03,
134855 class t_TAIL_04,
134856 class t_TAIL_05,
134857 class t_TAIL_06,
134858 class t_TAIL_07>
134859template <size_t t_INDEX,
134860 class t_ARG_01,
134861 class t_ARG_02,
134862 class t_ARG_03,
134863 class t_ARG_04,
134864 class t_ARG_05,
134865 class t_ARG_06,
134866 class t_ARG_07,
134867 class t_ARG_08>
134868inline
134869variant<t_HEAD, t_TAIL_01,
134870 t_TAIL_02,
134871 t_TAIL_03,
134872 t_TAIL_04,
134873 t_TAIL_05,
134874 t_TAIL_06,
134875 t_TAIL_07,
134876 BSLS_COMPILERFEATURES_FILLT(11)
134878 const t_ARG_01& arg_01,
134879 const t_ARG_02& arg_02,
134880 const t_ARG_03& arg_03,
134881 const t_ARG_04& arg_04,
134882 const t_ARG_05& arg_05,
134883 const t_ARG_06& arg_06,
134884 const t_ARG_07& arg_07,
134885 const t_ARG_08& arg_08)
134886: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134887 arg_01,
134888 arg_02,
134889 arg_03,
134890 arg_04,
134891 arg_05,
134892 arg_06,
134893 arg_07,
134894 arg_08)
134895{
134896}
134897#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
134898
134899#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
134900template <class t_HEAD, class t_TAIL_01,
134901 class t_TAIL_02,
134902 class t_TAIL_03,
134903 class t_TAIL_04,
134904 class t_TAIL_05,
134905 class t_TAIL_06,
134906 class t_TAIL_07,
134907 class t_TAIL_08>
134908template <size_t t_INDEX,
134909 class t_ARG_01,
134910 class t_ARG_02,
134911 class t_ARG_03,
134912 class t_ARG_04,
134913 class t_ARG_05,
134914 class t_ARG_06,
134915 class t_ARG_07,
134916 class t_ARG_08>
134917inline
134918variant<t_HEAD, t_TAIL_01,
134919 t_TAIL_02,
134920 t_TAIL_03,
134921 t_TAIL_04,
134922 t_TAIL_05,
134923 t_TAIL_06,
134924 t_TAIL_07,
134925 t_TAIL_08,
134926 BSLS_COMPILERFEATURES_FILLT(10)
134928 const t_ARG_01& arg_01,
134929 const t_ARG_02& arg_02,
134930 const t_ARG_03& arg_03,
134931 const t_ARG_04& arg_04,
134932 const t_ARG_05& arg_05,
134933 const t_ARG_06& arg_06,
134934 const t_ARG_07& arg_07,
134935 const t_ARG_08& arg_08)
134936: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134937 arg_01,
134938 arg_02,
134939 arg_03,
134940 arg_04,
134941 arg_05,
134942 arg_06,
134943 arg_07,
134944 arg_08)
134945{
134946}
134947#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
134948
134949#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
134950template <class t_HEAD, class t_TAIL_01,
134951 class t_TAIL_02,
134952 class t_TAIL_03,
134953 class t_TAIL_04,
134954 class t_TAIL_05,
134955 class t_TAIL_06,
134956 class t_TAIL_07,
134957 class t_TAIL_08,
134958 class t_TAIL_09>
134959template <size_t t_INDEX,
134960 class t_ARG_01,
134961 class t_ARG_02,
134962 class t_ARG_03,
134963 class t_ARG_04,
134964 class t_ARG_05,
134965 class t_ARG_06,
134966 class t_ARG_07,
134967 class t_ARG_08>
134968inline
134969variant<t_HEAD, t_TAIL_01,
134970 t_TAIL_02,
134971 t_TAIL_03,
134972 t_TAIL_04,
134973 t_TAIL_05,
134974 t_TAIL_06,
134975 t_TAIL_07,
134976 t_TAIL_08,
134977 t_TAIL_09,
134978 BSLS_COMPILERFEATURES_FILLT( 9)
134980 const t_ARG_01& arg_01,
134981 const t_ARG_02& arg_02,
134982 const t_ARG_03& arg_03,
134983 const t_ARG_04& arg_04,
134984 const t_ARG_05& arg_05,
134985 const t_ARG_06& arg_06,
134986 const t_ARG_07& arg_07,
134987 const t_ARG_08& arg_08)
134988: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
134989 arg_01,
134990 arg_02,
134991 arg_03,
134992 arg_04,
134993 arg_05,
134994 arg_06,
134995 arg_07,
134996 arg_08)
134997{
134998}
134999#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
135000
135001#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
135002template <class t_HEAD, class t_TAIL_01,
135003 class t_TAIL_02,
135004 class t_TAIL_03,
135005 class t_TAIL_04,
135006 class t_TAIL_05,
135007 class t_TAIL_06,
135008 class t_TAIL_07,
135009 class t_TAIL_08,
135010 class t_TAIL_09,
135011 class t_TAIL_10>
135012template <size_t t_INDEX,
135013 class t_ARG_01,
135014 class t_ARG_02,
135015 class t_ARG_03,
135016 class t_ARG_04,
135017 class t_ARG_05,
135018 class t_ARG_06,
135019 class t_ARG_07,
135020 class t_ARG_08>
135021inline
135022variant<t_HEAD, t_TAIL_01,
135023 t_TAIL_02,
135024 t_TAIL_03,
135025 t_TAIL_04,
135026 t_TAIL_05,
135027 t_TAIL_06,
135028 t_TAIL_07,
135029 t_TAIL_08,
135030 t_TAIL_09,
135031 t_TAIL_10,
135032 BSLS_COMPILERFEATURES_FILLT( 8)
135034 const t_ARG_01& arg_01,
135035 const t_ARG_02& arg_02,
135036 const t_ARG_03& arg_03,
135037 const t_ARG_04& arg_04,
135038 const t_ARG_05& arg_05,
135039 const t_ARG_06& arg_06,
135040 const t_ARG_07& arg_07,
135041 const t_ARG_08& arg_08)
135042: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135043 arg_01,
135044 arg_02,
135045 arg_03,
135046 arg_04,
135047 arg_05,
135048 arg_06,
135049 arg_07,
135050 arg_08)
135051{
135052}
135053#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
135054
135055#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
135056template <class t_HEAD, class t_TAIL_01,
135057 class t_TAIL_02,
135058 class t_TAIL_03,
135059 class t_TAIL_04,
135060 class t_TAIL_05,
135061 class t_TAIL_06,
135062 class t_TAIL_07,
135063 class t_TAIL_08,
135064 class t_TAIL_09,
135065 class t_TAIL_10,
135066 class t_TAIL_11>
135067template <size_t t_INDEX,
135068 class t_ARG_01,
135069 class t_ARG_02,
135070 class t_ARG_03,
135071 class t_ARG_04,
135072 class t_ARG_05,
135073 class t_ARG_06,
135074 class t_ARG_07,
135075 class t_ARG_08>
135076inline
135077variant<t_HEAD, t_TAIL_01,
135078 t_TAIL_02,
135079 t_TAIL_03,
135080 t_TAIL_04,
135081 t_TAIL_05,
135082 t_TAIL_06,
135083 t_TAIL_07,
135084 t_TAIL_08,
135085 t_TAIL_09,
135086 t_TAIL_10,
135087 t_TAIL_11,
135088 BSLS_COMPILERFEATURES_FILLT( 7)
135090 const t_ARG_01& arg_01,
135091 const t_ARG_02& arg_02,
135092 const t_ARG_03& arg_03,
135093 const t_ARG_04& arg_04,
135094 const t_ARG_05& arg_05,
135095 const t_ARG_06& arg_06,
135096 const t_ARG_07& arg_07,
135097 const t_ARG_08& arg_08)
135098: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135099 arg_01,
135100 arg_02,
135101 arg_03,
135102 arg_04,
135103 arg_05,
135104 arg_06,
135105 arg_07,
135106 arg_08)
135107{
135108}
135109#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
135110
135111#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
135112template <class t_HEAD, class t_TAIL_01,
135113 class t_TAIL_02,
135114 class t_TAIL_03,
135115 class t_TAIL_04,
135116 class t_TAIL_05,
135117 class t_TAIL_06,
135118 class t_TAIL_07,
135119 class t_TAIL_08,
135120 class t_TAIL_09,
135121 class t_TAIL_10,
135122 class t_TAIL_11,
135123 class t_TAIL_12>
135124template <size_t t_INDEX,
135125 class t_ARG_01,
135126 class t_ARG_02,
135127 class t_ARG_03,
135128 class t_ARG_04,
135129 class t_ARG_05,
135130 class t_ARG_06,
135131 class t_ARG_07,
135132 class t_ARG_08>
135133inline
135134variant<t_HEAD, t_TAIL_01,
135135 t_TAIL_02,
135136 t_TAIL_03,
135137 t_TAIL_04,
135138 t_TAIL_05,
135139 t_TAIL_06,
135140 t_TAIL_07,
135141 t_TAIL_08,
135142 t_TAIL_09,
135143 t_TAIL_10,
135144 t_TAIL_11,
135145 t_TAIL_12,
135146 BSLS_COMPILERFEATURES_FILLT( 6)
135148 const t_ARG_01& arg_01,
135149 const t_ARG_02& arg_02,
135150 const t_ARG_03& arg_03,
135151 const t_ARG_04& arg_04,
135152 const t_ARG_05& arg_05,
135153 const t_ARG_06& arg_06,
135154 const t_ARG_07& arg_07,
135155 const t_ARG_08& arg_08)
135156: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135157 arg_01,
135158 arg_02,
135159 arg_03,
135160 arg_04,
135161 arg_05,
135162 arg_06,
135163 arg_07,
135164 arg_08)
135165{
135166}
135167#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
135168
135169#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
135170template <class t_HEAD, class t_TAIL_01,
135171 class t_TAIL_02,
135172 class t_TAIL_03,
135173 class t_TAIL_04,
135174 class t_TAIL_05,
135175 class t_TAIL_06,
135176 class t_TAIL_07,
135177 class t_TAIL_08,
135178 class t_TAIL_09,
135179 class t_TAIL_10,
135180 class t_TAIL_11,
135181 class t_TAIL_12,
135182 class t_TAIL_13>
135183template <size_t t_INDEX,
135184 class t_ARG_01,
135185 class t_ARG_02,
135186 class t_ARG_03,
135187 class t_ARG_04,
135188 class t_ARG_05,
135189 class t_ARG_06,
135190 class t_ARG_07,
135191 class t_ARG_08>
135192inline
135193variant<t_HEAD, t_TAIL_01,
135194 t_TAIL_02,
135195 t_TAIL_03,
135196 t_TAIL_04,
135197 t_TAIL_05,
135198 t_TAIL_06,
135199 t_TAIL_07,
135200 t_TAIL_08,
135201 t_TAIL_09,
135202 t_TAIL_10,
135203 t_TAIL_11,
135204 t_TAIL_12,
135205 t_TAIL_13,
135206 BSLS_COMPILERFEATURES_FILLT( 5)
135208 const t_ARG_01& arg_01,
135209 const t_ARG_02& arg_02,
135210 const t_ARG_03& arg_03,
135211 const t_ARG_04& arg_04,
135212 const t_ARG_05& arg_05,
135213 const t_ARG_06& arg_06,
135214 const t_ARG_07& arg_07,
135215 const t_ARG_08& arg_08)
135216: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135217 arg_01,
135218 arg_02,
135219 arg_03,
135220 arg_04,
135221 arg_05,
135222 arg_06,
135223 arg_07,
135224 arg_08)
135225{
135226}
135227#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
135228
135229#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
135230template <class t_HEAD, class t_TAIL_01,
135231 class t_TAIL_02,
135232 class t_TAIL_03,
135233 class t_TAIL_04,
135234 class t_TAIL_05,
135235 class t_TAIL_06,
135236 class t_TAIL_07,
135237 class t_TAIL_08,
135238 class t_TAIL_09,
135239 class t_TAIL_10,
135240 class t_TAIL_11,
135241 class t_TAIL_12,
135242 class t_TAIL_13,
135243 class t_TAIL_14>
135244template <size_t t_INDEX,
135245 class t_ARG_01,
135246 class t_ARG_02,
135247 class t_ARG_03,
135248 class t_ARG_04,
135249 class t_ARG_05,
135250 class t_ARG_06,
135251 class t_ARG_07,
135252 class t_ARG_08>
135253inline
135254variant<t_HEAD, t_TAIL_01,
135255 t_TAIL_02,
135256 t_TAIL_03,
135257 t_TAIL_04,
135258 t_TAIL_05,
135259 t_TAIL_06,
135260 t_TAIL_07,
135261 t_TAIL_08,
135262 t_TAIL_09,
135263 t_TAIL_10,
135264 t_TAIL_11,
135265 t_TAIL_12,
135266 t_TAIL_13,
135267 t_TAIL_14,
135268 BSLS_COMPILERFEATURES_FILLT( 4)
135270 const t_ARG_01& arg_01,
135271 const t_ARG_02& arg_02,
135272 const t_ARG_03& arg_03,
135273 const t_ARG_04& arg_04,
135274 const t_ARG_05& arg_05,
135275 const t_ARG_06& arg_06,
135276 const t_ARG_07& arg_07,
135277 const t_ARG_08& arg_08)
135278: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135279 arg_01,
135280 arg_02,
135281 arg_03,
135282 arg_04,
135283 arg_05,
135284 arg_06,
135285 arg_07,
135286 arg_08)
135287{
135288}
135289#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
135290
135291#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
135292template <class t_HEAD, class t_TAIL_01,
135293 class t_TAIL_02,
135294 class t_TAIL_03,
135295 class t_TAIL_04,
135296 class t_TAIL_05,
135297 class t_TAIL_06,
135298 class t_TAIL_07,
135299 class t_TAIL_08,
135300 class t_TAIL_09,
135301 class t_TAIL_10,
135302 class t_TAIL_11,
135303 class t_TAIL_12,
135304 class t_TAIL_13,
135305 class t_TAIL_14,
135306 class t_TAIL_15>
135307template <size_t t_INDEX,
135308 class t_ARG_01,
135309 class t_ARG_02,
135310 class t_ARG_03,
135311 class t_ARG_04,
135312 class t_ARG_05,
135313 class t_ARG_06,
135314 class t_ARG_07,
135315 class t_ARG_08>
135316inline
135317variant<t_HEAD, t_TAIL_01,
135318 t_TAIL_02,
135319 t_TAIL_03,
135320 t_TAIL_04,
135321 t_TAIL_05,
135322 t_TAIL_06,
135323 t_TAIL_07,
135324 t_TAIL_08,
135325 t_TAIL_09,
135326 t_TAIL_10,
135327 t_TAIL_11,
135328 t_TAIL_12,
135329 t_TAIL_13,
135330 t_TAIL_14,
135331 t_TAIL_15,
135332 BSLS_COMPILERFEATURES_FILLT( 3)
135334 const t_ARG_01& arg_01,
135335 const t_ARG_02& arg_02,
135336 const t_ARG_03& arg_03,
135337 const t_ARG_04& arg_04,
135338 const t_ARG_05& arg_05,
135339 const t_ARG_06& arg_06,
135340 const t_ARG_07& arg_07,
135341 const t_ARG_08& arg_08)
135342: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135343 arg_01,
135344 arg_02,
135345 arg_03,
135346 arg_04,
135347 arg_05,
135348 arg_06,
135349 arg_07,
135350 arg_08)
135351{
135352}
135353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
135354
135355#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
135356template <class t_HEAD, class t_TAIL_01,
135357 class t_TAIL_02,
135358 class t_TAIL_03,
135359 class t_TAIL_04,
135360 class t_TAIL_05,
135361 class t_TAIL_06,
135362 class t_TAIL_07,
135363 class t_TAIL_08,
135364 class t_TAIL_09,
135365 class t_TAIL_10,
135366 class t_TAIL_11,
135367 class t_TAIL_12,
135368 class t_TAIL_13,
135369 class t_TAIL_14,
135370 class t_TAIL_15,
135371 class t_TAIL_16>
135372template <size_t t_INDEX,
135373 class t_ARG_01,
135374 class t_ARG_02,
135375 class t_ARG_03,
135376 class t_ARG_04,
135377 class t_ARG_05,
135378 class t_ARG_06,
135379 class t_ARG_07,
135380 class t_ARG_08>
135381inline
135382variant<t_HEAD, t_TAIL_01,
135383 t_TAIL_02,
135384 t_TAIL_03,
135385 t_TAIL_04,
135386 t_TAIL_05,
135387 t_TAIL_06,
135388 t_TAIL_07,
135389 t_TAIL_08,
135390 t_TAIL_09,
135391 t_TAIL_10,
135392 t_TAIL_11,
135393 t_TAIL_12,
135394 t_TAIL_13,
135395 t_TAIL_14,
135396 t_TAIL_15,
135397 t_TAIL_16,
135398 BSLS_COMPILERFEATURES_FILLT( 2)
135400 const t_ARG_01& arg_01,
135401 const t_ARG_02& arg_02,
135402 const t_ARG_03& arg_03,
135403 const t_ARG_04& arg_04,
135404 const t_ARG_05& arg_05,
135405 const t_ARG_06& arg_06,
135406 const t_ARG_07& arg_07,
135407 const t_ARG_08& arg_08)
135408: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135409 arg_01,
135410 arg_02,
135411 arg_03,
135412 arg_04,
135413 arg_05,
135414 arg_06,
135415 arg_07,
135416 arg_08)
135417{
135418}
135419#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
135420
135421#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
135422template <class t_HEAD, class t_TAIL_01,
135423 class t_TAIL_02,
135424 class t_TAIL_03,
135425 class t_TAIL_04,
135426 class t_TAIL_05,
135427 class t_TAIL_06,
135428 class t_TAIL_07,
135429 class t_TAIL_08,
135430 class t_TAIL_09,
135431 class t_TAIL_10,
135432 class t_TAIL_11,
135433 class t_TAIL_12,
135434 class t_TAIL_13,
135435 class t_TAIL_14,
135436 class t_TAIL_15,
135437 class t_TAIL_16,
135438 class t_TAIL_17>
135439template <size_t t_INDEX,
135440 class t_ARG_01,
135441 class t_ARG_02,
135442 class t_ARG_03,
135443 class t_ARG_04,
135444 class t_ARG_05,
135445 class t_ARG_06,
135446 class t_ARG_07,
135447 class t_ARG_08>
135448inline
135449variant<t_HEAD, t_TAIL_01,
135450 t_TAIL_02,
135451 t_TAIL_03,
135452 t_TAIL_04,
135453 t_TAIL_05,
135454 t_TAIL_06,
135455 t_TAIL_07,
135456 t_TAIL_08,
135457 t_TAIL_09,
135458 t_TAIL_10,
135459 t_TAIL_11,
135460 t_TAIL_12,
135461 t_TAIL_13,
135462 t_TAIL_14,
135463 t_TAIL_15,
135464 t_TAIL_16,
135465 t_TAIL_17,
135466 BSLS_COMPILERFEATURES_FILLT( 1)
135468 const t_ARG_01& arg_01,
135469 const t_ARG_02& arg_02,
135470 const t_ARG_03& arg_03,
135471 const t_ARG_04& arg_04,
135472 const t_ARG_05& arg_05,
135473 const t_ARG_06& arg_06,
135474 const t_ARG_07& arg_07,
135475 const t_ARG_08& arg_08)
135476: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135477 arg_01,
135478 arg_02,
135479 arg_03,
135480 arg_04,
135481 arg_05,
135482 arg_06,
135483 arg_07,
135484 arg_08)
135485{
135486}
135487#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
135488
135489#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
135490template <class t_HEAD, class t_TAIL_01,
135491 class t_TAIL_02,
135492 class t_TAIL_03,
135493 class t_TAIL_04,
135494 class t_TAIL_05,
135495 class t_TAIL_06,
135496 class t_TAIL_07,
135497 class t_TAIL_08,
135498 class t_TAIL_09,
135499 class t_TAIL_10,
135500 class t_TAIL_11,
135501 class t_TAIL_12,
135502 class t_TAIL_13,
135503 class t_TAIL_14,
135504 class t_TAIL_15,
135505 class t_TAIL_16,
135506 class t_TAIL_17,
135507 class t_TAIL_18>
135508template <size_t t_INDEX,
135509 class t_ARG_01,
135510 class t_ARG_02,
135511 class t_ARG_03,
135512 class t_ARG_04,
135513 class t_ARG_05,
135514 class t_ARG_06,
135515 class t_ARG_07,
135516 class t_ARG_08>
135517inline
135518variant<t_HEAD, t_TAIL_01,
135519 t_TAIL_02,
135520 t_TAIL_03,
135521 t_TAIL_04,
135522 t_TAIL_05,
135523 t_TAIL_06,
135524 t_TAIL_07,
135525 t_TAIL_08,
135526 t_TAIL_09,
135527 t_TAIL_10,
135528 t_TAIL_11,
135529 t_TAIL_12,
135530 t_TAIL_13,
135531 t_TAIL_14,
135532 t_TAIL_15,
135533 t_TAIL_16,
135534 t_TAIL_17,
135535 t_TAIL_18,
135536 BSLS_COMPILERFEATURES_FILLT( 0)
135538 const t_ARG_01& arg_01,
135539 const t_ARG_02& arg_02,
135540 const t_ARG_03& arg_03,
135541 const t_ARG_04& arg_04,
135542 const t_ARG_05& arg_05,
135543 const t_ARG_06& arg_06,
135544 const t_ARG_07& arg_07,
135545 const t_ARG_08& arg_08)
135546: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135547 arg_01,
135548 arg_02,
135549 arg_03,
135550 arg_04,
135551 arg_05,
135552 arg_06,
135553 arg_07,
135554 arg_08)
135555{
135556}
135557#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
135558
135559
135560#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
135561template <class t_HEAD>
135562template <size_t t_INDEX,
135563 class t_ARG_01,
135564 class t_ARG_02,
135565 class t_ARG_03,
135566 class t_ARG_04,
135567 class t_ARG_05,
135568 class t_ARG_06,
135569 class t_ARG_07,
135570 class t_ARG_08,
135571 class t_ARG_09>
135572inline
135573variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
135575 const t_ARG_01& arg_01,
135576 const t_ARG_02& arg_02,
135577 const t_ARG_03& arg_03,
135578 const t_ARG_04& arg_04,
135579 const t_ARG_05& arg_05,
135580 const t_ARG_06& arg_06,
135581 const t_ARG_07& arg_07,
135582 const t_ARG_08& arg_08,
135583 const t_ARG_09& arg_09)
135584: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135585 arg_01,
135586 arg_02,
135587 arg_03,
135588 arg_04,
135589 arg_05,
135590 arg_06,
135591 arg_07,
135592 arg_08,
135593 arg_09)
135594{
135595}
135596#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
135597
135598#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
135599template <class t_HEAD, class t_TAIL_01>
135600template <size_t t_INDEX,
135601 class t_ARG_01,
135602 class t_ARG_02,
135603 class t_ARG_03,
135604 class t_ARG_04,
135605 class t_ARG_05,
135606 class t_ARG_06,
135607 class t_ARG_07,
135608 class t_ARG_08,
135609 class t_ARG_09>
135610inline
135611variant<t_HEAD, t_TAIL_01,
135612 BSLS_COMPILERFEATURES_FILLT(17)
135614 const t_ARG_01& arg_01,
135615 const t_ARG_02& arg_02,
135616 const t_ARG_03& arg_03,
135617 const t_ARG_04& arg_04,
135618 const t_ARG_05& arg_05,
135619 const t_ARG_06& arg_06,
135620 const t_ARG_07& arg_07,
135621 const t_ARG_08& arg_08,
135622 const t_ARG_09& arg_09)
135623: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135624 arg_01,
135625 arg_02,
135626 arg_03,
135627 arg_04,
135628 arg_05,
135629 arg_06,
135630 arg_07,
135631 arg_08,
135632 arg_09)
135633{
135634}
135635#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
135636
135637#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
135638template <class t_HEAD, class t_TAIL_01,
135639 class t_TAIL_02>
135640template <size_t t_INDEX,
135641 class t_ARG_01,
135642 class t_ARG_02,
135643 class t_ARG_03,
135644 class t_ARG_04,
135645 class t_ARG_05,
135646 class t_ARG_06,
135647 class t_ARG_07,
135648 class t_ARG_08,
135649 class t_ARG_09>
135650inline
135651variant<t_HEAD, t_TAIL_01,
135652 t_TAIL_02,
135653 BSLS_COMPILERFEATURES_FILLT(16)
135655 const t_ARG_01& arg_01,
135656 const t_ARG_02& arg_02,
135657 const t_ARG_03& arg_03,
135658 const t_ARG_04& arg_04,
135659 const t_ARG_05& arg_05,
135660 const t_ARG_06& arg_06,
135661 const t_ARG_07& arg_07,
135662 const t_ARG_08& arg_08,
135663 const t_ARG_09& arg_09)
135664: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135665 arg_01,
135666 arg_02,
135667 arg_03,
135668 arg_04,
135669 arg_05,
135670 arg_06,
135671 arg_07,
135672 arg_08,
135673 arg_09)
135674{
135675}
135676#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
135677
135678#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
135679template <class t_HEAD, class t_TAIL_01,
135680 class t_TAIL_02,
135681 class t_TAIL_03>
135682template <size_t t_INDEX,
135683 class t_ARG_01,
135684 class t_ARG_02,
135685 class t_ARG_03,
135686 class t_ARG_04,
135687 class t_ARG_05,
135688 class t_ARG_06,
135689 class t_ARG_07,
135690 class t_ARG_08,
135691 class t_ARG_09>
135692inline
135693variant<t_HEAD, t_TAIL_01,
135694 t_TAIL_02,
135695 t_TAIL_03,
135696 BSLS_COMPILERFEATURES_FILLT(15)
135698 const t_ARG_01& arg_01,
135699 const t_ARG_02& arg_02,
135700 const t_ARG_03& arg_03,
135701 const t_ARG_04& arg_04,
135702 const t_ARG_05& arg_05,
135703 const t_ARG_06& arg_06,
135704 const t_ARG_07& arg_07,
135705 const t_ARG_08& arg_08,
135706 const t_ARG_09& arg_09)
135707: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135708 arg_01,
135709 arg_02,
135710 arg_03,
135711 arg_04,
135712 arg_05,
135713 arg_06,
135714 arg_07,
135715 arg_08,
135716 arg_09)
135717{
135718}
135719#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
135720
135721#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
135722template <class t_HEAD, class t_TAIL_01,
135723 class t_TAIL_02,
135724 class t_TAIL_03,
135725 class t_TAIL_04>
135726template <size_t t_INDEX,
135727 class t_ARG_01,
135728 class t_ARG_02,
135729 class t_ARG_03,
135730 class t_ARG_04,
135731 class t_ARG_05,
135732 class t_ARG_06,
135733 class t_ARG_07,
135734 class t_ARG_08,
135735 class t_ARG_09>
135736inline
135737variant<t_HEAD, t_TAIL_01,
135738 t_TAIL_02,
135739 t_TAIL_03,
135740 t_TAIL_04,
135741 BSLS_COMPILERFEATURES_FILLT(14)
135743 const t_ARG_01& arg_01,
135744 const t_ARG_02& arg_02,
135745 const t_ARG_03& arg_03,
135746 const t_ARG_04& arg_04,
135747 const t_ARG_05& arg_05,
135748 const t_ARG_06& arg_06,
135749 const t_ARG_07& arg_07,
135750 const t_ARG_08& arg_08,
135751 const t_ARG_09& arg_09)
135752: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135753 arg_01,
135754 arg_02,
135755 arg_03,
135756 arg_04,
135757 arg_05,
135758 arg_06,
135759 arg_07,
135760 arg_08,
135761 arg_09)
135762{
135763}
135764#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
135765
135766#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
135767template <class t_HEAD, class t_TAIL_01,
135768 class t_TAIL_02,
135769 class t_TAIL_03,
135770 class t_TAIL_04,
135771 class t_TAIL_05>
135772template <size_t t_INDEX,
135773 class t_ARG_01,
135774 class t_ARG_02,
135775 class t_ARG_03,
135776 class t_ARG_04,
135777 class t_ARG_05,
135778 class t_ARG_06,
135779 class t_ARG_07,
135780 class t_ARG_08,
135781 class t_ARG_09>
135782inline
135783variant<t_HEAD, t_TAIL_01,
135784 t_TAIL_02,
135785 t_TAIL_03,
135786 t_TAIL_04,
135787 t_TAIL_05,
135788 BSLS_COMPILERFEATURES_FILLT(13)
135790 const t_ARG_01& arg_01,
135791 const t_ARG_02& arg_02,
135792 const t_ARG_03& arg_03,
135793 const t_ARG_04& arg_04,
135794 const t_ARG_05& arg_05,
135795 const t_ARG_06& arg_06,
135796 const t_ARG_07& arg_07,
135797 const t_ARG_08& arg_08,
135798 const t_ARG_09& arg_09)
135799: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135800 arg_01,
135801 arg_02,
135802 arg_03,
135803 arg_04,
135804 arg_05,
135805 arg_06,
135806 arg_07,
135807 arg_08,
135808 arg_09)
135809{
135810}
135811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
135812
135813#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
135814template <class t_HEAD, class t_TAIL_01,
135815 class t_TAIL_02,
135816 class t_TAIL_03,
135817 class t_TAIL_04,
135818 class t_TAIL_05,
135819 class t_TAIL_06>
135820template <size_t t_INDEX,
135821 class t_ARG_01,
135822 class t_ARG_02,
135823 class t_ARG_03,
135824 class t_ARG_04,
135825 class t_ARG_05,
135826 class t_ARG_06,
135827 class t_ARG_07,
135828 class t_ARG_08,
135829 class t_ARG_09>
135830inline
135831variant<t_HEAD, t_TAIL_01,
135832 t_TAIL_02,
135833 t_TAIL_03,
135834 t_TAIL_04,
135835 t_TAIL_05,
135836 t_TAIL_06,
135837 BSLS_COMPILERFEATURES_FILLT(12)
135839 const t_ARG_01& arg_01,
135840 const t_ARG_02& arg_02,
135841 const t_ARG_03& arg_03,
135842 const t_ARG_04& arg_04,
135843 const t_ARG_05& arg_05,
135844 const t_ARG_06& arg_06,
135845 const t_ARG_07& arg_07,
135846 const t_ARG_08& arg_08,
135847 const t_ARG_09& arg_09)
135848: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135849 arg_01,
135850 arg_02,
135851 arg_03,
135852 arg_04,
135853 arg_05,
135854 arg_06,
135855 arg_07,
135856 arg_08,
135857 arg_09)
135858{
135859}
135860#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
135861
135862#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
135863template <class t_HEAD, class t_TAIL_01,
135864 class t_TAIL_02,
135865 class t_TAIL_03,
135866 class t_TAIL_04,
135867 class t_TAIL_05,
135868 class t_TAIL_06,
135869 class t_TAIL_07>
135870template <size_t t_INDEX,
135871 class t_ARG_01,
135872 class t_ARG_02,
135873 class t_ARG_03,
135874 class t_ARG_04,
135875 class t_ARG_05,
135876 class t_ARG_06,
135877 class t_ARG_07,
135878 class t_ARG_08,
135879 class t_ARG_09>
135880inline
135881variant<t_HEAD, t_TAIL_01,
135882 t_TAIL_02,
135883 t_TAIL_03,
135884 t_TAIL_04,
135885 t_TAIL_05,
135886 t_TAIL_06,
135887 t_TAIL_07,
135888 BSLS_COMPILERFEATURES_FILLT(11)
135890 const t_ARG_01& arg_01,
135891 const t_ARG_02& arg_02,
135892 const t_ARG_03& arg_03,
135893 const t_ARG_04& arg_04,
135894 const t_ARG_05& arg_05,
135895 const t_ARG_06& arg_06,
135896 const t_ARG_07& arg_07,
135897 const t_ARG_08& arg_08,
135898 const t_ARG_09& arg_09)
135899: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135900 arg_01,
135901 arg_02,
135902 arg_03,
135903 arg_04,
135904 arg_05,
135905 arg_06,
135906 arg_07,
135907 arg_08,
135908 arg_09)
135909{
135910}
135911#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
135912
135913#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
135914template <class t_HEAD, class t_TAIL_01,
135915 class t_TAIL_02,
135916 class t_TAIL_03,
135917 class t_TAIL_04,
135918 class t_TAIL_05,
135919 class t_TAIL_06,
135920 class t_TAIL_07,
135921 class t_TAIL_08>
135922template <size_t t_INDEX,
135923 class t_ARG_01,
135924 class t_ARG_02,
135925 class t_ARG_03,
135926 class t_ARG_04,
135927 class t_ARG_05,
135928 class t_ARG_06,
135929 class t_ARG_07,
135930 class t_ARG_08,
135931 class t_ARG_09>
135932inline
135933variant<t_HEAD, t_TAIL_01,
135934 t_TAIL_02,
135935 t_TAIL_03,
135936 t_TAIL_04,
135937 t_TAIL_05,
135938 t_TAIL_06,
135939 t_TAIL_07,
135940 t_TAIL_08,
135941 BSLS_COMPILERFEATURES_FILLT(10)
135943 const t_ARG_01& arg_01,
135944 const t_ARG_02& arg_02,
135945 const t_ARG_03& arg_03,
135946 const t_ARG_04& arg_04,
135947 const t_ARG_05& arg_05,
135948 const t_ARG_06& arg_06,
135949 const t_ARG_07& arg_07,
135950 const t_ARG_08& arg_08,
135951 const t_ARG_09& arg_09)
135952: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
135953 arg_01,
135954 arg_02,
135955 arg_03,
135956 arg_04,
135957 arg_05,
135958 arg_06,
135959 arg_07,
135960 arg_08,
135961 arg_09)
135962{
135963}
135964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
135965
135966#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
135967template <class t_HEAD, class t_TAIL_01,
135968 class t_TAIL_02,
135969 class t_TAIL_03,
135970 class t_TAIL_04,
135971 class t_TAIL_05,
135972 class t_TAIL_06,
135973 class t_TAIL_07,
135974 class t_TAIL_08,
135975 class t_TAIL_09>
135976template <size_t t_INDEX,
135977 class t_ARG_01,
135978 class t_ARG_02,
135979 class t_ARG_03,
135980 class t_ARG_04,
135981 class t_ARG_05,
135982 class t_ARG_06,
135983 class t_ARG_07,
135984 class t_ARG_08,
135985 class t_ARG_09>
135986inline
135987variant<t_HEAD, t_TAIL_01,
135988 t_TAIL_02,
135989 t_TAIL_03,
135990 t_TAIL_04,
135991 t_TAIL_05,
135992 t_TAIL_06,
135993 t_TAIL_07,
135994 t_TAIL_08,
135995 t_TAIL_09,
135996 BSLS_COMPILERFEATURES_FILLT( 9)
135998 const t_ARG_01& arg_01,
135999 const t_ARG_02& arg_02,
136000 const t_ARG_03& arg_03,
136001 const t_ARG_04& arg_04,
136002 const t_ARG_05& arg_05,
136003 const t_ARG_06& arg_06,
136004 const t_ARG_07& arg_07,
136005 const t_ARG_08& arg_08,
136006 const t_ARG_09& arg_09)
136007: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136008 arg_01,
136009 arg_02,
136010 arg_03,
136011 arg_04,
136012 arg_05,
136013 arg_06,
136014 arg_07,
136015 arg_08,
136016 arg_09)
136017{
136018}
136019#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
136020
136021#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
136022template <class t_HEAD, class t_TAIL_01,
136023 class t_TAIL_02,
136024 class t_TAIL_03,
136025 class t_TAIL_04,
136026 class t_TAIL_05,
136027 class t_TAIL_06,
136028 class t_TAIL_07,
136029 class t_TAIL_08,
136030 class t_TAIL_09,
136031 class t_TAIL_10>
136032template <size_t t_INDEX,
136033 class t_ARG_01,
136034 class t_ARG_02,
136035 class t_ARG_03,
136036 class t_ARG_04,
136037 class t_ARG_05,
136038 class t_ARG_06,
136039 class t_ARG_07,
136040 class t_ARG_08,
136041 class t_ARG_09>
136042inline
136043variant<t_HEAD, t_TAIL_01,
136044 t_TAIL_02,
136045 t_TAIL_03,
136046 t_TAIL_04,
136047 t_TAIL_05,
136048 t_TAIL_06,
136049 t_TAIL_07,
136050 t_TAIL_08,
136051 t_TAIL_09,
136052 t_TAIL_10,
136053 BSLS_COMPILERFEATURES_FILLT( 8)
136055 const t_ARG_01& arg_01,
136056 const t_ARG_02& arg_02,
136057 const t_ARG_03& arg_03,
136058 const t_ARG_04& arg_04,
136059 const t_ARG_05& arg_05,
136060 const t_ARG_06& arg_06,
136061 const t_ARG_07& arg_07,
136062 const t_ARG_08& arg_08,
136063 const t_ARG_09& arg_09)
136064: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136065 arg_01,
136066 arg_02,
136067 arg_03,
136068 arg_04,
136069 arg_05,
136070 arg_06,
136071 arg_07,
136072 arg_08,
136073 arg_09)
136074{
136075}
136076#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
136077
136078#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
136079template <class t_HEAD, class t_TAIL_01,
136080 class t_TAIL_02,
136081 class t_TAIL_03,
136082 class t_TAIL_04,
136083 class t_TAIL_05,
136084 class t_TAIL_06,
136085 class t_TAIL_07,
136086 class t_TAIL_08,
136087 class t_TAIL_09,
136088 class t_TAIL_10,
136089 class t_TAIL_11>
136090template <size_t t_INDEX,
136091 class t_ARG_01,
136092 class t_ARG_02,
136093 class t_ARG_03,
136094 class t_ARG_04,
136095 class t_ARG_05,
136096 class t_ARG_06,
136097 class t_ARG_07,
136098 class t_ARG_08,
136099 class t_ARG_09>
136100inline
136101variant<t_HEAD, t_TAIL_01,
136102 t_TAIL_02,
136103 t_TAIL_03,
136104 t_TAIL_04,
136105 t_TAIL_05,
136106 t_TAIL_06,
136107 t_TAIL_07,
136108 t_TAIL_08,
136109 t_TAIL_09,
136110 t_TAIL_10,
136111 t_TAIL_11,
136112 BSLS_COMPILERFEATURES_FILLT( 7)
136114 const t_ARG_01& arg_01,
136115 const t_ARG_02& arg_02,
136116 const t_ARG_03& arg_03,
136117 const t_ARG_04& arg_04,
136118 const t_ARG_05& arg_05,
136119 const t_ARG_06& arg_06,
136120 const t_ARG_07& arg_07,
136121 const t_ARG_08& arg_08,
136122 const t_ARG_09& arg_09)
136123: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136124 arg_01,
136125 arg_02,
136126 arg_03,
136127 arg_04,
136128 arg_05,
136129 arg_06,
136130 arg_07,
136131 arg_08,
136132 arg_09)
136133{
136134}
136135#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
136136
136137#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
136138template <class t_HEAD, class t_TAIL_01,
136139 class t_TAIL_02,
136140 class t_TAIL_03,
136141 class t_TAIL_04,
136142 class t_TAIL_05,
136143 class t_TAIL_06,
136144 class t_TAIL_07,
136145 class t_TAIL_08,
136146 class t_TAIL_09,
136147 class t_TAIL_10,
136148 class t_TAIL_11,
136149 class t_TAIL_12>
136150template <size_t t_INDEX,
136151 class t_ARG_01,
136152 class t_ARG_02,
136153 class t_ARG_03,
136154 class t_ARG_04,
136155 class t_ARG_05,
136156 class t_ARG_06,
136157 class t_ARG_07,
136158 class t_ARG_08,
136159 class t_ARG_09>
136160inline
136161variant<t_HEAD, t_TAIL_01,
136162 t_TAIL_02,
136163 t_TAIL_03,
136164 t_TAIL_04,
136165 t_TAIL_05,
136166 t_TAIL_06,
136167 t_TAIL_07,
136168 t_TAIL_08,
136169 t_TAIL_09,
136170 t_TAIL_10,
136171 t_TAIL_11,
136172 t_TAIL_12,
136173 BSLS_COMPILERFEATURES_FILLT( 6)
136175 const t_ARG_01& arg_01,
136176 const t_ARG_02& arg_02,
136177 const t_ARG_03& arg_03,
136178 const t_ARG_04& arg_04,
136179 const t_ARG_05& arg_05,
136180 const t_ARG_06& arg_06,
136181 const t_ARG_07& arg_07,
136182 const t_ARG_08& arg_08,
136183 const t_ARG_09& arg_09)
136184: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136185 arg_01,
136186 arg_02,
136187 arg_03,
136188 arg_04,
136189 arg_05,
136190 arg_06,
136191 arg_07,
136192 arg_08,
136193 arg_09)
136194{
136195}
136196#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
136197
136198#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
136199template <class t_HEAD, class t_TAIL_01,
136200 class t_TAIL_02,
136201 class t_TAIL_03,
136202 class t_TAIL_04,
136203 class t_TAIL_05,
136204 class t_TAIL_06,
136205 class t_TAIL_07,
136206 class t_TAIL_08,
136207 class t_TAIL_09,
136208 class t_TAIL_10,
136209 class t_TAIL_11,
136210 class t_TAIL_12,
136211 class t_TAIL_13>
136212template <size_t t_INDEX,
136213 class t_ARG_01,
136214 class t_ARG_02,
136215 class t_ARG_03,
136216 class t_ARG_04,
136217 class t_ARG_05,
136218 class t_ARG_06,
136219 class t_ARG_07,
136220 class t_ARG_08,
136221 class t_ARG_09>
136222inline
136223variant<t_HEAD, t_TAIL_01,
136224 t_TAIL_02,
136225 t_TAIL_03,
136226 t_TAIL_04,
136227 t_TAIL_05,
136228 t_TAIL_06,
136229 t_TAIL_07,
136230 t_TAIL_08,
136231 t_TAIL_09,
136232 t_TAIL_10,
136233 t_TAIL_11,
136234 t_TAIL_12,
136235 t_TAIL_13,
136236 BSLS_COMPILERFEATURES_FILLT( 5)
136238 const t_ARG_01& arg_01,
136239 const t_ARG_02& arg_02,
136240 const t_ARG_03& arg_03,
136241 const t_ARG_04& arg_04,
136242 const t_ARG_05& arg_05,
136243 const t_ARG_06& arg_06,
136244 const t_ARG_07& arg_07,
136245 const t_ARG_08& arg_08,
136246 const t_ARG_09& arg_09)
136247: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136248 arg_01,
136249 arg_02,
136250 arg_03,
136251 arg_04,
136252 arg_05,
136253 arg_06,
136254 arg_07,
136255 arg_08,
136256 arg_09)
136257{
136258}
136259#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
136260
136261#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
136262template <class t_HEAD, class t_TAIL_01,
136263 class t_TAIL_02,
136264 class t_TAIL_03,
136265 class t_TAIL_04,
136266 class t_TAIL_05,
136267 class t_TAIL_06,
136268 class t_TAIL_07,
136269 class t_TAIL_08,
136270 class t_TAIL_09,
136271 class t_TAIL_10,
136272 class t_TAIL_11,
136273 class t_TAIL_12,
136274 class t_TAIL_13,
136275 class t_TAIL_14>
136276template <size_t t_INDEX,
136277 class t_ARG_01,
136278 class t_ARG_02,
136279 class t_ARG_03,
136280 class t_ARG_04,
136281 class t_ARG_05,
136282 class t_ARG_06,
136283 class t_ARG_07,
136284 class t_ARG_08,
136285 class t_ARG_09>
136286inline
136287variant<t_HEAD, t_TAIL_01,
136288 t_TAIL_02,
136289 t_TAIL_03,
136290 t_TAIL_04,
136291 t_TAIL_05,
136292 t_TAIL_06,
136293 t_TAIL_07,
136294 t_TAIL_08,
136295 t_TAIL_09,
136296 t_TAIL_10,
136297 t_TAIL_11,
136298 t_TAIL_12,
136299 t_TAIL_13,
136300 t_TAIL_14,
136301 BSLS_COMPILERFEATURES_FILLT( 4)
136303 const t_ARG_01& arg_01,
136304 const t_ARG_02& arg_02,
136305 const t_ARG_03& arg_03,
136306 const t_ARG_04& arg_04,
136307 const t_ARG_05& arg_05,
136308 const t_ARG_06& arg_06,
136309 const t_ARG_07& arg_07,
136310 const t_ARG_08& arg_08,
136311 const t_ARG_09& arg_09)
136312: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136313 arg_01,
136314 arg_02,
136315 arg_03,
136316 arg_04,
136317 arg_05,
136318 arg_06,
136319 arg_07,
136320 arg_08,
136321 arg_09)
136322{
136323}
136324#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
136325
136326#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
136327template <class t_HEAD, class t_TAIL_01,
136328 class t_TAIL_02,
136329 class t_TAIL_03,
136330 class t_TAIL_04,
136331 class t_TAIL_05,
136332 class t_TAIL_06,
136333 class t_TAIL_07,
136334 class t_TAIL_08,
136335 class t_TAIL_09,
136336 class t_TAIL_10,
136337 class t_TAIL_11,
136338 class t_TAIL_12,
136339 class t_TAIL_13,
136340 class t_TAIL_14,
136341 class t_TAIL_15>
136342template <size_t t_INDEX,
136343 class t_ARG_01,
136344 class t_ARG_02,
136345 class t_ARG_03,
136346 class t_ARG_04,
136347 class t_ARG_05,
136348 class t_ARG_06,
136349 class t_ARG_07,
136350 class t_ARG_08,
136351 class t_ARG_09>
136352inline
136353variant<t_HEAD, t_TAIL_01,
136354 t_TAIL_02,
136355 t_TAIL_03,
136356 t_TAIL_04,
136357 t_TAIL_05,
136358 t_TAIL_06,
136359 t_TAIL_07,
136360 t_TAIL_08,
136361 t_TAIL_09,
136362 t_TAIL_10,
136363 t_TAIL_11,
136364 t_TAIL_12,
136365 t_TAIL_13,
136366 t_TAIL_14,
136367 t_TAIL_15,
136368 BSLS_COMPILERFEATURES_FILLT( 3)
136370 const t_ARG_01& arg_01,
136371 const t_ARG_02& arg_02,
136372 const t_ARG_03& arg_03,
136373 const t_ARG_04& arg_04,
136374 const t_ARG_05& arg_05,
136375 const t_ARG_06& arg_06,
136376 const t_ARG_07& arg_07,
136377 const t_ARG_08& arg_08,
136378 const t_ARG_09& arg_09)
136379: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136380 arg_01,
136381 arg_02,
136382 arg_03,
136383 arg_04,
136384 arg_05,
136385 arg_06,
136386 arg_07,
136387 arg_08,
136388 arg_09)
136389{
136390}
136391#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
136392
136393#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
136394template <class t_HEAD, class t_TAIL_01,
136395 class t_TAIL_02,
136396 class t_TAIL_03,
136397 class t_TAIL_04,
136398 class t_TAIL_05,
136399 class t_TAIL_06,
136400 class t_TAIL_07,
136401 class t_TAIL_08,
136402 class t_TAIL_09,
136403 class t_TAIL_10,
136404 class t_TAIL_11,
136405 class t_TAIL_12,
136406 class t_TAIL_13,
136407 class t_TAIL_14,
136408 class t_TAIL_15,
136409 class t_TAIL_16>
136410template <size_t t_INDEX,
136411 class t_ARG_01,
136412 class t_ARG_02,
136413 class t_ARG_03,
136414 class t_ARG_04,
136415 class t_ARG_05,
136416 class t_ARG_06,
136417 class t_ARG_07,
136418 class t_ARG_08,
136419 class t_ARG_09>
136420inline
136421variant<t_HEAD, t_TAIL_01,
136422 t_TAIL_02,
136423 t_TAIL_03,
136424 t_TAIL_04,
136425 t_TAIL_05,
136426 t_TAIL_06,
136427 t_TAIL_07,
136428 t_TAIL_08,
136429 t_TAIL_09,
136430 t_TAIL_10,
136431 t_TAIL_11,
136432 t_TAIL_12,
136433 t_TAIL_13,
136434 t_TAIL_14,
136435 t_TAIL_15,
136436 t_TAIL_16,
136437 BSLS_COMPILERFEATURES_FILLT( 2)
136439 const t_ARG_01& arg_01,
136440 const t_ARG_02& arg_02,
136441 const t_ARG_03& arg_03,
136442 const t_ARG_04& arg_04,
136443 const t_ARG_05& arg_05,
136444 const t_ARG_06& arg_06,
136445 const t_ARG_07& arg_07,
136446 const t_ARG_08& arg_08,
136447 const t_ARG_09& arg_09)
136448: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136449 arg_01,
136450 arg_02,
136451 arg_03,
136452 arg_04,
136453 arg_05,
136454 arg_06,
136455 arg_07,
136456 arg_08,
136457 arg_09)
136458{
136459}
136460#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
136461
136462#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
136463template <class t_HEAD, class t_TAIL_01,
136464 class t_TAIL_02,
136465 class t_TAIL_03,
136466 class t_TAIL_04,
136467 class t_TAIL_05,
136468 class t_TAIL_06,
136469 class t_TAIL_07,
136470 class t_TAIL_08,
136471 class t_TAIL_09,
136472 class t_TAIL_10,
136473 class t_TAIL_11,
136474 class t_TAIL_12,
136475 class t_TAIL_13,
136476 class t_TAIL_14,
136477 class t_TAIL_15,
136478 class t_TAIL_16,
136479 class t_TAIL_17>
136480template <size_t t_INDEX,
136481 class t_ARG_01,
136482 class t_ARG_02,
136483 class t_ARG_03,
136484 class t_ARG_04,
136485 class t_ARG_05,
136486 class t_ARG_06,
136487 class t_ARG_07,
136488 class t_ARG_08,
136489 class t_ARG_09>
136490inline
136491variant<t_HEAD, t_TAIL_01,
136492 t_TAIL_02,
136493 t_TAIL_03,
136494 t_TAIL_04,
136495 t_TAIL_05,
136496 t_TAIL_06,
136497 t_TAIL_07,
136498 t_TAIL_08,
136499 t_TAIL_09,
136500 t_TAIL_10,
136501 t_TAIL_11,
136502 t_TAIL_12,
136503 t_TAIL_13,
136504 t_TAIL_14,
136505 t_TAIL_15,
136506 t_TAIL_16,
136507 t_TAIL_17,
136508 BSLS_COMPILERFEATURES_FILLT( 1)
136510 const t_ARG_01& arg_01,
136511 const t_ARG_02& arg_02,
136512 const t_ARG_03& arg_03,
136513 const t_ARG_04& arg_04,
136514 const t_ARG_05& arg_05,
136515 const t_ARG_06& arg_06,
136516 const t_ARG_07& arg_07,
136517 const t_ARG_08& arg_08,
136518 const t_ARG_09& arg_09)
136519: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136520 arg_01,
136521 arg_02,
136522 arg_03,
136523 arg_04,
136524 arg_05,
136525 arg_06,
136526 arg_07,
136527 arg_08,
136528 arg_09)
136529{
136530}
136531#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
136532
136533#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
136534template <class t_HEAD, class t_TAIL_01,
136535 class t_TAIL_02,
136536 class t_TAIL_03,
136537 class t_TAIL_04,
136538 class t_TAIL_05,
136539 class t_TAIL_06,
136540 class t_TAIL_07,
136541 class t_TAIL_08,
136542 class t_TAIL_09,
136543 class t_TAIL_10,
136544 class t_TAIL_11,
136545 class t_TAIL_12,
136546 class t_TAIL_13,
136547 class t_TAIL_14,
136548 class t_TAIL_15,
136549 class t_TAIL_16,
136550 class t_TAIL_17,
136551 class t_TAIL_18>
136552template <size_t t_INDEX,
136553 class t_ARG_01,
136554 class t_ARG_02,
136555 class t_ARG_03,
136556 class t_ARG_04,
136557 class t_ARG_05,
136558 class t_ARG_06,
136559 class t_ARG_07,
136560 class t_ARG_08,
136561 class t_ARG_09>
136562inline
136563variant<t_HEAD, t_TAIL_01,
136564 t_TAIL_02,
136565 t_TAIL_03,
136566 t_TAIL_04,
136567 t_TAIL_05,
136568 t_TAIL_06,
136569 t_TAIL_07,
136570 t_TAIL_08,
136571 t_TAIL_09,
136572 t_TAIL_10,
136573 t_TAIL_11,
136574 t_TAIL_12,
136575 t_TAIL_13,
136576 t_TAIL_14,
136577 t_TAIL_15,
136578 t_TAIL_16,
136579 t_TAIL_17,
136580 t_TAIL_18,
136581 BSLS_COMPILERFEATURES_FILLT( 0)
136583 const t_ARG_01& arg_01,
136584 const t_ARG_02& arg_02,
136585 const t_ARG_03& arg_03,
136586 const t_ARG_04& arg_04,
136587 const t_ARG_05& arg_05,
136588 const t_ARG_06& arg_06,
136589 const t_ARG_07& arg_07,
136590 const t_ARG_08& arg_08,
136591 const t_ARG_09& arg_09)
136592: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136593 arg_01,
136594 arg_02,
136595 arg_03,
136596 arg_04,
136597 arg_05,
136598 arg_06,
136599 arg_07,
136600 arg_08,
136601 arg_09)
136602{
136603}
136604#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
136605
136606
136607#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
136608template <class t_HEAD>
136609template <size_t t_INDEX,
136610 class t_ARG_01,
136611 class t_ARG_02,
136612 class t_ARG_03,
136613 class t_ARG_04,
136614 class t_ARG_05,
136615 class t_ARG_06,
136616 class t_ARG_07,
136617 class t_ARG_08,
136618 class t_ARG_09,
136619 class t_ARG_10>
136620inline
136621variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
136623 const t_ARG_01& arg_01,
136624 const t_ARG_02& arg_02,
136625 const t_ARG_03& arg_03,
136626 const t_ARG_04& arg_04,
136627 const t_ARG_05& arg_05,
136628 const t_ARG_06& arg_06,
136629 const t_ARG_07& arg_07,
136630 const t_ARG_08& arg_08,
136631 const t_ARG_09& arg_09,
136632 const t_ARG_10& arg_10)
136633: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136634 arg_01,
136635 arg_02,
136636 arg_03,
136637 arg_04,
136638 arg_05,
136639 arg_06,
136640 arg_07,
136641 arg_08,
136642 arg_09,
136643 arg_10)
136644{
136645}
136646#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
136647
136648#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
136649template <class t_HEAD, class t_TAIL_01>
136650template <size_t t_INDEX,
136651 class t_ARG_01,
136652 class t_ARG_02,
136653 class t_ARG_03,
136654 class t_ARG_04,
136655 class t_ARG_05,
136656 class t_ARG_06,
136657 class t_ARG_07,
136658 class t_ARG_08,
136659 class t_ARG_09,
136660 class t_ARG_10>
136661inline
136662variant<t_HEAD, t_TAIL_01,
136663 BSLS_COMPILERFEATURES_FILLT(17)
136665 const t_ARG_01& arg_01,
136666 const t_ARG_02& arg_02,
136667 const t_ARG_03& arg_03,
136668 const t_ARG_04& arg_04,
136669 const t_ARG_05& arg_05,
136670 const t_ARG_06& arg_06,
136671 const t_ARG_07& arg_07,
136672 const t_ARG_08& arg_08,
136673 const t_ARG_09& arg_09,
136674 const t_ARG_10& arg_10)
136675: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136676 arg_01,
136677 arg_02,
136678 arg_03,
136679 arg_04,
136680 arg_05,
136681 arg_06,
136682 arg_07,
136683 arg_08,
136684 arg_09,
136685 arg_10)
136686{
136687}
136688#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
136689
136690#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
136691template <class t_HEAD, class t_TAIL_01,
136692 class t_TAIL_02>
136693template <size_t t_INDEX,
136694 class t_ARG_01,
136695 class t_ARG_02,
136696 class t_ARG_03,
136697 class t_ARG_04,
136698 class t_ARG_05,
136699 class t_ARG_06,
136700 class t_ARG_07,
136701 class t_ARG_08,
136702 class t_ARG_09,
136703 class t_ARG_10>
136704inline
136705variant<t_HEAD, t_TAIL_01,
136706 t_TAIL_02,
136707 BSLS_COMPILERFEATURES_FILLT(16)
136709 const t_ARG_01& arg_01,
136710 const t_ARG_02& arg_02,
136711 const t_ARG_03& arg_03,
136712 const t_ARG_04& arg_04,
136713 const t_ARG_05& arg_05,
136714 const t_ARG_06& arg_06,
136715 const t_ARG_07& arg_07,
136716 const t_ARG_08& arg_08,
136717 const t_ARG_09& arg_09,
136718 const t_ARG_10& arg_10)
136719: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136720 arg_01,
136721 arg_02,
136722 arg_03,
136723 arg_04,
136724 arg_05,
136725 arg_06,
136726 arg_07,
136727 arg_08,
136728 arg_09,
136729 arg_10)
136730{
136731}
136732#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
136733
136734#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
136735template <class t_HEAD, class t_TAIL_01,
136736 class t_TAIL_02,
136737 class t_TAIL_03>
136738template <size_t t_INDEX,
136739 class t_ARG_01,
136740 class t_ARG_02,
136741 class t_ARG_03,
136742 class t_ARG_04,
136743 class t_ARG_05,
136744 class t_ARG_06,
136745 class t_ARG_07,
136746 class t_ARG_08,
136747 class t_ARG_09,
136748 class t_ARG_10>
136749inline
136750variant<t_HEAD, t_TAIL_01,
136751 t_TAIL_02,
136752 t_TAIL_03,
136753 BSLS_COMPILERFEATURES_FILLT(15)
136755 const t_ARG_01& arg_01,
136756 const t_ARG_02& arg_02,
136757 const t_ARG_03& arg_03,
136758 const t_ARG_04& arg_04,
136759 const t_ARG_05& arg_05,
136760 const t_ARG_06& arg_06,
136761 const t_ARG_07& arg_07,
136762 const t_ARG_08& arg_08,
136763 const t_ARG_09& arg_09,
136764 const t_ARG_10& arg_10)
136765: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136766 arg_01,
136767 arg_02,
136768 arg_03,
136769 arg_04,
136770 arg_05,
136771 arg_06,
136772 arg_07,
136773 arg_08,
136774 arg_09,
136775 arg_10)
136776{
136777}
136778#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
136779
136780#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
136781template <class t_HEAD, class t_TAIL_01,
136782 class t_TAIL_02,
136783 class t_TAIL_03,
136784 class t_TAIL_04>
136785template <size_t t_INDEX,
136786 class t_ARG_01,
136787 class t_ARG_02,
136788 class t_ARG_03,
136789 class t_ARG_04,
136790 class t_ARG_05,
136791 class t_ARG_06,
136792 class t_ARG_07,
136793 class t_ARG_08,
136794 class t_ARG_09,
136795 class t_ARG_10>
136796inline
136797variant<t_HEAD, t_TAIL_01,
136798 t_TAIL_02,
136799 t_TAIL_03,
136800 t_TAIL_04,
136801 BSLS_COMPILERFEATURES_FILLT(14)
136803 const t_ARG_01& arg_01,
136804 const t_ARG_02& arg_02,
136805 const t_ARG_03& arg_03,
136806 const t_ARG_04& arg_04,
136807 const t_ARG_05& arg_05,
136808 const t_ARG_06& arg_06,
136809 const t_ARG_07& arg_07,
136810 const t_ARG_08& arg_08,
136811 const t_ARG_09& arg_09,
136812 const t_ARG_10& arg_10)
136813: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136814 arg_01,
136815 arg_02,
136816 arg_03,
136817 arg_04,
136818 arg_05,
136819 arg_06,
136820 arg_07,
136821 arg_08,
136822 arg_09,
136823 arg_10)
136824{
136825}
136826#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
136827
136828#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
136829template <class t_HEAD, class t_TAIL_01,
136830 class t_TAIL_02,
136831 class t_TAIL_03,
136832 class t_TAIL_04,
136833 class t_TAIL_05>
136834template <size_t t_INDEX,
136835 class t_ARG_01,
136836 class t_ARG_02,
136837 class t_ARG_03,
136838 class t_ARG_04,
136839 class t_ARG_05,
136840 class t_ARG_06,
136841 class t_ARG_07,
136842 class t_ARG_08,
136843 class t_ARG_09,
136844 class t_ARG_10>
136845inline
136846variant<t_HEAD, t_TAIL_01,
136847 t_TAIL_02,
136848 t_TAIL_03,
136849 t_TAIL_04,
136850 t_TAIL_05,
136851 BSLS_COMPILERFEATURES_FILLT(13)
136853 const t_ARG_01& arg_01,
136854 const t_ARG_02& arg_02,
136855 const t_ARG_03& arg_03,
136856 const t_ARG_04& arg_04,
136857 const t_ARG_05& arg_05,
136858 const t_ARG_06& arg_06,
136859 const t_ARG_07& arg_07,
136860 const t_ARG_08& arg_08,
136861 const t_ARG_09& arg_09,
136862 const t_ARG_10& arg_10)
136863: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136864 arg_01,
136865 arg_02,
136866 arg_03,
136867 arg_04,
136868 arg_05,
136869 arg_06,
136870 arg_07,
136871 arg_08,
136872 arg_09,
136873 arg_10)
136874{
136875}
136876#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
136877
136878#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
136879template <class t_HEAD, class t_TAIL_01,
136880 class t_TAIL_02,
136881 class t_TAIL_03,
136882 class t_TAIL_04,
136883 class t_TAIL_05,
136884 class t_TAIL_06>
136885template <size_t t_INDEX,
136886 class t_ARG_01,
136887 class t_ARG_02,
136888 class t_ARG_03,
136889 class t_ARG_04,
136890 class t_ARG_05,
136891 class t_ARG_06,
136892 class t_ARG_07,
136893 class t_ARG_08,
136894 class t_ARG_09,
136895 class t_ARG_10>
136896inline
136897variant<t_HEAD, t_TAIL_01,
136898 t_TAIL_02,
136899 t_TAIL_03,
136900 t_TAIL_04,
136901 t_TAIL_05,
136902 t_TAIL_06,
136903 BSLS_COMPILERFEATURES_FILLT(12)
136905 const t_ARG_01& arg_01,
136906 const t_ARG_02& arg_02,
136907 const t_ARG_03& arg_03,
136908 const t_ARG_04& arg_04,
136909 const t_ARG_05& arg_05,
136910 const t_ARG_06& arg_06,
136911 const t_ARG_07& arg_07,
136912 const t_ARG_08& arg_08,
136913 const t_ARG_09& arg_09,
136914 const t_ARG_10& arg_10)
136915: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136916 arg_01,
136917 arg_02,
136918 arg_03,
136919 arg_04,
136920 arg_05,
136921 arg_06,
136922 arg_07,
136923 arg_08,
136924 arg_09,
136925 arg_10)
136926{
136927}
136928#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
136929
136930#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
136931template <class t_HEAD, class t_TAIL_01,
136932 class t_TAIL_02,
136933 class t_TAIL_03,
136934 class t_TAIL_04,
136935 class t_TAIL_05,
136936 class t_TAIL_06,
136937 class t_TAIL_07>
136938template <size_t t_INDEX,
136939 class t_ARG_01,
136940 class t_ARG_02,
136941 class t_ARG_03,
136942 class t_ARG_04,
136943 class t_ARG_05,
136944 class t_ARG_06,
136945 class t_ARG_07,
136946 class t_ARG_08,
136947 class t_ARG_09,
136948 class t_ARG_10>
136949inline
136950variant<t_HEAD, t_TAIL_01,
136951 t_TAIL_02,
136952 t_TAIL_03,
136953 t_TAIL_04,
136954 t_TAIL_05,
136955 t_TAIL_06,
136956 t_TAIL_07,
136957 BSLS_COMPILERFEATURES_FILLT(11)
136959 const t_ARG_01& arg_01,
136960 const t_ARG_02& arg_02,
136961 const t_ARG_03& arg_03,
136962 const t_ARG_04& arg_04,
136963 const t_ARG_05& arg_05,
136964 const t_ARG_06& arg_06,
136965 const t_ARG_07& arg_07,
136966 const t_ARG_08& arg_08,
136967 const t_ARG_09& arg_09,
136968 const t_ARG_10& arg_10)
136969: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
136970 arg_01,
136971 arg_02,
136972 arg_03,
136973 arg_04,
136974 arg_05,
136975 arg_06,
136976 arg_07,
136977 arg_08,
136978 arg_09,
136979 arg_10)
136980{
136981}
136982#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
136983
136984#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
136985template <class t_HEAD, class t_TAIL_01,
136986 class t_TAIL_02,
136987 class t_TAIL_03,
136988 class t_TAIL_04,
136989 class t_TAIL_05,
136990 class t_TAIL_06,
136991 class t_TAIL_07,
136992 class t_TAIL_08>
136993template <size_t t_INDEX,
136994 class t_ARG_01,
136995 class t_ARG_02,
136996 class t_ARG_03,
136997 class t_ARG_04,
136998 class t_ARG_05,
136999 class t_ARG_06,
137000 class t_ARG_07,
137001 class t_ARG_08,
137002 class t_ARG_09,
137003 class t_ARG_10>
137004inline
137005variant<t_HEAD, t_TAIL_01,
137006 t_TAIL_02,
137007 t_TAIL_03,
137008 t_TAIL_04,
137009 t_TAIL_05,
137010 t_TAIL_06,
137011 t_TAIL_07,
137012 t_TAIL_08,
137013 BSLS_COMPILERFEATURES_FILLT(10)
137015 const t_ARG_01& arg_01,
137016 const t_ARG_02& arg_02,
137017 const t_ARG_03& arg_03,
137018 const t_ARG_04& arg_04,
137019 const t_ARG_05& arg_05,
137020 const t_ARG_06& arg_06,
137021 const t_ARG_07& arg_07,
137022 const t_ARG_08& arg_08,
137023 const t_ARG_09& arg_09,
137024 const t_ARG_10& arg_10)
137025: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137026 arg_01,
137027 arg_02,
137028 arg_03,
137029 arg_04,
137030 arg_05,
137031 arg_06,
137032 arg_07,
137033 arg_08,
137034 arg_09,
137035 arg_10)
137036{
137037}
137038#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
137039
137040#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
137041template <class t_HEAD, class t_TAIL_01,
137042 class t_TAIL_02,
137043 class t_TAIL_03,
137044 class t_TAIL_04,
137045 class t_TAIL_05,
137046 class t_TAIL_06,
137047 class t_TAIL_07,
137048 class t_TAIL_08,
137049 class t_TAIL_09>
137050template <size_t t_INDEX,
137051 class t_ARG_01,
137052 class t_ARG_02,
137053 class t_ARG_03,
137054 class t_ARG_04,
137055 class t_ARG_05,
137056 class t_ARG_06,
137057 class t_ARG_07,
137058 class t_ARG_08,
137059 class t_ARG_09,
137060 class t_ARG_10>
137061inline
137062variant<t_HEAD, t_TAIL_01,
137063 t_TAIL_02,
137064 t_TAIL_03,
137065 t_TAIL_04,
137066 t_TAIL_05,
137067 t_TAIL_06,
137068 t_TAIL_07,
137069 t_TAIL_08,
137070 t_TAIL_09,
137071 BSLS_COMPILERFEATURES_FILLT( 9)
137073 const t_ARG_01& arg_01,
137074 const t_ARG_02& arg_02,
137075 const t_ARG_03& arg_03,
137076 const t_ARG_04& arg_04,
137077 const t_ARG_05& arg_05,
137078 const t_ARG_06& arg_06,
137079 const t_ARG_07& arg_07,
137080 const t_ARG_08& arg_08,
137081 const t_ARG_09& arg_09,
137082 const t_ARG_10& arg_10)
137083: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137084 arg_01,
137085 arg_02,
137086 arg_03,
137087 arg_04,
137088 arg_05,
137089 arg_06,
137090 arg_07,
137091 arg_08,
137092 arg_09,
137093 arg_10)
137094{
137095}
137096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
137097
137098#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
137099template <class t_HEAD, class t_TAIL_01,
137100 class t_TAIL_02,
137101 class t_TAIL_03,
137102 class t_TAIL_04,
137103 class t_TAIL_05,
137104 class t_TAIL_06,
137105 class t_TAIL_07,
137106 class t_TAIL_08,
137107 class t_TAIL_09,
137108 class t_TAIL_10>
137109template <size_t t_INDEX,
137110 class t_ARG_01,
137111 class t_ARG_02,
137112 class t_ARG_03,
137113 class t_ARG_04,
137114 class t_ARG_05,
137115 class t_ARG_06,
137116 class t_ARG_07,
137117 class t_ARG_08,
137118 class t_ARG_09,
137119 class t_ARG_10>
137120inline
137121variant<t_HEAD, t_TAIL_01,
137122 t_TAIL_02,
137123 t_TAIL_03,
137124 t_TAIL_04,
137125 t_TAIL_05,
137126 t_TAIL_06,
137127 t_TAIL_07,
137128 t_TAIL_08,
137129 t_TAIL_09,
137130 t_TAIL_10,
137131 BSLS_COMPILERFEATURES_FILLT( 8)
137133 const t_ARG_01& arg_01,
137134 const t_ARG_02& arg_02,
137135 const t_ARG_03& arg_03,
137136 const t_ARG_04& arg_04,
137137 const t_ARG_05& arg_05,
137138 const t_ARG_06& arg_06,
137139 const t_ARG_07& arg_07,
137140 const t_ARG_08& arg_08,
137141 const t_ARG_09& arg_09,
137142 const t_ARG_10& arg_10)
137143: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137144 arg_01,
137145 arg_02,
137146 arg_03,
137147 arg_04,
137148 arg_05,
137149 arg_06,
137150 arg_07,
137151 arg_08,
137152 arg_09,
137153 arg_10)
137154{
137155}
137156#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
137157
137158#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
137159template <class t_HEAD, class t_TAIL_01,
137160 class t_TAIL_02,
137161 class t_TAIL_03,
137162 class t_TAIL_04,
137163 class t_TAIL_05,
137164 class t_TAIL_06,
137165 class t_TAIL_07,
137166 class t_TAIL_08,
137167 class t_TAIL_09,
137168 class t_TAIL_10,
137169 class t_TAIL_11>
137170template <size_t t_INDEX,
137171 class t_ARG_01,
137172 class t_ARG_02,
137173 class t_ARG_03,
137174 class t_ARG_04,
137175 class t_ARG_05,
137176 class t_ARG_06,
137177 class t_ARG_07,
137178 class t_ARG_08,
137179 class t_ARG_09,
137180 class t_ARG_10>
137181inline
137182variant<t_HEAD, t_TAIL_01,
137183 t_TAIL_02,
137184 t_TAIL_03,
137185 t_TAIL_04,
137186 t_TAIL_05,
137187 t_TAIL_06,
137188 t_TAIL_07,
137189 t_TAIL_08,
137190 t_TAIL_09,
137191 t_TAIL_10,
137192 t_TAIL_11,
137193 BSLS_COMPILERFEATURES_FILLT( 7)
137195 const t_ARG_01& arg_01,
137196 const t_ARG_02& arg_02,
137197 const t_ARG_03& arg_03,
137198 const t_ARG_04& arg_04,
137199 const t_ARG_05& arg_05,
137200 const t_ARG_06& arg_06,
137201 const t_ARG_07& arg_07,
137202 const t_ARG_08& arg_08,
137203 const t_ARG_09& arg_09,
137204 const t_ARG_10& arg_10)
137205: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137206 arg_01,
137207 arg_02,
137208 arg_03,
137209 arg_04,
137210 arg_05,
137211 arg_06,
137212 arg_07,
137213 arg_08,
137214 arg_09,
137215 arg_10)
137216{
137217}
137218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
137219
137220#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
137221template <class t_HEAD, class t_TAIL_01,
137222 class t_TAIL_02,
137223 class t_TAIL_03,
137224 class t_TAIL_04,
137225 class t_TAIL_05,
137226 class t_TAIL_06,
137227 class t_TAIL_07,
137228 class t_TAIL_08,
137229 class t_TAIL_09,
137230 class t_TAIL_10,
137231 class t_TAIL_11,
137232 class t_TAIL_12>
137233template <size_t t_INDEX,
137234 class t_ARG_01,
137235 class t_ARG_02,
137236 class t_ARG_03,
137237 class t_ARG_04,
137238 class t_ARG_05,
137239 class t_ARG_06,
137240 class t_ARG_07,
137241 class t_ARG_08,
137242 class t_ARG_09,
137243 class t_ARG_10>
137244inline
137245variant<t_HEAD, t_TAIL_01,
137246 t_TAIL_02,
137247 t_TAIL_03,
137248 t_TAIL_04,
137249 t_TAIL_05,
137250 t_TAIL_06,
137251 t_TAIL_07,
137252 t_TAIL_08,
137253 t_TAIL_09,
137254 t_TAIL_10,
137255 t_TAIL_11,
137256 t_TAIL_12,
137257 BSLS_COMPILERFEATURES_FILLT( 6)
137259 const t_ARG_01& arg_01,
137260 const t_ARG_02& arg_02,
137261 const t_ARG_03& arg_03,
137262 const t_ARG_04& arg_04,
137263 const t_ARG_05& arg_05,
137264 const t_ARG_06& arg_06,
137265 const t_ARG_07& arg_07,
137266 const t_ARG_08& arg_08,
137267 const t_ARG_09& arg_09,
137268 const t_ARG_10& arg_10)
137269: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137270 arg_01,
137271 arg_02,
137272 arg_03,
137273 arg_04,
137274 arg_05,
137275 arg_06,
137276 arg_07,
137277 arg_08,
137278 arg_09,
137279 arg_10)
137280{
137281}
137282#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
137283
137284#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
137285template <class t_HEAD, class t_TAIL_01,
137286 class t_TAIL_02,
137287 class t_TAIL_03,
137288 class t_TAIL_04,
137289 class t_TAIL_05,
137290 class t_TAIL_06,
137291 class t_TAIL_07,
137292 class t_TAIL_08,
137293 class t_TAIL_09,
137294 class t_TAIL_10,
137295 class t_TAIL_11,
137296 class t_TAIL_12,
137297 class t_TAIL_13>
137298template <size_t t_INDEX,
137299 class t_ARG_01,
137300 class t_ARG_02,
137301 class t_ARG_03,
137302 class t_ARG_04,
137303 class t_ARG_05,
137304 class t_ARG_06,
137305 class t_ARG_07,
137306 class t_ARG_08,
137307 class t_ARG_09,
137308 class t_ARG_10>
137309inline
137310variant<t_HEAD, t_TAIL_01,
137311 t_TAIL_02,
137312 t_TAIL_03,
137313 t_TAIL_04,
137314 t_TAIL_05,
137315 t_TAIL_06,
137316 t_TAIL_07,
137317 t_TAIL_08,
137318 t_TAIL_09,
137319 t_TAIL_10,
137320 t_TAIL_11,
137321 t_TAIL_12,
137322 t_TAIL_13,
137323 BSLS_COMPILERFEATURES_FILLT( 5)
137325 const t_ARG_01& arg_01,
137326 const t_ARG_02& arg_02,
137327 const t_ARG_03& arg_03,
137328 const t_ARG_04& arg_04,
137329 const t_ARG_05& arg_05,
137330 const t_ARG_06& arg_06,
137331 const t_ARG_07& arg_07,
137332 const t_ARG_08& arg_08,
137333 const t_ARG_09& arg_09,
137334 const t_ARG_10& arg_10)
137335: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137336 arg_01,
137337 arg_02,
137338 arg_03,
137339 arg_04,
137340 arg_05,
137341 arg_06,
137342 arg_07,
137343 arg_08,
137344 arg_09,
137345 arg_10)
137346{
137347}
137348#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
137349
137350#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
137351template <class t_HEAD, class t_TAIL_01,
137352 class t_TAIL_02,
137353 class t_TAIL_03,
137354 class t_TAIL_04,
137355 class t_TAIL_05,
137356 class t_TAIL_06,
137357 class t_TAIL_07,
137358 class t_TAIL_08,
137359 class t_TAIL_09,
137360 class t_TAIL_10,
137361 class t_TAIL_11,
137362 class t_TAIL_12,
137363 class t_TAIL_13,
137364 class t_TAIL_14>
137365template <size_t t_INDEX,
137366 class t_ARG_01,
137367 class t_ARG_02,
137368 class t_ARG_03,
137369 class t_ARG_04,
137370 class t_ARG_05,
137371 class t_ARG_06,
137372 class t_ARG_07,
137373 class t_ARG_08,
137374 class t_ARG_09,
137375 class t_ARG_10>
137376inline
137377variant<t_HEAD, t_TAIL_01,
137378 t_TAIL_02,
137379 t_TAIL_03,
137380 t_TAIL_04,
137381 t_TAIL_05,
137382 t_TAIL_06,
137383 t_TAIL_07,
137384 t_TAIL_08,
137385 t_TAIL_09,
137386 t_TAIL_10,
137387 t_TAIL_11,
137388 t_TAIL_12,
137389 t_TAIL_13,
137390 t_TAIL_14,
137391 BSLS_COMPILERFEATURES_FILLT( 4)
137393 const t_ARG_01& arg_01,
137394 const t_ARG_02& arg_02,
137395 const t_ARG_03& arg_03,
137396 const t_ARG_04& arg_04,
137397 const t_ARG_05& arg_05,
137398 const t_ARG_06& arg_06,
137399 const t_ARG_07& arg_07,
137400 const t_ARG_08& arg_08,
137401 const t_ARG_09& arg_09,
137402 const t_ARG_10& arg_10)
137403: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137404 arg_01,
137405 arg_02,
137406 arg_03,
137407 arg_04,
137408 arg_05,
137409 arg_06,
137410 arg_07,
137411 arg_08,
137412 arg_09,
137413 arg_10)
137414{
137415}
137416#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
137417
137418#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
137419template <class t_HEAD, class t_TAIL_01,
137420 class t_TAIL_02,
137421 class t_TAIL_03,
137422 class t_TAIL_04,
137423 class t_TAIL_05,
137424 class t_TAIL_06,
137425 class t_TAIL_07,
137426 class t_TAIL_08,
137427 class t_TAIL_09,
137428 class t_TAIL_10,
137429 class t_TAIL_11,
137430 class t_TAIL_12,
137431 class t_TAIL_13,
137432 class t_TAIL_14,
137433 class t_TAIL_15>
137434template <size_t t_INDEX,
137435 class t_ARG_01,
137436 class t_ARG_02,
137437 class t_ARG_03,
137438 class t_ARG_04,
137439 class t_ARG_05,
137440 class t_ARG_06,
137441 class t_ARG_07,
137442 class t_ARG_08,
137443 class t_ARG_09,
137444 class t_ARG_10>
137445inline
137446variant<t_HEAD, t_TAIL_01,
137447 t_TAIL_02,
137448 t_TAIL_03,
137449 t_TAIL_04,
137450 t_TAIL_05,
137451 t_TAIL_06,
137452 t_TAIL_07,
137453 t_TAIL_08,
137454 t_TAIL_09,
137455 t_TAIL_10,
137456 t_TAIL_11,
137457 t_TAIL_12,
137458 t_TAIL_13,
137459 t_TAIL_14,
137460 t_TAIL_15,
137461 BSLS_COMPILERFEATURES_FILLT( 3)
137463 const t_ARG_01& arg_01,
137464 const t_ARG_02& arg_02,
137465 const t_ARG_03& arg_03,
137466 const t_ARG_04& arg_04,
137467 const t_ARG_05& arg_05,
137468 const t_ARG_06& arg_06,
137469 const t_ARG_07& arg_07,
137470 const t_ARG_08& arg_08,
137471 const t_ARG_09& arg_09,
137472 const t_ARG_10& arg_10)
137473: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137474 arg_01,
137475 arg_02,
137476 arg_03,
137477 arg_04,
137478 arg_05,
137479 arg_06,
137480 arg_07,
137481 arg_08,
137482 arg_09,
137483 arg_10)
137484{
137485}
137486#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
137487
137488#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
137489template <class t_HEAD, class t_TAIL_01,
137490 class t_TAIL_02,
137491 class t_TAIL_03,
137492 class t_TAIL_04,
137493 class t_TAIL_05,
137494 class t_TAIL_06,
137495 class t_TAIL_07,
137496 class t_TAIL_08,
137497 class t_TAIL_09,
137498 class t_TAIL_10,
137499 class t_TAIL_11,
137500 class t_TAIL_12,
137501 class t_TAIL_13,
137502 class t_TAIL_14,
137503 class t_TAIL_15,
137504 class t_TAIL_16>
137505template <size_t t_INDEX,
137506 class t_ARG_01,
137507 class t_ARG_02,
137508 class t_ARG_03,
137509 class t_ARG_04,
137510 class t_ARG_05,
137511 class t_ARG_06,
137512 class t_ARG_07,
137513 class t_ARG_08,
137514 class t_ARG_09,
137515 class t_ARG_10>
137516inline
137517variant<t_HEAD, t_TAIL_01,
137518 t_TAIL_02,
137519 t_TAIL_03,
137520 t_TAIL_04,
137521 t_TAIL_05,
137522 t_TAIL_06,
137523 t_TAIL_07,
137524 t_TAIL_08,
137525 t_TAIL_09,
137526 t_TAIL_10,
137527 t_TAIL_11,
137528 t_TAIL_12,
137529 t_TAIL_13,
137530 t_TAIL_14,
137531 t_TAIL_15,
137532 t_TAIL_16,
137533 BSLS_COMPILERFEATURES_FILLT( 2)
137535 const t_ARG_01& arg_01,
137536 const t_ARG_02& arg_02,
137537 const t_ARG_03& arg_03,
137538 const t_ARG_04& arg_04,
137539 const t_ARG_05& arg_05,
137540 const t_ARG_06& arg_06,
137541 const t_ARG_07& arg_07,
137542 const t_ARG_08& arg_08,
137543 const t_ARG_09& arg_09,
137544 const t_ARG_10& arg_10)
137545: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137546 arg_01,
137547 arg_02,
137548 arg_03,
137549 arg_04,
137550 arg_05,
137551 arg_06,
137552 arg_07,
137553 arg_08,
137554 arg_09,
137555 arg_10)
137556{
137557}
137558#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
137559
137560#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
137561template <class t_HEAD, class t_TAIL_01,
137562 class t_TAIL_02,
137563 class t_TAIL_03,
137564 class t_TAIL_04,
137565 class t_TAIL_05,
137566 class t_TAIL_06,
137567 class t_TAIL_07,
137568 class t_TAIL_08,
137569 class t_TAIL_09,
137570 class t_TAIL_10,
137571 class t_TAIL_11,
137572 class t_TAIL_12,
137573 class t_TAIL_13,
137574 class t_TAIL_14,
137575 class t_TAIL_15,
137576 class t_TAIL_16,
137577 class t_TAIL_17>
137578template <size_t t_INDEX,
137579 class t_ARG_01,
137580 class t_ARG_02,
137581 class t_ARG_03,
137582 class t_ARG_04,
137583 class t_ARG_05,
137584 class t_ARG_06,
137585 class t_ARG_07,
137586 class t_ARG_08,
137587 class t_ARG_09,
137588 class t_ARG_10>
137589inline
137590variant<t_HEAD, t_TAIL_01,
137591 t_TAIL_02,
137592 t_TAIL_03,
137593 t_TAIL_04,
137594 t_TAIL_05,
137595 t_TAIL_06,
137596 t_TAIL_07,
137597 t_TAIL_08,
137598 t_TAIL_09,
137599 t_TAIL_10,
137600 t_TAIL_11,
137601 t_TAIL_12,
137602 t_TAIL_13,
137603 t_TAIL_14,
137604 t_TAIL_15,
137605 t_TAIL_16,
137606 t_TAIL_17,
137607 BSLS_COMPILERFEATURES_FILLT( 1)
137609 const t_ARG_01& arg_01,
137610 const t_ARG_02& arg_02,
137611 const t_ARG_03& arg_03,
137612 const t_ARG_04& arg_04,
137613 const t_ARG_05& arg_05,
137614 const t_ARG_06& arg_06,
137615 const t_ARG_07& arg_07,
137616 const t_ARG_08& arg_08,
137617 const t_ARG_09& arg_09,
137618 const t_ARG_10& arg_10)
137619: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137620 arg_01,
137621 arg_02,
137622 arg_03,
137623 arg_04,
137624 arg_05,
137625 arg_06,
137626 arg_07,
137627 arg_08,
137628 arg_09,
137629 arg_10)
137630{
137631}
137632#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
137633
137634#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
137635template <class t_HEAD, class t_TAIL_01,
137636 class t_TAIL_02,
137637 class t_TAIL_03,
137638 class t_TAIL_04,
137639 class t_TAIL_05,
137640 class t_TAIL_06,
137641 class t_TAIL_07,
137642 class t_TAIL_08,
137643 class t_TAIL_09,
137644 class t_TAIL_10,
137645 class t_TAIL_11,
137646 class t_TAIL_12,
137647 class t_TAIL_13,
137648 class t_TAIL_14,
137649 class t_TAIL_15,
137650 class t_TAIL_16,
137651 class t_TAIL_17,
137652 class t_TAIL_18>
137653template <size_t t_INDEX,
137654 class t_ARG_01,
137655 class t_ARG_02,
137656 class t_ARG_03,
137657 class t_ARG_04,
137658 class t_ARG_05,
137659 class t_ARG_06,
137660 class t_ARG_07,
137661 class t_ARG_08,
137662 class t_ARG_09,
137663 class t_ARG_10>
137664inline
137665variant<t_HEAD, t_TAIL_01,
137666 t_TAIL_02,
137667 t_TAIL_03,
137668 t_TAIL_04,
137669 t_TAIL_05,
137670 t_TAIL_06,
137671 t_TAIL_07,
137672 t_TAIL_08,
137673 t_TAIL_09,
137674 t_TAIL_10,
137675 t_TAIL_11,
137676 t_TAIL_12,
137677 t_TAIL_13,
137678 t_TAIL_14,
137679 t_TAIL_15,
137680 t_TAIL_16,
137681 t_TAIL_17,
137682 t_TAIL_18,
137683 BSLS_COMPILERFEATURES_FILLT( 0)
137685 const t_ARG_01& arg_01,
137686 const t_ARG_02& arg_02,
137687 const t_ARG_03& arg_03,
137688 const t_ARG_04& arg_04,
137689 const t_ARG_05& arg_05,
137690 const t_ARG_06& arg_06,
137691 const t_ARG_07& arg_07,
137692 const t_ARG_08& arg_08,
137693 const t_ARG_09& arg_09,
137694 const t_ARG_10& arg_10)
137695: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
137696 arg_01,
137697 arg_02,
137698 arg_03,
137699 arg_04,
137700 arg_05,
137701 arg_06,
137702 arg_07,
137703 arg_08,
137704 arg_09,
137705 arg_10)
137706{
137707}
137708#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
137709
137710
137711#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
137712template <class t_HEAD>
137713inline
137714variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
137715 allocator_type allocator)
137716: Variant_Base(bsl::allocator_arg_t(), allocator)
137717{
137718}
137719#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
137720
137721#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
137722template <class t_HEAD, class t_TAIL_01>
137723inline
137724variant<t_HEAD, t_TAIL_01,
137725 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
137726 allocator_type allocator)
137727: Variant_Base(bsl::allocator_arg_t(), allocator)
137728{
137729}
137730#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
137731
137732#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
137733template <class t_HEAD, class t_TAIL_01,
137734 class t_TAIL_02>
137735inline
137736variant<t_HEAD, t_TAIL_01,
137737 t_TAIL_02,
137738 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
137739 allocator_type allocator)
137740: Variant_Base(bsl::allocator_arg_t(), allocator)
137741{
137742}
137743#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
137744
137745#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
137746template <class t_HEAD, class t_TAIL_01,
137747 class t_TAIL_02,
137748 class t_TAIL_03>
137749inline
137750variant<t_HEAD, t_TAIL_01,
137751 t_TAIL_02,
137752 t_TAIL_03,
137753 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
137754 allocator_type allocator)
137755: Variant_Base(bsl::allocator_arg_t(), allocator)
137756{
137757}
137758#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
137759
137760#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
137761template <class t_HEAD, class t_TAIL_01,
137762 class t_TAIL_02,
137763 class t_TAIL_03,
137764 class t_TAIL_04>
137765inline
137766variant<t_HEAD, t_TAIL_01,
137767 t_TAIL_02,
137768 t_TAIL_03,
137769 t_TAIL_04,
137770 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
137771 allocator_type allocator)
137772: Variant_Base(bsl::allocator_arg_t(), allocator)
137773{
137774}
137775#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
137776
137777#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
137778template <class t_HEAD, class t_TAIL_01,
137779 class t_TAIL_02,
137780 class t_TAIL_03,
137781 class t_TAIL_04,
137782 class t_TAIL_05>
137783inline
137784variant<t_HEAD, t_TAIL_01,
137785 t_TAIL_02,
137786 t_TAIL_03,
137787 t_TAIL_04,
137788 t_TAIL_05,
137789 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
137790 allocator_type allocator)
137791: Variant_Base(bsl::allocator_arg_t(), allocator)
137792{
137793}
137794#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
137795
137796#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
137797template <class t_HEAD, class t_TAIL_01,
137798 class t_TAIL_02,
137799 class t_TAIL_03,
137800 class t_TAIL_04,
137801 class t_TAIL_05,
137802 class t_TAIL_06>
137803inline
137804variant<t_HEAD, t_TAIL_01,
137805 t_TAIL_02,
137806 t_TAIL_03,
137807 t_TAIL_04,
137808 t_TAIL_05,
137809 t_TAIL_06,
137810 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
137811 allocator_type allocator)
137812: Variant_Base(bsl::allocator_arg_t(), allocator)
137813{
137814}
137815#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
137816
137817#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
137818template <class t_HEAD, class t_TAIL_01,
137819 class t_TAIL_02,
137820 class t_TAIL_03,
137821 class t_TAIL_04,
137822 class t_TAIL_05,
137823 class t_TAIL_06,
137824 class t_TAIL_07>
137825inline
137826variant<t_HEAD, t_TAIL_01,
137827 t_TAIL_02,
137828 t_TAIL_03,
137829 t_TAIL_04,
137830 t_TAIL_05,
137831 t_TAIL_06,
137832 t_TAIL_07,
137833 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
137834 allocator_type allocator)
137835: Variant_Base(bsl::allocator_arg_t(), allocator)
137836{
137837}
137838#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
137839
137840#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
137841template <class t_HEAD, class t_TAIL_01,
137842 class t_TAIL_02,
137843 class t_TAIL_03,
137844 class t_TAIL_04,
137845 class t_TAIL_05,
137846 class t_TAIL_06,
137847 class t_TAIL_07,
137848 class t_TAIL_08>
137849inline
137850variant<t_HEAD, t_TAIL_01,
137851 t_TAIL_02,
137852 t_TAIL_03,
137853 t_TAIL_04,
137854 t_TAIL_05,
137855 t_TAIL_06,
137856 t_TAIL_07,
137857 t_TAIL_08,
137858 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
137859 allocator_type allocator)
137860: Variant_Base(bsl::allocator_arg_t(), allocator)
137861{
137862}
137863#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
137864
137865#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
137866template <class t_HEAD, class t_TAIL_01,
137867 class t_TAIL_02,
137868 class t_TAIL_03,
137869 class t_TAIL_04,
137870 class t_TAIL_05,
137871 class t_TAIL_06,
137872 class t_TAIL_07,
137873 class t_TAIL_08,
137874 class t_TAIL_09>
137875inline
137876variant<t_HEAD, t_TAIL_01,
137877 t_TAIL_02,
137878 t_TAIL_03,
137879 t_TAIL_04,
137880 t_TAIL_05,
137881 t_TAIL_06,
137882 t_TAIL_07,
137883 t_TAIL_08,
137884 t_TAIL_09,
137885 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
137886 allocator_type allocator)
137887: Variant_Base(bsl::allocator_arg_t(), allocator)
137888{
137889}
137890#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
137891
137892#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
137893template <class t_HEAD, class t_TAIL_01,
137894 class t_TAIL_02,
137895 class t_TAIL_03,
137896 class t_TAIL_04,
137897 class t_TAIL_05,
137898 class t_TAIL_06,
137899 class t_TAIL_07,
137900 class t_TAIL_08,
137901 class t_TAIL_09,
137902 class t_TAIL_10>
137903inline
137904variant<t_HEAD, t_TAIL_01,
137905 t_TAIL_02,
137906 t_TAIL_03,
137907 t_TAIL_04,
137908 t_TAIL_05,
137909 t_TAIL_06,
137910 t_TAIL_07,
137911 t_TAIL_08,
137912 t_TAIL_09,
137913 t_TAIL_10,
137914 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
137915 allocator_type allocator)
137916: Variant_Base(bsl::allocator_arg_t(), allocator)
137917{
137918}
137919#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
137920
137921#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
137922template <class t_HEAD, class t_TAIL_01,
137923 class t_TAIL_02,
137924 class t_TAIL_03,
137925 class t_TAIL_04,
137926 class t_TAIL_05,
137927 class t_TAIL_06,
137928 class t_TAIL_07,
137929 class t_TAIL_08,
137930 class t_TAIL_09,
137931 class t_TAIL_10,
137932 class t_TAIL_11>
137933inline
137934variant<t_HEAD, t_TAIL_01,
137935 t_TAIL_02,
137936 t_TAIL_03,
137937 t_TAIL_04,
137938 t_TAIL_05,
137939 t_TAIL_06,
137940 t_TAIL_07,
137941 t_TAIL_08,
137942 t_TAIL_09,
137943 t_TAIL_10,
137944 t_TAIL_11,
137945 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
137946 allocator_type allocator)
137947: Variant_Base(bsl::allocator_arg_t(), allocator)
137948{
137949}
137950#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
137951
137952#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
137953template <class t_HEAD, class t_TAIL_01,
137954 class t_TAIL_02,
137955 class t_TAIL_03,
137956 class t_TAIL_04,
137957 class t_TAIL_05,
137958 class t_TAIL_06,
137959 class t_TAIL_07,
137960 class t_TAIL_08,
137961 class t_TAIL_09,
137962 class t_TAIL_10,
137963 class t_TAIL_11,
137964 class t_TAIL_12>
137965inline
137966variant<t_HEAD, t_TAIL_01,
137967 t_TAIL_02,
137968 t_TAIL_03,
137969 t_TAIL_04,
137970 t_TAIL_05,
137971 t_TAIL_06,
137972 t_TAIL_07,
137973 t_TAIL_08,
137974 t_TAIL_09,
137975 t_TAIL_10,
137976 t_TAIL_11,
137977 t_TAIL_12,
137978 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
137979 allocator_type allocator)
137980: Variant_Base(bsl::allocator_arg_t(), allocator)
137981{
137982}
137983#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
137984
137985#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
137986template <class t_HEAD, class t_TAIL_01,
137987 class t_TAIL_02,
137988 class t_TAIL_03,
137989 class t_TAIL_04,
137990 class t_TAIL_05,
137991 class t_TAIL_06,
137992 class t_TAIL_07,
137993 class t_TAIL_08,
137994 class t_TAIL_09,
137995 class t_TAIL_10,
137996 class t_TAIL_11,
137997 class t_TAIL_12,
137998 class t_TAIL_13>
137999inline
138000variant<t_HEAD, t_TAIL_01,
138001 t_TAIL_02,
138002 t_TAIL_03,
138003 t_TAIL_04,
138004 t_TAIL_05,
138005 t_TAIL_06,
138006 t_TAIL_07,
138007 t_TAIL_08,
138008 t_TAIL_09,
138009 t_TAIL_10,
138010 t_TAIL_11,
138011 t_TAIL_12,
138012 t_TAIL_13,
138013 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
138014 allocator_type allocator)
138015: Variant_Base(bsl::allocator_arg_t(), allocator)
138016{
138017}
138018#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
138019
138020#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
138021template <class t_HEAD, class t_TAIL_01,
138022 class t_TAIL_02,
138023 class t_TAIL_03,
138024 class t_TAIL_04,
138025 class t_TAIL_05,
138026 class t_TAIL_06,
138027 class t_TAIL_07,
138028 class t_TAIL_08,
138029 class t_TAIL_09,
138030 class t_TAIL_10,
138031 class t_TAIL_11,
138032 class t_TAIL_12,
138033 class t_TAIL_13,
138034 class t_TAIL_14>
138035inline
138036variant<t_HEAD, t_TAIL_01,
138037 t_TAIL_02,
138038 t_TAIL_03,
138039 t_TAIL_04,
138040 t_TAIL_05,
138041 t_TAIL_06,
138042 t_TAIL_07,
138043 t_TAIL_08,
138044 t_TAIL_09,
138045 t_TAIL_10,
138046 t_TAIL_11,
138047 t_TAIL_12,
138048 t_TAIL_13,
138049 t_TAIL_14,
138050 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
138051 allocator_type allocator)
138052: Variant_Base(bsl::allocator_arg_t(), allocator)
138053{
138054}
138055#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
138056
138057#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
138058template <class t_HEAD, class t_TAIL_01,
138059 class t_TAIL_02,
138060 class t_TAIL_03,
138061 class t_TAIL_04,
138062 class t_TAIL_05,
138063 class t_TAIL_06,
138064 class t_TAIL_07,
138065 class t_TAIL_08,
138066 class t_TAIL_09,
138067 class t_TAIL_10,
138068 class t_TAIL_11,
138069 class t_TAIL_12,
138070 class t_TAIL_13,
138071 class t_TAIL_14,
138072 class t_TAIL_15>
138073inline
138074variant<t_HEAD, t_TAIL_01,
138075 t_TAIL_02,
138076 t_TAIL_03,
138077 t_TAIL_04,
138078 t_TAIL_05,
138079 t_TAIL_06,
138080 t_TAIL_07,
138081 t_TAIL_08,
138082 t_TAIL_09,
138083 t_TAIL_10,
138084 t_TAIL_11,
138085 t_TAIL_12,
138086 t_TAIL_13,
138087 t_TAIL_14,
138088 t_TAIL_15,
138089 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
138090 allocator_type allocator)
138091: Variant_Base(bsl::allocator_arg_t(), allocator)
138092{
138093}
138094#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
138095
138096#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
138097template <class t_HEAD, class t_TAIL_01,
138098 class t_TAIL_02,
138099 class t_TAIL_03,
138100 class t_TAIL_04,
138101 class t_TAIL_05,
138102 class t_TAIL_06,
138103 class t_TAIL_07,
138104 class t_TAIL_08,
138105 class t_TAIL_09,
138106 class t_TAIL_10,
138107 class t_TAIL_11,
138108 class t_TAIL_12,
138109 class t_TAIL_13,
138110 class t_TAIL_14,
138111 class t_TAIL_15,
138112 class t_TAIL_16>
138113inline
138114variant<t_HEAD, t_TAIL_01,
138115 t_TAIL_02,
138116 t_TAIL_03,
138117 t_TAIL_04,
138118 t_TAIL_05,
138119 t_TAIL_06,
138120 t_TAIL_07,
138121 t_TAIL_08,
138122 t_TAIL_09,
138123 t_TAIL_10,
138124 t_TAIL_11,
138125 t_TAIL_12,
138126 t_TAIL_13,
138127 t_TAIL_14,
138128 t_TAIL_15,
138129 t_TAIL_16,
138130 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
138131 allocator_type allocator)
138132: Variant_Base(bsl::allocator_arg_t(), allocator)
138133{
138134}
138135#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
138136
138137#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
138138template <class t_HEAD, class t_TAIL_01,
138139 class t_TAIL_02,
138140 class t_TAIL_03,
138141 class t_TAIL_04,
138142 class t_TAIL_05,
138143 class t_TAIL_06,
138144 class t_TAIL_07,
138145 class t_TAIL_08,
138146 class t_TAIL_09,
138147 class t_TAIL_10,
138148 class t_TAIL_11,
138149 class t_TAIL_12,
138150 class t_TAIL_13,
138151 class t_TAIL_14,
138152 class t_TAIL_15,
138153 class t_TAIL_16,
138154 class t_TAIL_17>
138155inline
138156variant<t_HEAD, t_TAIL_01,
138157 t_TAIL_02,
138158 t_TAIL_03,
138159 t_TAIL_04,
138160 t_TAIL_05,
138161 t_TAIL_06,
138162 t_TAIL_07,
138163 t_TAIL_08,
138164 t_TAIL_09,
138165 t_TAIL_10,
138166 t_TAIL_11,
138167 t_TAIL_12,
138168 t_TAIL_13,
138169 t_TAIL_14,
138170 t_TAIL_15,
138171 t_TAIL_16,
138172 t_TAIL_17,
138173 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
138174 allocator_type allocator)
138175: Variant_Base(bsl::allocator_arg_t(), allocator)
138176{
138177}
138178#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
138179
138180#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
138181template <class t_HEAD, class t_TAIL_01,
138182 class t_TAIL_02,
138183 class t_TAIL_03,
138184 class t_TAIL_04,
138185 class t_TAIL_05,
138186 class t_TAIL_06,
138187 class t_TAIL_07,
138188 class t_TAIL_08,
138189 class t_TAIL_09,
138190 class t_TAIL_10,
138191 class t_TAIL_11,
138192 class t_TAIL_12,
138193 class t_TAIL_13,
138194 class t_TAIL_14,
138195 class t_TAIL_15,
138196 class t_TAIL_16,
138197 class t_TAIL_17,
138198 class t_TAIL_18>
138199inline
138200variant<t_HEAD, t_TAIL_01,
138201 t_TAIL_02,
138202 t_TAIL_03,
138203 t_TAIL_04,
138204 t_TAIL_05,
138205 t_TAIL_06,
138206 t_TAIL_07,
138207 t_TAIL_08,
138208 t_TAIL_09,
138209 t_TAIL_10,
138210 t_TAIL_11,
138211 t_TAIL_12,
138212 t_TAIL_13,
138213 t_TAIL_14,
138214 t_TAIL_15,
138215 t_TAIL_16,
138216 t_TAIL_17,
138217 t_TAIL_18,
138218 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
138219 allocator_type allocator)
138220: Variant_Base(bsl::allocator_arg_t(), allocator)
138221{
138222}
138223#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
138224
138225
138226#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
138227template <class t_HEAD>
138228inline
138229variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
138230 allocator_type allocator,
138231 const variant& original)
138232: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138233{
138234}
138235#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
138236
138237#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
138238template <class t_HEAD, class t_TAIL_01>
138239inline
138240variant<t_HEAD, t_TAIL_01,
138241 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
138242 allocator_type allocator,
138243 const variant& original)
138244: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138245{
138246}
138247#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
138248
138249#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
138250template <class t_HEAD, class t_TAIL_01,
138251 class t_TAIL_02>
138252inline
138253variant<t_HEAD, t_TAIL_01,
138254 t_TAIL_02,
138255 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
138256 allocator_type allocator,
138257 const variant& original)
138258: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138259{
138260}
138261#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
138262
138263#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
138264template <class t_HEAD, class t_TAIL_01,
138265 class t_TAIL_02,
138266 class t_TAIL_03>
138267inline
138268variant<t_HEAD, t_TAIL_01,
138269 t_TAIL_02,
138270 t_TAIL_03,
138271 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
138272 allocator_type allocator,
138273 const variant& original)
138274: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138275{
138276}
138277#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
138278
138279#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
138280template <class t_HEAD, class t_TAIL_01,
138281 class t_TAIL_02,
138282 class t_TAIL_03,
138283 class t_TAIL_04>
138284inline
138285variant<t_HEAD, t_TAIL_01,
138286 t_TAIL_02,
138287 t_TAIL_03,
138288 t_TAIL_04,
138289 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
138290 allocator_type allocator,
138291 const variant& original)
138292: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138293{
138294}
138295#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
138296
138297#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
138298template <class t_HEAD, class t_TAIL_01,
138299 class t_TAIL_02,
138300 class t_TAIL_03,
138301 class t_TAIL_04,
138302 class t_TAIL_05>
138303inline
138304variant<t_HEAD, t_TAIL_01,
138305 t_TAIL_02,
138306 t_TAIL_03,
138307 t_TAIL_04,
138308 t_TAIL_05,
138309 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
138310 allocator_type allocator,
138311 const variant& original)
138312: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138313{
138314}
138315#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
138316
138317#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
138318template <class t_HEAD, class t_TAIL_01,
138319 class t_TAIL_02,
138320 class t_TAIL_03,
138321 class t_TAIL_04,
138322 class t_TAIL_05,
138323 class t_TAIL_06>
138324inline
138325variant<t_HEAD, t_TAIL_01,
138326 t_TAIL_02,
138327 t_TAIL_03,
138328 t_TAIL_04,
138329 t_TAIL_05,
138330 t_TAIL_06,
138331 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
138332 allocator_type allocator,
138333 const variant& original)
138334: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138335{
138336}
138337#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
138338
138339#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
138340template <class t_HEAD, class t_TAIL_01,
138341 class t_TAIL_02,
138342 class t_TAIL_03,
138343 class t_TAIL_04,
138344 class t_TAIL_05,
138345 class t_TAIL_06,
138346 class t_TAIL_07>
138347inline
138348variant<t_HEAD, t_TAIL_01,
138349 t_TAIL_02,
138350 t_TAIL_03,
138351 t_TAIL_04,
138352 t_TAIL_05,
138353 t_TAIL_06,
138354 t_TAIL_07,
138355 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
138356 allocator_type allocator,
138357 const variant& original)
138358: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138359{
138360}
138361#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
138362
138363#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
138364template <class t_HEAD, class t_TAIL_01,
138365 class t_TAIL_02,
138366 class t_TAIL_03,
138367 class t_TAIL_04,
138368 class t_TAIL_05,
138369 class t_TAIL_06,
138370 class t_TAIL_07,
138371 class t_TAIL_08>
138372inline
138373variant<t_HEAD, t_TAIL_01,
138374 t_TAIL_02,
138375 t_TAIL_03,
138376 t_TAIL_04,
138377 t_TAIL_05,
138378 t_TAIL_06,
138379 t_TAIL_07,
138380 t_TAIL_08,
138381 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
138382 allocator_type allocator,
138383 const variant& original)
138384: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138385{
138386}
138387#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
138388
138389#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
138390template <class t_HEAD, class t_TAIL_01,
138391 class t_TAIL_02,
138392 class t_TAIL_03,
138393 class t_TAIL_04,
138394 class t_TAIL_05,
138395 class t_TAIL_06,
138396 class t_TAIL_07,
138397 class t_TAIL_08,
138398 class t_TAIL_09>
138399inline
138400variant<t_HEAD, t_TAIL_01,
138401 t_TAIL_02,
138402 t_TAIL_03,
138403 t_TAIL_04,
138404 t_TAIL_05,
138405 t_TAIL_06,
138406 t_TAIL_07,
138407 t_TAIL_08,
138408 t_TAIL_09,
138409 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
138410 allocator_type allocator,
138411 const variant& original)
138412: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138413{
138414}
138415#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
138416
138417#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
138418template <class t_HEAD, class t_TAIL_01,
138419 class t_TAIL_02,
138420 class t_TAIL_03,
138421 class t_TAIL_04,
138422 class t_TAIL_05,
138423 class t_TAIL_06,
138424 class t_TAIL_07,
138425 class t_TAIL_08,
138426 class t_TAIL_09,
138427 class t_TAIL_10>
138428inline
138429variant<t_HEAD, t_TAIL_01,
138430 t_TAIL_02,
138431 t_TAIL_03,
138432 t_TAIL_04,
138433 t_TAIL_05,
138434 t_TAIL_06,
138435 t_TAIL_07,
138436 t_TAIL_08,
138437 t_TAIL_09,
138438 t_TAIL_10,
138439 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
138440 allocator_type allocator,
138441 const variant& original)
138442: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138443{
138444}
138445#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
138446
138447#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
138448template <class t_HEAD, class t_TAIL_01,
138449 class t_TAIL_02,
138450 class t_TAIL_03,
138451 class t_TAIL_04,
138452 class t_TAIL_05,
138453 class t_TAIL_06,
138454 class t_TAIL_07,
138455 class t_TAIL_08,
138456 class t_TAIL_09,
138457 class t_TAIL_10,
138458 class t_TAIL_11>
138459inline
138460variant<t_HEAD, t_TAIL_01,
138461 t_TAIL_02,
138462 t_TAIL_03,
138463 t_TAIL_04,
138464 t_TAIL_05,
138465 t_TAIL_06,
138466 t_TAIL_07,
138467 t_TAIL_08,
138468 t_TAIL_09,
138469 t_TAIL_10,
138470 t_TAIL_11,
138471 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
138472 allocator_type allocator,
138473 const variant& original)
138474: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138475{
138476}
138477#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
138478
138479#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
138480template <class t_HEAD, class t_TAIL_01,
138481 class t_TAIL_02,
138482 class t_TAIL_03,
138483 class t_TAIL_04,
138484 class t_TAIL_05,
138485 class t_TAIL_06,
138486 class t_TAIL_07,
138487 class t_TAIL_08,
138488 class t_TAIL_09,
138489 class t_TAIL_10,
138490 class t_TAIL_11,
138491 class t_TAIL_12>
138492inline
138493variant<t_HEAD, t_TAIL_01,
138494 t_TAIL_02,
138495 t_TAIL_03,
138496 t_TAIL_04,
138497 t_TAIL_05,
138498 t_TAIL_06,
138499 t_TAIL_07,
138500 t_TAIL_08,
138501 t_TAIL_09,
138502 t_TAIL_10,
138503 t_TAIL_11,
138504 t_TAIL_12,
138505 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
138506 allocator_type allocator,
138507 const variant& original)
138508: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138509{
138510}
138511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
138512
138513#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
138514template <class t_HEAD, class t_TAIL_01,
138515 class t_TAIL_02,
138516 class t_TAIL_03,
138517 class t_TAIL_04,
138518 class t_TAIL_05,
138519 class t_TAIL_06,
138520 class t_TAIL_07,
138521 class t_TAIL_08,
138522 class t_TAIL_09,
138523 class t_TAIL_10,
138524 class t_TAIL_11,
138525 class t_TAIL_12,
138526 class t_TAIL_13>
138527inline
138528variant<t_HEAD, t_TAIL_01,
138529 t_TAIL_02,
138530 t_TAIL_03,
138531 t_TAIL_04,
138532 t_TAIL_05,
138533 t_TAIL_06,
138534 t_TAIL_07,
138535 t_TAIL_08,
138536 t_TAIL_09,
138537 t_TAIL_10,
138538 t_TAIL_11,
138539 t_TAIL_12,
138540 t_TAIL_13,
138541 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
138542 allocator_type allocator,
138543 const variant& original)
138544: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138545{
138546}
138547#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
138548
138549#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
138550template <class t_HEAD, class t_TAIL_01,
138551 class t_TAIL_02,
138552 class t_TAIL_03,
138553 class t_TAIL_04,
138554 class t_TAIL_05,
138555 class t_TAIL_06,
138556 class t_TAIL_07,
138557 class t_TAIL_08,
138558 class t_TAIL_09,
138559 class t_TAIL_10,
138560 class t_TAIL_11,
138561 class t_TAIL_12,
138562 class t_TAIL_13,
138563 class t_TAIL_14>
138564inline
138565variant<t_HEAD, t_TAIL_01,
138566 t_TAIL_02,
138567 t_TAIL_03,
138568 t_TAIL_04,
138569 t_TAIL_05,
138570 t_TAIL_06,
138571 t_TAIL_07,
138572 t_TAIL_08,
138573 t_TAIL_09,
138574 t_TAIL_10,
138575 t_TAIL_11,
138576 t_TAIL_12,
138577 t_TAIL_13,
138578 t_TAIL_14,
138579 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
138580 allocator_type allocator,
138581 const variant& original)
138582: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138583{
138584}
138585#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
138586
138587#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
138588template <class t_HEAD, class t_TAIL_01,
138589 class t_TAIL_02,
138590 class t_TAIL_03,
138591 class t_TAIL_04,
138592 class t_TAIL_05,
138593 class t_TAIL_06,
138594 class t_TAIL_07,
138595 class t_TAIL_08,
138596 class t_TAIL_09,
138597 class t_TAIL_10,
138598 class t_TAIL_11,
138599 class t_TAIL_12,
138600 class t_TAIL_13,
138601 class t_TAIL_14,
138602 class t_TAIL_15>
138603inline
138604variant<t_HEAD, t_TAIL_01,
138605 t_TAIL_02,
138606 t_TAIL_03,
138607 t_TAIL_04,
138608 t_TAIL_05,
138609 t_TAIL_06,
138610 t_TAIL_07,
138611 t_TAIL_08,
138612 t_TAIL_09,
138613 t_TAIL_10,
138614 t_TAIL_11,
138615 t_TAIL_12,
138616 t_TAIL_13,
138617 t_TAIL_14,
138618 t_TAIL_15,
138619 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
138620 allocator_type allocator,
138621 const variant& original)
138622: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138623{
138624}
138625#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
138626
138627#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
138628template <class t_HEAD, class t_TAIL_01,
138629 class t_TAIL_02,
138630 class t_TAIL_03,
138631 class t_TAIL_04,
138632 class t_TAIL_05,
138633 class t_TAIL_06,
138634 class t_TAIL_07,
138635 class t_TAIL_08,
138636 class t_TAIL_09,
138637 class t_TAIL_10,
138638 class t_TAIL_11,
138639 class t_TAIL_12,
138640 class t_TAIL_13,
138641 class t_TAIL_14,
138642 class t_TAIL_15,
138643 class t_TAIL_16>
138644inline
138645variant<t_HEAD, t_TAIL_01,
138646 t_TAIL_02,
138647 t_TAIL_03,
138648 t_TAIL_04,
138649 t_TAIL_05,
138650 t_TAIL_06,
138651 t_TAIL_07,
138652 t_TAIL_08,
138653 t_TAIL_09,
138654 t_TAIL_10,
138655 t_TAIL_11,
138656 t_TAIL_12,
138657 t_TAIL_13,
138658 t_TAIL_14,
138659 t_TAIL_15,
138660 t_TAIL_16,
138661 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
138662 allocator_type allocator,
138663 const variant& original)
138664: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138665{
138666}
138667#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
138668
138669#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
138670template <class t_HEAD, class t_TAIL_01,
138671 class t_TAIL_02,
138672 class t_TAIL_03,
138673 class t_TAIL_04,
138674 class t_TAIL_05,
138675 class t_TAIL_06,
138676 class t_TAIL_07,
138677 class t_TAIL_08,
138678 class t_TAIL_09,
138679 class t_TAIL_10,
138680 class t_TAIL_11,
138681 class t_TAIL_12,
138682 class t_TAIL_13,
138683 class t_TAIL_14,
138684 class t_TAIL_15,
138685 class t_TAIL_16,
138686 class t_TAIL_17>
138687inline
138688variant<t_HEAD, t_TAIL_01,
138689 t_TAIL_02,
138690 t_TAIL_03,
138691 t_TAIL_04,
138692 t_TAIL_05,
138693 t_TAIL_06,
138694 t_TAIL_07,
138695 t_TAIL_08,
138696 t_TAIL_09,
138697 t_TAIL_10,
138698 t_TAIL_11,
138699 t_TAIL_12,
138700 t_TAIL_13,
138701 t_TAIL_14,
138702 t_TAIL_15,
138703 t_TAIL_16,
138704 t_TAIL_17,
138705 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
138706 allocator_type allocator,
138707 const variant& original)
138708: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138709{
138710}
138711#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
138712
138713#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
138714template <class t_HEAD, class t_TAIL_01,
138715 class t_TAIL_02,
138716 class t_TAIL_03,
138717 class t_TAIL_04,
138718 class t_TAIL_05,
138719 class t_TAIL_06,
138720 class t_TAIL_07,
138721 class t_TAIL_08,
138722 class t_TAIL_09,
138723 class t_TAIL_10,
138724 class t_TAIL_11,
138725 class t_TAIL_12,
138726 class t_TAIL_13,
138727 class t_TAIL_14,
138728 class t_TAIL_15,
138729 class t_TAIL_16,
138730 class t_TAIL_17,
138731 class t_TAIL_18>
138732inline
138733variant<t_HEAD, t_TAIL_01,
138734 t_TAIL_02,
138735 t_TAIL_03,
138736 t_TAIL_04,
138737 t_TAIL_05,
138738 t_TAIL_06,
138739 t_TAIL_07,
138740 t_TAIL_08,
138741 t_TAIL_09,
138742 t_TAIL_10,
138743 t_TAIL_11,
138744 t_TAIL_12,
138745 t_TAIL_13,
138746 t_TAIL_14,
138747 t_TAIL_15,
138748 t_TAIL_16,
138749 t_TAIL_17,
138750 t_TAIL_18,
138751 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
138752 allocator_type allocator,
138753 const variant& original)
138754: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138755{
138756}
138757#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
138758
138759
138760#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
138761template <class t_HEAD>
138762inline
138763variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
138764 bsl::allocator_arg_t,
138765 allocator_type allocator,
138766 BloombergLP::bslmf::MovableRef<variant> original)
138767: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138768{
138769}
138770#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
138771
138772#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
138773template <class t_HEAD, class t_TAIL_01>
138774inline
138775variant<t_HEAD, t_TAIL_01,
138776 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
138777 bsl::allocator_arg_t,
138778 allocator_type allocator,
138779 BloombergLP::bslmf::MovableRef<variant> original)
138780: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138781{
138782}
138783#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
138784
138785#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
138786template <class t_HEAD, class t_TAIL_01,
138787 class t_TAIL_02>
138788inline
138789variant<t_HEAD, t_TAIL_01,
138790 t_TAIL_02,
138791 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
138792 bsl::allocator_arg_t,
138793 allocator_type allocator,
138794 BloombergLP::bslmf::MovableRef<variant> original)
138795: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138796{
138797}
138798#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
138799
138800#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
138801template <class t_HEAD, class t_TAIL_01,
138802 class t_TAIL_02,
138803 class t_TAIL_03>
138804inline
138805variant<t_HEAD, t_TAIL_01,
138806 t_TAIL_02,
138807 t_TAIL_03,
138808 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
138809 bsl::allocator_arg_t,
138810 allocator_type allocator,
138811 BloombergLP::bslmf::MovableRef<variant> original)
138812: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138813{
138814}
138815#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
138816
138817#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
138818template <class t_HEAD, class t_TAIL_01,
138819 class t_TAIL_02,
138820 class t_TAIL_03,
138821 class t_TAIL_04>
138822inline
138823variant<t_HEAD, t_TAIL_01,
138824 t_TAIL_02,
138825 t_TAIL_03,
138826 t_TAIL_04,
138827 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
138828 bsl::allocator_arg_t,
138829 allocator_type allocator,
138830 BloombergLP::bslmf::MovableRef<variant> original)
138831: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138832{
138833}
138834#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
138835
138836#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
138837template <class t_HEAD, class t_TAIL_01,
138838 class t_TAIL_02,
138839 class t_TAIL_03,
138840 class t_TAIL_04,
138841 class t_TAIL_05>
138842inline
138843variant<t_HEAD, t_TAIL_01,
138844 t_TAIL_02,
138845 t_TAIL_03,
138846 t_TAIL_04,
138847 t_TAIL_05,
138848 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
138849 bsl::allocator_arg_t,
138850 allocator_type allocator,
138851 BloombergLP::bslmf::MovableRef<variant> original)
138852: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138853{
138854}
138855#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
138856
138857#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
138858template <class t_HEAD, class t_TAIL_01,
138859 class t_TAIL_02,
138860 class t_TAIL_03,
138861 class t_TAIL_04,
138862 class t_TAIL_05,
138863 class t_TAIL_06>
138864inline
138865variant<t_HEAD, t_TAIL_01,
138866 t_TAIL_02,
138867 t_TAIL_03,
138868 t_TAIL_04,
138869 t_TAIL_05,
138870 t_TAIL_06,
138871 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
138872 bsl::allocator_arg_t,
138873 allocator_type allocator,
138874 BloombergLP::bslmf::MovableRef<variant> original)
138875: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138876{
138877}
138878#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
138879
138880#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
138881template <class t_HEAD, class t_TAIL_01,
138882 class t_TAIL_02,
138883 class t_TAIL_03,
138884 class t_TAIL_04,
138885 class t_TAIL_05,
138886 class t_TAIL_06,
138887 class t_TAIL_07>
138888inline
138889variant<t_HEAD, t_TAIL_01,
138890 t_TAIL_02,
138891 t_TAIL_03,
138892 t_TAIL_04,
138893 t_TAIL_05,
138894 t_TAIL_06,
138895 t_TAIL_07,
138896 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
138897 bsl::allocator_arg_t,
138898 allocator_type allocator,
138899 BloombergLP::bslmf::MovableRef<variant> original)
138900: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138901{
138902}
138903#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
138904
138905#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
138906template <class t_HEAD, class t_TAIL_01,
138907 class t_TAIL_02,
138908 class t_TAIL_03,
138909 class t_TAIL_04,
138910 class t_TAIL_05,
138911 class t_TAIL_06,
138912 class t_TAIL_07,
138913 class t_TAIL_08>
138914inline
138915variant<t_HEAD, t_TAIL_01,
138916 t_TAIL_02,
138917 t_TAIL_03,
138918 t_TAIL_04,
138919 t_TAIL_05,
138920 t_TAIL_06,
138921 t_TAIL_07,
138922 t_TAIL_08,
138923 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
138924 bsl::allocator_arg_t,
138925 allocator_type allocator,
138926 BloombergLP::bslmf::MovableRef<variant> original)
138927: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138928{
138929}
138930#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
138931
138932#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
138933template <class t_HEAD, class t_TAIL_01,
138934 class t_TAIL_02,
138935 class t_TAIL_03,
138936 class t_TAIL_04,
138937 class t_TAIL_05,
138938 class t_TAIL_06,
138939 class t_TAIL_07,
138940 class t_TAIL_08,
138941 class t_TAIL_09>
138942inline
138943variant<t_HEAD, t_TAIL_01,
138944 t_TAIL_02,
138945 t_TAIL_03,
138946 t_TAIL_04,
138947 t_TAIL_05,
138948 t_TAIL_06,
138949 t_TAIL_07,
138950 t_TAIL_08,
138951 t_TAIL_09,
138952 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
138953 bsl::allocator_arg_t,
138954 allocator_type allocator,
138955 BloombergLP::bslmf::MovableRef<variant> original)
138956: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138957{
138958}
138959#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
138960
138961#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
138962template <class t_HEAD, class t_TAIL_01,
138963 class t_TAIL_02,
138964 class t_TAIL_03,
138965 class t_TAIL_04,
138966 class t_TAIL_05,
138967 class t_TAIL_06,
138968 class t_TAIL_07,
138969 class t_TAIL_08,
138970 class t_TAIL_09,
138971 class t_TAIL_10>
138972inline
138973variant<t_HEAD, t_TAIL_01,
138974 t_TAIL_02,
138975 t_TAIL_03,
138976 t_TAIL_04,
138977 t_TAIL_05,
138978 t_TAIL_06,
138979 t_TAIL_07,
138980 t_TAIL_08,
138981 t_TAIL_09,
138982 t_TAIL_10,
138983 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
138984 bsl::allocator_arg_t,
138985 allocator_type allocator,
138986 BloombergLP::bslmf::MovableRef<variant> original)
138987: Variant_Base(bsl::allocator_arg_t(), allocator, original)
138988{
138989}
138990#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
138991
138992#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
138993template <class t_HEAD, class t_TAIL_01,
138994 class t_TAIL_02,
138995 class t_TAIL_03,
138996 class t_TAIL_04,
138997 class t_TAIL_05,
138998 class t_TAIL_06,
138999 class t_TAIL_07,
139000 class t_TAIL_08,
139001 class t_TAIL_09,
139002 class t_TAIL_10,
139003 class t_TAIL_11>
139004inline
139005variant<t_HEAD, t_TAIL_01,
139006 t_TAIL_02,
139007 t_TAIL_03,
139008 t_TAIL_04,
139009 t_TAIL_05,
139010 t_TAIL_06,
139011 t_TAIL_07,
139012 t_TAIL_08,
139013 t_TAIL_09,
139014 t_TAIL_10,
139015 t_TAIL_11,
139016 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
139017 bsl::allocator_arg_t,
139018 allocator_type allocator,
139019 BloombergLP::bslmf::MovableRef<variant> original)
139020: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139021{
139022}
139023#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
139024
139025#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
139026template <class t_HEAD, class t_TAIL_01,
139027 class t_TAIL_02,
139028 class t_TAIL_03,
139029 class t_TAIL_04,
139030 class t_TAIL_05,
139031 class t_TAIL_06,
139032 class t_TAIL_07,
139033 class t_TAIL_08,
139034 class t_TAIL_09,
139035 class t_TAIL_10,
139036 class t_TAIL_11,
139037 class t_TAIL_12>
139038inline
139039variant<t_HEAD, t_TAIL_01,
139040 t_TAIL_02,
139041 t_TAIL_03,
139042 t_TAIL_04,
139043 t_TAIL_05,
139044 t_TAIL_06,
139045 t_TAIL_07,
139046 t_TAIL_08,
139047 t_TAIL_09,
139048 t_TAIL_10,
139049 t_TAIL_11,
139050 t_TAIL_12,
139051 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
139052 bsl::allocator_arg_t,
139053 allocator_type allocator,
139054 BloombergLP::bslmf::MovableRef<variant> original)
139055: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139056{
139057}
139058#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
139059
139060#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
139061template <class t_HEAD, class t_TAIL_01,
139062 class t_TAIL_02,
139063 class t_TAIL_03,
139064 class t_TAIL_04,
139065 class t_TAIL_05,
139066 class t_TAIL_06,
139067 class t_TAIL_07,
139068 class t_TAIL_08,
139069 class t_TAIL_09,
139070 class t_TAIL_10,
139071 class t_TAIL_11,
139072 class t_TAIL_12,
139073 class t_TAIL_13>
139074inline
139075variant<t_HEAD, t_TAIL_01,
139076 t_TAIL_02,
139077 t_TAIL_03,
139078 t_TAIL_04,
139079 t_TAIL_05,
139080 t_TAIL_06,
139081 t_TAIL_07,
139082 t_TAIL_08,
139083 t_TAIL_09,
139084 t_TAIL_10,
139085 t_TAIL_11,
139086 t_TAIL_12,
139087 t_TAIL_13,
139088 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
139089 bsl::allocator_arg_t,
139090 allocator_type allocator,
139091 BloombergLP::bslmf::MovableRef<variant> original)
139092: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139093{
139094}
139095#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
139096
139097#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
139098template <class t_HEAD, class t_TAIL_01,
139099 class t_TAIL_02,
139100 class t_TAIL_03,
139101 class t_TAIL_04,
139102 class t_TAIL_05,
139103 class t_TAIL_06,
139104 class t_TAIL_07,
139105 class t_TAIL_08,
139106 class t_TAIL_09,
139107 class t_TAIL_10,
139108 class t_TAIL_11,
139109 class t_TAIL_12,
139110 class t_TAIL_13,
139111 class t_TAIL_14>
139112inline
139113variant<t_HEAD, t_TAIL_01,
139114 t_TAIL_02,
139115 t_TAIL_03,
139116 t_TAIL_04,
139117 t_TAIL_05,
139118 t_TAIL_06,
139119 t_TAIL_07,
139120 t_TAIL_08,
139121 t_TAIL_09,
139122 t_TAIL_10,
139123 t_TAIL_11,
139124 t_TAIL_12,
139125 t_TAIL_13,
139126 t_TAIL_14,
139127 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
139128 bsl::allocator_arg_t,
139129 allocator_type allocator,
139130 BloombergLP::bslmf::MovableRef<variant> original)
139131: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139132{
139133}
139134#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
139135
139136#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
139137template <class t_HEAD, class t_TAIL_01,
139138 class t_TAIL_02,
139139 class t_TAIL_03,
139140 class t_TAIL_04,
139141 class t_TAIL_05,
139142 class t_TAIL_06,
139143 class t_TAIL_07,
139144 class t_TAIL_08,
139145 class t_TAIL_09,
139146 class t_TAIL_10,
139147 class t_TAIL_11,
139148 class t_TAIL_12,
139149 class t_TAIL_13,
139150 class t_TAIL_14,
139151 class t_TAIL_15>
139152inline
139153variant<t_HEAD, t_TAIL_01,
139154 t_TAIL_02,
139155 t_TAIL_03,
139156 t_TAIL_04,
139157 t_TAIL_05,
139158 t_TAIL_06,
139159 t_TAIL_07,
139160 t_TAIL_08,
139161 t_TAIL_09,
139162 t_TAIL_10,
139163 t_TAIL_11,
139164 t_TAIL_12,
139165 t_TAIL_13,
139166 t_TAIL_14,
139167 t_TAIL_15,
139168 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
139169 bsl::allocator_arg_t,
139170 allocator_type allocator,
139171 BloombergLP::bslmf::MovableRef<variant> original)
139172: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139173{
139174}
139175#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
139176
139177#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
139178template <class t_HEAD, class t_TAIL_01,
139179 class t_TAIL_02,
139180 class t_TAIL_03,
139181 class t_TAIL_04,
139182 class t_TAIL_05,
139183 class t_TAIL_06,
139184 class t_TAIL_07,
139185 class t_TAIL_08,
139186 class t_TAIL_09,
139187 class t_TAIL_10,
139188 class t_TAIL_11,
139189 class t_TAIL_12,
139190 class t_TAIL_13,
139191 class t_TAIL_14,
139192 class t_TAIL_15,
139193 class t_TAIL_16>
139194inline
139195variant<t_HEAD, t_TAIL_01,
139196 t_TAIL_02,
139197 t_TAIL_03,
139198 t_TAIL_04,
139199 t_TAIL_05,
139200 t_TAIL_06,
139201 t_TAIL_07,
139202 t_TAIL_08,
139203 t_TAIL_09,
139204 t_TAIL_10,
139205 t_TAIL_11,
139206 t_TAIL_12,
139207 t_TAIL_13,
139208 t_TAIL_14,
139209 t_TAIL_15,
139210 t_TAIL_16,
139211 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
139212 bsl::allocator_arg_t,
139213 allocator_type allocator,
139214 BloombergLP::bslmf::MovableRef<variant> original)
139215: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139216{
139217}
139218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
139219
139220#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
139221template <class t_HEAD, class t_TAIL_01,
139222 class t_TAIL_02,
139223 class t_TAIL_03,
139224 class t_TAIL_04,
139225 class t_TAIL_05,
139226 class t_TAIL_06,
139227 class t_TAIL_07,
139228 class t_TAIL_08,
139229 class t_TAIL_09,
139230 class t_TAIL_10,
139231 class t_TAIL_11,
139232 class t_TAIL_12,
139233 class t_TAIL_13,
139234 class t_TAIL_14,
139235 class t_TAIL_15,
139236 class t_TAIL_16,
139237 class t_TAIL_17>
139238inline
139239variant<t_HEAD, t_TAIL_01,
139240 t_TAIL_02,
139241 t_TAIL_03,
139242 t_TAIL_04,
139243 t_TAIL_05,
139244 t_TAIL_06,
139245 t_TAIL_07,
139246 t_TAIL_08,
139247 t_TAIL_09,
139248 t_TAIL_10,
139249 t_TAIL_11,
139250 t_TAIL_12,
139251 t_TAIL_13,
139252 t_TAIL_14,
139253 t_TAIL_15,
139254 t_TAIL_16,
139255 t_TAIL_17,
139256 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
139257 bsl::allocator_arg_t,
139258 allocator_type allocator,
139259 BloombergLP::bslmf::MovableRef<variant> original)
139260: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139261{
139262}
139263#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
139264
139265#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
139266template <class t_HEAD, class t_TAIL_01,
139267 class t_TAIL_02,
139268 class t_TAIL_03,
139269 class t_TAIL_04,
139270 class t_TAIL_05,
139271 class t_TAIL_06,
139272 class t_TAIL_07,
139273 class t_TAIL_08,
139274 class t_TAIL_09,
139275 class t_TAIL_10,
139276 class t_TAIL_11,
139277 class t_TAIL_12,
139278 class t_TAIL_13,
139279 class t_TAIL_14,
139280 class t_TAIL_15,
139281 class t_TAIL_16,
139282 class t_TAIL_17,
139283 class t_TAIL_18>
139284inline
139285variant<t_HEAD, t_TAIL_01,
139286 t_TAIL_02,
139287 t_TAIL_03,
139288 t_TAIL_04,
139289 t_TAIL_05,
139290 t_TAIL_06,
139291 t_TAIL_07,
139292 t_TAIL_08,
139293 t_TAIL_09,
139294 t_TAIL_10,
139295 t_TAIL_11,
139296 t_TAIL_12,
139297 t_TAIL_13,
139298 t_TAIL_14,
139299 t_TAIL_15,
139300 t_TAIL_16,
139301 t_TAIL_17,
139302 t_TAIL_18,
139303 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
139304 bsl::allocator_arg_t,
139305 allocator_type allocator,
139306 BloombergLP::bslmf::MovableRef<variant> original)
139307: Variant_Base(bsl::allocator_arg_t(), allocator, original)
139308{
139309}
139310#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
139311
139312
139313#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
139314template <class t_HEAD>
139315template <class t_TYPE>
139316inline
139317variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
139318 bsl::allocator_arg_t,
139319 allocator_type allocator,
139320 const t_TYPE& value,
139322: Variant_Base(
139323 bsl::allocator_arg_t(),
139324 allocator,
139325 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139326 variant)>(),
139327 value)
139328{
139329}
139330#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
139331
139332#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
139333template <class t_HEAD, class t_TAIL_01>
139334template <class t_TYPE>
139335inline
139336variant<t_HEAD, t_TAIL_01,
139337 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
139338 bsl::allocator_arg_t,
139339 allocator_type allocator,
139340 const t_TYPE& value,
139342: Variant_Base(
139343 bsl::allocator_arg_t(),
139344 allocator,
139345 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139346 variant)>(),
139347 value)
139348{
139349}
139350#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
139351
139352#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
139353template <class t_HEAD, class t_TAIL_01,
139354 class t_TAIL_02>
139355template <class t_TYPE>
139356inline
139357variant<t_HEAD, t_TAIL_01,
139358 t_TAIL_02,
139359 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
139360 bsl::allocator_arg_t,
139361 allocator_type allocator,
139362 const t_TYPE& value,
139364: Variant_Base(
139365 bsl::allocator_arg_t(),
139366 allocator,
139367 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139368 variant)>(),
139369 value)
139370{
139371}
139372#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
139373
139374#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
139375template <class t_HEAD, class t_TAIL_01,
139376 class t_TAIL_02,
139377 class t_TAIL_03>
139378template <class t_TYPE>
139379inline
139380variant<t_HEAD, t_TAIL_01,
139381 t_TAIL_02,
139382 t_TAIL_03,
139383 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
139384 bsl::allocator_arg_t,
139385 allocator_type allocator,
139386 const t_TYPE& value,
139388: Variant_Base(
139389 bsl::allocator_arg_t(),
139390 allocator,
139391 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139392 variant)>(),
139393 value)
139394{
139395}
139396#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
139397
139398#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
139399template <class t_HEAD, class t_TAIL_01,
139400 class t_TAIL_02,
139401 class t_TAIL_03,
139402 class t_TAIL_04>
139403template <class t_TYPE>
139404inline
139405variant<t_HEAD, t_TAIL_01,
139406 t_TAIL_02,
139407 t_TAIL_03,
139408 t_TAIL_04,
139409 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
139410 bsl::allocator_arg_t,
139411 allocator_type allocator,
139412 const t_TYPE& value,
139414: Variant_Base(
139415 bsl::allocator_arg_t(),
139416 allocator,
139417 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139418 variant)>(),
139419 value)
139420{
139421}
139422#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
139423
139424#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
139425template <class t_HEAD, class t_TAIL_01,
139426 class t_TAIL_02,
139427 class t_TAIL_03,
139428 class t_TAIL_04,
139429 class t_TAIL_05>
139430template <class t_TYPE>
139431inline
139432variant<t_HEAD, t_TAIL_01,
139433 t_TAIL_02,
139434 t_TAIL_03,
139435 t_TAIL_04,
139436 t_TAIL_05,
139437 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
139438 bsl::allocator_arg_t,
139439 allocator_type allocator,
139440 const t_TYPE& value,
139442: Variant_Base(
139443 bsl::allocator_arg_t(),
139444 allocator,
139445 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139446 variant)>(),
139447 value)
139448{
139449}
139450#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
139451
139452#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
139453template <class t_HEAD, class t_TAIL_01,
139454 class t_TAIL_02,
139455 class t_TAIL_03,
139456 class t_TAIL_04,
139457 class t_TAIL_05,
139458 class t_TAIL_06>
139459template <class t_TYPE>
139460inline
139461variant<t_HEAD, t_TAIL_01,
139462 t_TAIL_02,
139463 t_TAIL_03,
139464 t_TAIL_04,
139465 t_TAIL_05,
139466 t_TAIL_06,
139467 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
139468 bsl::allocator_arg_t,
139469 allocator_type allocator,
139470 const t_TYPE& value,
139472: Variant_Base(
139473 bsl::allocator_arg_t(),
139474 allocator,
139475 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139476 variant)>(),
139477 value)
139478{
139479}
139480#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
139481
139482#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
139483template <class t_HEAD, class t_TAIL_01,
139484 class t_TAIL_02,
139485 class t_TAIL_03,
139486 class t_TAIL_04,
139487 class t_TAIL_05,
139488 class t_TAIL_06,
139489 class t_TAIL_07>
139490template <class t_TYPE>
139491inline
139492variant<t_HEAD, t_TAIL_01,
139493 t_TAIL_02,
139494 t_TAIL_03,
139495 t_TAIL_04,
139496 t_TAIL_05,
139497 t_TAIL_06,
139498 t_TAIL_07,
139499 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
139500 bsl::allocator_arg_t,
139501 allocator_type allocator,
139502 const t_TYPE& value,
139504: Variant_Base(
139505 bsl::allocator_arg_t(),
139506 allocator,
139507 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139508 variant)>(),
139509 value)
139510{
139511}
139512#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
139513
139514#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
139515template <class t_HEAD, class t_TAIL_01,
139516 class t_TAIL_02,
139517 class t_TAIL_03,
139518 class t_TAIL_04,
139519 class t_TAIL_05,
139520 class t_TAIL_06,
139521 class t_TAIL_07,
139522 class t_TAIL_08>
139523template <class t_TYPE>
139524inline
139525variant<t_HEAD, t_TAIL_01,
139526 t_TAIL_02,
139527 t_TAIL_03,
139528 t_TAIL_04,
139529 t_TAIL_05,
139530 t_TAIL_06,
139531 t_TAIL_07,
139532 t_TAIL_08,
139533 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
139534 bsl::allocator_arg_t,
139535 allocator_type allocator,
139536 const t_TYPE& value,
139538: Variant_Base(
139539 bsl::allocator_arg_t(),
139540 allocator,
139541 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139542 variant)>(),
139543 value)
139544{
139545}
139546#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
139547
139548#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
139549template <class t_HEAD, class t_TAIL_01,
139550 class t_TAIL_02,
139551 class t_TAIL_03,
139552 class t_TAIL_04,
139553 class t_TAIL_05,
139554 class t_TAIL_06,
139555 class t_TAIL_07,
139556 class t_TAIL_08,
139557 class t_TAIL_09>
139558template <class t_TYPE>
139559inline
139560variant<t_HEAD, t_TAIL_01,
139561 t_TAIL_02,
139562 t_TAIL_03,
139563 t_TAIL_04,
139564 t_TAIL_05,
139565 t_TAIL_06,
139566 t_TAIL_07,
139567 t_TAIL_08,
139568 t_TAIL_09,
139569 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
139570 bsl::allocator_arg_t,
139571 allocator_type allocator,
139572 const t_TYPE& value,
139574: Variant_Base(
139575 bsl::allocator_arg_t(),
139576 allocator,
139577 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139578 variant)>(),
139579 value)
139580{
139581}
139582#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
139583
139584#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
139585template <class t_HEAD, class t_TAIL_01,
139586 class t_TAIL_02,
139587 class t_TAIL_03,
139588 class t_TAIL_04,
139589 class t_TAIL_05,
139590 class t_TAIL_06,
139591 class t_TAIL_07,
139592 class t_TAIL_08,
139593 class t_TAIL_09,
139594 class t_TAIL_10>
139595template <class t_TYPE>
139596inline
139597variant<t_HEAD, t_TAIL_01,
139598 t_TAIL_02,
139599 t_TAIL_03,
139600 t_TAIL_04,
139601 t_TAIL_05,
139602 t_TAIL_06,
139603 t_TAIL_07,
139604 t_TAIL_08,
139605 t_TAIL_09,
139606 t_TAIL_10,
139607 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
139608 bsl::allocator_arg_t,
139609 allocator_type allocator,
139610 const t_TYPE& value,
139612: Variant_Base(
139613 bsl::allocator_arg_t(),
139614 allocator,
139615 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139616 variant)>(),
139617 value)
139618{
139619}
139620#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
139621
139622#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
139623template <class t_HEAD, class t_TAIL_01,
139624 class t_TAIL_02,
139625 class t_TAIL_03,
139626 class t_TAIL_04,
139627 class t_TAIL_05,
139628 class t_TAIL_06,
139629 class t_TAIL_07,
139630 class t_TAIL_08,
139631 class t_TAIL_09,
139632 class t_TAIL_10,
139633 class t_TAIL_11>
139634template <class t_TYPE>
139635inline
139636variant<t_HEAD, t_TAIL_01,
139637 t_TAIL_02,
139638 t_TAIL_03,
139639 t_TAIL_04,
139640 t_TAIL_05,
139641 t_TAIL_06,
139642 t_TAIL_07,
139643 t_TAIL_08,
139644 t_TAIL_09,
139645 t_TAIL_10,
139646 t_TAIL_11,
139647 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
139648 bsl::allocator_arg_t,
139649 allocator_type allocator,
139650 const t_TYPE& value,
139652: Variant_Base(
139653 bsl::allocator_arg_t(),
139654 allocator,
139655 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139656 variant)>(),
139657 value)
139658{
139659}
139660#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
139661
139662#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
139663template <class t_HEAD, class t_TAIL_01,
139664 class t_TAIL_02,
139665 class t_TAIL_03,
139666 class t_TAIL_04,
139667 class t_TAIL_05,
139668 class t_TAIL_06,
139669 class t_TAIL_07,
139670 class t_TAIL_08,
139671 class t_TAIL_09,
139672 class t_TAIL_10,
139673 class t_TAIL_11,
139674 class t_TAIL_12>
139675template <class t_TYPE>
139676inline
139677variant<t_HEAD, t_TAIL_01,
139678 t_TAIL_02,
139679 t_TAIL_03,
139680 t_TAIL_04,
139681 t_TAIL_05,
139682 t_TAIL_06,
139683 t_TAIL_07,
139684 t_TAIL_08,
139685 t_TAIL_09,
139686 t_TAIL_10,
139687 t_TAIL_11,
139688 t_TAIL_12,
139689 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
139690 bsl::allocator_arg_t,
139691 allocator_type allocator,
139692 const t_TYPE& value,
139694: Variant_Base(
139695 bsl::allocator_arg_t(),
139696 allocator,
139697 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139698 variant)>(),
139699 value)
139700{
139701}
139702#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
139703
139704#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
139705template <class t_HEAD, class t_TAIL_01,
139706 class t_TAIL_02,
139707 class t_TAIL_03,
139708 class t_TAIL_04,
139709 class t_TAIL_05,
139710 class t_TAIL_06,
139711 class t_TAIL_07,
139712 class t_TAIL_08,
139713 class t_TAIL_09,
139714 class t_TAIL_10,
139715 class t_TAIL_11,
139716 class t_TAIL_12,
139717 class t_TAIL_13>
139718template <class t_TYPE>
139719inline
139720variant<t_HEAD, t_TAIL_01,
139721 t_TAIL_02,
139722 t_TAIL_03,
139723 t_TAIL_04,
139724 t_TAIL_05,
139725 t_TAIL_06,
139726 t_TAIL_07,
139727 t_TAIL_08,
139728 t_TAIL_09,
139729 t_TAIL_10,
139730 t_TAIL_11,
139731 t_TAIL_12,
139732 t_TAIL_13,
139733 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
139734 bsl::allocator_arg_t,
139735 allocator_type allocator,
139736 const t_TYPE& value,
139738: Variant_Base(
139739 bsl::allocator_arg_t(),
139740 allocator,
139741 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139742 variant)>(),
139743 value)
139744{
139745}
139746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
139747
139748#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
139749template <class t_HEAD, class t_TAIL_01,
139750 class t_TAIL_02,
139751 class t_TAIL_03,
139752 class t_TAIL_04,
139753 class t_TAIL_05,
139754 class t_TAIL_06,
139755 class t_TAIL_07,
139756 class t_TAIL_08,
139757 class t_TAIL_09,
139758 class t_TAIL_10,
139759 class t_TAIL_11,
139760 class t_TAIL_12,
139761 class t_TAIL_13,
139762 class t_TAIL_14>
139763template <class t_TYPE>
139764inline
139765variant<t_HEAD, t_TAIL_01,
139766 t_TAIL_02,
139767 t_TAIL_03,
139768 t_TAIL_04,
139769 t_TAIL_05,
139770 t_TAIL_06,
139771 t_TAIL_07,
139772 t_TAIL_08,
139773 t_TAIL_09,
139774 t_TAIL_10,
139775 t_TAIL_11,
139776 t_TAIL_12,
139777 t_TAIL_13,
139778 t_TAIL_14,
139779 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
139780 bsl::allocator_arg_t,
139781 allocator_type allocator,
139782 const t_TYPE& value,
139784: Variant_Base(
139785 bsl::allocator_arg_t(),
139786 allocator,
139787 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139788 variant)>(),
139789 value)
139790{
139791}
139792#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
139793
139794#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
139795template <class t_HEAD, class t_TAIL_01,
139796 class t_TAIL_02,
139797 class t_TAIL_03,
139798 class t_TAIL_04,
139799 class t_TAIL_05,
139800 class t_TAIL_06,
139801 class t_TAIL_07,
139802 class t_TAIL_08,
139803 class t_TAIL_09,
139804 class t_TAIL_10,
139805 class t_TAIL_11,
139806 class t_TAIL_12,
139807 class t_TAIL_13,
139808 class t_TAIL_14,
139809 class t_TAIL_15>
139810template <class t_TYPE>
139811inline
139812variant<t_HEAD, t_TAIL_01,
139813 t_TAIL_02,
139814 t_TAIL_03,
139815 t_TAIL_04,
139816 t_TAIL_05,
139817 t_TAIL_06,
139818 t_TAIL_07,
139819 t_TAIL_08,
139820 t_TAIL_09,
139821 t_TAIL_10,
139822 t_TAIL_11,
139823 t_TAIL_12,
139824 t_TAIL_13,
139825 t_TAIL_14,
139826 t_TAIL_15,
139827 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
139828 bsl::allocator_arg_t,
139829 allocator_type allocator,
139830 const t_TYPE& value,
139832: Variant_Base(
139833 bsl::allocator_arg_t(),
139834 allocator,
139835 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139836 variant)>(),
139837 value)
139838{
139839}
139840#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
139841
139842#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
139843template <class t_HEAD, class t_TAIL_01,
139844 class t_TAIL_02,
139845 class t_TAIL_03,
139846 class t_TAIL_04,
139847 class t_TAIL_05,
139848 class t_TAIL_06,
139849 class t_TAIL_07,
139850 class t_TAIL_08,
139851 class t_TAIL_09,
139852 class t_TAIL_10,
139853 class t_TAIL_11,
139854 class t_TAIL_12,
139855 class t_TAIL_13,
139856 class t_TAIL_14,
139857 class t_TAIL_15,
139858 class t_TAIL_16>
139859template <class t_TYPE>
139860inline
139861variant<t_HEAD, t_TAIL_01,
139862 t_TAIL_02,
139863 t_TAIL_03,
139864 t_TAIL_04,
139865 t_TAIL_05,
139866 t_TAIL_06,
139867 t_TAIL_07,
139868 t_TAIL_08,
139869 t_TAIL_09,
139870 t_TAIL_10,
139871 t_TAIL_11,
139872 t_TAIL_12,
139873 t_TAIL_13,
139874 t_TAIL_14,
139875 t_TAIL_15,
139876 t_TAIL_16,
139877 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
139878 bsl::allocator_arg_t,
139879 allocator_type allocator,
139880 const t_TYPE& value,
139882: Variant_Base(
139883 bsl::allocator_arg_t(),
139884 allocator,
139885 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139886 variant)>(),
139887 value)
139888{
139889}
139890#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
139891
139892#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
139893template <class t_HEAD, class t_TAIL_01,
139894 class t_TAIL_02,
139895 class t_TAIL_03,
139896 class t_TAIL_04,
139897 class t_TAIL_05,
139898 class t_TAIL_06,
139899 class t_TAIL_07,
139900 class t_TAIL_08,
139901 class t_TAIL_09,
139902 class t_TAIL_10,
139903 class t_TAIL_11,
139904 class t_TAIL_12,
139905 class t_TAIL_13,
139906 class t_TAIL_14,
139907 class t_TAIL_15,
139908 class t_TAIL_16,
139909 class t_TAIL_17>
139910template <class t_TYPE>
139911inline
139912variant<t_HEAD, t_TAIL_01,
139913 t_TAIL_02,
139914 t_TAIL_03,
139915 t_TAIL_04,
139916 t_TAIL_05,
139917 t_TAIL_06,
139918 t_TAIL_07,
139919 t_TAIL_08,
139920 t_TAIL_09,
139921 t_TAIL_10,
139922 t_TAIL_11,
139923 t_TAIL_12,
139924 t_TAIL_13,
139925 t_TAIL_14,
139926 t_TAIL_15,
139927 t_TAIL_16,
139928 t_TAIL_17,
139929 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
139930 bsl::allocator_arg_t,
139931 allocator_type allocator,
139932 const t_TYPE& value,
139934: Variant_Base(
139935 bsl::allocator_arg_t(),
139936 allocator,
139937 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139938 variant)>(),
139939 value)
139940{
139941}
139942#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
139943
139944#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
139945template <class t_HEAD, class t_TAIL_01,
139946 class t_TAIL_02,
139947 class t_TAIL_03,
139948 class t_TAIL_04,
139949 class t_TAIL_05,
139950 class t_TAIL_06,
139951 class t_TAIL_07,
139952 class t_TAIL_08,
139953 class t_TAIL_09,
139954 class t_TAIL_10,
139955 class t_TAIL_11,
139956 class t_TAIL_12,
139957 class t_TAIL_13,
139958 class t_TAIL_14,
139959 class t_TAIL_15,
139960 class t_TAIL_16,
139961 class t_TAIL_17,
139962 class t_TAIL_18>
139963template <class t_TYPE>
139964inline
139965variant<t_HEAD, t_TAIL_01,
139966 t_TAIL_02,
139967 t_TAIL_03,
139968 t_TAIL_04,
139969 t_TAIL_05,
139970 t_TAIL_06,
139971 t_TAIL_07,
139972 t_TAIL_08,
139973 t_TAIL_09,
139974 t_TAIL_10,
139975 t_TAIL_11,
139976 t_TAIL_12,
139977 t_TAIL_13,
139978 t_TAIL_14,
139979 t_TAIL_15,
139980 t_TAIL_16,
139981 t_TAIL_17,
139982 t_TAIL_18,
139983 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
139984 bsl::allocator_arg_t,
139985 allocator_type allocator,
139986 const t_TYPE& value,
139988: Variant_Base(
139989 bsl::allocator_arg_t(),
139990 allocator,
139991 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
139992 variant)>(),
139993 value)
139994{
139995}
139996#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
139997
139998
139999#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
140000template <class t_HEAD>
140001template <class t_TYPE>
140002inline
140003variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
140004 bsl::allocator_arg_t,
140005 allocator_type allocator,
140008: Variant_Base(
140009 bsl::allocator_arg_t(),
140010 allocator,
140011 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140012{
140013}
140014#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
140015
140016#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
140017template <class t_HEAD, class t_TAIL_01>
140018template <class t_TYPE>
140019inline
140020variant<t_HEAD, t_TAIL_01,
140021 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
140022 bsl::allocator_arg_t,
140023 allocator_type allocator,
140026: Variant_Base(
140027 bsl::allocator_arg_t(),
140028 allocator,
140029 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140030{
140031}
140032#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
140033
140034#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
140035template <class t_HEAD, class t_TAIL_01,
140036 class t_TAIL_02>
140037template <class t_TYPE>
140038inline
140039variant<t_HEAD, t_TAIL_01,
140040 t_TAIL_02,
140041 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
140042 bsl::allocator_arg_t,
140043 allocator_type allocator,
140046: Variant_Base(
140047 bsl::allocator_arg_t(),
140048 allocator,
140049 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140050{
140051}
140052#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
140053
140054#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
140055template <class t_HEAD, class t_TAIL_01,
140056 class t_TAIL_02,
140057 class t_TAIL_03>
140058template <class t_TYPE>
140059inline
140060variant<t_HEAD, t_TAIL_01,
140061 t_TAIL_02,
140062 t_TAIL_03,
140063 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
140064 bsl::allocator_arg_t,
140065 allocator_type allocator,
140068: Variant_Base(
140069 bsl::allocator_arg_t(),
140070 allocator,
140071 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140072{
140073}
140074#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
140075
140076#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
140077template <class t_HEAD, class t_TAIL_01,
140078 class t_TAIL_02,
140079 class t_TAIL_03,
140080 class t_TAIL_04>
140081template <class t_TYPE>
140082inline
140083variant<t_HEAD, t_TAIL_01,
140084 t_TAIL_02,
140085 t_TAIL_03,
140086 t_TAIL_04,
140087 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
140088 bsl::allocator_arg_t,
140089 allocator_type allocator,
140092: Variant_Base(
140093 bsl::allocator_arg_t(),
140094 allocator,
140095 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140096{
140097}
140098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
140099
140100#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
140101template <class t_HEAD, class t_TAIL_01,
140102 class t_TAIL_02,
140103 class t_TAIL_03,
140104 class t_TAIL_04,
140105 class t_TAIL_05>
140106template <class t_TYPE>
140107inline
140108variant<t_HEAD, t_TAIL_01,
140109 t_TAIL_02,
140110 t_TAIL_03,
140111 t_TAIL_04,
140112 t_TAIL_05,
140113 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
140114 bsl::allocator_arg_t,
140115 allocator_type allocator,
140118: Variant_Base(
140119 bsl::allocator_arg_t(),
140120 allocator,
140121 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140122{
140123}
140124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
140125
140126#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
140127template <class t_HEAD, class t_TAIL_01,
140128 class t_TAIL_02,
140129 class t_TAIL_03,
140130 class t_TAIL_04,
140131 class t_TAIL_05,
140132 class t_TAIL_06>
140133template <class t_TYPE>
140134inline
140135variant<t_HEAD, t_TAIL_01,
140136 t_TAIL_02,
140137 t_TAIL_03,
140138 t_TAIL_04,
140139 t_TAIL_05,
140140 t_TAIL_06,
140141 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
140142 bsl::allocator_arg_t,
140143 allocator_type allocator,
140146: Variant_Base(
140147 bsl::allocator_arg_t(),
140148 allocator,
140149 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140150{
140151}
140152#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
140153
140154#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
140155template <class t_HEAD, class t_TAIL_01,
140156 class t_TAIL_02,
140157 class t_TAIL_03,
140158 class t_TAIL_04,
140159 class t_TAIL_05,
140160 class t_TAIL_06,
140161 class t_TAIL_07>
140162template <class t_TYPE>
140163inline
140164variant<t_HEAD, t_TAIL_01,
140165 t_TAIL_02,
140166 t_TAIL_03,
140167 t_TAIL_04,
140168 t_TAIL_05,
140169 t_TAIL_06,
140170 t_TAIL_07,
140171 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
140172 bsl::allocator_arg_t,
140173 allocator_type allocator,
140176: Variant_Base(
140177 bsl::allocator_arg_t(),
140178 allocator,
140179 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140180{
140181}
140182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
140183
140184#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
140185template <class t_HEAD, class t_TAIL_01,
140186 class t_TAIL_02,
140187 class t_TAIL_03,
140188 class t_TAIL_04,
140189 class t_TAIL_05,
140190 class t_TAIL_06,
140191 class t_TAIL_07,
140192 class t_TAIL_08>
140193template <class t_TYPE>
140194inline
140195variant<t_HEAD, t_TAIL_01,
140196 t_TAIL_02,
140197 t_TAIL_03,
140198 t_TAIL_04,
140199 t_TAIL_05,
140200 t_TAIL_06,
140201 t_TAIL_07,
140202 t_TAIL_08,
140203 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
140204 bsl::allocator_arg_t,
140205 allocator_type allocator,
140208: Variant_Base(
140209 bsl::allocator_arg_t(),
140210 allocator,
140211 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140212{
140213}
140214#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
140215
140216#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
140217template <class t_HEAD, class t_TAIL_01,
140218 class t_TAIL_02,
140219 class t_TAIL_03,
140220 class t_TAIL_04,
140221 class t_TAIL_05,
140222 class t_TAIL_06,
140223 class t_TAIL_07,
140224 class t_TAIL_08,
140225 class t_TAIL_09>
140226template <class t_TYPE>
140227inline
140228variant<t_HEAD, t_TAIL_01,
140229 t_TAIL_02,
140230 t_TAIL_03,
140231 t_TAIL_04,
140232 t_TAIL_05,
140233 t_TAIL_06,
140234 t_TAIL_07,
140235 t_TAIL_08,
140236 t_TAIL_09,
140237 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
140238 bsl::allocator_arg_t,
140239 allocator_type allocator,
140242: Variant_Base(
140243 bsl::allocator_arg_t(),
140244 allocator,
140245 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140246{
140247}
140248#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
140249
140250#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
140251template <class t_HEAD, class t_TAIL_01,
140252 class t_TAIL_02,
140253 class t_TAIL_03,
140254 class t_TAIL_04,
140255 class t_TAIL_05,
140256 class t_TAIL_06,
140257 class t_TAIL_07,
140258 class t_TAIL_08,
140259 class t_TAIL_09,
140260 class t_TAIL_10>
140261template <class t_TYPE>
140262inline
140263variant<t_HEAD, t_TAIL_01,
140264 t_TAIL_02,
140265 t_TAIL_03,
140266 t_TAIL_04,
140267 t_TAIL_05,
140268 t_TAIL_06,
140269 t_TAIL_07,
140270 t_TAIL_08,
140271 t_TAIL_09,
140272 t_TAIL_10,
140273 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
140274 bsl::allocator_arg_t,
140275 allocator_type allocator,
140278: Variant_Base(
140279 bsl::allocator_arg_t(),
140280 allocator,
140281 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140282{
140283}
140284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
140285
140286#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
140287template <class t_HEAD, class t_TAIL_01,
140288 class t_TAIL_02,
140289 class t_TAIL_03,
140290 class t_TAIL_04,
140291 class t_TAIL_05,
140292 class t_TAIL_06,
140293 class t_TAIL_07,
140294 class t_TAIL_08,
140295 class t_TAIL_09,
140296 class t_TAIL_10,
140297 class t_TAIL_11>
140298template <class t_TYPE>
140299inline
140300variant<t_HEAD, t_TAIL_01,
140301 t_TAIL_02,
140302 t_TAIL_03,
140303 t_TAIL_04,
140304 t_TAIL_05,
140305 t_TAIL_06,
140306 t_TAIL_07,
140307 t_TAIL_08,
140308 t_TAIL_09,
140309 t_TAIL_10,
140310 t_TAIL_11,
140311 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
140312 bsl::allocator_arg_t,
140313 allocator_type allocator,
140316: Variant_Base(
140317 bsl::allocator_arg_t(),
140318 allocator,
140319 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140320{
140321}
140322#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
140323
140324#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
140325template <class t_HEAD, class t_TAIL_01,
140326 class t_TAIL_02,
140327 class t_TAIL_03,
140328 class t_TAIL_04,
140329 class t_TAIL_05,
140330 class t_TAIL_06,
140331 class t_TAIL_07,
140332 class t_TAIL_08,
140333 class t_TAIL_09,
140334 class t_TAIL_10,
140335 class t_TAIL_11,
140336 class t_TAIL_12>
140337template <class t_TYPE>
140338inline
140339variant<t_HEAD, t_TAIL_01,
140340 t_TAIL_02,
140341 t_TAIL_03,
140342 t_TAIL_04,
140343 t_TAIL_05,
140344 t_TAIL_06,
140345 t_TAIL_07,
140346 t_TAIL_08,
140347 t_TAIL_09,
140348 t_TAIL_10,
140349 t_TAIL_11,
140350 t_TAIL_12,
140351 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
140352 bsl::allocator_arg_t,
140353 allocator_type allocator,
140356: Variant_Base(
140357 bsl::allocator_arg_t(),
140358 allocator,
140359 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140360{
140361}
140362#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
140363
140364#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
140365template <class t_HEAD, class t_TAIL_01,
140366 class t_TAIL_02,
140367 class t_TAIL_03,
140368 class t_TAIL_04,
140369 class t_TAIL_05,
140370 class t_TAIL_06,
140371 class t_TAIL_07,
140372 class t_TAIL_08,
140373 class t_TAIL_09,
140374 class t_TAIL_10,
140375 class t_TAIL_11,
140376 class t_TAIL_12,
140377 class t_TAIL_13>
140378template <class t_TYPE>
140379inline
140380variant<t_HEAD, t_TAIL_01,
140381 t_TAIL_02,
140382 t_TAIL_03,
140383 t_TAIL_04,
140384 t_TAIL_05,
140385 t_TAIL_06,
140386 t_TAIL_07,
140387 t_TAIL_08,
140388 t_TAIL_09,
140389 t_TAIL_10,
140390 t_TAIL_11,
140391 t_TAIL_12,
140392 t_TAIL_13,
140393 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
140394 bsl::allocator_arg_t,
140395 allocator_type allocator,
140398: Variant_Base(
140399 bsl::allocator_arg_t(),
140400 allocator,
140401 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140402{
140403}
140404#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
140405
140406#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
140407template <class t_HEAD, class t_TAIL_01,
140408 class t_TAIL_02,
140409 class t_TAIL_03,
140410 class t_TAIL_04,
140411 class t_TAIL_05,
140412 class t_TAIL_06,
140413 class t_TAIL_07,
140414 class t_TAIL_08,
140415 class t_TAIL_09,
140416 class t_TAIL_10,
140417 class t_TAIL_11,
140418 class t_TAIL_12,
140419 class t_TAIL_13,
140420 class t_TAIL_14>
140421template <class t_TYPE>
140422inline
140423variant<t_HEAD, t_TAIL_01,
140424 t_TAIL_02,
140425 t_TAIL_03,
140426 t_TAIL_04,
140427 t_TAIL_05,
140428 t_TAIL_06,
140429 t_TAIL_07,
140430 t_TAIL_08,
140431 t_TAIL_09,
140432 t_TAIL_10,
140433 t_TAIL_11,
140434 t_TAIL_12,
140435 t_TAIL_13,
140436 t_TAIL_14,
140437 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
140438 bsl::allocator_arg_t,
140439 allocator_type allocator,
140442: Variant_Base(
140443 bsl::allocator_arg_t(),
140444 allocator,
140445 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140446{
140447}
140448#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
140449
140450#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
140451template <class t_HEAD, class t_TAIL_01,
140452 class t_TAIL_02,
140453 class t_TAIL_03,
140454 class t_TAIL_04,
140455 class t_TAIL_05,
140456 class t_TAIL_06,
140457 class t_TAIL_07,
140458 class t_TAIL_08,
140459 class t_TAIL_09,
140460 class t_TAIL_10,
140461 class t_TAIL_11,
140462 class t_TAIL_12,
140463 class t_TAIL_13,
140464 class t_TAIL_14,
140465 class t_TAIL_15>
140466template <class t_TYPE>
140467inline
140468variant<t_HEAD, t_TAIL_01,
140469 t_TAIL_02,
140470 t_TAIL_03,
140471 t_TAIL_04,
140472 t_TAIL_05,
140473 t_TAIL_06,
140474 t_TAIL_07,
140475 t_TAIL_08,
140476 t_TAIL_09,
140477 t_TAIL_10,
140478 t_TAIL_11,
140479 t_TAIL_12,
140480 t_TAIL_13,
140481 t_TAIL_14,
140482 t_TAIL_15,
140483 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
140484 bsl::allocator_arg_t,
140485 allocator_type allocator,
140488: Variant_Base(
140489 bsl::allocator_arg_t(),
140490 allocator,
140491 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140492{
140493}
140494#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
140495
140496#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
140497template <class t_HEAD, class t_TAIL_01,
140498 class t_TAIL_02,
140499 class t_TAIL_03,
140500 class t_TAIL_04,
140501 class t_TAIL_05,
140502 class t_TAIL_06,
140503 class t_TAIL_07,
140504 class t_TAIL_08,
140505 class t_TAIL_09,
140506 class t_TAIL_10,
140507 class t_TAIL_11,
140508 class t_TAIL_12,
140509 class t_TAIL_13,
140510 class t_TAIL_14,
140511 class t_TAIL_15,
140512 class t_TAIL_16>
140513template <class t_TYPE>
140514inline
140515variant<t_HEAD, t_TAIL_01,
140516 t_TAIL_02,
140517 t_TAIL_03,
140518 t_TAIL_04,
140519 t_TAIL_05,
140520 t_TAIL_06,
140521 t_TAIL_07,
140522 t_TAIL_08,
140523 t_TAIL_09,
140524 t_TAIL_10,
140525 t_TAIL_11,
140526 t_TAIL_12,
140527 t_TAIL_13,
140528 t_TAIL_14,
140529 t_TAIL_15,
140530 t_TAIL_16,
140531 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
140532 bsl::allocator_arg_t,
140533 allocator_type allocator,
140536: Variant_Base(
140537 bsl::allocator_arg_t(),
140538 allocator,
140539 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140540{
140541}
140542#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
140543
140544#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
140545template <class t_HEAD, class t_TAIL_01,
140546 class t_TAIL_02,
140547 class t_TAIL_03,
140548 class t_TAIL_04,
140549 class t_TAIL_05,
140550 class t_TAIL_06,
140551 class t_TAIL_07,
140552 class t_TAIL_08,
140553 class t_TAIL_09,
140554 class t_TAIL_10,
140555 class t_TAIL_11,
140556 class t_TAIL_12,
140557 class t_TAIL_13,
140558 class t_TAIL_14,
140559 class t_TAIL_15,
140560 class t_TAIL_16,
140561 class t_TAIL_17>
140562template <class t_TYPE>
140563inline
140564variant<t_HEAD, t_TAIL_01,
140565 t_TAIL_02,
140566 t_TAIL_03,
140567 t_TAIL_04,
140568 t_TAIL_05,
140569 t_TAIL_06,
140570 t_TAIL_07,
140571 t_TAIL_08,
140572 t_TAIL_09,
140573 t_TAIL_10,
140574 t_TAIL_11,
140575 t_TAIL_12,
140576 t_TAIL_13,
140577 t_TAIL_14,
140578 t_TAIL_15,
140579 t_TAIL_16,
140580 t_TAIL_17,
140581 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
140582 bsl::allocator_arg_t,
140583 allocator_type allocator,
140586: Variant_Base(
140587 bsl::allocator_arg_t(),
140588 allocator,
140589 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140590{
140591}
140592#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
140593
140594#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
140595template <class t_HEAD, class t_TAIL_01,
140596 class t_TAIL_02,
140597 class t_TAIL_03,
140598 class t_TAIL_04,
140599 class t_TAIL_05,
140600 class t_TAIL_06,
140601 class t_TAIL_07,
140602 class t_TAIL_08,
140603 class t_TAIL_09,
140604 class t_TAIL_10,
140605 class t_TAIL_11,
140606 class t_TAIL_12,
140607 class t_TAIL_13,
140608 class t_TAIL_14,
140609 class t_TAIL_15,
140610 class t_TAIL_16,
140611 class t_TAIL_17,
140612 class t_TAIL_18>
140613template <class t_TYPE>
140614inline
140615variant<t_HEAD, t_TAIL_01,
140616 t_TAIL_02,
140617 t_TAIL_03,
140618 t_TAIL_04,
140619 t_TAIL_05,
140620 t_TAIL_06,
140621 t_TAIL_07,
140622 t_TAIL_08,
140623 t_TAIL_09,
140624 t_TAIL_10,
140625 t_TAIL_11,
140626 t_TAIL_12,
140627 t_TAIL_13,
140628 t_TAIL_14,
140629 t_TAIL_15,
140630 t_TAIL_16,
140631 t_TAIL_17,
140632 t_TAIL_18,
140633 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
140634 bsl::allocator_arg_t,
140635 allocator_type allocator,
140638: Variant_Base(
140639 bsl::allocator_arg_t(),
140640 allocator,
140641 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
140642{
140643}
140644#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
140645
140646
140647#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
140648template <class t_HEAD>
140649template <class t_TYPE, class t_ARG_01>
140650inline
140651variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
140652 bsl::allocator_arg_t,
140653 allocator_type allocator,
140655 const t_ARG_01& arg_01,
140657: Variant_Base(
140658 bsl::allocator_arg_t(),
140659 allocator,
140660 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140661 arg_01)
140662{
140663}
140664#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
140665
140666#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
140667template <class t_HEAD, class t_TAIL_01>
140668template <class t_TYPE, class t_ARG_01>
140669inline
140670variant<t_HEAD, t_TAIL_01,
140671 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
140672 bsl::allocator_arg_t,
140673 allocator_type allocator,
140675 const t_ARG_01& arg_01,
140677: Variant_Base(
140678 bsl::allocator_arg_t(),
140679 allocator,
140680 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140681 arg_01)
140682{
140683}
140684#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
140685
140686#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
140687template <class t_HEAD, class t_TAIL_01,
140688 class t_TAIL_02>
140689template <class t_TYPE, class t_ARG_01>
140690inline
140691variant<t_HEAD, t_TAIL_01,
140692 t_TAIL_02,
140693 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
140694 bsl::allocator_arg_t,
140695 allocator_type allocator,
140697 const t_ARG_01& arg_01,
140699: Variant_Base(
140700 bsl::allocator_arg_t(),
140701 allocator,
140702 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140703 arg_01)
140704{
140705}
140706#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
140707
140708#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
140709template <class t_HEAD, class t_TAIL_01,
140710 class t_TAIL_02,
140711 class t_TAIL_03>
140712template <class t_TYPE, class t_ARG_01>
140713inline
140714variant<t_HEAD, t_TAIL_01,
140715 t_TAIL_02,
140716 t_TAIL_03,
140717 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
140718 bsl::allocator_arg_t,
140719 allocator_type allocator,
140721 const t_ARG_01& arg_01,
140723: Variant_Base(
140724 bsl::allocator_arg_t(),
140725 allocator,
140726 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140727 arg_01)
140728{
140729}
140730#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
140731
140732#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
140733template <class t_HEAD, class t_TAIL_01,
140734 class t_TAIL_02,
140735 class t_TAIL_03,
140736 class t_TAIL_04>
140737template <class t_TYPE, class t_ARG_01>
140738inline
140739variant<t_HEAD, t_TAIL_01,
140740 t_TAIL_02,
140741 t_TAIL_03,
140742 t_TAIL_04,
140743 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
140744 bsl::allocator_arg_t,
140745 allocator_type allocator,
140747 const t_ARG_01& arg_01,
140749: Variant_Base(
140750 bsl::allocator_arg_t(),
140751 allocator,
140752 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140753 arg_01)
140754{
140755}
140756#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
140757
140758#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
140759template <class t_HEAD, class t_TAIL_01,
140760 class t_TAIL_02,
140761 class t_TAIL_03,
140762 class t_TAIL_04,
140763 class t_TAIL_05>
140764template <class t_TYPE, class t_ARG_01>
140765inline
140766variant<t_HEAD, t_TAIL_01,
140767 t_TAIL_02,
140768 t_TAIL_03,
140769 t_TAIL_04,
140770 t_TAIL_05,
140771 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
140772 bsl::allocator_arg_t,
140773 allocator_type allocator,
140775 const t_ARG_01& arg_01,
140777: Variant_Base(
140778 bsl::allocator_arg_t(),
140779 allocator,
140780 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140781 arg_01)
140782{
140783}
140784#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
140785
140786#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
140787template <class t_HEAD, class t_TAIL_01,
140788 class t_TAIL_02,
140789 class t_TAIL_03,
140790 class t_TAIL_04,
140791 class t_TAIL_05,
140792 class t_TAIL_06>
140793template <class t_TYPE, class t_ARG_01>
140794inline
140795variant<t_HEAD, t_TAIL_01,
140796 t_TAIL_02,
140797 t_TAIL_03,
140798 t_TAIL_04,
140799 t_TAIL_05,
140800 t_TAIL_06,
140801 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
140802 bsl::allocator_arg_t,
140803 allocator_type allocator,
140805 const t_ARG_01& arg_01,
140807: Variant_Base(
140808 bsl::allocator_arg_t(),
140809 allocator,
140810 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140811 arg_01)
140812{
140813}
140814#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
140815
140816#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
140817template <class t_HEAD, class t_TAIL_01,
140818 class t_TAIL_02,
140819 class t_TAIL_03,
140820 class t_TAIL_04,
140821 class t_TAIL_05,
140822 class t_TAIL_06,
140823 class t_TAIL_07>
140824template <class t_TYPE, class t_ARG_01>
140825inline
140826variant<t_HEAD, t_TAIL_01,
140827 t_TAIL_02,
140828 t_TAIL_03,
140829 t_TAIL_04,
140830 t_TAIL_05,
140831 t_TAIL_06,
140832 t_TAIL_07,
140833 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
140834 bsl::allocator_arg_t,
140835 allocator_type allocator,
140837 const t_ARG_01& arg_01,
140839: Variant_Base(
140840 bsl::allocator_arg_t(),
140841 allocator,
140842 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140843 arg_01)
140844{
140845}
140846#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
140847
140848#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
140849template <class t_HEAD, class t_TAIL_01,
140850 class t_TAIL_02,
140851 class t_TAIL_03,
140852 class t_TAIL_04,
140853 class t_TAIL_05,
140854 class t_TAIL_06,
140855 class t_TAIL_07,
140856 class t_TAIL_08>
140857template <class t_TYPE, class t_ARG_01>
140858inline
140859variant<t_HEAD, t_TAIL_01,
140860 t_TAIL_02,
140861 t_TAIL_03,
140862 t_TAIL_04,
140863 t_TAIL_05,
140864 t_TAIL_06,
140865 t_TAIL_07,
140866 t_TAIL_08,
140867 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
140868 bsl::allocator_arg_t,
140869 allocator_type allocator,
140871 const t_ARG_01& arg_01,
140873: Variant_Base(
140874 bsl::allocator_arg_t(),
140875 allocator,
140876 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140877 arg_01)
140878{
140879}
140880#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
140881
140882#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
140883template <class t_HEAD, class t_TAIL_01,
140884 class t_TAIL_02,
140885 class t_TAIL_03,
140886 class t_TAIL_04,
140887 class t_TAIL_05,
140888 class t_TAIL_06,
140889 class t_TAIL_07,
140890 class t_TAIL_08,
140891 class t_TAIL_09>
140892template <class t_TYPE, class t_ARG_01>
140893inline
140894variant<t_HEAD, t_TAIL_01,
140895 t_TAIL_02,
140896 t_TAIL_03,
140897 t_TAIL_04,
140898 t_TAIL_05,
140899 t_TAIL_06,
140900 t_TAIL_07,
140901 t_TAIL_08,
140902 t_TAIL_09,
140903 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
140904 bsl::allocator_arg_t,
140905 allocator_type allocator,
140907 const t_ARG_01& arg_01,
140909: Variant_Base(
140910 bsl::allocator_arg_t(),
140911 allocator,
140912 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140913 arg_01)
140914{
140915}
140916#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
140917
140918#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
140919template <class t_HEAD, class t_TAIL_01,
140920 class t_TAIL_02,
140921 class t_TAIL_03,
140922 class t_TAIL_04,
140923 class t_TAIL_05,
140924 class t_TAIL_06,
140925 class t_TAIL_07,
140926 class t_TAIL_08,
140927 class t_TAIL_09,
140928 class t_TAIL_10>
140929template <class t_TYPE, class t_ARG_01>
140930inline
140931variant<t_HEAD, t_TAIL_01,
140932 t_TAIL_02,
140933 t_TAIL_03,
140934 t_TAIL_04,
140935 t_TAIL_05,
140936 t_TAIL_06,
140937 t_TAIL_07,
140938 t_TAIL_08,
140939 t_TAIL_09,
140940 t_TAIL_10,
140941 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
140942 bsl::allocator_arg_t,
140943 allocator_type allocator,
140945 const t_ARG_01& arg_01,
140947: Variant_Base(
140948 bsl::allocator_arg_t(),
140949 allocator,
140950 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140951 arg_01)
140952{
140953}
140954#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
140955
140956#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
140957template <class t_HEAD, class t_TAIL_01,
140958 class t_TAIL_02,
140959 class t_TAIL_03,
140960 class t_TAIL_04,
140961 class t_TAIL_05,
140962 class t_TAIL_06,
140963 class t_TAIL_07,
140964 class t_TAIL_08,
140965 class t_TAIL_09,
140966 class t_TAIL_10,
140967 class t_TAIL_11>
140968template <class t_TYPE, class t_ARG_01>
140969inline
140970variant<t_HEAD, t_TAIL_01,
140971 t_TAIL_02,
140972 t_TAIL_03,
140973 t_TAIL_04,
140974 t_TAIL_05,
140975 t_TAIL_06,
140976 t_TAIL_07,
140977 t_TAIL_08,
140978 t_TAIL_09,
140979 t_TAIL_10,
140980 t_TAIL_11,
140981 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
140982 bsl::allocator_arg_t,
140983 allocator_type allocator,
140985 const t_ARG_01& arg_01,
140987: Variant_Base(
140988 bsl::allocator_arg_t(),
140989 allocator,
140990 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
140991 arg_01)
140992{
140993}
140994#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
140995
140996#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
140997template <class t_HEAD, class t_TAIL_01,
140998 class t_TAIL_02,
140999 class t_TAIL_03,
141000 class t_TAIL_04,
141001 class t_TAIL_05,
141002 class t_TAIL_06,
141003 class t_TAIL_07,
141004 class t_TAIL_08,
141005 class t_TAIL_09,
141006 class t_TAIL_10,
141007 class t_TAIL_11,
141008 class t_TAIL_12>
141009template <class t_TYPE, class t_ARG_01>
141010inline
141011variant<t_HEAD, t_TAIL_01,
141012 t_TAIL_02,
141013 t_TAIL_03,
141014 t_TAIL_04,
141015 t_TAIL_05,
141016 t_TAIL_06,
141017 t_TAIL_07,
141018 t_TAIL_08,
141019 t_TAIL_09,
141020 t_TAIL_10,
141021 t_TAIL_11,
141022 t_TAIL_12,
141023 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
141024 bsl::allocator_arg_t,
141025 allocator_type allocator,
141027 const t_ARG_01& arg_01,
141029: Variant_Base(
141030 bsl::allocator_arg_t(),
141031 allocator,
141032 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141033 arg_01)
141034{
141035}
141036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
141037
141038#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
141039template <class t_HEAD, class t_TAIL_01,
141040 class t_TAIL_02,
141041 class t_TAIL_03,
141042 class t_TAIL_04,
141043 class t_TAIL_05,
141044 class t_TAIL_06,
141045 class t_TAIL_07,
141046 class t_TAIL_08,
141047 class t_TAIL_09,
141048 class t_TAIL_10,
141049 class t_TAIL_11,
141050 class t_TAIL_12,
141051 class t_TAIL_13>
141052template <class t_TYPE, class t_ARG_01>
141053inline
141054variant<t_HEAD, t_TAIL_01,
141055 t_TAIL_02,
141056 t_TAIL_03,
141057 t_TAIL_04,
141058 t_TAIL_05,
141059 t_TAIL_06,
141060 t_TAIL_07,
141061 t_TAIL_08,
141062 t_TAIL_09,
141063 t_TAIL_10,
141064 t_TAIL_11,
141065 t_TAIL_12,
141066 t_TAIL_13,
141067 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
141068 bsl::allocator_arg_t,
141069 allocator_type allocator,
141071 const t_ARG_01& arg_01,
141073: Variant_Base(
141074 bsl::allocator_arg_t(),
141075 allocator,
141076 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141077 arg_01)
141078{
141079}
141080#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
141081
141082#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
141083template <class t_HEAD, class t_TAIL_01,
141084 class t_TAIL_02,
141085 class t_TAIL_03,
141086 class t_TAIL_04,
141087 class t_TAIL_05,
141088 class t_TAIL_06,
141089 class t_TAIL_07,
141090 class t_TAIL_08,
141091 class t_TAIL_09,
141092 class t_TAIL_10,
141093 class t_TAIL_11,
141094 class t_TAIL_12,
141095 class t_TAIL_13,
141096 class t_TAIL_14>
141097template <class t_TYPE, class t_ARG_01>
141098inline
141099variant<t_HEAD, t_TAIL_01,
141100 t_TAIL_02,
141101 t_TAIL_03,
141102 t_TAIL_04,
141103 t_TAIL_05,
141104 t_TAIL_06,
141105 t_TAIL_07,
141106 t_TAIL_08,
141107 t_TAIL_09,
141108 t_TAIL_10,
141109 t_TAIL_11,
141110 t_TAIL_12,
141111 t_TAIL_13,
141112 t_TAIL_14,
141113 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
141114 bsl::allocator_arg_t,
141115 allocator_type allocator,
141117 const t_ARG_01& arg_01,
141119: Variant_Base(
141120 bsl::allocator_arg_t(),
141121 allocator,
141122 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141123 arg_01)
141124{
141125}
141126#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
141127
141128#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
141129template <class t_HEAD, class t_TAIL_01,
141130 class t_TAIL_02,
141131 class t_TAIL_03,
141132 class t_TAIL_04,
141133 class t_TAIL_05,
141134 class t_TAIL_06,
141135 class t_TAIL_07,
141136 class t_TAIL_08,
141137 class t_TAIL_09,
141138 class t_TAIL_10,
141139 class t_TAIL_11,
141140 class t_TAIL_12,
141141 class t_TAIL_13,
141142 class t_TAIL_14,
141143 class t_TAIL_15>
141144template <class t_TYPE, class t_ARG_01>
141145inline
141146variant<t_HEAD, t_TAIL_01,
141147 t_TAIL_02,
141148 t_TAIL_03,
141149 t_TAIL_04,
141150 t_TAIL_05,
141151 t_TAIL_06,
141152 t_TAIL_07,
141153 t_TAIL_08,
141154 t_TAIL_09,
141155 t_TAIL_10,
141156 t_TAIL_11,
141157 t_TAIL_12,
141158 t_TAIL_13,
141159 t_TAIL_14,
141160 t_TAIL_15,
141161 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
141162 bsl::allocator_arg_t,
141163 allocator_type allocator,
141165 const t_ARG_01& arg_01,
141167: Variant_Base(
141168 bsl::allocator_arg_t(),
141169 allocator,
141170 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141171 arg_01)
141172{
141173}
141174#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
141175
141176#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
141177template <class t_HEAD, class t_TAIL_01,
141178 class t_TAIL_02,
141179 class t_TAIL_03,
141180 class t_TAIL_04,
141181 class t_TAIL_05,
141182 class t_TAIL_06,
141183 class t_TAIL_07,
141184 class t_TAIL_08,
141185 class t_TAIL_09,
141186 class t_TAIL_10,
141187 class t_TAIL_11,
141188 class t_TAIL_12,
141189 class t_TAIL_13,
141190 class t_TAIL_14,
141191 class t_TAIL_15,
141192 class t_TAIL_16>
141193template <class t_TYPE, class t_ARG_01>
141194inline
141195variant<t_HEAD, t_TAIL_01,
141196 t_TAIL_02,
141197 t_TAIL_03,
141198 t_TAIL_04,
141199 t_TAIL_05,
141200 t_TAIL_06,
141201 t_TAIL_07,
141202 t_TAIL_08,
141203 t_TAIL_09,
141204 t_TAIL_10,
141205 t_TAIL_11,
141206 t_TAIL_12,
141207 t_TAIL_13,
141208 t_TAIL_14,
141209 t_TAIL_15,
141210 t_TAIL_16,
141211 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
141212 bsl::allocator_arg_t,
141213 allocator_type allocator,
141215 const t_ARG_01& arg_01,
141217: Variant_Base(
141218 bsl::allocator_arg_t(),
141219 allocator,
141220 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141221 arg_01)
141222{
141223}
141224#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
141225
141226#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
141227template <class t_HEAD, class t_TAIL_01,
141228 class t_TAIL_02,
141229 class t_TAIL_03,
141230 class t_TAIL_04,
141231 class t_TAIL_05,
141232 class t_TAIL_06,
141233 class t_TAIL_07,
141234 class t_TAIL_08,
141235 class t_TAIL_09,
141236 class t_TAIL_10,
141237 class t_TAIL_11,
141238 class t_TAIL_12,
141239 class t_TAIL_13,
141240 class t_TAIL_14,
141241 class t_TAIL_15,
141242 class t_TAIL_16,
141243 class t_TAIL_17>
141244template <class t_TYPE, class t_ARG_01>
141245inline
141246variant<t_HEAD, t_TAIL_01,
141247 t_TAIL_02,
141248 t_TAIL_03,
141249 t_TAIL_04,
141250 t_TAIL_05,
141251 t_TAIL_06,
141252 t_TAIL_07,
141253 t_TAIL_08,
141254 t_TAIL_09,
141255 t_TAIL_10,
141256 t_TAIL_11,
141257 t_TAIL_12,
141258 t_TAIL_13,
141259 t_TAIL_14,
141260 t_TAIL_15,
141261 t_TAIL_16,
141262 t_TAIL_17,
141263 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
141264 bsl::allocator_arg_t,
141265 allocator_type allocator,
141267 const t_ARG_01& arg_01,
141269: Variant_Base(
141270 bsl::allocator_arg_t(),
141271 allocator,
141272 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141273 arg_01)
141274{
141275}
141276#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
141277
141278#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
141279template <class t_HEAD, class t_TAIL_01,
141280 class t_TAIL_02,
141281 class t_TAIL_03,
141282 class t_TAIL_04,
141283 class t_TAIL_05,
141284 class t_TAIL_06,
141285 class t_TAIL_07,
141286 class t_TAIL_08,
141287 class t_TAIL_09,
141288 class t_TAIL_10,
141289 class t_TAIL_11,
141290 class t_TAIL_12,
141291 class t_TAIL_13,
141292 class t_TAIL_14,
141293 class t_TAIL_15,
141294 class t_TAIL_16,
141295 class t_TAIL_17,
141296 class t_TAIL_18>
141297template <class t_TYPE, class t_ARG_01>
141298inline
141299variant<t_HEAD, t_TAIL_01,
141300 t_TAIL_02,
141301 t_TAIL_03,
141302 t_TAIL_04,
141303 t_TAIL_05,
141304 t_TAIL_06,
141305 t_TAIL_07,
141306 t_TAIL_08,
141307 t_TAIL_09,
141308 t_TAIL_10,
141309 t_TAIL_11,
141310 t_TAIL_12,
141311 t_TAIL_13,
141312 t_TAIL_14,
141313 t_TAIL_15,
141314 t_TAIL_16,
141315 t_TAIL_17,
141316 t_TAIL_18,
141317 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
141318 bsl::allocator_arg_t,
141319 allocator_type allocator,
141321 const t_ARG_01& arg_01,
141323: Variant_Base(
141324 bsl::allocator_arg_t(),
141325 allocator,
141326 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141327 arg_01)
141328{
141329}
141330#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
141331
141332
141333#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
141334template <class t_HEAD>
141335template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141336inline
141337variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
141338 bsl::allocator_arg_t,
141339 allocator_type allocator,
141341 const t_ARG_01& arg_01,
141342 const t_ARG_02& arg_02,
141344: Variant_Base(
141345 bsl::allocator_arg_t(),
141346 allocator,
141347 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141348 arg_01,
141349 arg_02)
141350{
141351}
141352#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
141353
141354#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
141355template <class t_HEAD, class t_TAIL_01>
141356template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141357inline
141358variant<t_HEAD, t_TAIL_01,
141359 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
141360 bsl::allocator_arg_t,
141361 allocator_type allocator,
141363 const t_ARG_01& arg_01,
141364 const t_ARG_02& arg_02,
141366: Variant_Base(
141367 bsl::allocator_arg_t(),
141368 allocator,
141369 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141370 arg_01,
141371 arg_02)
141372{
141373}
141374#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
141375
141376#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
141377template <class t_HEAD, class t_TAIL_01,
141378 class t_TAIL_02>
141379template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141380inline
141381variant<t_HEAD, t_TAIL_01,
141382 t_TAIL_02,
141383 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
141384 bsl::allocator_arg_t,
141385 allocator_type allocator,
141387 const t_ARG_01& arg_01,
141388 const t_ARG_02& arg_02,
141390: Variant_Base(
141391 bsl::allocator_arg_t(),
141392 allocator,
141393 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141394 arg_01,
141395 arg_02)
141396{
141397}
141398#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
141399
141400#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
141401template <class t_HEAD, class t_TAIL_01,
141402 class t_TAIL_02,
141403 class t_TAIL_03>
141404template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141405inline
141406variant<t_HEAD, t_TAIL_01,
141407 t_TAIL_02,
141408 t_TAIL_03,
141409 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
141410 bsl::allocator_arg_t,
141411 allocator_type allocator,
141413 const t_ARG_01& arg_01,
141414 const t_ARG_02& arg_02,
141416: Variant_Base(
141417 bsl::allocator_arg_t(),
141418 allocator,
141419 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141420 arg_01,
141421 arg_02)
141422{
141423}
141424#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
141425
141426#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
141427template <class t_HEAD, class t_TAIL_01,
141428 class t_TAIL_02,
141429 class t_TAIL_03,
141430 class t_TAIL_04>
141431template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141432inline
141433variant<t_HEAD, t_TAIL_01,
141434 t_TAIL_02,
141435 t_TAIL_03,
141436 t_TAIL_04,
141437 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
141438 bsl::allocator_arg_t,
141439 allocator_type allocator,
141441 const t_ARG_01& arg_01,
141442 const t_ARG_02& arg_02,
141444: Variant_Base(
141445 bsl::allocator_arg_t(),
141446 allocator,
141447 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141448 arg_01,
141449 arg_02)
141450{
141451}
141452#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
141453
141454#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
141455template <class t_HEAD, class t_TAIL_01,
141456 class t_TAIL_02,
141457 class t_TAIL_03,
141458 class t_TAIL_04,
141459 class t_TAIL_05>
141460template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141461inline
141462variant<t_HEAD, t_TAIL_01,
141463 t_TAIL_02,
141464 t_TAIL_03,
141465 t_TAIL_04,
141466 t_TAIL_05,
141467 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
141468 bsl::allocator_arg_t,
141469 allocator_type allocator,
141471 const t_ARG_01& arg_01,
141472 const t_ARG_02& arg_02,
141474: Variant_Base(
141475 bsl::allocator_arg_t(),
141476 allocator,
141477 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141478 arg_01,
141479 arg_02)
141480{
141481}
141482#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
141483
141484#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
141485template <class t_HEAD, class t_TAIL_01,
141486 class t_TAIL_02,
141487 class t_TAIL_03,
141488 class t_TAIL_04,
141489 class t_TAIL_05,
141490 class t_TAIL_06>
141491template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141492inline
141493variant<t_HEAD, t_TAIL_01,
141494 t_TAIL_02,
141495 t_TAIL_03,
141496 t_TAIL_04,
141497 t_TAIL_05,
141498 t_TAIL_06,
141499 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
141500 bsl::allocator_arg_t,
141501 allocator_type allocator,
141503 const t_ARG_01& arg_01,
141504 const t_ARG_02& arg_02,
141506: Variant_Base(
141507 bsl::allocator_arg_t(),
141508 allocator,
141509 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141510 arg_01,
141511 arg_02)
141512{
141513}
141514#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
141515
141516#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
141517template <class t_HEAD, class t_TAIL_01,
141518 class t_TAIL_02,
141519 class t_TAIL_03,
141520 class t_TAIL_04,
141521 class t_TAIL_05,
141522 class t_TAIL_06,
141523 class t_TAIL_07>
141524template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141525inline
141526variant<t_HEAD, t_TAIL_01,
141527 t_TAIL_02,
141528 t_TAIL_03,
141529 t_TAIL_04,
141530 t_TAIL_05,
141531 t_TAIL_06,
141532 t_TAIL_07,
141533 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
141534 bsl::allocator_arg_t,
141535 allocator_type allocator,
141537 const t_ARG_01& arg_01,
141538 const t_ARG_02& arg_02,
141540: Variant_Base(
141541 bsl::allocator_arg_t(),
141542 allocator,
141543 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141544 arg_01,
141545 arg_02)
141546{
141547}
141548#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
141549
141550#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
141551template <class t_HEAD, class t_TAIL_01,
141552 class t_TAIL_02,
141553 class t_TAIL_03,
141554 class t_TAIL_04,
141555 class t_TAIL_05,
141556 class t_TAIL_06,
141557 class t_TAIL_07,
141558 class t_TAIL_08>
141559template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141560inline
141561variant<t_HEAD, t_TAIL_01,
141562 t_TAIL_02,
141563 t_TAIL_03,
141564 t_TAIL_04,
141565 t_TAIL_05,
141566 t_TAIL_06,
141567 t_TAIL_07,
141568 t_TAIL_08,
141569 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
141570 bsl::allocator_arg_t,
141571 allocator_type allocator,
141573 const t_ARG_01& arg_01,
141574 const t_ARG_02& arg_02,
141576: Variant_Base(
141577 bsl::allocator_arg_t(),
141578 allocator,
141579 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141580 arg_01,
141581 arg_02)
141582{
141583}
141584#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
141585
141586#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
141587template <class t_HEAD, class t_TAIL_01,
141588 class t_TAIL_02,
141589 class t_TAIL_03,
141590 class t_TAIL_04,
141591 class t_TAIL_05,
141592 class t_TAIL_06,
141593 class t_TAIL_07,
141594 class t_TAIL_08,
141595 class t_TAIL_09>
141596template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141597inline
141598variant<t_HEAD, t_TAIL_01,
141599 t_TAIL_02,
141600 t_TAIL_03,
141601 t_TAIL_04,
141602 t_TAIL_05,
141603 t_TAIL_06,
141604 t_TAIL_07,
141605 t_TAIL_08,
141606 t_TAIL_09,
141607 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
141608 bsl::allocator_arg_t,
141609 allocator_type allocator,
141611 const t_ARG_01& arg_01,
141612 const t_ARG_02& arg_02,
141614: Variant_Base(
141615 bsl::allocator_arg_t(),
141616 allocator,
141617 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141618 arg_01,
141619 arg_02)
141620{
141621}
141622#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
141623
141624#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
141625template <class t_HEAD, class t_TAIL_01,
141626 class t_TAIL_02,
141627 class t_TAIL_03,
141628 class t_TAIL_04,
141629 class t_TAIL_05,
141630 class t_TAIL_06,
141631 class t_TAIL_07,
141632 class t_TAIL_08,
141633 class t_TAIL_09,
141634 class t_TAIL_10>
141635template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141636inline
141637variant<t_HEAD, t_TAIL_01,
141638 t_TAIL_02,
141639 t_TAIL_03,
141640 t_TAIL_04,
141641 t_TAIL_05,
141642 t_TAIL_06,
141643 t_TAIL_07,
141644 t_TAIL_08,
141645 t_TAIL_09,
141646 t_TAIL_10,
141647 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
141648 bsl::allocator_arg_t,
141649 allocator_type allocator,
141651 const t_ARG_01& arg_01,
141652 const t_ARG_02& arg_02,
141654: Variant_Base(
141655 bsl::allocator_arg_t(),
141656 allocator,
141657 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141658 arg_01,
141659 arg_02)
141660{
141661}
141662#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
141663
141664#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
141665template <class t_HEAD, class t_TAIL_01,
141666 class t_TAIL_02,
141667 class t_TAIL_03,
141668 class t_TAIL_04,
141669 class t_TAIL_05,
141670 class t_TAIL_06,
141671 class t_TAIL_07,
141672 class t_TAIL_08,
141673 class t_TAIL_09,
141674 class t_TAIL_10,
141675 class t_TAIL_11>
141676template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141677inline
141678variant<t_HEAD, t_TAIL_01,
141679 t_TAIL_02,
141680 t_TAIL_03,
141681 t_TAIL_04,
141682 t_TAIL_05,
141683 t_TAIL_06,
141684 t_TAIL_07,
141685 t_TAIL_08,
141686 t_TAIL_09,
141687 t_TAIL_10,
141688 t_TAIL_11,
141689 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
141690 bsl::allocator_arg_t,
141691 allocator_type allocator,
141693 const t_ARG_01& arg_01,
141694 const t_ARG_02& arg_02,
141696: Variant_Base(
141697 bsl::allocator_arg_t(),
141698 allocator,
141699 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141700 arg_01,
141701 arg_02)
141702{
141703}
141704#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
141705
141706#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
141707template <class t_HEAD, class t_TAIL_01,
141708 class t_TAIL_02,
141709 class t_TAIL_03,
141710 class t_TAIL_04,
141711 class t_TAIL_05,
141712 class t_TAIL_06,
141713 class t_TAIL_07,
141714 class t_TAIL_08,
141715 class t_TAIL_09,
141716 class t_TAIL_10,
141717 class t_TAIL_11,
141718 class t_TAIL_12>
141719template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141720inline
141721variant<t_HEAD, t_TAIL_01,
141722 t_TAIL_02,
141723 t_TAIL_03,
141724 t_TAIL_04,
141725 t_TAIL_05,
141726 t_TAIL_06,
141727 t_TAIL_07,
141728 t_TAIL_08,
141729 t_TAIL_09,
141730 t_TAIL_10,
141731 t_TAIL_11,
141732 t_TAIL_12,
141733 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
141734 bsl::allocator_arg_t,
141735 allocator_type allocator,
141737 const t_ARG_01& arg_01,
141738 const t_ARG_02& arg_02,
141740: Variant_Base(
141741 bsl::allocator_arg_t(),
141742 allocator,
141743 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141744 arg_01,
141745 arg_02)
141746{
141747}
141748#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
141749
141750#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
141751template <class t_HEAD, class t_TAIL_01,
141752 class t_TAIL_02,
141753 class t_TAIL_03,
141754 class t_TAIL_04,
141755 class t_TAIL_05,
141756 class t_TAIL_06,
141757 class t_TAIL_07,
141758 class t_TAIL_08,
141759 class t_TAIL_09,
141760 class t_TAIL_10,
141761 class t_TAIL_11,
141762 class t_TAIL_12,
141763 class t_TAIL_13>
141764template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141765inline
141766variant<t_HEAD, t_TAIL_01,
141767 t_TAIL_02,
141768 t_TAIL_03,
141769 t_TAIL_04,
141770 t_TAIL_05,
141771 t_TAIL_06,
141772 t_TAIL_07,
141773 t_TAIL_08,
141774 t_TAIL_09,
141775 t_TAIL_10,
141776 t_TAIL_11,
141777 t_TAIL_12,
141778 t_TAIL_13,
141779 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
141780 bsl::allocator_arg_t,
141781 allocator_type allocator,
141783 const t_ARG_01& arg_01,
141784 const t_ARG_02& arg_02,
141786: Variant_Base(
141787 bsl::allocator_arg_t(),
141788 allocator,
141789 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141790 arg_01,
141791 arg_02)
141792{
141793}
141794#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
141795
141796#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
141797template <class t_HEAD, class t_TAIL_01,
141798 class t_TAIL_02,
141799 class t_TAIL_03,
141800 class t_TAIL_04,
141801 class t_TAIL_05,
141802 class t_TAIL_06,
141803 class t_TAIL_07,
141804 class t_TAIL_08,
141805 class t_TAIL_09,
141806 class t_TAIL_10,
141807 class t_TAIL_11,
141808 class t_TAIL_12,
141809 class t_TAIL_13,
141810 class t_TAIL_14>
141811template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141812inline
141813variant<t_HEAD, t_TAIL_01,
141814 t_TAIL_02,
141815 t_TAIL_03,
141816 t_TAIL_04,
141817 t_TAIL_05,
141818 t_TAIL_06,
141819 t_TAIL_07,
141820 t_TAIL_08,
141821 t_TAIL_09,
141822 t_TAIL_10,
141823 t_TAIL_11,
141824 t_TAIL_12,
141825 t_TAIL_13,
141826 t_TAIL_14,
141827 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
141828 bsl::allocator_arg_t,
141829 allocator_type allocator,
141831 const t_ARG_01& arg_01,
141832 const t_ARG_02& arg_02,
141834: Variant_Base(
141835 bsl::allocator_arg_t(),
141836 allocator,
141837 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141838 arg_01,
141839 arg_02)
141840{
141841}
141842#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
141843
141844#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
141845template <class t_HEAD, class t_TAIL_01,
141846 class t_TAIL_02,
141847 class t_TAIL_03,
141848 class t_TAIL_04,
141849 class t_TAIL_05,
141850 class t_TAIL_06,
141851 class t_TAIL_07,
141852 class t_TAIL_08,
141853 class t_TAIL_09,
141854 class t_TAIL_10,
141855 class t_TAIL_11,
141856 class t_TAIL_12,
141857 class t_TAIL_13,
141858 class t_TAIL_14,
141859 class t_TAIL_15>
141860template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141861inline
141862variant<t_HEAD, t_TAIL_01,
141863 t_TAIL_02,
141864 t_TAIL_03,
141865 t_TAIL_04,
141866 t_TAIL_05,
141867 t_TAIL_06,
141868 t_TAIL_07,
141869 t_TAIL_08,
141870 t_TAIL_09,
141871 t_TAIL_10,
141872 t_TAIL_11,
141873 t_TAIL_12,
141874 t_TAIL_13,
141875 t_TAIL_14,
141876 t_TAIL_15,
141877 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
141878 bsl::allocator_arg_t,
141879 allocator_type allocator,
141881 const t_ARG_01& arg_01,
141882 const t_ARG_02& arg_02,
141884: Variant_Base(
141885 bsl::allocator_arg_t(),
141886 allocator,
141887 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141888 arg_01,
141889 arg_02)
141890{
141891}
141892#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
141893
141894#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
141895template <class t_HEAD, class t_TAIL_01,
141896 class t_TAIL_02,
141897 class t_TAIL_03,
141898 class t_TAIL_04,
141899 class t_TAIL_05,
141900 class t_TAIL_06,
141901 class t_TAIL_07,
141902 class t_TAIL_08,
141903 class t_TAIL_09,
141904 class t_TAIL_10,
141905 class t_TAIL_11,
141906 class t_TAIL_12,
141907 class t_TAIL_13,
141908 class t_TAIL_14,
141909 class t_TAIL_15,
141910 class t_TAIL_16>
141911template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141912inline
141913variant<t_HEAD, t_TAIL_01,
141914 t_TAIL_02,
141915 t_TAIL_03,
141916 t_TAIL_04,
141917 t_TAIL_05,
141918 t_TAIL_06,
141919 t_TAIL_07,
141920 t_TAIL_08,
141921 t_TAIL_09,
141922 t_TAIL_10,
141923 t_TAIL_11,
141924 t_TAIL_12,
141925 t_TAIL_13,
141926 t_TAIL_14,
141927 t_TAIL_15,
141928 t_TAIL_16,
141929 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
141930 bsl::allocator_arg_t,
141931 allocator_type allocator,
141933 const t_ARG_01& arg_01,
141934 const t_ARG_02& arg_02,
141936: Variant_Base(
141937 bsl::allocator_arg_t(),
141938 allocator,
141939 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141940 arg_01,
141941 arg_02)
141942{
141943}
141944#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
141945
141946#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
141947template <class t_HEAD, class t_TAIL_01,
141948 class t_TAIL_02,
141949 class t_TAIL_03,
141950 class t_TAIL_04,
141951 class t_TAIL_05,
141952 class t_TAIL_06,
141953 class t_TAIL_07,
141954 class t_TAIL_08,
141955 class t_TAIL_09,
141956 class t_TAIL_10,
141957 class t_TAIL_11,
141958 class t_TAIL_12,
141959 class t_TAIL_13,
141960 class t_TAIL_14,
141961 class t_TAIL_15,
141962 class t_TAIL_16,
141963 class t_TAIL_17>
141964template <class t_TYPE, class t_ARG_01, class t_ARG_02>
141965inline
141966variant<t_HEAD, t_TAIL_01,
141967 t_TAIL_02,
141968 t_TAIL_03,
141969 t_TAIL_04,
141970 t_TAIL_05,
141971 t_TAIL_06,
141972 t_TAIL_07,
141973 t_TAIL_08,
141974 t_TAIL_09,
141975 t_TAIL_10,
141976 t_TAIL_11,
141977 t_TAIL_12,
141978 t_TAIL_13,
141979 t_TAIL_14,
141980 t_TAIL_15,
141981 t_TAIL_16,
141982 t_TAIL_17,
141983 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
141984 bsl::allocator_arg_t,
141985 allocator_type allocator,
141987 const t_ARG_01& arg_01,
141988 const t_ARG_02& arg_02,
141990: Variant_Base(
141991 bsl::allocator_arg_t(),
141992 allocator,
141993 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
141994 arg_01,
141995 arg_02)
141996{
141997}
141998#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
141999
142000#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
142001template <class t_HEAD, class t_TAIL_01,
142002 class t_TAIL_02,
142003 class t_TAIL_03,
142004 class t_TAIL_04,
142005 class t_TAIL_05,
142006 class t_TAIL_06,
142007 class t_TAIL_07,
142008 class t_TAIL_08,
142009 class t_TAIL_09,
142010 class t_TAIL_10,
142011 class t_TAIL_11,
142012 class t_TAIL_12,
142013 class t_TAIL_13,
142014 class t_TAIL_14,
142015 class t_TAIL_15,
142016 class t_TAIL_16,
142017 class t_TAIL_17,
142018 class t_TAIL_18>
142019template <class t_TYPE, class t_ARG_01, class t_ARG_02>
142020inline
142021variant<t_HEAD, t_TAIL_01,
142022 t_TAIL_02,
142023 t_TAIL_03,
142024 t_TAIL_04,
142025 t_TAIL_05,
142026 t_TAIL_06,
142027 t_TAIL_07,
142028 t_TAIL_08,
142029 t_TAIL_09,
142030 t_TAIL_10,
142031 t_TAIL_11,
142032 t_TAIL_12,
142033 t_TAIL_13,
142034 t_TAIL_14,
142035 t_TAIL_15,
142036 t_TAIL_16,
142037 t_TAIL_17,
142038 t_TAIL_18,
142039 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
142040 bsl::allocator_arg_t,
142041 allocator_type allocator,
142043 const t_ARG_01& arg_01,
142044 const t_ARG_02& arg_02,
142046: Variant_Base(
142047 bsl::allocator_arg_t(),
142048 allocator,
142049 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142050 arg_01,
142051 arg_02)
142052{
142053}
142054#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
142055
142056
142057#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
142058template <class t_HEAD>
142059template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142060inline
142061variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
142062 bsl::allocator_arg_t,
142063 allocator_type allocator,
142065 const t_ARG_01& arg_01,
142066 const t_ARG_02& arg_02,
142067 const t_ARG_03& arg_03,
142069: Variant_Base(
142070 bsl::allocator_arg_t(),
142071 allocator,
142072 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142073 arg_01,
142074 arg_02,
142075 arg_03)
142076{
142077}
142078#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
142079
142080#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
142081template <class t_HEAD, class t_TAIL_01>
142082template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142083inline
142084variant<t_HEAD, t_TAIL_01,
142085 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
142086 bsl::allocator_arg_t,
142087 allocator_type allocator,
142089 const t_ARG_01& arg_01,
142090 const t_ARG_02& arg_02,
142091 const t_ARG_03& arg_03,
142093: Variant_Base(
142094 bsl::allocator_arg_t(),
142095 allocator,
142096 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142097 arg_01,
142098 arg_02,
142099 arg_03)
142100{
142101}
142102#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
142103
142104#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
142105template <class t_HEAD, class t_TAIL_01,
142106 class t_TAIL_02>
142107template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142108inline
142109variant<t_HEAD, t_TAIL_01,
142110 t_TAIL_02,
142111 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
142112 bsl::allocator_arg_t,
142113 allocator_type allocator,
142115 const t_ARG_01& arg_01,
142116 const t_ARG_02& arg_02,
142117 const t_ARG_03& arg_03,
142119: Variant_Base(
142120 bsl::allocator_arg_t(),
142121 allocator,
142122 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142123 arg_01,
142124 arg_02,
142125 arg_03)
142126{
142127}
142128#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
142129
142130#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
142131template <class t_HEAD, class t_TAIL_01,
142132 class t_TAIL_02,
142133 class t_TAIL_03>
142134template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142135inline
142136variant<t_HEAD, t_TAIL_01,
142137 t_TAIL_02,
142138 t_TAIL_03,
142139 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
142140 bsl::allocator_arg_t,
142141 allocator_type allocator,
142143 const t_ARG_01& arg_01,
142144 const t_ARG_02& arg_02,
142145 const t_ARG_03& arg_03,
142147: Variant_Base(
142148 bsl::allocator_arg_t(),
142149 allocator,
142150 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142151 arg_01,
142152 arg_02,
142153 arg_03)
142154{
142155}
142156#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
142157
142158#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
142159template <class t_HEAD, class t_TAIL_01,
142160 class t_TAIL_02,
142161 class t_TAIL_03,
142162 class t_TAIL_04>
142163template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142164inline
142165variant<t_HEAD, t_TAIL_01,
142166 t_TAIL_02,
142167 t_TAIL_03,
142168 t_TAIL_04,
142169 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
142170 bsl::allocator_arg_t,
142171 allocator_type allocator,
142173 const t_ARG_01& arg_01,
142174 const t_ARG_02& arg_02,
142175 const t_ARG_03& arg_03,
142177: Variant_Base(
142178 bsl::allocator_arg_t(),
142179 allocator,
142180 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142181 arg_01,
142182 arg_02,
142183 arg_03)
142184{
142185}
142186#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
142187
142188#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
142189template <class t_HEAD, class t_TAIL_01,
142190 class t_TAIL_02,
142191 class t_TAIL_03,
142192 class t_TAIL_04,
142193 class t_TAIL_05>
142194template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142195inline
142196variant<t_HEAD, t_TAIL_01,
142197 t_TAIL_02,
142198 t_TAIL_03,
142199 t_TAIL_04,
142200 t_TAIL_05,
142201 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
142202 bsl::allocator_arg_t,
142203 allocator_type allocator,
142205 const t_ARG_01& arg_01,
142206 const t_ARG_02& arg_02,
142207 const t_ARG_03& arg_03,
142209: Variant_Base(
142210 bsl::allocator_arg_t(),
142211 allocator,
142212 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142213 arg_01,
142214 arg_02,
142215 arg_03)
142216{
142217}
142218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
142219
142220#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
142221template <class t_HEAD, class t_TAIL_01,
142222 class t_TAIL_02,
142223 class t_TAIL_03,
142224 class t_TAIL_04,
142225 class t_TAIL_05,
142226 class t_TAIL_06>
142227template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142228inline
142229variant<t_HEAD, t_TAIL_01,
142230 t_TAIL_02,
142231 t_TAIL_03,
142232 t_TAIL_04,
142233 t_TAIL_05,
142234 t_TAIL_06,
142235 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
142236 bsl::allocator_arg_t,
142237 allocator_type allocator,
142239 const t_ARG_01& arg_01,
142240 const t_ARG_02& arg_02,
142241 const t_ARG_03& arg_03,
142243: Variant_Base(
142244 bsl::allocator_arg_t(),
142245 allocator,
142246 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142247 arg_01,
142248 arg_02,
142249 arg_03)
142250{
142251}
142252#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
142253
142254#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
142255template <class t_HEAD, class t_TAIL_01,
142256 class t_TAIL_02,
142257 class t_TAIL_03,
142258 class t_TAIL_04,
142259 class t_TAIL_05,
142260 class t_TAIL_06,
142261 class t_TAIL_07>
142262template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142263inline
142264variant<t_HEAD, t_TAIL_01,
142265 t_TAIL_02,
142266 t_TAIL_03,
142267 t_TAIL_04,
142268 t_TAIL_05,
142269 t_TAIL_06,
142270 t_TAIL_07,
142271 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
142272 bsl::allocator_arg_t,
142273 allocator_type allocator,
142275 const t_ARG_01& arg_01,
142276 const t_ARG_02& arg_02,
142277 const t_ARG_03& arg_03,
142279: Variant_Base(
142280 bsl::allocator_arg_t(),
142281 allocator,
142282 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142283 arg_01,
142284 arg_02,
142285 arg_03)
142286{
142287}
142288#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
142289
142290#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
142291template <class t_HEAD, class t_TAIL_01,
142292 class t_TAIL_02,
142293 class t_TAIL_03,
142294 class t_TAIL_04,
142295 class t_TAIL_05,
142296 class t_TAIL_06,
142297 class t_TAIL_07,
142298 class t_TAIL_08>
142299template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142300inline
142301variant<t_HEAD, t_TAIL_01,
142302 t_TAIL_02,
142303 t_TAIL_03,
142304 t_TAIL_04,
142305 t_TAIL_05,
142306 t_TAIL_06,
142307 t_TAIL_07,
142308 t_TAIL_08,
142309 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
142310 bsl::allocator_arg_t,
142311 allocator_type allocator,
142313 const t_ARG_01& arg_01,
142314 const t_ARG_02& arg_02,
142315 const t_ARG_03& arg_03,
142317: Variant_Base(
142318 bsl::allocator_arg_t(),
142319 allocator,
142320 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142321 arg_01,
142322 arg_02,
142323 arg_03)
142324{
142325}
142326#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
142327
142328#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
142329template <class t_HEAD, class t_TAIL_01,
142330 class t_TAIL_02,
142331 class t_TAIL_03,
142332 class t_TAIL_04,
142333 class t_TAIL_05,
142334 class t_TAIL_06,
142335 class t_TAIL_07,
142336 class t_TAIL_08,
142337 class t_TAIL_09>
142338template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142339inline
142340variant<t_HEAD, t_TAIL_01,
142341 t_TAIL_02,
142342 t_TAIL_03,
142343 t_TAIL_04,
142344 t_TAIL_05,
142345 t_TAIL_06,
142346 t_TAIL_07,
142347 t_TAIL_08,
142348 t_TAIL_09,
142349 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
142350 bsl::allocator_arg_t,
142351 allocator_type allocator,
142353 const t_ARG_01& arg_01,
142354 const t_ARG_02& arg_02,
142355 const t_ARG_03& arg_03,
142357: Variant_Base(
142358 bsl::allocator_arg_t(),
142359 allocator,
142360 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142361 arg_01,
142362 arg_02,
142363 arg_03)
142364{
142365}
142366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
142367
142368#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
142369template <class t_HEAD, class t_TAIL_01,
142370 class t_TAIL_02,
142371 class t_TAIL_03,
142372 class t_TAIL_04,
142373 class t_TAIL_05,
142374 class t_TAIL_06,
142375 class t_TAIL_07,
142376 class t_TAIL_08,
142377 class t_TAIL_09,
142378 class t_TAIL_10>
142379template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142380inline
142381variant<t_HEAD, t_TAIL_01,
142382 t_TAIL_02,
142383 t_TAIL_03,
142384 t_TAIL_04,
142385 t_TAIL_05,
142386 t_TAIL_06,
142387 t_TAIL_07,
142388 t_TAIL_08,
142389 t_TAIL_09,
142390 t_TAIL_10,
142391 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
142392 bsl::allocator_arg_t,
142393 allocator_type allocator,
142395 const t_ARG_01& arg_01,
142396 const t_ARG_02& arg_02,
142397 const t_ARG_03& arg_03,
142399: Variant_Base(
142400 bsl::allocator_arg_t(),
142401 allocator,
142402 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142403 arg_01,
142404 arg_02,
142405 arg_03)
142406{
142407}
142408#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
142409
142410#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
142411template <class t_HEAD, class t_TAIL_01,
142412 class t_TAIL_02,
142413 class t_TAIL_03,
142414 class t_TAIL_04,
142415 class t_TAIL_05,
142416 class t_TAIL_06,
142417 class t_TAIL_07,
142418 class t_TAIL_08,
142419 class t_TAIL_09,
142420 class t_TAIL_10,
142421 class t_TAIL_11>
142422template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142423inline
142424variant<t_HEAD, t_TAIL_01,
142425 t_TAIL_02,
142426 t_TAIL_03,
142427 t_TAIL_04,
142428 t_TAIL_05,
142429 t_TAIL_06,
142430 t_TAIL_07,
142431 t_TAIL_08,
142432 t_TAIL_09,
142433 t_TAIL_10,
142434 t_TAIL_11,
142435 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
142436 bsl::allocator_arg_t,
142437 allocator_type allocator,
142439 const t_ARG_01& arg_01,
142440 const t_ARG_02& arg_02,
142441 const t_ARG_03& arg_03,
142443: Variant_Base(
142444 bsl::allocator_arg_t(),
142445 allocator,
142446 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142447 arg_01,
142448 arg_02,
142449 arg_03)
142450{
142451}
142452#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
142453
142454#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
142455template <class t_HEAD, class t_TAIL_01,
142456 class t_TAIL_02,
142457 class t_TAIL_03,
142458 class t_TAIL_04,
142459 class t_TAIL_05,
142460 class t_TAIL_06,
142461 class t_TAIL_07,
142462 class t_TAIL_08,
142463 class t_TAIL_09,
142464 class t_TAIL_10,
142465 class t_TAIL_11,
142466 class t_TAIL_12>
142467template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142468inline
142469variant<t_HEAD, t_TAIL_01,
142470 t_TAIL_02,
142471 t_TAIL_03,
142472 t_TAIL_04,
142473 t_TAIL_05,
142474 t_TAIL_06,
142475 t_TAIL_07,
142476 t_TAIL_08,
142477 t_TAIL_09,
142478 t_TAIL_10,
142479 t_TAIL_11,
142480 t_TAIL_12,
142481 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
142482 bsl::allocator_arg_t,
142483 allocator_type allocator,
142485 const t_ARG_01& arg_01,
142486 const t_ARG_02& arg_02,
142487 const t_ARG_03& arg_03,
142489: Variant_Base(
142490 bsl::allocator_arg_t(),
142491 allocator,
142492 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142493 arg_01,
142494 arg_02,
142495 arg_03)
142496{
142497}
142498#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
142499
142500#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
142501template <class t_HEAD, class t_TAIL_01,
142502 class t_TAIL_02,
142503 class t_TAIL_03,
142504 class t_TAIL_04,
142505 class t_TAIL_05,
142506 class t_TAIL_06,
142507 class t_TAIL_07,
142508 class t_TAIL_08,
142509 class t_TAIL_09,
142510 class t_TAIL_10,
142511 class t_TAIL_11,
142512 class t_TAIL_12,
142513 class t_TAIL_13>
142514template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142515inline
142516variant<t_HEAD, t_TAIL_01,
142517 t_TAIL_02,
142518 t_TAIL_03,
142519 t_TAIL_04,
142520 t_TAIL_05,
142521 t_TAIL_06,
142522 t_TAIL_07,
142523 t_TAIL_08,
142524 t_TAIL_09,
142525 t_TAIL_10,
142526 t_TAIL_11,
142527 t_TAIL_12,
142528 t_TAIL_13,
142529 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
142530 bsl::allocator_arg_t,
142531 allocator_type allocator,
142533 const t_ARG_01& arg_01,
142534 const t_ARG_02& arg_02,
142535 const t_ARG_03& arg_03,
142537: Variant_Base(
142538 bsl::allocator_arg_t(),
142539 allocator,
142540 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142541 arg_01,
142542 arg_02,
142543 arg_03)
142544{
142545}
142546#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
142547
142548#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
142549template <class t_HEAD, class t_TAIL_01,
142550 class t_TAIL_02,
142551 class t_TAIL_03,
142552 class t_TAIL_04,
142553 class t_TAIL_05,
142554 class t_TAIL_06,
142555 class t_TAIL_07,
142556 class t_TAIL_08,
142557 class t_TAIL_09,
142558 class t_TAIL_10,
142559 class t_TAIL_11,
142560 class t_TAIL_12,
142561 class t_TAIL_13,
142562 class t_TAIL_14>
142563template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142564inline
142565variant<t_HEAD, t_TAIL_01,
142566 t_TAIL_02,
142567 t_TAIL_03,
142568 t_TAIL_04,
142569 t_TAIL_05,
142570 t_TAIL_06,
142571 t_TAIL_07,
142572 t_TAIL_08,
142573 t_TAIL_09,
142574 t_TAIL_10,
142575 t_TAIL_11,
142576 t_TAIL_12,
142577 t_TAIL_13,
142578 t_TAIL_14,
142579 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
142580 bsl::allocator_arg_t,
142581 allocator_type allocator,
142583 const t_ARG_01& arg_01,
142584 const t_ARG_02& arg_02,
142585 const t_ARG_03& arg_03,
142587: Variant_Base(
142588 bsl::allocator_arg_t(),
142589 allocator,
142590 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142591 arg_01,
142592 arg_02,
142593 arg_03)
142594{
142595}
142596#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
142597
142598#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
142599template <class t_HEAD, class t_TAIL_01,
142600 class t_TAIL_02,
142601 class t_TAIL_03,
142602 class t_TAIL_04,
142603 class t_TAIL_05,
142604 class t_TAIL_06,
142605 class t_TAIL_07,
142606 class t_TAIL_08,
142607 class t_TAIL_09,
142608 class t_TAIL_10,
142609 class t_TAIL_11,
142610 class t_TAIL_12,
142611 class t_TAIL_13,
142612 class t_TAIL_14,
142613 class t_TAIL_15>
142614template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142615inline
142616variant<t_HEAD, t_TAIL_01,
142617 t_TAIL_02,
142618 t_TAIL_03,
142619 t_TAIL_04,
142620 t_TAIL_05,
142621 t_TAIL_06,
142622 t_TAIL_07,
142623 t_TAIL_08,
142624 t_TAIL_09,
142625 t_TAIL_10,
142626 t_TAIL_11,
142627 t_TAIL_12,
142628 t_TAIL_13,
142629 t_TAIL_14,
142630 t_TAIL_15,
142631 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
142632 bsl::allocator_arg_t,
142633 allocator_type allocator,
142635 const t_ARG_01& arg_01,
142636 const t_ARG_02& arg_02,
142637 const t_ARG_03& arg_03,
142639: Variant_Base(
142640 bsl::allocator_arg_t(),
142641 allocator,
142642 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142643 arg_01,
142644 arg_02,
142645 arg_03)
142646{
142647}
142648#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
142649
142650#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
142651template <class t_HEAD, class t_TAIL_01,
142652 class t_TAIL_02,
142653 class t_TAIL_03,
142654 class t_TAIL_04,
142655 class t_TAIL_05,
142656 class t_TAIL_06,
142657 class t_TAIL_07,
142658 class t_TAIL_08,
142659 class t_TAIL_09,
142660 class t_TAIL_10,
142661 class t_TAIL_11,
142662 class t_TAIL_12,
142663 class t_TAIL_13,
142664 class t_TAIL_14,
142665 class t_TAIL_15,
142666 class t_TAIL_16>
142667template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142668inline
142669variant<t_HEAD, t_TAIL_01,
142670 t_TAIL_02,
142671 t_TAIL_03,
142672 t_TAIL_04,
142673 t_TAIL_05,
142674 t_TAIL_06,
142675 t_TAIL_07,
142676 t_TAIL_08,
142677 t_TAIL_09,
142678 t_TAIL_10,
142679 t_TAIL_11,
142680 t_TAIL_12,
142681 t_TAIL_13,
142682 t_TAIL_14,
142683 t_TAIL_15,
142684 t_TAIL_16,
142685 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
142686 bsl::allocator_arg_t,
142687 allocator_type allocator,
142689 const t_ARG_01& arg_01,
142690 const t_ARG_02& arg_02,
142691 const t_ARG_03& arg_03,
142693: Variant_Base(
142694 bsl::allocator_arg_t(),
142695 allocator,
142696 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142697 arg_01,
142698 arg_02,
142699 arg_03)
142700{
142701}
142702#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
142703
142704#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
142705template <class t_HEAD, class t_TAIL_01,
142706 class t_TAIL_02,
142707 class t_TAIL_03,
142708 class t_TAIL_04,
142709 class t_TAIL_05,
142710 class t_TAIL_06,
142711 class t_TAIL_07,
142712 class t_TAIL_08,
142713 class t_TAIL_09,
142714 class t_TAIL_10,
142715 class t_TAIL_11,
142716 class t_TAIL_12,
142717 class t_TAIL_13,
142718 class t_TAIL_14,
142719 class t_TAIL_15,
142720 class t_TAIL_16,
142721 class t_TAIL_17>
142722template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142723inline
142724variant<t_HEAD, t_TAIL_01,
142725 t_TAIL_02,
142726 t_TAIL_03,
142727 t_TAIL_04,
142728 t_TAIL_05,
142729 t_TAIL_06,
142730 t_TAIL_07,
142731 t_TAIL_08,
142732 t_TAIL_09,
142733 t_TAIL_10,
142734 t_TAIL_11,
142735 t_TAIL_12,
142736 t_TAIL_13,
142737 t_TAIL_14,
142738 t_TAIL_15,
142739 t_TAIL_16,
142740 t_TAIL_17,
142741 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
142742 bsl::allocator_arg_t,
142743 allocator_type allocator,
142745 const t_ARG_01& arg_01,
142746 const t_ARG_02& arg_02,
142747 const t_ARG_03& arg_03,
142749: Variant_Base(
142750 bsl::allocator_arg_t(),
142751 allocator,
142752 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142753 arg_01,
142754 arg_02,
142755 arg_03)
142756{
142757}
142758#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
142759
142760#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
142761template <class t_HEAD, class t_TAIL_01,
142762 class t_TAIL_02,
142763 class t_TAIL_03,
142764 class t_TAIL_04,
142765 class t_TAIL_05,
142766 class t_TAIL_06,
142767 class t_TAIL_07,
142768 class t_TAIL_08,
142769 class t_TAIL_09,
142770 class t_TAIL_10,
142771 class t_TAIL_11,
142772 class t_TAIL_12,
142773 class t_TAIL_13,
142774 class t_TAIL_14,
142775 class t_TAIL_15,
142776 class t_TAIL_16,
142777 class t_TAIL_17,
142778 class t_TAIL_18>
142779template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
142780inline
142781variant<t_HEAD, t_TAIL_01,
142782 t_TAIL_02,
142783 t_TAIL_03,
142784 t_TAIL_04,
142785 t_TAIL_05,
142786 t_TAIL_06,
142787 t_TAIL_07,
142788 t_TAIL_08,
142789 t_TAIL_09,
142790 t_TAIL_10,
142791 t_TAIL_11,
142792 t_TAIL_12,
142793 t_TAIL_13,
142794 t_TAIL_14,
142795 t_TAIL_15,
142796 t_TAIL_16,
142797 t_TAIL_17,
142798 t_TAIL_18,
142799 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
142800 bsl::allocator_arg_t,
142801 allocator_type allocator,
142803 const t_ARG_01& arg_01,
142804 const t_ARG_02& arg_02,
142805 const t_ARG_03& arg_03,
142807: Variant_Base(
142808 bsl::allocator_arg_t(),
142809 allocator,
142810 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142811 arg_01,
142812 arg_02,
142813 arg_03)
142814{
142815}
142816#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
142817
142818
142819#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
142820template <class t_HEAD>
142821template <class t_TYPE,
142822 class t_ARG_01,
142823 class t_ARG_02,
142824 class t_ARG_03,
142825 class t_ARG_04>
142826inline
142827variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
142828 bsl::allocator_arg_t,
142829 allocator_type allocator,
142831 const t_ARG_01& arg_01,
142832 const t_ARG_02& arg_02,
142833 const t_ARG_03& arg_03,
142834 const t_ARG_04& arg_04,
142836: Variant_Base(
142837 bsl::allocator_arg_t(),
142838 allocator,
142839 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142840 arg_01,
142841 arg_02,
142842 arg_03,
142843 arg_04)
142844{
142845}
142846#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
142847
142848#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
142849template <class t_HEAD, class t_TAIL_01>
142850template <class t_TYPE,
142851 class t_ARG_01,
142852 class t_ARG_02,
142853 class t_ARG_03,
142854 class t_ARG_04>
142855inline
142856variant<t_HEAD, t_TAIL_01,
142857 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
142858 bsl::allocator_arg_t,
142859 allocator_type allocator,
142861 const t_ARG_01& arg_01,
142862 const t_ARG_02& arg_02,
142863 const t_ARG_03& arg_03,
142864 const t_ARG_04& arg_04,
142866: Variant_Base(
142867 bsl::allocator_arg_t(),
142868 allocator,
142869 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142870 arg_01,
142871 arg_02,
142872 arg_03,
142873 arg_04)
142874{
142875}
142876#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
142877
142878#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
142879template <class t_HEAD, class t_TAIL_01,
142880 class t_TAIL_02>
142881template <class t_TYPE,
142882 class t_ARG_01,
142883 class t_ARG_02,
142884 class t_ARG_03,
142885 class t_ARG_04>
142886inline
142887variant<t_HEAD, t_TAIL_01,
142888 t_TAIL_02,
142889 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
142890 bsl::allocator_arg_t,
142891 allocator_type allocator,
142893 const t_ARG_01& arg_01,
142894 const t_ARG_02& arg_02,
142895 const t_ARG_03& arg_03,
142896 const t_ARG_04& arg_04,
142898: Variant_Base(
142899 bsl::allocator_arg_t(),
142900 allocator,
142901 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142902 arg_01,
142903 arg_02,
142904 arg_03,
142905 arg_04)
142906{
142907}
142908#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
142909
142910#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
142911template <class t_HEAD, class t_TAIL_01,
142912 class t_TAIL_02,
142913 class t_TAIL_03>
142914template <class t_TYPE,
142915 class t_ARG_01,
142916 class t_ARG_02,
142917 class t_ARG_03,
142918 class t_ARG_04>
142919inline
142920variant<t_HEAD, t_TAIL_01,
142921 t_TAIL_02,
142922 t_TAIL_03,
142923 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
142924 bsl::allocator_arg_t,
142925 allocator_type allocator,
142927 const t_ARG_01& arg_01,
142928 const t_ARG_02& arg_02,
142929 const t_ARG_03& arg_03,
142930 const t_ARG_04& arg_04,
142932: Variant_Base(
142933 bsl::allocator_arg_t(),
142934 allocator,
142935 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142936 arg_01,
142937 arg_02,
142938 arg_03,
142939 arg_04)
142940{
142941}
142942#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
142943
142944#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
142945template <class t_HEAD, class t_TAIL_01,
142946 class t_TAIL_02,
142947 class t_TAIL_03,
142948 class t_TAIL_04>
142949template <class t_TYPE,
142950 class t_ARG_01,
142951 class t_ARG_02,
142952 class t_ARG_03,
142953 class t_ARG_04>
142954inline
142955variant<t_HEAD, t_TAIL_01,
142956 t_TAIL_02,
142957 t_TAIL_03,
142958 t_TAIL_04,
142959 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
142960 bsl::allocator_arg_t,
142961 allocator_type allocator,
142963 const t_ARG_01& arg_01,
142964 const t_ARG_02& arg_02,
142965 const t_ARG_03& arg_03,
142966 const t_ARG_04& arg_04,
142968: Variant_Base(
142969 bsl::allocator_arg_t(),
142970 allocator,
142971 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
142972 arg_01,
142973 arg_02,
142974 arg_03,
142975 arg_04)
142976{
142977}
142978#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
142979
142980#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
142981template <class t_HEAD, class t_TAIL_01,
142982 class t_TAIL_02,
142983 class t_TAIL_03,
142984 class t_TAIL_04,
142985 class t_TAIL_05>
142986template <class t_TYPE,
142987 class t_ARG_01,
142988 class t_ARG_02,
142989 class t_ARG_03,
142990 class t_ARG_04>
142991inline
142992variant<t_HEAD, t_TAIL_01,
142993 t_TAIL_02,
142994 t_TAIL_03,
142995 t_TAIL_04,
142996 t_TAIL_05,
142997 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
142998 bsl::allocator_arg_t,
142999 allocator_type allocator,
143001 const t_ARG_01& arg_01,
143002 const t_ARG_02& arg_02,
143003 const t_ARG_03& arg_03,
143004 const t_ARG_04& arg_04,
143006: Variant_Base(
143007 bsl::allocator_arg_t(),
143008 allocator,
143009 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143010 arg_01,
143011 arg_02,
143012 arg_03,
143013 arg_04)
143014{
143015}
143016#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
143017
143018#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
143019template <class t_HEAD, class t_TAIL_01,
143020 class t_TAIL_02,
143021 class t_TAIL_03,
143022 class t_TAIL_04,
143023 class t_TAIL_05,
143024 class t_TAIL_06>
143025template <class t_TYPE,
143026 class t_ARG_01,
143027 class t_ARG_02,
143028 class t_ARG_03,
143029 class t_ARG_04>
143030inline
143031variant<t_HEAD, t_TAIL_01,
143032 t_TAIL_02,
143033 t_TAIL_03,
143034 t_TAIL_04,
143035 t_TAIL_05,
143036 t_TAIL_06,
143037 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
143038 bsl::allocator_arg_t,
143039 allocator_type allocator,
143041 const t_ARG_01& arg_01,
143042 const t_ARG_02& arg_02,
143043 const t_ARG_03& arg_03,
143044 const t_ARG_04& arg_04,
143046: Variant_Base(
143047 bsl::allocator_arg_t(),
143048 allocator,
143049 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143050 arg_01,
143051 arg_02,
143052 arg_03,
143053 arg_04)
143054{
143055}
143056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
143057
143058#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
143059template <class t_HEAD, class t_TAIL_01,
143060 class t_TAIL_02,
143061 class t_TAIL_03,
143062 class t_TAIL_04,
143063 class t_TAIL_05,
143064 class t_TAIL_06,
143065 class t_TAIL_07>
143066template <class t_TYPE,
143067 class t_ARG_01,
143068 class t_ARG_02,
143069 class t_ARG_03,
143070 class t_ARG_04>
143071inline
143072variant<t_HEAD, t_TAIL_01,
143073 t_TAIL_02,
143074 t_TAIL_03,
143075 t_TAIL_04,
143076 t_TAIL_05,
143077 t_TAIL_06,
143078 t_TAIL_07,
143079 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
143080 bsl::allocator_arg_t,
143081 allocator_type allocator,
143083 const t_ARG_01& arg_01,
143084 const t_ARG_02& arg_02,
143085 const t_ARG_03& arg_03,
143086 const t_ARG_04& arg_04,
143088: Variant_Base(
143089 bsl::allocator_arg_t(),
143090 allocator,
143091 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143092 arg_01,
143093 arg_02,
143094 arg_03,
143095 arg_04)
143096{
143097}
143098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
143099
143100#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
143101template <class t_HEAD, class t_TAIL_01,
143102 class t_TAIL_02,
143103 class t_TAIL_03,
143104 class t_TAIL_04,
143105 class t_TAIL_05,
143106 class t_TAIL_06,
143107 class t_TAIL_07,
143108 class t_TAIL_08>
143109template <class t_TYPE,
143110 class t_ARG_01,
143111 class t_ARG_02,
143112 class t_ARG_03,
143113 class t_ARG_04>
143114inline
143115variant<t_HEAD, t_TAIL_01,
143116 t_TAIL_02,
143117 t_TAIL_03,
143118 t_TAIL_04,
143119 t_TAIL_05,
143120 t_TAIL_06,
143121 t_TAIL_07,
143122 t_TAIL_08,
143123 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
143124 bsl::allocator_arg_t,
143125 allocator_type allocator,
143127 const t_ARG_01& arg_01,
143128 const t_ARG_02& arg_02,
143129 const t_ARG_03& arg_03,
143130 const t_ARG_04& arg_04,
143132: Variant_Base(
143133 bsl::allocator_arg_t(),
143134 allocator,
143135 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143136 arg_01,
143137 arg_02,
143138 arg_03,
143139 arg_04)
143140{
143141}
143142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
143143
143144#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
143145template <class t_HEAD, class t_TAIL_01,
143146 class t_TAIL_02,
143147 class t_TAIL_03,
143148 class t_TAIL_04,
143149 class t_TAIL_05,
143150 class t_TAIL_06,
143151 class t_TAIL_07,
143152 class t_TAIL_08,
143153 class t_TAIL_09>
143154template <class t_TYPE,
143155 class t_ARG_01,
143156 class t_ARG_02,
143157 class t_ARG_03,
143158 class t_ARG_04>
143159inline
143160variant<t_HEAD, t_TAIL_01,
143161 t_TAIL_02,
143162 t_TAIL_03,
143163 t_TAIL_04,
143164 t_TAIL_05,
143165 t_TAIL_06,
143166 t_TAIL_07,
143167 t_TAIL_08,
143168 t_TAIL_09,
143169 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
143170 bsl::allocator_arg_t,
143171 allocator_type allocator,
143173 const t_ARG_01& arg_01,
143174 const t_ARG_02& arg_02,
143175 const t_ARG_03& arg_03,
143176 const t_ARG_04& arg_04,
143178: Variant_Base(
143179 bsl::allocator_arg_t(),
143180 allocator,
143181 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143182 arg_01,
143183 arg_02,
143184 arg_03,
143185 arg_04)
143186{
143187}
143188#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
143189
143190#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
143191template <class t_HEAD, class t_TAIL_01,
143192 class t_TAIL_02,
143193 class t_TAIL_03,
143194 class t_TAIL_04,
143195 class t_TAIL_05,
143196 class t_TAIL_06,
143197 class t_TAIL_07,
143198 class t_TAIL_08,
143199 class t_TAIL_09,
143200 class t_TAIL_10>
143201template <class t_TYPE,
143202 class t_ARG_01,
143203 class t_ARG_02,
143204 class t_ARG_03,
143205 class t_ARG_04>
143206inline
143207variant<t_HEAD, t_TAIL_01,
143208 t_TAIL_02,
143209 t_TAIL_03,
143210 t_TAIL_04,
143211 t_TAIL_05,
143212 t_TAIL_06,
143213 t_TAIL_07,
143214 t_TAIL_08,
143215 t_TAIL_09,
143216 t_TAIL_10,
143217 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
143218 bsl::allocator_arg_t,
143219 allocator_type allocator,
143221 const t_ARG_01& arg_01,
143222 const t_ARG_02& arg_02,
143223 const t_ARG_03& arg_03,
143224 const t_ARG_04& arg_04,
143226: Variant_Base(
143227 bsl::allocator_arg_t(),
143228 allocator,
143229 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143230 arg_01,
143231 arg_02,
143232 arg_03,
143233 arg_04)
143234{
143235}
143236#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
143237
143238#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
143239template <class t_HEAD, class t_TAIL_01,
143240 class t_TAIL_02,
143241 class t_TAIL_03,
143242 class t_TAIL_04,
143243 class t_TAIL_05,
143244 class t_TAIL_06,
143245 class t_TAIL_07,
143246 class t_TAIL_08,
143247 class t_TAIL_09,
143248 class t_TAIL_10,
143249 class t_TAIL_11>
143250template <class t_TYPE,
143251 class t_ARG_01,
143252 class t_ARG_02,
143253 class t_ARG_03,
143254 class t_ARG_04>
143255inline
143256variant<t_HEAD, t_TAIL_01,
143257 t_TAIL_02,
143258 t_TAIL_03,
143259 t_TAIL_04,
143260 t_TAIL_05,
143261 t_TAIL_06,
143262 t_TAIL_07,
143263 t_TAIL_08,
143264 t_TAIL_09,
143265 t_TAIL_10,
143266 t_TAIL_11,
143267 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
143268 bsl::allocator_arg_t,
143269 allocator_type allocator,
143271 const t_ARG_01& arg_01,
143272 const t_ARG_02& arg_02,
143273 const t_ARG_03& arg_03,
143274 const t_ARG_04& arg_04,
143276: Variant_Base(
143277 bsl::allocator_arg_t(),
143278 allocator,
143279 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143280 arg_01,
143281 arg_02,
143282 arg_03,
143283 arg_04)
143284{
143285}
143286#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
143287
143288#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
143289template <class t_HEAD, class t_TAIL_01,
143290 class t_TAIL_02,
143291 class t_TAIL_03,
143292 class t_TAIL_04,
143293 class t_TAIL_05,
143294 class t_TAIL_06,
143295 class t_TAIL_07,
143296 class t_TAIL_08,
143297 class t_TAIL_09,
143298 class t_TAIL_10,
143299 class t_TAIL_11,
143300 class t_TAIL_12>
143301template <class t_TYPE,
143302 class t_ARG_01,
143303 class t_ARG_02,
143304 class t_ARG_03,
143305 class t_ARG_04>
143306inline
143307variant<t_HEAD, t_TAIL_01,
143308 t_TAIL_02,
143309 t_TAIL_03,
143310 t_TAIL_04,
143311 t_TAIL_05,
143312 t_TAIL_06,
143313 t_TAIL_07,
143314 t_TAIL_08,
143315 t_TAIL_09,
143316 t_TAIL_10,
143317 t_TAIL_11,
143318 t_TAIL_12,
143319 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
143320 bsl::allocator_arg_t,
143321 allocator_type allocator,
143323 const t_ARG_01& arg_01,
143324 const t_ARG_02& arg_02,
143325 const t_ARG_03& arg_03,
143326 const t_ARG_04& arg_04,
143328: Variant_Base(
143329 bsl::allocator_arg_t(),
143330 allocator,
143331 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143332 arg_01,
143333 arg_02,
143334 arg_03,
143335 arg_04)
143336{
143337}
143338#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
143339
143340#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
143341template <class t_HEAD, class t_TAIL_01,
143342 class t_TAIL_02,
143343 class t_TAIL_03,
143344 class t_TAIL_04,
143345 class t_TAIL_05,
143346 class t_TAIL_06,
143347 class t_TAIL_07,
143348 class t_TAIL_08,
143349 class t_TAIL_09,
143350 class t_TAIL_10,
143351 class t_TAIL_11,
143352 class t_TAIL_12,
143353 class t_TAIL_13>
143354template <class t_TYPE,
143355 class t_ARG_01,
143356 class t_ARG_02,
143357 class t_ARG_03,
143358 class t_ARG_04>
143359inline
143360variant<t_HEAD, t_TAIL_01,
143361 t_TAIL_02,
143362 t_TAIL_03,
143363 t_TAIL_04,
143364 t_TAIL_05,
143365 t_TAIL_06,
143366 t_TAIL_07,
143367 t_TAIL_08,
143368 t_TAIL_09,
143369 t_TAIL_10,
143370 t_TAIL_11,
143371 t_TAIL_12,
143372 t_TAIL_13,
143373 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
143374 bsl::allocator_arg_t,
143375 allocator_type allocator,
143377 const t_ARG_01& arg_01,
143378 const t_ARG_02& arg_02,
143379 const t_ARG_03& arg_03,
143380 const t_ARG_04& arg_04,
143382: Variant_Base(
143383 bsl::allocator_arg_t(),
143384 allocator,
143385 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143386 arg_01,
143387 arg_02,
143388 arg_03,
143389 arg_04)
143390{
143391}
143392#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
143393
143394#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
143395template <class t_HEAD, class t_TAIL_01,
143396 class t_TAIL_02,
143397 class t_TAIL_03,
143398 class t_TAIL_04,
143399 class t_TAIL_05,
143400 class t_TAIL_06,
143401 class t_TAIL_07,
143402 class t_TAIL_08,
143403 class t_TAIL_09,
143404 class t_TAIL_10,
143405 class t_TAIL_11,
143406 class t_TAIL_12,
143407 class t_TAIL_13,
143408 class t_TAIL_14>
143409template <class t_TYPE,
143410 class t_ARG_01,
143411 class t_ARG_02,
143412 class t_ARG_03,
143413 class t_ARG_04>
143414inline
143415variant<t_HEAD, t_TAIL_01,
143416 t_TAIL_02,
143417 t_TAIL_03,
143418 t_TAIL_04,
143419 t_TAIL_05,
143420 t_TAIL_06,
143421 t_TAIL_07,
143422 t_TAIL_08,
143423 t_TAIL_09,
143424 t_TAIL_10,
143425 t_TAIL_11,
143426 t_TAIL_12,
143427 t_TAIL_13,
143428 t_TAIL_14,
143429 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
143430 bsl::allocator_arg_t,
143431 allocator_type allocator,
143433 const t_ARG_01& arg_01,
143434 const t_ARG_02& arg_02,
143435 const t_ARG_03& arg_03,
143436 const t_ARG_04& arg_04,
143438: Variant_Base(
143439 bsl::allocator_arg_t(),
143440 allocator,
143441 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143442 arg_01,
143443 arg_02,
143444 arg_03,
143445 arg_04)
143446{
143447}
143448#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
143449
143450#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
143451template <class t_HEAD, class t_TAIL_01,
143452 class t_TAIL_02,
143453 class t_TAIL_03,
143454 class t_TAIL_04,
143455 class t_TAIL_05,
143456 class t_TAIL_06,
143457 class t_TAIL_07,
143458 class t_TAIL_08,
143459 class t_TAIL_09,
143460 class t_TAIL_10,
143461 class t_TAIL_11,
143462 class t_TAIL_12,
143463 class t_TAIL_13,
143464 class t_TAIL_14,
143465 class t_TAIL_15>
143466template <class t_TYPE,
143467 class t_ARG_01,
143468 class t_ARG_02,
143469 class t_ARG_03,
143470 class t_ARG_04>
143471inline
143472variant<t_HEAD, t_TAIL_01,
143473 t_TAIL_02,
143474 t_TAIL_03,
143475 t_TAIL_04,
143476 t_TAIL_05,
143477 t_TAIL_06,
143478 t_TAIL_07,
143479 t_TAIL_08,
143480 t_TAIL_09,
143481 t_TAIL_10,
143482 t_TAIL_11,
143483 t_TAIL_12,
143484 t_TAIL_13,
143485 t_TAIL_14,
143486 t_TAIL_15,
143487 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
143488 bsl::allocator_arg_t,
143489 allocator_type allocator,
143491 const t_ARG_01& arg_01,
143492 const t_ARG_02& arg_02,
143493 const t_ARG_03& arg_03,
143494 const t_ARG_04& arg_04,
143496: Variant_Base(
143497 bsl::allocator_arg_t(),
143498 allocator,
143499 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143500 arg_01,
143501 arg_02,
143502 arg_03,
143503 arg_04)
143504{
143505}
143506#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
143507
143508#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
143509template <class t_HEAD, class t_TAIL_01,
143510 class t_TAIL_02,
143511 class t_TAIL_03,
143512 class t_TAIL_04,
143513 class t_TAIL_05,
143514 class t_TAIL_06,
143515 class t_TAIL_07,
143516 class t_TAIL_08,
143517 class t_TAIL_09,
143518 class t_TAIL_10,
143519 class t_TAIL_11,
143520 class t_TAIL_12,
143521 class t_TAIL_13,
143522 class t_TAIL_14,
143523 class t_TAIL_15,
143524 class t_TAIL_16>
143525template <class t_TYPE,
143526 class t_ARG_01,
143527 class t_ARG_02,
143528 class t_ARG_03,
143529 class t_ARG_04>
143530inline
143531variant<t_HEAD, t_TAIL_01,
143532 t_TAIL_02,
143533 t_TAIL_03,
143534 t_TAIL_04,
143535 t_TAIL_05,
143536 t_TAIL_06,
143537 t_TAIL_07,
143538 t_TAIL_08,
143539 t_TAIL_09,
143540 t_TAIL_10,
143541 t_TAIL_11,
143542 t_TAIL_12,
143543 t_TAIL_13,
143544 t_TAIL_14,
143545 t_TAIL_15,
143546 t_TAIL_16,
143547 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
143548 bsl::allocator_arg_t,
143549 allocator_type allocator,
143551 const t_ARG_01& arg_01,
143552 const t_ARG_02& arg_02,
143553 const t_ARG_03& arg_03,
143554 const t_ARG_04& arg_04,
143556: Variant_Base(
143557 bsl::allocator_arg_t(),
143558 allocator,
143559 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143560 arg_01,
143561 arg_02,
143562 arg_03,
143563 arg_04)
143564{
143565}
143566#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
143567
143568#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
143569template <class t_HEAD, class t_TAIL_01,
143570 class t_TAIL_02,
143571 class t_TAIL_03,
143572 class t_TAIL_04,
143573 class t_TAIL_05,
143574 class t_TAIL_06,
143575 class t_TAIL_07,
143576 class t_TAIL_08,
143577 class t_TAIL_09,
143578 class t_TAIL_10,
143579 class t_TAIL_11,
143580 class t_TAIL_12,
143581 class t_TAIL_13,
143582 class t_TAIL_14,
143583 class t_TAIL_15,
143584 class t_TAIL_16,
143585 class t_TAIL_17>
143586template <class t_TYPE,
143587 class t_ARG_01,
143588 class t_ARG_02,
143589 class t_ARG_03,
143590 class t_ARG_04>
143591inline
143592variant<t_HEAD, t_TAIL_01,
143593 t_TAIL_02,
143594 t_TAIL_03,
143595 t_TAIL_04,
143596 t_TAIL_05,
143597 t_TAIL_06,
143598 t_TAIL_07,
143599 t_TAIL_08,
143600 t_TAIL_09,
143601 t_TAIL_10,
143602 t_TAIL_11,
143603 t_TAIL_12,
143604 t_TAIL_13,
143605 t_TAIL_14,
143606 t_TAIL_15,
143607 t_TAIL_16,
143608 t_TAIL_17,
143609 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
143610 bsl::allocator_arg_t,
143611 allocator_type allocator,
143613 const t_ARG_01& arg_01,
143614 const t_ARG_02& arg_02,
143615 const t_ARG_03& arg_03,
143616 const t_ARG_04& arg_04,
143618: Variant_Base(
143619 bsl::allocator_arg_t(),
143620 allocator,
143621 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143622 arg_01,
143623 arg_02,
143624 arg_03,
143625 arg_04)
143626{
143627}
143628#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
143629
143630#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
143631template <class t_HEAD, class t_TAIL_01,
143632 class t_TAIL_02,
143633 class t_TAIL_03,
143634 class t_TAIL_04,
143635 class t_TAIL_05,
143636 class t_TAIL_06,
143637 class t_TAIL_07,
143638 class t_TAIL_08,
143639 class t_TAIL_09,
143640 class t_TAIL_10,
143641 class t_TAIL_11,
143642 class t_TAIL_12,
143643 class t_TAIL_13,
143644 class t_TAIL_14,
143645 class t_TAIL_15,
143646 class t_TAIL_16,
143647 class t_TAIL_17,
143648 class t_TAIL_18>
143649template <class t_TYPE,
143650 class t_ARG_01,
143651 class t_ARG_02,
143652 class t_ARG_03,
143653 class t_ARG_04>
143654inline
143655variant<t_HEAD, t_TAIL_01,
143656 t_TAIL_02,
143657 t_TAIL_03,
143658 t_TAIL_04,
143659 t_TAIL_05,
143660 t_TAIL_06,
143661 t_TAIL_07,
143662 t_TAIL_08,
143663 t_TAIL_09,
143664 t_TAIL_10,
143665 t_TAIL_11,
143666 t_TAIL_12,
143667 t_TAIL_13,
143668 t_TAIL_14,
143669 t_TAIL_15,
143670 t_TAIL_16,
143671 t_TAIL_17,
143672 t_TAIL_18,
143673 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
143674 bsl::allocator_arg_t,
143675 allocator_type allocator,
143677 const t_ARG_01& arg_01,
143678 const t_ARG_02& arg_02,
143679 const t_ARG_03& arg_03,
143680 const t_ARG_04& arg_04,
143682: Variant_Base(
143683 bsl::allocator_arg_t(),
143684 allocator,
143685 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143686 arg_01,
143687 arg_02,
143688 arg_03,
143689 arg_04)
143690{
143691}
143692#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
143693
143694
143695#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
143696template <class t_HEAD>
143697template <class t_TYPE,
143698 class t_ARG_01,
143699 class t_ARG_02,
143700 class t_ARG_03,
143701 class t_ARG_04,
143702 class t_ARG_05>
143703inline
143704variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
143705 bsl::allocator_arg_t,
143706 allocator_type allocator,
143708 const t_ARG_01& arg_01,
143709 const t_ARG_02& arg_02,
143710 const t_ARG_03& arg_03,
143711 const t_ARG_04& arg_04,
143712 const t_ARG_05& arg_05,
143714: Variant_Base(
143715 bsl::allocator_arg_t(),
143716 allocator,
143717 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143718 arg_01,
143719 arg_02,
143720 arg_03,
143721 arg_04,
143722 arg_05)
143723{
143724}
143725#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
143726
143727#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
143728template <class t_HEAD, class t_TAIL_01>
143729template <class t_TYPE,
143730 class t_ARG_01,
143731 class t_ARG_02,
143732 class t_ARG_03,
143733 class t_ARG_04,
143734 class t_ARG_05>
143735inline
143736variant<t_HEAD, t_TAIL_01,
143737 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
143738 bsl::allocator_arg_t,
143739 allocator_type allocator,
143741 const t_ARG_01& arg_01,
143742 const t_ARG_02& arg_02,
143743 const t_ARG_03& arg_03,
143744 const t_ARG_04& arg_04,
143745 const t_ARG_05& arg_05,
143747: Variant_Base(
143748 bsl::allocator_arg_t(),
143749 allocator,
143750 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143751 arg_01,
143752 arg_02,
143753 arg_03,
143754 arg_04,
143755 arg_05)
143756{
143757}
143758#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
143759
143760#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
143761template <class t_HEAD, class t_TAIL_01,
143762 class t_TAIL_02>
143763template <class t_TYPE,
143764 class t_ARG_01,
143765 class t_ARG_02,
143766 class t_ARG_03,
143767 class t_ARG_04,
143768 class t_ARG_05>
143769inline
143770variant<t_HEAD, t_TAIL_01,
143771 t_TAIL_02,
143772 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
143773 bsl::allocator_arg_t,
143774 allocator_type allocator,
143776 const t_ARG_01& arg_01,
143777 const t_ARG_02& arg_02,
143778 const t_ARG_03& arg_03,
143779 const t_ARG_04& arg_04,
143780 const t_ARG_05& arg_05,
143782: Variant_Base(
143783 bsl::allocator_arg_t(),
143784 allocator,
143785 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143786 arg_01,
143787 arg_02,
143788 arg_03,
143789 arg_04,
143790 arg_05)
143791{
143792}
143793#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
143794
143795#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
143796template <class t_HEAD, class t_TAIL_01,
143797 class t_TAIL_02,
143798 class t_TAIL_03>
143799template <class t_TYPE,
143800 class t_ARG_01,
143801 class t_ARG_02,
143802 class t_ARG_03,
143803 class t_ARG_04,
143804 class t_ARG_05>
143805inline
143806variant<t_HEAD, t_TAIL_01,
143807 t_TAIL_02,
143808 t_TAIL_03,
143809 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
143810 bsl::allocator_arg_t,
143811 allocator_type allocator,
143813 const t_ARG_01& arg_01,
143814 const t_ARG_02& arg_02,
143815 const t_ARG_03& arg_03,
143816 const t_ARG_04& arg_04,
143817 const t_ARG_05& arg_05,
143819: Variant_Base(
143820 bsl::allocator_arg_t(),
143821 allocator,
143822 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143823 arg_01,
143824 arg_02,
143825 arg_03,
143826 arg_04,
143827 arg_05)
143828{
143829}
143830#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
143831
143832#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
143833template <class t_HEAD, class t_TAIL_01,
143834 class t_TAIL_02,
143835 class t_TAIL_03,
143836 class t_TAIL_04>
143837template <class t_TYPE,
143838 class t_ARG_01,
143839 class t_ARG_02,
143840 class t_ARG_03,
143841 class t_ARG_04,
143842 class t_ARG_05>
143843inline
143844variant<t_HEAD, t_TAIL_01,
143845 t_TAIL_02,
143846 t_TAIL_03,
143847 t_TAIL_04,
143848 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
143849 bsl::allocator_arg_t,
143850 allocator_type allocator,
143852 const t_ARG_01& arg_01,
143853 const t_ARG_02& arg_02,
143854 const t_ARG_03& arg_03,
143855 const t_ARG_04& arg_04,
143856 const t_ARG_05& arg_05,
143858: Variant_Base(
143859 bsl::allocator_arg_t(),
143860 allocator,
143861 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143862 arg_01,
143863 arg_02,
143864 arg_03,
143865 arg_04,
143866 arg_05)
143867{
143868}
143869#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
143870
143871#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
143872template <class t_HEAD, class t_TAIL_01,
143873 class t_TAIL_02,
143874 class t_TAIL_03,
143875 class t_TAIL_04,
143876 class t_TAIL_05>
143877template <class t_TYPE,
143878 class t_ARG_01,
143879 class t_ARG_02,
143880 class t_ARG_03,
143881 class t_ARG_04,
143882 class t_ARG_05>
143883inline
143884variant<t_HEAD, t_TAIL_01,
143885 t_TAIL_02,
143886 t_TAIL_03,
143887 t_TAIL_04,
143888 t_TAIL_05,
143889 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
143890 bsl::allocator_arg_t,
143891 allocator_type allocator,
143893 const t_ARG_01& arg_01,
143894 const t_ARG_02& arg_02,
143895 const t_ARG_03& arg_03,
143896 const t_ARG_04& arg_04,
143897 const t_ARG_05& arg_05,
143899: Variant_Base(
143900 bsl::allocator_arg_t(),
143901 allocator,
143902 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143903 arg_01,
143904 arg_02,
143905 arg_03,
143906 arg_04,
143907 arg_05)
143908{
143909}
143910#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
143911
143912#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
143913template <class t_HEAD, class t_TAIL_01,
143914 class t_TAIL_02,
143915 class t_TAIL_03,
143916 class t_TAIL_04,
143917 class t_TAIL_05,
143918 class t_TAIL_06>
143919template <class t_TYPE,
143920 class t_ARG_01,
143921 class t_ARG_02,
143922 class t_ARG_03,
143923 class t_ARG_04,
143924 class t_ARG_05>
143925inline
143926variant<t_HEAD, t_TAIL_01,
143927 t_TAIL_02,
143928 t_TAIL_03,
143929 t_TAIL_04,
143930 t_TAIL_05,
143931 t_TAIL_06,
143932 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
143933 bsl::allocator_arg_t,
143934 allocator_type allocator,
143936 const t_ARG_01& arg_01,
143937 const t_ARG_02& arg_02,
143938 const t_ARG_03& arg_03,
143939 const t_ARG_04& arg_04,
143940 const t_ARG_05& arg_05,
143942: Variant_Base(
143943 bsl::allocator_arg_t(),
143944 allocator,
143945 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143946 arg_01,
143947 arg_02,
143948 arg_03,
143949 arg_04,
143950 arg_05)
143951{
143952}
143953#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
143954
143955#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
143956template <class t_HEAD, class t_TAIL_01,
143957 class t_TAIL_02,
143958 class t_TAIL_03,
143959 class t_TAIL_04,
143960 class t_TAIL_05,
143961 class t_TAIL_06,
143962 class t_TAIL_07>
143963template <class t_TYPE,
143964 class t_ARG_01,
143965 class t_ARG_02,
143966 class t_ARG_03,
143967 class t_ARG_04,
143968 class t_ARG_05>
143969inline
143970variant<t_HEAD, t_TAIL_01,
143971 t_TAIL_02,
143972 t_TAIL_03,
143973 t_TAIL_04,
143974 t_TAIL_05,
143975 t_TAIL_06,
143976 t_TAIL_07,
143977 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
143978 bsl::allocator_arg_t,
143979 allocator_type allocator,
143981 const t_ARG_01& arg_01,
143982 const t_ARG_02& arg_02,
143983 const t_ARG_03& arg_03,
143984 const t_ARG_04& arg_04,
143985 const t_ARG_05& arg_05,
143987: Variant_Base(
143988 bsl::allocator_arg_t(),
143989 allocator,
143990 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
143991 arg_01,
143992 arg_02,
143993 arg_03,
143994 arg_04,
143995 arg_05)
143996{
143997}
143998#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
143999
144000#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
144001template <class t_HEAD, class t_TAIL_01,
144002 class t_TAIL_02,
144003 class t_TAIL_03,
144004 class t_TAIL_04,
144005 class t_TAIL_05,
144006 class t_TAIL_06,
144007 class t_TAIL_07,
144008 class t_TAIL_08>
144009template <class t_TYPE,
144010 class t_ARG_01,
144011 class t_ARG_02,
144012 class t_ARG_03,
144013 class t_ARG_04,
144014 class t_ARG_05>
144015inline
144016variant<t_HEAD, t_TAIL_01,
144017 t_TAIL_02,
144018 t_TAIL_03,
144019 t_TAIL_04,
144020 t_TAIL_05,
144021 t_TAIL_06,
144022 t_TAIL_07,
144023 t_TAIL_08,
144024 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
144025 bsl::allocator_arg_t,
144026 allocator_type allocator,
144028 const t_ARG_01& arg_01,
144029 const t_ARG_02& arg_02,
144030 const t_ARG_03& arg_03,
144031 const t_ARG_04& arg_04,
144032 const t_ARG_05& arg_05,
144034: Variant_Base(
144035 bsl::allocator_arg_t(),
144036 allocator,
144037 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144038 arg_01,
144039 arg_02,
144040 arg_03,
144041 arg_04,
144042 arg_05)
144043{
144044}
144045#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
144046
144047#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
144048template <class t_HEAD, class t_TAIL_01,
144049 class t_TAIL_02,
144050 class t_TAIL_03,
144051 class t_TAIL_04,
144052 class t_TAIL_05,
144053 class t_TAIL_06,
144054 class t_TAIL_07,
144055 class t_TAIL_08,
144056 class t_TAIL_09>
144057template <class t_TYPE,
144058 class t_ARG_01,
144059 class t_ARG_02,
144060 class t_ARG_03,
144061 class t_ARG_04,
144062 class t_ARG_05>
144063inline
144064variant<t_HEAD, t_TAIL_01,
144065 t_TAIL_02,
144066 t_TAIL_03,
144067 t_TAIL_04,
144068 t_TAIL_05,
144069 t_TAIL_06,
144070 t_TAIL_07,
144071 t_TAIL_08,
144072 t_TAIL_09,
144073 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
144074 bsl::allocator_arg_t,
144075 allocator_type allocator,
144077 const t_ARG_01& arg_01,
144078 const t_ARG_02& arg_02,
144079 const t_ARG_03& arg_03,
144080 const t_ARG_04& arg_04,
144081 const t_ARG_05& arg_05,
144083: Variant_Base(
144084 bsl::allocator_arg_t(),
144085 allocator,
144086 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144087 arg_01,
144088 arg_02,
144089 arg_03,
144090 arg_04,
144091 arg_05)
144092{
144093}
144094#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
144095
144096#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
144097template <class t_HEAD, class t_TAIL_01,
144098 class t_TAIL_02,
144099 class t_TAIL_03,
144100 class t_TAIL_04,
144101 class t_TAIL_05,
144102 class t_TAIL_06,
144103 class t_TAIL_07,
144104 class t_TAIL_08,
144105 class t_TAIL_09,
144106 class t_TAIL_10>
144107template <class t_TYPE,
144108 class t_ARG_01,
144109 class t_ARG_02,
144110 class t_ARG_03,
144111 class t_ARG_04,
144112 class t_ARG_05>
144113inline
144114variant<t_HEAD, t_TAIL_01,
144115 t_TAIL_02,
144116 t_TAIL_03,
144117 t_TAIL_04,
144118 t_TAIL_05,
144119 t_TAIL_06,
144120 t_TAIL_07,
144121 t_TAIL_08,
144122 t_TAIL_09,
144123 t_TAIL_10,
144124 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
144125 bsl::allocator_arg_t,
144126 allocator_type allocator,
144128 const t_ARG_01& arg_01,
144129 const t_ARG_02& arg_02,
144130 const t_ARG_03& arg_03,
144131 const t_ARG_04& arg_04,
144132 const t_ARG_05& arg_05,
144134: Variant_Base(
144135 bsl::allocator_arg_t(),
144136 allocator,
144137 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144138 arg_01,
144139 arg_02,
144140 arg_03,
144141 arg_04,
144142 arg_05)
144143{
144144}
144145#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
144146
144147#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
144148template <class t_HEAD, class t_TAIL_01,
144149 class t_TAIL_02,
144150 class t_TAIL_03,
144151 class t_TAIL_04,
144152 class t_TAIL_05,
144153 class t_TAIL_06,
144154 class t_TAIL_07,
144155 class t_TAIL_08,
144156 class t_TAIL_09,
144157 class t_TAIL_10,
144158 class t_TAIL_11>
144159template <class t_TYPE,
144160 class t_ARG_01,
144161 class t_ARG_02,
144162 class t_ARG_03,
144163 class t_ARG_04,
144164 class t_ARG_05>
144165inline
144166variant<t_HEAD, t_TAIL_01,
144167 t_TAIL_02,
144168 t_TAIL_03,
144169 t_TAIL_04,
144170 t_TAIL_05,
144171 t_TAIL_06,
144172 t_TAIL_07,
144173 t_TAIL_08,
144174 t_TAIL_09,
144175 t_TAIL_10,
144176 t_TAIL_11,
144177 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
144178 bsl::allocator_arg_t,
144179 allocator_type allocator,
144181 const t_ARG_01& arg_01,
144182 const t_ARG_02& arg_02,
144183 const t_ARG_03& arg_03,
144184 const t_ARG_04& arg_04,
144185 const t_ARG_05& arg_05,
144187: Variant_Base(
144188 bsl::allocator_arg_t(),
144189 allocator,
144190 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144191 arg_01,
144192 arg_02,
144193 arg_03,
144194 arg_04,
144195 arg_05)
144196{
144197}
144198#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
144199
144200#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
144201template <class t_HEAD, class t_TAIL_01,
144202 class t_TAIL_02,
144203 class t_TAIL_03,
144204 class t_TAIL_04,
144205 class t_TAIL_05,
144206 class t_TAIL_06,
144207 class t_TAIL_07,
144208 class t_TAIL_08,
144209 class t_TAIL_09,
144210 class t_TAIL_10,
144211 class t_TAIL_11,
144212 class t_TAIL_12>
144213template <class t_TYPE,
144214 class t_ARG_01,
144215 class t_ARG_02,
144216 class t_ARG_03,
144217 class t_ARG_04,
144218 class t_ARG_05>
144219inline
144220variant<t_HEAD, t_TAIL_01,
144221 t_TAIL_02,
144222 t_TAIL_03,
144223 t_TAIL_04,
144224 t_TAIL_05,
144225 t_TAIL_06,
144226 t_TAIL_07,
144227 t_TAIL_08,
144228 t_TAIL_09,
144229 t_TAIL_10,
144230 t_TAIL_11,
144231 t_TAIL_12,
144232 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
144233 bsl::allocator_arg_t,
144234 allocator_type allocator,
144236 const t_ARG_01& arg_01,
144237 const t_ARG_02& arg_02,
144238 const t_ARG_03& arg_03,
144239 const t_ARG_04& arg_04,
144240 const t_ARG_05& arg_05,
144242: Variant_Base(
144243 bsl::allocator_arg_t(),
144244 allocator,
144245 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144246 arg_01,
144247 arg_02,
144248 arg_03,
144249 arg_04,
144250 arg_05)
144251{
144252}
144253#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
144254
144255#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
144256template <class t_HEAD, class t_TAIL_01,
144257 class t_TAIL_02,
144258 class t_TAIL_03,
144259 class t_TAIL_04,
144260 class t_TAIL_05,
144261 class t_TAIL_06,
144262 class t_TAIL_07,
144263 class t_TAIL_08,
144264 class t_TAIL_09,
144265 class t_TAIL_10,
144266 class t_TAIL_11,
144267 class t_TAIL_12,
144268 class t_TAIL_13>
144269template <class t_TYPE,
144270 class t_ARG_01,
144271 class t_ARG_02,
144272 class t_ARG_03,
144273 class t_ARG_04,
144274 class t_ARG_05>
144275inline
144276variant<t_HEAD, t_TAIL_01,
144277 t_TAIL_02,
144278 t_TAIL_03,
144279 t_TAIL_04,
144280 t_TAIL_05,
144281 t_TAIL_06,
144282 t_TAIL_07,
144283 t_TAIL_08,
144284 t_TAIL_09,
144285 t_TAIL_10,
144286 t_TAIL_11,
144287 t_TAIL_12,
144288 t_TAIL_13,
144289 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
144290 bsl::allocator_arg_t,
144291 allocator_type allocator,
144293 const t_ARG_01& arg_01,
144294 const t_ARG_02& arg_02,
144295 const t_ARG_03& arg_03,
144296 const t_ARG_04& arg_04,
144297 const t_ARG_05& arg_05,
144299: Variant_Base(
144300 bsl::allocator_arg_t(),
144301 allocator,
144302 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144303 arg_01,
144304 arg_02,
144305 arg_03,
144306 arg_04,
144307 arg_05)
144308{
144309}
144310#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
144311
144312#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
144313template <class t_HEAD, class t_TAIL_01,
144314 class t_TAIL_02,
144315 class t_TAIL_03,
144316 class t_TAIL_04,
144317 class t_TAIL_05,
144318 class t_TAIL_06,
144319 class t_TAIL_07,
144320 class t_TAIL_08,
144321 class t_TAIL_09,
144322 class t_TAIL_10,
144323 class t_TAIL_11,
144324 class t_TAIL_12,
144325 class t_TAIL_13,
144326 class t_TAIL_14>
144327template <class t_TYPE,
144328 class t_ARG_01,
144329 class t_ARG_02,
144330 class t_ARG_03,
144331 class t_ARG_04,
144332 class t_ARG_05>
144333inline
144334variant<t_HEAD, t_TAIL_01,
144335 t_TAIL_02,
144336 t_TAIL_03,
144337 t_TAIL_04,
144338 t_TAIL_05,
144339 t_TAIL_06,
144340 t_TAIL_07,
144341 t_TAIL_08,
144342 t_TAIL_09,
144343 t_TAIL_10,
144344 t_TAIL_11,
144345 t_TAIL_12,
144346 t_TAIL_13,
144347 t_TAIL_14,
144348 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
144349 bsl::allocator_arg_t,
144350 allocator_type allocator,
144352 const t_ARG_01& arg_01,
144353 const t_ARG_02& arg_02,
144354 const t_ARG_03& arg_03,
144355 const t_ARG_04& arg_04,
144356 const t_ARG_05& arg_05,
144358: Variant_Base(
144359 bsl::allocator_arg_t(),
144360 allocator,
144361 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144362 arg_01,
144363 arg_02,
144364 arg_03,
144365 arg_04,
144366 arg_05)
144367{
144368}
144369#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
144370
144371#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
144372template <class t_HEAD, class t_TAIL_01,
144373 class t_TAIL_02,
144374 class t_TAIL_03,
144375 class t_TAIL_04,
144376 class t_TAIL_05,
144377 class t_TAIL_06,
144378 class t_TAIL_07,
144379 class t_TAIL_08,
144380 class t_TAIL_09,
144381 class t_TAIL_10,
144382 class t_TAIL_11,
144383 class t_TAIL_12,
144384 class t_TAIL_13,
144385 class t_TAIL_14,
144386 class t_TAIL_15>
144387template <class t_TYPE,
144388 class t_ARG_01,
144389 class t_ARG_02,
144390 class t_ARG_03,
144391 class t_ARG_04,
144392 class t_ARG_05>
144393inline
144394variant<t_HEAD, t_TAIL_01,
144395 t_TAIL_02,
144396 t_TAIL_03,
144397 t_TAIL_04,
144398 t_TAIL_05,
144399 t_TAIL_06,
144400 t_TAIL_07,
144401 t_TAIL_08,
144402 t_TAIL_09,
144403 t_TAIL_10,
144404 t_TAIL_11,
144405 t_TAIL_12,
144406 t_TAIL_13,
144407 t_TAIL_14,
144408 t_TAIL_15,
144409 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
144410 bsl::allocator_arg_t,
144411 allocator_type allocator,
144413 const t_ARG_01& arg_01,
144414 const t_ARG_02& arg_02,
144415 const t_ARG_03& arg_03,
144416 const t_ARG_04& arg_04,
144417 const t_ARG_05& arg_05,
144419: Variant_Base(
144420 bsl::allocator_arg_t(),
144421 allocator,
144422 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144423 arg_01,
144424 arg_02,
144425 arg_03,
144426 arg_04,
144427 arg_05)
144428{
144429}
144430#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
144431
144432#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
144433template <class t_HEAD, class t_TAIL_01,
144434 class t_TAIL_02,
144435 class t_TAIL_03,
144436 class t_TAIL_04,
144437 class t_TAIL_05,
144438 class t_TAIL_06,
144439 class t_TAIL_07,
144440 class t_TAIL_08,
144441 class t_TAIL_09,
144442 class t_TAIL_10,
144443 class t_TAIL_11,
144444 class t_TAIL_12,
144445 class t_TAIL_13,
144446 class t_TAIL_14,
144447 class t_TAIL_15,
144448 class t_TAIL_16>
144449template <class t_TYPE,
144450 class t_ARG_01,
144451 class t_ARG_02,
144452 class t_ARG_03,
144453 class t_ARG_04,
144454 class t_ARG_05>
144455inline
144456variant<t_HEAD, t_TAIL_01,
144457 t_TAIL_02,
144458 t_TAIL_03,
144459 t_TAIL_04,
144460 t_TAIL_05,
144461 t_TAIL_06,
144462 t_TAIL_07,
144463 t_TAIL_08,
144464 t_TAIL_09,
144465 t_TAIL_10,
144466 t_TAIL_11,
144467 t_TAIL_12,
144468 t_TAIL_13,
144469 t_TAIL_14,
144470 t_TAIL_15,
144471 t_TAIL_16,
144472 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
144473 bsl::allocator_arg_t,
144474 allocator_type allocator,
144476 const t_ARG_01& arg_01,
144477 const t_ARG_02& arg_02,
144478 const t_ARG_03& arg_03,
144479 const t_ARG_04& arg_04,
144480 const t_ARG_05& arg_05,
144482: Variant_Base(
144483 bsl::allocator_arg_t(),
144484 allocator,
144485 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144486 arg_01,
144487 arg_02,
144488 arg_03,
144489 arg_04,
144490 arg_05)
144491{
144492}
144493#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
144494
144495#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
144496template <class t_HEAD, class t_TAIL_01,
144497 class t_TAIL_02,
144498 class t_TAIL_03,
144499 class t_TAIL_04,
144500 class t_TAIL_05,
144501 class t_TAIL_06,
144502 class t_TAIL_07,
144503 class t_TAIL_08,
144504 class t_TAIL_09,
144505 class t_TAIL_10,
144506 class t_TAIL_11,
144507 class t_TAIL_12,
144508 class t_TAIL_13,
144509 class t_TAIL_14,
144510 class t_TAIL_15,
144511 class t_TAIL_16,
144512 class t_TAIL_17>
144513template <class t_TYPE,
144514 class t_ARG_01,
144515 class t_ARG_02,
144516 class t_ARG_03,
144517 class t_ARG_04,
144518 class t_ARG_05>
144519inline
144520variant<t_HEAD, t_TAIL_01,
144521 t_TAIL_02,
144522 t_TAIL_03,
144523 t_TAIL_04,
144524 t_TAIL_05,
144525 t_TAIL_06,
144526 t_TAIL_07,
144527 t_TAIL_08,
144528 t_TAIL_09,
144529 t_TAIL_10,
144530 t_TAIL_11,
144531 t_TAIL_12,
144532 t_TAIL_13,
144533 t_TAIL_14,
144534 t_TAIL_15,
144535 t_TAIL_16,
144536 t_TAIL_17,
144537 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
144538 bsl::allocator_arg_t,
144539 allocator_type allocator,
144541 const t_ARG_01& arg_01,
144542 const t_ARG_02& arg_02,
144543 const t_ARG_03& arg_03,
144544 const t_ARG_04& arg_04,
144545 const t_ARG_05& arg_05,
144547: Variant_Base(
144548 bsl::allocator_arg_t(),
144549 allocator,
144550 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144551 arg_01,
144552 arg_02,
144553 arg_03,
144554 arg_04,
144555 arg_05)
144556{
144557}
144558#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
144559
144560#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
144561template <class t_HEAD, class t_TAIL_01,
144562 class t_TAIL_02,
144563 class t_TAIL_03,
144564 class t_TAIL_04,
144565 class t_TAIL_05,
144566 class t_TAIL_06,
144567 class t_TAIL_07,
144568 class t_TAIL_08,
144569 class t_TAIL_09,
144570 class t_TAIL_10,
144571 class t_TAIL_11,
144572 class t_TAIL_12,
144573 class t_TAIL_13,
144574 class t_TAIL_14,
144575 class t_TAIL_15,
144576 class t_TAIL_16,
144577 class t_TAIL_17,
144578 class t_TAIL_18>
144579template <class t_TYPE,
144580 class t_ARG_01,
144581 class t_ARG_02,
144582 class t_ARG_03,
144583 class t_ARG_04,
144584 class t_ARG_05>
144585inline
144586variant<t_HEAD, t_TAIL_01,
144587 t_TAIL_02,
144588 t_TAIL_03,
144589 t_TAIL_04,
144590 t_TAIL_05,
144591 t_TAIL_06,
144592 t_TAIL_07,
144593 t_TAIL_08,
144594 t_TAIL_09,
144595 t_TAIL_10,
144596 t_TAIL_11,
144597 t_TAIL_12,
144598 t_TAIL_13,
144599 t_TAIL_14,
144600 t_TAIL_15,
144601 t_TAIL_16,
144602 t_TAIL_17,
144603 t_TAIL_18,
144604 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
144605 bsl::allocator_arg_t,
144606 allocator_type allocator,
144608 const t_ARG_01& arg_01,
144609 const t_ARG_02& arg_02,
144610 const t_ARG_03& arg_03,
144611 const t_ARG_04& arg_04,
144612 const t_ARG_05& arg_05,
144614: Variant_Base(
144615 bsl::allocator_arg_t(),
144616 allocator,
144617 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144618 arg_01,
144619 arg_02,
144620 arg_03,
144621 arg_04,
144622 arg_05)
144623{
144624}
144625#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
144626
144627
144628#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
144629template <class t_HEAD>
144630template <class t_TYPE,
144631 class t_ARG_01,
144632 class t_ARG_02,
144633 class t_ARG_03,
144634 class t_ARG_04,
144635 class t_ARG_05,
144636 class t_ARG_06>
144637inline
144638variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
144639 bsl::allocator_arg_t,
144640 allocator_type allocator,
144642 const t_ARG_01& arg_01,
144643 const t_ARG_02& arg_02,
144644 const t_ARG_03& arg_03,
144645 const t_ARG_04& arg_04,
144646 const t_ARG_05& arg_05,
144647 const t_ARG_06& arg_06,
144649: Variant_Base(
144650 bsl::allocator_arg_t(),
144651 allocator,
144652 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144653 arg_01,
144654 arg_02,
144655 arg_03,
144656 arg_04,
144657 arg_05,
144658 arg_06)
144659{
144660}
144661#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
144662
144663#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
144664template <class t_HEAD, class t_TAIL_01>
144665template <class t_TYPE,
144666 class t_ARG_01,
144667 class t_ARG_02,
144668 class t_ARG_03,
144669 class t_ARG_04,
144670 class t_ARG_05,
144671 class t_ARG_06>
144672inline
144673variant<t_HEAD, t_TAIL_01,
144674 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
144675 bsl::allocator_arg_t,
144676 allocator_type allocator,
144678 const t_ARG_01& arg_01,
144679 const t_ARG_02& arg_02,
144680 const t_ARG_03& arg_03,
144681 const t_ARG_04& arg_04,
144682 const t_ARG_05& arg_05,
144683 const t_ARG_06& arg_06,
144685: Variant_Base(
144686 bsl::allocator_arg_t(),
144687 allocator,
144688 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144689 arg_01,
144690 arg_02,
144691 arg_03,
144692 arg_04,
144693 arg_05,
144694 arg_06)
144695{
144696}
144697#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
144698
144699#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
144700template <class t_HEAD, class t_TAIL_01,
144701 class t_TAIL_02>
144702template <class t_TYPE,
144703 class t_ARG_01,
144704 class t_ARG_02,
144705 class t_ARG_03,
144706 class t_ARG_04,
144707 class t_ARG_05,
144708 class t_ARG_06>
144709inline
144710variant<t_HEAD, t_TAIL_01,
144711 t_TAIL_02,
144712 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
144713 bsl::allocator_arg_t,
144714 allocator_type allocator,
144716 const t_ARG_01& arg_01,
144717 const t_ARG_02& arg_02,
144718 const t_ARG_03& arg_03,
144719 const t_ARG_04& arg_04,
144720 const t_ARG_05& arg_05,
144721 const t_ARG_06& arg_06,
144723: Variant_Base(
144724 bsl::allocator_arg_t(),
144725 allocator,
144726 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144727 arg_01,
144728 arg_02,
144729 arg_03,
144730 arg_04,
144731 arg_05,
144732 arg_06)
144733{
144734}
144735#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
144736
144737#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
144738template <class t_HEAD, class t_TAIL_01,
144739 class t_TAIL_02,
144740 class t_TAIL_03>
144741template <class t_TYPE,
144742 class t_ARG_01,
144743 class t_ARG_02,
144744 class t_ARG_03,
144745 class t_ARG_04,
144746 class t_ARG_05,
144747 class t_ARG_06>
144748inline
144749variant<t_HEAD, t_TAIL_01,
144750 t_TAIL_02,
144751 t_TAIL_03,
144752 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
144753 bsl::allocator_arg_t,
144754 allocator_type allocator,
144756 const t_ARG_01& arg_01,
144757 const t_ARG_02& arg_02,
144758 const t_ARG_03& arg_03,
144759 const t_ARG_04& arg_04,
144760 const t_ARG_05& arg_05,
144761 const t_ARG_06& arg_06,
144763: Variant_Base(
144764 bsl::allocator_arg_t(),
144765 allocator,
144766 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144767 arg_01,
144768 arg_02,
144769 arg_03,
144770 arg_04,
144771 arg_05,
144772 arg_06)
144773{
144774}
144775#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
144776
144777#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
144778template <class t_HEAD, class t_TAIL_01,
144779 class t_TAIL_02,
144780 class t_TAIL_03,
144781 class t_TAIL_04>
144782template <class t_TYPE,
144783 class t_ARG_01,
144784 class t_ARG_02,
144785 class t_ARG_03,
144786 class t_ARG_04,
144787 class t_ARG_05,
144788 class t_ARG_06>
144789inline
144790variant<t_HEAD, t_TAIL_01,
144791 t_TAIL_02,
144792 t_TAIL_03,
144793 t_TAIL_04,
144794 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
144795 bsl::allocator_arg_t,
144796 allocator_type allocator,
144798 const t_ARG_01& arg_01,
144799 const t_ARG_02& arg_02,
144800 const t_ARG_03& arg_03,
144801 const t_ARG_04& arg_04,
144802 const t_ARG_05& arg_05,
144803 const t_ARG_06& arg_06,
144805: Variant_Base(
144806 bsl::allocator_arg_t(),
144807 allocator,
144808 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144809 arg_01,
144810 arg_02,
144811 arg_03,
144812 arg_04,
144813 arg_05,
144814 arg_06)
144815{
144816}
144817#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
144818
144819#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
144820template <class t_HEAD, class t_TAIL_01,
144821 class t_TAIL_02,
144822 class t_TAIL_03,
144823 class t_TAIL_04,
144824 class t_TAIL_05>
144825template <class t_TYPE,
144826 class t_ARG_01,
144827 class t_ARG_02,
144828 class t_ARG_03,
144829 class t_ARG_04,
144830 class t_ARG_05,
144831 class t_ARG_06>
144832inline
144833variant<t_HEAD, t_TAIL_01,
144834 t_TAIL_02,
144835 t_TAIL_03,
144836 t_TAIL_04,
144837 t_TAIL_05,
144838 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
144839 bsl::allocator_arg_t,
144840 allocator_type allocator,
144842 const t_ARG_01& arg_01,
144843 const t_ARG_02& arg_02,
144844 const t_ARG_03& arg_03,
144845 const t_ARG_04& arg_04,
144846 const t_ARG_05& arg_05,
144847 const t_ARG_06& arg_06,
144849: Variant_Base(
144850 bsl::allocator_arg_t(),
144851 allocator,
144852 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144853 arg_01,
144854 arg_02,
144855 arg_03,
144856 arg_04,
144857 arg_05,
144858 arg_06)
144859{
144860}
144861#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
144862
144863#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
144864template <class t_HEAD, class t_TAIL_01,
144865 class t_TAIL_02,
144866 class t_TAIL_03,
144867 class t_TAIL_04,
144868 class t_TAIL_05,
144869 class t_TAIL_06>
144870template <class t_TYPE,
144871 class t_ARG_01,
144872 class t_ARG_02,
144873 class t_ARG_03,
144874 class t_ARG_04,
144875 class t_ARG_05,
144876 class t_ARG_06>
144877inline
144878variant<t_HEAD, t_TAIL_01,
144879 t_TAIL_02,
144880 t_TAIL_03,
144881 t_TAIL_04,
144882 t_TAIL_05,
144883 t_TAIL_06,
144884 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
144885 bsl::allocator_arg_t,
144886 allocator_type allocator,
144888 const t_ARG_01& arg_01,
144889 const t_ARG_02& arg_02,
144890 const t_ARG_03& arg_03,
144891 const t_ARG_04& arg_04,
144892 const t_ARG_05& arg_05,
144893 const t_ARG_06& arg_06,
144895: Variant_Base(
144896 bsl::allocator_arg_t(),
144897 allocator,
144898 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144899 arg_01,
144900 arg_02,
144901 arg_03,
144902 arg_04,
144903 arg_05,
144904 arg_06)
144905{
144906}
144907#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
144908
144909#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
144910template <class t_HEAD, class t_TAIL_01,
144911 class t_TAIL_02,
144912 class t_TAIL_03,
144913 class t_TAIL_04,
144914 class t_TAIL_05,
144915 class t_TAIL_06,
144916 class t_TAIL_07>
144917template <class t_TYPE,
144918 class t_ARG_01,
144919 class t_ARG_02,
144920 class t_ARG_03,
144921 class t_ARG_04,
144922 class t_ARG_05,
144923 class t_ARG_06>
144924inline
144925variant<t_HEAD, t_TAIL_01,
144926 t_TAIL_02,
144927 t_TAIL_03,
144928 t_TAIL_04,
144929 t_TAIL_05,
144930 t_TAIL_06,
144931 t_TAIL_07,
144932 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
144933 bsl::allocator_arg_t,
144934 allocator_type allocator,
144936 const t_ARG_01& arg_01,
144937 const t_ARG_02& arg_02,
144938 const t_ARG_03& arg_03,
144939 const t_ARG_04& arg_04,
144940 const t_ARG_05& arg_05,
144941 const t_ARG_06& arg_06,
144943: Variant_Base(
144944 bsl::allocator_arg_t(),
144945 allocator,
144946 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144947 arg_01,
144948 arg_02,
144949 arg_03,
144950 arg_04,
144951 arg_05,
144952 arg_06)
144953{
144954}
144955#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
144956
144957#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
144958template <class t_HEAD, class t_TAIL_01,
144959 class t_TAIL_02,
144960 class t_TAIL_03,
144961 class t_TAIL_04,
144962 class t_TAIL_05,
144963 class t_TAIL_06,
144964 class t_TAIL_07,
144965 class t_TAIL_08>
144966template <class t_TYPE,
144967 class t_ARG_01,
144968 class t_ARG_02,
144969 class t_ARG_03,
144970 class t_ARG_04,
144971 class t_ARG_05,
144972 class t_ARG_06>
144973inline
144974variant<t_HEAD, t_TAIL_01,
144975 t_TAIL_02,
144976 t_TAIL_03,
144977 t_TAIL_04,
144978 t_TAIL_05,
144979 t_TAIL_06,
144980 t_TAIL_07,
144981 t_TAIL_08,
144982 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
144983 bsl::allocator_arg_t,
144984 allocator_type allocator,
144986 const t_ARG_01& arg_01,
144987 const t_ARG_02& arg_02,
144988 const t_ARG_03& arg_03,
144989 const t_ARG_04& arg_04,
144990 const t_ARG_05& arg_05,
144991 const t_ARG_06& arg_06,
144993: Variant_Base(
144994 bsl::allocator_arg_t(),
144995 allocator,
144996 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
144997 arg_01,
144998 arg_02,
144999 arg_03,
145000 arg_04,
145001 arg_05,
145002 arg_06)
145003{
145004}
145005#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
145006
145007#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
145008template <class t_HEAD, class t_TAIL_01,
145009 class t_TAIL_02,
145010 class t_TAIL_03,
145011 class t_TAIL_04,
145012 class t_TAIL_05,
145013 class t_TAIL_06,
145014 class t_TAIL_07,
145015 class t_TAIL_08,
145016 class t_TAIL_09>
145017template <class t_TYPE,
145018 class t_ARG_01,
145019 class t_ARG_02,
145020 class t_ARG_03,
145021 class t_ARG_04,
145022 class t_ARG_05,
145023 class t_ARG_06>
145024inline
145025variant<t_HEAD, t_TAIL_01,
145026 t_TAIL_02,
145027 t_TAIL_03,
145028 t_TAIL_04,
145029 t_TAIL_05,
145030 t_TAIL_06,
145031 t_TAIL_07,
145032 t_TAIL_08,
145033 t_TAIL_09,
145034 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
145035 bsl::allocator_arg_t,
145036 allocator_type allocator,
145038 const t_ARG_01& arg_01,
145039 const t_ARG_02& arg_02,
145040 const t_ARG_03& arg_03,
145041 const t_ARG_04& arg_04,
145042 const t_ARG_05& arg_05,
145043 const t_ARG_06& arg_06,
145045: Variant_Base(
145046 bsl::allocator_arg_t(),
145047 allocator,
145048 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145049 arg_01,
145050 arg_02,
145051 arg_03,
145052 arg_04,
145053 arg_05,
145054 arg_06)
145055{
145056}
145057#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
145058
145059#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
145060template <class t_HEAD, class t_TAIL_01,
145061 class t_TAIL_02,
145062 class t_TAIL_03,
145063 class t_TAIL_04,
145064 class t_TAIL_05,
145065 class t_TAIL_06,
145066 class t_TAIL_07,
145067 class t_TAIL_08,
145068 class t_TAIL_09,
145069 class t_TAIL_10>
145070template <class t_TYPE,
145071 class t_ARG_01,
145072 class t_ARG_02,
145073 class t_ARG_03,
145074 class t_ARG_04,
145075 class t_ARG_05,
145076 class t_ARG_06>
145077inline
145078variant<t_HEAD, t_TAIL_01,
145079 t_TAIL_02,
145080 t_TAIL_03,
145081 t_TAIL_04,
145082 t_TAIL_05,
145083 t_TAIL_06,
145084 t_TAIL_07,
145085 t_TAIL_08,
145086 t_TAIL_09,
145087 t_TAIL_10,
145088 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
145089 bsl::allocator_arg_t,
145090 allocator_type allocator,
145092 const t_ARG_01& arg_01,
145093 const t_ARG_02& arg_02,
145094 const t_ARG_03& arg_03,
145095 const t_ARG_04& arg_04,
145096 const t_ARG_05& arg_05,
145097 const t_ARG_06& arg_06,
145099: Variant_Base(
145100 bsl::allocator_arg_t(),
145101 allocator,
145102 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145103 arg_01,
145104 arg_02,
145105 arg_03,
145106 arg_04,
145107 arg_05,
145108 arg_06)
145109{
145110}
145111#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
145112
145113#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
145114template <class t_HEAD, class t_TAIL_01,
145115 class t_TAIL_02,
145116 class t_TAIL_03,
145117 class t_TAIL_04,
145118 class t_TAIL_05,
145119 class t_TAIL_06,
145120 class t_TAIL_07,
145121 class t_TAIL_08,
145122 class t_TAIL_09,
145123 class t_TAIL_10,
145124 class t_TAIL_11>
145125template <class t_TYPE,
145126 class t_ARG_01,
145127 class t_ARG_02,
145128 class t_ARG_03,
145129 class t_ARG_04,
145130 class t_ARG_05,
145131 class t_ARG_06>
145132inline
145133variant<t_HEAD, t_TAIL_01,
145134 t_TAIL_02,
145135 t_TAIL_03,
145136 t_TAIL_04,
145137 t_TAIL_05,
145138 t_TAIL_06,
145139 t_TAIL_07,
145140 t_TAIL_08,
145141 t_TAIL_09,
145142 t_TAIL_10,
145143 t_TAIL_11,
145144 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
145145 bsl::allocator_arg_t,
145146 allocator_type allocator,
145148 const t_ARG_01& arg_01,
145149 const t_ARG_02& arg_02,
145150 const t_ARG_03& arg_03,
145151 const t_ARG_04& arg_04,
145152 const t_ARG_05& arg_05,
145153 const t_ARG_06& arg_06,
145155: Variant_Base(
145156 bsl::allocator_arg_t(),
145157 allocator,
145158 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145159 arg_01,
145160 arg_02,
145161 arg_03,
145162 arg_04,
145163 arg_05,
145164 arg_06)
145165{
145166}
145167#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
145168
145169#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
145170template <class t_HEAD, class t_TAIL_01,
145171 class t_TAIL_02,
145172 class t_TAIL_03,
145173 class t_TAIL_04,
145174 class t_TAIL_05,
145175 class t_TAIL_06,
145176 class t_TAIL_07,
145177 class t_TAIL_08,
145178 class t_TAIL_09,
145179 class t_TAIL_10,
145180 class t_TAIL_11,
145181 class t_TAIL_12>
145182template <class t_TYPE,
145183 class t_ARG_01,
145184 class t_ARG_02,
145185 class t_ARG_03,
145186 class t_ARG_04,
145187 class t_ARG_05,
145188 class t_ARG_06>
145189inline
145190variant<t_HEAD, t_TAIL_01,
145191 t_TAIL_02,
145192 t_TAIL_03,
145193 t_TAIL_04,
145194 t_TAIL_05,
145195 t_TAIL_06,
145196 t_TAIL_07,
145197 t_TAIL_08,
145198 t_TAIL_09,
145199 t_TAIL_10,
145200 t_TAIL_11,
145201 t_TAIL_12,
145202 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
145203 bsl::allocator_arg_t,
145204 allocator_type allocator,
145206 const t_ARG_01& arg_01,
145207 const t_ARG_02& arg_02,
145208 const t_ARG_03& arg_03,
145209 const t_ARG_04& arg_04,
145210 const t_ARG_05& arg_05,
145211 const t_ARG_06& arg_06,
145213: Variant_Base(
145214 bsl::allocator_arg_t(),
145215 allocator,
145216 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145217 arg_01,
145218 arg_02,
145219 arg_03,
145220 arg_04,
145221 arg_05,
145222 arg_06)
145223{
145224}
145225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
145226
145227#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
145228template <class t_HEAD, class t_TAIL_01,
145229 class t_TAIL_02,
145230 class t_TAIL_03,
145231 class t_TAIL_04,
145232 class t_TAIL_05,
145233 class t_TAIL_06,
145234 class t_TAIL_07,
145235 class t_TAIL_08,
145236 class t_TAIL_09,
145237 class t_TAIL_10,
145238 class t_TAIL_11,
145239 class t_TAIL_12,
145240 class t_TAIL_13>
145241template <class t_TYPE,
145242 class t_ARG_01,
145243 class t_ARG_02,
145244 class t_ARG_03,
145245 class t_ARG_04,
145246 class t_ARG_05,
145247 class t_ARG_06>
145248inline
145249variant<t_HEAD, t_TAIL_01,
145250 t_TAIL_02,
145251 t_TAIL_03,
145252 t_TAIL_04,
145253 t_TAIL_05,
145254 t_TAIL_06,
145255 t_TAIL_07,
145256 t_TAIL_08,
145257 t_TAIL_09,
145258 t_TAIL_10,
145259 t_TAIL_11,
145260 t_TAIL_12,
145261 t_TAIL_13,
145262 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
145263 bsl::allocator_arg_t,
145264 allocator_type allocator,
145266 const t_ARG_01& arg_01,
145267 const t_ARG_02& arg_02,
145268 const t_ARG_03& arg_03,
145269 const t_ARG_04& arg_04,
145270 const t_ARG_05& arg_05,
145271 const t_ARG_06& arg_06,
145273: Variant_Base(
145274 bsl::allocator_arg_t(),
145275 allocator,
145276 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145277 arg_01,
145278 arg_02,
145279 arg_03,
145280 arg_04,
145281 arg_05,
145282 arg_06)
145283{
145284}
145285#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
145286
145287#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
145288template <class t_HEAD, class t_TAIL_01,
145289 class t_TAIL_02,
145290 class t_TAIL_03,
145291 class t_TAIL_04,
145292 class t_TAIL_05,
145293 class t_TAIL_06,
145294 class t_TAIL_07,
145295 class t_TAIL_08,
145296 class t_TAIL_09,
145297 class t_TAIL_10,
145298 class t_TAIL_11,
145299 class t_TAIL_12,
145300 class t_TAIL_13,
145301 class t_TAIL_14>
145302template <class t_TYPE,
145303 class t_ARG_01,
145304 class t_ARG_02,
145305 class t_ARG_03,
145306 class t_ARG_04,
145307 class t_ARG_05,
145308 class t_ARG_06>
145309inline
145310variant<t_HEAD, t_TAIL_01,
145311 t_TAIL_02,
145312 t_TAIL_03,
145313 t_TAIL_04,
145314 t_TAIL_05,
145315 t_TAIL_06,
145316 t_TAIL_07,
145317 t_TAIL_08,
145318 t_TAIL_09,
145319 t_TAIL_10,
145320 t_TAIL_11,
145321 t_TAIL_12,
145322 t_TAIL_13,
145323 t_TAIL_14,
145324 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
145325 bsl::allocator_arg_t,
145326 allocator_type allocator,
145328 const t_ARG_01& arg_01,
145329 const t_ARG_02& arg_02,
145330 const t_ARG_03& arg_03,
145331 const t_ARG_04& arg_04,
145332 const t_ARG_05& arg_05,
145333 const t_ARG_06& arg_06,
145335: Variant_Base(
145336 bsl::allocator_arg_t(),
145337 allocator,
145338 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145339 arg_01,
145340 arg_02,
145341 arg_03,
145342 arg_04,
145343 arg_05,
145344 arg_06)
145345{
145346}
145347#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
145348
145349#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
145350template <class t_HEAD, class t_TAIL_01,
145351 class t_TAIL_02,
145352 class t_TAIL_03,
145353 class t_TAIL_04,
145354 class t_TAIL_05,
145355 class t_TAIL_06,
145356 class t_TAIL_07,
145357 class t_TAIL_08,
145358 class t_TAIL_09,
145359 class t_TAIL_10,
145360 class t_TAIL_11,
145361 class t_TAIL_12,
145362 class t_TAIL_13,
145363 class t_TAIL_14,
145364 class t_TAIL_15>
145365template <class t_TYPE,
145366 class t_ARG_01,
145367 class t_ARG_02,
145368 class t_ARG_03,
145369 class t_ARG_04,
145370 class t_ARG_05,
145371 class t_ARG_06>
145372inline
145373variant<t_HEAD, t_TAIL_01,
145374 t_TAIL_02,
145375 t_TAIL_03,
145376 t_TAIL_04,
145377 t_TAIL_05,
145378 t_TAIL_06,
145379 t_TAIL_07,
145380 t_TAIL_08,
145381 t_TAIL_09,
145382 t_TAIL_10,
145383 t_TAIL_11,
145384 t_TAIL_12,
145385 t_TAIL_13,
145386 t_TAIL_14,
145387 t_TAIL_15,
145388 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
145389 bsl::allocator_arg_t,
145390 allocator_type allocator,
145392 const t_ARG_01& arg_01,
145393 const t_ARG_02& arg_02,
145394 const t_ARG_03& arg_03,
145395 const t_ARG_04& arg_04,
145396 const t_ARG_05& arg_05,
145397 const t_ARG_06& arg_06,
145399: Variant_Base(
145400 bsl::allocator_arg_t(),
145401 allocator,
145402 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145403 arg_01,
145404 arg_02,
145405 arg_03,
145406 arg_04,
145407 arg_05,
145408 arg_06)
145409{
145410}
145411#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
145412
145413#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
145414template <class t_HEAD, class t_TAIL_01,
145415 class t_TAIL_02,
145416 class t_TAIL_03,
145417 class t_TAIL_04,
145418 class t_TAIL_05,
145419 class t_TAIL_06,
145420 class t_TAIL_07,
145421 class t_TAIL_08,
145422 class t_TAIL_09,
145423 class t_TAIL_10,
145424 class t_TAIL_11,
145425 class t_TAIL_12,
145426 class t_TAIL_13,
145427 class t_TAIL_14,
145428 class t_TAIL_15,
145429 class t_TAIL_16>
145430template <class t_TYPE,
145431 class t_ARG_01,
145432 class t_ARG_02,
145433 class t_ARG_03,
145434 class t_ARG_04,
145435 class t_ARG_05,
145436 class t_ARG_06>
145437inline
145438variant<t_HEAD, t_TAIL_01,
145439 t_TAIL_02,
145440 t_TAIL_03,
145441 t_TAIL_04,
145442 t_TAIL_05,
145443 t_TAIL_06,
145444 t_TAIL_07,
145445 t_TAIL_08,
145446 t_TAIL_09,
145447 t_TAIL_10,
145448 t_TAIL_11,
145449 t_TAIL_12,
145450 t_TAIL_13,
145451 t_TAIL_14,
145452 t_TAIL_15,
145453 t_TAIL_16,
145454 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
145455 bsl::allocator_arg_t,
145456 allocator_type allocator,
145458 const t_ARG_01& arg_01,
145459 const t_ARG_02& arg_02,
145460 const t_ARG_03& arg_03,
145461 const t_ARG_04& arg_04,
145462 const t_ARG_05& arg_05,
145463 const t_ARG_06& arg_06,
145465: Variant_Base(
145466 bsl::allocator_arg_t(),
145467 allocator,
145468 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145469 arg_01,
145470 arg_02,
145471 arg_03,
145472 arg_04,
145473 arg_05,
145474 arg_06)
145475{
145476}
145477#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
145478
145479#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
145480template <class t_HEAD, class t_TAIL_01,
145481 class t_TAIL_02,
145482 class t_TAIL_03,
145483 class t_TAIL_04,
145484 class t_TAIL_05,
145485 class t_TAIL_06,
145486 class t_TAIL_07,
145487 class t_TAIL_08,
145488 class t_TAIL_09,
145489 class t_TAIL_10,
145490 class t_TAIL_11,
145491 class t_TAIL_12,
145492 class t_TAIL_13,
145493 class t_TAIL_14,
145494 class t_TAIL_15,
145495 class t_TAIL_16,
145496 class t_TAIL_17>
145497template <class t_TYPE,
145498 class t_ARG_01,
145499 class t_ARG_02,
145500 class t_ARG_03,
145501 class t_ARG_04,
145502 class t_ARG_05,
145503 class t_ARG_06>
145504inline
145505variant<t_HEAD, t_TAIL_01,
145506 t_TAIL_02,
145507 t_TAIL_03,
145508 t_TAIL_04,
145509 t_TAIL_05,
145510 t_TAIL_06,
145511 t_TAIL_07,
145512 t_TAIL_08,
145513 t_TAIL_09,
145514 t_TAIL_10,
145515 t_TAIL_11,
145516 t_TAIL_12,
145517 t_TAIL_13,
145518 t_TAIL_14,
145519 t_TAIL_15,
145520 t_TAIL_16,
145521 t_TAIL_17,
145522 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
145523 bsl::allocator_arg_t,
145524 allocator_type allocator,
145526 const t_ARG_01& arg_01,
145527 const t_ARG_02& arg_02,
145528 const t_ARG_03& arg_03,
145529 const t_ARG_04& arg_04,
145530 const t_ARG_05& arg_05,
145531 const t_ARG_06& arg_06,
145533: Variant_Base(
145534 bsl::allocator_arg_t(),
145535 allocator,
145536 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145537 arg_01,
145538 arg_02,
145539 arg_03,
145540 arg_04,
145541 arg_05,
145542 arg_06)
145543{
145544}
145545#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
145546
145547#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
145548template <class t_HEAD, class t_TAIL_01,
145549 class t_TAIL_02,
145550 class t_TAIL_03,
145551 class t_TAIL_04,
145552 class t_TAIL_05,
145553 class t_TAIL_06,
145554 class t_TAIL_07,
145555 class t_TAIL_08,
145556 class t_TAIL_09,
145557 class t_TAIL_10,
145558 class t_TAIL_11,
145559 class t_TAIL_12,
145560 class t_TAIL_13,
145561 class t_TAIL_14,
145562 class t_TAIL_15,
145563 class t_TAIL_16,
145564 class t_TAIL_17,
145565 class t_TAIL_18>
145566template <class t_TYPE,
145567 class t_ARG_01,
145568 class t_ARG_02,
145569 class t_ARG_03,
145570 class t_ARG_04,
145571 class t_ARG_05,
145572 class t_ARG_06>
145573inline
145574variant<t_HEAD, t_TAIL_01,
145575 t_TAIL_02,
145576 t_TAIL_03,
145577 t_TAIL_04,
145578 t_TAIL_05,
145579 t_TAIL_06,
145580 t_TAIL_07,
145581 t_TAIL_08,
145582 t_TAIL_09,
145583 t_TAIL_10,
145584 t_TAIL_11,
145585 t_TAIL_12,
145586 t_TAIL_13,
145587 t_TAIL_14,
145588 t_TAIL_15,
145589 t_TAIL_16,
145590 t_TAIL_17,
145591 t_TAIL_18,
145592 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
145593 bsl::allocator_arg_t,
145594 allocator_type allocator,
145596 const t_ARG_01& arg_01,
145597 const t_ARG_02& arg_02,
145598 const t_ARG_03& arg_03,
145599 const t_ARG_04& arg_04,
145600 const t_ARG_05& arg_05,
145601 const t_ARG_06& arg_06,
145603: Variant_Base(
145604 bsl::allocator_arg_t(),
145605 allocator,
145606 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145607 arg_01,
145608 arg_02,
145609 arg_03,
145610 arg_04,
145611 arg_05,
145612 arg_06)
145613{
145614}
145615#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
145616
145617
145618#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
145619template <class t_HEAD>
145620template <class t_TYPE,
145621 class t_ARG_01,
145622 class t_ARG_02,
145623 class t_ARG_03,
145624 class t_ARG_04,
145625 class t_ARG_05,
145626 class t_ARG_06,
145627 class t_ARG_07>
145628inline
145629variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
145630 bsl::allocator_arg_t,
145631 allocator_type allocator,
145633 const t_ARG_01& arg_01,
145634 const t_ARG_02& arg_02,
145635 const t_ARG_03& arg_03,
145636 const t_ARG_04& arg_04,
145637 const t_ARG_05& arg_05,
145638 const t_ARG_06& arg_06,
145639 const t_ARG_07& arg_07,
145641: Variant_Base(
145642 bsl::allocator_arg_t(),
145643 allocator,
145644 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145645 arg_01,
145646 arg_02,
145647 arg_03,
145648 arg_04,
145649 arg_05,
145650 arg_06,
145651 arg_07)
145652{
145653}
145654#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
145655
145656#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
145657template <class t_HEAD, class t_TAIL_01>
145658template <class t_TYPE,
145659 class t_ARG_01,
145660 class t_ARG_02,
145661 class t_ARG_03,
145662 class t_ARG_04,
145663 class t_ARG_05,
145664 class t_ARG_06,
145665 class t_ARG_07>
145666inline
145667variant<t_HEAD, t_TAIL_01,
145668 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
145669 bsl::allocator_arg_t,
145670 allocator_type allocator,
145672 const t_ARG_01& arg_01,
145673 const t_ARG_02& arg_02,
145674 const t_ARG_03& arg_03,
145675 const t_ARG_04& arg_04,
145676 const t_ARG_05& arg_05,
145677 const t_ARG_06& arg_06,
145678 const t_ARG_07& arg_07,
145680: Variant_Base(
145681 bsl::allocator_arg_t(),
145682 allocator,
145683 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145684 arg_01,
145685 arg_02,
145686 arg_03,
145687 arg_04,
145688 arg_05,
145689 arg_06,
145690 arg_07)
145691{
145692}
145693#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
145694
145695#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
145696template <class t_HEAD, class t_TAIL_01,
145697 class t_TAIL_02>
145698template <class t_TYPE,
145699 class t_ARG_01,
145700 class t_ARG_02,
145701 class t_ARG_03,
145702 class t_ARG_04,
145703 class t_ARG_05,
145704 class t_ARG_06,
145705 class t_ARG_07>
145706inline
145707variant<t_HEAD, t_TAIL_01,
145708 t_TAIL_02,
145709 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
145710 bsl::allocator_arg_t,
145711 allocator_type allocator,
145713 const t_ARG_01& arg_01,
145714 const t_ARG_02& arg_02,
145715 const t_ARG_03& arg_03,
145716 const t_ARG_04& arg_04,
145717 const t_ARG_05& arg_05,
145718 const t_ARG_06& arg_06,
145719 const t_ARG_07& arg_07,
145721: Variant_Base(
145722 bsl::allocator_arg_t(),
145723 allocator,
145724 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145725 arg_01,
145726 arg_02,
145727 arg_03,
145728 arg_04,
145729 arg_05,
145730 arg_06,
145731 arg_07)
145732{
145733}
145734#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
145735
145736#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
145737template <class t_HEAD, class t_TAIL_01,
145738 class t_TAIL_02,
145739 class t_TAIL_03>
145740template <class t_TYPE,
145741 class t_ARG_01,
145742 class t_ARG_02,
145743 class t_ARG_03,
145744 class t_ARG_04,
145745 class t_ARG_05,
145746 class t_ARG_06,
145747 class t_ARG_07>
145748inline
145749variant<t_HEAD, t_TAIL_01,
145750 t_TAIL_02,
145751 t_TAIL_03,
145752 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
145753 bsl::allocator_arg_t,
145754 allocator_type allocator,
145756 const t_ARG_01& arg_01,
145757 const t_ARG_02& arg_02,
145758 const t_ARG_03& arg_03,
145759 const t_ARG_04& arg_04,
145760 const t_ARG_05& arg_05,
145761 const t_ARG_06& arg_06,
145762 const t_ARG_07& arg_07,
145764: Variant_Base(
145765 bsl::allocator_arg_t(),
145766 allocator,
145767 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145768 arg_01,
145769 arg_02,
145770 arg_03,
145771 arg_04,
145772 arg_05,
145773 arg_06,
145774 arg_07)
145775{
145776}
145777#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
145778
145779#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
145780template <class t_HEAD, class t_TAIL_01,
145781 class t_TAIL_02,
145782 class t_TAIL_03,
145783 class t_TAIL_04>
145784template <class t_TYPE,
145785 class t_ARG_01,
145786 class t_ARG_02,
145787 class t_ARG_03,
145788 class t_ARG_04,
145789 class t_ARG_05,
145790 class t_ARG_06,
145791 class t_ARG_07>
145792inline
145793variant<t_HEAD, t_TAIL_01,
145794 t_TAIL_02,
145795 t_TAIL_03,
145796 t_TAIL_04,
145797 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
145798 bsl::allocator_arg_t,
145799 allocator_type allocator,
145801 const t_ARG_01& arg_01,
145802 const t_ARG_02& arg_02,
145803 const t_ARG_03& arg_03,
145804 const t_ARG_04& arg_04,
145805 const t_ARG_05& arg_05,
145806 const t_ARG_06& arg_06,
145807 const t_ARG_07& arg_07,
145809: Variant_Base(
145810 bsl::allocator_arg_t(),
145811 allocator,
145812 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145813 arg_01,
145814 arg_02,
145815 arg_03,
145816 arg_04,
145817 arg_05,
145818 arg_06,
145819 arg_07)
145820{
145821}
145822#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
145823
145824#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
145825template <class t_HEAD, class t_TAIL_01,
145826 class t_TAIL_02,
145827 class t_TAIL_03,
145828 class t_TAIL_04,
145829 class t_TAIL_05>
145830template <class t_TYPE,
145831 class t_ARG_01,
145832 class t_ARG_02,
145833 class t_ARG_03,
145834 class t_ARG_04,
145835 class t_ARG_05,
145836 class t_ARG_06,
145837 class t_ARG_07>
145838inline
145839variant<t_HEAD, t_TAIL_01,
145840 t_TAIL_02,
145841 t_TAIL_03,
145842 t_TAIL_04,
145843 t_TAIL_05,
145844 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
145845 bsl::allocator_arg_t,
145846 allocator_type allocator,
145848 const t_ARG_01& arg_01,
145849 const t_ARG_02& arg_02,
145850 const t_ARG_03& arg_03,
145851 const t_ARG_04& arg_04,
145852 const t_ARG_05& arg_05,
145853 const t_ARG_06& arg_06,
145854 const t_ARG_07& arg_07,
145856: Variant_Base(
145857 bsl::allocator_arg_t(),
145858 allocator,
145859 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145860 arg_01,
145861 arg_02,
145862 arg_03,
145863 arg_04,
145864 arg_05,
145865 arg_06,
145866 arg_07)
145867{
145868}
145869#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
145870
145871#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
145872template <class t_HEAD, class t_TAIL_01,
145873 class t_TAIL_02,
145874 class t_TAIL_03,
145875 class t_TAIL_04,
145876 class t_TAIL_05,
145877 class t_TAIL_06>
145878template <class t_TYPE,
145879 class t_ARG_01,
145880 class t_ARG_02,
145881 class t_ARG_03,
145882 class t_ARG_04,
145883 class t_ARG_05,
145884 class t_ARG_06,
145885 class t_ARG_07>
145886inline
145887variant<t_HEAD, t_TAIL_01,
145888 t_TAIL_02,
145889 t_TAIL_03,
145890 t_TAIL_04,
145891 t_TAIL_05,
145892 t_TAIL_06,
145893 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
145894 bsl::allocator_arg_t,
145895 allocator_type allocator,
145897 const t_ARG_01& arg_01,
145898 const t_ARG_02& arg_02,
145899 const t_ARG_03& arg_03,
145900 const t_ARG_04& arg_04,
145901 const t_ARG_05& arg_05,
145902 const t_ARG_06& arg_06,
145903 const t_ARG_07& arg_07,
145905: Variant_Base(
145906 bsl::allocator_arg_t(),
145907 allocator,
145908 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145909 arg_01,
145910 arg_02,
145911 arg_03,
145912 arg_04,
145913 arg_05,
145914 arg_06,
145915 arg_07)
145916{
145917}
145918#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
145919
145920#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
145921template <class t_HEAD, class t_TAIL_01,
145922 class t_TAIL_02,
145923 class t_TAIL_03,
145924 class t_TAIL_04,
145925 class t_TAIL_05,
145926 class t_TAIL_06,
145927 class t_TAIL_07>
145928template <class t_TYPE,
145929 class t_ARG_01,
145930 class t_ARG_02,
145931 class t_ARG_03,
145932 class t_ARG_04,
145933 class t_ARG_05,
145934 class t_ARG_06,
145935 class t_ARG_07>
145936inline
145937variant<t_HEAD, t_TAIL_01,
145938 t_TAIL_02,
145939 t_TAIL_03,
145940 t_TAIL_04,
145941 t_TAIL_05,
145942 t_TAIL_06,
145943 t_TAIL_07,
145944 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
145945 bsl::allocator_arg_t,
145946 allocator_type allocator,
145948 const t_ARG_01& arg_01,
145949 const t_ARG_02& arg_02,
145950 const t_ARG_03& arg_03,
145951 const t_ARG_04& arg_04,
145952 const t_ARG_05& arg_05,
145953 const t_ARG_06& arg_06,
145954 const t_ARG_07& arg_07,
145956: Variant_Base(
145957 bsl::allocator_arg_t(),
145958 allocator,
145959 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
145960 arg_01,
145961 arg_02,
145962 arg_03,
145963 arg_04,
145964 arg_05,
145965 arg_06,
145966 arg_07)
145967{
145968}
145969#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
145970
145971#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
145972template <class t_HEAD, class t_TAIL_01,
145973 class t_TAIL_02,
145974 class t_TAIL_03,
145975 class t_TAIL_04,
145976 class t_TAIL_05,
145977 class t_TAIL_06,
145978 class t_TAIL_07,
145979 class t_TAIL_08>
145980template <class t_TYPE,
145981 class t_ARG_01,
145982 class t_ARG_02,
145983 class t_ARG_03,
145984 class t_ARG_04,
145985 class t_ARG_05,
145986 class t_ARG_06,
145987 class t_ARG_07>
145988inline
145989variant<t_HEAD, t_TAIL_01,
145990 t_TAIL_02,
145991 t_TAIL_03,
145992 t_TAIL_04,
145993 t_TAIL_05,
145994 t_TAIL_06,
145995 t_TAIL_07,
145996 t_TAIL_08,
145997 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
145998 bsl::allocator_arg_t,
145999 allocator_type allocator,
146001 const t_ARG_01& arg_01,
146002 const t_ARG_02& arg_02,
146003 const t_ARG_03& arg_03,
146004 const t_ARG_04& arg_04,
146005 const t_ARG_05& arg_05,
146006 const t_ARG_06& arg_06,
146007 const t_ARG_07& arg_07,
146009: Variant_Base(
146010 bsl::allocator_arg_t(),
146011 allocator,
146012 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146013 arg_01,
146014 arg_02,
146015 arg_03,
146016 arg_04,
146017 arg_05,
146018 arg_06,
146019 arg_07)
146020{
146021}
146022#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
146023
146024#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
146025template <class t_HEAD, class t_TAIL_01,
146026 class t_TAIL_02,
146027 class t_TAIL_03,
146028 class t_TAIL_04,
146029 class t_TAIL_05,
146030 class t_TAIL_06,
146031 class t_TAIL_07,
146032 class t_TAIL_08,
146033 class t_TAIL_09>
146034template <class t_TYPE,
146035 class t_ARG_01,
146036 class t_ARG_02,
146037 class t_ARG_03,
146038 class t_ARG_04,
146039 class t_ARG_05,
146040 class t_ARG_06,
146041 class t_ARG_07>
146042inline
146043variant<t_HEAD, t_TAIL_01,
146044 t_TAIL_02,
146045 t_TAIL_03,
146046 t_TAIL_04,
146047 t_TAIL_05,
146048 t_TAIL_06,
146049 t_TAIL_07,
146050 t_TAIL_08,
146051 t_TAIL_09,
146052 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
146053 bsl::allocator_arg_t,
146054 allocator_type allocator,
146056 const t_ARG_01& arg_01,
146057 const t_ARG_02& arg_02,
146058 const t_ARG_03& arg_03,
146059 const t_ARG_04& arg_04,
146060 const t_ARG_05& arg_05,
146061 const t_ARG_06& arg_06,
146062 const t_ARG_07& arg_07,
146064: Variant_Base(
146065 bsl::allocator_arg_t(),
146066 allocator,
146067 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146068 arg_01,
146069 arg_02,
146070 arg_03,
146071 arg_04,
146072 arg_05,
146073 arg_06,
146074 arg_07)
146075{
146076}
146077#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
146078
146079#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
146080template <class t_HEAD, class t_TAIL_01,
146081 class t_TAIL_02,
146082 class t_TAIL_03,
146083 class t_TAIL_04,
146084 class t_TAIL_05,
146085 class t_TAIL_06,
146086 class t_TAIL_07,
146087 class t_TAIL_08,
146088 class t_TAIL_09,
146089 class t_TAIL_10>
146090template <class t_TYPE,
146091 class t_ARG_01,
146092 class t_ARG_02,
146093 class t_ARG_03,
146094 class t_ARG_04,
146095 class t_ARG_05,
146096 class t_ARG_06,
146097 class t_ARG_07>
146098inline
146099variant<t_HEAD, t_TAIL_01,
146100 t_TAIL_02,
146101 t_TAIL_03,
146102 t_TAIL_04,
146103 t_TAIL_05,
146104 t_TAIL_06,
146105 t_TAIL_07,
146106 t_TAIL_08,
146107 t_TAIL_09,
146108 t_TAIL_10,
146109 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
146110 bsl::allocator_arg_t,
146111 allocator_type allocator,
146113 const t_ARG_01& arg_01,
146114 const t_ARG_02& arg_02,
146115 const t_ARG_03& arg_03,
146116 const t_ARG_04& arg_04,
146117 const t_ARG_05& arg_05,
146118 const t_ARG_06& arg_06,
146119 const t_ARG_07& arg_07,
146121: Variant_Base(
146122 bsl::allocator_arg_t(),
146123 allocator,
146124 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146125 arg_01,
146126 arg_02,
146127 arg_03,
146128 arg_04,
146129 arg_05,
146130 arg_06,
146131 arg_07)
146132{
146133}
146134#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
146135
146136#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
146137template <class t_HEAD, class t_TAIL_01,
146138 class t_TAIL_02,
146139 class t_TAIL_03,
146140 class t_TAIL_04,
146141 class t_TAIL_05,
146142 class t_TAIL_06,
146143 class t_TAIL_07,
146144 class t_TAIL_08,
146145 class t_TAIL_09,
146146 class t_TAIL_10,
146147 class t_TAIL_11>
146148template <class t_TYPE,
146149 class t_ARG_01,
146150 class t_ARG_02,
146151 class t_ARG_03,
146152 class t_ARG_04,
146153 class t_ARG_05,
146154 class t_ARG_06,
146155 class t_ARG_07>
146156inline
146157variant<t_HEAD, t_TAIL_01,
146158 t_TAIL_02,
146159 t_TAIL_03,
146160 t_TAIL_04,
146161 t_TAIL_05,
146162 t_TAIL_06,
146163 t_TAIL_07,
146164 t_TAIL_08,
146165 t_TAIL_09,
146166 t_TAIL_10,
146167 t_TAIL_11,
146168 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
146169 bsl::allocator_arg_t,
146170 allocator_type allocator,
146172 const t_ARG_01& arg_01,
146173 const t_ARG_02& arg_02,
146174 const t_ARG_03& arg_03,
146175 const t_ARG_04& arg_04,
146176 const t_ARG_05& arg_05,
146177 const t_ARG_06& arg_06,
146178 const t_ARG_07& arg_07,
146180: Variant_Base(
146181 bsl::allocator_arg_t(),
146182 allocator,
146183 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146184 arg_01,
146185 arg_02,
146186 arg_03,
146187 arg_04,
146188 arg_05,
146189 arg_06,
146190 arg_07)
146191{
146192}
146193#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
146194
146195#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
146196template <class t_HEAD, class t_TAIL_01,
146197 class t_TAIL_02,
146198 class t_TAIL_03,
146199 class t_TAIL_04,
146200 class t_TAIL_05,
146201 class t_TAIL_06,
146202 class t_TAIL_07,
146203 class t_TAIL_08,
146204 class t_TAIL_09,
146205 class t_TAIL_10,
146206 class t_TAIL_11,
146207 class t_TAIL_12>
146208template <class t_TYPE,
146209 class t_ARG_01,
146210 class t_ARG_02,
146211 class t_ARG_03,
146212 class t_ARG_04,
146213 class t_ARG_05,
146214 class t_ARG_06,
146215 class t_ARG_07>
146216inline
146217variant<t_HEAD, t_TAIL_01,
146218 t_TAIL_02,
146219 t_TAIL_03,
146220 t_TAIL_04,
146221 t_TAIL_05,
146222 t_TAIL_06,
146223 t_TAIL_07,
146224 t_TAIL_08,
146225 t_TAIL_09,
146226 t_TAIL_10,
146227 t_TAIL_11,
146228 t_TAIL_12,
146229 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
146230 bsl::allocator_arg_t,
146231 allocator_type allocator,
146233 const t_ARG_01& arg_01,
146234 const t_ARG_02& arg_02,
146235 const t_ARG_03& arg_03,
146236 const t_ARG_04& arg_04,
146237 const t_ARG_05& arg_05,
146238 const t_ARG_06& arg_06,
146239 const t_ARG_07& arg_07,
146241: Variant_Base(
146242 bsl::allocator_arg_t(),
146243 allocator,
146244 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146245 arg_01,
146246 arg_02,
146247 arg_03,
146248 arg_04,
146249 arg_05,
146250 arg_06,
146251 arg_07)
146252{
146253}
146254#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
146255
146256#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
146257template <class t_HEAD, class t_TAIL_01,
146258 class t_TAIL_02,
146259 class t_TAIL_03,
146260 class t_TAIL_04,
146261 class t_TAIL_05,
146262 class t_TAIL_06,
146263 class t_TAIL_07,
146264 class t_TAIL_08,
146265 class t_TAIL_09,
146266 class t_TAIL_10,
146267 class t_TAIL_11,
146268 class t_TAIL_12,
146269 class t_TAIL_13>
146270template <class t_TYPE,
146271 class t_ARG_01,
146272 class t_ARG_02,
146273 class t_ARG_03,
146274 class t_ARG_04,
146275 class t_ARG_05,
146276 class t_ARG_06,
146277 class t_ARG_07>
146278inline
146279variant<t_HEAD, t_TAIL_01,
146280 t_TAIL_02,
146281 t_TAIL_03,
146282 t_TAIL_04,
146283 t_TAIL_05,
146284 t_TAIL_06,
146285 t_TAIL_07,
146286 t_TAIL_08,
146287 t_TAIL_09,
146288 t_TAIL_10,
146289 t_TAIL_11,
146290 t_TAIL_12,
146291 t_TAIL_13,
146292 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
146293 bsl::allocator_arg_t,
146294 allocator_type allocator,
146296 const t_ARG_01& arg_01,
146297 const t_ARG_02& arg_02,
146298 const t_ARG_03& arg_03,
146299 const t_ARG_04& arg_04,
146300 const t_ARG_05& arg_05,
146301 const t_ARG_06& arg_06,
146302 const t_ARG_07& arg_07,
146304: Variant_Base(
146305 bsl::allocator_arg_t(),
146306 allocator,
146307 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146308 arg_01,
146309 arg_02,
146310 arg_03,
146311 arg_04,
146312 arg_05,
146313 arg_06,
146314 arg_07)
146315{
146316}
146317#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
146318
146319#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
146320template <class t_HEAD, class t_TAIL_01,
146321 class t_TAIL_02,
146322 class t_TAIL_03,
146323 class t_TAIL_04,
146324 class t_TAIL_05,
146325 class t_TAIL_06,
146326 class t_TAIL_07,
146327 class t_TAIL_08,
146328 class t_TAIL_09,
146329 class t_TAIL_10,
146330 class t_TAIL_11,
146331 class t_TAIL_12,
146332 class t_TAIL_13,
146333 class t_TAIL_14>
146334template <class t_TYPE,
146335 class t_ARG_01,
146336 class t_ARG_02,
146337 class t_ARG_03,
146338 class t_ARG_04,
146339 class t_ARG_05,
146340 class t_ARG_06,
146341 class t_ARG_07>
146342inline
146343variant<t_HEAD, t_TAIL_01,
146344 t_TAIL_02,
146345 t_TAIL_03,
146346 t_TAIL_04,
146347 t_TAIL_05,
146348 t_TAIL_06,
146349 t_TAIL_07,
146350 t_TAIL_08,
146351 t_TAIL_09,
146352 t_TAIL_10,
146353 t_TAIL_11,
146354 t_TAIL_12,
146355 t_TAIL_13,
146356 t_TAIL_14,
146357 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
146358 bsl::allocator_arg_t,
146359 allocator_type allocator,
146361 const t_ARG_01& arg_01,
146362 const t_ARG_02& arg_02,
146363 const t_ARG_03& arg_03,
146364 const t_ARG_04& arg_04,
146365 const t_ARG_05& arg_05,
146366 const t_ARG_06& arg_06,
146367 const t_ARG_07& arg_07,
146369: Variant_Base(
146370 bsl::allocator_arg_t(),
146371 allocator,
146372 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146373 arg_01,
146374 arg_02,
146375 arg_03,
146376 arg_04,
146377 arg_05,
146378 arg_06,
146379 arg_07)
146380{
146381}
146382#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
146383
146384#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
146385template <class t_HEAD, class t_TAIL_01,
146386 class t_TAIL_02,
146387 class t_TAIL_03,
146388 class t_TAIL_04,
146389 class t_TAIL_05,
146390 class t_TAIL_06,
146391 class t_TAIL_07,
146392 class t_TAIL_08,
146393 class t_TAIL_09,
146394 class t_TAIL_10,
146395 class t_TAIL_11,
146396 class t_TAIL_12,
146397 class t_TAIL_13,
146398 class t_TAIL_14,
146399 class t_TAIL_15>
146400template <class t_TYPE,
146401 class t_ARG_01,
146402 class t_ARG_02,
146403 class t_ARG_03,
146404 class t_ARG_04,
146405 class t_ARG_05,
146406 class t_ARG_06,
146407 class t_ARG_07>
146408inline
146409variant<t_HEAD, t_TAIL_01,
146410 t_TAIL_02,
146411 t_TAIL_03,
146412 t_TAIL_04,
146413 t_TAIL_05,
146414 t_TAIL_06,
146415 t_TAIL_07,
146416 t_TAIL_08,
146417 t_TAIL_09,
146418 t_TAIL_10,
146419 t_TAIL_11,
146420 t_TAIL_12,
146421 t_TAIL_13,
146422 t_TAIL_14,
146423 t_TAIL_15,
146424 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
146425 bsl::allocator_arg_t,
146426 allocator_type allocator,
146428 const t_ARG_01& arg_01,
146429 const t_ARG_02& arg_02,
146430 const t_ARG_03& arg_03,
146431 const t_ARG_04& arg_04,
146432 const t_ARG_05& arg_05,
146433 const t_ARG_06& arg_06,
146434 const t_ARG_07& arg_07,
146436: Variant_Base(
146437 bsl::allocator_arg_t(),
146438 allocator,
146439 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146440 arg_01,
146441 arg_02,
146442 arg_03,
146443 arg_04,
146444 arg_05,
146445 arg_06,
146446 arg_07)
146447{
146448}
146449#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
146450
146451#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
146452template <class t_HEAD, class t_TAIL_01,
146453 class t_TAIL_02,
146454 class t_TAIL_03,
146455 class t_TAIL_04,
146456 class t_TAIL_05,
146457 class t_TAIL_06,
146458 class t_TAIL_07,
146459 class t_TAIL_08,
146460 class t_TAIL_09,
146461 class t_TAIL_10,
146462 class t_TAIL_11,
146463 class t_TAIL_12,
146464 class t_TAIL_13,
146465 class t_TAIL_14,
146466 class t_TAIL_15,
146467 class t_TAIL_16>
146468template <class t_TYPE,
146469 class t_ARG_01,
146470 class t_ARG_02,
146471 class t_ARG_03,
146472 class t_ARG_04,
146473 class t_ARG_05,
146474 class t_ARG_06,
146475 class t_ARG_07>
146476inline
146477variant<t_HEAD, t_TAIL_01,
146478 t_TAIL_02,
146479 t_TAIL_03,
146480 t_TAIL_04,
146481 t_TAIL_05,
146482 t_TAIL_06,
146483 t_TAIL_07,
146484 t_TAIL_08,
146485 t_TAIL_09,
146486 t_TAIL_10,
146487 t_TAIL_11,
146488 t_TAIL_12,
146489 t_TAIL_13,
146490 t_TAIL_14,
146491 t_TAIL_15,
146492 t_TAIL_16,
146493 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
146494 bsl::allocator_arg_t,
146495 allocator_type allocator,
146497 const t_ARG_01& arg_01,
146498 const t_ARG_02& arg_02,
146499 const t_ARG_03& arg_03,
146500 const t_ARG_04& arg_04,
146501 const t_ARG_05& arg_05,
146502 const t_ARG_06& arg_06,
146503 const t_ARG_07& arg_07,
146505: Variant_Base(
146506 bsl::allocator_arg_t(),
146507 allocator,
146508 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146509 arg_01,
146510 arg_02,
146511 arg_03,
146512 arg_04,
146513 arg_05,
146514 arg_06,
146515 arg_07)
146516{
146517}
146518#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
146519
146520#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
146521template <class t_HEAD, class t_TAIL_01,
146522 class t_TAIL_02,
146523 class t_TAIL_03,
146524 class t_TAIL_04,
146525 class t_TAIL_05,
146526 class t_TAIL_06,
146527 class t_TAIL_07,
146528 class t_TAIL_08,
146529 class t_TAIL_09,
146530 class t_TAIL_10,
146531 class t_TAIL_11,
146532 class t_TAIL_12,
146533 class t_TAIL_13,
146534 class t_TAIL_14,
146535 class t_TAIL_15,
146536 class t_TAIL_16,
146537 class t_TAIL_17>
146538template <class t_TYPE,
146539 class t_ARG_01,
146540 class t_ARG_02,
146541 class t_ARG_03,
146542 class t_ARG_04,
146543 class t_ARG_05,
146544 class t_ARG_06,
146545 class t_ARG_07>
146546inline
146547variant<t_HEAD, t_TAIL_01,
146548 t_TAIL_02,
146549 t_TAIL_03,
146550 t_TAIL_04,
146551 t_TAIL_05,
146552 t_TAIL_06,
146553 t_TAIL_07,
146554 t_TAIL_08,
146555 t_TAIL_09,
146556 t_TAIL_10,
146557 t_TAIL_11,
146558 t_TAIL_12,
146559 t_TAIL_13,
146560 t_TAIL_14,
146561 t_TAIL_15,
146562 t_TAIL_16,
146563 t_TAIL_17,
146564 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
146565 bsl::allocator_arg_t,
146566 allocator_type allocator,
146568 const t_ARG_01& arg_01,
146569 const t_ARG_02& arg_02,
146570 const t_ARG_03& arg_03,
146571 const t_ARG_04& arg_04,
146572 const t_ARG_05& arg_05,
146573 const t_ARG_06& arg_06,
146574 const t_ARG_07& arg_07,
146576: Variant_Base(
146577 bsl::allocator_arg_t(),
146578 allocator,
146579 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146580 arg_01,
146581 arg_02,
146582 arg_03,
146583 arg_04,
146584 arg_05,
146585 arg_06,
146586 arg_07)
146587{
146588}
146589#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
146590
146591#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
146592template <class t_HEAD, class t_TAIL_01,
146593 class t_TAIL_02,
146594 class t_TAIL_03,
146595 class t_TAIL_04,
146596 class t_TAIL_05,
146597 class t_TAIL_06,
146598 class t_TAIL_07,
146599 class t_TAIL_08,
146600 class t_TAIL_09,
146601 class t_TAIL_10,
146602 class t_TAIL_11,
146603 class t_TAIL_12,
146604 class t_TAIL_13,
146605 class t_TAIL_14,
146606 class t_TAIL_15,
146607 class t_TAIL_16,
146608 class t_TAIL_17,
146609 class t_TAIL_18>
146610template <class t_TYPE,
146611 class t_ARG_01,
146612 class t_ARG_02,
146613 class t_ARG_03,
146614 class t_ARG_04,
146615 class t_ARG_05,
146616 class t_ARG_06,
146617 class t_ARG_07>
146618inline
146619variant<t_HEAD, t_TAIL_01,
146620 t_TAIL_02,
146621 t_TAIL_03,
146622 t_TAIL_04,
146623 t_TAIL_05,
146624 t_TAIL_06,
146625 t_TAIL_07,
146626 t_TAIL_08,
146627 t_TAIL_09,
146628 t_TAIL_10,
146629 t_TAIL_11,
146630 t_TAIL_12,
146631 t_TAIL_13,
146632 t_TAIL_14,
146633 t_TAIL_15,
146634 t_TAIL_16,
146635 t_TAIL_17,
146636 t_TAIL_18,
146637 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
146638 bsl::allocator_arg_t,
146639 allocator_type allocator,
146641 const t_ARG_01& arg_01,
146642 const t_ARG_02& arg_02,
146643 const t_ARG_03& arg_03,
146644 const t_ARG_04& arg_04,
146645 const t_ARG_05& arg_05,
146646 const t_ARG_06& arg_06,
146647 const t_ARG_07& arg_07,
146649: Variant_Base(
146650 bsl::allocator_arg_t(),
146651 allocator,
146652 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146653 arg_01,
146654 arg_02,
146655 arg_03,
146656 arg_04,
146657 arg_05,
146658 arg_06,
146659 arg_07)
146660{
146661}
146662#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
146663
146664
146665#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
146666template <class t_HEAD>
146667template <class t_TYPE,
146668 class t_ARG_01,
146669 class t_ARG_02,
146670 class t_ARG_03,
146671 class t_ARG_04,
146672 class t_ARG_05,
146673 class t_ARG_06,
146674 class t_ARG_07,
146675 class t_ARG_08>
146676inline
146677variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
146678 bsl::allocator_arg_t,
146679 allocator_type allocator,
146681 const t_ARG_01& arg_01,
146682 const t_ARG_02& arg_02,
146683 const t_ARG_03& arg_03,
146684 const t_ARG_04& arg_04,
146685 const t_ARG_05& arg_05,
146686 const t_ARG_06& arg_06,
146687 const t_ARG_07& arg_07,
146688 const t_ARG_08& arg_08,
146690: Variant_Base(
146691 bsl::allocator_arg_t(),
146692 allocator,
146693 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146694 arg_01,
146695 arg_02,
146696 arg_03,
146697 arg_04,
146698 arg_05,
146699 arg_06,
146700 arg_07,
146701 arg_08)
146702{
146703}
146704#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
146705
146706#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
146707template <class t_HEAD, class t_TAIL_01>
146708template <class t_TYPE,
146709 class t_ARG_01,
146710 class t_ARG_02,
146711 class t_ARG_03,
146712 class t_ARG_04,
146713 class t_ARG_05,
146714 class t_ARG_06,
146715 class t_ARG_07,
146716 class t_ARG_08>
146717inline
146718variant<t_HEAD, t_TAIL_01,
146719 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
146720 bsl::allocator_arg_t,
146721 allocator_type allocator,
146723 const t_ARG_01& arg_01,
146724 const t_ARG_02& arg_02,
146725 const t_ARG_03& arg_03,
146726 const t_ARG_04& arg_04,
146727 const t_ARG_05& arg_05,
146728 const t_ARG_06& arg_06,
146729 const t_ARG_07& arg_07,
146730 const t_ARG_08& arg_08,
146732: Variant_Base(
146733 bsl::allocator_arg_t(),
146734 allocator,
146735 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146736 arg_01,
146737 arg_02,
146738 arg_03,
146739 arg_04,
146740 arg_05,
146741 arg_06,
146742 arg_07,
146743 arg_08)
146744{
146745}
146746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
146747
146748#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
146749template <class t_HEAD, class t_TAIL_01,
146750 class t_TAIL_02>
146751template <class t_TYPE,
146752 class t_ARG_01,
146753 class t_ARG_02,
146754 class t_ARG_03,
146755 class t_ARG_04,
146756 class t_ARG_05,
146757 class t_ARG_06,
146758 class t_ARG_07,
146759 class t_ARG_08>
146760inline
146761variant<t_HEAD, t_TAIL_01,
146762 t_TAIL_02,
146763 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
146764 bsl::allocator_arg_t,
146765 allocator_type allocator,
146767 const t_ARG_01& arg_01,
146768 const t_ARG_02& arg_02,
146769 const t_ARG_03& arg_03,
146770 const t_ARG_04& arg_04,
146771 const t_ARG_05& arg_05,
146772 const t_ARG_06& arg_06,
146773 const t_ARG_07& arg_07,
146774 const t_ARG_08& arg_08,
146776: Variant_Base(
146777 bsl::allocator_arg_t(),
146778 allocator,
146779 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146780 arg_01,
146781 arg_02,
146782 arg_03,
146783 arg_04,
146784 arg_05,
146785 arg_06,
146786 arg_07,
146787 arg_08)
146788{
146789}
146790#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
146791
146792#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
146793template <class t_HEAD, class t_TAIL_01,
146794 class t_TAIL_02,
146795 class t_TAIL_03>
146796template <class t_TYPE,
146797 class t_ARG_01,
146798 class t_ARG_02,
146799 class t_ARG_03,
146800 class t_ARG_04,
146801 class t_ARG_05,
146802 class t_ARG_06,
146803 class t_ARG_07,
146804 class t_ARG_08>
146805inline
146806variant<t_HEAD, t_TAIL_01,
146807 t_TAIL_02,
146808 t_TAIL_03,
146809 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
146810 bsl::allocator_arg_t,
146811 allocator_type allocator,
146813 const t_ARG_01& arg_01,
146814 const t_ARG_02& arg_02,
146815 const t_ARG_03& arg_03,
146816 const t_ARG_04& arg_04,
146817 const t_ARG_05& arg_05,
146818 const t_ARG_06& arg_06,
146819 const t_ARG_07& arg_07,
146820 const t_ARG_08& arg_08,
146822: Variant_Base(
146823 bsl::allocator_arg_t(),
146824 allocator,
146825 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146826 arg_01,
146827 arg_02,
146828 arg_03,
146829 arg_04,
146830 arg_05,
146831 arg_06,
146832 arg_07,
146833 arg_08)
146834{
146835}
146836#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
146837
146838#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
146839template <class t_HEAD, class t_TAIL_01,
146840 class t_TAIL_02,
146841 class t_TAIL_03,
146842 class t_TAIL_04>
146843template <class t_TYPE,
146844 class t_ARG_01,
146845 class t_ARG_02,
146846 class t_ARG_03,
146847 class t_ARG_04,
146848 class t_ARG_05,
146849 class t_ARG_06,
146850 class t_ARG_07,
146851 class t_ARG_08>
146852inline
146853variant<t_HEAD, t_TAIL_01,
146854 t_TAIL_02,
146855 t_TAIL_03,
146856 t_TAIL_04,
146857 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
146858 bsl::allocator_arg_t,
146859 allocator_type allocator,
146861 const t_ARG_01& arg_01,
146862 const t_ARG_02& arg_02,
146863 const t_ARG_03& arg_03,
146864 const t_ARG_04& arg_04,
146865 const t_ARG_05& arg_05,
146866 const t_ARG_06& arg_06,
146867 const t_ARG_07& arg_07,
146868 const t_ARG_08& arg_08,
146870: Variant_Base(
146871 bsl::allocator_arg_t(),
146872 allocator,
146873 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146874 arg_01,
146875 arg_02,
146876 arg_03,
146877 arg_04,
146878 arg_05,
146879 arg_06,
146880 arg_07,
146881 arg_08)
146882{
146883}
146884#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
146885
146886#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
146887template <class t_HEAD, class t_TAIL_01,
146888 class t_TAIL_02,
146889 class t_TAIL_03,
146890 class t_TAIL_04,
146891 class t_TAIL_05>
146892template <class t_TYPE,
146893 class t_ARG_01,
146894 class t_ARG_02,
146895 class t_ARG_03,
146896 class t_ARG_04,
146897 class t_ARG_05,
146898 class t_ARG_06,
146899 class t_ARG_07,
146900 class t_ARG_08>
146901inline
146902variant<t_HEAD, t_TAIL_01,
146903 t_TAIL_02,
146904 t_TAIL_03,
146905 t_TAIL_04,
146906 t_TAIL_05,
146907 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
146908 bsl::allocator_arg_t,
146909 allocator_type allocator,
146911 const t_ARG_01& arg_01,
146912 const t_ARG_02& arg_02,
146913 const t_ARG_03& arg_03,
146914 const t_ARG_04& arg_04,
146915 const t_ARG_05& arg_05,
146916 const t_ARG_06& arg_06,
146917 const t_ARG_07& arg_07,
146918 const t_ARG_08& arg_08,
146920: Variant_Base(
146921 bsl::allocator_arg_t(),
146922 allocator,
146923 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146924 arg_01,
146925 arg_02,
146926 arg_03,
146927 arg_04,
146928 arg_05,
146929 arg_06,
146930 arg_07,
146931 arg_08)
146932{
146933}
146934#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
146935
146936#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
146937template <class t_HEAD, class t_TAIL_01,
146938 class t_TAIL_02,
146939 class t_TAIL_03,
146940 class t_TAIL_04,
146941 class t_TAIL_05,
146942 class t_TAIL_06>
146943template <class t_TYPE,
146944 class t_ARG_01,
146945 class t_ARG_02,
146946 class t_ARG_03,
146947 class t_ARG_04,
146948 class t_ARG_05,
146949 class t_ARG_06,
146950 class t_ARG_07,
146951 class t_ARG_08>
146952inline
146953variant<t_HEAD, t_TAIL_01,
146954 t_TAIL_02,
146955 t_TAIL_03,
146956 t_TAIL_04,
146957 t_TAIL_05,
146958 t_TAIL_06,
146959 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
146960 bsl::allocator_arg_t,
146961 allocator_type allocator,
146963 const t_ARG_01& arg_01,
146964 const t_ARG_02& arg_02,
146965 const t_ARG_03& arg_03,
146966 const t_ARG_04& arg_04,
146967 const t_ARG_05& arg_05,
146968 const t_ARG_06& arg_06,
146969 const t_ARG_07& arg_07,
146970 const t_ARG_08& arg_08,
146972: Variant_Base(
146973 bsl::allocator_arg_t(),
146974 allocator,
146975 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
146976 arg_01,
146977 arg_02,
146978 arg_03,
146979 arg_04,
146980 arg_05,
146981 arg_06,
146982 arg_07,
146983 arg_08)
146984{
146985}
146986#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
146987
146988#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
146989template <class t_HEAD, class t_TAIL_01,
146990 class t_TAIL_02,
146991 class t_TAIL_03,
146992 class t_TAIL_04,
146993 class t_TAIL_05,
146994 class t_TAIL_06,
146995 class t_TAIL_07>
146996template <class t_TYPE,
146997 class t_ARG_01,
146998 class t_ARG_02,
146999 class t_ARG_03,
147000 class t_ARG_04,
147001 class t_ARG_05,
147002 class t_ARG_06,
147003 class t_ARG_07,
147004 class t_ARG_08>
147005inline
147006variant<t_HEAD, t_TAIL_01,
147007 t_TAIL_02,
147008 t_TAIL_03,
147009 t_TAIL_04,
147010 t_TAIL_05,
147011 t_TAIL_06,
147012 t_TAIL_07,
147013 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
147014 bsl::allocator_arg_t,
147015 allocator_type allocator,
147017 const t_ARG_01& arg_01,
147018 const t_ARG_02& arg_02,
147019 const t_ARG_03& arg_03,
147020 const t_ARG_04& arg_04,
147021 const t_ARG_05& arg_05,
147022 const t_ARG_06& arg_06,
147023 const t_ARG_07& arg_07,
147024 const t_ARG_08& arg_08,
147026: Variant_Base(
147027 bsl::allocator_arg_t(),
147028 allocator,
147029 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147030 arg_01,
147031 arg_02,
147032 arg_03,
147033 arg_04,
147034 arg_05,
147035 arg_06,
147036 arg_07,
147037 arg_08)
147038{
147039}
147040#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
147041
147042#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
147043template <class t_HEAD, class t_TAIL_01,
147044 class t_TAIL_02,
147045 class t_TAIL_03,
147046 class t_TAIL_04,
147047 class t_TAIL_05,
147048 class t_TAIL_06,
147049 class t_TAIL_07,
147050 class t_TAIL_08>
147051template <class t_TYPE,
147052 class t_ARG_01,
147053 class t_ARG_02,
147054 class t_ARG_03,
147055 class t_ARG_04,
147056 class t_ARG_05,
147057 class t_ARG_06,
147058 class t_ARG_07,
147059 class t_ARG_08>
147060inline
147061variant<t_HEAD, t_TAIL_01,
147062 t_TAIL_02,
147063 t_TAIL_03,
147064 t_TAIL_04,
147065 t_TAIL_05,
147066 t_TAIL_06,
147067 t_TAIL_07,
147068 t_TAIL_08,
147069 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
147070 bsl::allocator_arg_t,
147071 allocator_type allocator,
147073 const t_ARG_01& arg_01,
147074 const t_ARG_02& arg_02,
147075 const t_ARG_03& arg_03,
147076 const t_ARG_04& arg_04,
147077 const t_ARG_05& arg_05,
147078 const t_ARG_06& arg_06,
147079 const t_ARG_07& arg_07,
147080 const t_ARG_08& arg_08,
147082: Variant_Base(
147083 bsl::allocator_arg_t(),
147084 allocator,
147085 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147086 arg_01,
147087 arg_02,
147088 arg_03,
147089 arg_04,
147090 arg_05,
147091 arg_06,
147092 arg_07,
147093 arg_08)
147094{
147095}
147096#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
147097
147098#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
147099template <class t_HEAD, class t_TAIL_01,
147100 class t_TAIL_02,
147101 class t_TAIL_03,
147102 class t_TAIL_04,
147103 class t_TAIL_05,
147104 class t_TAIL_06,
147105 class t_TAIL_07,
147106 class t_TAIL_08,
147107 class t_TAIL_09>
147108template <class t_TYPE,
147109 class t_ARG_01,
147110 class t_ARG_02,
147111 class t_ARG_03,
147112 class t_ARG_04,
147113 class t_ARG_05,
147114 class t_ARG_06,
147115 class t_ARG_07,
147116 class t_ARG_08>
147117inline
147118variant<t_HEAD, t_TAIL_01,
147119 t_TAIL_02,
147120 t_TAIL_03,
147121 t_TAIL_04,
147122 t_TAIL_05,
147123 t_TAIL_06,
147124 t_TAIL_07,
147125 t_TAIL_08,
147126 t_TAIL_09,
147127 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
147128 bsl::allocator_arg_t,
147129 allocator_type allocator,
147131 const t_ARG_01& arg_01,
147132 const t_ARG_02& arg_02,
147133 const t_ARG_03& arg_03,
147134 const t_ARG_04& arg_04,
147135 const t_ARG_05& arg_05,
147136 const t_ARG_06& arg_06,
147137 const t_ARG_07& arg_07,
147138 const t_ARG_08& arg_08,
147140: Variant_Base(
147141 bsl::allocator_arg_t(),
147142 allocator,
147143 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147144 arg_01,
147145 arg_02,
147146 arg_03,
147147 arg_04,
147148 arg_05,
147149 arg_06,
147150 arg_07,
147151 arg_08)
147152{
147153}
147154#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
147155
147156#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
147157template <class t_HEAD, class t_TAIL_01,
147158 class t_TAIL_02,
147159 class t_TAIL_03,
147160 class t_TAIL_04,
147161 class t_TAIL_05,
147162 class t_TAIL_06,
147163 class t_TAIL_07,
147164 class t_TAIL_08,
147165 class t_TAIL_09,
147166 class t_TAIL_10>
147167template <class t_TYPE,
147168 class t_ARG_01,
147169 class t_ARG_02,
147170 class t_ARG_03,
147171 class t_ARG_04,
147172 class t_ARG_05,
147173 class t_ARG_06,
147174 class t_ARG_07,
147175 class t_ARG_08>
147176inline
147177variant<t_HEAD, t_TAIL_01,
147178 t_TAIL_02,
147179 t_TAIL_03,
147180 t_TAIL_04,
147181 t_TAIL_05,
147182 t_TAIL_06,
147183 t_TAIL_07,
147184 t_TAIL_08,
147185 t_TAIL_09,
147186 t_TAIL_10,
147187 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
147188 bsl::allocator_arg_t,
147189 allocator_type allocator,
147191 const t_ARG_01& arg_01,
147192 const t_ARG_02& arg_02,
147193 const t_ARG_03& arg_03,
147194 const t_ARG_04& arg_04,
147195 const t_ARG_05& arg_05,
147196 const t_ARG_06& arg_06,
147197 const t_ARG_07& arg_07,
147198 const t_ARG_08& arg_08,
147200: Variant_Base(
147201 bsl::allocator_arg_t(),
147202 allocator,
147203 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147204 arg_01,
147205 arg_02,
147206 arg_03,
147207 arg_04,
147208 arg_05,
147209 arg_06,
147210 arg_07,
147211 arg_08)
147212{
147213}
147214#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
147215
147216#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
147217template <class t_HEAD, class t_TAIL_01,
147218 class t_TAIL_02,
147219 class t_TAIL_03,
147220 class t_TAIL_04,
147221 class t_TAIL_05,
147222 class t_TAIL_06,
147223 class t_TAIL_07,
147224 class t_TAIL_08,
147225 class t_TAIL_09,
147226 class t_TAIL_10,
147227 class t_TAIL_11>
147228template <class t_TYPE,
147229 class t_ARG_01,
147230 class t_ARG_02,
147231 class t_ARG_03,
147232 class t_ARG_04,
147233 class t_ARG_05,
147234 class t_ARG_06,
147235 class t_ARG_07,
147236 class t_ARG_08>
147237inline
147238variant<t_HEAD, t_TAIL_01,
147239 t_TAIL_02,
147240 t_TAIL_03,
147241 t_TAIL_04,
147242 t_TAIL_05,
147243 t_TAIL_06,
147244 t_TAIL_07,
147245 t_TAIL_08,
147246 t_TAIL_09,
147247 t_TAIL_10,
147248 t_TAIL_11,
147249 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
147250 bsl::allocator_arg_t,
147251 allocator_type allocator,
147253 const t_ARG_01& arg_01,
147254 const t_ARG_02& arg_02,
147255 const t_ARG_03& arg_03,
147256 const t_ARG_04& arg_04,
147257 const t_ARG_05& arg_05,
147258 const t_ARG_06& arg_06,
147259 const t_ARG_07& arg_07,
147260 const t_ARG_08& arg_08,
147262: Variant_Base(
147263 bsl::allocator_arg_t(),
147264 allocator,
147265 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147266 arg_01,
147267 arg_02,
147268 arg_03,
147269 arg_04,
147270 arg_05,
147271 arg_06,
147272 arg_07,
147273 arg_08)
147274{
147275}
147276#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
147277
147278#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
147279template <class t_HEAD, class t_TAIL_01,
147280 class t_TAIL_02,
147281 class t_TAIL_03,
147282 class t_TAIL_04,
147283 class t_TAIL_05,
147284 class t_TAIL_06,
147285 class t_TAIL_07,
147286 class t_TAIL_08,
147287 class t_TAIL_09,
147288 class t_TAIL_10,
147289 class t_TAIL_11,
147290 class t_TAIL_12>
147291template <class t_TYPE,
147292 class t_ARG_01,
147293 class t_ARG_02,
147294 class t_ARG_03,
147295 class t_ARG_04,
147296 class t_ARG_05,
147297 class t_ARG_06,
147298 class t_ARG_07,
147299 class t_ARG_08>
147300inline
147301variant<t_HEAD, t_TAIL_01,
147302 t_TAIL_02,
147303 t_TAIL_03,
147304 t_TAIL_04,
147305 t_TAIL_05,
147306 t_TAIL_06,
147307 t_TAIL_07,
147308 t_TAIL_08,
147309 t_TAIL_09,
147310 t_TAIL_10,
147311 t_TAIL_11,
147312 t_TAIL_12,
147313 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
147314 bsl::allocator_arg_t,
147315 allocator_type allocator,
147317 const t_ARG_01& arg_01,
147318 const t_ARG_02& arg_02,
147319 const t_ARG_03& arg_03,
147320 const t_ARG_04& arg_04,
147321 const t_ARG_05& arg_05,
147322 const t_ARG_06& arg_06,
147323 const t_ARG_07& arg_07,
147324 const t_ARG_08& arg_08,
147326: Variant_Base(
147327 bsl::allocator_arg_t(),
147328 allocator,
147329 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147330 arg_01,
147331 arg_02,
147332 arg_03,
147333 arg_04,
147334 arg_05,
147335 arg_06,
147336 arg_07,
147337 arg_08)
147338{
147339}
147340#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
147341
147342#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
147343template <class t_HEAD, class t_TAIL_01,
147344 class t_TAIL_02,
147345 class t_TAIL_03,
147346 class t_TAIL_04,
147347 class t_TAIL_05,
147348 class t_TAIL_06,
147349 class t_TAIL_07,
147350 class t_TAIL_08,
147351 class t_TAIL_09,
147352 class t_TAIL_10,
147353 class t_TAIL_11,
147354 class t_TAIL_12,
147355 class t_TAIL_13>
147356template <class t_TYPE,
147357 class t_ARG_01,
147358 class t_ARG_02,
147359 class t_ARG_03,
147360 class t_ARG_04,
147361 class t_ARG_05,
147362 class t_ARG_06,
147363 class t_ARG_07,
147364 class t_ARG_08>
147365inline
147366variant<t_HEAD, t_TAIL_01,
147367 t_TAIL_02,
147368 t_TAIL_03,
147369 t_TAIL_04,
147370 t_TAIL_05,
147371 t_TAIL_06,
147372 t_TAIL_07,
147373 t_TAIL_08,
147374 t_TAIL_09,
147375 t_TAIL_10,
147376 t_TAIL_11,
147377 t_TAIL_12,
147378 t_TAIL_13,
147379 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
147380 bsl::allocator_arg_t,
147381 allocator_type allocator,
147383 const t_ARG_01& arg_01,
147384 const t_ARG_02& arg_02,
147385 const t_ARG_03& arg_03,
147386 const t_ARG_04& arg_04,
147387 const t_ARG_05& arg_05,
147388 const t_ARG_06& arg_06,
147389 const t_ARG_07& arg_07,
147390 const t_ARG_08& arg_08,
147392: Variant_Base(
147393 bsl::allocator_arg_t(),
147394 allocator,
147395 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147396 arg_01,
147397 arg_02,
147398 arg_03,
147399 arg_04,
147400 arg_05,
147401 arg_06,
147402 arg_07,
147403 arg_08)
147404{
147405}
147406#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
147407
147408#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
147409template <class t_HEAD, class t_TAIL_01,
147410 class t_TAIL_02,
147411 class t_TAIL_03,
147412 class t_TAIL_04,
147413 class t_TAIL_05,
147414 class t_TAIL_06,
147415 class t_TAIL_07,
147416 class t_TAIL_08,
147417 class t_TAIL_09,
147418 class t_TAIL_10,
147419 class t_TAIL_11,
147420 class t_TAIL_12,
147421 class t_TAIL_13,
147422 class t_TAIL_14>
147423template <class t_TYPE,
147424 class t_ARG_01,
147425 class t_ARG_02,
147426 class t_ARG_03,
147427 class t_ARG_04,
147428 class t_ARG_05,
147429 class t_ARG_06,
147430 class t_ARG_07,
147431 class t_ARG_08>
147432inline
147433variant<t_HEAD, t_TAIL_01,
147434 t_TAIL_02,
147435 t_TAIL_03,
147436 t_TAIL_04,
147437 t_TAIL_05,
147438 t_TAIL_06,
147439 t_TAIL_07,
147440 t_TAIL_08,
147441 t_TAIL_09,
147442 t_TAIL_10,
147443 t_TAIL_11,
147444 t_TAIL_12,
147445 t_TAIL_13,
147446 t_TAIL_14,
147447 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
147448 bsl::allocator_arg_t,
147449 allocator_type allocator,
147451 const t_ARG_01& arg_01,
147452 const t_ARG_02& arg_02,
147453 const t_ARG_03& arg_03,
147454 const t_ARG_04& arg_04,
147455 const t_ARG_05& arg_05,
147456 const t_ARG_06& arg_06,
147457 const t_ARG_07& arg_07,
147458 const t_ARG_08& arg_08,
147460: Variant_Base(
147461 bsl::allocator_arg_t(),
147462 allocator,
147463 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147464 arg_01,
147465 arg_02,
147466 arg_03,
147467 arg_04,
147468 arg_05,
147469 arg_06,
147470 arg_07,
147471 arg_08)
147472{
147473}
147474#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
147475
147476#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
147477template <class t_HEAD, class t_TAIL_01,
147478 class t_TAIL_02,
147479 class t_TAIL_03,
147480 class t_TAIL_04,
147481 class t_TAIL_05,
147482 class t_TAIL_06,
147483 class t_TAIL_07,
147484 class t_TAIL_08,
147485 class t_TAIL_09,
147486 class t_TAIL_10,
147487 class t_TAIL_11,
147488 class t_TAIL_12,
147489 class t_TAIL_13,
147490 class t_TAIL_14,
147491 class t_TAIL_15>
147492template <class t_TYPE,
147493 class t_ARG_01,
147494 class t_ARG_02,
147495 class t_ARG_03,
147496 class t_ARG_04,
147497 class t_ARG_05,
147498 class t_ARG_06,
147499 class t_ARG_07,
147500 class t_ARG_08>
147501inline
147502variant<t_HEAD, t_TAIL_01,
147503 t_TAIL_02,
147504 t_TAIL_03,
147505 t_TAIL_04,
147506 t_TAIL_05,
147507 t_TAIL_06,
147508 t_TAIL_07,
147509 t_TAIL_08,
147510 t_TAIL_09,
147511 t_TAIL_10,
147512 t_TAIL_11,
147513 t_TAIL_12,
147514 t_TAIL_13,
147515 t_TAIL_14,
147516 t_TAIL_15,
147517 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
147518 bsl::allocator_arg_t,
147519 allocator_type allocator,
147521 const t_ARG_01& arg_01,
147522 const t_ARG_02& arg_02,
147523 const t_ARG_03& arg_03,
147524 const t_ARG_04& arg_04,
147525 const t_ARG_05& arg_05,
147526 const t_ARG_06& arg_06,
147527 const t_ARG_07& arg_07,
147528 const t_ARG_08& arg_08,
147530: Variant_Base(
147531 bsl::allocator_arg_t(),
147532 allocator,
147533 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147534 arg_01,
147535 arg_02,
147536 arg_03,
147537 arg_04,
147538 arg_05,
147539 arg_06,
147540 arg_07,
147541 arg_08)
147542{
147543}
147544#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
147545
147546#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
147547template <class t_HEAD, class t_TAIL_01,
147548 class t_TAIL_02,
147549 class t_TAIL_03,
147550 class t_TAIL_04,
147551 class t_TAIL_05,
147552 class t_TAIL_06,
147553 class t_TAIL_07,
147554 class t_TAIL_08,
147555 class t_TAIL_09,
147556 class t_TAIL_10,
147557 class t_TAIL_11,
147558 class t_TAIL_12,
147559 class t_TAIL_13,
147560 class t_TAIL_14,
147561 class t_TAIL_15,
147562 class t_TAIL_16>
147563template <class t_TYPE,
147564 class t_ARG_01,
147565 class t_ARG_02,
147566 class t_ARG_03,
147567 class t_ARG_04,
147568 class t_ARG_05,
147569 class t_ARG_06,
147570 class t_ARG_07,
147571 class t_ARG_08>
147572inline
147573variant<t_HEAD, t_TAIL_01,
147574 t_TAIL_02,
147575 t_TAIL_03,
147576 t_TAIL_04,
147577 t_TAIL_05,
147578 t_TAIL_06,
147579 t_TAIL_07,
147580 t_TAIL_08,
147581 t_TAIL_09,
147582 t_TAIL_10,
147583 t_TAIL_11,
147584 t_TAIL_12,
147585 t_TAIL_13,
147586 t_TAIL_14,
147587 t_TAIL_15,
147588 t_TAIL_16,
147589 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
147590 bsl::allocator_arg_t,
147591 allocator_type allocator,
147593 const t_ARG_01& arg_01,
147594 const t_ARG_02& arg_02,
147595 const t_ARG_03& arg_03,
147596 const t_ARG_04& arg_04,
147597 const t_ARG_05& arg_05,
147598 const t_ARG_06& arg_06,
147599 const t_ARG_07& arg_07,
147600 const t_ARG_08& arg_08,
147602: Variant_Base(
147603 bsl::allocator_arg_t(),
147604 allocator,
147605 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147606 arg_01,
147607 arg_02,
147608 arg_03,
147609 arg_04,
147610 arg_05,
147611 arg_06,
147612 arg_07,
147613 arg_08)
147614{
147615}
147616#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
147617
147618#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
147619template <class t_HEAD, class t_TAIL_01,
147620 class t_TAIL_02,
147621 class t_TAIL_03,
147622 class t_TAIL_04,
147623 class t_TAIL_05,
147624 class t_TAIL_06,
147625 class t_TAIL_07,
147626 class t_TAIL_08,
147627 class t_TAIL_09,
147628 class t_TAIL_10,
147629 class t_TAIL_11,
147630 class t_TAIL_12,
147631 class t_TAIL_13,
147632 class t_TAIL_14,
147633 class t_TAIL_15,
147634 class t_TAIL_16,
147635 class t_TAIL_17>
147636template <class t_TYPE,
147637 class t_ARG_01,
147638 class t_ARG_02,
147639 class t_ARG_03,
147640 class t_ARG_04,
147641 class t_ARG_05,
147642 class t_ARG_06,
147643 class t_ARG_07,
147644 class t_ARG_08>
147645inline
147646variant<t_HEAD, t_TAIL_01,
147647 t_TAIL_02,
147648 t_TAIL_03,
147649 t_TAIL_04,
147650 t_TAIL_05,
147651 t_TAIL_06,
147652 t_TAIL_07,
147653 t_TAIL_08,
147654 t_TAIL_09,
147655 t_TAIL_10,
147656 t_TAIL_11,
147657 t_TAIL_12,
147658 t_TAIL_13,
147659 t_TAIL_14,
147660 t_TAIL_15,
147661 t_TAIL_16,
147662 t_TAIL_17,
147663 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
147664 bsl::allocator_arg_t,
147665 allocator_type allocator,
147667 const t_ARG_01& arg_01,
147668 const t_ARG_02& arg_02,
147669 const t_ARG_03& arg_03,
147670 const t_ARG_04& arg_04,
147671 const t_ARG_05& arg_05,
147672 const t_ARG_06& arg_06,
147673 const t_ARG_07& arg_07,
147674 const t_ARG_08& arg_08,
147676: Variant_Base(
147677 bsl::allocator_arg_t(),
147678 allocator,
147679 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147680 arg_01,
147681 arg_02,
147682 arg_03,
147683 arg_04,
147684 arg_05,
147685 arg_06,
147686 arg_07,
147687 arg_08)
147688{
147689}
147690#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
147691
147692#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
147693template <class t_HEAD, class t_TAIL_01,
147694 class t_TAIL_02,
147695 class t_TAIL_03,
147696 class t_TAIL_04,
147697 class t_TAIL_05,
147698 class t_TAIL_06,
147699 class t_TAIL_07,
147700 class t_TAIL_08,
147701 class t_TAIL_09,
147702 class t_TAIL_10,
147703 class t_TAIL_11,
147704 class t_TAIL_12,
147705 class t_TAIL_13,
147706 class t_TAIL_14,
147707 class t_TAIL_15,
147708 class t_TAIL_16,
147709 class t_TAIL_17,
147710 class t_TAIL_18>
147711template <class t_TYPE,
147712 class t_ARG_01,
147713 class t_ARG_02,
147714 class t_ARG_03,
147715 class t_ARG_04,
147716 class t_ARG_05,
147717 class t_ARG_06,
147718 class t_ARG_07,
147719 class t_ARG_08>
147720inline
147721variant<t_HEAD, t_TAIL_01,
147722 t_TAIL_02,
147723 t_TAIL_03,
147724 t_TAIL_04,
147725 t_TAIL_05,
147726 t_TAIL_06,
147727 t_TAIL_07,
147728 t_TAIL_08,
147729 t_TAIL_09,
147730 t_TAIL_10,
147731 t_TAIL_11,
147732 t_TAIL_12,
147733 t_TAIL_13,
147734 t_TAIL_14,
147735 t_TAIL_15,
147736 t_TAIL_16,
147737 t_TAIL_17,
147738 t_TAIL_18,
147739 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
147740 bsl::allocator_arg_t,
147741 allocator_type allocator,
147743 const t_ARG_01& arg_01,
147744 const t_ARG_02& arg_02,
147745 const t_ARG_03& arg_03,
147746 const t_ARG_04& arg_04,
147747 const t_ARG_05& arg_05,
147748 const t_ARG_06& arg_06,
147749 const t_ARG_07& arg_07,
147750 const t_ARG_08& arg_08,
147752: Variant_Base(
147753 bsl::allocator_arg_t(),
147754 allocator,
147755 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147756 arg_01,
147757 arg_02,
147758 arg_03,
147759 arg_04,
147760 arg_05,
147761 arg_06,
147762 arg_07,
147763 arg_08)
147764{
147765}
147766#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
147767
147768
147769#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
147770template <class t_HEAD>
147771template <class t_TYPE,
147772 class t_ARG_01,
147773 class t_ARG_02,
147774 class t_ARG_03,
147775 class t_ARG_04,
147776 class t_ARG_05,
147777 class t_ARG_06,
147778 class t_ARG_07,
147779 class t_ARG_08,
147780 class t_ARG_09>
147781inline
147782variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
147783 bsl::allocator_arg_t,
147784 allocator_type allocator,
147786 const t_ARG_01& arg_01,
147787 const t_ARG_02& arg_02,
147788 const t_ARG_03& arg_03,
147789 const t_ARG_04& arg_04,
147790 const t_ARG_05& arg_05,
147791 const t_ARG_06& arg_06,
147792 const t_ARG_07& arg_07,
147793 const t_ARG_08& arg_08,
147794 const t_ARG_09& arg_09,
147796: Variant_Base(
147797 bsl::allocator_arg_t(),
147798 allocator,
147799 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147800 arg_01,
147801 arg_02,
147802 arg_03,
147803 arg_04,
147804 arg_05,
147805 arg_06,
147806 arg_07,
147807 arg_08,
147808 arg_09)
147809{
147810}
147811#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
147812
147813#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
147814template <class t_HEAD, class t_TAIL_01>
147815template <class t_TYPE,
147816 class t_ARG_01,
147817 class t_ARG_02,
147818 class t_ARG_03,
147819 class t_ARG_04,
147820 class t_ARG_05,
147821 class t_ARG_06,
147822 class t_ARG_07,
147823 class t_ARG_08,
147824 class t_ARG_09>
147825inline
147826variant<t_HEAD, t_TAIL_01,
147827 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
147828 bsl::allocator_arg_t,
147829 allocator_type allocator,
147831 const t_ARG_01& arg_01,
147832 const t_ARG_02& arg_02,
147833 const t_ARG_03& arg_03,
147834 const t_ARG_04& arg_04,
147835 const t_ARG_05& arg_05,
147836 const t_ARG_06& arg_06,
147837 const t_ARG_07& arg_07,
147838 const t_ARG_08& arg_08,
147839 const t_ARG_09& arg_09,
147841: Variant_Base(
147842 bsl::allocator_arg_t(),
147843 allocator,
147844 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147845 arg_01,
147846 arg_02,
147847 arg_03,
147848 arg_04,
147849 arg_05,
147850 arg_06,
147851 arg_07,
147852 arg_08,
147853 arg_09)
147854{
147855}
147856#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
147857
147858#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
147859template <class t_HEAD, class t_TAIL_01,
147860 class t_TAIL_02>
147861template <class t_TYPE,
147862 class t_ARG_01,
147863 class t_ARG_02,
147864 class t_ARG_03,
147865 class t_ARG_04,
147866 class t_ARG_05,
147867 class t_ARG_06,
147868 class t_ARG_07,
147869 class t_ARG_08,
147870 class t_ARG_09>
147871inline
147872variant<t_HEAD, t_TAIL_01,
147873 t_TAIL_02,
147874 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
147875 bsl::allocator_arg_t,
147876 allocator_type allocator,
147878 const t_ARG_01& arg_01,
147879 const t_ARG_02& arg_02,
147880 const t_ARG_03& arg_03,
147881 const t_ARG_04& arg_04,
147882 const t_ARG_05& arg_05,
147883 const t_ARG_06& arg_06,
147884 const t_ARG_07& arg_07,
147885 const t_ARG_08& arg_08,
147886 const t_ARG_09& arg_09,
147888: Variant_Base(
147889 bsl::allocator_arg_t(),
147890 allocator,
147891 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147892 arg_01,
147893 arg_02,
147894 arg_03,
147895 arg_04,
147896 arg_05,
147897 arg_06,
147898 arg_07,
147899 arg_08,
147900 arg_09)
147901{
147902}
147903#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
147904
147905#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
147906template <class t_HEAD, class t_TAIL_01,
147907 class t_TAIL_02,
147908 class t_TAIL_03>
147909template <class t_TYPE,
147910 class t_ARG_01,
147911 class t_ARG_02,
147912 class t_ARG_03,
147913 class t_ARG_04,
147914 class t_ARG_05,
147915 class t_ARG_06,
147916 class t_ARG_07,
147917 class t_ARG_08,
147918 class t_ARG_09>
147919inline
147920variant<t_HEAD, t_TAIL_01,
147921 t_TAIL_02,
147922 t_TAIL_03,
147923 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
147924 bsl::allocator_arg_t,
147925 allocator_type allocator,
147927 const t_ARG_01& arg_01,
147928 const t_ARG_02& arg_02,
147929 const t_ARG_03& arg_03,
147930 const t_ARG_04& arg_04,
147931 const t_ARG_05& arg_05,
147932 const t_ARG_06& arg_06,
147933 const t_ARG_07& arg_07,
147934 const t_ARG_08& arg_08,
147935 const t_ARG_09& arg_09,
147937: Variant_Base(
147938 bsl::allocator_arg_t(),
147939 allocator,
147940 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147941 arg_01,
147942 arg_02,
147943 arg_03,
147944 arg_04,
147945 arg_05,
147946 arg_06,
147947 arg_07,
147948 arg_08,
147949 arg_09)
147950{
147951}
147952#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
147953
147954#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
147955template <class t_HEAD, class t_TAIL_01,
147956 class t_TAIL_02,
147957 class t_TAIL_03,
147958 class t_TAIL_04>
147959template <class t_TYPE,
147960 class t_ARG_01,
147961 class t_ARG_02,
147962 class t_ARG_03,
147963 class t_ARG_04,
147964 class t_ARG_05,
147965 class t_ARG_06,
147966 class t_ARG_07,
147967 class t_ARG_08,
147968 class t_ARG_09>
147969inline
147970variant<t_HEAD, t_TAIL_01,
147971 t_TAIL_02,
147972 t_TAIL_03,
147973 t_TAIL_04,
147974 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
147975 bsl::allocator_arg_t,
147976 allocator_type allocator,
147978 const t_ARG_01& arg_01,
147979 const t_ARG_02& arg_02,
147980 const t_ARG_03& arg_03,
147981 const t_ARG_04& arg_04,
147982 const t_ARG_05& arg_05,
147983 const t_ARG_06& arg_06,
147984 const t_ARG_07& arg_07,
147985 const t_ARG_08& arg_08,
147986 const t_ARG_09& arg_09,
147988: Variant_Base(
147989 bsl::allocator_arg_t(),
147990 allocator,
147991 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
147992 arg_01,
147993 arg_02,
147994 arg_03,
147995 arg_04,
147996 arg_05,
147997 arg_06,
147998 arg_07,
147999 arg_08,
148000 arg_09)
148001{
148002}
148003#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
148004
148005#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
148006template <class t_HEAD, class t_TAIL_01,
148007 class t_TAIL_02,
148008 class t_TAIL_03,
148009 class t_TAIL_04,
148010 class t_TAIL_05>
148011template <class t_TYPE,
148012 class t_ARG_01,
148013 class t_ARG_02,
148014 class t_ARG_03,
148015 class t_ARG_04,
148016 class t_ARG_05,
148017 class t_ARG_06,
148018 class t_ARG_07,
148019 class t_ARG_08,
148020 class t_ARG_09>
148021inline
148022variant<t_HEAD, t_TAIL_01,
148023 t_TAIL_02,
148024 t_TAIL_03,
148025 t_TAIL_04,
148026 t_TAIL_05,
148027 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
148028 bsl::allocator_arg_t,
148029 allocator_type allocator,
148031 const t_ARG_01& arg_01,
148032 const t_ARG_02& arg_02,
148033 const t_ARG_03& arg_03,
148034 const t_ARG_04& arg_04,
148035 const t_ARG_05& arg_05,
148036 const t_ARG_06& arg_06,
148037 const t_ARG_07& arg_07,
148038 const t_ARG_08& arg_08,
148039 const t_ARG_09& arg_09,
148041: Variant_Base(
148042 bsl::allocator_arg_t(),
148043 allocator,
148044 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148045 arg_01,
148046 arg_02,
148047 arg_03,
148048 arg_04,
148049 arg_05,
148050 arg_06,
148051 arg_07,
148052 arg_08,
148053 arg_09)
148054{
148055}
148056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
148057
148058#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
148059template <class t_HEAD, class t_TAIL_01,
148060 class t_TAIL_02,
148061 class t_TAIL_03,
148062 class t_TAIL_04,
148063 class t_TAIL_05,
148064 class t_TAIL_06>
148065template <class t_TYPE,
148066 class t_ARG_01,
148067 class t_ARG_02,
148068 class t_ARG_03,
148069 class t_ARG_04,
148070 class t_ARG_05,
148071 class t_ARG_06,
148072 class t_ARG_07,
148073 class t_ARG_08,
148074 class t_ARG_09>
148075inline
148076variant<t_HEAD, t_TAIL_01,
148077 t_TAIL_02,
148078 t_TAIL_03,
148079 t_TAIL_04,
148080 t_TAIL_05,
148081 t_TAIL_06,
148082 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
148083 bsl::allocator_arg_t,
148084 allocator_type allocator,
148086 const t_ARG_01& arg_01,
148087 const t_ARG_02& arg_02,
148088 const t_ARG_03& arg_03,
148089 const t_ARG_04& arg_04,
148090 const t_ARG_05& arg_05,
148091 const t_ARG_06& arg_06,
148092 const t_ARG_07& arg_07,
148093 const t_ARG_08& arg_08,
148094 const t_ARG_09& arg_09,
148096: Variant_Base(
148097 bsl::allocator_arg_t(),
148098 allocator,
148099 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148100 arg_01,
148101 arg_02,
148102 arg_03,
148103 arg_04,
148104 arg_05,
148105 arg_06,
148106 arg_07,
148107 arg_08,
148108 arg_09)
148109{
148110}
148111#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
148112
148113#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
148114template <class t_HEAD, class t_TAIL_01,
148115 class t_TAIL_02,
148116 class t_TAIL_03,
148117 class t_TAIL_04,
148118 class t_TAIL_05,
148119 class t_TAIL_06,
148120 class t_TAIL_07>
148121template <class t_TYPE,
148122 class t_ARG_01,
148123 class t_ARG_02,
148124 class t_ARG_03,
148125 class t_ARG_04,
148126 class t_ARG_05,
148127 class t_ARG_06,
148128 class t_ARG_07,
148129 class t_ARG_08,
148130 class t_ARG_09>
148131inline
148132variant<t_HEAD, t_TAIL_01,
148133 t_TAIL_02,
148134 t_TAIL_03,
148135 t_TAIL_04,
148136 t_TAIL_05,
148137 t_TAIL_06,
148138 t_TAIL_07,
148139 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
148140 bsl::allocator_arg_t,
148141 allocator_type allocator,
148143 const t_ARG_01& arg_01,
148144 const t_ARG_02& arg_02,
148145 const t_ARG_03& arg_03,
148146 const t_ARG_04& arg_04,
148147 const t_ARG_05& arg_05,
148148 const t_ARG_06& arg_06,
148149 const t_ARG_07& arg_07,
148150 const t_ARG_08& arg_08,
148151 const t_ARG_09& arg_09,
148153: Variant_Base(
148154 bsl::allocator_arg_t(),
148155 allocator,
148156 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148157 arg_01,
148158 arg_02,
148159 arg_03,
148160 arg_04,
148161 arg_05,
148162 arg_06,
148163 arg_07,
148164 arg_08,
148165 arg_09)
148166{
148167}
148168#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
148169
148170#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
148171template <class t_HEAD, class t_TAIL_01,
148172 class t_TAIL_02,
148173 class t_TAIL_03,
148174 class t_TAIL_04,
148175 class t_TAIL_05,
148176 class t_TAIL_06,
148177 class t_TAIL_07,
148178 class t_TAIL_08>
148179template <class t_TYPE,
148180 class t_ARG_01,
148181 class t_ARG_02,
148182 class t_ARG_03,
148183 class t_ARG_04,
148184 class t_ARG_05,
148185 class t_ARG_06,
148186 class t_ARG_07,
148187 class t_ARG_08,
148188 class t_ARG_09>
148189inline
148190variant<t_HEAD, t_TAIL_01,
148191 t_TAIL_02,
148192 t_TAIL_03,
148193 t_TAIL_04,
148194 t_TAIL_05,
148195 t_TAIL_06,
148196 t_TAIL_07,
148197 t_TAIL_08,
148198 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
148199 bsl::allocator_arg_t,
148200 allocator_type allocator,
148202 const t_ARG_01& arg_01,
148203 const t_ARG_02& arg_02,
148204 const t_ARG_03& arg_03,
148205 const t_ARG_04& arg_04,
148206 const t_ARG_05& arg_05,
148207 const t_ARG_06& arg_06,
148208 const t_ARG_07& arg_07,
148209 const t_ARG_08& arg_08,
148210 const t_ARG_09& arg_09,
148212: Variant_Base(
148213 bsl::allocator_arg_t(),
148214 allocator,
148215 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148216 arg_01,
148217 arg_02,
148218 arg_03,
148219 arg_04,
148220 arg_05,
148221 arg_06,
148222 arg_07,
148223 arg_08,
148224 arg_09)
148225{
148226}
148227#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
148228
148229#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
148230template <class t_HEAD, class t_TAIL_01,
148231 class t_TAIL_02,
148232 class t_TAIL_03,
148233 class t_TAIL_04,
148234 class t_TAIL_05,
148235 class t_TAIL_06,
148236 class t_TAIL_07,
148237 class t_TAIL_08,
148238 class t_TAIL_09>
148239template <class t_TYPE,
148240 class t_ARG_01,
148241 class t_ARG_02,
148242 class t_ARG_03,
148243 class t_ARG_04,
148244 class t_ARG_05,
148245 class t_ARG_06,
148246 class t_ARG_07,
148247 class t_ARG_08,
148248 class t_ARG_09>
148249inline
148250variant<t_HEAD, t_TAIL_01,
148251 t_TAIL_02,
148252 t_TAIL_03,
148253 t_TAIL_04,
148254 t_TAIL_05,
148255 t_TAIL_06,
148256 t_TAIL_07,
148257 t_TAIL_08,
148258 t_TAIL_09,
148259 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
148260 bsl::allocator_arg_t,
148261 allocator_type allocator,
148263 const t_ARG_01& arg_01,
148264 const t_ARG_02& arg_02,
148265 const t_ARG_03& arg_03,
148266 const t_ARG_04& arg_04,
148267 const t_ARG_05& arg_05,
148268 const t_ARG_06& arg_06,
148269 const t_ARG_07& arg_07,
148270 const t_ARG_08& arg_08,
148271 const t_ARG_09& arg_09,
148273: Variant_Base(
148274 bsl::allocator_arg_t(),
148275 allocator,
148276 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148277 arg_01,
148278 arg_02,
148279 arg_03,
148280 arg_04,
148281 arg_05,
148282 arg_06,
148283 arg_07,
148284 arg_08,
148285 arg_09)
148286{
148287}
148288#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
148289
148290#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
148291template <class t_HEAD, class t_TAIL_01,
148292 class t_TAIL_02,
148293 class t_TAIL_03,
148294 class t_TAIL_04,
148295 class t_TAIL_05,
148296 class t_TAIL_06,
148297 class t_TAIL_07,
148298 class t_TAIL_08,
148299 class t_TAIL_09,
148300 class t_TAIL_10>
148301template <class t_TYPE,
148302 class t_ARG_01,
148303 class t_ARG_02,
148304 class t_ARG_03,
148305 class t_ARG_04,
148306 class t_ARG_05,
148307 class t_ARG_06,
148308 class t_ARG_07,
148309 class t_ARG_08,
148310 class t_ARG_09>
148311inline
148312variant<t_HEAD, t_TAIL_01,
148313 t_TAIL_02,
148314 t_TAIL_03,
148315 t_TAIL_04,
148316 t_TAIL_05,
148317 t_TAIL_06,
148318 t_TAIL_07,
148319 t_TAIL_08,
148320 t_TAIL_09,
148321 t_TAIL_10,
148322 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
148323 bsl::allocator_arg_t,
148324 allocator_type allocator,
148326 const t_ARG_01& arg_01,
148327 const t_ARG_02& arg_02,
148328 const t_ARG_03& arg_03,
148329 const t_ARG_04& arg_04,
148330 const t_ARG_05& arg_05,
148331 const t_ARG_06& arg_06,
148332 const t_ARG_07& arg_07,
148333 const t_ARG_08& arg_08,
148334 const t_ARG_09& arg_09,
148336: Variant_Base(
148337 bsl::allocator_arg_t(),
148338 allocator,
148339 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148340 arg_01,
148341 arg_02,
148342 arg_03,
148343 arg_04,
148344 arg_05,
148345 arg_06,
148346 arg_07,
148347 arg_08,
148348 arg_09)
148349{
148350}
148351#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
148352
148353#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
148354template <class t_HEAD, class t_TAIL_01,
148355 class t_TAIL_02,
148356 class t_TAIL_03,
148357 class t_TAIL_04,
148358 class t_TAIL_05,
148359 class t_TAIL_06,
148360 class t_TAIL_07,
148361 class t_TAIL_08,
148362 class t_TAIL_09,
148363 class t_TAIL_10,
148364 class t_TAIL_11>
148365template <class t_TYPE,
148366 class t_ARG_01,
148367 class t_ARG_02,
148368 class t_ARG_03,
148369 class t_ARG_04,
148370 class t_ARG_05,
148371 class t_ARG_06,
148372 class t_ARG_07,
148373 class t_ARG_08,
148374 class t_ARG_09>
148375inline
148376variant<t_HEAD, t_TAIL_01,
148377 t_TAIL_02,
148378 t_TAIL_03,
148379 t_TAIL_04,
148380 t_TAIL_05,
148381 t_TAIL_06,
148382 t_TAIL_07,
148383 t_TAIL_08,
148384 t_TAIL_09,
148385 t_TAIL_10,
148386 t_TAIL_11,
148387 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
148388 bsl::allocator_arg_t,
148389 allocator_type allocator,
148391 const t_ARG_01& arg_01,
148392 const t_ARG_02& arg_02,
148393 const t_ARG_03& arg_03,
148394 const t_ARG_04& arg_04,
148395 const t_ARG_05& arg_05,
148396 const t_ARG_06& arg_06,
148397 const t_ARG_07& arg_07,
148398 const t_ARG_08& arg_08,
148399 const t_ARG_09& arg_09,
148401: Variant_Base(
148402 bsl::allocator_arg_t(),
148403 allocator,
148404 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148405 arg_01,
148406 arg_02,
148407 arg_03,
148408 arg_04,
148409 arg_05,
148410 arg_06,
148411 arg_07,
148412 arg_08,
148413 arg_09)
148414{
148415}
148416#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
148417
148418#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
148419template <class t_HEAD, class t_TAIL_01,
148420 class t_TAIL_02,
148421 class t_TAIL_03,
148422 class t_TAIL_04,
148423 class t_TAIL_05,
148424 class t_TAIL_06,
148425 class t_TAIL_07,
148426 class t_TAIL_08,
148427 class t_TAIL_09,
148428 class t_TAIL_10,
148429 class t_TAIL_11,
148430 class t_TAIL_12>
148431template <class t_TYPE,
148432 class t_ARG_01,
148433 class t_ARG_02,
148434 class t_ARG_03,
148435 class t_ARG_04,
148436 class t_ARG_05,
148437 class t_ARG_06,
148438 class t_ARG_07,
148439 class t_ARG_08,
148440 class t_ARG_09>
148441inline
148442variant<t_HEAD, t_TAIL_01,
148443 t_TAIL_02,
148444 t_TAIL_03,
148445 t_TAIL_04,
148446 t_TAIL_05,
148447 t_TAIL_06,
148448 t_TAIL_07,
148449 t_TAIL_08,
148450 t_TAIL_09,
148451 t_TAIL_10,
148452 t_TAIL_11,
148453 t_TAIL_12,
148454 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
148455 bsl::allocator_arg_t,
148456 allocator_type allocator,
148458 const t_ARG_01& arg_01,
148459 const t_ARG_02& arg_02,
148460 const t_ARG_03& arg_03,
148461 const t_ARG_04& arg_04,
148462 const t_ARG_05& arg_05,
148463 const t_ARG_06& arg_06,
148464 const t_ARG_07& arg_07,
148465 const t_ARG_08& arg_08,
148466 const t_ARG_09& arg_09,
148468: Variant_Base(
148469 bsl::allocator_arg_t(),
148470 allocator,
148471 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148472 arg_01,
148473 arg_02,
148474 arg_03,
148475 arg_04,
148476 arg_05,
148477 arg_06,
148478 arg_07,
148479 arg_08,
148480 arg_09)
148481{
148482}
148483#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
148484
148485#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
148486template <class t_HEAD, class t_TAIL_01,
148487 class t_TAIL_02,
148488 class t_TAIL_03,
148489 class t_TAIL_04,
148490 class t_TAIL_05,
148491 class t_TAIL_06,
148492 class t_TAIL_07,
148493 class t_TAIL_08,
148494 class t_TAIL_09,
148495 class t_TAIL_10,
148496 class t_TAIL_11,
148497 class t_TAIL_12,
148498 class t_TAIL_13>
148499template <class t_TYPE,
148500 class t_ARG_01,
148501 class t_ARG_02,
148502 class t_ARG_03,
148503 class t_ARG_04,
148504 class t_ARG_05,
148505 class t_ARG_06,
148506 class t_ARG_07,
148507 class t_ARG_08,
148508 class t_ARG_09>
148509inline
148510variant<t_HEAD, t_TAIL_01,
148511 t_TAIL_02,
148512 t_TAIL_03,
148513 t_TAIL_04,
148514 t_TAIL_05,
148515 t_TAIL_06,
148516 t_TAIL_07,
148517 t_TAIL_08,
148518 t_TAIL_09,
148519 t_TAIL_10,
148520 t_TAIL_11,
148521 t_TAIL_12,
148522 t_TAIL_13,
148523 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
148524 bsl::allocator_arg_t,
148525 allocator_type allocator,
148527 const t_ARG_01& arg_01,
148528 const t_ARG_02& arg_02,
148529 const t_ARG_03& arg_03,
148530 const t_ARG_04& arg_04,
148531 const t_ARG_05& arg_05,
148532 const t_ARG_06& arg_06,
148533 const t_ARG_07& arg_07,
148534 const t_ARG_08& arg_08,
148535 const t_ARG_09& arg_09,
148537: Variant_Base(
148538 bsl::allocator_arg_t(),
148539 allocator,
148540 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148541 arg_01,
148542 arg_02,
148543 arg_03,
148544 arg_04,
148545 arg_05,
148546 arg_06,
148547 arg_07,
148548 arg_08,
148549 arg_09)
148550{
148551}
148552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
148553
148554#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
148555template <class t_HEAD, class t_TAIL_01,
148556 class t_TAIL_02,
148557 class t_TAIL_03,
148558 class t_TAIL_04,
148559 class t_TAIL_05,
148560 class t_TAIL_06,
148561 class t_TAIL_07,
148562 class t_TAIL_08,
148563 class t_TAIL_09,
148564 class t_TAIL_10,
148565 class t_TAIL_11,
148566 class t_TAIL_12,
148567 class t_TAIL_13,
148568 class t_TAIL_14>
148569template <class t_TYPE,
148570 class t_ARG_01,
148571 class t_ARG_02,
148572 class t_ARG_03,
148573 class t_ARG_04,
148574 class t_ARG_05,
148575 class t_ARG_06,
148576 class t_ARG_07,
148577 class t_ARG_08,
148578 class t_ARG_09>
148579inline
148580variant<t_HEAD, t_TAIL_01,
148581 t_TAIL_02,
148582 t_TAIL_03,
148583 t_TAIL_04,
148584 t_TAIL_05,
148585 t_TAIL_06,
148586 t_TAIL_07,
148587 t_TAIL_08,
148588 t_TAIL_09,
148589 t_TAIL_10,
148590 t_TAIL_11,
148591 t_TAIL_12,
148592 t_TAIL_13,
148593 t_TAIL_14,
148594 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
148595 bsl::allocator_arg_t,
148596 allocator_type allocator,
148598 const t_ARG_01& arg_01,
148599 const t_ARG_02& arg_02,
148600 const t_ARG_03& arg_03,
148601 const t_ARG_04& arg_04,
148602 const t_ARG_05& arg_05,
148603 const t_ARG_06& arg_06,
148604 const t_ARG_07& arg_07,
148605 const t_ARG_08& arg_08,
148606 const t_ARG_09& arg_09,
148608: Variant_Base(
148609 bsl::allocator_arg_t(),
148610 allocator,
148611 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148612 arg_01,
148613 arg_02,
148614 arg_03,
148615 arg_04,
148616 arg_05,
148617 arg_06,
148618 arg_07,
148619 arg_08,
148620 arg_09)
148621{
148622}
148623#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
148624
148625#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
148626template <class t_HEAD, class t_TAIL_01,
148627 class t_TAIL_02,
148628 class t_TAIL_03,
148629 class t_TAIL_04,
148630 class t_TAIL_05,
148631 class t_TAIL_06,
148632 class t_TAIL_07,
148633 class t_TAIL_08,
148634 class t_TAIL_09,
148635 class t_TAIL_10,
148636 class t_TAIL_11,
148637 class t_TAIL_12,
148638 class t_TAIL_13,
148639 class t_TAIL_14,
148640 class t_TAIL_15>
148641template <class t_TYPE,
148642 class t_ARG_01,
148643 class t_ARG_02,
148644 class t_ARG_03,
148645 class t_ARG_04,
148646 class t_ARG_05,
148647 class t_ARG_06,
148648 class t_ARG_07,
148649 class t_ARG_08,
148650 class t_ARG_09>
148651inline
148652variant<t_HEAD, t_TAIL_01,
148653 t_TAIL_02,
148654 t_TAIL_03,
148655 t_TAIL_04,
148656 t_TAIL_05,
148657 t_TAIL_06,
148658 t_TAIL_07,
148659 t_TAIL_08,
148660 t_TAIL_09,
148661 t_TAIL_10,
148662 t_TAIL_11,
148663 t_TAIL_12,
148664 t_TAIL_13,
148665 t_TAIL_14,
148666 t_TAIL_15,
148667 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
148668 bsl::allocator_arg_t,
148669 allocator_type allocator,
148671 const t_ARG_01& arg_01,
148672 const t_ARG_02& arg_02,
148673 const t_ARG_03& arg_03,
148674 const t_ARG_04& arg_04,
148675 const t_ARG_05& arg_05,
148676 const t_ARG_06& arg_06,
148677 const t_ARG_07& arg_07,
148678 const t_ARG_08& arg_08,
148679 const t_ARG_09& arg_09,
148681: Variant_Base(
148682 bsl::allocator_arg_t(),
148683 allocator,
148684 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148685 arg_01,
148686 arg_02,
148687 arg_03,
148688 arg_04,
148689 arg_05,
148690 arg_06,
148691 arg_07,
148692 arg_08,
148693 arg_09)
148694{
148695}
148696#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
148697
148698#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
148699template <class t_HEAD, class t_TAIL_01,
148700 class t_TAIL_02,
148701 class t_TAIL_03,
148702 class t_TAIL_04,
148703 class t_TAIL_05,
148704 class t_TAIL_06,
148705 class t_TAIL_07,
148706 class t_TAIL_08,
148707 class t_TAIL_09,
148708 class t_TAIL_10,
148709 class t_TAIL_11,
148710 class t_TAIL_12,
148711 class t_TAIL_13,
148712 class t_TAIL_14,
148713 class t_TAIL_15,
148714 class t_TAIL_16>
148715template <class t_TYPE,
148716 class t_ARG_01,
148717 class t_ARG_02,
148718 class t_ARG_03,
148719 class t_ARG_04,
148720 class t_ARG_05,
148721 class t_ARG_06,
148722 class t_ARG_07,
148723 class t_ARG_08,
148724 class t_ARG_09>
148725inline
148726variant<t_HEAD, t_TAIL_01,
148727 t_TAIL_02,
148728 t_TAIL_03,
148729 t_TAIL_04,
148730 t_TAIL_05,
148731 t_TAIL_06,
148732 t_TAIL_07,
148733 t_TAIL_08,
148734 t_TAIL_09,
148735 t_TAIL_10,
148736 t_TAIL_11,
148737 t_TAIL_12,
148738 t_TAIL_13,
148739 t_TAIL_14,
148740 t_TAIL_15,
148741 t_TAIL_16,
148742 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
148743 bsl::allocator_arg_t,
148744 allocator_type allocator,
148746 const t_ARG_01& arg_01,
148747 const t_ARG_02& arg_02,
148748 const t_ARG_03& arg_03,
148749 const t_ARG_04& arg_04,
148750 const t_ARG_05& arg_05,
148751 const t_ARG_06& arg_06,
148752 const t_ARG_07& arg_07,
148753 const t_ARG_08& arg_08,
148754 const t_ARG_09& arg_09,
148756: Variant_Base(
148757 bsl::allocator_arg_t(),
148758 allocator,
148759 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148760 arg_01,
148761 arg_02,
148762 arg_03,
148763 arg_04,
148764 arg_05,
148765 arg_06,
148766 arg_07,
148767 arg_08,
148768 arg_09)
148769{
148770}
148771#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
148772
148773#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
148774template <class t_HEAD, class t_TAIL_01,
148775 class t_TAIL_02,
148776 class t_TAIL_03,
148777 class t_TAIL_04,
148778 class t_TAIL_05,
148779 class t_TAIL_06,
148780 class t_TAIL_07,
148781 class t_TAIL_08,
148782 class t_TAIL_09,
148783 class t_TAIL_10,
148784 class t_TAIL_11,
148785 class t_TAIL_12,
148786 class t_TAIL_13,
148787 class t_TAIL_14,
148788 class t_TAIL_15,
148789 class t_TAIL_16,
148790 class t_TAIL_17>
148791template <class t_TYPE,
148792 class t_ARG_01,
148793 class t_ARG_02,
148794 class t_ARG_03,
148795 class t_ARG_04,
148796 class t_ARG_05,
148797 class t_ARG_06,
148798 class t_ARG_07,
148799 class t_ARG_08,
148800 class t_ARG_09>
148801inline
148802variant<t_HEAD, t_TAIL_01,
148803 t_TAIL_02,
148804 t_TAIL_03,
148805 t_TAIL_04,
148806 t_TAIL_05,
148807 t_TAIL_06,
148808 t_TAIL_07,
148809 t_TAIL_08,
148810 t_TAIL_09,
148811 t_TAIL_10,
148812 t_TAIL_11,
148813 t_TAIL_12,
148814 t_TAIL_13,
148815 t_TAIL_14,
148816 t_TAIL_15,
148817 t_TAIL_16,
148818 t_TAIL_17,
148819 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
148820 bsl::allocator_arg_t,
148821 allocator_type allocator,
148823 const t_ARG_01& arg_01,
148824 const t_ARG_02& arg_02,
148825 const t_ARG_03& arg_03,
148826 const t_ARG_04& arg_04,
148827 const t_ARG_05& arg_05,
148828 const t_ARG_06& arg_06,
148829 const t_ARG_07& arg_07,
148830 const t_ARG_08& arg_08,
148831 const t_ARG_09& arg_09,
148833: Variant_Base(
148834 bsl::allocator_arg_t(),
148835 allocator,
148836 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148837 arg_01,
148838 arg_02,
148839 arg_03,
148840 arg_04,
148841 arg_05,
148842 arg_06,
148843 arg_07,
148844 arg_08,
148845 arg_09)
148846{
148847}
148848#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
148849
148850#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
148851template <class t_HEAD, class t_TAIL_01,
148852 class t_TAIL_02,
148853 class t_TAIL_03,
148854 class t_TAIL_04,
148855 class t_TAIL_05,
148856 class t_TAIL_06,
148857 class t_TAIL_07,
148858 class t_TAIL_08,
148859 class t_TAIL_09,
148860 class t_TAIL_10,
148861 class t_TAIL_11,
148862 class t_TAIL_12,
148863 class t_TAIL_13,
148864 class t_TAIL_14,
148865 class t_TAIL_15,
148866 class t_TAIL_16,
148867 class t_TAIL_17,
148868 class t_TAIL_18>
148869template <class t_TYPE,
148870 class t_ARG_01,
148871 class t_ARG_02,
148872 class t_ARG_03,
148873 class t_ARG_04,
148874 class t_ARG_05,
148875 class t_ARG_06,
148876 class t_ARG_07,
148877 class t_ARG_08,
148878 class t_ARG_09>
148879inline
148880variant<t_HEAD, t_TAIL_01,
148881 t_TAIL_02,
148882 t_TAIL_03,
148883 t_TAIL_04,
148884 t_TAIL_05,
148885 t_TAIL_06,
148886 t_TAIL_07,
148887 t_TAIL_08,
148888 t_TAIL_09,
148889 t_TAIL_10,
148890 t_TAIL_11,
148891 t_TAIL_12,
148892 t_TAIL_13,
148893 t_TAIL_14,
148894 t_TAIL_15,
148895 t_TAIL_16,
148896 t_TAIL_17,
148897 t_TAIL_18,
148898 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
148899 bsl::allocator_arg_t,
148900 allocator_type allocator,
148902 const t_ARG_01& arg_01,
148903 const t_ARG_02& arg_02,
148904 const t_ARG_03& arg_03,
148905 const t_ARG_04& arg_04,
148906 const t_ARG_05& arg_05,
148907 const t_ARG_06& arg_06,
148908 const t_ARG_07& arg_07,
148909 const t_ARG_08& arg_08,
148910 const t_ARG_09& arg_09,
148912: Variant_Base(
148913 bsl::allocator_arg_t(),
148914 allocator,
148915 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148916 arg_01,
148917 arg_02,
148918 arg_03,
148919 arg_04,
148920 arg_05,
148921 arg_06,
148922 arg_07,
148923 arg_08,
148924 arg_09)
148925{
148926}
148927#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
148928
148929
148930#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
148931template <class t_HEAD>
148932template <class t_TYPE,
148933 class t_ARG_01,
148934 class t_ARG_02,
148935 class t_ARG_03,
148936 class t_ARG_04,
148937 class t_ARG_05,
148938 class t_ARG_06,
148939 class t_ARG_07,
148940 class t_ARG_08,
148941 class t_ARG_09,
148942 class t_ARG_10>
148943inline
148944variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(
148945 bsl::allocator_arg_t,
148946 allocator_type allocator,
148948 const t_ARG_01& arg_01,
148949 const t_ARG_02& arg_02,
148950 const t_ARG_03& arg_03,
148951 const t_ARG_04& arg_04,
148952 const t_ARG_05& arg_05,
148953 const t_ARG_06& arg_06,
148954 const t_ARG_07& arg_07,
148955 const t_ARG_08& arg_08,
148956 const t_ARG_09& arg_09,
148957 const t_ARG_10& arg_10,
148959: Variant_Base(
148960 bsl::allocator_arg_t(),
148961 allocator,
148962 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
148963 arg_01,
148964 arg_02,
148965 arg_03,
148966 arg_04,
148967 arg_05,
148968 arg_06,
148969 arg_07,
148970 arg_08,
148971 arg_09,
148972 arg_10)
148973{
148974}
148975#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
148976
148977#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
148978template <class t_HEAD, class t_TAIL_01>
148979template <class t_TYPE,
148980 class t_ARG_01,
148981 class t_ARG_02,
148982 class t_ARG_03,
148983 class t_ARG_04,
148984 class t_ARG_05,
148985 class t_ARG_06,
148986 class t_ARG_07,
148987 class t_ARG_08,
148988 class t_ARG_09,
148989 class t_ARG_10>
148990inline
148991variant<t_HEAD, t_TAIL_01,
148992 BSLS_COMPILERFEATURES_FILLT(17)>::variant(
148993 bsl::allocator_arg_t,
148994 allocator_type allocator,
148996 const t_ARG_01& arg_01,
148997 const t_ARG_02& arg_02,
148998 const t_ARG_03& arg_03,
148999 const t_ARG_04& arg_04,
149000 const t_ARG_05& arg_05,
149001 const t_ARG_06& arg_06,
149002 const t_ARG_07& arg_07,
149003 const t_ARG_08& arg_08,
149004 const t_ARG_09& arg_09,
149005 const t_ARG_10& arg_10,
149007: Variant_Base(
149008 bsl::allocator_arg_t(),
149009 allocator,
149010 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149011 arg_01,
149012 arg_02,
149013 arg_03,
149014 arg_04,
149015 arg_05,
149016 arg_06,
149017 arg_07,
149018 arg_08,
149019 arg_09,
149020 arg_10)
149021{
149022}
149023#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
149024
149025#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
149026template <class t_HEAD, class t_TAIL_01,
149027 class t_TAIL_02>
149028template <class t_TYPE,
149029 class t_ARG_01,
149030 class t_ARG_02,
149031 class t_ARG_03,
149032 class t_ARG_04,
149033 class t_ARG_05,
149034 class t_ARG_06,
149035 class t_ARG_07,
149036 class t_ARG_08,
149037 class t_ARG_09,
149038 class t_ARG_10>
149039inline
149040variant<t_HEAD, t_TAIL_01,
149041 t_TAIL_02,
149042 BSLS_COMPILERFEATURES_FILLT(16)>::variant(
149043 bsl::allocator_arg_t,
149044 allocator_type allocator,
149046 const t_ARG_01& arg_01,
149047 const t_ARG_02& arg_02,
149048 const t_ARG_03& arg_03,
149049 const t_ARG_04& arg_04,
149050 const t_ARG_05& arg_05,
149051 const t_ARG_06& arg_06,
149052 const t_ARG_07& arg_07,
149053 const t_ARG_08& arg_08,
149054 const t_ARG_09& arg_09,
149055 const t_ARG_10& arg_10,
149057: Variant_Base(
149058 bsl::allocator_arg_t(),
149059 allocator,
149060 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149061 arg_01,
149062 arg_02,
149063 arg_03,
149064 arg_04,
149065 arg_05,
149066 arg_06,
149067 arg_07,
149068 arg_08,
149069 arg_09,
149070 arg_10)
149071{
149072}
149073#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
149074
149075#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
149076template <class t_HEAD, class t_TAIL_01,
149077 class t_TAIL_02,
149078 class t_TAIL_03>
149079template <class t_TYPE,
149080 class t_ARG_01,
149081 class t_ARG_02,
149082 class t_ARG_03,
149083 class t_ARG_04,
149084 class t_ARG_05,
149085 class t_ARG_06,
149086 class t_ARG_07,
149087 class t_ARG_08,
149088 class t_ARG_09,
149089 class t_ARG_10>
149090inline
149091variant<t_HEAD, t_TAIL_01,
149092 t_TAIL_02,
149093 t_TAIL_03,
149094 BSLS_COMPILERFEATURES_FILLT(15)>::variant(
149095 bsl::allocator_arg_t,
149096 allocator_type allocator,
149098 const t_ARG_01& arg_01,
149099 const t_ARG_02& arg_02,
149100 const t_ARG_03& arg_03,
149101 const t_ARG_04& arg_04,
149102 const t_ARG_05& arg_05,
149103 const t_ARG_06& arg_06,
149104 const t_ARG_07& arg_07,
149105 const t_ARG_08& arg_08,
149106 const t_ARG_09& arg_09,
149107 const t_ARG_10& arg_10,
149109: Variant_Base(
149110 bsl::allocator_arg_t(),
149111 allocator,
149112 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149113 arg_01,
149114 arg_02,
149115 arg_03,
149116 arg_04,
149117 arg_05,
149118 arg_06,
149119 arg_07,
149120 arg_08,
149121 arg_09,
149122 arg_10)
149123{
149124}
149125#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
149126
149127#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
149128template <class t_HEAD, class t_TAIL_01,
149129 class t_TAIL_02,
149130 class t_TAIL_03,
149131 class t_TAIL_04>
149132template <class t_TYPE,
149133 class t_ARG_01,
149134 class t_ARG_02,
149135 class t_ARG_03,
149136 class t_ARG_04,
149137 class t_ARG_05,
149138 class t_ARG_06,
149139 class t_ARG_07,
149140 class t_ARG_08,
149141 class t_ARG_09,
149142 class t_ARG_10>
149143inline
149144variant<t_HEAD, t_TAIL_01,
149145 t_TAIL_02,
149146 t_TAIL_03,
149147 t_TAIL_04,
149148 BSLS_COMPILERFEATURES_FILLT(14)>::variant(
149149 bsl::allocator_arg_t,
149150 allocator_type allocator,
149152 const t_ARG_01& arg_01,
149153 const t_ARG_02& arg_02,
149154 const t_ARG_03& arg_03,
149155 const t_ARG_04& arg_04,
149156 const t_ARG_05& arg_05,
149157 const t_ARG_06& arg_06,
149158 const t_ARG_07& arg_07,
149159 const t_ARG_08& arg_08,
149160 const t_ARG_09& arg_09,
149161 const t_ARG_10& arg_10,
149163: Variant_Base(
149164 bsl::allocator_arg_t(),
149165 allocator,
149166 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149167 arg_01,
149168 arg_02,
149169 arg_03,
149170 arg_04,
149171 arg_05,
149172 arg_06,
149173 arg_07,
149174 arg_08,
149175 arg_09,
149176 arg_10)
149177{
149178}
149179#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
149180
149181#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
149182template <class t_HEAD, class t_TAIL_01,
149183 class t_TAIL_02,
149184 class t_TAIL_03,
149185 class t_TAIL_04,
149186 class t_TAIL_05>
149187template <class t_TYPE,
149188 class t_ARG_01,
149189 class t_ARG_02,
149190 class t_ARG_03,
149191 class t_ARG_04,
149192 class t_ARG_05,
149193 class t_ARG_06,
149194 class t_ARG_07,
149195 class t_ARG_08,
149196 class t_ARG_09,
149197 class t_ARG_10>
149198inline
149199variant<t_HEAD, t_TAIL_01,
149200 t_TAIL_02,
149201 t_TAIL_03,
149202 t_TAIL_04,
149203 t_TAIL_05,
149204 BSLS_COMPILERFEATURES_FILLT(13)>::variant(
149205 bsl::allocator_arg_t,
149206 allocator_type allocator,
149208 const t_ARG_01& arg_01,
149209 const t_ARG_02& arg_02,
149210 const t_ARG_03& arg_03,
149211 const t_ARG_04& arg_04,
149212 const t_ARG_05& arg_05,
149213 const t_ARG_06& arg_06,
149214 const t_ARG_07& arg_07,
149215 const t_ARG_08& arg_08,
149216 const t_ARG_09& arg_09,
149217 const t_ARG_10& arg_10,
149219: Variant_Base(
149220 bsl::allocator_arg_t(),
149221 allocator,
149222 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149223 arg_01,
149224 arg_02,
149225 arg_03,
149226 arg_04,
149227 arg_05,
149228 arg_06,
149229 arg_07,
149230 arg_08,
149231 arg_09,
149232 arg_10)
149233{
149234}
149235#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
149236
149237#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
149238template <class t_HEAD, class t_TAIL_01,
149239 class t_TAIL_02,
149240 class t_TAIL_03,
149241 class t_TAIL_04,
149242 class t_TAIL_05,
149243 class t_TAIL_06>
149244template <class t_TYPE,
149245 class t_ARG_01,
149246 class t_ARG_02,
149247 class t_ARG_03,
149248 class t_ARG_04,
149249 class t_ARG_05,
149250 class t_ARG_06,
149251 class t_ARG_07,
149252 class t_ARG_08,
149253 class t_ARG_09,
149254 class t_ARG_10>
149255inline
149256variant<t_HEAD, t_TAIL_01,
149257 t_TAIL_02,
149258 t_TAIL_03,
149259 t_TAIL_04,
149260 t_TAIL_05,
149261 t_TAIL_06,
149262 BSLS_COMPILERFEATURES_FILLT(12)>::variant(
149263 bsl::allocator_arg_t,
149264 allocator_type allocator,
149266 const t_ARG_01& arg_01,
149267 const t_ARG_02& arg_02,
149268 const t_ARG_03& arg_03,
149269 const t_ARG_04& arg_04,
149270 const t_ARG_05& arg_05,
149271 const t_ARG_06& arg_06,
149272 const t_ARG_07& arg_07,
149273 const t_ARG_08& arg_08,
149274 const t_ARG_09& arg_09,
149275 const t_ARG_10& arg_10,
149277: Variant_Base(
149278 bsl::allocator_arg_t(),
149279 allocator,
149280 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149281 arg_01,
149282 arg_02,
149283 arg_03,
149284 arg_04,
149285 arg_05,
149286 arg_06,
149287 arg_07,
149288 arg_08,
149289 arg_09,
149290 arg_10)
149291{
149292}
149293#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
149294
149295#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
149296template <class t_HEAD, class t_TAIL_01,
149297 class t_TAIL_02,
149298 class t_TAIL_03,
149299 class t_TAIL_04,
149300 class t_TAIL_05,
149301 class t_TAIL_06,
149302 class t_TAIL_07>
149303template <class t_TYPE,
149304 class t_ARG_01,
149305 class t_ARG_02,
149306 class t_ARG_03,
149307 class t_ARG_04,
149308 class t_ARG_05,
149309 class t_ARG_06,
149310 class t_ARG_07,
149311 class t_ARG_08,
149312 class t_ARG_09,
149313 class t_ARG_10>
149314inline
149315variant<t_HEAD, t_TAIL_01,
149316 t_TAIL_02,
149317 t_TAIL_03,
149318 t_TAIL_04,
149319 t_TAIL_05,
149320 t_TAIL_06,
149321 t_TAIL_07,
149322 BSLS_COMPILERFEATURES_FILLT(11)>::variant(
149323 bsl::allocator_arg_t,
149324 allocator_type allocator,
149326 const t_ARG_01& arg_01,
149327 const t_ARG_02& arg_02,
149328 const t_ARG_03& arg_03,
149329 const t_ARG_04& arg_04,
149330 const t_ARG_05& arg_05,
149331 const t_ARG_06& arg_06,
149332 const t_ARG_07& arg_07,
149333 const t_ARG_08& arg_08,
149334 const t_ARG_09& arg_09,
149335 const t_ARG_10& arg_10,
149337: Variant_Base(
149338 bsl::allocator_arg_t(),
149339 allocator,
149340 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149341 arg_01,
149342 arg_02,
149343 arg_03,
149344 arg_04,
149345 arg_05,
149346 arg_06,
149347 arg_07,
149348 arg_08,
149349 arg_09,
149350 arg_10)
149351{
149352}
149353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
149354
149355#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
149356template <class t_HEAD, class t_TAIL_01,
149357 class t_TAIL_02,
149358 class t_TAIL_03,
149359 class t_TAIL_04,
149360 class t_TAIL_05,
149361 class t_TAIL_06,
149362 class t_TAIL_07,
149363 class t_TAIL_08>
149364template <class t_TYPE,
149365 class t_ARG_01,
149366 class t_ARG_02,
149367 class t_ARG_03,
149368 class t_ARG_04,
149369 class t_ARG_05,
149370 class t_ARG_06,
149371 class t_ARG_07,
149372 class t_ARG_08,
149373 class t_ARG_09,
149374 class t_ARG_10>
149375inline
149376variant<t_HEAD, t_TAIL_01,
149377 t_TAIL_02,
149378 t_TAIL_03,
149379 t_TAIL_04,
149380 t_TAIL_05,
149381 t_TAIL_06,
149382 t_TAIL_07,
149383 t_TAIL_08,
149384 BSLS_COMPILERFEATURES_FILLT(10)>::variant(
149385 bsl::allocator_arg_t,
149386 allocator_type allocator,
149388 const t_ARG_01& arg_01,
149389 const t_ARG_02& arg_02,
149390 const t_ARG_03& arg_03,
149391 const t_ARG_04& arg_04,
149392 const t_ARG_05& arg_05,
149393 const t_ARG_06& arg_06,
149394 const t_ARG_07& arg_07,
149395 const t_ARG_08& arg_08,
149396 const t_ARG_09& arg_09,
149397 const t_ARG_10& arg_10,
149399: Variant_Base(
149400 bsl::allocator_arg_t(),
149401 allocator,
149402 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149403 arg_01,
149404 arg_02,
149405 arg_03,
149406 arg_04,
149407 arg_05,
149408 arg_06,
149409 arg_07,
149410 arg_08,
149411 arg_09,
149412 arg_10)
149413{
149414}
149415#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
149416
149417#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
149418template <class t_HEAD, class t_TAIL_01,
149419 class t_TAIL_02,
149420 class t_TAIL_03,
149421 class t_TAIL_04,
149422 class t_TAIL_05,
149423 class t_TAIL_06,
149424 class t_TAIL_07,
149425 class t_TAIL_08,
149426 class t_TAIL_09>
149427template <class t_TYPE,
149428 class t_ARG_01,
149429 class t_ARG_02,
149430 class t_ARG_03,
149431 class t_ARG_04,
149432 class t_ARG_05,
149433 class t_ARG_06,
149434 class t_ARG_07,
149435 class t_ARG_08,
149436 class t_ARG_09,
149437 class t_ARG_10>
149438inline
149439variant<t_HEAD, t_TAIL_01,
149440 t_TAIL_02,
149441 t_TAIL_03,
149442 t_TAIL_04,
149443 t_TAIL_05,
149444 t_TAIL_06,
149445 t_TAIL_07,
149446 t_TAIL_08,
149447 t_TAIL_09,
149448 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(
149449 bsl::allocator_arg_t,
149450 allocator_type allocator,
149452 const t_ARG_01& arg_01,
149453 const t_ARG_02& arg_02,
149454 const t_ARG_03& arg_03,
149455 const t_ARG_04& arg_04,
149456 const t_ARG_05& arg_05,
149457 const t_ARG_06& arg_06,
149458 const t_ARG_07& arg_07,
149459 const t_ARG_08& arg_08,
149460 const t_ARG_09& arg_09,
149461 const t_ARG_10& arg_10,
149463: Variant_Base(
149464 bsl::allocator_arg_t(),
149465 allocator,
149466 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149467 arg_01,
149468 arg_02,
149469 arg_03,
149470 arg_04,
149471 arg_05,
149472 arg_06,
149473 arg_07,
149474 arg_08,
149475 arg_09,
149476 arg_10)
149477{
149478}
149479#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
149480
149481#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
149482template <class t_HEAD, class t_TAIL_01,
149483 class t_TAIL_02,
149484 class t_TAIL_03,
149485 class t_TAIL_04,
149486 class t_TAIL_05,
149487 class t_TAIL_06,
149488 class t_TAIL_07,
149489 class t_TAIL_08,
149490 class t_TAIL_09,
149491 class t_TAIL_10>
149492template <class t_TYPE,
149493 class t_ARG_01,
149494 class t_ARG_02,
149495 class t_ARG_03,
149496 class t_ARG_04,
149497 class t_ARG_05,
149498 class t_ARG_06,
149499 class t_ARG_07,
149500 class t_ARG_08,
149501 class t_ARG_09,
149502 class t_ARG_10>
149503inline
149504variant<t_HEAD, t_TAIL_01,
149505 t_TAIL_02,
149506 t_TAIL_03,
149507 t_TAIL_04,
149508 t_TAIL_05,
149509 t_TAIL_06,
149510 t_TAIL_07,
149511 t_TAIL_08,
149512 t_TAIL_09,
149513 t_TAIL_10,
149514 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(
149515 bsl::allocator_arg_t,
149516 allocator_type allocator,
149518 const t_ARG_01& arg_01,
149519 const t_ARG_02& arg_02,
149520 const t_ARG_03& arg_03,
149521 const t_ARG_04& arg_04,
149522 const t_ARG_05& arg_05,
149523 const t_ARG_06& arg_06,
149524 const t_ARG_07& arg_07,
149525 const t_ARG_08& arg_08,
149526 const t_ARG_09& arg_09,
149527 const t_ARG_10& arg_10,
149529: Variant_Base(
149530 bsl::allocator_arg_t(),
149531 allocator,
149532 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149533 arg_01,
149534 arg_02,
149535 arg_03,
149536 arg_04,
149537 arg_05,
149538 arg_06,
149539 arg_07,
149540 arg_08,
149541 arg_09,
149542 arg_10)
149543{
149544}
149545#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
149546
149547#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
149548template <class t_HEAD, class t_TAIL_01,
149549 class t_TAIL_02,
149550 class t_TAIL_03,
149551 class t_TAIL_04,
149552 class t_TAIL_05,
149553 class t_TAIL_06,
149554 class t_TAIL_07,
149555 class t_TAIL_08,
149556 class t_TAIL_09,
149557 class t_TAIL_10,
149558 class t_TAIL_11>
149559template <class t_TYPE,
149560 class t_ARG_01,
149561 class t_ARG_02,
149562 class t_ARG_03,
149563 class t_ARG_04,
149564 class t_ARG_05,
149565 class t_ARG_06,
149566 class t_ARG_07,
149567 class t_ARG_08,
149568 class t_ARG_09,
149569 class t_ARG_10>
149570inline
149571variant<t_HEAD, t_TAIL_01,
149572 t_TAIL_02,
149573 t_TAIL_03,
149574 t_TAIL_04,
149575 t_TAIL_05,
149576 t_TAIL_06,
149577 t_TAIL_07,
149578 t_TAIL_08,
149579 t_TAIL_09,
149580 t_TAIL_10,
149581 t_TAIL_11,
149582 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(
149583 bsl::allocator_arg_t,
149584 allocator_type allocator,
149586 const t_ARG_01& arg_01,
149587 const t_ARG_02& arg_02,
149588 const t_ARG_03& arg_03,
149589 const t_ARG_04& arg_04,
149590 const t_ARG_05& arg_05,
149591 const t_ARG_06& arg_06,
149592 const t_ARG_07& arg_07,
149593 const t_ARG_08& arg_08,
149594 const t_ARG_09& arg_09,
149595 const t_ARG_10& arg_10,
149597: Variant_Base(
149598 bsl::allocator_arg_t(),
149599 allocator,
149600 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149601 arg_01,
149602 arg_02,
149603 arg_03,
149604 arg_04,
149605 arg_05,
149606 arg_06,
149607 arg_07,
149608 arg_08,
149609 arg_09,
149610 arg_10)
149611{
149612}
149613#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
149614
149615#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
149616template <class t_HEAD, class t_TAIL_01,
149617 class t_TAIL_02,
149618 class t_TAIL_03,
149619 class t_TAIL_04,
149620 class t_TAIL_05,
149621 class t_TAIL_06,
149622 class t_TAIL_07,
149623 class t_TAIL_08,
149624 class t_TAIL_09,
149625 class t_TAIL_10,
149626 class t_TAIL_11,
149627 class t_TAIL_12>
149628template <class t_TYPE,
149629 class t_ARG_01,
149630 class t_ARG_02,
149631 class t_ARG_03,
149632 class t_ARG_04,
149633 class t_ARG_05,
149634 class t_ARG_06,
149635 class t_ARG_07,
149636 class t_ARG_08,
149637 class t_ARG_09,
149638 class t_ARG_10>
149639inline
149640variant<t_HEAD, t_TAIL_01,
149641 t_TAIL_02,
149642 t_TAIL_03,
149643 t_TAIL_04,
149644 t_TAIL_05,
149645 t_TAIL_06,
149646 t_TAIL_07,
149647 t_TAIL_08,
149648 t_TAIL_09,
149649 t_TAIL_10,
149650 t_TAIL_11,
149651 t_TAIL_12,
149652 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(
149653 bsl::allocator_arg_t,
149654 allocator_type allocator,
149656 const t_ARG_01& arg_01,
149657 const t_ARG_02& arg_02,
149658 const t_ARG_03& arg_03,
149659 const t_ARG_04& arg_04,
149660 const t_ARG_05& arg_05,
149661 const t_ARG_06& arg_06,
149662 const t_ARG_07& arg_07,
149663 const t_ARG_08& arg_08,
149664 const t_ARG_09& arg_09,
149665 const t_ARG_10& arg_10,
149667: Variant_Base(
149668 bsl::allocator_arg_t(),
149669 allocator,
149670 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149671 arg_01,
149672 arg_02,
149673 arg_03,
149674 arg_04,
149675 arg_05,
149676 arg_06,
149677 arg_07,
149678 arg_08,
149679 arg_09,
149680 arg_10)
149681{
149682}
149683#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
149684
149685#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
149686template <class t_HEAD, class t_TAIL_01,
149687 class t_TAIL_02,
149688 class t_TAIL_03,
149689 class t_TAIL_04,
149690 class t_TAIL_05,
149691 class t_TAIL_06,
149692 class t_TAIL_07,
149693 class t_TAIL_08,
149694 class t_TAIL_09,
149695 class t_TAIL_10,
149696 class t_TAIL_11,
149697 class t_TAIL_12,
149698 class t_TAIL_13>
149699template <class t_TYPE,
149700 class t_ARG_01,
149701 class t_ARG_02,
149702 class t_ARG_03,
149703 class t_ARG_04,
149704 class t_ARG_05,
149705 class t_ARG_06,
149706 class t_ARG_07,
149707 class t_ARG_08,
149708 class t_ARG_09,
149709 class t_ARG_10>
149710inline
149711variant<t_HEAD, t_TAIL_01,
149712 t_TAIL_02,
149713 t_TAIL_03,
149714 t_TAIL_04,
149715 t_TAIL_05,
149716 t_TAIL_06,
149717 t_TAIL_07,
149718 t_TAIL_08,
149719 t_TAIL_09,
149720 t_TAIL_10,
149721 t_TAIL_11,
149722 t_TAIL_12,
149723 t_TAIL_13,
149724 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(
149725 bsl::allocator_arg_t,
149726 allocator_type allocator,
149728 const t_ARG_01& arg_01,
149729 const t_ARG_02& arg_02,
149730 const t_ARG_03& arg_03,
149731 const t_ARG_04& arg_04,
149732 const t_ARG_05& arg_05,
149733 const t_ARG_06& arg_06,
149734 const t_ARG_07& arg_07,
149735 const t_ARG_08& arg_08,
149736 const t_ARG_09& arg_09,
149737 const t_ARG_10& arg_10,
149739: Variant_Base(
149740 bsl::allocator_arg_t(),
149741 allocator,
149742 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149743 arg_01,
149744 arg_02,
149745 arg_03,
149746 arg_04,
149747 arg_05,
149748 arg_06,
149749 arg_07,
149750 arg_08,
149751 arg_09,
149752 arg_10)
149753{
149754}
149755#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
149756
149757#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
149758template <class t_HEAD, class t_TAIL_01,
149759 class t_TAIL_02,
149760 class t_TAIL_03,
149761 class t_TAIL_04,
149762 class t_TAIL_05,
149763 class t_TAIL_06,
149764 class t_TAIL_07,
149765 class t_TAIL_08,
149766 class t_TAIL_09,
149767 class t_TAIL_10,
149768 class t_TAIL_11,
149769 class t_TAIL_12,
149770 class t_TAIL_13,
149771 class t_TAIL_14>
149772template <class t_TYPE,
149773 class t_ARG_01,
149774 class t_ARG_02,
149775 class t_ARG_03,
149776 class t_ARG_04,
149777 class t_ARG_05,
149778 class t_ARG_06,
149779 class t_ARG_07,
149780 class t_ARG_08,
149781 class t_ARG_09,
149782 class t_ARG_10>
149783inline
149784variant<t_HEAD, t_TAIL_01,
149785 t_TAIL_02,
149786 t_TAIL_03,
149787 t_TAIL_04,
149788 t_TAIL_05,
149789 t_TAIL_06,
149790 t_TAIL_07,
149791 t_TAIL_08,
149792 t_TAIL_09,
149793 t_TAIL_10,
149794 t_TAIL_11,
149795 t_TAIL_12,
149796 t_TAIL_13,
149797 t_TAIL_14,
149798 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(
149799 bsl::allocator_arg_t,
149800 allocator_type allocator,
149802 const t_ARG_01& arg_01,
149803 const t_ARG_02& arg_02,
149804 const t_ARG_03& arg_03,
149805 const t_ARG_04& arg_04,
149806 const t_ARG_05& arg_05,
149807 const t_ARG_06& arg_06,
149808 const t_ARG_07& arg_07,
149809 const t_ARG_08& arg_08,
149810 const t_ARG_09& arg_09,
149811 const t_ARG_10& arg_10,
149813: Variant_Base(
149814 bsl::allocator_arg_t(),
149815 allocator,
149816 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149817 arg_01,
149818 arg_02,
149819 arg_03,
149820 arg_04,
149821 arg_05,
149822 arg_06,
149823 arg_07,
149824 arg_08,
149825 arg_09,
149826 arg_10)
149827{
149828}
149829#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
149830
149831#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
149832template <class t_HEAD, class t_TAIL_01,
149833 class t_TAIL_02,
149834 class t_TAIL_03,
149835 class t_TAIL_04,
149836 class t_TAIL_05,
149837 class t_TAIL_06,
149838 class t_TAIL_07,
149839 class t_TAIL_08,
149840 class t_TAIL_09,
149841 class t_TAIL_10,
149842 class t_TAIL_11,
149843 class t_TAIL_12,
149844 class t_TAIL_13,
149845 class t_TAIL_14,
149846 class t_TAIL_15>
149847template <class t_TYPE,
149848 class t_ARG_01,
149849 class t_ARG_02,
149850 class t_ARG_03,
149851 class t_ARG_04,
149852 class t_ARG_05,
149853 class t_ARG_06,
149854 class t_ARG_07,
149855 class t_ARG_08,
149856 class t_ARG_09,
149857 class t_ARG_10>
149858inline
149859variant<t_HEAD, t_TAIL_01,
149860 t_TAIL_02,
149861 t_TAIL_03,
149862 t_TAIL_04,
149863 t_TAIL_05,
149864 t_TAIL_06,
149865 t_TAIL_07,
149866 t_TAIL_08,
149867 t_TAIL_09,
149868 t_TAIL_10,
149869 t_TAIL_11,
149870 t_TAIL_12,
149871 t_TAIL_13,
149872 t_TAIL_14,
149873 t_TAIL_15,
149874 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(
149875 bsl::allocator_arg_t,
149876 allocator_type allocator,
149878 const t_ARG_01& arg_01,
149879 const t_ARG_02& arg_02,
149880 const t_ARG_03& arg_03,
149881 const t_ARG_04& arg_04,
149882 const t_ARG_05& arg_05,
149883 const t_ARG_06& arg_06,
149884 const t_ARG_07& arg_07,
149885 const t_ARG_08& arg_08,
149886 const t_ARG_09& arg_09,
149887 const t_ARG_10& arg_10,
149889: Variant_Base(
149890 bsl::allocator_arg_t(),
149891 allocator,
149892 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149893 arg_01,
149894 arg_02,
149895 arg_03,
149896 arg_04,
149897 arg_05,
149898 arg_06,
149899 arg_07,
149900 arg_08,
149901 arg_09,
149902 arg_10)
149903{
149904}
149905#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
149906
149907#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
149908template <class t_HEAD, class t_TAIL_01,
149909 class t_TAIL_02,
149910 class t_TAIL_03,
149911 class t_TAIL_04,
149912 class t_TAIL_05,
149913 class t_TAIL_06,
149914 class t_TAIL_07,
149915 class t_TAIL_08,
149916 class t_TAIL_09,
149917 class t_TAIL_10,
149918 class t_TAIL_11,
149919 class t_TAIL_12,
149920 class t_TAIL_13,
149921 class t_TAIL_14,
149922 class t_TAIL_15,
149923 class t_TAIL_16>
149924template <class t_TYPE,
149925 class t_ARG_01,
149926 class t_ARG_02,
149927 class t_ARG_03,
149928 class t_ARG_04,
149929 class t_ARG_05,
149930 class t_ARG_06,
149931 class t_ARG_07,
149932 class t_ARG_08,
149933 class t_ARG_09,
149934 class t_ARG_10>
149935inline
149936variant<t_HEAD, t_TAIL_01,
149937 t_TAIL_02,
149938 t_TAIL_03,
149939 t_TAIL_04,
149940 t_TAIL_05,
149941 t_TAIL_06,
149942 t_TAIL_07,
149943 t_TAIL_08,
149944 t_TAIL_09,
149945 t_TAIL_10,
149946 t_TAIL_11,
149947 t_TAIL_12,
149948 t_TAIL_13,
149949 t_TAIL_14,
149950 t_TAIL_15,
149951 t_TAIL_16,
149952 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(
149953 bsl::allocator_arg_t,
149954 allocator_type allocator,
149956 const t_ARG_01& arg_01,
149957 const t_ARG_02& arg_02,
149958 const t_ARG_03& arg_03,
149959 const t_ARG_04& arg_04,
149960 const t_ARG_05& arg_05,
149961 const t_ARG_06& arg_06,
149962 const t_ARG_07& arg_07,
149963 const t_ARG_08& arg_08,
149964 const t_ARG_09& arg_09,
149965 const t_ARG_10& arg_10,
149967: Variant_Base(
149968 bsl::allocator_arg_t(),
149969 allocator,
149970 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
149971 arg_01,
149972 arg_02,
149973 arg_03,
149974 arg_04,
149975 arg_05,
149976 arg_06,
149977 arg_07,
149978 arg_08,
149979 arg_09,
149980 arg_10)
149981{
149982}
149983#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
149984
149985#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
149986template <class t_HEAD, class t_TAIL_01,
149987 class t_TAIL_02,
149988 class t_TAIL_03,
149989 class t_TAIL_04,
149990 class t_TAIL_05,
149991 class t_TAIL_06,
149992 class t_TAIL_07,
149993 class t_TAIL_08,
149994 class t_TAIL_09,
149995 class t_TAIL_10,
149996 class t_TAIL_11,
149997 class t_TAIL_12,
149998 class t_TAIL_13,
149999 class t_TAIL_14,
150000 class t_TAIL_15,
150001 class t_TAIL_16,
150002 class t_TAIL_17>
150003template <class t_TYPE,
150004 class t_ARG_01,
150005 class t_ARG_02,
150006 class t_ARG_03,
150007 class t_ARG_04,
150008 class t_ARG_05,
150009 class t_ARG_06,
150010 class t_ARG_07,
150011 class t_ARG_08,
150012 class t_ARG_09,
150013 class t_ARG_10>
150014inline
150015variant<t_HEAD, t_TAIL_01,
150016 t_TAIL_02,
150017 t_TAIL_03,
150018 t_TAIL_04,
150019 t_TAIL_05,
150020 t_TAIL_06,
150021 t_TAIL_07,
150022 t_TAIL_08,
150023 t_TAIL_09,
150024 t_TAIL_10,
150025 t_TAIL_11,
150026 t_TAIL_12,
150027 t_TAIL_13,
150028 t_TAIL_14,
150029 t_TAIL_15,
150030 t_TAIL_16,
150031 t_TAIL_17,
150032 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(
150033 bsl::allocator_arg_t,
150034 allocator_type allocator,
150036 const t_ARG_01& arg_01,
150037 const t_ARG_02& arg_02,
150038 const t_ARG_03& arg_03,
150039 const t_ARG_04& arg_04,
150040 const t_ARG_05& arg_05,
150041 const t_ARG_06& arg_06,
150042 const t_ARG_07& arg_07,
150043 const t_ARG_08& arg_08,
150044 const t_ARG_09& arg_09,
150045 const t_ARG_10& arg_10,
150047: Variant_Base(
150048 bsl::allocator_arg_t(),
150049 allocator,
150050 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
150051 arg_01,
150052 arg_02,
150053 arg_03,
150054 arg_04,
150055 arg_05,
150056 arg_06,
150057 arg_07,
150058 arg_08,
150059 arg_09,
150060 arg_10)
150061{
150062}
150063#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
150064
150065#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
150066template <class t_HEAD, class t_TAIL_01,
150067 class t_TAIL_02,
150068 class t_TAIL_03,
150069 class t_TAIL_04,
150070 class t_TAIL_05,
150071 class t_TAIL_06,
150072 class t_TAIL_07,
150073 class t_TAIL_08,
150074 class t_TAIL_09,
150075 class t_TAIL_10,
150076 class t_TAIL_11,
150077 class t_TAIL_12,
150078 class t_TAIL_13,
150079 class t_TAIL_14,
150080 class t_TAIL_15,
150081 class t_TAIL_16,
150082 class t_TAIL_17,
150083 class t_TAIL_18>
150084template <class t_TYPE,
150085 class t_ARG_01,
150086 class t_ARG_02,
150087 class t_ARG_03,
150088 class t_ARG_04,
150089 class t_ARG_05,
150090 class t_ARG_06,
150091 class t_ARG_07,
150092 class t_ARG_08,
150093 class t_ARG_09,
150094 class t_ARG_10>
150095inline
150096variant<t_HEAD, t_TAIL_01,
150097 t_TAIL_02,
150098 t_TAIL_03,
150099 t_TAIL_04,
150100 t_TAIL_05,
150101 t_TAIL_06,
150102 t_TAIL_07,
150103 t_TAIL_08,
150104 t_TAIL_09,
150105 t_TAIL_10,
150106 t_TAIL_11,
150107 t_TAIL_12,
150108 t_TAIL_13,
150109 t_TAIL_14,
150110 t_TAIL_15,
150111 t_TAIL_16,
150112 t_TAIL_17,
150113 t_TAIL_18,
150114 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(
150115 bsl::allocator_arg_t,
150116 allocator_type allocator,
150118 const t_ARG_01& arg_01,
150119 const t_ARG_02& arg_02,
150120 const t_ARG_03& arg_03,
150121 const t_ARG_04& arg_04,
150122 const t_ARG_05& arg_05,
150123 const t_ARG_06& arg_06,
150124 const t_ARG_07& arg_07,
150125 const t_ARG_08& arg_08,
150126 const t_ARG_09& arg_09,
150127 const t_ARG_10& arg_10,
150129: Variant_Base(
150130 bsl::allocator_arg_t(),
150131 allocator,
150132 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
150133 arg_01,
150134 arg_02,
150135 arg_03,
150136 arg_04,
150137 arg_05,
150138 arg_06,
150139 arg_07,
150140 arg_08,
150141 arg_09,
150142 arg_10)
150143{
150144}
150145#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
150146
150147
150148#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
150149template <class t_HEAD>
150150template <size_t t_INDEX>
150151inline
150152variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
150153 allocator_type allocator,
150155: Variant_Base(bsl::allocator_arg_t(),
150156 allocator,
150157 bsl::in_place_index_t<t_INDEX>())
150158{
150159}
150160#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
150161
150162#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
150163template <class t_HEAD, class t_TAIL_01>
150164template <size_t t_INDEX>
150165inline
150166variant<t_HEAD, t_TAIL_01,
150167 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
150168 allocator_type allocator,
150170: Variant_Base(bsl::allocator_arg_t(),
150171 allocator,
150172 bsl::in_place_index_t<t_INDEX>())
150173{
150174}
150175#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
150176
150177#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
150178template <class t_HEAD, class t_TAIL_01,
150179 class t_TAIL_02>
150180template <size_t t_INDEX>
150181inline
150182variant<t_HEAD, t_TAIL_01,
150183 t_TAIL_02,
150184 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
150185 allocator_type allocator,
150187: Variant_Base(bsl::allocator_arg_t(),
150188 allocator,
150189 bsl::in_place_index_t<t_INDEX>())
150190{
150191}
150192#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
150193
150194#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
150195template <class t_HEAD, class t_TAIL_01,
150196 class t_TAIL_02,
150197 class t_TAIL_03>
150198template <size_t t_INDEX>
150199inline
150200variant<t_HEAD, t_TAIL_01,
150201 t_TAIL_02,
150202 t_TAIL_03,
150203 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
150204 allocator_type allocator,
150206: Variant_Base(bsl::allocator_arg_t(),
150207 allocator,
150208 bsl::in_place_index_t<t_INDEX>())
150209{
150210}
150211#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
150212
150213#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
150214template <class t_HEAD, class t_TAIL_01,
150215 class t_TAIL_02,
150216 class t_TAIL_03,
150217 class t_TAIL_04>
150218template <size_t t_INDEX>
150219inline
150220variant<t_HEAD, t_TAIL_01,
150221 t_TAIL_02,
150222 t_TAIL_03,
150223 t_TAIL_04,
150224 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
150225 allocator_type allocator,
150227: Variant_Base(bsl::allocator_arg_t(),
150228 allocator,
150229 bsl::in_place_index_t<t_INDEX>())
150230{
150231}
150232#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
150233
150234#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
150235template <class t_HEAD, class t_TAIL_01,
150236 class t_TAIL_02,
150237 class t_TAIL_03,
150238 class t_TAIL_04,
150239 class t_TAIL_05>
150240template <size_t t_INDEX>
150241inline
150242variant<t_HEAD, t_TAIL_01,
150243 t_TAIL_02,
150244 t_TAIL_03,
150245 t_TAIL_04,
150246 t_TAIL_05,
150247 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
150248 allocator_type allocator,
150250: Variant_Base(bsl::allocator_arg_t(),
150251 allocator,
150252 bsl::in_place_index_t<t_INDEX>())
150253{
150254}
150255#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
150256
150257#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
150258template <class t_HEAD, class t_TAIL_01,
150259 class t_TAIL_02,
150260 class t_TAIL_03,
150261 class t_TAIL_04,
150262 class t_TAIL_05,
150263 class t_TAIL_06>
150264template <size_t t_INDEX>
150265inline
150266variant<t_HEAD, t_TAIL_01,
150267 t_TAIL_02,
150268 t_TAIL_03,
150269 t_TAIL_04,
150270 t_TAIL_05,
150271 t_TAIL_06,
150272 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
150273 allocator_type allocator,
150275: Variant_Base(bsl::allocator_arg_t(),
150276 allocator,
150277 bsl::in_place_index_t<t_INDEX>())
150278{
150279}
150280#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
150281
150282#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
150283template <class t_HEAD, class t_TAIL_01,
150284 class t_TAIL_02,
150285 class t_TAIL_03,
150286 class t_TAIL_04,
150287 class t_TAIL_05,
150288 class t_TAIL_06,
150289 class t_TAIL_07>
150290template <size_t t_INDEX>
150291inline
150292variant<t_HEAD, t_TAIL_01,
150293 t_TAIL_02,
150294 t_TAIL_03,
150295 t_TAIL_04,
150296 t_TAIL_05,
150297 t_TAIL_06,
150298 t_TAIL_07,
150299 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
150300 allocator_type allocator,
150302: Variant_Base(bsl::allocator_arg_t(),
150303 allocator,
150304 bsl::in_place_index_t<t_INDEX>())
150305{
150306}
150307#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
150308
150309#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
150310template <class t_HEAD, class t_TAIL_01,
150311 class t_TAIL_02,
150312 class t_TAIL_03,
150313 class t_TAIL_04,
150314 class t_TAIL_05,
150315 class t_TAIL_06,
150316 class t_TAIL_07,
150317 class t_TAIL_08>
150318template <size_t t_INDEX>
150319inline
150320variant<t_HEAD, t_TAIL_01,
150321 t_TAIL_02,
150322 t_TAIL_03,
150323 t_TAIL_04,
150324 t_TAIL_05,
150325 t_TAIL_06,
150326 t_TAIL_07,
150327 t_TAIL_08,
150328 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
150329 allocator_type allocator,
150331: Variant_Base(bsl::allocator_arg_t(),
150332 allocator,
150333 bsl::in_place_index_t<t_INDEX>())
150334{
150335}
150336#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
150337
150338#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
150339template <class t_HEAD, class t_TAIL_01,
150340 class t_TAIL_02,
150341 class t_TAIL_03,
150342 class t_TAIL_04,
150343 class t_TAIL_05,
150344 class t_TAIL_06,
150345 class t_TAIL_07,
150346 class t_TAIL_08,
150347 class t_TAIL_09>
150348template <size_t t_INDEX>
150349inline
150350variant<t_HEAD, t_TAIL_01,
150351 t_TAIL_02,
150352 t_TAIL_03,
150353 t_TAIL_04,
150354 t_TAIL_05,
150355 t_TAIL_06,
150356 t_TAIL_07,
150357 t_TAIL_08,
150358 t_TAIL_09,
150359 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
150360 allocator_type allocator,
150362: Variant_Base(bsl::allocator_arg_t(),
150363 allocator,
150364 bsl::in_place_index_t<t_INDEX>())
150365{
150366}
150367#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
150368
150369#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
150370template <class t_HEAD, class t_TAIL_01,
150371 class t_TAIL_02,
150372 class t_TAIL_03,
150373 class t_TAIL_04,
150374 class t_TAIL_05,
150375 class t_TAIL_06,
150376 class t_TAIL_07,
150377 class t_TAIL_08,
150378 class t_TAIL_09,
150379 class t_TAIL_10>
150380template <size_t t_INDEX>
150381inline
150382variant<t_HEAD, t_TAIL_01,
150383 t_TAIL_02,
150384 t_TAIL_03,
150385 t_TAIL_04,
150386 t_TAIL_05,
150387 t_TAIL_06,
150388 t_TAIL_07,
150389 t_TAIL_08,
150390 t_TAIL_09,
150391 t_TAIL_10,
150392 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
150393 allocator_type allocator,
150395: Variant_Base(bsl::allocator_arg_t(),
150396 allocator,
150397 bsl::in_place_index_t<t_INDEX>())
150398{
150399}
150400#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
150401
150402#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
150403template <class t_HEAD, class t_TAIL_01,
150404 class t_TAIL_02,
150405 class t_TAIL_03,
150406 class t_TAIL_04,
150407 class t_TAIL_05,
150408 class t_TAIL_06,
150409 class t_TAIL_07,
150410 class t_TAIL_08,
150411 class t_TAIL_09,
150412 class t_TAIL_10,
150413 class t_TAIL_11>
150414template <size_t t_INDEX>
150415inline
150416variant<t_HEAD, t_TAIL_01,
150417 t_TAIL_02,
150418 t_TAIL_03,
150419 t_TAIL_04,
150420 t_TAIL_05,
150421 t_TAIL_06,
150422 t_TAIL_07,
150423 t_TAIL_08,
150424 t_TAIL_09,
150425 t_TAIL_10,
150426 t_TAIL_11,
150427 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
150428 allocator_type allocator,
150430: Variant_Base(bsl::allocator_arg_t(),
150431 allocator,
150432 bsl::in_place_index_t<t_INDEX>())
150433{
150434}
150435#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
150436
150437#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
150438template <class t_HEAD, class t_TAIL_01,
150439 class t_TAIL_02,
150440 class t_TAIL_03,
150441 class t_TAIL_04,
150442 class t_TAIL_05,
150443 class t_TAIL_06,
150444 class t_TAIL_07,
150445 class t_TAIL_08,
150446 class t_TAIL_09,
150447 class t_TAIL_10,
150448 class t_TAIL_11,
150449 class t_TAIL_12>
150450template <size_t t_INDEX>
150451inline
150452variant<t_HEAD, t_TAIL_01,
150453 t_TAIL_02,
150454 t_TAIL_03,
150455 t_TAIL_04,
150456 t_TAIL_05,
150457 t_TAIL_06,
150458 t_TAIL_07,
150459 t_TAIL_08,
150460 t_TAIL_09,
150461 t_TAIL_10,
150462 t_TAIL_11,
150463 t_TAIL_12,
150464 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
150465 allocator_type allocator,
150467: Variant_Base(bsl::allocator_arg_t(),
150468 allocator,
150469 bsl::in_place_index_t<t_INDEX>())
150470{
150471}
150472#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
150473
150474#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
150475template <class t_HEAD, class t_TAIL_01,
150476 class t_TAIL_02,
150477 class t_TAIL_03,
150478 class t_TAIL_04,
150479 class t_TAIL_05,
150480 class t_TAIL_06,
150481 class t_TAIL_07,
150482 class t_TAIL_08,
150483 class t_TAIL_09,
150484 class t_TAIL_10,
150485 class t_TAIL_11,
150486 class t_TAIL_12,
150487 class t_TAIL_13>
150488template <size_t t_INDEX>
150489inline
150490variant<t_HEAD, t_TAIL_01,
150491 t_TAIL_02,
150492 t_TAIL_03,
150493 t_TAIL_04,
150494 t_TAIL_05,
150495 t_TAIL_06,
150496 t_TAIL_07,
150497 t_TAIL_08,
150498 t_TAIL_09,
150499 t_TAIL_10,
150500 t_TAIL_11,
150501 t_TAIL_12,
150502 t_TAIL_13,
150503 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
150504 allocator_type allocator,
150506: Variant_Base(bsl::allocator_arg_t(),
150507 allocator,
150508 bsl::in_place_index_t<t_INDEX>())
150509{
150510}
150511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
150512
150513#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
150514template <class t_HEAD, class t_TAIL_01,
150515 class t_TAIL_02,
150516 class t_TAIL_03,
150517 class t_TAIL_04,
150518 class t_TAIL_05,
150519 class t_TAIL_06,
150520 class t_TAIL_07,
150521 class t_TAIL_08,
150522 class t_TAIL_09,
150523 class t_TAIL_10,
150524 class t_TAIL_11,
150525 class t_TAIL_12,
150526 class t_TAIL_13,
150527 class t_TAIL_14>
150528template <size_t t_INDEX>
150529inline
150530variant<t_HEAD, t_TAIL_01,
150531 t_TAIL_02,
150532 t_TAIL_03,
150533 t_TAIL_04,
150534 t_TAIL_05,
150535 t_TAIL_06,
150536 t_TAIL_07,
150537 t_TAIL_08,
150538 t_TAIL_09,
150539 t_TAIL_10,
150540 t_TAIL_11,
150541 t_TAIL_12,
150542 t_TAIL_13,
150543 t_TAIL_14,
150544 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
150545 allocator_type allocator,
150547: Variant_Base(bsl::allocator_arg_t(),
150548 allocator,
150549 bsl::in_place_index_t<t_INDEX>())
150550{
150551}
150552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
150553
150554#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
150555template <class t_HEAD, class t_TAIL_01,
150556 class t_TAIL_02,
150557 class t_TAIL_03,
150558 class t_TAIL_04,
150559 class t_TAIL_05,
150560 class t_TAIL_06,
150561 class t_TAIL_07,
150562 class t_TAIL_08,
150563 class t_TAIL_09,
150564 class t_TAIL_10,
150565 class t_TAIL_11,
150566 class t_TAIL_12,
150567 class t_TAIL_13,
150568 class t_TAIL_14,
150569 class t_TAIL_15>
150570template <size_t t_INDEX>
150571inline
150572variant<t_HEAD, t_TAIL_01,
150573 t_TAIL_02,
150574 t_TAIL_03,
150575 t_TAIL_04,
150576 t_TAIL_05,
150577 t_TAIL_06,
150578 t_TAIL_07,
150579 t_TAIL_08,
150580 t_TAIL_09,
150581 t_TAIL_10,
150582 t_TAIL_11,
150583 t_TAIL_12,
150584 t_TAIL_13,
150585 t_TAIL_14,
150586 t_TAIL_15,
150587 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
150588 allocator_type allocator,
150590: Variant_Base(bsl::allocator_arg_t(),
150591 allocator,
150592 bsl::in_place_index_t<t_INDEX>())
150593{
150594}
150595#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
150596
150597#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
150598template <class t_HEAD, class t_TAIL_01,
150599 class t_TAIL_02,
150600 class t_TAIL_03,
150601 class t_TAIL_04,
150602 class t_TAIL_05,
150603 class t_TAIL_06,
150604 class t_TAIL_07,
150605 class t_TAIL_08,
150606 class t_TAIL_09,
150607 class t_TAIL_10,
150608 class t_TAIL_11,
150609 class t_TAIL_12,
150610 class t_TAIL_13,
150611 class t_TAIL_14,
150612 class t_TAIL_15,
150613 class t_TAIL_16>
150614template <size_t t_INDEX>
150615inline
150616variant<t_HEAD, t_TAIL_01,
150617 t_TAIL_02,
150618 t_TAIL_03,
150619 t_TAIL_04,
150620 t_TAIL_05,
150621 t_TAIL_06,
150622 t_TAIL_07,
150623 t_TAIL_08,
150624 t_TAIL_09,
150625 t_TAIL_10,
150626 t_TAIL_11,
150627 t_TAIL_12,
150628 t_TAIL_13,
150629 t_TAIL_14,
150630 t_TAIL_15,
150631 t_TAIL_16,
150632 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
150633 allocator_type allocator,
150635: Variant_Base(bsl::allocator_arg_t(),
150636 allocator,
150637 bsl::in_place_index_t<t_INDEX>())
150638{
150639}
150640#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
150641
150642#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
150643template <class t_HEAD, class t_TAIL_01,
150644 class t_TAIL_02,
150645 class t_TAIL_03,
150646 class t_TAIL_04,
150647 class t_TAIL_05,
150648 class t_TAIL_06,
150649 class t_TAIL_07,
150650 class t_TAIL_08,
150651 class t_TAIL_09,
150652 class t_TAIL_10,
150653 class t_TAIL_11,
150654 class t_TAIL_12,
150655 class t_TAIL_13,
150656 class t_TAIL_14,
150657 class t_TAIL_15,
150658 class t_TAIL_16,
150659 class t_TAIL_17>
150660template <size_t t_INDEX>
150661inline
150662variant<t_HEAD, t_TAIL_01,
150663 t_TAIL_02,
150664 t_TAIL_03,
150665 t_TAIL_04,
150666 t_TAIL_05,
150667 t_TAIL_06,
150668 t_TAIL_07,
150669 t_TAIL_08,
150670 t_TAIL_09,
150671 t_TAIL_10,
150672 t_TAIL_11,
150673 t_TAIL_12,
150674 t_TAIL_13,
150675 t_TAIL_14,
150676 t_TAIL_15,
150677 t_TAIL_16,
150678 t_TAIL_17,
150679 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
150680 allocator_type allocator,
150682: Variant_Base(bsl::allocator_arg_t(),
150683 allocator,
150684 bsl::in_place_index_t<t_INDEX>())
150685{
150686}
150687#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
150688
150689#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
150690template <class t_HEAD, class t_TAIL_01,
150691 class t_TAIL_02,
150692 class t_TAIL_03,
150693 class t_TAIL_04,
150694 class t_TAIL_05,
150695 class t_TAIL_06,
150696 class t_TAIL_07,
150697 class t_TAIL_08,
150698 class t_TAIL_09,
150699 class t_TAIL_10,
150700 class t_TAIL_11,
150701 class t_TAIL_12,
150702 class t_TAIL_13,
150703 class t_TAIL_14,
150704 class t_TAIL_15,
150705 class t_TAIL_16,
150706 class t_TAIL_17,
150707 class t_TAIL_18>
150708template <size_t t_INDEX>
150709inline
150710variant<t_HEAD, t_TAIL_01,
150711 t_TAIL_02,
150712 t_TAIL_03,
150713 t_TAIL_04,
150714 t_TAIL_05,
150715 t_TAIL_06,
150716 t_TAIL_07,
150717 t_TAIL_08,
150718 t_TAIL_09,
150719 t_TAIL_10,
150720 t_TAIL_11,
150721 t_TAIL_12,
150722 t_TAIL_13,
150723 t_TAIL_14,
150724 t_TAIL_15,
150725 t_TAIL_16,
150726 t_TAIL_17,
150727 t_TAIL_18,
150728 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
150729 allocator_type allocator,
150731: Variant_Base(bsl::allocator_arg_t(),
150732 allocator,
150733 bsl::in_place_index_t<t_INDEX>())
150734{
150735}
150736#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
150737
150738
150739#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
150740template <class t_HEAD>
150741template <size_t t_INDEX, class t_ARG_01>
150742inline
150743variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
150744 allocator_type allocator,
150746 const t_ARG_01& arg_01)
150747: Variant_Base(bsl::allocator_arg_t(),
150748 allocator,
150749 bsl::in_place_index_t<t_INDEX>(),
150750 arg_01)
150751{
150752}
150753#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
150754
150755#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
150756template <class t_HEAD, class t_TAIL_01>
150757template <size_t t_INDEX, class t_ARG_01>
150758inline
150759variant<t_HEAD, t_TAIL_01,
150760 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
150761 allocator_type allocator,
150763 const t_ARG_01& arg_01)
150764: Variant_Base(bsl::allocator_arg_t(),
150765 allocator,
150766 bsl::in_place_index_t<t_INDEX>(),
150767 arg_01)
150768{
150769}
150770#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
150771
150772#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
150773template <class t_HEAD, class t_TAIL_01,
150774 class t_TAIL_02>
150775template <size_t t_INDEX, class t_ARG_01>
150776inline
150777variant<t_HEAD, t_TAIL_01,
150778 t_TAIL_02,
150779 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
150780 allocator_type allocator,
150782 const t_ARG_01& arg_01)
150783: Variant_Base(bsl::allocator_arg_t(),
150784 allocator,
150785 bsl::in_place_index_t<t_INDEX>(),
150786 arg_01)
150787{
150788}
150789#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
150790
150791#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
150792template <class t_HEAD, class t_TAIL_01,
150793 class t_TAIL_02,
150794 class t_TAIL_03>
150795template <size_t t_INDEX, class t_ARG_01>
150796inline
150797variant<t_HEAD, t_TAIL_01,
150798 t_TAIL_02,
150799 t_TAIL_03,
150800 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
150801 allocator_type allocator,
150803 const t_ARG_01& arg_01)
150804: Variant_Base(bsl::allocator_arg_t(),
150805 allocator,
150806 bsl::in_place_index_t<t_INDEX>(),
150807 arg_01)
150808{
150809}
150810#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
150811
150812#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
150813template <class t_HEAD, class t_TAIL_01,
150814 class t_TAIL_02,
150815 class t_TAIL_03,
150816 class t_TAIL_04>
150817template <size_t t_INDEX, class t_ARG_01>
150818inline
150819variant<t_HEAD, t_TAIL_01,
150820 t_TAIL_02,
150821 t_TAIL_03,
150822 t_TAIL_04,
150823 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
150824 allocator_type allocator,
150826 const t_ARG_01& arg_01)
150827: Variant_Base(bsl::allocator_arg_t(),
150828 allocator,
150829 bsl::in_place_index_t<t_INDEX>(),
150830 arg_01)
150831{
150832}
150833#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
150834
150835#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
150836template <class t_HEAD, class t_TAIL_01,
150837 class t_TAIL_02,
150838 class t_TAIL_03,
150839 class t_TAIL_04,
150840 class t_TAIL_05>
150841template <size_t t_INDEX, class t_ARG_01>
150842inline
150843variant<t_HEAD, t_TAIL_01,
150844 t_TAIL_02,
150845 t_TAIL_03,
150846 t_TAIL_04,
150847 t_TAIL_05,
150848 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
150849 allocator_type allocator,
150851 const t_ARG_01& arg_01)
150852: Variant_Base(bsl::allocator_arg_t(),
150853 allocator,
150854 bsl::in_place_index_t<t_INDEX>(),
150855 arg_01)
150856{
150857}
150858#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
150859
150860#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
150861template <class t_HEAD, class t_TAIL_01,
150862 class t_TAIL_02,
150863 class t_TAIL_03,
150864 class t_TAIL_04,
150865 class t_TAIL_05,
150866 class t_TAIL_06>
150867template <size_t t_INDEX, class t_ARG_01>
150868inline
150869variant<t_HEAD, t_TAIL_01,
150870 t_TAIL_02,
150871 t_TAIL_03,
150872 t_TAIL_04,
150873 t_TAIL_05,
150874 t_TAIL_06,
150875 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
150876 allocator_type allocator,
150878 const t_ARG_01& arg_01)
150879: Variant_Base(bsl::allocator_arg_t(),
150880 allocator,
150881 bsl::in_place_index_t<t_INDEX>(),
150882 arg_01)
150883{
150884}
150885#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
150886
150887#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
150888template <class t_HEAD, class t_TAIL_01,
150889 class t_TAIL_02,
150890 class t_TAIL_03,
150891 class t_TAIL_04,
150892 class t_TAIL_05,
150893 class t_TAIL_06,
150894 class t_TAIL_07>
150895template <size_t t_INDEX, class t_ARG_01>
150896inline
150897variant<t_HEAD, t_TAIL_01,
150898 t_TAIL_02,
150899 t_TAIL_03,
150900 t_TAIL_04,
150901 t_TAIL_05,
150902 t_TAIL_06,
150903 t_TAIL_07,
150904 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
150905 allocator_type allocator,
150907 const t_ARG_01& arg_01)
150908: Variant_Base(bsl::allocator_arg_t(),
150909 allocator,
150910 bsl::in_place_index_t<t_INDEX>(),
150911 arg_01)
150912{
150913}
150914#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
150915
150916#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
150917template <class t_HEAD, class t_TAIL_01,
150918 class t_TAIL_02,
150919 class t_TAIL_03,
150920 class t_TAIL_04,
150921 class t_TAIL_05,
150922 class t_TAIL_06,
150923 class t_TAIL_07,
150924 class t_TAIL_08>
150925template <size_t t_INDEX, class t_ARG_01>
150926inline
150927variant<t_HEAD, t_TAIL_01,
150928 t_TAIL_02,
150929 t_TAIL_03,
150930 t_TAIL_04,
150931 t_TAIL_05,
150932 t_TAIL_06,
150933 t_TAIL_07,
150934 t_TAIL_08,
150935 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
150936 allocator_type allocator,
150938 const t_ARG_01& arg_01)
150939: Variant_Base(bsl::allocator_arg_t(),
150940 allocator,
150941 bsl::in_place_index_t<t_INDEX>(),
150942 arg_01)
150943{
150944}
150945#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
150946
150947#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
150948template <class t_HEAD, class t_TAIL_01,
150949 class t_TAIL_02,
150950 class t_TAIL_03,
150951 class t_TAIL_04,
150952 class t_TAIL_05,
150953 class t_TAIL_06,
150954 class t_TAIL_07,
150955 class t_TAIL_08,
150956 class t_TAIL_09>
150957template <size_t t_INDEX, class t_ARG_01>
150958inline
150959variant<t_HEAD, t_TAIL_01,
150960 t_TAIL_02,
150961 t_TAIL_03,
150962 t_TAIL_04,
150963 t_TAIL_05,
150964 t_TAIL_06,
150965 t_TAIL_07,
150966 t_TAIL_08,
150967 t_TAIL_09,
150968 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
150969 allocator_type allocator,
150971 const t_ARG_01& arg_01)
150972: Variant_Base(bsl::allocator_arg_t(),
150973 allocator,
150974 bsl::in_place_index_t<t_INDEX>(),
150975 arg_01)
150976{
150977}
150978#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
150979
150980#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
150981template <class t_HEAD, class t_TAIL_01,
150982 class t_TAIL_02,
150983 class t_TAIL_03,
150984 class t_TAIL_04,
150985 class t_TAIL_05,
150986 class t_TAIL_06,
150987 class t_TAIL_07,
150988 class t_TAIL_08,
150989 class t_TAIL_09,
150990 class t_TAIL_10>
150991template <size_t t_INDEX, class t_ARG_01>
150992inline
150993variant<t_HEAD, t_TAIL_01,
150994 t_TAIL_02,
150995 t_TAIL_03,
150996 t_TAIL_04,
150997 t_TAIL_05,
150998 t_TAIL_06,
150999 t_TAIL_07,
151000 t_TAIL_08,
151001 t_TAIL_09,
151002 t_TAIL_10,
151003 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
151004 allocator_type allocator,
151006 const t_ARG_01& arg_01)
151007: Variant_Base(bsl::allocator_arg_t(),
151008 allocator,
151009 bsl::in_place_index_t<t_INDEX>(),
151010 arg_01)
151011{
151012}
151013#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
151014
151015#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
151016template <class t_HEAD, class t_TAIL_01,
151017 class t_TAIL_02,
151018 class t_TAIL_03,
151019 class t_TAIL_04,
151020 class t_TAIL_05,
151021 class t_TAIL_06,
151022 class t_TAIL_07,
151023 class t_TAIL_08,
151024 class t_TAIL_09,
151025 class t_TAIL_10,
151026 class t_TAIL_11>
151027template <size_t t_INDEX, class t_ARG_01>
151028inline
151029variant<t_HEAD, t_TAIL_01,
151030 t_TAIL_02,
151031 t_TAIL_03,
151032 t_TAIL_04,
151033 t_TAIL_05,
151034 t_TAIL_06,
151035 t_TAIL_07,
151036 t_TAIL_08,
151037 t_TAIL_09,
151038 t_TAIL_10,
151039 t_TAIL_11,
151040 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
151041 allocator_type allocator,
151043 const t_ARG_01& arg_01)
151044: Variant_Base(bsl::allocator_arg_t(),
151045 allocator,
151046 bsl::in_place_index_t<t_INDEX>(),
151047 arg_01)
151048{
151049}
151050#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
151051
151052#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
151053template <class t_HEAD, class t_TAIL_01,
151054 class t_TAIL_02,
151055 class t_TAIL_03,
151056 class t_TAIL_04,
151057 class t_TAIL_05,
151058 class t_TAIL_06,
151059 class t_TAIL_07,
151060 class t_TAIL_08,
151061 class t_TAIL_09,
151062 class t_TAIL_10,
151063 class t_TAIL_11,
151064 class t_TAIL_12>
151065template <size_t t_INDEX, class t_ARG_01>
151066inline
151067variant<t_HEAD, t_TAIL_01,
151068 t_TAIL_02,
151069 t_TAIL_03,
151070 t_TAIL_04,
151071 t_TAIL_05,
151072 t_TAIL_06,
151073 t_TAIL_07,
151074 t_TAIL_08,
151075 t_TAIL_09,
151076 t_TAIL_10,
151077 t_TAIL_11,
151078 t_TAIL_12,
151079 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
151080 allocator_type allocator,
151082 const t_ARG_01& arg_01)
151083: Variant_Base(bsl::allocator_arg_t(),
151084 allocator,
151085 bsl::in_place_index_t<t_INDEX>(),
151086 arg_01)
151087{
151088}
151089#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
151090
151091#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
151092template <class t_HEAD, class t_TAIL_01,
151093 class t_TAIL_02,
151094 class t_TAIL_03,
151095 class t_TAIL_04,
151096 class t_TAIL_05,
151097 class t_TAIL_06,
151098 class t_TAIL_07,
151099 class t_TAIL_08,
151100 class t_TAIL_09,
151101 class t_TAIL_10,
151102 class t_TAIL_11,
151103 class t_TAIL_12,
151104 class t_TAIL_13>
151105template <size_t t_INDEX, class t_ARG_01>
151106inline
151107variant<t_HEAD, t_TAIL_01,
151108 t_TAIL_02,
151109 t_TAIL_03,
151110 t_TAIL_04,
151111 t_TAIL_05,
151112 t_TAIL_06,
151113 t_TAIL_07,
151114 t_TAIL_08,
151115 t_TAIL_09,
151116 t_TAIL_10,
151117 t_TAIL_11,
151118 t_TAIL_12,
151119 t_TAIL_13,
151120 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
151121 allocator_type allocator,
151123 const t_ARG_01& arg_01)
151124: Variant_Base(bsl::allocator_arg_t(),
151125 allocator,
151126 bsl::in_place_index_t<t_INDEX>(),
151127 arg_01)
151128{
151129}
151130#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
151131
151132#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
151133template <class t_HEAD, class t_TAIL_01,
151134 class t_TAIL_02,
151135 class t_TAIL_03,
151136 class t_TAIL_04,
151137 class t_TAIL_05,
151138 class t_TAIL_06,
151139 class t_TAIL_07,
151140 class t_TAIL_08,
151141 class t_TAIL_09,
151142 class t_TAIL_10,
151143 class t_TAIL_11,
151144 class t_TAIL_12,
151145 class t_TAIL_13,
151146 class t_TAIL_14>
151147template <size_t t_INDEX, class t_ARG_01>
151148inline
151149variant<t_HEAD, t_TAIL_01,
151150 t_TAIL_02,
151151 t_TAIL_03,
151152 t_TAIL_04,
151153 t_TAIL_05,
151154 t_TAIL_06,
151155 t_TAIL_07,
151156 t_TAIL_08,
151157 t_TAIL_09,
151158 t_TAIL_10,
151159 t_TAIL_11,
151160 t_TAIL_12,
151161 t_TAIL_13,
151162 t_TAIL_14,
151163 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
151164 allocator_type allocator,
151166 const t_ARG_01& arg_01)
151167: Variant_Base(bsl::allocator_arg_t(),
151168 allocator,
151169 bsl::in_place_index_t<t_INDEX>(),
151170 arg_01)
151171{
151172}
151173#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
151174
151175#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
151176template <class t_HEAD, class t_TAIL_01,
151177 class t_TAIL_02,
151178 class t_TAIL_03,
151179 class t_TAIL_04,
151180 class t_TAIL_05,
151181 class t_TAIL_06,
151182 class t_TAIL_07,
151183 class t_TAIL_08,
151184 class t_TAIL_09,
151185 class t_TAIL_10,
151186 class t_TAIL_11,
151187 class t_TAIL_12,
151188 class t_TAIL_13,
151189 class t_TAIL_14,
151190 class t_TAIL_15>
151191template <size_t t_INDEX, class t_ARG_01>
151192inline
151193variant<t_HEAD, t_TAIL_01,
151194 t_TAIL_02,
151195 t_TAIL_03,
151196 t_TAIL_04,
151197 t_TAIL_05,
151198 t_TAIL_06,
151199 t_TAIL_07,
151200 t_TAIL_08,
151201 t_TAIL_09,
151202 t_TAIL_10,
151203 t_TAIL_11,
151204 t_TAIL_12,
151205 t_TAIL_13,
151206 t_TAIL_14,
151207 t_TAIL_15,
151208 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
151209 allocator_type allocator,
151211 const t_ARG_01& arg_01)
151212: Variant_Base(bsl::allocator_arg_t(),
151213 allocator,
151214 bsl::in_place_index_t<t_INDEX>(),
151215 arg_01)
151216{
151217}
151218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
151219
151220#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
151221template <class t_HEAD, class t_TAIL_01,
151222 class t_TAIL_02,
151223 class t_TAIL_03,
151224 class t_TAIL_04,
151225 class t_TAIL_05,
151226 class t_TAIL_06,
151227 class t_TAIL_07,
151228 class t_TAIL_08,
151229 class t_TAIL_09,
151230 class t_TAIL_10,
151231 class t_TAIL_11,
151232 class t_TAIL_12,
151233 class t_TAIL_13,
151234 class t_TAIL_14,
151235 class t_TAIL_15,
151236 class t_TAIL_16>
151237template <size_t t_INDEX, class t_ARG_01>
151238inline
151239variant<t_HEAD, t_TAIL_01,
151240 t_TAIL_02,
151241 t_TAIL_03,
151242 t_TAIL_04,
151243 t_TAIL_05,
151244 t_TAIL_06,
151245 t_TAIL_07,
151246 t_TAIL_08,
151247 t_TAIL_09,
151248 t_TAIL_10,
151249 t_TAIL_11,
151250 t_TAIL_12,
151251 t_TAIL_13,
151252 t_TAIL_14,
151253 t_TAIL_15,
151254 t_TAIL_16,
151255 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
151256 allocator_type allocator,
151258 const t_ARG_01& arg_01)
151259: Variant_Base(bsl::allocator_arg_t(),
151260 allocator,
151261 bsl::in_place_index_t<t_INDEX>(),
151262 arg_01)
151263{
151264}
151265#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
151266
151267#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
151268template <class t_HEAD, class t_TAIL_01,
151269 class t_TAIL_02,
151270 class t_TAIL_03,
151271 class t_TAIL_04,
151272 class t_TAIL_05,
151273 class t_TAIL_06,
151274 class t_TAIL_07,
151275 class t_TAIL_08,
151276 class t_TAIL_09,
151277 class t_TAIL_10,
151278 class t_TAIL_11,
151279 class t_TAIL_12,
151280 class t_TAIL_13,
151281 class t_TAIL_14,
151282 class t_TAIL_15,
151283 class t_TAIL_16,
151284 class t_TAIL_17>
151285template <size_t t_INDEX, class t_ARG_01>
151286inline
151287variant<t_HEAD, t_TAIL_01,
151288 t_TAIL_02,
151289 t_TAIL_03,
151290 t_TAIL_04,
151291 t_TAIL_05,
151292 t_TAIL_06,
151293 t_TAIL_07,
151294 t_TAIL_08,
151295 t_TAIL_09,
151296 t_TAIL_10,
151297 t_TAIL_11,
151298 t_TAIL_12,
151299 t_TAIL_13,
151300 t_TAIL_14,
151301 t_TAIL_15,
151302 t_TAIL_16,
151303 t_TAIL_17,
151304 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
151305 allocator_type allocator,
151307 const t_ARG_01& arg_01)
151308: Variant_Base(bsl::allocator_arg_t(),
151309 allocator,
151310 bsl::in_place_index_t<t_INDEX>(),
151311 arg_01)
151312{
151313}
151314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
151315
151316#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
151317template <class t_HEAD, class t_TAIL_01,
151318 class t_TAIL_02,
151319 class t_TAIL_03,
151320 class t_TAIL_04,
151321 class t_TAIL_05,
151322 class t_TAIL_06,
151323 class t_TAIL_07,
151324 class t_TAIL_08,
151325 class t_TAIL_09,
151326 class t_TAIL_10,
151327 class t_TAIL_11,
151328 class t_TAIL_12,
151329 class t_TAIL_13,
151330 class t_TAIL_14,
151331 class t_TAIL_15,
151332 class t_TAIL_16,
151333 class t_TAIL_17,
151334 class t_TAIL_18>
151335template <size_t t_INDEX, class t_ARG_01>
151336inline
151337variant<t_HEAD, t_TAIL_01,
151338 t_TAIL_02,
151339 t_TAIL_03,
151340 t_TAIL_04,
151341 t_TAIL_05,
151342 t_TAIL_06,
151343 t_TAIL_07,
151344 t_TAIL_08,
151345 t_TAIL_09,
151346 t_TAIL_10,
151347 t_TAIL_11,
151348 t_TAIL_12,
151349 t_TAIL_13,
151350 t_TAIL_14,
151351 t_TAIL_15,
151352 t_TAIL_16,
151353 t_TAIL_17,
151354 t_TAIL_18,
151355 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
151356 allocator_type allocator,
151358 const t_ARG_01& arg_01)
151359: Variant_Base(bsl::allocator_arg_t(),
151360 allocator,
151361 bsl::in_place_index_t<t_INDEX>(),
151362 arg_01)
151363{
151364}
151365#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
151366
151367
151368#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
151369template <class t_HEAD>
151370template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151371inline
151372variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
151373 allocator_type allocator,
151375 const t_ARG_01& arg_01,
151376 const t_ARG_02& arg_02)
151377: Variant_Base(bsl::allocator_arg_t(),
151378 allocator,
151379 bsl::in_place_index_t<t_INDEX>(),
151380 arg_01,
151381 arg_02)
151382{
151383}
151384#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
151385
151386#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
151387template <class t_HEAD, class t_TAIL_01>
151388template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151389inline
151390variant<t_HEAD, t_TAIL_01,
151391 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
151392 allocator_type allocator,
151394 const t_ARG_01& arg_01,
151395 const t_ARG_02& arg_02)
151396: Variant_Base(bsl::allocator_arg_t(),
151397 allocator,
151398 bsl::in_place_index_t<t_INDEX>(),
151399 arg_01,
151400 arg_02)
151401{
151402}
151403#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
151404
151405#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
151406template <class t_HEAD, class t_TAIL_01,
151407 class t_TAIL_02>
151408template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151409inline
151410variant<t_HEAD, t_TAIL_01,
151411 t_TAIL_02,
151412 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
151413 allocator_type allocator,
151415 const t_ARG_01& arg_01,
151416 const t_ARG_02& arg_02)
151417: Variant_Base(bsl::allocator_arg_t(),
151418 allocator,
151419 bsl::in_place_index_t<t_INDEX>(),
151420 arg_01,
151421 arg_02)
151422{
151423}
151424#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
151425
151426#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
151427template <class t_HEAD, class t_TAIL_01,
151428 class t_TAIL_02,
151429 class t_TAIL_03>
151430template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151431inline
151432variant<t_HEAD, t_TAIL_01,
151433 t_TAIL_02,
151434 t_TAIL_03,
151435 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
151436 allocator_type allocator,
151438 const t_ARG_01& arg_01,
151439 const t_ARG_02& arg_02)
151440: Variant_Base(bsl::allocator_arg_t(),
151441 allocator,
151442 bsl::in_place_index_t<t_INDEX>(),
151443 arg_01,
151444 arg_02)
151445{
151446}
151447#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
151448
151449#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
151450template <class t_HEAD, class t_TAIL_01,
151451 class t_TAIL_02,
151452 class t_TAIL_03,
151453 class t_TAIL_04>
151454template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151455inline
151456variant<t_HEAD, t_TAIL_01,
151457 t_TAIL_02,
151458 t_TAIL_03,
151459 t_TAIL_04,
151460 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
151461 allocator_type allocator,
151463 const t_ARG_01& arg_01,
151464 const t_ARG_02& arg_02)
151465: Variant_Base(bsl::allocator_arg_t(),
151466 allocator,
151467 bsl::in_place_index_t<t_INDEX>(),
151468 arg_01,
151469 arg_02)
151470{
151471}
151472#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
151473
151474#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
151475template <class t_HEAD, class t_TAIL_01,
151476 class t_TAIL_02,
151477 class t_TAIL_03,
151478 class t_TAIL_04,
151479 class t_TAIL_05>
151480template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151481inline
151482variant<t_HEAD, t_TAIL_01,
151483 t_TAIL_02,
151484 t_TAIL_03,
151485 t_TAIL_04,
151486 t_TAIL_05,
151487 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
151488 allocator_type allocator,
151490 const t_ARG_01& arg_01,
151491 const t_ARG_02& arg_02)
151492: Variant_Base(bsl::allocator_arg_t(),
151493 allocator,
151494 bsl::in_place_index_t<t_INDEX>(),
151495 arg_01,
151496 arg_02)
151497{
151498}
151499#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
151500
151501#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
151502template <class t_HEAD, class t_TAIL_01,
151503 class t_TAIL_02,
151504 class t_TAIL_03,
151505 class t_TAIL_04,
151506 class t_TAIL_05,
151507 class t_TAIL_06>
151508template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151509inline
151510variant<t_HEAD, t_TAIL_01,
151511 t_TAIL_02,
151512 t_TAIL_03,
151513 t_TAIL_04,
151514 t_TAIL_05,
151515 t_TAIL_06,
151516 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
151517 allocator_type allocator,
151519 const t_ARG_01& arg_01,
151520 const t_ARG_02& arg_02)
151521: Variant_Base(bsl::allocator_arg_t(),
151522 allocator,
151523 bsl::in_place_index_t<t_INDEX>(),
151524 arg_01,
151525 arg_02)
151526{
151527}
151528#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
151529
151530#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
151531template <class t_HEAD, class t_TAIL_01,
151532 class t_TAIL_02,
151533 class t_TAIL_03,
151534 class t_TAIL_04,
151535 class t_TAIL_05,
151536 class t_TAIL_06,
151537 class t_TAIL_07>
151538template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151539inline
151540variant<t_HEAD, t_TAIL_01,
151541 t_TAIL_02,
151542 t_TAIL_03,
151543 t_TAIL_04,
151544 t_TAIL_05,
151545 t_TAIL_06,
151546 t_TAIL_07,
151547 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
151548 allocator_type allocator,
151550 const t_ARG_01& arg_01,
151551 const t_ARG_02& arg_02)
151552: Variant_Base(bsl::allocator_arg_t(),
151553 allocator,
151554 bsl::in_place_index_t<t_INDEX>(),
151555 arg_01,
151556 arg_02)
151557{
151558}
151559#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
151560
151561#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
151562template <class t_HEAD, class t_TAIL_01,
151563 class t_TAIL_02,
151564 class t_TAIL_03,
151565 class t_TAIL_04,
151566 class t_TAIL_05,
151567 class t_TAIL_06,
151568 class t_TAIL_07,
151569 class t_TAIL_08>
151570template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151571inline
151572variant<t_HEAD, t_TAIL_01,
151573 t_TAIL_02,
151574 t_TAIL_03,
151575 t_TAIL_04,
151576 t_TAIL_05,
151577 t_TAIL_06,
151578 t_TAIL_07,
151579 t_TAIL_08,
151580 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
151581 allocator_type allocator,
151583 const t_ARG_01& arg_01,
151584 const t_ARG_02& arg_02)
151585: Variant_Base(bsl::allocator_arg_t(),
151586 allocator,
151587 bsl::in_place_index_t<t_INDEX>(),
151588 arg_01,
151589 arg_02)
151590{
151591}
151592#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
151593
151594#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
151595template <class t_HEAD, class t_TAIL_01,
151596 class t_TAIL_02,
151597 class t_TAIL_03,
151598 class t_TAIL_04,
151599 class t_TAIL_05,
151600 class t_TAIL_06,
151601 class t_TAIL_07,
151602 class t_TAIL_08,
151603 class t_TAIL_09>
151604template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151605inline
151606variant<t_HEAD, t_TAIL_01,
151607 t_TAIL_02,
151608 t_TAIL_03,
151609 t_TAIL_04,
151610 t_TAIL_05,
151611 t_TAIL_06,
151612 t_TAIL_07,
151613 t_TAIL_08,
151614 t_TAIL_09,
151615 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
151616 allocator_type allocator,
151618 const t_ARG_01& arg_01,
151619 const t_ARG_02& arg_02)
151620: Variant_Base(bsl::allocator_arg_t(),
151621 allocator,
151622 bsl::in_place_index_t<t_INDEX>(),
151623 arg_01,
151624 arg_02)
151625{
151626}
151627#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
151628
151629#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
151630template <class t_HEAD, class t_TAIL_01,
151631 class t_TAIL_02,
151632 class t_TAIL_03,
151633 class t_TAIL_04,
151634 class t_TAIL_05,
151635 class t_TAIL_06,
151636 class t_TAIL_07,
151637 class t_TAIL_08,
151638 class t_TAIL_09,
151639 class t_TAIL_10>
151640template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151641inline
151642variant<t_HEAD, t_TAIL_01,
151643 t_TAIL_02,
151644 t_TAIL_03,
151645 t_TAIL_04,
151646 t_TAIL_05,
151647 t_TAIL_06,
151648 t_TAIL_07,
151649 t_TAIL_08,
151650 t_TAIL_09,
151651 t_TAIL_10,
151652 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
151653 allocator_type allocator,
151655 const t_ARG_01& arg_01,
151656 const t_ARG_02& arg_02)
151657: Variant_Base(bsl::allocator_arg_t(),
151658 allocator,
151659 bsl::in_place_index_t<t_INDEX>(),
151660 arg_01,
151661 arg_02)
151662{
151663}
151664#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
151665
151666#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
151667template <class t_HEAD, class t_TAIL_01,
151668 class t_TAIL_02,
151669 class t_TAIL_03,
151670 class t_TAIL_04,
151671 class t_TAIL_05,
151672 class t_TAIL_06,
151673 class t_TAIL_07,
151674 class t_TAIL_08,
151675 class t_TAIL_09,
151676 class t_TAIL_10,
151677 class t_TAIL_11>
151678template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151679inline
151680variant<t_HEAD, t_TAIL_01,
151681 t_TAIL_02,
151682 t_TAIL_03,
151683 t_TAIL_04,
151684 t_TAIL_05,
151685 t_TAIL_06,
151686 t_TAIL_07,
151687 t_TAIL_08,
151688 t_TAIL_09,
151689 t_TAIL_10,
151690 t_TAIL_11,
151691 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
151692 allocator_type allocator,
151694 const t_ARG_01& arg_01,
151695 const t_ARG_02& arg_02)
151696: Variant_Base(bsl::allocator_arg_t(),
151697 allocator,
151698 bsl::in_place_index_t<t_INDEX>(),
151699 arg_01,
151700 arg_02)
151701{
151702}
151703#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
151704
151705#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
151706template <class t_HEAD, class t_TAIL_01,
151707 class t_TAIL_02,
151708 class t_TAIL_03,
151709 class t_TAIL_04,
151710 class t_TAIL_05,
151711 class t_TAIL_06,
151712 class t_TAIL_07,
151713 class t_TAIL_08,
151714 class t_TAIL_09,
151715 class t_TAIL_10,
151716 class t_TAIL_11,
151717 class t_TAIL_12>
151718template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151719inline
151720variant<t_HEAD, t_TAIL_01,
151721 t_TAIL_02,
151722 t_TAIL_03,
151723 t_TAIL_04,
151724 t_TAIL_05,
151725 t_TAIL_06,
151726 t_TAIL_07,
151727 t_TAIL_08,
151728 t_TAIL_09,
151729 t_TAIL_10,
151730 t_TAIL_11,
151731 t_TAIL_12,
151732 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
151733 allocator_type allocator,
151735 const t_ARG_01& arg_01,
151736 const t_ARG_02& arg_02)
151737: Variant_Base(bsl::allocator_arg_t(),
151738 allocator,
151739 bsl::in_place_index_t<t_INDEX>(),
151740 arg_01,
151741 arg_02)
151742{
151743}
151744#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
151745
151746#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
151747template <class t_HEAD, class t_TAIL_01,
151748 class t_TAIL_02,
151749 class t_TAIL_03,
151750 class t_TAIL_04,
151751 class t_TAIL_05,
151752 class t_TAIL_06,
151753 class t_TAIL_07,
151754 class t_TAIL_08,
151755 class t_TAIL_09,
151756 class t_TAIL_10,
151757 class t_TAIL_11,
151758 class t_TAIL_12,
151759 class t_TAIL_13>
151760template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151761inline
151762variant<t_HEAD, t_TAIL_01,
151763 t_TAIL_02,
151764 t_TAIL_03,
151765 t_TAIL_04,
151766 t_TAIL_05,
151767 t_TAIL_06,
151768 t_TAIL_07,
151769 t_TAIL_08,
151770 t_TAIL_09,
151771 t_TAIL_10,
151772 t_TAIL_11,
151773 t_TAIL_12,
151774 t_TAIL_13,
151775 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
151776 allocator_type allocator,
151778 const t_ARG_01& arg_01,
151779 const t_ARG_02& arg_02)
151780: Variant_Base(bsl::allocator_arg_t(),
151781 allocator,
151782 bsl::in_place_index_t<t_INDEX>(),
151783 arg_01,
151784 arg_02)
151785{
151786}
151787#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
151788
151789#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
151790template <class t_HEAD, class t_TAIL_01,
151791 class t_TAIL_02,
151792 class t_TAIL_03,
151793 class t_TAIL_04,
151794 class t_TAIL_05,
151795 class t_TAIL_06,
151796 class t_TAIL_07,
151797 class t_TAIL_08,
151798 class t_TAIL_09,
151799 class t_TAIL_10,
151800 class t_TAIL_11,
151801 class t_TAIL_12,
151802 class t_TAIL_13,
151803 class t_TAIL_14>
151804template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151805inline
151806variant<t_HEAD, t_TAIL_01,
151807 t_TAIL_02,
151808 t_TAIL_03,
151809 t_TAIL_04,
151810 t_TAIL_05,
151811 t_TAIL_06,
151812 t_TAIL_07,
151813 t_TAIL_08,
151814 t_TAIL_09,
151815 t_TAIL_10,
151816 t_TAIL_11,
151817 t_TAIL_12,
151818 t_TAIL_13,
151819 t_TAIL_14,
151820 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
151821 allocator_type allocator,
151823 const t_ARG_01& arg_01,
151824 const t_ARG_02& arg_02)
151825: Variant_Base(bsl::allocator_arg_t(),
151826 allocator,
151827 bsl::in_place_index_t<t_INDEX>(),
151828 arg_01,
151829 arg_02)
151830{
151831}
151832#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
151833
151834#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
151835template <class t_HEAD, class t_TAIL_01,
151836 class t_TAIL_02,
151837 class t_TAIL_03,
151838 class t_TAIL_04,
151839 class t_TAIL_05,
151840 class t_TAIL_06,
151841 class t_TAIL_07,
151842 class t_TAIL_08,
151843 class t_TAIL_09,
151844 class t_TAIL_10,
151845 class t_TAIL_11,
151846 class t_TAIL_12,
151847 class t_TAIL_13,
151848 class t_TAIL_14,
151849 class t_TAIL_15>
151850template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151851inline
151852variant<t_HEAD, t_TAIL_01,
151853 t_TAIL_02,
151854 t_TAIL_03,
151855 t_TAIL_04,
151856 t_TAIL_05,
151857 t_TAIL_06,
151858 t_TAIL_07,
151859 t_TAIL_08,
151860 t_TAIL_09,
151861 t_TAIL_10,
151862 t_TAIL_11,
151863 t_TAIL_12,
151864 t_TAIL_13,
151865 t_TAIL_14,
151866 t_TAIL_15,
151867 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
151868 allocator_type allocator,
151870 const t_ARG_01& arg_01,
151871 const t_ARG_02& arg_02)
151872: Variant_Base(bsl::allocator_arg_t(),
151873 allocator,
151874 bsl::in_place_index_t<t_INDEX>(),
151875 arg_01,
151876 arg_02)
151877{
151878}
151879#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
151880
151881#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
151882template <class t_HEAD, class t_TAIL_01,
151883 class t_TAIL_02,
151884 class t_TAIL_03,
151885 class t_TAIL_04,
151886 class t_TAIL_05,
151887 class t_TAIL_06,
151888 class t_TAIL_07,
151889 class t_TAIL_08,
151890 class t_TAIL_09,
151891 class t_TAIL_10,
151892 class t_TAIL_11,
151893 class t_TAIL_12,
151894 class t_TAIL_13,
151895 class t_TAIL_14,
151896 class t_TAIL_15,
151897 class t_TAIL_16>
151898template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151899inline
151900variant<t_HEAD, t_TAIL_01,
151901 t_TAIL_02,
151902 t_TAIL_03,
151903 t_TAIL_04,
151904 t_TAIL_05,
151905 t_TAIL_06,
151906 t_TAIL_07,
151907 t_TAIL_08,
151908 t_TAIL_09,
151909 t_TAIL_10,
151910 t_TAIL_11,
151911 t_TAIL_12,
151912 t_TAIL_13,
151913 t_TAIL_14,
151914 t_TAIL_15,
151915 t_TAIL_16,
151916 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
151917 allocator_type allocator,
151919 const t_ARG_01& arg_01,
151920 const t_ARG_02& arg_02)
151921: Variant_Base(bsl::allocator_arg_t(),
151922 allocator,
151923 bsl::in_place_index_t<t_INDEX>(),
151924 arg_01,
151925 arg_02)
151926{
151927}
151928#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
151929
151930#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
151931template <class t_HEAD, class t_TAIL_01,
151932 class t_TAIL_02,
151933 class t_TAIL_03,
151934 class t_TAIL_04,
151935 class t_TAIL_05,
151936 class t_TAIL_06,
151937 class t_TAIL_07,
151938 class t_TAIL_08,
151939 class t_TAIL_09,
151940 class t_TAIL_10,
151941 class t_TAIL_11,
151942 class t_TAIL_12,
151943 class t_TAIL_13,
151944 class t_TAIL_14,
151945 class t_TAIL_15,
151946 class t_TAIL_16,
151947 class t_TAIL_17>
151948template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
151949inline
151950variant<t_HEAD, t_TAIL_01,
151951 t_TAIL_02,
151952 t_TAIL_03,
151953 t_TAIL_04,
151954 t_TAIL_05,
151955 t_TAIL_06,
151956 t_TAIL_07,
151957 t_TAIL_08,
151958 t_TAIL_09,
151959 t_TAIL_10,
151960 t_TAIL_11,
151961 t_TAIL_12,
151962 t_TAIL_13,
151963 t_TAIL_14,
151964 t_TAIL_15,
151965 t_TAIL_16,
151966 t_TAIL_17,
151967 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
151968 allocator_type allocator,
151970 const t_ARG_01& arg_01,
151971 const t_ARG_02& arg_02)
151972: Variant_Base(bsl::allocator_arg_t(),
151973 allocator,
151974 bsl::in_place_index_t<t_INDEX>(),
151975 arg_01,
151976 arg_02)
151977{
151978}
151979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
151980
151981#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
151982template <class t_HEAD, class t_TAIL_01,
151983 class t_TAIL_02,
151984 class t_TAIL_03,
151985 class t_TAIL_04,
151986 class t_TAIL_05,
151987 class t_TAIL_06,
151988 class t_TAIL_07,
151989 class t_TAIL_08,
151990 class t_TAIL_09,
151991 class t_TAIL_10,
151992 class t_TAIL_11,
151993 class t_TAIL_12,
151994 class t_TAIL_13,
151995 class t_TAIL_14,
151996 class t_TAIL_15,
151997 class t_TAIL_16,
151998 class t_TAIL_17,
151999 class t_TAIL_18>
152000template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
152001inline
152002variant<t_HEAD, t_TAIL_01,
152003 t_TAIL_02,
152004 t_TAIL_03,
152005 t_TAIL_04,
152006 t_TAIL_05,
152007 t_TAIL_06,
152008 t_TAIL_07,
152009 t_TAIL_08,
152010 t_TAIL_09,
152011 t_TAIL_10,
152012 t_TAIL_11,
152013 t_TAIL_12,
152014 t_TAIL_13,
152015 t_TAIL_14,
152016 t_TAIL_15,
152017 t_TAIL_16,
152018 t_TAIL_17,
152019 t_TAIL_18,
152020 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
152021 allocator_type allocator,
152023 const t_ARG_01& arg_01,
152024 const t_ARG_02& arg_02)
152025: Variant_Base(bsl::allocator_arg_t(),
152026 allocator,
152027 bsl::in_place_index_t<t_INDEX>(),
152028 arg_01,
152029 arg_02)
152030{
152031}
152032#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
152033
152034
152035#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
152036template <class t_HEAD>
152037template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152038inline
152039variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
152040 allocator_type allocator,
152042 const t_ARG_01& arg_01,
152043 const t_ARG_02& arg_02,
152044 const t_ARG_03& arg_03)
152045: Variant_Base(bsl::allocator_arg_t(),
152046 allocator,
152047 bsl::in_place_index_t<t_INDEX>(),
152048 arg_01,
152049 arg_02,
152050 arg_03)
152051{
152052}
152053#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
152054
152055#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
152056template <class t_HEAD, class t_TAIL_01>
152057template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152058inline
152059variant<t_HEAD, t_TAIL_01,
152060 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
152061 allocator_type allocator,
152063 const t_ARG_01& arg_01,
152064 const t_ARG_02& arg_02,
152065 const t_ARG_03& arg_03)
152066: Variant_Base(bsl::allocator_arg_t(),
152067 allocator,
152068 bsl::in_place_index_t<t_INDEX>(),
152069 arg_01,
152070 arg_02,
152071 arg_03)
152072{
152073}
152074#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
152075
152076#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
152077template <class t_HEAD, class t_TAIL_01,
152078 class t_TAIL_02>
152079template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152080inline
152081variant<t_HEAD, t_TAIL_01,
152082 t_TAIL_02,
152083 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
152084 allocator_type allocator,
152086 const t_ARG_01& arg_01,
152087 const t_ARG_02& arg_02,
152088 const t_ARG_03& arg_03)
152089: Variant_Base(bsl::allocator_arg_t(),
152090 allocator,
152091 bsl::in_place_index_t<t_INDEX>(),
152092 arg_01,
152093 arg_02,
152094 arg_03)
152095{
152096}
152097#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
152098
152099#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
152100template <class t_HEAD, class t_TAIL_01,
152101 class t_TAIL_02,
152102 class t_TAIL_03>
152103template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152104inline
152105variant<t_HEAD, t_TAIL_01,
152106 t_TAIL_02,
152107 t_TAIL_03,
152108 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
152109 allocator_type allocator,
152111 const t_ARG_01& arg_01,
152112 const t_ARG_02& arg_02,
152113 const t_ARG_03& arg_03)
152114: Variant_Base(bsl::allocator_arg_t(),
152115 allocator,
152116 bsl::in_place_index_t<t_INDEX>(),
152117 arg_01,
152118 arg_02,
152119 arg_03)
152120{
152121}
152122#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
152123
152124#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
152125template <class t_HEAD, class t_TAIL_01,
152126 class t_TAIL_02,
152127 class t_TAIL_03,
152128 class t_TAIL_04>
152129template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152130inline
152131variant<t_HEAD, t_TAIL_01,
152132 t_TAIL_02,
152133 t_TAIL_03,
152134 t_TAIL_04,
152135 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
152136 allocator_type allocator,
152138 const t_ARG_01& arg_01,
152139 const t_ARG_02& arg_02,
152140 const t_ARG_03& arg_03)
152141: Variant_Base(bsl::allocator_arg_t(),
152142 allocator,
152143 bsl::in_place_index_t<t_INDEX>(),
152144 arg_01,
152145 arg_02,
152146 arg_03)
152147{
152148}
152149#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
152150
152151#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
152152template <class t_HEAD, class t_TAIL_01,
152153 class t_TAIL_02,
152154 class t_TAIL_03,
152155 class t_TAIL_04,
152156 class t_TAIL_05>
152157template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152158inline
152159variant<t_HEAD, t_TAIL_01,
152160 t_TAIL_02,
152161 t_TAIL_03,
152162 t_TAIL_04,
152163 t_TAIL_05,
152164 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
152165 allocator_type allocator,
152167 const t_ARG_01& arg_01,
152168 const t_ARG_02& arg_02,
152169 const t_ARG_03& arg_03)
152170: Variant_Base(bsl::allocator_arg_t(),
152171 allocator,
152172 bsl::in_place_index_t<t_INDEX>(),
152173 arg_01,
152174 arg_02,
152175 arg_03)
152176{
152177}
152178#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
152179
152180#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
152181template <class t_HEAD, class t_TAIL_01,
152182 class t_TAIL_02,
152183 class t_TAIL_03,
152184 class t_TAIL_04,
152185 class t_TAIL_05,
152186 class t_TAIL_06>
152187template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152188inline
152189variant<t_HEAD, t_TAIL_01,
152190 t_TAIL_02,
152191 t_TAIL_03,
152192 t_TAIL_04,
152193 t_TAIL_05,
152194 t_TAIL_06,
152195 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
152196 allocator_type allocator,
152198 const t_ARG_01& arg_01,
152199 const t_ARG_02& arg_02,
152200 const t_ARG_03& arg_03)
152201: Variant_Base(bsl::allocator_arg_t(),
152202 allocator,
152203 bsl::in_place_index_t<t_INDEX>(),
152204 arg_01,
152205 arg_02,
152206 arg_03)
152207{
152208}
152209#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
152210
152211#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
152212template <class t_HEAD, class t_TAIL_01,
152213 class t_TAIL_02,
152214 class t_TAIL_03,
152215 class t_TAIL_04,
152216 class t_TAIL_05,
152217 class t_TAIL_06,
152218 class t_TAIL_07>
152219template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152220inline
152221variant<t_HEAD, t_TAIL_01,
152222 t_TAIL_02,
152223 t_TAIL_03,
152224 t_TAIL_04,
152225 t_TAIL_05,
152226 t_TAIL_06,
152227 t_TAIL_07,
152228 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
152229 allocator_type allocator,
152231 const t_ARG_01& arg_01,
152232 const t_ARG_02& arg_02,
152233 const t_ARG_03& arg_03)
152234: Variant_Base(bsl::allocator_arg_t(),
152235 allocator,
152236 bsl::in_place_index_t<t_INDEX>(),
152237 arg_01,
152238 arg_02,
152239 arg_03)
152240{
152241}
152242#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
152243
152244#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
152245template <class t_HEAD, class t_TAIL_01,
152246 class t_TAIL_02,
152247 class t_TAIL_03,
152248 class t_TAIL_04,
152249 class t_TAIL_05,
152250 class t_TAIL_06,
152251 class t_TAIL_07,
152252 class t_TAIL_08>
152253template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152254inline
152255variant<t_HEAD, t_TAIL_01,
152256 t_TAIL_02,
152257 t_TAIL_03,
152258 t_TAIL_04,
152259 t_TAIL_05,
152260 t_TAIL_06,
152261 t_TAIL_07,
152262 t_TAIL_08,
152263 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
152264 allocator_type allocator,
152266 const t_ARG_01& arg_01,
152267 const t_ARG_02& arg_02,
152268 const t_ARG_03& arg_03)
152269: Variant_Base(bsl::allocator_arg_t(),
152270 allocator,
152271 bsl::in_place_index_t<t_INDEX>(),
152272 arg_01,
152273 arg_02,
152274 arg_03)
152275{
152276}
152277#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
152278
152279#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
152280template <class t_HEAD, class t_TAIL_01,
152281 class t_TAIL_02,
152282 class t_TAIL_03,
152283 class t_TAIL_04,
152284 class t_TAIL_05,
152285 class t_TAIL_06,
152286 class t_TAIL_07,
152287 class t_TAIL_08,
152288 class t_TAIL_09>
152289template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152290inline
152291variant<t_HEAD, t_TAIL_01,
152292 t_TAIL_02,
152293 t_TAIL_03,
152294 t_TAIL_04,
152295 t_TAIL_05,
152296 t_TAIL_06,
152297 t_TAIL_07,
152298 t_TAIL_08,
152299 t_TAIL_09,
152300 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
152301 allocator_type allocator,
152303 const t_ARG_01& arg_01,
152304 const t_ARG_02& arg_02,
152305 const t_ARG_03& arg_03)
152306: Variant_Base(bsl::allocator_arg_t(),
152307 allocator,
152308 bsl::in_place_index_t<t_INDEX>(),
152309 arg_01,
152310 arg_02,
152311 arg_03)
152312{
152313}
152314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
152315
152316#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
152317template <class t_HEAD, class t_TAIL_01,
152318 class t_TAIL_02,
152319 class t_TAIL_03,
152320 class t_TAIL_04,
152321 class t_TAIL_05,
152322 class t_TAIL_06,
152323 class t_TAIL_07,
152324 class t_TAIL_08,
152325 class t_TAIL_09,
152326 class t_TAIL_10>
152327template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152328inline
152329variant<t_HEAD, t_TAIL_01,
152330 t_TAIL_02,
152331 t_TAIL_03,
152332 t_TAIL_04,
152333 t_TAIL_05,
152334 t_TAIL_06,
152335 t_TAIL_07,
152336 t_TAIL_08,
152337 t_TAIL_09,
152338 t_TAIL_10,
152339 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
152340 allocator_type allocator,
152342 const t_ARG_01& arg_01,
152343 const t_ARG_02& arg_02,
152344 const t_ARG_03& arg_03)
152345: Variant_Base(bsl::allocator_arg_t(),
152346 allocator,
152347 bsl::in_place_index_t<t_INDEX>(),
152348 arg_01,
152349 arg_02,
152350 arg_03)
152351{
152352}
152353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
152354
152355#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
152356template <class t_HEAD, class t_TAIL_01,
152357 class t_TAIL_02,
152358 class t_TAIL_03,
152359 class t_TAIL_04,
152360 class t_TAIL_05,
152361 class t_TAIL_06,
152362 class t_TAIL_07,
152363 class t_TAIL_08,
152364 class t_TAIL_09,
152365 class t_TAIL_10,
152366 class t_TAIL_11>
152367template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152368inline
152369variant<t_HEAD, t_TAIL_01,
152370 t_TAIL_02,
152371 t_TAIL_03,
152372 t_TAIL_04,
152373 t_TAIL_05,
152374 t_TAIL_06,
152375 t_TAIL_07,
152376 t_TAIL_08,
152377 t_TAIL_09,
152378 t_TAIL_10,
152379 t_TAIL_11,
152380 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
152381 allocator_type allocator,
152383 const t_ARG_01& arg_01,
152384 const t_ARG_02& arg_02,
152385 const t_ARG_03& arg_03)
152386: Variant_Base(bsl::allocator_arg_t(),
152387 allocator,
152388 bsl::in_place_index_t<t_INDEX>(),
152389 arg_01,
152390 arg_02,
152391 arg_03)
152392{
152393}
152394#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
152395
152396#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
152397template <class t_HEAD, class t_TAIL_01,
152398 class t_TAIL_02,
152399 class t_TAIL_03,
152400 class t_TAIL_04,
152401 class t_TAIL_05,
152402 class t_TAIL_06,
152403 class t_TAIL_07,
152404 class t_TAIL_08,
152405 class t_TAIL_09,
152406 class t_TAIL_10,
152407 class t_TAIL_11,
152408 class t_TAIL_12>
152409template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152410inline
152411variant<t_HEAD, t_TAIL_01,
152412 t_TAIL_02,
152413 t_TAIL_03,
152414 t_TAIL_04,
152415 t_TAIL_05,
152416 t_TAIL_06,
152417 t_TAIL_07,
152418 t_TAIL_08,
152419 t_TAIL_09,
152420 t_TAIL_10,
152421 t_TAIL_11,
152422 t_TAIL_12,
152423 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
152424 allocator_type allocator,
152426 const t_ARG_01& arg_01,
152427 const t_ARG_02& arg_02,
152428 const t_ARG_03& arg_03)
152429: Variant_Base(bsl::allocator_arg_t(),
152430 allocator,
152431 bsl::in_place_index_t<t_INDEX>(),
152432 arg_01,
152433 arg_02,
152434 arg_03)
152435{
152436}
152437#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
152438
152439#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
152440template <class t_HEAD, class t_TAIL_01,
152441 class t_TAIL_02,
152442 class t_TAIL_03,
152443 class t_TAIL_04,
152444 class t_TAIL_05,
152445 class t_TAIL_06,
152446 class t_TAIL_07,
152447 class t_TAIL_08,
152448 class t_TAIL_09,
152449 class t_TAIL_10,
152450 class t_TAIL_11,
152451 class t_TAIL_12,
152452 class t_TAIL_13>
152453template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152454inline
152455variant<t_HEAD, t_TAIL_01,
152456 t_TAIL_02,
152457 t_TAIL_03,
152458 t_TAIL_04,
152459 t_TAIL_05,
152460 t_TAIL_06,
152461 t_TAIL_07,
152462 t_TAIL_08,
152463 t_TAIL_09,
152464 t_TAIL_10,
152465 t_TAIL_11,
152466 t_TAIL_12,
152467 t_TAIL_13,
152468 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
152469 allocator_type allocator,
152471 const t_ARG_01& arg_01,
152472 const t_ARG_02& arg_02,
152473 const t_ARG_03& arg_03)
152474: Variant_Base(bsl::allocator_arg_t(),
152475 allocator,
152476 bsl::in_place_index_t<t_INDEX>(),
152477 arg_01,
152478 arg_02,
152479 arg_03)
152480{
152481}
152482#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
152483
152484#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
152485template <class t_HEAD, class t_TAIL_01,
152486 class t_TAIL_02,
152487 class t_TAIL_03,
152488 class t_TAIL_04,
152489 class t_TAIL_05,
152490 class t_TAIL_06,
152491 class t_TAIL_07,
152492 class t_TAIL_08,
152493 class t_TAIL_09,
152494 class t_TAIL_10,
152495 class t_TAIL_11,
152496 class t_TAIL_12,
152497 class t_TAIL_13,
152498 class t_TAIL_14>
152499template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152500inline
152501variant<t_HEAD, t_TAIL_01,
152502 t_TAIL_02,
152503 t_TAIL_03,
152504 t_TAIL_04,
152505 t_TAIL_05,
152506 t_TAIL_06,
152507 t_TAIL_07,
152508 t_TAIL_08,
152509 t_TAIL_09,
152510 t_TAIL_10,
152511 t_TAIL_11,
152512 t_TAIL_12,
152513 t_TAIL_13,
152514 t_TAIL_14,
152515 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
152516 allocator_type allocator,
152518 const t_ARG_01& arg_01,
152519 const t_ARG_02& arg_02,
152520 const t_ARG_03& arg_03)
152521: Variant_Base(bsl::allocator_arg_t(),
152522 allocator,
152523 bsl::in_place_index_t<t_INDEX>(),
152524 arg_01,
152525 arg_02,
152526 arg_03)
152527{
152528}
152529#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
152530
152531#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
152532template <class t_HEAD, class t_TAIL_01,
152533 class t_TAIL_02,
152534 class t_TAIL_03,
152535 class t_TAIL_04,
152536 class t_TAIL_05,
152537 class t_TAIL_06,
152538 class t_TAIL_07,
152539 class t_TAIL_08,
152540 class t_TAIL_09,
152541 class t_TAIL_10,
152542 class t_TAIL_11,
152543 class t_TAIL_12,
152544 class t_TAIL_13,
152545 class t_TAIL_14,
152546 class t_TAIL_15>
152547template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152548inline
152549variant<t_HEAD, t_TAIL_01,
152550 t_TAIL_02,
152551 t_TAIL_03,
152552 t_TAIL_04,
152553 t_TAIL_05,
152554 t_TAIL_06,
152555 t_TAIL_07,
152556 t_TAIL_08,
152557 t_TAIL_09,
152558 t_TAIL_10,
152559 t_TAIL_11,
152560 t_TAIL_12,
152561 t_TAIL_13,
152562 t_TAIL_14,
152563 t_TAIL_15,
152564 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
152565 allocator_type allocator,
152567 const t_ARG_01& arg_01,
152568 const t_ARG_02& arg_02,
152569 const t_ARG_03& arg_03)
152570: Variant_Base(bsl::allocator_arg_t(),
152571 allocator,
152572 bsl::in_place_index_t<t_INDEX>(),
152573 arg_01,
152574 arg_02,
152575 arg_03)
152576{
152577}
152578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
152579
152580#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
152581template <class t_HEAD, class t_TAIL_01,
152582 class t_TAIL_02,
152583 class t_TAIL_03,
152584 class t_TAIL_04,
152585 class t_TAIL_05,
152586 class t_TAIL_06,
152587 class t_TAIL_07,
152588 class t_TAIL_08,
152589 class t_TAIL_09,
152590 class t_TAIL_10,
152591 class t_TAIL_11,
152592 class t_TAIL_12,
152593 class t_TAIL_13,
152594 class t_TAIL_14,
152595 class t_TAIL_15,
152596 class t_TAIL_16>
152597template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152598inline
152599variant<t_HEAD, t_TAIL_01,
152600 t_TAIL_02,
152601 t_TAIL_03,
152602 t_TAIL_04,
152603 t_TAIL_05,
152604 t_TAIL_06,
152605 t_TAIL_07,
152606 t_TAIL_08,
152607 t_TAIL_09,
152608 t_TAIL_10,
152609 t_TAIL_11,
152610 t_TAIL_12,
152611 t_TAIL_13,
152612 t_TAIL_14,
152613 t_TAIL_15,
152614 t_TAIL_16,
152615 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
152616 allocator_type allocator,
152618 const t_ARG_01& arg_01,
152619 const t_ARG_02& arg_02,
152620 const t_ARG_03& arg_03)
152621: Variant_Base(bsl::allocator_arg_t(),
152622 allocator,
152623 bsl::in_place_index_t<t_INDEX>(),
152624 arg_01,
152625 arg_02,
152626 arg_03)
152627{
152628}
152629#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
152630
152631#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
152632template <class t_HEAD, class t_TAIL_01,
152633 class t_TAIL_02,
152634 class t_TAIL_03,
152635 class t_TAIL_04,
152636 class t_TAIL_05,
152637 class t_TAIL_06,
152638 class t_TAIL_07,
152639 class t_TAIL_08,
152640 class t_TAIL_09,
152641 class t_TAIL_10,
152642 class t_TAIL_11,
152643 class t_TAIL_12,
152644 class t_TAIL_13,
152645 class t_TAIL_14,
152646 class t_TAIL_15,
152647 class t_TAIL_16,
152648 class t_TAIL_17>
152649template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152650inline
152651variant<t_HEAD, t_TAIL_01,
152652 t_TAIL_02,
152653 t_TAIL_03,
152654 t_TAIL_04,
152655 t_TAIL_05,
152656 t_TAIL_06,
152657 t_TAIL_07,
152658 t_TAIL_08,
152659 t_TAIL_09,
152660 t_TAIL_10,
152661 t_TAIL_11,
152662 t_TAIL_12,
152663 t_TAIL_13,
152664 t_TAIL_14,
152665 t_TAIL_15,
152666 t_TAIL_16,
152667 t_TAIL_17,
152668 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
152669 allocator_type allocator,
152671 const t_ARG_01& arg_01,
152672 const t_ARG_02& arg_02,
152673 const t_ARG_03& arg_03)
152674: Variant_Base(bsl::allocator_arg_t(),
152675 allocator,
152676 bsl::in_place_index_t<t_INDEX>(),
152677 arg_01,
152678 arg_02,
152679 arg_03)
152680{
152681}
152682#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
152683
152684#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
152685template <class t_HEAD, class t_TAIL_01,
152686 class t_TAIL_02,
152687 class t_TAIL_03,
152688 class t_TAIL_04,
152689 class t_TAIL_05,
152690 class t_TAIL_06,
152691 class t_TAIL_07,
152692 class t_TAIL_08,
152693 class t_TAIL_09,
152694 class t_TAIL_10,
152695 class t_TAIL_11,
152696 class t_TAIL_12,
152697 class t_TAIL_13,
152698 class t_TAIL_14,
152699 class t_TAIL_15,
152700 class t_TAIL_16,
152701 class t_TAIL_17,
152702 class t_TAIL_18>
152703template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
152704inline
152705variant<t_HEAD, t_TAIL_01,
152706 t_TAIL_02,
152707 t_TAIL_03,
152708 t_TAIL_04,
152709 t_TAIL_05,
152710 t_TAIL_06,
152711 t_TAIL_07,
152712 t_TAIL_08,
152713 t_TAIL_09,
152714 t_TAIL_10,
152715 t_TAIL_11,
152716 t_TAIL_12,
152717 t_TAIL_13,
152718 t_TAIL_14,
152719 t_TAIL_15,
152720 t_TAIL_16,
152721 t_TAIL_17,
152722 t_TAIL_18,
152723 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
152724 allocator_type allocator,
152726 const t_ARG_01& arg_01,
152727 const t_ARG_02& arg_02,
152728 const t_ARG_03& arg_03)
152729: Variant_Base(bsl::allocator_arg_t(),
152730 allocator,
152731 bsl::in_place_index_t<t_INDEX>(),
152732 arg_01,
152733 arg_02,
152734 arg_03)
152735{
152736}
152737#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
152738
152739
152740#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
152741template <class t_HEAD>
152742template <size_t t_INDEX,
152743 class t_ARG_01,
152744 class t_ARG_02,
152745 class t_ARG_03,
152746 class t_ARG_04>
152747inline
152748variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
152749 allocator_type allocator,
152751 const t_ARG_01& arg_01,
152752 const t_ARG_02& arg_02,
152753 const t_ARG_03& arg_03,
152754 const t_ARG_04& arg_04)
152755: Variant_Base(bsl::allocator_arg_t(),
152756 allocator,
152757 bsl::in_place_index_t<t_INDEX>(),
152758 arg_01,
152759 arg_02,
152760 arg_03,
152761 arg_04)
152762{
152763}
152764#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
152765
152766#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
152767template <class t_HEAD, class t_TAIL_01>
152768template <size_t t_INDEX,
152769 class t_ARG_01,
152770 class t_ARG_02,
152771 class t_ARG_03,
152772 class t_ARG_04>
152773inline
152774variant<t_HEAD, t_TAIL_01,
152775 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
152776 allocator_type allocator,
152778 const t_ARG_01& arg_01,
152779 const t_ARG_02& arg_02,
152780 const t_ARG_03& arg_03,
152781 const t_ARG_04& arg_04)
152782: Variant_Base(bsl::allocator_arg_t(),
152783 allocator,
152784 bsl::in_place_index_t<t_INDEX>(),
152785 arg_01,
152786 arg_02,
152787 arg_03,
152788 arg_04)
152789{
152790}
152791#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
152792
152793#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
152794template <class t_HEAD, class t_TAIL_01,
152795 class t_TAIL_02>
152796template <size_t t_INDEX,
152797 class t_ARG_01,
152798 class t_ARG_02,
152799 class t_ARG_03,
152800 class t_ARG_04>
152801inline
152802variant<t_HEAD, t_TAIL_01,
152803 t_TAIL_02,
152804 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
152805 allocator_type allocator,
152807 const t_ARG_01& arg_01,
152808 const t_ARG_02& arg_02,
152809 const t_ARG_03& arg_03,
152810 const t_ARG_04& arg_04)
152811: Variant_Base(bsl::allocator_arg_t(),
152812 allocator,
152813 bsl::in_place_index_t<t_INDEX>(),
152814 arg_01,
152815 arg_02,
152816 arg_03,
152817 arg_04)
152818{
152819}
152820#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
152821
152822#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
152823template <class t_HEAD, class t_TAIL_01,
152824 class t_TAIL_02,
152825 class t_TAIL_03>
152826template <size_t t_INDEX,
152827 class t_ARG_01,
152828 class t_ARG_02,
152829 class t_ARG_03,
152830 class t_ARG_04>
152831inline
152832variant<t_HEAD, t_TAIL_01,
152833 t_TAIL_02,
152834 t_TAIL_03,
152835 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
152836 allocator_type allocator,
152838 const t_ARG_01& arg_01,
152839 const t_ARG_02& arg_02,
152840 const t_ARG_03& arg_03,
152841 const t_ARG_04& arg_04)
152842: Variant_Base(bsl::allocator_arg_t(),
152843 allocator,
152844 bsl::in_place_index_t<t_INDEX>(),
152845 arg_01,
152846 arg_02,
152847 arg_03,
152848 arg_04)
152849{
152850}
152851#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
152852
152853#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
152854template <class t_HEAD, class t_TAIL_01,
152855 class t_TAIL_02,
152856 class t_TAIL_03,
152857 class t_TAIL_04>
152858template <size_t t_INDEX,
152859 class t_ARG_01,
152860 class t_ARG_02,
152861 class t_ARG_03,
152862 class t_ARG_04>
152863inline
152864variant<t_HEAD, t_TAIL_01,
152865 t_TAIL_02,
152866 t_TAIL_03,
152867 t_TAIL_04,
152868 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
152869 allocator_type allocator,
152871 const t_ARG_01& arg_01,
152872 const t_ARG_02& arg_02,
152873 const t_ARG_03& arg_03,
152874 const t_ARG_04& arg_04)
152875: Variant_Base(bsl::allocator_arg_t(),
152876 allocator,
152877 bsl::in_place_index_t<t_INDEX>(),
152878 arg_01,
152879 arg_02,
152880 arg_03,
152881 arg_04)
152882{
152883}
152884#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
152885
152886#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
152887template <class t_HEAD, class t_TAIL_01,
152888 class t_TAIL_02,
152889 class t_TAIL_03,
152890 class t_TAIL_04,
152891 class t_TAIL_05>
152892template <size_t t_INDEX,
152893 class t_ARG_01,
152894 class t_ARG_02,
152895 class t_ARG_03,
152896 class t_ARG_04>
152897inline
152898variant<t_HEAD, t_TAIL_01,
152899 t_TAIL_02,
152900 t_TAIL_03,
152901 t_TAIL_04,
152902 t_TAIL_05,
152903 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
152904 allocator_type allocator,
152906 const t_ARG_01& arg_01,
152907 const t_ARG_02& arg_02,
152908 const t_ARG_03& arg_03,
152909 const t_ARG_04& arg_04)
152910: Variant_Base(bsl::allocator_arg_t(),
152911 allocator,
152912 bsl::in_place_index_t<t_INDEX>(),
152913 arg_01,
152914 arg_02,
152915 arg_03,
152916 arg_04)
152917{
152918}
152919#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
152920
152921#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
152922template <class t_HEAD, class t_TAIL_01,
152923 class t_TAIL_02,
152924 class t_TAIL_03,
152925 class t_TAIL_04,
152926 class t_TAIL_05,
152927 class t_TAIL_06>
152928template <size_t t_INDEX,
152929 class t_ARG_01,
152930 class t_ARG_02,
152931 class t_ARG_03,
152932 class t_ARG_04>
152933inline
152934variant<t_HEAD, t_TAIL_01,
152935 t_TAIL_02,
152936 t_TAIL_03,
152937 t_TAIL_04,
152938 t_TAIL_05,
152939 t_TAIL_06,
152940 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
152941 allocator_type allocator,
152943 const t_ARG_01& arg_01,
152944 const t_ARG_02& arg_02,
152945 const t_ARG_03& arg_03,
152946 const t_ARG_04& arg_04)
152947: Variant_Base(bsl::allocator_arg_t(),
152948 allocator,
152949 bsl::in_place_index_t<t_INDEX>(),
152950 arg_01,
152951 arg_02,
152952 arg_03,
152953 arg_04)
152954{
152955}
152956#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
152957
152958#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
152959template <class t_HEAD, class t_TAIL_01,
152960 class t_TAIL_02,
152961 class t_TAIL_03,
152962 class t_TAIL_04,
152963 class t_TAIL_05,
152964 class t_TAIL_06,
152965 class t_TAIL_07>
152966template <size_t t_INDEX,
152967 class t_ARG_01,
152968 class t_ARG_02,
152969 class t_ARG_03,
152970 class t_ARG_04>
152971inline
152972variant<t_HEAD, t_TAIL_01,
152973 t_TAIL_02,
152974 t_TAIL_03,
152975 t_TAIL_04,
152976 t_TAIL_05,
152977 t_TAIL_06,
152978 t_TAIL_07,
152979 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
152980 allocator_type allocator,
152982 const t_ARG_01& arg_01,
152983 const t_ARG_02& arg_02,
152984 const t_ARG_03& arg_03,
152985 const t_ARG_04& arg_04)
152986: Variant_Base(bsl::allocator_arg_t(),
152987 allocator,
152988 bsl::in_place_index_t<t_INDEX>(),
152989 arg_01,
152990 arg_02,
152991 arg_03,
152992 arg_04)
152993{
152994}
152995#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
152996
152997#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
152998template <class t_HEAD, class t_TAIL_01,
152999 class t_TAIL_02,
153000 class t_TAIL_03,
153001 class t_TAIL_04,
153002 class t_TAIL_05,
153003 class t_TAIL_06,
153004 class t_TAIL_07,
153005 class t_TAIL_08>
153006template <size_t t_INDEX,
153007 class t_ARG_01,
153008 class t_ARG_02,
153009 class t_ARG_03,
153010 class t_ARG_04>
153011inline
153012variant<t_HEAD, t_TAIL_01,
153013 t_TAIL_02,
153014 t_TAIL_03,
153015 t_TAIL_04,
153016 t_TAIL_05,
153017 t_TAIL_06,
153018 t_TAIL_07,
153019 t_TAIL_08,
153020 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
153021 allocator_type allocator,
153023 const t_ARG_01& arg_01,
153024 const t_ARG_02& arg_02,
153025 const t_ARG_03& arg_03,
153026 const t_ARG_04& arg_04)
153027: Variant_Base(bsl::allocator_arg_t(),
153028 allocator,
153029 bsl::in_place_index_t<t_INDEX>(),
153030 arg_01,
153031 arg_02,
153032 arg_03,
153033 arg_04)
153034{
153035}
153036#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
153037
153038#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
153039template <class t_HEAD, class t_TAIL_01,
153040 class t_TAIL_02,
153041 class t_TAIL_03,
153042 class t_TAIL_04,
153043 class t_TAIL_05,
153044 class t_TAIL_06,
153045 class t_TAIL_07,
153046 class t_TAIL_08,
153047 class t_TAIL_09>
153048template <size_t t_INDEX,
153049 class t_ARG_01,
153050 class t_ARG_02,
153051 class t_ARG_03,
153052 class t_ARG_04>
153053inline
153054variant<t_HEAD, t_TAIL_01,
153055 t_TAIL_02,
153056 t_TAIL_03,
153057 t_TAIL_04,
153058 t_TAIL_05,
153059 t_TAIL_06,
153060 t_TAIL_07,
153061 t_TAIL_08,
153062 t_TAIL_09,
153063 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
153064 allocator_type allocator,
153066 const t_ARG_01& arg_01,
153067 const t_ARG_02& arg_02,
153068 const t_ARG_03& arg_03,
153069 const t_ARG_04& arg_04)
153070: Variant_Base(bsl::allocator_arg_t(),
153071 allocator,
153072 bsl::in_place_index_t<t_INDEX>(),
153073 arg_01,
153074 arg_02,
153075 arg_03,
153076 arg_04)
153077{
153078}
153079#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
153080
153081#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
153082template <class t_HEAD, class t_TAIL_01,
153083 class t_TAIL_02,
153084 class t_TAIL_03,
153085 class t_TAIL_04,
153086 class t_TAIL_05,
153087 class t_TAIL_06,
153088 class t_TAIL_07,
153089 class t_TAIL_08,
153090 class t_TAIL_09,
153091 class t_TAIL_10>
153092template <size_t t_INDEX,
153093 class t_ARG_01,
153094 class t_ARG_02,
153095 class t_ARG_03,
153096 class t_ARG_04>
153097inline
153098variant<t_HEAD, t_TAIL_01,
153099 t_TAIL_02,
153100 t_TAIL_03,
153101 t_TAIL_04,
153102 t_TAIL_05,
153103 t_TAIL_06,
153104 t_TAIL_07,
153105 t_TAIL_08,
153106 t_TAIL_09,
153107 t_TAIL_10,
153108 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
153109 allocator_type allocator,
153111 const t_ARG_01& arg_01,
153112 const t_ARG_02& arg_02,
153113 const t_ARG_03& arg_03,
153114 const t_ARG_04& arg_04)
153115: Variant_Base(bsl::allocator_arg_t(),
153116 allocator,
153117 bsl::in_place_index_t<t_INDEX>(),
153118 arg_01,
153119 arg_02,
153120 arg_03,
153121 arg_04)
153122{
153123}
153124#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
153125
153126#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
153127template <class t_HEAD, class t_TAIL_01,
153128 class t_TAIL_02,
153129 class t_TAIL_03,
153130 class t_TAIL_04,
153131 class t_TAIL_05,
153132 class t_TAIL_06,
153133 class t_TAIL_07,
153134 class t_TAIL_08,
153135 class t_TAIL_09,
153136 class t_TAIL_10,
153137 class t_TAIL_11>
153138template <size_t t_INDEX,
153139 class t_ARG_01,
153140 class t_ARG_02,
153141 class t_ARG_03,
153142 class t_ARG_04>
153143inline
153144variant<t_HEAD, t_TAIL_01,
153145 t_TAIL_02,
153146 t_TAIL_03,
153147 t_TAIL_04,
153148 t_TAIL_05,
153149 t_TAIL_06,
153150 t_TAIL_07,
153151 t_TAIL_08,
153152 t_TAIL_09,
153153 t_TAIL_10,
153154 t_TAIL_11,
153155 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
153156 allocator_type allocator,
153158 const t_ARG_01& arg_01,
153159 const t_ARG_02& arg_02,
153160 const t_ARG_03& arg_03,
153161 const t_ARG_04& arg_04)
153162: Variant_Base(bsl::allocator_arg_t(),
153163 allocator,
153164 bsl::in_place_index_t<t_INDEX>(),
153165 arg_01,
153166 arg_02,
153167 arg_03,
153168 arg_04)
153169{
153170}
153171#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
153172
153173#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
153174template <class t_HEAD, class t_TAIL_01,
153175 class t_TAIL_02,
153176 class t_TAIL_03,
153177 class t_TAIL_04,
153178 class t_TAIL_05,
153179 class t_TAIL_06,
153180 class t_TAIL_07,
153181 class t_TAIL_08,
153182 class t_TAIL_09,
153183 class t_TAIL_10,
153184 class t_TAIL_11,
153185 class t_TAIL_12>
153186template <size_t t_INDEX,
153187 class t_ARG_01,
153188 class t_ARG_02,
153189 class t_ARG_03,
153190 class t_ARG_04>
153191inline
153192variant<t_HEAD, t_TAIL_01,
153193 t_TAIL_02,
153194 t_TAIL_03,
153195 t_TAIL_04,
153196 t_TAIL_05,
153197 t_TAIL_06,
153198 t_TAIL_07,
153199 t_TAIL_08,
153200 t_TAIL_09,
153201 t_TAIL_10,
153202 t_TAIL_11,
153203 t_TAIL_12,
153204 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
153205 allocator_type allocator,
153207 const t_ARG_01& arg_01,
153208 const t_ARG_02& arg_02,
153209 const t_ARG_03& arg_03,
153210 const t_ARG_04& arg_04)
153211: Variant_Base(bsl::allocator_arg_t(),
153212 allocator,
153213 bsl::in_place_index_t<t_INDEX>(),
153214 arg_01,
153215 arg_02,
153216 arg_03,
153217 arg_04)
153218{
153219}
153220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
153221
153222#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
153223template <class t_HEAD, class t_TAIL_01,
153224 class t_TAIL_02,
153225 class t_TAIL_03,
153226 class t_TAIL_04,
153227 class t_TAIL_05,
153228 class t_TAIL_06,
153229 class t_TAIL_07,
153230 class t_TAIL_08,
153231 class t_TAIL_09,
153232 class t_TAIL_10,
153233 class t_TAIL_11,
153234 class t_TAIL_12,
153235 class t_TAIL_13>
153236template <size_t t_INDEX,
153237 class t_ARG_01,
153238 class t_ARG_02,
153239 class t_ARG_03,
153240 class t_ARG_04>
153241inline
153242variant<t_HEAD, t_TAIL_01,
153243 t_TAIL_02,
153244 t_TAIL_03,
153245 t_TAIL_04,
153246 t_TAIL_05,
153247 t_TAIL_06,
153248 t_TAIL_07,
153249 t_TAIL_08,
153250 t_TAIL_09,
153251 t_TAIL_10,
153252 t_TAIL_11,
153253 t_TAIL_12,
153254 t_TAIL_13,
153255 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
153256 allocator_type allocator,
153258 const t_ARG_01& arg_01,
153259 const t_ARG_02& arg_02,
153260 const t_ARG_03& arg_03,
153261 const t_ARG_04& arg_04)
153262: Variant_Base(bsl::allocator_arg_t(),
153263 allocator,
153264 bsl::in_place_index_t<t_INDEX>(),
153265 arg_01,
153266 arg_02,
153267 arg_03,
153268 arg_04)
153269{
153270}
153271#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
153272
153273#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
153274template <class t_HEAD, class t_TAIL_01,
153275 class t_TAIL_02,
153276 class t_TAIL_03,
153277 class t_TAIL_04,
153278 class t_TAIL_05,
153279 class t_TAIL_06,
153280 class t_TAIL_07,
153281 class t_TAIL_08,
153282 class t_TAIL_09,
153283 class t_TAIL_10,
153284 class t_TAIL_11,
153285 class t_TAIL_12,
153286 class t_TAIL_13,
153287 class t_TAIL_14>
153288template <size_t t_INDEX,
153289 class t_ARG_01,
153290 class t_ARG_02,
153291 class t_ARG_03,
153292 class t_ARG_04>
153293inline
153294variant<t_HEAD, t_TAIL_01,
153295 t_TAIL_02,
153296 t_TAIL_03,
153297 t_TAIL_04,
153298 t_TAIL_05,
153299 t_TAIL_06,
153300 t_TAIL_07,
153301 t_TAIL_08,
153302 t_TAIL_09,
153303 t_TAIL_10,
153304 t_TAIL_11,
153305 t_TAIL_12,
153306 t_TAIL_13,
153307 t_TAIL_14,
153308 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
153309 allocator_type allocator,
153311 const t_ARG_01& arg_01,
153312 const t_ARG_02& arg_02,
153313 const t_ARG_03& arg_03,
153314 const t_ARG_04& arg_04)
153315: Variant_Base(bsl::allocator_arg_t(),
153316 allocator,
153317 bsl::in_place_index_t<t_INDEX>(),
153318 arg_01,
153319 arg_02,
153320 arg_03,
153321 arg_04)
153322{
153323}
153324#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
153325
153326#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
153327template <class t_HEAD, class t_TAIL_01,
153328 class t_TAIL_02,
153329 class t_TAIL_03,
153330 class t_TAIL_04,
153331 class t_TAIL_05,
153332 class t_TAIL_06,
153333 class t_TAIL_07,
153334 class t_TAIL_08,
153335 class t_TAIL_09,
153336 class t_TAIL_10,
153337 class t_TAIL_11,
153338 class t_TAIL_12,
153339 class t_TAIL_13,
153340 class t_TAIL_14,
153341 class t_TAIL_15>
153342template <size_t t_INDEX,
153343 class t_ARG_01,
153344 class t_ARG_02,
153345 class t_ARG_03,
153346 class t_ARG_04>
153347inline
153348variant<t_HEAD, t_TAIL_01,
153349 t_TAIL_02,
153350 t_TAIL_03,
153351 t_TAIL_04,
153352 t_TAIL_05,
153353 t_TAIL_06,
153354 t_TAIL_07,
153355 t_TAIL_08,
153356 t_TAIL_09,
153357 t_TAIL_10,
153358 t_TAIL_11,
153359 t_TAIL_12,
153360 t_TAIL_13,
153361 t_TAIL_14,
153362 t_TAIL_15,
153363 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
153364 allocator_type allocator,
153366 const t_ARG_01& arg_01,
153367 const t_ARG_02& arg_02,
153368 const t_ARG_03& arg_03,
153369 const t_ARG_04& arg_04)
153370: Variant_Base(bsl::allocator_arg_t(),
153371 allocator,
153372 bsl::in_place_index_t<t_INDEX>(),
153373 arg_01,
153374 arg_02,
153375 arg_03,
153376 arg_04)
153377{
153378}
153379#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
153380
153381#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
153382template <class t_HEAD, class t_TAIL_01,
153383 class t_TAIL_02,
153384 class t_TAIL_03,
153385 class t_TAIL_04,
153386 class t_TAIL_05,
153387 class t_TAIL_06,
153388 class t_TAIL_07,
153389 class t_TAIL_08,
153390 class t_TAIL_09,
153391 class t_TAIL_10,
153392 class t_TAIL_11,
153393 class t_TAIL_12,
153394 class t_TAIL_13,
153395 class t_TAIL_14,
153396 class t_TAIL_15,
153397 class t_TAIL_16>
153398template <size_t t_INDEX,
153399 class t_ARG_01,
153400 class t_ARG_02,
153401 class t_ARG_03,
153402 class t_ARG_04>
153403inline
153404variant<t_HEAD, t_TAIL_01,
153405 t_TAIL_02,
153406 t_TAIL_03,
153407 t_TAIL_04,
153408 t_TAIL_05,
153409 t_TAIL_06,
153410 t_TAIL_07,
153411 t_TAIL_08,
153412 t_TAIL_09,
153413 t_TAIL_10,
153414 t_TAIL_11,
153415 t_TAIL_12,
153416 t_TAIL_13,
153417 t_TAIL_14,
153418 t_TAIL_15,
153419 t_TAIL_16,
153420 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
153421 allocator_type allocator,
153423 const t_ARG_01& arg_01,
153424 const t_ARG_02& arg_02,
153425 const t_ARG_03& arg_03,
153426 const t_ARG_04& arg_04)
153427: Variant_Base(bsl::allocator_arg_t(),
153428 allocator,
153429 bsl::in_place_index_t<t_INDEX>(),
153430 arg_01,
153431 arg_02,
153432 arg_03,
153433 arg_04)
153434{
153435}
153436#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
153437
153438#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
153439template <class t_HEAD, class t_TAIL_01,
153440 class t_TAIL_02,
153441 class t_TAIL_03,
153442 class t_TAIL_04,
153443 class t_TAIL_05,
153444 class t_TAIL_06,
153445 class t_TAIL_07,
153446 class t_TAIL_08,
153447 class t_TAIL_09,
153448 class t_TAIL_10,
153449 class t_TAIL_11,
153450 class t_TAIL_12,
153451 class t_TAIL_13,
153452 class t_TAIL_14,
153453 class t_TAIL_15,
153454 class t_TAIL_16,
153455 class t_TAIL_17>
153456template <size_t t_INDEX,
153457 class t_ARG_01,
153458 class t_ARG_02,
153459 class t_ARG_03,
153460 class t_ARG_04>
153461inline
153462variant<t_HEAD, t_TAIL_01,
153463 t_TAIL_02,
153464 t_TAIL_03,
153465 t_TAIL_04,
153466 t_TAIL_05,
153467 t_TAIL_06,
153468 t_TAIL_07,
153469 t_TAIL_08,
153470 t_TAIL_09,
153471 t_TAIL_10,
153472 t_TAIL_11,
153473 t_TAIL_12,
153474 t_TAIL_13,
153475 t_TAIL_14,
153476 t_TAIL_15,
153477 t_TAIL_16,
153478 t_TAIL_17,
153479 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
153480 allocator_type allocator,
153482 const t_ARG_01& arg_01,
153483 const t_ARG_02& arg_02,
153484 const t_ARG_03& arg_03,
153485 const t_ARG_04& arg_04)
153486: Variant_Base(bsl::allocator_arg_t(),
153487 allocator,
153488 bsl::in_place_index_t<t_INDEX>(),
153489 arg_01,
153490 arg_02,
153491 arg_03,
153492 arg_04)
153493{
153494}
153495#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
153496
153497#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
153498template <class t_HEAD, class t_TAIL_01,
153499 class t_TAIL_02,
153500 class t_TAIL_03,
153501 class t_TAIL_04,
153502 class t_TAIL_05,
153503 class t_TAIL_06,
153504 class t_TAIL_07,
153505 class t_TAIL_08,
153506 class t_TAIL_09,
153507 class t_TAIL_10,
153508 class t_TAIL_11,
153509 class t_TAIL_12,
153510 class t_TAIL_13,
153511 class t_TAIL_14,
153512 class t_TAIL_15,
153513 class t_TAIL_16,
153514 class t_TAIL_17,
153515 class t_TAIL_18>
153516template <size_t t_INDEX,
153517 class t_ARG_01,
153518 class t_ARG_02,
153519 class t_ARG_03,
153520 class t_ARG_04>
153521inline
153522variant<t_HEAD, t_TAIL_01,
153523 t_TAIL_02,
153524 t_TAIL_03,
153525 t_TAIL_04,
153526 t_TAIL_05,
153527 t_TAIL_06,
153528 t_TAIL_07,
153529 t_TAIL_08,
153530 t_TAIL_09,
153531 t_TAIL_10,
153532 t_TAIL_11,
153533 t_TAIL_12,
153534 t_TAIL_13,
153535 t_TAIL_14,
153536 t_TAIL_15,
153537 t_TAIL_16,
153538 t_TAIL_17,
153539 t_TAIL_18,
153540 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
153541 allocator_type allocator,
153543 const t_ARG_01& arg_01,
153544 const t_ARG_02& arg_02,
153545 const t_ARG_03& arg_03,
153546 const t_ARG_04& arg_04)
153547: Variant_Base(bsl::allocator_arg_t(),
153548 allocator,
153549 bsl::in_place_index_t<t_INDEX>(),
153550 arg_01,
153551 arg_02,
153552 arg_03,
153553 arg_04)
153554{
153555}
153556#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
153557
153558
153559#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
153560template <class t_HEAD>
153561template <size_t t_INDEX,
153562 class t_ARG_01,
153563 class t_ARG_02,
153564 class t_ARG_03,
153565 class t_ARG_04,
153566 class t_ARG_05>
153567inline
153568variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
153569 allocator_type allocator,
153571 const t_ARG_01& arg_01,
153572 const t_ARG_02& arg_02,
153573 const t_ARG_03& arg_03,
153574 const t_ARG_04& arg_04,
153575 const t_ARG_05& arg_05)
153576: Variant_Base(bsl::allocator_arg_t(),
153577 allocator,
153578 bsl::in_place_index_t<t_INDEX>(),
153579 arg_01,
153580 arg_02,
153581 arg_03,
153582 arg_04,
153583 arg_05)
153584{
153585}
153586#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
153587
153588#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
153589template <class t_HEAD, class t_TAIL_01>
153590template <size_t t_INDEX,
153591 class t_ARG_01,
153592 class t_ARG_02,
153593 class t_ARG_03,
153594 class t_ARG_04,
153595 class t_ARG_05>
153596inline
153597variant<t_HEAD, t_TAIL_01,
153598 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
153599 allocator_type allocator,
153601 const t_ARG_01& arg_01,
153602 const t_ARG_02& arg_02,
153603 const t_ARG_03& arg_03,
153604 const t_ARG_04& arg_04,
153605 const t_ARG_05& arg_05)
153606: Variant_Base(bsl::allocator_arg_t(),
153607 allocator,
153608 bsl::in_place_index_t<t_INDEX>(),
153609 arg_01,
153610 arg_02,
153611 arg_03,
153612 arg_04,
153613 arg_05)
153614{
153615}
153616#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
153617
153618#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
153619template <class t_HEAD, class t_TAIL_01,
153620 class t_TAIL_02>
153621template <size_t t_INDEX,
153622 class t_ARG_01,
153623 class t_ARG_02,
153624 class t_ARG_03,
153625 class t_ARG_04,
153626 class t_ARG_05>
153627inline
153628variant<t_HEAD, t_TAIL_01,
153629 t_TAIL_02,
153630 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
153631 allocator_type allocator,
153633 const t_ARG_01& arg_01,
153634 const t_ARG_02& arg_02,
153635 const t_ARG_03& arg_03,
153636 const t_ARG_04& arg_04,
153637 const t_ARG_05& arg_05)
153638: Variant_Base(bsl::allocator_arg_t(),
153639 allocator,
153640 bsl::in_place_index_t<t_INDEX>(),
153641 arg_01,
153642 arg_02,
153643 arg_03,
153644 arg_04,
153645 arg_05)
153646{
153647}
153648#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
153649
153650#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
153651template <class t_HEAD, class t_TAIL_01,
153652 class t_TAIL_02,
153653 class t_TAIL_03>
153654template <size_t t_INDEX,
153655 class t_ARG_01,
153656 class t_ARG_02,
153657 class t_ARG_03,
153658 class t_ARG_04,
153659 class t_ARG_05>
153660inline
153661variant<t_HEAD, t_TAIL_01,
153662 t_TAIL_02,
153663 t_TAIL_03,
153664 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
153665 allocator_type allocator,
153667 const t_ARG_01& arg_01,
153668 const t_ARG_02& arg_02,
153669 const t_ARG_03& arg_03,
153670 const t_ARG_04& arg_04,
153671 const t_ARG_05& arg_05)
153672: Variant_Base(bsl::allocator_arg_t(),
153673 allocator,
153674 bsl::in_place_index_t<t_INDEX>(),
153675 arg_01,
153676 arg_02,
153677 arg_03,
153678 arg_04,
153679 arg_05)
153680{
153681}
153682#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
153683
153684#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
153685template <class t_HEAD, class t_TAIL_01,
153686 class t_TAIL_02,
153687 class t_TAIL_03,
153688 class t_TAIL_04>
153689template <size_t t_INDEX,
153690 class t_ARG_01,
153691 class t_ARG_02,
153692 class t_ARG_03,
153693 class t_ARG_04,
153694 class t_ARG_05>
153695inline
153696variant<t_HEAD, t_TAIL_01,
153697 t_TAIL_02,
153698 t_TAIL_03,
153699 t_TAIL_04,
153700 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
153701 allocator_type allocator,
153703 const t_ARG_01& arg_01,
153704 const t_ARG_02& arg_02,
153705 const t_ARG_03& arg_03,
153706 const t_ARG_04& arg_04,
153707 const t_ARG_05& arg_05)
153708: Variant_Base(bsl::allocator_arg_t(),
153709 allocator,
153710 bsl::in_place_index_t<t_INDEX>(),
153711 arg_01,
153712 arg_02,
153713 arg_03,
153714 arg_04,
153715 arg_05)
153716{
153717}
153718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
153719
153720#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
153721template <class t_HEAD, class t_TAIL_01,
153722 class t_TAIL_02,
153723 class t_TAIL_03,
153724 class t_TAIL_04,
153725 class t_TAIL_05>
153726template <size_t t_INDEX,
153727 class t_ARG_01,
153728 class t_ARG_02,
153729 class t_ARG_03,
153730 class t_ARG_04,
153731 class t_ARG_05>
153732inline
153733variant<t_HEAD, t_TAIL_01,
153734 t_TAIL_02,
153735 t_TAIL_03,
153736 t_TAIL_04,
153737 t_TAIL_05,
153738 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
153739 allocator_type allocator,
153741 const t_ARG_01& arg_01,
153742 const t_ARG_02& arg_02,
153743 const t_ARG_03& arg_03,
153744 const t_ARG_04& arg_04,
153745 const t_ARG_05& arg_05)
153746: Variant_Base(bsl::allocator_arg_t(),
153747 allocator,
153748 bsl::in_place_index_t<t_INDEX>(),
153749 arg_01,
153750 arg_02,
153751 arg_03,
153752 arg_04,
153753 arg_05)
153754{
153755}
153756#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
153757
153758#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
153759template <class t_HEAD, class t_TAIL_01,
153760 class t_TAIL_02,
153761 class t_TAIL_03,
153762 class t_TAIL_04,
153763 class t_TAIL_05,
153764 class t_TAIL_06>
153765template <size_t t_INDEX,
153766 class t_ARG_01,
153767 class t_ARG_02,
153768 class t_ARG_03,
153769 class t_ARG_04,
153770 class t_ARG_05>
153771inline
153772variant<t_HEAD, t_TAIL_01,
153773 t_TAIL_02,
153774 t_TAIL_03,
153775 t_TAIL_04,
153776 t_TAIL_05,
153777 t_TAIL_06,
153778 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
153779 allocator_type allocator,
153781 const t_ARG_01& arg_01,
153782 const t_ARG_02& arg_02,
153783 const t_ARG_03& arg_03,
153784 const t_ARG_04& arg_04,
153785 const t_ARG_05& arg_05)
153786: Variant_Base(bsl::allocator_arg_t(),
153787 allocator,
153788 bsl::in_place_index_t<t_INDEX>(),
153789 arg_01,
153790 arg_02,
153791 arg_03,
153792 arg_04,
153793 arg_05)
153794{
153795}
153796#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
153797
153798#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
153799template <class t_HEAD, class t_TAIL_01,
153800 class t_TAIL_02,
153801 class t_TAIL_03,
153802 class t_TAIL_04,
153803 class t_TAIL_05,
153804 class t_TAIL_06,
153805 class t_TAIL_07>
153806template <size_t t_INDEX,
153807 class t_ARG_01,
153808 class t_ARG_02,
153809 class t_ARG_03,
153810 class t_ARG_04,
153811 class t_ARG_05>
153812inline
153813variant<t_HEAD, t_TAIL_01,
153814 t_TAIL_02,
153815 t_TAIL_03,
153816 t_TAIL_04,
153817 t_TAIL_05,
153818 t_TAIL_06,
153819 t_TAIL_07,
153820 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
153821 allocator_type allocator,
153823 const t_ARG_01& arg_01,
153824 const t_ARG_02& arg_02,
153825 const t_ARG_03& arg_03,
153826 const t_ARG_04& arg_04,
153827 const t_ARG_05& arg_05)
153828: Variant_Base(bsl::allocator_arg_t(),
153829 allocator,
153830 bsl::in_place_index_t<t_INDEX>(),
153831 arg_01,
153832 arg_02,
153833 arg_03,
153834 arg_04,
153835 arg_05)
153836{
153837}
153838#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
153839
153840#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
153841template <class t_HEAD, class t_TAIL_01,
153842 class t_TAIL_02,
153843 class t_TAIL_03,
153844 class t_TAIL_04,
153845 class t_TAIL_05,
153846 class t_TAIL_06,
153847 class t_TAIL_07,
153848 class t_TAIL_08>
153849template <size_t t_INDEX,
153850 class t_ARG_01,
153851 class t_ARG_02,
153852 class t_ARG_03,
153853 class t_ARG_04,
153854 class t_ARG_05>
153855inline
153856variant<t_HEAD, t_TAIL_01,
153857 t_TAIL_02,
153858 t_TAIL_03,
153859 t_TAIL_04,
153860 t_TAIL_05,
153861 t_TAIL_06,
153862 t_TAIL_07,
153863 t_TAIL_08,
153864 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
153865 allocator_type allocator,
153867 const t_ARG_01& arg_01,
153868 const t_ARG_02& arg_02,
153869 const t_ARG_03& arg_03,
153870 const t_ARG_04& arg_04,
153871 const t_ARG_05& arg_05)
153872: Variant_Base(bsl::allocator_arg_t(),
153873 allocator,
153874 bsl::in_place_index_t<t_INDEX>(),
153875 arg_01,
153876 arg_02,
153877 arg_03,
153878 arg_04,
153879 arg_05)
153880{
153881}
153882#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
153883
153884#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
153885template <class t_HEAD, class t_TAIL_01,
153886 class t_TAIL_02,
153887 class t_TAIL_03,
153888 class t_TAIL_04,
153889 class t_TAIL_05,
153890 class t_TAIL_06,
153891 class t_TAIL_07,
153892 class t_TAIL_08,
153893 class t_TAIL_09>
153894template <size_t t_INDEX,
153895 class t_ARG_01,
153896 class t_ARG_02,
153897 class t_ARG_03,
153898 class t_ARG_04,
153899 class t_ARG_05>
153900inline
153901variant<t_HEAD, t_TAIL_01,
153902 t_TAIL_02,
153903 t_TAIL_03,
153904 t_TAIL_04,
153905 t_TAIL_05,
153906 t_TAIL_06,
153907 t_TAIL_07,
153908 t_TAIL_08,
153909 t_TAIL_09,
153910 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
153911 allocator_type allocator,
153913 const t_ARG_01& arg_01,
153914 const t_ARG_02& arg_02,
153915 const t_ARG_03& arg_03,
153916 const t_ARG_04& arg_04,
153917 const t_ARG_05& arg_05)
153918: Variant_Base(bsl::allocator_arg_t(),
153919 allocator,
153920 bsl::in_place_index_t<t_INDEX>(),
153921 arg_01,
153922 arg_02,
153923 arg_03,
153924 arg_04,
153925 arg_05)
153926{
153927}
153928#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
153929
153930#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
153931template <class t_HEAD, class t_TAIL_01,
153932 class t_TAIL_02,
153933 class t_TAIL_03,
153934 class t_TAIL_04,
153935 class t_TAIL_05,
153936 class t_TAIL_06,
153937 class t_TAIL_07,
153938 class t_TAIL_08,
153939 class t_TAIL_09,
153940 class t_TAIL_10>
153941template <size_t t_INDEX,
153942 class t_ARG_01,
153943 class t_ARG_02,
153944 class t_ARG_03,
153945 class t_ARG_04,
153946 class t_ARG_05>
153947inline
153948variant<t_HEAD, t_TAIL_01,
153949 t_TAIL_02,
153950 t_TAIL_03,
153951 t_TAIL_04,
153952 t_TAIL_05,
153953 t_TAIL_06,
153954 t_TAIL_07,
153955 t_TAIL_08,
153956 t_TAIL_09,
153957 t_TAIL_10,
153958 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
153959 allocator_type allocator,
153961 const t_ARG_01& arg_01,
153962 const t_ARG_02& arg_02,
153963 const t_ARG_03& arg_03,
153964 const t_ARG_04& arg_04,
153965 const t_ARG_05& arg_05)
153966: Variant_Base(bsl::allocator_arg_t(),
153967 allocator,
153968 bsl::in_place_index_t<t_INDEX>(),
153969 arg_01,
153970 arg_02,
153971 arg_03,
153972 arg_04,
153973 arg_05)
153974{
153975}
153976#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
153977
153978#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
153979template <class t_HEAD, class t_TAIL_01,
153980 class t_TAIL_02,
153981 class t_TAIL_03,
153982 class t_TAIL_04,
153983 class t_TAIL_05,
153984 class t_TAIL_06,
153985 class t_TAIL_07,
153986 class t_TAIL_08,
153987 class t_TAIL_09,
153988 class t_TAIL_10,
153989 class t_TAIL_11>
153990template <size_t t_INDEX,
153991 class t_ARG_01,
153992 class t_ARG_02,
153993 class t_ARG_03,
153994 class t_ARG_04,
153995 class t_ARG_05>
153996inline
153997variant<t_HEAD, t_TAIL_01,
153998 t_TAIL_02,
153999 t_TAIL_03,
154000 t_TAIL_04,
154001 t_TAIL_05,
154002 t_TAIL_06,
154003 t_TAIL_07,
154004 t_TAIL_08,
154005 t_TAIL_09,
154006 t_TAIL_10,
154007 t_TAIL_11,
154008 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
154009 allocator_type allocator,
154011 const t_ARG_01& arg_01,
154012 const t_ARG_02& arg_02,
154013 const t_ARG_03& arg_03,
154014 const t_ARG_04& arg_04,
154015 const t_ARG_05& arg_05)
154016: Variant_Base(bsl::allocator_arg_t(),
154017 allocator,
154018 bsl::in_place_index_t<t_INDEX>(),
154019 arg_01,
154020 arg_02,
154021 arg_03,
154022 arg_04,
154023 arg_05)
154024{
154025}
154026#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
154027
154028#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
154029template <class t_HEAD, class t_TAIL_01,
154030 class t_TAIL_02,
154031 class t_TAIL_03,
154032 class t_TAIL_04,
154033 class t_TAIL_05,
154034 class t_TAIL_06,
154035 class t_TAIL_07,
154036 class t_TAIL_08,
154037 class t_TAIL_09,
154038 class t_TAIL_10,
154039 class t_TAIL_11,
154040 class t_TAIL_12>
154041template <size_t t_INDEX,
154042 class t_ARG_01,
154043 class t_ARG_02,
154044 class t_ARG_03,
154045 class t_ARG_04,
154046 class t_ARG_05>
154047inline
154048variant<t_HEAD, t_TAIL_01,
154049 t_TAIL_02,
154050 t_TAIL_03,
154051 t_TAIL_04,
154052 t_TAIL_05,
154053 t_TAIL_06,
154054 t_TAIL_07,
154055 t_TAIL_08,
154056 t_TAIL_09,
154057 t_TAIL_10,
154058 t_TAIL_11,
154059 t_TAIL_12,
154060 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
154061 allocator_type allocator,
154063 const t_ARG_01& arg_01,
154064 const t_ARG_02& arg_02,
154065 const t_ARG_03& arg_03,
154066 const t_ARG_04& arg_04,
154067 const t_ARG_05& arg_05)
154068: Variant_Base(bsl::allocator_arg_t(),
154069 allocator,
154070 bsl::in_place_index_t<t_INDEX>(),
154071 arg_01,
154072 arg_02,
154073 arg_03,
154074 arg_04,
154075 arg_05)
154076{
154077}
154078#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
154079
154080#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
154081template <class t_HEAD, class t_TAIL_01,
154082 class t_TAIL_02,
154083 class t_TAIL_03,
154084 class t_TAIL_04,
154085 class t_TAIL_05,
154086 class t_TAIL_06,
154087 class t_TAIL_07,
154088 class t_TAIL_08,
154089 class t_TAIL_09,
154090 class t_TAIL_10,
154091 class t_TAIL_11,
154092 class t_TAIL_12,
154093 class t_TAIL_13>
154094template <size_t t_INDEX,
154095 class t_ARG_01,
154096 class t_ARG_02,
154097 class t_ARG_03,
154098 class t_ARG_04,
154099 class t_ARG_05>
154100inline
154101variant<t_HEAD, t_TAIL_01,
154102 t_TAIL_02,
154103 t_TAIL_03,
154104 t_TAIL_04,
154105 t_TAIL_05,
154106 t_TAIL_06,
154107 t_TAIL_07,
154108 t_TAIL_08,
154109 t_TAIL_09,
154110 t_TAIL_10,
154111 t_TAIL_11,
154112 t_TAIL_12,
154113 t_TAIL_13,
154114 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
154115 allocator_type allocator,
154117 const t_ARG_01& arg_01,
154118 const t_ARG_02& arg_02,
154119 const t_ARG_03& arg_03,
154120 const t_ARG_04& arg_04,
154121 const t_ARG_05& arg_05)
154122: Variant_Base(bsl::allocator_arg_t(),
154123 allocator,
154124 bsl::in_place_index_t<t_INDEX>(),
154125 arg_01,
154126 arg_02,
154127 arg_03,
154128 arg_04,
154129 arg_05)
154130{
154131}
154132#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
154133
154134#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
154135template <class t_HEAD, class t_TAIL_01,
154136 class t_TAIL_02,
154137 class t_TAIL_03,
154138 class t_TAIL_04,
154139 class t_TAIL_05,
154140 class t_TAIL_06,
154141 class t_TAIL_07,
154142 class t_TAIL_08,
154143 class t_TAIL_09,
154144 class t_TAIL_10,
154145 class t_TAIL_11,
154146 class t_TAIL_12,
154147 class t_TAIL_13,
154148 class t_TAIL_14>
154149template <size_t t_INDEX,
154150 class t_ARG_01,
154151 class t_ARG_02,
154152 class t_ARG_03,
154153 class t_ARG_04,
154154 class t_ARG_05>
154155inline
154156variant<t_HEAD, t_TAIL_01,
154157 t_TAIL_02,
154158 t_TAIL_03,
154159 t_TAIL_04,
154160 t_TAIL_05,
154161 t_TAIL_06,
154162 t_TAIL_07,
154163 t_TAIL_08,
154164 t_TAIL_09,
154165 t_TAIL_10,
154166 t_TAIL_11,
154167 t_TAIL_12,
154168 t_TAIL_13,
154169 t_TAIL_14,
154170 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
154171 allocator_type allocator,
154173 const t_ARG_01& arg_01,
154174 const t_ARG_02& arg_02,
154175 const t_ARG_03& arg_03,
154176 const t_ARG_04& arg_04,
154177 const t_ARG_05& arg_05)
154178: Variant_Base(bsl::allocator_arg_t(),
154179 allocator,
154180 bsl::in_place_index_t<t_INDEX>(),
154181 arg_01,
154182 arg_02,
154183 arg_03,
154184 arg_04,
154185 arg_05)
154186{
154187}
154188#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
154189
154190#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
154191template <class t_HEAD, class t_TAIL_01,
154192 class t_TAIL_02,
154193 class t_TAIL_03,
154194 class t_TAIL_04,
154195 class t_TAIL_05,
154196 class t_TAIL_06,
154197 class t_TAIL_07,
154198 class t_TAIL_08,
154199 class t_TAIL_09,
154200 class t_TAIL_10,
154201 class t_TAIL_11,
154202 class t_TAIL_12,
154203 class t_TAIL_13,
154204 class t_TAIL_14,
154205 class t_TAIL_15>
154206template <size_t t_INDEX,
154207 class t_ARG_01,
154208 class t_ARG_02,
154209 class t_ARG_03,
154210 class t_ARG_04,
154211 class t_ARG_05>
154212inline
154213variant<t_HEAD, t_TAIL_01,
154214 t_TAIL_02,
154215 t_TAIL_03,
154216 t_TAIL_04,
154217 t_TAIL_05,
154218 t_TAIL_06,
154219 t_TAIL_07,
154220 t_TAIL_08,
154221 t_TAIL_09,
154222 t_TAIL_10,
154223 t_TAIL_11,
154224 t_TAIL_12,
154225 t_TAIL_13,
154226 t_TAIL_14,
154227 t_TAIL_15,
154228 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
154229 allocator_type allocator,
154231 const t_ARG_01& arg_01,
154232 const t_ARG_02& arg_02,
154233 const t_ARG_03& arg_03,
154234 const t_ARG_04& arg_04,
154235 const t_ARG_05& arg_05)
154236: Variant_Base(bsl::allocator_arg_t(),
154237 allocator,
154238 bsl::in_place_index_t<t_INDEX>(),
154239 arg_01,
154240 arg_02,
154241 arg_03,
154242 arg_04,
154243 arg_05)
154244{
154245}
154246#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
154247
154248#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
154249template <class t_HEAD, class t_TAIL_01,
154250 class t_TAIL_02,
154251 class t_TAIL_03,
154252 class t_TAIL_04,
154253 class t_TAIL_05,
154254 class t_TAIL_06,
154255 class t_TAIL_07,
154256 class t_TAIL_08,
154257 class t_TAIL_09,
154258 class t_TAIL_10,
154259 class t_TAIL_11,
154260 class t_TAIL_12,
154261 class t_TAIL_13,
154262 class t_TAIL_14,
154263 class t_TAIL_15,
154264 class t_TAIL_16>
154265template <size_t t_INDEX,
154266 class t_ARG_01,
154267 class t_ARG_02,
154268 class t_ARG_03,
154269 class t_ARG_04,
154270 class t_ARG_05>
154271inline
154272variant<t_HEAD, t_TAIL_01,
154273 t_TAIL_02,
154274 t_TAIL_03,
154275 t_TAIL_04,
154276 t_TAIL_05,
154277 t_TAIL_06,
154278 t_TAIL_07,
154279 t_TAIL_08,
154280 t_TAIL_09,
154281 t_TAIL_10,
154282 t_TAIL_11,
154283 t_TAIL_12,
154284 t_TAIL_13,
154285 t_TAIL_14,
154286 t_TAIL_15,
154287 t_TAIL_16,
154288 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
154289 allocator_type allocator,
154291 const t_ARG_01& arg_01,
154292 const t_ARG_02& arg_02,
154293 const t_ARG_03& arg_03,
154294 const t_ARG_04& arg_04,
154295 const t_ARG_05& arg_05)
154296: Variant_Base(bsl::allocator_arg_t(),
154297 allocator,
154298 bsl::in_place_index_t<t_INDEX>(),
154299 arg_01,
154300 arg_02,
154301 arg_03,
154302 arg_04,
154303 arg_05)
154304{
154305}
154306#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
154307
154308#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
154309template <class t_HEAD, class t_TAIL_01,
154310 class t_TAIL_02,
154311 class t_TAIL_03,
154312 class t_TAIL_04,
154313 class t_TAIL_05,
154314 class t_TAIL_06,
154315 class t_TAIL_07,
154316 class t_TAIL_08,
154317 class t_TAIL_09,
154318 class t_TAIL_10,
154319 class t_TAIL_11,
154320 class t_TAIL_12,
154321 class t_TAIL_13,
154322 class t_TAIL_14,
154323 class t_TAIL_15,
154324 class t_TAIL_16,
154325 class t_TAIL_17>
154326template <size_t t_INDEX,
154327 class t_ARG_01,
154328 class t_ARG_02,
154329 class t_ARG_03,
154330 class t_ARG_04,
154331 class t_ARG_05>
154332inline
154333variant<t_HEAD, t_TAIL_01,
154334 t_TAIL_02,
154335 t_TAIL_03,
154336 t_TAIL_04,
154337 t_TAIL_05,
154338 t_TAIL_06,
154339 t_TAIL_07,
154340 t_TAIL_08,
154341 t_TAIL_09,
154342 t_TAIL_10,
154343 t_TAIL_11,
154344 t_TAIL_12,
154345 t_TAIL_13,
154346 t_TAIL_14,
154347 t_TAIL_15,
154348 t_TAIL_16,
154349 t_TAIL_17,
154350 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
154351 allocator_type allocator,
154353 const t_ARG_01& arg_01,
154354 const t_ARG_02& arg_02,
154355 const t_ARG_03& arg_03,
154356 const t_ARG_04& arg_04,
154357 const t_ARG_05& arg_05)
154358: Variant_Base(bsl::allocator_arg_t(),
154359 allocator,
154360 bsl::in_place_index_t<t_INDEX>(),
154361 arg_01,
154362 arg_02,
154363 arg_03,
154364 arg_04,
154365 arg_05)
154366{
154367}
154368#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
154369
154370#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
154371template <class t_HEAD, class t_TAIL_01,
154372 class t_TAIL_02,
154373 class t_TAIL_03,
154374 class t_TAIL_04,
154375 class t_TAIL_05,
154376 class t_TAIL_06,
154377 class t_TAIL_07,
154378 class t_TAIL_08,
154379 class t_TAIL_09,
154380 class t_TAIL_10,
154381 class t_TAIL_11,
154382 class t_TAIL_12,
154383 class t_TAIL_13,
154384 class t_TAIL_14,
154385 class t_TAIL_15,
154386 class t_TAIL_16,
154387 class t_TAIL_17,
154388 class t_TAIL_18>
154389template <size_t t_INDEX,
154390 class t_ARG_01,
154391 class t_ARG_02,
154392 class t_ARG_03,
154393 class t_ARG_04,
154394 class t_ARG_05>
154395inline
154396variant<t_HEAD, t_TAIL_01,
154397 t_TAIL_02,
154398 t_TAIL_03,
154399 t_TAIL_04,
154400 t_TAIL_05,
154401 t_TAIL_06,
154402 t_TAIL_07,
154403 t_TAIL_08,
154404 t_TAIL_09,
154405 t_TAIL_10,
154406 t_TAIL_11,
154407 t_TAIL_12,
154408 t_TAIL_13,
154409 t_TAIL_14,
154410 t_TAIL_15,
154411 t_TAIL_16,
154412 t_TAIL_17,
154413 t_TAIL_18,
154414 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
154415 allocator_type allocator,
154417 const t_ARG_01& arg_01,
154418 const t_ARG_02& arg_02,
154419 const t_ARG_03& arg_03,
154420 const t_ARG_04& arg_04,
154421 const t_ARG_05& arg_05)
154422: Variant_Base(bsl::allocator_arg_t(),
154423 allocator,
154424 bsl::in_place_index_t<t_INDEX>(),
154425 arg_01,
154426 arg_02,
154427 arg_03,
154428 arg_04,
154429 arg_05)
154430{
154431}
154432#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
154433
154434
154435#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
154436template <class t_HEAD>
154437template <size_t t_INDEX,
154438 class t_ARG_01,
154439 class t_ARG_02,
154440 class t_ARG_03,
154441 class t_ARG_04,
154442 class t_ARG_05,
154443 class t_ARG_06>
154444inline
154445variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
154446 allocator_type allocator,
154448 const t_ARG_01& arg_01,
154449 const t_ARG_02& arg_02,
154450 const t_ARG_03& arg_03,
154451 const t_ARG_04& arg_04,
154452 const t_ARG_05& arg_05,
154453 const t_ARG_06& arg_06)
154454: Variant_Base(bsl::allocator_arg_t(),
154455 allocator,
154456 bsl::in_place_index_t<t_INDEX>(),
154457 arg_01,
154458 arg_02,
154459 arg_03,
154460 arg_04,
154461 arg_05,
154462 arg_06)
154463{
154464}
154465#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
154466
154467#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
154468template <class t_HEAD, class t_TAIL_01>
154469template <size_t t_INDEX,
154470 class t_ARG_01,
154471 class t_ARG_02,
154472 class t_ARG_03,
154473 class t_ARG_04,
154474 class t_ARG_05,
154475 class t_ARG_06>
154476inline
154477variant<t_HEAD, t_TAIL_01,
154478 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
154479 allocator_type allocator,
154481 const t_ARG_01& arg_01,
154482 const t_ARG_02& arg_02,
154483 const t_ARG_03& arg_03,
154484 const t_ARG_04& arg_04,
154485 const t_ARG_05& arg_05,
154486 const t_ARG_06& arg_06)
154487: Variant_Base(bsl::allocator_arg_t(),
154488 allocator,
154489 bsl::in_place_index_t<t_INDEX>(),
154490 arg_01,
154491 arg_02,
154492 arg_03,
154493 arg_04,
154494 arg_05,
154495 arg_06)
154496{
154497}
154498#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
154499
154500#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
154501template <class t_HEAD, class t_TAIL_01,
154502 class t_TAIL_02>
154503template <size_t t_INDEX,
154504 class t_ARG_01,
154505 class t_ARG_02,
154506 class t_ARG_03,
154507 class t_ARG_04,
154508 class t_ARG_05,
154509 class t_ARG_06>
154510inline
154511variant<t_HEAD, t_TAIL_01,
154512 t_TAIL_02,
154513 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
154514 allocator_type allocator,
154516 const t_ARG_01& arg_01,
154517 const t_ARG_02& arg_02,
154518 const t_ARG_03& arg_03,
154519 const t_ARG_04& arg_04,
154520 const t_ARG_05& arg_05,
154521 const t_ARG_06& arg_06)
154522: Variant_Base(bsl::allocator_arg_t(),
154523 allocator,
154524 bsl::in_place_index_t<t_INDEX>(),
154525 arg_01,
154526 arg_02,
154527 arg_03,
154528 arg_04,
154529 arg_05,
154530 arg_06)
154531{
154532}
154533#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
154534
154535#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
154536template <class t_HEAD, class t_TAIL_01,
154537 class t_TAIL_02,
154538 class t_TAIL_03>
154539template <size_t t_INDEX,
154540 class t_ARG_01,
154541 class t_ARG_02,
154542 class t_ARG_03,
154543 class t_ARG_04,
154544 class t_ARG_05,
154545 class t_ARG_06>
154546inline
154547variant<t_HEAD, t_TAIL_01,
154548 t_TAIL_02,
154549 t_TAIL_03,
154550 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
154551 allocator_type allocator,
154553 const t_ARG_01& arg_01,
154554 const t_ARG_02& arg_02,
154555 const t_ARG_03& arg_03,
154556 const t_ARG_04& arg_04,
154557 const t_ARG_05& arg_05,
154558 const t_ARG_06& arg_06)
154559: Variant_Base(bsl::allocator_arg_t(),
154560 allocator,
154561 bsl::in_place_index_t<t_INDEX>(),
154562 arg_01,
154563 arg_02,
154564 arg_03,
154565 arg_04,
154566 arg_05,
154567 arg_06)
154568{
154569}
154570#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
154571
154572#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
154573template <class t_HEAD, class t_TAIL_01,
154574 class t_TAIL_02,
154575 class t_TAIL_03,
154576 class t_TAIL_04>
154577template <size_t t_INDEX,
154578 class t_ARG_01,
154579 class t_ARG_02,
154580 class t_ARG_03,
154581 class t_ARG_04,
154582 class t_ARG_05,
154583 class t_ARG_06>
154584inline
154585variant<t_HEAD, t_TAIL_01,
154586 t_TAIL_02,
154587 t_TAIL_03,
154588 t_TAIL_04,
154589 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
154590 allocator_type allocator,
154592 const t_ARG_01& arg_01,
154593 const t_ARG_02& arg_02,
154594 const t_ARG_03& arg_03,
154595 const t_ARG_04& arg_04,
154596 const t_ARG_05& arg_05,
154597 const t_ARG_06& arg_06)
154598: Variant_Base(bsl::allocator_arg_t(),
154599 allocator,
154600 bsl::in_place_index_t<t_INDEX>(),
154601 arg_01,
154602 arg_02,
154603 arg_03,
154604 arg_04,
154605 arg_05,
154606 arg_06)
154607{
154608}
154609#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
154610
154611#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
154612template <class t_HEAD, class t_TAIL_01,
154613 class t_TAIL_02,
154614 class t_TAIL_03,
154615 class t_TAIL_04,
154616 class t_TAIL_05>
154617template <size_t t_INDEX,
154618 class t_ARG_01,
154619 class t_ARG_02,
154620 class t_ARG_03,
154621 class t_ARG_04,
154622 class t_ARG_05,
154623 class t_ARG_06>
154624inline
154625variant<t_HEAD, t_TAIL_01,
154626 t_TAIL_02,
154627 t_TAIL_03,
154628 t_TAIL_04,
154629 t_TAIL_05,
154630 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
154631 allocator_type allocator,
154633 const t_ARG_01& arg_01,
154634 const t_ARG_02& arg_02,
154635 const t_ARG_03& arg_03,
154636 const t_ARG_04& arg_04,
154637 const t_ARG_05& arg_05,
154638 const t_ARG_06& arg_06)
154639: Variant_Base(bsl::allocator_arg_t(),
154640 allocator,
154641 bsl::in_place_index_t<t_INDEX>(),
154642 arg_01,
154643 arg_02,
154644 arg_03,
154645 arg_04,
154646 arg_05,
154647 arg_06)
154648{
154649}
154650#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
154651
154652#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
154653template <class t_HEAD, class t_TAIL_01,
154654 class t_TAIL_02,
154655 class t_TAIL_03,
154656 class t_TAIL_04,
154657 class t_TAIL_05,
154658 class t_TAIL_06>
154659template <size_t t_INDEX,
154660 class t_ARG_01,
154661 class t_ARG_02,
154662 class t_ARG_03,
154663 class t_ARG_04,
154664 class t_ARG_05,
154665 class t_ARG_06>
154666inline
154667variant<t_HEAD, t_TAIL_01,
154668 t_TAIL_02,
154669 t_TAIL_03,
154670 t_TAIL_04,
154671 t_TAIL_05,
154672 t_TAIL_06,
154673 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
154674 allocator_type allocator,
154676 const t_ARG_01& arg_01,
154677 const t_ARG_02& arg_02,
154678 const t_ARG_03& arg_03,
154679 const t_ARG_04& arg_04,
154680 const t_ARG_05& arg_05,
154681 const t_ARG_06& arg_06)
154682: Variant_Base(bsl::allocator_arg_t(),
154683 allocator,
154684 bsl::in_place_index_t<t_INDEX>(),
154685 arg_01,
154686 arg_02,
154687 arg_03,
154688 arg_04,
154689 arg_05,
154690 arg_06)
154691{
154692}
154693#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
154694
154695#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
154696template <class t_HEAD, class t_TAIL_01,
154697 class t_TAIL_02,
154698 class t_TAIL_03,
154699 class t_TAIL_04,
154700 class t_TAIL_05,
154701 class t_TAIL_06,
154702 class t_TAIL_07>
154703template <size_t t_INDEX,
154704 class t_ARG_01,
154705 class t_ARG_02,
154706 class t_ARG_03,
154707 class t_ARG_04,
154708 class t_ARG_05,
154709 class t_ARG_06>
154710inline
154711variant<t_HEAD, t_TAIL_01,
154712 t_TAIL_02,
154713 t_TAIL_03,
154714 t_TAIL_04,
154715 t_TAIL_05,
154716 t_TAIL_06,
154717 t_TAIL_07,
154718 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
154719 allocator_type allocator,
154721 const t_ARG_01& arg_01,
154722 const t_ARG_02& arg_02,
154723 const t_ARG_03& arg_03,
154724 const t_ARG_04& arg_04,
154725 const t_ARG_05& arg_05,
154726 const t_ARG_06& arg_06)
154727: Variant_Base(bsl::allocator_arg_t(),
154728 allocator,
154729 bsl::in_place_index_t<t_INDEX>(),
154730 arg_01,
154731 arg_02,
154732 arg_03,
154733 arg_04,
154734 arg_05,
154735 arg_06)
154736{
154737}
154738#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
154739
154740#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
154741template <class t_HEAD, class t_TAIL_01,
154742 class t_TAIL_02,
154743 class t_TAIL_03,
154744 class t_TAIL_04,
154745 class t_TAIL_05,
154746 class t_TAIL_06,
154747 class t_TAIL_07,
154748 class t_TAIL_08>
154749template <size_t t_INDEX,
154750 class t_ARG_01,
154751 class t_ARG_02,
154752 class t_ARG_03,
154753 class t_ARG_04,
154754 class t_ARG_05,
154755 class t_ARG_06>
154756inline
154757variant<t_HEAD, t_TAIL_01,
154758 t_TAIL_02,
154759 t_TAIL_03,
154760 t_TAIL_04,
154761 t_TAIL_05,
154762 t_TAIL_06,
154763 t_TAIL_07,
154764 t_TAIL_08,
154765 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
154766 allocator_type allocator,
154768 const t_ARG_01& arg_01,
154769 const t_ARG_02& arg_02,
154770 const t_ARG_03& arg_03,
154771 const t_ARG_04& arg_04,
154772 const t_ARG_05& arg_05,
154773 const t_ARG_06& arg_06)
154774: Variant_Base(bsl::allocator_arg_t(),
154775 allocator,
154776 bsl::in_place_index_t<t_INDEX>(),
154777 arg_01,
154778 arg_02,
154779 arg_03,
154780 arg_04,
154781 arg_05,
154782 arg_06)
154783{
154784}
154785#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
154786
154787#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
154788template <class t_HEAD, class t_TAIL_01,
154789 class t_TAIL_02,
154790 class t_TAIL_03,
154791 class t_TAIL_04,
154792 class t_TAIL_05,
154793 class t_TAIL_06,
154794 class t_TAIL_07,
154795 class t_TAIL_08,
154796 class t_TAIL_09>
154797template <size_t t_INDEX,
154798 class t_ARG_01,
154799 class t_ARG_02,
154800 class t_ARG_03,
154801 class t_ARG_04,
154802 class t_ARG_05,
154803 class t_ARG_06>
154804inline
154805variant<t_HEAD, t_TAIL_01,
154806 t_TAIL_02,
154807 t_TAIL_03,
154808 t_TAIL_04,
154809 t_TAIL_05,
154810 t_TAIL_06,
154811 t_TAIL_07,
154812 t_TAIL_08,
154813 t_TAIL_09,
154814 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
154815 allocator_type allocator,
154817 const t_ARG_01& arg_01,
154818 const t_ARG_02& arg_02,
154819 const t_ARG_03& arg_03,
154820 const t_ARG_04& arg_04,
154821 const t_ARG_05& arg_05,
154822 const t_ARG_06& arg_06)
154823: Variant_Base(bsl::allocator_arg_t(),
154824 allocator,
154825 bsl::in_place_index_t<t_INDEX>(),
154826 arg_01,
154827 arg_02,
154828 arg_03,
154829 arg_04,
154830 arg_05,
154831 arg_06)
154832{
154833}
154834#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
154835
154836#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
154837template <class t_HEAD, class t_TAIL_01,
154838 class t_TAIL_02,
154839 class t_TAIL_03,
154840 class t_TAIL_04,
154841 class t_TAIL_05,
154842 class t_TAIL_06,
154843 class t_TAIL_07,
154844 class t_TAIL_08,
154845 class t_TAIL_09,
154846 class t_TAIL_10>
154847template <size_t t_INDEX,
154848 class t_ARG_01,
154849 class t_ARG_02,
154850 class t_ARG_03,
154851 class t_ARG_04,
154852 class t_ARG_05,
154853 class t_ARG_06>
154854inline
154855variant<t_HEAD, t_TAIL_01,
154856 t_TAIL_02,
154857 t_TAIL_03,
154858 t_TAIL_04,
154859 t_TAIL_05,
154860 t_TAIL_06,
154861 t_TAIL_07,
154862 t_TAIL_08,
154863 t_TAIL_09,
154864 t_TAIL_10,
154865 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
154866 allocator_type allocator,
154868 const t_ARG_01& arg_01,
154869 const t_ARG_02& arg_02,
154870 const t_ARG_03& arg_03,
154871 const t_ARG_04& arg_04,
154872 const t_ARG_05& arg_05,
154873 const t_ARG_06& arg_06)
154874: Variant_Base(bsl::allocator_arg_t(),
154875 allocator,
154876 bsl::in_place_index_t<t_INDEX>(),
154877 arg_01,
154878 arg_02,
154879 arg_03,
154880 arg_04,
154881 arg_05,
154882 arg_06)
154883{
154884}
154885#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
154886
154887#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
154888template <class t_HEAD, class t_TAIL_01,
154889 class t_TAIL_02,
154890 class t_TAIL_03,
154891 class t_TAIL_04,
154892 class t_TAIL_05,
154893 class t_TAIL_06,
154894 class t_TAIL_07,
154895 class t_TAIL_08,
154896 class t_TAIL_09,
154897 class t_TAIL_10,
154898 class t_TAIL_11>
154899template <size_t t_INDEX,
154900 class t_ARG_01,
154901 class t_ARG_02,
154902 class t_ARG_03,
154903 class t_ARG_04,
154904 class t_ARG_05,
154905 class t_ARG_06>
154906inline
154907variant<t_HEAD, t_TAIL_01,
154908 t_TAIL_02,
154909 t_TAIL_03,
154910 t_TAIL_04,
154911 t_TAIL_05,
154912 t_TAIL_06,
154913 t_TAIL_07,
154914 t_TAIL_08,
154915 t_TAIL_09,
154916 t_TAIL_10,
154917 t_TAIL_11,
154918 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
154919 allocator_type allocator,
154921 const t_ARG_01& arg_01,
154922 const t_ARG_02& arg_02,
154923 const t_ARG_03& arg_03,
154924 const t_ARG_04& arg_04,
154925 const t_ARG_05& arg_05,
154926 const t_ARG_06& arg_06)
154927: Variant_Base(bsl::allocator_arg_t(),
154928 allocator,
154929 bsl::in_place_index_t<t_INDEX>(),
154930 arg_01,
154931 arg_02,
154932 arg_03,
154933 arg_04,
154934 arg_05,
154935 arg_06)
154936{
154937}
154938#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
154939
154940#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
154941template <class t_HEAD, class t_TAIL_01,
154942 class t_TAIL_02,
154943 class t_TAIL_03,
154944 class t_TAIL_04,
154945 class t_TAIL_05,
154946 class t_TAIL_06,
154947 class t_TAIL_07,
154948 class t_TAIL_08,
154949 class t_TAIL_09,
154950 class t_TAIL_10,
154951 class t_TAIL_11,
154952 class t_TAIL_12>
154953template <size_t t_INDEX,
154954 class t_ARG_01,
154955 class t_ARG_02,
154956 class t_ARG_03,
154957 class t_ARG_04,
154958 class t_ARG_05,
154959 class t_ARG_06>
154960inline
154961variant<t_HEAD, t_TAIL_01,
154962 t_TAIL_02,
154963 t_TAIL_03,
154964 t_TAIL_04,
154965 t_TAIL_05,
154966 t_TAIL_06,
154967 t_TAIL_07,
154968 t_TAIL_08,
154969 t_TAIL_09,
154970 t_TAIL_10,
154971 t_TAIL_11,
154972 t_TAIL_12,
154973 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
154974 allocator_type allocator,
154976 const t_ARG_01& arg_01,
154977 const t_ARG_02& arg_02,
154978 const t_ARG_03& arg_03,
154979 const t_ARG_04& arg_04,
154980 const t_ARG_05& arg_05,
154981 const t_ARG_06& arg_06)
154982: Variant_Base(bsl::allocator_arg_t(),
154983 allocator,
154984 bsl::in_place_index_t<t_INDEX>(),
154985 arg_01,
154986 arg_02,
154987 arg_03,
154988 arg_04,
154989 arg_05,
154990 arg_06)
154991{
154992}
154993#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
154994
154995#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
154996template <class t_HEAD, class t_TAIL_01,
154997 class t_TAIL_02,
154998 class t_TAIL_03,
154999 class t_TAIL_04,
155000 class t_TAIL_05,
155001 class t_TAIL_06,
155002 class t_TAIL_07,
155003 class t_TAIL_08,
155004 class t_TAIL_09,
155005 class t_TAIL_10,
155006 class t_TAIL_11,
155007 class t_TAIL_12,
155008 class t_TAIL_13>
155009template <size_t t_INDEX,
155010 class t_ARG_01,
155011 class t_ARG_02,
155012 class t_ARG_03,
155013 class t_ARG_04,
155014 class t_ARG_05,
155015 class t_ARG_06>
155016inline
155017variant<t_HEAD, t_TAIL_01,
155018 t_TAIL_02,
155019 t_TAIL_03,
155020 t_TAIL_04,
155021 t_TAIL_05,
155022 t_TAIL_06,
155023 t_TAIL_07,
155024 t_TAIL_08,
155025 t_TAIL_09,
155026 t_TAIL_10,
155027 t_TAIL_11,
155028 t_TAIL_12,
155029 t_TAIL_13,
155030 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
155031 allocator_type allocator,
155033 const t_ARG_01& arg_01,
155034 const t_ARG_02& arg_02,
155035 const t_ARG_03& arg_03,
155036 const t_ARG_04& arg_04,
155037 const t_ARG_05& arg_05,
155038 const t_ARG_06& arg_06)
155039: Variant_Base(bsl::allocator_arg_t(),
155040 allocator,
155041 bsl::in_place_index_t<t_INDEX>(),
155042 arg_01,
155043 arg_02,
155044 arg_03,
155045 arg_04,
155046 arg_05,
155047 arg_06)
155048{
155049}
155050#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
155051
155052#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
155053template <class t_HEAD, class t_TAIL_01,
155054 class t_TAIL_02,
155055 class t_TAIL_03,
155056 class t_TAIL_04,
155057 class t_TAIL_05,
155058 class t_TAIL_06,
155059 class t_TAIL_07,
155060 class t_TAIL_08,
155061 class t_TAIL_09,
155062 class t_TAIL_10,
155063 class t_TAIL_11,
155064 class t_TAIL_12,
155065 class t_TAIL_13,
155066 class t_TAIL_14>
155067template <size_t t_INDEX,
155068 class t_ARG_01,
155069 class t_ARG_02,
155070 class t_ARG_03,
155071 class t_ARG_04,
155072 class t_ARG_05,
155073 class t_ARG_06>
155074inline
155075variant<t_HEAD, t_TAIL_01,
155076 t_TAIL_02,
155077 t_TAIL_03,
155078 t_TAIL_04,
155079 t_TAIL_05,
155080 t_TAIL_06,
155081 t_TAIL_07,
155082 t_TAIL_08,
155083 t_TAIL_09,
155084 t_TAIL_10,
155085 t_TAIL_11,
155086 t_TAIL_12,
155087 t_TAIL_13,
155088 t_TAIL_14,
155089 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
155090 allocator_type allocator,
155092 const t_ARG_01& arg_01,
155093 const t_ARG_02& arg_02,
155094 const t_ARG_03& arg_03,
155095 const t_ARG_04& arg_04,
155096 const t_ARG_05& arg_05,
155097 const t_ARG_06& arg_06)
155098: Variant_Base(bsl::allocator_arg_t(),
155099 allocator,
155100 bsl::in_place_index_t<t_INDEX>(),
155101 arg_01,
155102 arg_02,
155103 arg_03,
155104 arg_04,
155105 arg_05,
155106 arg_06)
155107{
155108}
155109#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
155110
155111#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
155112template <class t_HEAD, class t_TAIL_01,
155113 class t_TAIL_02,
155114 class t_TAIL_03,
155115 class t_TAIL_04,
155116 class t_TAIL_05,
155117 class t_TAIL_06,
155118 class t_TAIL_07,
155119 class t_TAIL_08,
155120 class t_TAIL_09,
155121 class t_TAIL_10,
155122 class t_TAIL_11,
155123 class t_TAIL_12,
155124 class t_TAIL_13,
155125 class t_TAIL_14,
155126 class t_TAIL_15>
155127template <size_t t_INDEX,
155128 class t_ARG_01,
155129 class t_ARG_02,
155130 class t_ARG_03,
155131 class t_ARG_04,
155132 class t_ARG_05,
155133 class t_ARG_06>
155134inline
155135variant<t_HEAD, t_TAIL_01,
155136 t_TAIL_02,
155137 t_TAIL_03,
155138 t_TAIL_04,
155139 t_TAIL_05,
155140 t_TAIL_06,
155141 t_TAIL_07,
155142 t_TAIL_08,
155143 t_TAIL_09,
155144 t_TAIL_10,
155145 t_TAIL_11,
155146 t_TAIL_12,
155147 t_TAIL_13,
155148 t_TAIL_14,
155149 t_TAIL_15,
155150 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
155151 allocator_type allocator,
155153 const t_ARG_01& arg_01,
155154 const t_ARG_02& arg_02,
155155 const t_ARG_03& arg_03,
155156 const t_ARG_04& arg_04,
155157 const t_ARG_05& arg_05,
155158 const t_ARG_06& arg_06)
155159: Variant_Base(bsl::allocator_arg_t(),
155160 allocator,
155161 bsl::in_place_index_t<t_INDEX>(),
155162 arg_01,
155163 arg_02,
155164 arg_03,
155165 arg_04,
155166 arg_05,
155167 arg_06)
155168{
155169}
155170#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
155171
155172#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
155173template <class t_HEAD, class t_TAIL_01,
155174 class t_TAIL_02,
155175 class t_TAIL_03,
155176 class t_TAIL_04,
155177 class t_TAIL_05,
155178 class t_TAIL_06,
155179 class t_TAIL_07,
155180 class t_TAIL_08,
155181 class t_TAIL_09,
155182 class t_TAIL_10,
155183 class t_TAIL_11,
155184 class t_TAIL_12,
155185 class t_TAIL_13,
155186 class t_TAIL_14,
155187 class t_TAIL_15,
155188 class t_TAIL_16>
155189template <size_t t_INDEX,
155190 class t_ARG_01,
155191 class t_ARG_02,
155192 class t_ARG_03,
155193 class t_ARG_04,
155194 class t_ARG_05,
155195 class t_ARG_06>
155196inline
155197variant<t_HEAD, t_TAIL_01,
155198 t_TAIL_02,
155199 t_TAIL_03,
155200 t_TAIL_04,
155201 t_TAIL_05,
155202 t_TAIL_06,
155203 t_TAIL_07,
155204 t_TAIL_08,
155205 t_TAIL_09,
155206 t_TAIL_10,
155207 t_TAIL_11,
155208 t_TAIL_12,
155209 t_TAIL_13,
155210 t_TAIL_14,
155211 t_TAIL_15,
155212 t_TAIL_16,
155213 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
155214 allocator_type allocator,
155216 const t_ARG_01& arg_01,
155217 const t_ARG_02& arg_02,
155218 const t_ARG_03& arg_03,
155219 const t_ARG_04& arg_04,
155220 const t_ARG_05& arg_05,
155221 const t_ARG_06& arg_06)
155222: Variant_Base(bsl::allocator_arg_t(),
155223 allocator,
155224 bsl::in_place_index_t<t_INDEX>(),
155225 arg_01,
155226 arg_02,
155227 arg_03,
155228 arg_04,
155229 arg_05,
155230 arg_06)
155231{
155232}
155233#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
155234
155235#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
155236template <class t_HEAD, class t_TAIL_01,
155237 class t_TAIL_02,
155238 class t_TAIL_03,
155239 class t_TAIL_04,
155240 class t_TAIL_05,
155241 class t_TAIL_06,
155242 class t_TAIL_07,
155243 class t_TAIL_08,
155244 class t_TAIL_09,
155245 class t_TAIL_10,
155246 class t_TAIL_11,
155247 class t_TAIL_12,
155248 class t_TAIL_13,
155249 class t_TAIL_14,
155250 class t_TAIL_15,
155251 class t_TAIL_16,
155252 class t_TAIL_17>
155253template <size_t t_INDEX,
155254 class t_ARG_01,
155255 class t_ARG_02,
155256 class t_ARG_03,
155257 class t_ARG_04,
155258 class t_ARG_05,
155259 class t_ARG_06>
155260inline
155261variant<t_HEAD, t_TAIL_01,
155262 t_TAIL_02,
155263 t_TAIL_03,
155264 t_TAIL_04,
155265 t_TAIL_05,
155266 t_TAIL_06,
155267 t_TAIL_07,
155268 t_TAIL_08,
155269 t_TAIL_09,
155270 t_TAIL_10,
155271 t_TAIL_11,
155272 t_TAIL_12,
155273 t_TAIL_13,
155274 t_TAIL_14,
155275 t_TAIL_15,
155276 t_TAIL_16,
155277 t_TAIL_17,
155278 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
155279 allocator_type allocator,
155281 const t_ARG_01& arg_01,
155282 const t_ARG_02& arg_02,
155283 const t_ARG_03& arg_03,
155284 const t_ARG_04& arg_04,
155285 const t_ARG_05& arg_05,
155286 const t_ARG_06& arg_06)
155287: Variant_Base(bsl::allocator_arg_t(),
155288 allocator,
155289 bsl::in_place_index_t<t_INDEX>(),
155290 arg_01,
155291 arg_02,
155292 arg_03,
155293 arg_04,
155294 arg_05,
155295 arg_06)
155296{
155297}
155298#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
155299
155300#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
155301template <class t_HEAD, class t_TAIL_01,
155302 class t_TAIL_02,
155303 class t_TAIL_03,
155304 class t_TAIL_04,
155305 class t_TAIL_05,
155306 class t_TAIL_06,
155307 class t_TAIL_07,
155308 class t_TAIL_08,
155309 class t_TAIL_09,
155310 class t_TAIL_10,
155311 class t_TAIL_11,
155312 class t_TAIL_12,
155313 class t_TAIL_13,
155314 class t_TAIL_14,
155315 class t_TAIL_15,
155316 class t_TAIL_16,
155317 class t_TAIL_17,
155318 class t_TAIL_18>
155319template <size_t t_INDEX,
155320 class t_ARG_01,
155321 class t_ARG_02,
155322 class t_ARG_03,
155323 class t_ARG_04,
155324 class t_ARG_05,
155325 class t_ARG_06>
155326inline
155327variant<t_HEAD, t_TAIL_01,
155328 t_TAIL_02,
155329 t_TAIL_03,
155330 t_TAIL_04,
155331 t_TAIL_05,
155332 t_TAIL_06,
155333 t_TAIL_07,
155334 t_TAIL_08,
155335 t_TAIL_09,
155336 t_TAIL_10,
155337 t_TAIL_11,
155338 t_TAIL_12,
155339 t_TAIL_13,
155340 t_TAIL_14,
155341 t_TAIL_15,
155342 t_TAIL_16,
155343 t_TAIL_17,
155344 t_TAIL_18,
155345 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
155346 allocator_type allocator,
155348 const t_ARG_01& arg_01,
155349 const t_ARG_02& arg_02,
155350 const t_ARG_03& arg_03,
155351 const t_ARG_04& arg_04,
155352 const t_ARG_05& arg_05,
155353 const t_ARG_06& arg_06)
155354: Variant_Base(bsl::allocator_arg_t(),
155355 allocator,
155356 bsl::in_place_index_t<t_INDEX>(),
155357 arg_01,
155358 arg_02,
155359 arg_03,
155360 arg_04,
155361 arg_05,
155362 arg_06)
155363{
155364}
155365#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
155366
155367
155368#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
155369template <class t_HEAD>
155370template <size_t t_INDEX,
155371 class t_ARG_01,
155372 class t_ARG_02,
155373 class t_ARG_03,
155374 class t_ARG_04,
155375 class t_ARG_05,
155376 class t_ARG_06,
155377 class t_ARG_07>
155378inline
155379variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
155380 allocator_type allocator,
155382 const t_ARG_01& arg_01,
155383 const t_ARG_02& arg_02,
155384 const t_ARG_03& arg_03,
155385 const t_ARG_04& arg_04,
155386 const t_ARG_05& arg_05,
155387 const t_ARG_06& arg_06,
155388 const t_ARG_07& arg_07)
155389: Variant_Base(bsl::allocator_arg_t(),
155390 allocator,
155391 bsl::in_place_index_t<t_INDEX>(),
155392 arg_01,
155393 arg_02,
155394 arg_03,
155395 arg_04,
155396 arg_05,
155397 arg_06,
155398 arg_07)
155399{
155400}
155401#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
155402
155403#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
155404template <class t_HEAD, class t_TAIL_01>
155405template <size_t t_INDEX,
155406 class t_ARG_01,
155407 class t_ARG_02,
155408 class t_ARG_03,
155409 class t_ARG_04,
155410 class t_ARG_05,
155411 class t_ARG_06,
155412 class t_ARG_07>
155413inline
155414variant<t_HEAD, t_TAIL_01,
155415 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
155416 allocator_type allocator,
155418 const t_ARG_01& arg_01,
155419 const t_ARG_02& arg_02,
155420 const t_ARG_03& arg_03,
155421 const t_ARG_04& arg_04,
155422 const t_ARG_05& arg_05,
155423 const t_ARG_06& arg_06,
155424 const t_ARG_07& arg_07)
155425: Variant_Base(bsl::allocator_arg_t(),
155426 allocator,
155427 bsl::in_place_index_t<t_INDEX>(),
155428 arg_01,
155429 arg_02,
155430 arg_03,
155431 arg_04,
155432 arg_05,
155433 arg_06,
155434 arg_07)
155435{
155436}
155437#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
155438
155439#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
155440template <class t_HEAD, class t_TAIL_01,
155441 class t_TAIL_02>
155442template <size_t t_INDEX,
155443 class t_ARG_01,
155444 class t_ARG_02,
155445 class t_ARG_03,
155446 class t_ARG_04,
155447 class t_ARG_05,
155448 class t_ARG_06,
155449 class t_ARG_07>
155450inline
155451variant<t_HEAD, t_TAIL_01,
155452 t_TAIL_02,
155453 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
155454 allocator_type allocator,
155456 const t_ARG_01& arg_01,
155457 const t_ARG_02& arg_02,
155458 const t_ARG_03& arg_03,
155459 const t_ARG_04& arg_04,
155460 const t_ARG_05& arg_05,
155461 const t_ARG_06& arg_06,
155462 const t_ARG_07& arg_07)
155463: Variant_Base(bsl::allocator_arg_t(),
155464 allocator,
155465 bsl::in_place_index_t<t_INDEX>(),
155466 arg_01,
155467 arg_02,
155468 arg_03,
155469 arg_04,
155470 arg_05,
155471 arg_06,
155472 arg_07)
155473{
155474}
155475#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
155476
155477#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
155478template <class t_HEAD, class t_TAIL_01,
155479 class t_TAIL_02,
155480 class t_TAIL_03>
155481template <size_t t_INDEX,
155482 class t_ARG_01,
155483 class t_ARG_02,
155484 class t_ARG_03,
155485 class t_ARG_04,
155486 class t_ARG_05,
155487 class t_ARG_06,
155488 class t_ARG_07>
155489inline
155490variant<t_HEAD, t_TAIL_01,
155491 t_TAIL_02,
155492 t_TAIL_03,
155493 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
155494 allocator_type allocator,
155496 const t_ARG_01& arg_01,
155497 const t_ARG_02& arg_02,
155498 const t_ARG_03& arg_03,
155499 const t_ARG_04& arg_04,
155500 const t_ARG_05& arg_05,
155501 const t_ARG_06& arg_06,
155502 const t_ARG_07& arg_07)
155503: Variant_Base(bsl::allocator_arg_t(),
155504 allocator,
155505 bsl::in_place_index_t<t_INDEX>(),
155506 arg_01,
155507 arg_02,
155508 arg_03,
155509 arg_04,
155510 arg_05,
155511 arg_06,
155512 arg_07)
155513{
155514}
155515#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
155516
155517#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
155518template <class t_HEAD, class t_TAIL_01,
155519 class t_TAIL_02,
155520 class t_TAIL_03,
155521 class t_TAIL_04>
155522template <size_t t_INDEX,
155523 class t_ARG_01,
155524 class t_ARG_02,
155525 class t_ARG_03,
155526 class t_ARG_04,
155527 class t_ARG_05,
155528 class t_ARG_06,
155529 class t_ARG_07>
155530inline
155531variant<t_HEAD, t_TAIL_01,
155532 t_TAIL_02,
155533 t_TAIL_03,
155534 t_TAIL_04,
155535 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
155536 allocator_type allocator,
155538 const t_ARG_01& arg_01,
155539 const t_ARG_02& arg_02,
155540 const t_ARG_03& arg_03,
155541 const t_ARG_04& arg_04,
155542 const t_ARG_05& arg_05,
155543 const t_ARG_06& arg_06,
155544 const t_ARG_07& arg_07)
155545: Variant_Base(bsl::allocator_arg_t(),
155546 allocator,
155547 bsl::in_place_index_t<t_INDEX>(),
155548 arg_01,
155549 arg_02,
155550 arg_03,
155551 arg_04,
155552 arg_05,
155553 arg_06,
155554 arg_07)
155555{
155556}
155557#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
155558
155559#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
155560template <class t_HEAD, class t_TAIL_01,
155561 class t_TAIL_02,
155562 class t_TAIL_03,
155563 class t_TAIL_04,
155564 class t_TAIL_05>
155565template <size_t t_INDEX,
155566 class t_ARG_01,
155567 class t_ARG_02,
155568 class t_ARG_03,
155569 class t_ARG_04,
155570 class t_ARG_05,
155571 class t_ARG_06,
155572 class t_ARG_07>
155573inline
155574variant<t_HEAD, t_TAIL_01,
155575 t_TAIL_02,
155576 t_TAIL_03,
155577 t_TAIL_04,
155578 t_TAIL_05,
155579 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
155580 allocator_type allocator,
155582 const t_ARG_01& arg_01,
155583 const t_ARG_02& arg_02,
155584 const t_ARG_03& arg_03,
155585 const t_ARG_04& arg_04,
155586 const t_ARG_05& arg_05,
155587 const t_ARG_06& arg_06,
155588 const t_ARG_07& arg_07)
155589: Variant_Base(bsl::allocator_arg_t(),
155590 allocator,
155591 bsl::in_place_index_t<t_INDEX>(),
155592 arg_01,
155593 arg_02,
155594 arg_03,
155595 arg_04,
155596 arg_05,
155597 arg_06,
155598 arg_07)
155599{
155600}
155601#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
155602
155603#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
155604template <class t_HEAD, class t_TAIL_01,
155605 class t_TAIL_02,
155606 class t_TAIL_03,
155607 class t_TAIL_04,
155608 class t_TAIL_05,
155609 class t_TAIL_06>
155610template <size_t t_INDEX,
155611 class t_ARG_01,
155612 class t_ARG_02,
155613 class t_ARG_03,
155614 class t_ARG_04,
155615 class t_ARG_05,
155616 class t_ARG_06,
155617 class t_ARG_07>
155618inline
155619variant<t_HEAD, t_TAIL_01,
155620 t_TAIL_02,
155621 t_TAIL_03,
155622 t_TAIL_04,
155623 t_TAIL_05,
155624 t_TAIL_06,
155625 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
155626 allocator_type allocator,
155628 const t_ARG_01& arg_01,
155629 const t_ARG_02& arg_02,
155630 const t_ARG_03& arg_03,
155631 const t_ARG_04& arg_04,
155632 const t_ARG_05& arg_05,
155633 const t_ARG_06& arg_06,
155634 const t_ARG_07& arg_07)
155635: Variant_Base(bsl::allocator_arg_t(),
155636 allocator,
155637 bsl::in_place_index_t<t_INDEX>(),
155638 arg_01,
155639 arg_02,
155640 arg_03,
155641 arg_04,
155642 arg_05,
155643 arg_06,
155644 arg_07)
155645{
155646}
155647#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
155648
155649#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
155650template <class t_HEAD, class t_TAIL_01,
155651 class t_TAIL_02,
155652 class t_TAIL_03,
155653 class t_TAIL_04,
155654 class t_TAIL_05,
155655 class t_TAIL_06,
155656 class t_TAIL_07>
155657template <size_t t_INDEX,
155658 class t_ARG_01,
155659 class t_ARG_02,
155660 class t_ARG_03,
155661 class t_ARG_04,
155662 class t_ARG_05,
155663 class t_ARG_06,
155664 class t_ARG_07>
155665inline
155666variant<t_HEAD, t_TAIL_01,
155667 t_TAIL_02,
155668 t_TAIL_03,
155669 t_TAIL_04,
155670 t_TAIL_05,
155671 t_TAIL_06,
155672 t_TAIL_07,
155673 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
155674 allocator_type allocator,
155676 const t_ARG_01& arg_01,
155677 const t_ARG_02& arg_02,
155678 const t_ARG_03& arg_03,
155679 const t_ARG_04& arg_04,
155680 const t_ARG_05& arg_05,
155681 const t_ARG_06& arg_06,
155682 const t_ARG_07& arg_07)
155683: Variant_Base(bsl::allocator_arg_t(),
155684 allocator,
155685 bsl::in_place_index_t<t_INDEX>(),
155686 arg_01,
155687 arg_02,
155688 arg_03,
155689 arg_04,
155690 arg_05,
155691 arg_06,
155692 arg_07)
155693{
155694}
155695#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
155696
155697#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
155698template <class t_HEAD, class t_TAIL_01,
155699 class t_TAIL_02,
155700 class t_TAIL_03,
155701 class t_TAIL_04,
155702 class t_TAIL_05,
155703 class t_TAIL_06,
155704 class t_TAIL_07,
155705 class t_TAIL_08>
155706template <size_t t_INDEX,
155707 class t_ARG_01,
155708 class t_ARG_02,
155709 class t_ARG_03,
155710 class t_ARG_04,
155711 class t_ARG_05,
155712 class t_ARG_06,
155713 class t_ARG_07>
155714inline
155715variant<t_HEAD, t_TAIL_01,
155716 t_TAIL_02,
155717 t_TAIL_03,
155718 t_TAIL_04,
155719 t_TAIL_05,
155720 t_TAIL_06,
155721 t_TAIL_07,
155722 t_TAIL_08,
155723 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
155724 allocator_type allocator,
155726 const t_ARG_01& arg_01,
155727 const t_ARG_02& arg_02,
155728 const t_ARG_03& arg_03,
155729 const t_ARG_04& arg_04,
155730 const t_ARG_05& arg_05,
155731 const t_ARG_06& arg_06,
155732 const t_ARG_07& arg_07)
155733: Variant_Base(bsl::allocator_arg_t(),
155734 allocator,
155735 bsl::in_place_index_t<t_INDEX>(),
155736 arg_01,
155737 arg_02,
155738 arg_03,
155739 arg_04,
155740 arg_05,
155741 arg_06,
155742 arg_07)
155743{
155744}
155745#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
155746
155747#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
155748template <class t_HEAD, class t_TAIL_01,
155749 class t_TAIL_02,
155750 class t_TAIL_03,
155751 class t_TAIL_04,
155752 class t_TAIL_05,
155753 class t_TAIL_06,
155754 class t_TAIL_07,
155755 class t_TAIL_08,
155756 class t_TAIL_09>
155757template <size_t t_INDEX,
155758 class t_ARG_01,
155759 class t_ARG_02,
155760 class t_ARG_03,
155761 class t_ARG_04,
155762 class t_ARG_05,
155763 class t_ARG_06,
155764 class t_ARG_07>
155765inline
155766variant<t_HEAD, t_TAIL_01,
155767 t_TAIL_02,
155768 t_TAIL_03,
155769 t_TAIL_04,
155770 t_TAIL_05,
155771 t_TAIL_06,
155772 t_TAIL_07,
155773 t_TAIL_08,
155774 t_TAIL_09,
155775 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
155776 allocator_type allocator,
155778 const t_ARG_01& arg_01,
155779 const t_ARG_02& arg_02,
155780 const t_ARG_03& arg_03,
155781 const t_ARG_04& arg_04,
155782 const t_ARG_05& arg_05,
155783 const t_ARG_06& arg_06,
155784 const t_ARG_07& arg_07)
155785: Variant_Base(bsl::allocator_arg_t(),
155786 allocator,
155787 bsl::in_place_index_t<t_INDEX>(),
155788 arg_01,
155789 arg_02,
155790 arg_03,
155791 arg_04,
155792 arg_05,
155793 arg_06,
155794 arg_07)
155795{
155796}
155797#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
155798
155799#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
155800template <class t_HEAD, class t_TAIL_01,
155801 class t_TAIL_02,
155802 class t_TAIL_03,
155803 class t_TAIL_04,
155804 class t_TAIL_05,
155805 class t_TAIL_06,
155806 class t_TAIL_07,
155807 class t_TAIL_08,
155808 class t_TAIL_09,
155809 class t_TAIL_10>
155810template <size_t t_INDEX,
155811 class t_ARG_01,
155812 class t_ARG_02,
155813 class t_ARG_03,
155814 class t_ARG_04,
155815 class t_ARG_05,
155816 class t_ARG_06,
155817 class t_ARG_07>
155818inline
155819variant<t_HEAD, t_TAIL_01,
155820 t_TAIL_02,
155821 t_TAIL_03,
155822 t_TAIL_04,
155823 t_TAIL_05,
155824 t_TAIL_06,
155825 t_TAIL_07,
155826 t_TAIL_08,
155827 t_TAIL_09,
155828 t_TAIL_10,
155829 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
155830 allocator_type allocator,
155832 const t_ARG_01& arg_01,
155833 const t_ARG_02& arg_02,
155834 const t_ARG_03& arg_03,
155835 const t_ARG_04& arg_04,
155836 const t_ARG_05& arg_05,
155837 const t_ARG_06& arg_06,
155838 const t_ARG_07& arg_07)
155839: Variant_Base(bsl::allocator_arg_t(),
155840 allocator,
155841 bsl::in_place_index_t<t_INDEX>(),
155842 arg_01,
155843 arg_02,
155844 arg_03,
155845 arg_04,
155846 arg_05,
155847 arg_06,
155848 arg_07)
155849{
155850}
155851#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
155852
155853#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
155854template <class t_HEAD, class t_TAIL_01,
155855 class t_TAIL_02,
155856 class t_TAIL_03,
155857 class t_TAIL_04,
155858 class t_TAIL_05,
155859 class t_TAIL_06,
155860 class t_TAIL_07,
155861 class t_TAIL_08,
155862 class t_TAIL_09,
155863 class t_TAIL_10,
155864 class t_TAIL_11>
155865template <size_t t_INDEX,
155866 class t_ARG_01,
155867 class t_ARG_02,
155868 class t_ARG_03,
155869 class t_ARG_04,
155870 class t_ARG_05,
155871 class t_ARG_06,
155872 class t_ARG_07>
155873inline
155874variant<t_HEAD, t_TAIL_01,
155875 t_TAIL_02,
155876 t_TAIL_03,
155877 t_TAIL_04,
155878 t_TAIL_05,
155879 t_TAIL_06,
155880 t_TAIL_07,
155881 t_TAIL_08,
155882 t_TAIL_09,
155883 t_TAIL_10,
155884 t_TAIL_11,
155885 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
155886 allocator_type allocator,
155888 const t_ARG_01& arg_01,
155889 const t_ARG_02& arg_02,
155890 const t_ARG_03& arg_03,
155891 const t_ARG_04& arg_04,
155892 const t_ARG_05& arg_05,
155893 const t_ARG_06& arg_06,
155894 const t_ARG_07& arg_07)
155895: Variant_Base(bsl::allocator_arg_t(),
155896 allocator,
155897 bsl::in_place_index_t<t_INDEX>(),
155898 arg_01,
155899 arg_02,
155900 arg_03,
155901 arg_04,
155902 arg_05,
155903 arg_06,
155904 arg_07)
155905{
155906}
155907#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
155908
155909#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
155910template <class t_HEAD, class t_TAIL_01,
155911 class t_TAIL_02,
155912 class t_TAIL_03,
155913 class t_TAIL_04,
155914 class t_TAIL_05,
155915 class t_TAIL_06,
155916 class t_TAIL_07,
155917 class t_TAIL_08,
155918 class t_TAIL_09,
155919 class t_TAIL_10,
155920 class t_TAIL_11,
155921 class t_TAIL_12>
155922template <size_t t_INDEX,
155923 class t_ARG_01,
155924 class t_ARG_02,
155925 class t_ARG_03,
155926 class t_ARG_04,
155927 class t_ARG_05,
155928 class t_ARG_06,
155929 class t_ARG_07>
155930inline
155931variant<t_HEAD, t_TAIL_01,
155932 t_TAIL_02,
155933 t_TAIL_03,
155934 t_TAIL_04,
155935 t_TAIL_05,
155936 t_TAIL_06,
155937 t_TAIL_07,
155938 t_TAIL_08,
155939 t_TAIL_09,
155940 t_TAIL_10,
155941 t_TAIL_11,
155942 t_TAIL_12,
155943 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
155944 allocator_type allocator,
155946 const t_ARG_01& arg_01,
155947 const t_ARG_02& arg_02,
155948 const t_ARG_03& arg_03,
155949 const t_ARG_04& arg_04,
155950 const t_ARG_05& arg_05,
155951 const t_ARG_06& arg_06,
155952 const t_ARG_07& arg_07)
155953: Variant_Base(bsl::allocator_arg_t(),
155954 allocator,
155955 bsl::in_place_index_t<t_INDEX>(),
155956 arg_01,
155957 arg_02,
155958 arg_03,
155959 arg_04,
155960 arg_05,
155961 arg_06,
155962 arg_07)
155963{
155964}
155965#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
155966
155967#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
155968template <class t_HEAD, class t_TAIL_01,
155969 class t_TAIL_02,
155970 class t_TAIL_03,
155971 class t_TAIL_04,
155972 class t_TAIL_05,
155973 class t_TAIL_06,
155974 class t_TAIL_07,
155975 class t_TAIL_08,
155976 class t_TAIL_09,
155977 class t_TAIL_10,
155978 class t_TAIL_11,
155979 class t_TAIL_12,
155980 class t_TAIL_13>
155981template <size_t t_INDEX,
155982 class t_ARG_01,
155983 class t_ARG_02,
155984 class t_ARG_03,
155985 class t_ARG_04,
155986 class t_ARG_05,
155987 class t_ARG_06,
155988 class t_ARG_07>
155989inline
155990variant<t_HEAD, t_TAIL_01,
155991 t_TAIL_02,
155992 t_TAIL_03,
155993 t_TAIL_04,
155994 t_TAIL_05,
155995 t_TAIL_06,
155996 t_TAIL_07,
155997 t_TAIL_08,
155998 t_TAIL_09,
155999 t_TAIL_10,
156000 t_TAIL_11,
156001 t_TAIL_12,
156002 t_TAIL_13,
156003 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
156004 allocator_type allocator,
156006 const t_ARG_01& arg_01,
156007 const t_ARG_02& arg_02,
156008 const t_ARG_03& arg_03,
156009 const t_ARG_04& arg_04,
156010 const t_ARG_05& arg_05,
156011 const t_ARG_06& arg_06,
156012 const t_ARG_07& arg_07)
156013: Variant_Base(bsl::allocator_arg_t(),
156014 allocator,
156015 bsl::in_place_index_t<t_INDEX>(),
156016 arg_01,
156017 arg_02,
156018 arg_03,
156019 arg_04,
156020 arg_05,
156021 arg_06,
156022 arg_07)
156023{
156024}
156025#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
156026
156027#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
156028template <class t_HEAD, class t_TAIL_01,
156029 class t_TAIL_02,
156030 class t_TAIL_03,
156031 class t_TAIL_04,
156032 class t_TAIL_05,
156033 class t_TAIL_06,
156034 class t_TAIL_07,
156035 class t_TAIL_08,
156036 class t_TAIL_09,
156037 class t_TAIL_10,
156038 class t_TAIL_11,
156039 class t_TAIL_12,
156040 class t_TAIL_13,
156041 class t_TAIL_14>
156042template <size_t t_INDEX,
156043 class t_ARG_01,
156044 class t_ARG_02,
156045 class t_ARG_03,
156046 class t_ARG_04,
156047 class t_ARG_05,
156048 class t_ARG_06,
156049 class t_ARG_07>
156050inline
156051variant<t_HEAD, t_TAIL_01,
156052 t_TAIL_02,
156053 t_TAIL_03,
156054 t_TAIL_04,
156055 t_TAIL_05,
156056 t_TAIL_06,
156057 t_TAIL_07,
156058 t_TAIL_08,
156059 t_TAIL_09,
156060 t_TAIL_10,
156061 t_TAIL_11,
156062 t_TAIL_12,
156063 t_TAIL_13,
156064 t_TAIL_14,
156065 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
156066 allocator_type allocator,
156068 const t_ARG_01& arg_01,
156069 const t_ARG_02& arg_02,
156070 const t_ARG_03& arg_03,
156071 const t_ARG_04& arg_04,
156072 const t_ARG_05& arg_05,
156073 const t_ARG_06& arg_06,
156074 const t_ARG_07& arg_07)
156075: Variant_Base(bsl::allocator_arg_t(),
156076 allocator,
156077 bsl::in_place_index_t<t_INDEX>(),
156078 arg_01,
156079 arg_02,
156080 arg_03,
156081 arg_04,
156082 arg_05,
156083 arg_06,
156084 arg_07)
156085{
156086}
156087#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
156088
156089#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
156090template <class t_HEAD, class t_TAIL_01,
156091 class t_TAIL_02,
156092 class t_TAIL_03,
156093 class t_TAIL_04,
156094 class t_TAIL_05,
156095 class t_TAIL_06,
156096 class t_TAIL_07,
156097 class t_TAIL_08,
156098 class t_TAIL_09,
156099 class t_TAIL_10,
156100 class t_TAIL_11,
156101 class t_TAIL_12,
156102 class t_TAIL_13,
156103 class t_TAIL_14,
156104 class t_TAIL_15>
156105template <size_t t_INDEX,
156106 class t_ARG_01,
156107 class t_ARG_02,
156108 class t_ARG_03,
156109 class t_ARG_04,
156110 class t_ARG_05,
156111 class t_ARG_06,
156112 class t_ARG_07>
156113inline
156114variant<t_HEAD, t_TAIL_01,
156115 t_TAIL_02,
156116 t_TAIL_03,
156117 t_TAIL_04,
156118 t_TAIL_05,
156119 t_TAIL_06,
156120 t_TAIL_07,
156121 t_TAIL_08,
156122 t_TAIL_09,
156123 t_TAIL_10,
156124 t_TAIL_11,
156125 t_TAIL_12,
156126 t_TAIL_13,
156127 t_TAIL_14,
156128 t_TAIL_15,
156129 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
156130 allocator_type allocator,
156132 const t_ARG_01& arg_01,
156133 const t_ARG_02& arg_02,
156134 const t_ARG_03& arg_03,
156135 const t_ARG_04& arg_04,
156136 const t_ARG_05& arg_05,
156137 const t_ARG_06& arg_06,
156138 const t_ARG_07& arg_07)
156139: Variant_Base(bsl::allocator_arg_t(),
156140 allocator,
156141 bsl::in_place_index_t<t_INDEX>(),
156142 arg_01,
156143 arg_02,
156144 arg_03,
156145 arg_04,
156146 arg_05,
156147 arg_06,
156148 arg_07)
156149{
156150}
156151#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
156152
156153#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
156154template <class t_HEAD, class t_TAIL_01,
156155 class t_TAIL_02,
156156 class t_TAIL_03,
156157 class t_TAIL_04,
156158 class t_TAIL_05,
156159 class t_TAIL_06,
156160 class t_TAIL_07,
156161 class t_TAIL_08,
156162 class t_TAIL_09,
156163 class t_TAIL_10,
156164 class t_TAIL_11,
156165 class t_TAIL_12,
156166 class t_TAIL_13,
156167 class t_TAIL_14,
156168 class t_TAIL_15,
156169 class t_TAIL_16>
156170template <size_t t_INDEX,
156171 class t_ARG_01,
156172 class t_ARG_02,
156173 class t_ARG_03,
156174 class t_ARG_04,
156175 class t_ARG_05,
156176 class t_ARG_06,
156177 class t_ARG_07>
156178inline
156179variant<t_HEAD, t_TAIL_01,
156180 t_TAIL_02,
156181 t_TAIL_03,
156182 t_TAIL_04,
156183 t_TAIL_05,
156184 t_TAIL_06,
156185 t_TAIL_07,
156186 t_TAIL_08,
156187 t_TAIL_09,
156188 t_TAIL_10,
156189 t_TAIL_11,
156190 t_TAIL_12,
156191 t_TAIL_13,
156192 t_TAIL_14,
156193 t_TAIL_15,
156194 t_TAIL_16,
156195 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
156196 allocator_type allocator,
156198 const t_ARG_01& arg_01,
156199 const t_ARG_02& arg_02,
156200 const t_ARG_03& arg_03,
156201 const t_ARG_04& arg_04,
156202 const t_ARG_05& arg_05,
156203 const t_ARG_06& arg_06,
156204 const t_ARG_07& arg_07)
156205: Variant_Base(bsl::allocator_arg_t(),
156206 allocator,
156207 bsl::in_place_index_t<t_INDEX>(),
156208 arg_01,
156209 arg_02,
156210 arg_03,
156211 arg_04,
156212 arg_05,
156213 arg_06,
156214 arg_07)
156215{
156216}
156217#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
156218
156219#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
156220template <class t_HEAD, class t_TAIL_01,
156221 class t_TAIL_02,
156222 class t_TAIL_03,
156223 class t_TAIL_04,
156224 class t_TAIL_05,
156225 class t_TAIL_06,
156226 class t_TAIL_07,
156227 class t_TAIL_08,
156228 class t_TAIL_09,
156229 class t_TAIL_10,
156230 class t_TAIL_11,
156231 class t_TAIL_12,
156232 class t_TAIL_13,
156233 class t_TAIL_14,
156234 class t_TAIL_15,
156235 class t_TAIL_16,
156236 class t_TAIL_17>
156237template <size_t t_INDEX,
156238 class t_ARG_01,
156239 class t_ARG_02,
156240 class t_ARG_03,
156241 class t_ARG_04,
156242 class t_ARG_05,
156243 class t_ARG_06,
156244 class t_ARG_07>
156245inline
156246variant<t_HEAD, t_TAIL_01,
156247 t_TAIL_02,
156248 t_TAIL_03,
156249 t_TAIL_04,
156250 t_TAIL_05,
156251 t_TAIL_06,
156252 t_TAIL_07,
156253 t_TAIL_08,
156254 t_TAIL_09,
156255 t_TAIL_10,
156256 t_TAIL_11,
156257 t_TAIL_12,
156258 t_TAIL_13,
156259 t_TAIL_14,
156260 t_TAIL_15,
156261 t_TAIL_16,
156262 t_TAIL_17,
156263 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
156264 allocator_type allocator,
156266 const t_ARG_01& arg_01,
156267 const t_ARG_02& arg_02,
156268 const t_ARG_03& arg_03,
156269 const t_ARG_04& arg_04,
156270 const t_ARG_05& arg_05,
156271 const t_ARG_06& arg_06,
156272 const t_ARG_07& arg_07)
156273: Variant_Base(bsl::allocator_arg_t(),
156274 allocator,
156275 bsl::in_place_index_t<t_INDEX>(),
156276 arg_01,
156277 arg_02,
156278 arg_03,
156279 arg_04,
156280 arg_05,
156281 arg_06,
156282 arg_07)
156283{
156284}
156285#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
156286
156287#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
156288template <class t_HEAD, class t_TAIL_01,
156289 class t_TAIL_02,
156290 class t_TAIL_03,
156291 class t_TAIL_04,
156292 class t_TAIL_05,
156293 class t_TAIL_06,
156294 class t_TAIL_07,
156295 class t_TAIL_08,
156296 class t_TAIL_09,
156297 class t_TAIL_10,
156298 class t_TAIL_11,
156299 class t_TAIL_12,
156300 class t_TAIL_13,
156301 class t_TAIL_14,
156302 class t_TAIL_15,
156303 class t_TAIL_16,
156304 class t_TAIL_17,
156305 class t_TAIL_18>
156306template <size_t t_INDEX,
156307 class t_ARG_01,
156308 class t_ARG_02,
156309 class t_ARG_03,
156310 class t_ARG_04,
156311 class t_ARG_05,
156312 class t_ARG_06,
156313 class t_ARG_07>
156314inline
156315variant<t_HEAD, t_TAIL_01,
156316 t_TAIL_02,
156317 t_TAIL_03,
156318 t_TAIL_04,
156319 t_TAIL_05,
156320 t_TAIL_06,
156321 t_TAIL_07,
156322 t_TAIL_08,
156323 t_TAIL_09,
156324 t_TAIL_10,
156325 t_TAIL_11,
156326 t_TAIL_12,
156327 t_TAIL_13,
156328 t_TAIL_14,
156329 t_TAIL_15,
156330 t_TAIL_16,
156331 t_TAIL_17,
156332 t_TAIL_18,
156333 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
156334 allocator_type allocator,
156336 const t_ARG_01& arg_01,
156337 const t_ARG_02& arg_02,
156338 const t_ARG_03& arg_03,
156339 const t_ARG_04& arg_04,
156340 const t_ARG_05& arg_05,
156341 const t_ARG_06& arg_06,
156342 const t_ARG_07& arg_07)
156343: Variant_Base(bsl::allocator_arg_t(),
156344 allocator,
156345 bsl::in_place_index_t<t_INDEX>(),
156346 arg_01,
156347 arg_02,
156348 arg_03,
156349 arg_04,
156350 arg_05,
156351 arg_06,
156352 arg_07)
156353{
156354}
156355#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
156356
156357
156358#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
156359template <class t_HEAD>
156360template <size_t t_INDEX,
156361 class t_ARG_01,
156362 class t_ARG_02,
156363 class t_ARG_03,
156364 class t_ARG_04,
156365 class t_ARG_05,
156366 class t_ARG_06,
156367 class t_ARG_07,
156368 class t_ARG_08>
156369inline
156370variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
156371 allocator_type allocator,
156373 const t_ARG_01& arg_01,
156374 const t_ARG_02& arg_02,
156375 const t_ARG_03& arg_03,
156376 const t_ARG_04& arg_04,
156377 const t_ARG_05& arg_05,
156378 const t_ARG_06& arg_06,
156379 const t_ARG_07& arg_07,
156380 const t_ARG_08& arg_08)
156381: Variant_Base(bsl::allocator_arg_t(),
156382 allocator,
156383 bsl::in_place_index_t<t_INDEX>(),
156384 arg_01,
156385 arg_02,
156386 arg_03,
156387 arg_04,
156388 arg_05,
156389 arg_06,
156390 arg_07,
156391 arg_08)
156392{
156393}
156394#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
156395
156396#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
156397template <class t_HEAD, class t_TAIL_01>
156398template <size_t t_INDEX,
156399 class t_ARG_01,
156400 class t_ARG_02,
156401 class t_ARG_03,
156402 class t_ARG_04,
156403 class t_ARG_05,
156404 class t_ARG_06,
156405 class t_ARG_07,
156406 class t_ARG_08>
156407inline
156408variant<t_HEAD, t_TAIL_01,
156409 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
156410 allocator_type allocator,
156412 const t_ARG_01& arg_01,
156413 const t_ARG_02& arg_02,
156414 const t_ARG_03& arg_03,
156415 const t_ARG_04& arg_04,
156416 const t_ARG_05& arg_05,
156417 const t_ARG_06& arg_06,
156418 const t_ARG_07& arg_07,
156419 const t_ARG_08& arg_08)
156420: Variant_Base(bsl::allocator_arg_t(),
156421 allocator,
156422 bsl::in_place_index_t<t_INDEX>(),
156423 arg_01,
156424 arg_02,
156425 arg_03,
156426 arg_04,
156427 arg_05,
156428 arg_06,
156429 arg_07,
156430 arg_08)
156431{
156432}
156433#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
156434
156435#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
156436template <class t_HEAD, class t_TAIL_01,
156437 class t_TAIL_02>
156438template <size_t t_INDEX,
156439 class t_ARG_01,
156440 class t_ARG_02,
156441 class t_ARG_03,
156442 class t_ARG_04,
156443 class t_ARG_05,
156444 class t_ARG_06,
156445 class t_ARG_07,
156446 class t_ARG_08>
156447inline
156448variant<t_HEAD, t_TAIL_01,
156449 t_TAIL_02,
156450 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
156451 allocator_type allocator,
156453 const t_ARG_01& arg_01,
156454 const t_ARG_02& arg_02,
156455 const t_ARG_03& arg_03,
156456 const t_ARG_04& arg_04,
156457 const t_ARG_05& arg_05,
156458 const t_ARG_06& arg_06,
156459 const t_ARG_07& arg_07,
156460 const t_ARG_08& arg_08)
156461: Variant_Base(bsl::allocator_arg_t(),
156462 allocator,
156463 bsl::in_place_index_t<t_INDEX>(),
156464 arg_01,
156465 arg_02,
156466 arg_03,
156467 arg_04,
156468 arg_05,
156469 arg_06,
156470 arg_07,
156471 arg_08)
156472{
156473}
156474#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
156475
156476#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
156477template <class t_HEAD, class t_TAIL_01,
156478 class t_TAIL_02,
156479 class t_TAIL_03>
156480template <size_t t_INDEX,
156481 class t_ARG_01,
156482 class t_ARG_02,
156483 class t_ARG_03,
156484 class t_ARG_04,
156485 class t_ARG_05,
156486 class t_ARG_06,
156487 class t_ARG_07,
156488 class t_ARG_08>
156489inline
156490variant<t_HEAD, t_TAIL_01,
156491 t_TAIL_02,
156492 t_TAIL_03,
156493 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
156494 allocator_type allocator,
156496 const t_ARG_01& arg_01,
156497 const t_ARG_02& arg_02,
156498 const t_ARG_03& arg_03,
156499 const t_ARG_04& arg_04,
156500 const t_ARG_05& arg_05,
156501 const t_ARG_06& arg_06,
156502 const t_ARG_07& arg_07,
156503 const t_ARG_08& arg_08)
156504: Variant_Base(bsl::allocator_arg_t(),
156505 allocator,
156506 bsl::in_place_index_t<t_INDEX>(),
156507 arg_01,
156508 arg_02,
156509 arg_03,
156510 arg_04,
156511 arg_05,
156512 arg_06,
156513 arg_07,
156514 arg_08)
156515{
156516}
156517#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
156518
156519#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
156520template <class t_HEAD, class t_TAIL_01,
156521 class t_TAIL_02,
156522 class t_TAIL_03,
156523 class t_TAIL_04>
156524template <size_t t_INDEX,
156525 class t_ARG_01,
156526 class t_ARG_02,
156527 class t_ARG_03,
156528 class t_ARG_04,
156529 class t_ARG_05,
156530 class t_ARG_06,
156531 class t_ARG_07,
156532 class t_ARG_08>
156533inline
156534variant<t_HEAD, t_TAIL_01,
156535 t_TAIL_02,
156536 t_TAIL_03,
156537 t_TAIL_04,
156538 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
156539 allocator_type allocator,
156541 const t_ARG_01& arg_01,
156542 const t_ARG_02& arg_02,
156543 const t_ARG_03& arg_03,
156544 const t_ARG_04& arg_04,
156545 const t_ARG_05& arg_05,
156546 const t_ARG_06& arg_06,
156547 const t_ARG_07& arg_07,
156548 const t_ARG_08& arg_08)
156549: Variant_Base(bsl::allocator_arg_t(),
156550 allocator,
156551 bsl::in_place_index_t<t_INDEX>(),
156552 arg_01,
156553 arg_02,
156554 arg_03,
156555 arg_04,
156556 arg_05,
156557 arg_06,
156558 arg_07,
156559 arg_08)
156560{
156561}
156562#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
156563
156564#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
156565template <class t_HEAD, class t_TAIL_01,
156566 class t_TAIL_02,
156567 class t_TAIL_03,
156568 class t_TAIL_04,
156569 class t_TAIL_05>
156570template <size_t t_INDEX,
156571 class t_ARG_01,
156572 class t_ARG_02,
156573 class t_ARG_03,
156574 class t_ARG_04,
156575 class t_ARG_05,
156576 class t_ARG_06,
156577 class t_ARG_07,
156578 class t_ARG_08>
156579inline
156580variant<t_HEAD, t_TAIL_01,
156581 t_TAIL_02,
156582 t_TAIL_03,
156583 t_TAIL_04,
156584 t_TAIL_05,
156585 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
156586 allocator_type allocator,
156588 const t_ARG_01& arg_01,
156589 const t_ARG_02& arg_02,
156590 const t_ARG_03& arg_03,
156591 const t_ARG_04& arg_04,
156592 const t_ARG_05& arg_05,
156593 const t_ARG_06& arg_06,
156594 const t_ARG_07& arg_07,
156595 const t_ARG_08& arg_08)
156596: Variant_Base(bsl::allocator_arg_t(),
156597 allocator,
156598 bsl::in_place_index_t<t_INDEX>(),
156599 arg_01,
156600 arg_02,
156601 arg_03,
156602 arg_04,
156603 arg_05,
156604 arg_06,
156605 arg_07,
156606 arg_08)
156607{
156608}
156609#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
156610
156611#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
156612template <class t_HEAD, class t_TAIL_01,
156613 class t_TAIL_02,
156614 class t_TAIL_03,
156615 class t_TAIL_04,
156616 class t_TAIL_05,
156617 class t_TAIL_06>
156618template <size_t t_INDEX,
156619 class t_ARG_01,
156620 class t_ARG_02,
156621 class t_ARG_03,
156622 class t_ARG_04,
156623 class t_ARG_05,
156624 class t_ARG_06,
156625 class t_ARG_07,
156626 class t_ARG_08>
156627inline
156628variant<t_HEAD, t_TAIL_01,
156629 t_TAIL_02,
156630 t_TAIL_03,
156631 t_TAIL_04,
156632 t_TAIL_05,
156633 t_TAIL_06,
156634 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
156635 allocator_type allocator,
156637 const t_ARG_01& arg_01,
156638 const t_ARG_02& arg_02,
156639 const t_ARG_03& arg_03,
156640 const t_ARG_04& arg_04,
156641 const t_ARG_05& arg_05,
156642 const t_ARG_06& arg_06,
156643 const t_ARG_07& arg_07,
156644 const t_ARG_08& arg_08)
156645: Variant_Base(bsl::allocator_arg_t(),
156646 allocator,
156647 bsl::in_place_index_t<t_INDEX>(),
156648 arg_01,
156649 arg_02,
156650 arg_03,
156651 arg_04,
156652 arg_05,
156653 arg_06,
156654 arg_07,
156655 arg_08)
156656{
156657}
156658#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
156659
156660#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
156661template <class t_HEAD, class t_TAIL_01,
156662 class t_TAIL_02,
156663 class t_TAIL_03,
156664 class t_TAIL_04,
156665 class t_TAIL_05,
156666 class t_TAIL_06,
156667 class t_TAIL_07>
156668template <size_t t_INDEX,
156669 class t_ARG_01,
156670 class t_ARG_02,
156671 class t_ARG_03,
156672 class t_ARG_04,
156673 class t_ARG_05,
156674 class t_ARG_06,
156675 class t_ARG_07,
156676 class t_ARG_08>
156677inline
156678variant<t_HEAD, t_TAIL_01,
156679 t_TAIL_02,
156680 t_TAIL_03,
156681 t_TAIL_04,
156682 t_TAIL_05,
156683 t_TAIL_06,
156684 t_TAIL_07,
156685 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
156686 allocator_type allocator,
156688 const t_ARG_01& arg_01,
156689 const t_ARG_02& arg_02,
156690 const t_ARG_03& arg_03,
156691 const t_ARG_04& arg_04,
156692 const t_ARG_05& arg_05,
156693 const t_ARG_06& arg_06,
156694 const t_ARG_07& arg_07,
156695 const t_ARG_08& arg_08)
156696: Variant_Base(bsl::allocator_arg_t(),
156697 allocator,
156698 bsl::in_place_index_t<t_INDEX>(),
156699 arg_01,
156700 arg_02,
156701 arg_03,
156702 arg_04,
156703 arg_05,
156704 arg_06,
156705 arg_07,
156706 arg_08)
156707{
156708}
156709#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
156710
156711#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
156712template <class t_HEAD, class t_TAIL_01,
156713 class t_TAIL_02,
156714 class t_TAIL_03,
156715 class t_TAIL_04,
156716 class t_TAIL_05,
156717 class t_TAIL_06,
156718 class t_TAIL_07,
156719 class t_TAIL_08>
156720template <size_t t_INDEX,
156721 class t_ARG_01,
156722 class t_ARG_02,
156723 class t_ARG_03,
156724 class t_ARG_04,
156725 class t_ARG_05,
156726 class t_ARG_06,
156727 class t_ARG_07,
156728 class t_ARG_08>
156729inline
156730variant<t_HEAD, t_TAIL_01,
156731 t_TAIL_02,
156732 t_TAIL_03,
156733 t_TAIL_04,
156734 t_TAIL_05,
156735 t_TAIL_06,
156736 t_TAIL_07,
156737 t_TAIL_08,
156738 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
156739 allocator_type allocator,
156741 const t_ARG_01& arg_01,
156742 const t_ARG_02& arg_02,
156743 const t_ARG_03& arg_03,
156744 const t_ARG_04& arg_04,
156745 const t_ARG_05& arg_05,
156746 const t_ARG_06& arg_06,
156747 const t_ARG_07& arg_07,
156748 const t_ARG_08& arg_08)
156749: Variant_Base(bsl::allocator_arg_t(),
156750 allocator,
156751 bsl::in_place_index_t<t_INDEX>(),
156752 arg_01,
156753 arg_02,
156754 arg_03,
156755 arg_04,
156756 arg_05,
156757 arg_06,
156758 arg_07,
156759 arg_08)
156760{
156761}
156762#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
156763
156764#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
156765template <class t_HEAD, class t_TAIL_01,
156766 class t_TAIL_02,
156767 class t_TAIL_03,
156768 class t_TAIL_04,
156769 class t_TAIL_05,
156770 class t_TAIL_06,
156771 class t_TAIL_07,
156772 class t_TAIL_08,
156773 class t_TAIL_09>
156774template <size_t t_INDEX,
156775 class t_ARG_01,
156776 class t_ARG_02,
156777 class t_ARG_03,
156778 class t_ARG_04,
156779 class t_ARG_05,
156780 class t_ARG_06,
156781 class t_ARG_07,
156782 class t_ARG_08>
156783inline
156784variant<t_HEAD, t_TAIL_01,
156785 t_TAIL_02,
156786 t_TAIL_03,
156787 t_TAIL_04,
156788 t_TAIL_05,
156789 t_TAIL_06,
156790 t_TAIL_07,
156791 t_TAIL_08,
156792 t_TAIL_09,
156793 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
156794 allocator_type allocator,
156796 const t_ARG_01& arg_01,
156797 const t_ARG_02& arg_02,
156798 const t_ARG_03& arg_03,
156799 const t_ARG_04& arg_04,
156800 const t_ARG_05& arg_05,
156801 const t_ARG_06& arg_06,
156802 const t_ARG_07& arg_07,
156803 const t_ARG_08& arg_08)
156804: Variant_Base(bsl::allocator_arg_t(),
156805 allocator,
156806 bsl::in_place_index_t<t_INDEX>(),
156807 arg_01,
156808 arg_02,
156809 arg_03,
156810 arg_04,
156811 arg_05,
156812 arg_06,
156813 arg_07,
156814 arg_08)
156815{
156816}
156817#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
156818
156819#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
156820template <class t_HEAD, class t_TAIL_01,
156821 class t_TAIL_02,
156822 class t_TAIL_03,
156823 class t_TAIL_04,
156824 class t_TAIL_05,
156825 class t_TAIL_06,
156826 class t_TAIL_07,
156827 class t_TAIL_08,
156828 class t_TAIL_09,
156829 class t_TAIL_10>
156830template <size_t t_INDEX,
156831 class t_ARG_01,
156832 class t_ARG_02,
156833 class t_ARG_03,
156834 class t_ARG_04,
156835 class t_ARG_05,
156836 class t_ARG_06,
156837 class t_ARG_07,
156838 class t_ARG_08>
156839inline
156840variant<t_HEAD, t_TAIL_01,
156841 t_TAIL_02,
156842 t_TAIL_03,
156843 t_TAIL_04,
156844 t_TAIL_05,
156845 t_TAIL_06,
156846 t_TAIL_07,
156847 t_TAIL_08,
156848 t_TAIL_09,
156849 t_TAIL_10,
156850 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
156851 allocator_type allocator,
156853 const t_ARG_01& arg_01,
156854 const t_ARG_02& arg_02,
156855 const t_ARG_03& arg_03,
156856 const t_ARG_04& arg_04,
156857 const t_ARG_05& arg_05,
156858 const t_ARG_06& arg_06,
156859 const t_ARG_07& arg_07,
156860 const t_ARG_08& arg_08)
156861: Variant_Base(bsl::allocator_arg_t(),
156862 allocator,
156863 bsl::in_place_index_t<t_INDEX>(),
156864 arg_01,
156865 arg_02,
156866 arg_03,
156867 arg_04,
156868 arg_05,
156869 arg_06,
156870 arg_07,
156871 arg_08)
156872{
156873}
156874#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
156875
156876#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
156877template <class t_HEAD, class t_TAIL_01,
156878 class t_TAIL_02,
156879 class t_TAIL_03,
156880 class t_TAIL_04,
156881 class t_TAIL_05,
156882 class t_TAIL_06,
156883 class t_TAIL_07,
156884 class t_TAIL_08,
156885 class t_TAIL_09,
156886 class t_TAIL_10,
156887 class t_TAIL_11>
156888template <size_t t_INDEX,
156889 class t_ARG_01,
156890 class t_ARG_02,
156891 class t_ARG_03,
156892 class t_ARG_04,
156893 class t_ARG_05,
156894 class t_ARG_06,
156895 class t_ARG_07,
156896 class t_ARG_08>
156897inline
156898variant<t_HEAD, t_TAIL_01,
156899 t_TAIL_02,
156900 t_TAIL_03,
156901 t_TAIL_04,
156902 t_TAIL_05,
156903 t_TAIL_06,
156904 t_TAIL_07,
156905 t_TAIL_08,
156906 t_TAIL_09,
156907 t_TAIL_10,
156908 t_TAIL_11,
156909 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
156910 allocator_type allocator,
156912 const t_ARG_01& arg_01,
156913 const t_ARG_02& arg_02,
156914 const t_ARG_03& arg_03,
156915 const t_ARG_04& arg_04,
156916 const t_ARG_05& arg_05,
156917 const t_ARG_06& arg_06,
156918 const t_ARG_07& arg_07,
156919 const t_ARG_08& arg_08)
156920: Variant_Base(bsl::allocator_arg_t(),
156921 allocator,
156922 bsl::in_place_index_t<t_INDEX>(),
156923 arg_01,
156924 arg_02,
156925 arg_03,
156926 arg_04,
156927 arg_05,
156928 arg_06,
156929 arg_07,
156930 arg_08)
156931{
156932}
156933#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
156934
156935#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
156936template <class t_HEAD, class t_TAIL_01,
156937 class t_TAIL_02,
156938 class t_TAIL_03,
156939 class t_TAIL_04,
156940 class t_TAIL_05,
156941 class t_TAIL_06,
156942 class t_TAIL_07,
156943 class t_TAIL_08,
156944 class t_TAIL_09,
156945 class t_TAIL_10,
156946 class t_TAIL_11,
156947 class t_TAIL_12>
156948template <size_t t_INDEX,
156949 class t_ARG_01,
156950 class t_ARG_02,
156951 class t_ARG_03,
156952 class t_ARG_04,
156953 class t_ARG_05,
156954 class t_ARG_06,
156955 class t_ARG_07,
156956 class t_ARG_08>
156957inline
156958variant<t_HEAD, t_TAIL_01,
156959 t_TAIL_02,
156960 t_TAIL_03,
156961 t_TAIL_04,
156962 t_TAIL_05,
156963 t_TAIL_06,
156964 t_TAIL_07,
156965 t_TAIL_08,
156966 t_TAIL_09,
156967 t_TAIL_10,
156968 t_TAIL_11,
156969 t_TAIL_12,
156970 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
156971 allocator_type allocator,
156973 const t_ARG_01& arg_01,
156974 const t_ARG_02& arg_02,
156975 const t_ARG_03& arg_03,
156976 const t_ARG_04& arg_04,
156977 const t_ARG_05& arg_05,
156978 const t_ARG_06& arg_06,
156979 const t_ARG_07& arg_07,
156980 const t_ARG_08& arg_08)
156981: Variant_Base(bsl::allocator_arg_t(),
156982 allocator,
156983 bsl::in_place_index_t<t_INDEX>(),
156984 arg_01,
156985 arg_02,
156986 arg_03,
156987 arg_04,
156988 arg_05,
156989 arg_06,
156990 arg_07,
156991 arg_08)
156992{
156993}
156994#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
156995
156996#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
156997template <class t_HEAD, class t_TAIL_01,
156998 class t_TAIL_02,
156999 class t_TAIL_03,
157000 class t_TAIL_04,
157001 class t_TAIL_05,
157002 class t_TAIL_06,
157003 class t_TAIL_07,
157004 class t_TAIL_08,
157005 class t_TAIL_09,
157006 class t_TAIL_10,
157007 class t_TAIL_11,
157008 class t_TAIL_12,
157009 class t_TAIL_13>
157010template <size_t t_INDEX,
157011 class t_ARG_01,
157012 class t_ARG_02,
157013 class t_ARG_03,
157014 class t_ARG_04,
157015 class t_ARG_05,
157016 class t_ARG_06,
157017 class t_ARG_07,
157018 class t_ARG_08>
157019inline
157020variant<t_HEAD, t_TAIL_01,
157021 t_TAIL_02,
157022 t_TAIL_03,
157023 t_TAIL_04,
157024 t_TAIL_05,
157025 t_TAIL_06,
157026 t_TAIL_07,
157027 t_TAIL_08,
157028 t_TAIL_09,
157029 t_TAIL_10,
157030 t_TAIL_11,
157031 t_TAIL_12,
157032 t_TAIL_13,
157033 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
157034 allocator_type allocator,
157036 const t_ARG_01& arg_01,
157037 const t_ARG_02& arg_02,
157038 const t_ARG_03& arg_03,
157039 const t_ARG_04& arg_04,
157040 const t_ARG_05& arg_05,
157041 const t_ARG_06& arg_06,
157042 const t_ARG_07& arg_07,
157043 const t_ARG_08& arg_08)
157044: Variant_Base(bsl::allocator_arg_t(),
157045 allocator,
157046 bsl::in_place_index_t<t_INDEX>(),
157047 arg_01,
157048 arg_02,
157049 arg_03,
157050 arg_04,
157051 arg_05,
157052 arg_06,
157053 arg_07,
157054 arg_08)
157055{
157056}
157057#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
157058
157059#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
157060template <class t_HEAD, class t_TAIL_01,
157061 class t_TAIL_02,
157062 class t_TAIL_03,
157063 class t_TAIL_04,
157064 class t_TAIL_05,
157065 class t_TAIL_06,
157066 class t_TAIL_07,
157067 class t_TAIL_08,
157068 class t_TAIL_09,
157069 class t_TAIL_10,
157070 class t_TAIL_11,
157071 class t_TAIL_12,
157072 class t_TAIL_13,
157073 class t_TAIL_14>
157074template <size_t t_INDEX,
157075 class t_ARG_01,
157076 class t_ARG_02,
157077 class t_ARG_03,
157078 class t_ARG_04,
157079 class t_ARG_05,
157080 class t_ARG_06,
157081 class t_ARG_07,
157082 class t_ARG_08>
157083inline
157084variant<t_HEAD, t_TAIL_01,
157085 t_TAIL_02,
157086 t_TAIL_03,
157087 t_TAIL_04,
157088 t_TAIL_05,
157089 t_TAIL_06,
157090 t_TAIL_07,
157091 t_TAIL_08,
157092 t_TAIL_09,
157093 t_TAIL_10,
157094 t_TAIL_11,
157095 t_TAIL_12,
157096 t_TAIL_13,
157097 t_TAIL_14,
157098 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
157099 allocator_type allocator,
157101 const t_ARG_01& arg_01,
157102 const t_ARG_02& arg_02,
157103 const t_ARG_03& arg_03,
157104 const t_ARG_04& arg_04,
157105 const t_ARG_05& arg_05,
157106 const t_ARG_06& arg_06,
157107 const t_ARG_07& arg_07,
157108 const t_ARG_08& arg_08)
157109: Variant_Base(bsl::allocator_arg_t(),
157110 allocator,
157111 bsl::in_place_index_t<t_INDEX>(),
157112 arg_01,
157113 arg_02,
157114 arg_03,
157115 arg_04,
157116 arg_05,
157117 arg_06,
157118 arg_07,
157119 arg_08)
157120{
157121}
157122#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
157123
157124#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
157125template <class t_HEAD, class t_TAIL_01,
157126 class t_TAIL_02,
157127 class t_TAIL_03,
157128 class t_TAIL_04,
157129 class t_TAIL_05,
157130 class t_TAIL_06,
157131 class t_TAIL_07,
157132 class t_TAIL_08,
157133 class t_TAIL_09,
157134 class t_TAIL_10,
157135 class t_TAIL_11,
157136 class t_TAIL_12,
157137 class t_TAIL_13,
157138 class t_TAIL_14,
157139 class t_TAIL_15>
157140template <size_t t_INDEX,
157141 class t_ARG_01,
157142 class t_ARG_02,
157143 class t_ARG_03,
157144 class t_ARG_04,
157145 class t_ARG_05,
157146 class t_ARG_06,
157147 class t_ARG_07,
157148 class t_ARG_08>
157149inline
157150variant<t_HEAD, t_TAIL_01,
157151 t_TAIL_02,
157152 t_TAIL_03,
157153 t_TAIL_04,
157154 t_TAIL_05,
157155 t_TAIL_06,
157156 t_TAIL_07,
157157 t_TAIL_08,
157158 t_TAIL_09,
157159 t_TAIL_10,
157160 t_TAIL_11,
157161 t_TAIL_12,
157162 t_TAIL_13,
157163 t_TAIL_14,
157164 t_TAIL_15,
157165 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
157166 allocator_type allocator,
157168 const t_ARG_01& arg_01,
157169 const t_ARG_02& arg_02,
157170 const t_ARG_03& arg_03,
157171 const t_ARG_04& arg_04,
157172 const t_ARG_05& arg_05,
157173 const t_ARG_06& arg_06,
157174 const t_ARG_07& arg_07,
157175 const t_ARG_08& arg_08)
157176: Variant_Base(bsl::allocator_arg_t(),
157177 allocator,
157178 bsl::in_place_index_t<t_INDEX>(),
157179 arg_01,
157180 arg_02,
157181 arg_03,
157182 arg_04,
157183 arg_05,
157184 arg_06,
157185 arg_07,
157186 arg_08)
157187{
157188}
157189#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
157190
157191#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
157192template <class t_HEAD, class t_TAIL_01,
157193 class t_TAIL_02,
157194 class t_TAIL_03,
157195 class t_TAIL_04,
157196 class t_TAIL_05,
157197 class t_TAIL_06,
157198 class t_TAIL_07,
157199 class t_TAIL_08,
157200 class t_TAIL_09,
157201 class t_TAIL_10,
157202 class t_TAIL_11,
157203 class t_TAIL_12,
157204 class t_TAIL_13,
157205 class t_TAIL_14,
157206 class t_TAIL_15,
157207 class t_TAIL_16>
157208template <size_t t_INDEX,
157209 class t_ARG_01,
157210 class t_ARG_02,
157211 class t_ARG_03,
157212 class t_ARG_04,
157213 class t_ARG_05,
157214 class t_ARG_06,
157215 class t_ARG_07,
157216 class t_ARG_08>
157217inline
157218variant<t_HEAD, t_TAIL_01,
157219 t_TAIL_02,
157220 t_TAIL_03,
157221 t_TAIL_04,
157222 t_TAIL_05,
157223 t_TAIL_06,
157224 t_TAIL_07,
157225 t_TAIL_08,
157226 t_TAIL_09,
157227 t_TAIL_10,
157228 t_TAIL_11,
157229 t_TAIL_12,
157230 t_TAIL_13,
157231 t_TAIL_14,
157232 t_TAIL_15,
157233 t_TAIL_16,
157234 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
157235 allocator_type allocator,
157237 const t_ARG_01& arg_01,
157238 const t_ARG_02& arg_02,
157239 const t_ARG_03& arg_03,
157240 const t_ARG_04& arg_04,
157241 const t_ARG_05& arg_05,
157242 const t_ARG_06& arg_06,
157243 const t_ARG_07& arg_07,
157244 const t_ARG_08& arg_08)
157245: Variant_Base(bsl::allocator_arg_t(),
157246 allocator,
157247 bsl::in_place_index_t<t_INDEX>(),
157248 arg_01,
157249 arg_02,
157250 arg_03,
157251 arg_04,
157252 arg_05,
157253 arg_06,
157254 arg_07,
157255 arg_08)
157256{
157257}
157258#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
157259
157260#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
157261template <class t_HEAD, class t_TAIL_01,
157262 class t_TAIL_02,
157263 class t_TAIL_03,
157264 class t_TAIL_04,
157265 class t_TAIL_05,
157266 class t_TAIL_06,
157267 class t_TAIL_07,
157268 class t_TAIL_08,
157269 class t_TAIL_09,
157270 class t_TAIL_10,
157271 class t_TAIL_11,
157272 class t_TAIL_12,
157273 class t_TAIL_13,
157274 class t_TAIL_14,
157275 class t_TAIL_15,
157276 class t_TAIL_16,
157277 class t_TAIL_17>
157278template <size_t t_INDEX,
157279 class t_ARG_01,
157280 class t_ARG_02,
157281 class t_ARG_03,
157282 class t_ARG_04,
157283 class t_ARG_05,
157284 class t_ARG_06,
157285 class t_ARG_07,
157286 class t_ARG_08>
157287inline
157288variant<t_HEAD, t_TAIL_01,
157289 t_TAIL_02,
157290 t_TAIL_03,
157291 t_TAIL_04,
157292 t_TAIL_05,
157293 t_TAIL_06,
157294 t_TAIL_07,
157295 t_TAIL_08,
157296 t_TAIL_09,
157297 t_TAIL_10,
157298 t_TAIL_11,
157299 t_TAIL_12,
157300 t_TAIL_13,
157301 t_TAIL_14,
157302 t_TAIL_15,
157303 t_TAIL_16,
157304 t_TAIL_17,
157305 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
157306 allocator_type allocator,
157308 const t_ARG_01& arg_01,
157309 const t_ARG_02& arg_02,
157310 const t_ARG_03& arg_03,
157311 const t_ARG_04& arg_04,
157312 const t_ARG_05& arg_05,
157313 const t_ARG_06& arg_06,
157314 const t_ARG_07& arg_07,
157315 const t_ARG_08& arg_08)
157316: Variant_Base(bsl::allocator_arg_t(),
157317 allocator,
157318 bsl::in_place_index_t<t_INDEX>(),
157319 arg_01,
157320 arg_02,
157321 arg_03,
157322 arg_04,
157323 arg_05,
157324 arg_06,
157325 arg_07,
157326 arg_08)
157327{
157328}
157329#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
157330
157331#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
157332template <class t_HEAD, class t_TAIL_01,
157333 class t_TAIL_02,
157334 class t_TAIL_03,
157335 class t_TAIL_04,
157336 class t_TAIL_05,
157337 class t_TAIL_06,
157338 class t_TAIL_07,
157339 class t_TAIL_08,
157340 class t_TAIL_09,
157341 class t_TAIL_10,
157342 class t_TAIL_11,
157343 class t_TAIL_12,
157344 class t_TAIL_13,
157345 class t_TAIL_14,
157346 class t_TAIL_15,
157347 class t_TAIL_16,
157348 class t_TAIL_17,
157349 class t_TAIL_18>
157350template <size_t t_INDEX,
157351 class t_ARG_01,
157352 class t_ARG_02,
157353 class t_ARG_03,
157354 class t_ARG_04,
157355 class t_ARG_05,
157356 class t_ARG_06,
157357 class t_ARG_07,
157358 class t_ARG_08>
157359inline
157360variant<t_HEAD, t_TAIL_01,
157361 t_TAIL_02,
157362 t_TAIL_03,
157363 t_TAIL_04,
157364 t_TAIL_05,
157365 t_TAIL_06,
157366 t_TAIL_07,
157367 t_TAIL_08,
157368 t_TAIL_09,
157369 t_TAIL_10,
157370 t_TAIL_11,
157371 t_TAIL_12,
157372 t_TAIL_13,
157373 t_TAIL_14,
157374 t_TAIL_15,
157375 t_TAIL_16,
157376 t_TAIL_17,
157377 t_TAIL_18,
157378 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
157379 allocator_type allocator,
157381 const t_ARG_01& arg_01,
157382 const t_ARG_02& arg_02,
157383 const t_ARG_03& arg_03,
157384 const t_ARG_04& arg_04,
157385 const t_ARG_05& arg_05,
157386 const t_ARG_06& arg_06,
157387 const t_ARG_07& arg_07,
157388 const t_ARG_08& arg_08)
157389: Variant_Base(bsl::allocator_arg_t(),
157390 allocator,
157391 bsl::in_place_index_t<t_INDEX>(),
157392 arg_01,
157393 arg_02,
157394 arg_03,
157395 arg_04,
157396 arg_05,
157397 arg_06,
157398 arg_07,
157399 arg_08)
157400{
157401}
157402#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
157403
157404
157405#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
157406template <class t_HEAD>
157407template <size_t t_INDEX,
157408 class t_ARG_01,
157409 class t_ARG_02,
157410 class t_ARG_03,
157411 class t_ARG_04,
157412 class t_ARG_05,
157413 class t_ARG_06,
157414 class t_ARG_07,
157415 class t_ARG_08,
157416 class t_ARG_09>
157417inline
157418variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
157419 allocator_type allocator,
157421 const t_ARG_01& arg_01,
157422 const t_ARG_02& arg_02,
157423 const t_ARG_03& arg_03,
157424 const t_ARG_04& arg_04,
157425 const t_ARG_05& arg_05,
157426 const t_ARG_06& arg_06,
157427 const t_ARG_07& arg_07,
157428 const t_ARG_08& arg_08,
157429 const t_ARG_09& arg_09)
157430: Variant_Base(bsl::allocator_arg_t(),
157431 allocator,
157432 bsl::in_place_index_t<t_INDEX>(),
157433 arg_01,
157434 arg_02,
157435 arg_03,
157436 arg_04,
157437 arg_05,
157438 arg_06,
157439 arg_07,
157440 arg_08,
157441 arg_09)
157442{
157443}
157444#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
157445
157446#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
157447template <class t_HEAD, class t_TAIL_01>
157448template <size_t t_INDEX,
157449 class t_ARG_01,
157450 class t_ARG_02,
157451 class t_ARG_03,
157452 class t_ARG_04,
157453 class t_ARG_05,
157454 class t_ARG_06,
157455 class t_ARG_07,
157456 class t_ARG_08,
157457 class t_ARG_09>
157458inline
157459variant<t_HEAD, t_TAIL_01,
157460 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
157461 allocator_type allocator,
157463 const t_ARG_01& arg_01,
157464 const t_ARG_02& arg_02,
157465 const t_ARG_03& arg_03,
157466 const t_ARG_04& arg_04,
157467 const t_ARG_05& arg_05,
157468 const t_ARG_06& arg_06,
157469 const t_ARG_07& arg_07,
157470 const t_ARG_08& arg_08,
157471 const t_ARG_09& arg_09)
157472: Variant_Base(bsl::allocator_arg_t(),
157473 allocator,
157474 bsl::in_place_index_t<t_INDEX>(),
157475 arg_01,
157476 arg_02,
157477 arg_03,
157478 arg_04,
157479 arg_05,
157480 arg_06,
157481 arg_07,
157482 arg_08,
157483 arg_09)
157484{
157485}
157486#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
157487
157488#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
157489template <class t_HEAD, class t_TAIL_01,
157490 class t_TAIL_02>
157491template <size_t t_INDEX,
157492 class t_ARG_01,
157493 class t_ARG_02,
157494 class t_ARG_03,
157495 class t_ARG_04,
157496 class t_ARG_05,
157497 class t_ARG_06,
157498 class t_ARG_07,
157499 class t_ARG_08,
157500 class t_ARG_09>
157501inline
157502variant<t_HEAD, t_TAIL_01,
157503 t_TAIL_02,
157504 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
157505 allocator_type allocator,
157507 const t_ARG_01& arg_01,
157508 const t_ARG_02& arg_02,
157509 const t_ARG_03& arg_03,
157510 const t_ARG_04& arg_04,
157511 const t_ARG_05& arg_05,
157512 const t_ARG_06& arg_06,
157513 const t_ARG_07& arg_07,
157514 const t_ARG_08& arg_08,
157515 const t_ARG_09& arg_09)
157516: Variant_Base(bsl::allocator_arg_t(),
157517 allocator,
157518 bsl::in_place_index_t<t_INDEX>(),
157519 arg_01,
157520 arg_02,
157521 arg_03,
157522 arg_04,
157523 arg_05,
157524 arg_06,
157525 arg_07,
157526 arg_08,
157527 arg_09)
157528{
157529}
157530#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
157531
157532#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
157533template <class t_HEAD, class t_TAIL_01,
157534 class t_TAIL_02,
157535 class t_TAIL_03>
157536template <size_t t_INDEX,
157537 class t_ARG_01,
157538 class t_ARG_02,
157539 class t_ARG_03,
157540 class t_ARG_04,
157541 class t_ARG_05,
157542 class t_ARG_06,
157543 class t_ARG_07,
157544 class t_ARG_08,
157545 class t_ARG_09>
157546inline
157547variant<t_HEAD, t_TAIL_01,
157548 t_TAIL_02,
157549 t_TAIL_03,
157550 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
157551 allocator_type allocator,
157553 const t_ARG_01& arg_01,
157554 const t_ARG_02& arg_02,
157555 const t_ARG_03& arg_03,
157556 const t_ARG_04& arg_04,
157557 const t_ARG_05& arg_05,
157558 const t_ARG_06& arg_06,
157559 const t_ARG_07& arg_07,
157560 const t_ARG_08& arg_08,
157561 const t_ARG_09& arg_09)
157562: Variant_Base(bsl::allocator_arg_t(),
157563 allocator,
157564 bsl::in_place_index_t<t_INDEX>(),
157565 arg_01,
157566 arg_02,
157567 arg_03,
157568 arg_04,
157569 arg_05,
157570 arg_06,
157571 arg_07,
157572 arg_08,
157573 arg_09)
157574{
157575}
157576#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
157577
157578#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
157579template <class t_HEAD, class t_TAIL_01,
157580 class t_TAIL_02,
157581 class t_TAIL_03,
157582 class t_TAIL_04>
157583template <size_t t_INDEX,
157584 class t_ARG_01,
157585 class t_ARG_02,
157586 class t_ARG_03,
157587 class t_ARG_04,
157588 class t_ARG_05,
157589 class t_ARG_06,
157590 class t_ARG_07,
157591 class t_ARG_08,
157592 class t_ARG_09>
157593inline
157594variant<t_HEAD, t_TAIL_01,
157595 t_TAIL_02,
157596 t_TAIL_03,
157597 t_TAIL_04,
157598 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
157599 allocator_type allocator,
157601 const t_ARG_01& arg_01,
157602 const t_ARG_02& arg_02,
157603 const t_ARG_03& arg_03,
157604 const t_ARG_04& arg_04,
157605 const t_ARG_05& arg_05,
157606 const t_ARG_06& arg_06,
157607 const t_ARG_07& arg_07,
157608 const t_ARG_08& arg_08,
157609 const t_ARG_09& arg_09)
157610: Variant_Base(bsl::allocator_arg_t(),
157611 allocator,
157612 bsl::in_place_index_t<t_INDEX>(),
157613 arg_01,
157614 arg_02,
157615 arg_03,
157616 arg_04,
157617 arg_05,
157618 arg_06,
157619 arg_07,
157620 arg_08,
157621 arg_09)
157622{
157623}
157624#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
157625
157626#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
157627template <class t_HEAD, class t_TAIL_01,
157628 class t_TAIL_02,
157629 class t_TAIL_03,
157630 class t_TAIL_04,
157631 class t_TAIL_05>
157632template <size_t t_INDEX,
157633 class t_ARG_01,
157634 class t_ARG_02,
157635 class t_ARG_03,
157636 class t_ARG_04,
157637 class t_ARG_05,
157638 class t_ARG_06,
157639 class t_ARG_07,
157640 class t_ARG_08,
157641 class t_ARG_09>
157642inline
157643variant<t_HEAD, t_TAIL_01,
157644 t_TAIL_02,
157645 t_TAIL_03,
157646 t_TAIL_04,
157647 t_TAIL_05,
157648 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
157649 allocator_type allocator,
157651 const t_ARG_01& arg_01,
157652 const t_ARG_02& arg_02,
157653 const t_ARG_03& arg_03,
157654 const t_ARG_04& arg_04,
157655 const t_ARG_05& arg_05,
157656 const t_ARG_06& arg_06,
157657 const t_ARG_07& arg_07,
157658 const t_ARG_08& arg_08,
157659 const t_ARG_09& arg_09)
157660: Variant_Base(bsl::allocator_arg_t(),
157661 allocator,
157662 bsl::in_place_index_t<t_INDEX>(),
157663 arg_01,
157664 arg_02,
157665 arg_03,
157666 arg_04,
157667 arg_05,
157668 arg_06,
157669 arg_07,
157670 arg_08,
157671 arg_09)
157672{
157673}
157674#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
157675
157676#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
157677template <class t_HEAD, class t_TAIL_01,
157678 class t_TAIL_02,
157679 class t_TAIL_03,
157680 class t_TAIL_04,
157681 class t_TAIL_05,
157682 class t_TAIL_06>
157683template <size_t t_INDEX,
157684 class t_ARG_01,
157685 class t_ARG_02,
157686 class t_ARG_03,
157687 class t_ARG_04,
157688 class t_ARG_05,
157689 class t_ARG_06,
157690 class t_ARG_07,
157691 class t_ARG_08,
157692 class t_ARG_09>
157693inline
157694variant<t_HEAD, t_TAIL_01,
157695 t_TAIL_02,
157696 t_TAIL_03,
157697 t_TAIL_04,
157698 t_TAIL_05,
157699 t_TAIL_06,
157700 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
157701 allocator_type allocator,
157703 const t_ARG_01& arg_01,
157704 const t_ARG_02& arg_02,
157705 const t_ARG_03& arg_03,
157706 const t_ARG_04& arg_04,
157707 const t_ARG_05& arg_05,
157708 const t_ARG_06& arg_06,
157709 const t_ARG_07& arg_07,
157710 const t_ARG_08& arg_08,
157711 const t_ARG_09& arg_09)
157712: Variant_Base(bsl::allocator_arg_t(),
157713 allocator,
157714 bsl::in_place_index_t<t_INDEX>(),
157715 arg_01,
157716 arg_02,
157717 arg_03,
157718 arg_04,
157719 arg_05,
157720 arg_06,
157721 arg_07,
157722 arg_08,
157723 arg_09)
157724{
157725}
157726#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
157727
157728#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
157729template <class t_HEAD, class t_TAIL_01,
157730 class t_TAIL_02,
157731 class t_TAIL_03,
157732 class t_TAIL_04,
157733 class t_TAIL_05,
157734 class t_TAIL_06,
157735 class t_TAIL_07>
157736template <size_t t_INDEX,
157737 class t_ARG_01,
157738 class t_ARG_02,
157739 class t_ARG_03,
157740 class t_ARG_04,
157741 class t_ARG_05,
157742 class t_ARG_06,
157743 class t_ARG_07,
157744 class t_ARG_08,
157745 class t_ARG_09>
157746inline
157747variant<t_HEAD, t_TAIL_01,
157748 t_TAIL_02,
157749 t_TAIL_03,
157750 t_TAIL_04,
157751 t_TAIL_05,
157752 t_TAIL_06,
157753 t_TAIL_07,
157754 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
157755 allocator_type allocator,
157757 const t_ARG_01& arg_01,
157758 const t_ARG_02& arg_02,
157759 const t_ARG_03& arg_03,
157760 const t_ARG_04& arg_04,
157761 const t_ARG_05& arg_05,
157762 const t_ARG_06& arg_06,
157763 const t_ARG_07& arg_07,
157764 const t_ARG_08& arg_08,
157765 const t_ARG_09& arg_09)
157766: Variant_Base(bsl::allocator_arg_t(),
157767 allocator,
157768 bsl::in_place_index_t<t_INDEX>(),
157769 arg_01,
157770 arg_02,
157771 arg_03,
157772 arg_04,
157773 arg_05,
157774 arg_06,
157775 arg_07,
157776 arg_08,
157777 arg_09)
157778{
157779}
157780#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
157781
157782#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
157783template <class t_HEAD, class t_TAIL_01,
157784 class t_TAIL_02,
157785 class t_TAIL_03,
157786 class t_TAIL_04,
157787 class t_TAIL_05,
157788 class t_TAIL_06,
157789 class t_TAIL_07,
157790 class t_TAIL_08>
157791template <size_t t_INDEX,
157792 class t_ARG_01,
157793 class t_ARG_02,
157794 class t_ARG_03,
157795 class t_ARG_04,
157796 class t_ARG_05,
157797 class t_ARG_06,
157798 class t_ARG_07,
157799 class t_ARG_08,
157800 class t_ARG_09>
157801inline
157802variant<t_HEAD, t_TAIL_01,
157803 t_TAIL_02,
157804 t_TAIL_03,
157805 t_TAIL_04,
157806 t_TAIL_05,
157807 t_TAIL_06,
157808 t_TAIL_07,
157809 t_TAIL_08,
157810 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
157811 allocator_type allocator,
157813 const t_ARG_01& arg_01,
157814 const t_ARG_02& arg_02,
157815 const t_ARG_03& arg_03,
157816 const t_ARG_04& arg_04,
157817 const t_ARG_05& arg_05,
157818 const t_ARG_06& arg_06,
157819 const t_ARG_07& arg_07,
157820 const t_ARG_08& arg_08,
157821 const t_ARG_09& arg_09)
157822: Variant_Base(bsl::allocator_arg_t(),
157823 allocator,
157824 bsl::in_place_index_t<t_INDEX>(),
157825 arg_01,
157826 arg_02,
157827 arg_03,
157828 arg_04,
157829 arg_05,
157830 arg_06,
157831 arg_07,
157832 arg_08,
157833 arg_09)
157834{
157835}
157836#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
157837
157838#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
157839template <class t_HEAD, class t_TAIL_01,
157840 class t_TAIL_02,
157841 class t_TAIL_03,
157842 class t_TAIL_04,
157843 class t_TAIL_05,
157844 class t_TAIL_06,
157845 class t_TAIL_07,
157846 class t_TAIL_08,
157847 class t_TAIL_09>
157848template <size_t t_INDEX,
157849 class t_ARG_01,
157850 class t_ARG_02,
157851 class t_ARG_03,
157852 class t_ARG_04,
157853 class t_ARG_05,
157854 class t_ARG_06,
157855 class t_ARG_07,
157856 class t_ARG_08,
157857 class t_ARG_09>
157858inline
157859variant<t_HEAD, t_TAIL_01,
157860 t_TAIL_02,
157861 t_TAIL_03,
157862 t_TAIL_04,
157863 t_TAIL_05,
157864 t_TAIL_06,
157865 t_TAIL_07,
157866 t_TAIL_08,
157867 t_TAIL_09,
157868 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
157869 allocator_type allocator,
157871 const t_ARG_01& arg_01,
157872 const t_ARG_02& arg_02,
157873 const t_ARG_03& arg_03,
157874 const t_ARG_04& arg_04,
157875 const t_ARG_05& arg_05,
157876 const t_ARG_06& arg_06,
157877 const t_ARG_07& arg_07,
157878 const t_ARG_08& arg_08,
157879 const t_ARG_09& arg_09)
157880: Variant_Base(bsl::allocator_arg_t(),
157881 allocator,
157882 bsl::in_place_index_t<t_INDEX>(),
157883 arg_01,
157884 arg_02,
157885 arg_03,
157886 arg_04,
157887 arg_05,
157888 arg_06,
157889 arg_07,
157890 arg_08,
157891 arg_09)
157892{
157893}
157894#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
157895
157896#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
157897template <class t_HEAD, class t_TAIL_01,
157898 class t_TAIL_02,
157899 class t_TAIL_03,
157900 class t_TAIL_04,
157901 class t_TAIL_05,
157902 class t_TAIL_06,
157903 class t_TAIL_07,
157904 class t_TAIL_08,
157905 class t_TAIL_09,
157906 class t_TAIL_10>
157907template <size_t t_INDEX,
157908 class t_ARG_01,
157909 class t_ARG_02,
157910 class t_ARG_03,
157911 class t_ARG_04,
157912 class t_ARG_05,
157913 class t_ARG_06,
157914 class t_ARG_07,
157915 class t_ARG_08,
157916 class t_ARG_09>
157917inline
157918variant<t_HEAD, t_TAIL_01,
157919 t_TAIL_02,
157920 t_TAIL_03,
157921 t_TAIL_04,
157922 t_TAIL_05,
157923 t_TAIL_06,
157924 t_TAIL_07,
157925 t_TAIL_08,
157926 t_TAIL_09,
157927 t_TAIL_10,
157928 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
157929 allocator_type allocator,
157931 const t_ARG_01& arg_01,
157932 const t_ARG_02& arg_02,
157933 const t_ARG_03& arg_03,
157934 const t_ARG_04& arg_04,
157935 const t_ARG_05& arg_05,
157936 const t_ARG_06& arg_06,
157937 const t_ARG_07& arg_07,
157938 const t_ARG_08& arg_08,
157939 const t_ARG_09& arg_09)
157940: Variant_Base(bsl::allocator_arg_t(),
157941 allocator,
157942 bsl::in_place_index_t<t_INDEX>(),
157943 arg_01,
157944 arg_02,
157945 arg_03,
157946 arg_04,
157947 arg_05,
157948 arg_06,
157949 arg_07,
157950 arg_08,
157951 arg_09)
157952{
157953}
157954#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
157955
157956#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
157957template <class t_HEAD, class t_TAIL_01,
157958 class t_TAIL_02,
157959 class t_TAIL_03,
157960 class t_TAIL_04,
157961 class t_TAIL_05,
157962 class t_TAIL_06,
157963 class t_TAIL_07,
157964 class t_TAIL_08,
157965 class t_TAIL_09,
157966 class t_TAIL_10,
157967 class t_TAIL_11>
157968template <size_t t_INDEX,
157969 class t_ARG_01,
157970 class t_ARG_02,
157971 class t_ARG_03,
157972 class t_ARG_04,
157973 class t_ARG_05,
157974 class t_ARG_06,
157975 class t_ARG_07,
157976 class t_ARG_08,
157977 class t_ARG_09>
157978inline
157979variant<t_HEAD, t_TAIL_01,
157980 t_TAIL_02,
157981 t_TAIL_03,
157982 t_TAIL_04,
157983 t_TAIL_05,
157984 t_TAIL_06,
157985 t_TAIL_07,
157986 t_TAIL_08,
157987 t_TAIL_09,
157988 t_TAIL_10,
157989 t_TAIL_11,
157990 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
157991 allocator_type allocator,
157993 const t_ARG_01& arg_01,
157994 const t_ARG_02& arg_02,
157995 const t_ARG_03& arg_03,
157996 const t_ARG_04& arg_04,
157997 const t_ARG_05& arg_05,
157998 const t_ARG_06& arg_06,
157999 const t_ARG_07& arg_07,
158000 const t_ARG_08& arg_08,
158001 const t_ARG_09& arg_09)
158002: Variant_Base(bsl::allocator_arg_t(),
158003 allocator,
158004 bsl::in_place_index_t<t_INDEX>(),
158005 arg_01,
158006 arg_02,
158007 arg_03,
158008 arg_04,
158009 arg_05,
158010 arg_06,
158011 arg_07,
158012 arg_08,
158013 arg_09)
158014{
158015}
158016#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
158017
158018#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
158019template <class t_HEAD, class t_TAIL_01,
158020 class t_TAIL_02,
158021 class t_TAIL_03,
158022 class t_TAIL_04,
158023 class t_TAIL_05,
158024 class t_TAIL_06,
158025 class t_TAIL_07,
158026 class t_TAIL_08,
158027 class t_TAIL_09,
158028 class t_TAIL_10,
158029 class t_TAIL_11,
158030 class t_TAIL_12>
158031template <size_t t_INDEX,
158032 class t_ARG_01,
158033 class t_ARG_02,
158034 class t_ARG_03,
158035 class t_ARG_04,
158036 class t_ARG_05,
158037 class t_ARG_06,
158038 class t_ARG_07,
158039 class t_ARG_08,
158040 class t_ARG_09>
158041inline
158042variant<t_HEAD, t_TAIL_01,
158043 t_TAIL_02,
158044 t_TAIL_03,
158045 t_TAIL_04,
158046 t_TAIL_05,
158047 t_TAIL_06,
158048 t_TAIL_07,
158049 t_TAIL_08,
158050 t_TAIL_09,
158051 t_TAIL_10,
158052 t_TAIL_11,
158053 t_TAIL_12,
158054 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
158055 allocator_type allocator,
158057 const t_ARG_01& arg_01,
158058 const t_ARG_02& arg_02,
158059 const t_ARG_03& arg_03,
158060 const t_ARG_04& arg_04,
158061 const t_ARG_05& arg_05,
158062 const t_ARG_06& arg_06,
158063 const t_ARG_07& arg_07,
158064 const t_ARG_08& arg_08,
158065 const t_ARG_09& arg_09)
158066: Variant_Base(bsl::allocator_arg_t(),
158067 allocator,
158068 bsl::in_place_index_t<t_INDEX>(),
158069 arg_01,
158070 arg_02,
158071 arg_03,
158072 arg_04,
158073 arg_05,
158074 arg_06,
158075 arg_07,
158076 arg_08,
158077 arg_09)
158078{
158079}
158080#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
158081
158082#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
158083template <class t_HEAD, class t_TAIL_01,
158084 class t_TAIL_02,
158085 class t_TAIL_03,
158086 class t_TAIL_04,
158087 class t_TAIL_05,
158088 class t_TAIL_06,
158089 class t_TAIL_07,
158090 class t_TAIL_08,
158091 class t_TAIL_09,
158092 class t_TAIL_10,
158093 class t_TAIL_11,
158094 class t_TAIL_12,
158095 class t_TAIL_13>
158096template <size_t t_INDEX,
158097 class t_ARG_01,
158098 class t_ARG_02,
158099 class t_ARG_03,
158100 class t_ARG_04,
158101 class t_ARG_05,
158102 class t_ARG_06,
158103 class t_ARG_07,
158104 class t_ARG_08,
158105 class t_ARG_09>
158106inline
158107variant<t_HEAD, t_TAIL_01,
158108 t_TAIL_02,
158109 t_TAIL_03,
158110 t_TAIL_04,
158111 t_TAIL_05,
158112 t_TAIL_06,
158113 t_TAIL_07,
158114 t_TAIL_08,
158115 t_TAIL_09,
158116 t_TAIL_10,
158117 t_TAIL_11,
158118 t_TAIL_12,
158119 t_TAIL_13,
158120 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
158121 allocator_type allocator,
158123 const t_ARG_01& arg_01,
158124 const t_ARG_02& arg_02,
158125 const t_ARG_03& arg_03,
158126 const t_ARG_04& arg_04,
158127 const t_ARG_05& arg_05,
158128 const t_ARG_06& arg_06,
158129 const t_ARG_07& arg_07,
158130 const t_ARG_08& arg_08,
158131 const t_ARG_09& arg_09)
158132: Variant_Base(bsl::allocator_arg_t(),
158133 allocator,
158134 bsl::in_place_index_t<t_INDEX>(),
158135 arg_01,
158136 arg_02,
158137 arg_03,
158138 arg_04,
158139 arg_05,
158140 arg_06,
158141 arg_07,
158142 arg_08,
158143 arg_09)
158144{
158145}
158146#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
158147
158148#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
158149template <class t_HEAD, class t_TAIL_01,
158150 class t_TAIL_02,
158151 class t_TAIL_03,
158152 class t_TAIL_04,
158153 class t_TAIL_05,
158154 class t_TAIL_06,
158155 class t_TAIL_07,
158156 class t_TAIL_08,
158157 class t_TAIL_09,
158158 class t_TAIL_10,
158159 class t_TAIL_11,
158160 class t_TAIL_12,
158161 class t_TAIL_13,
158162 class t_TAIL_14>
158163template <size_t t_INDEX,
158164 class t_ARG_01,
158165 class t_ARG_02,
158166 class t_ARG_03,
158167 class t_ARG_04,
158168 class t_ARG_05,
158169 class t_ARG_06,
158170 class t_ARG_07,
158171 class t_ARG_08,
158172 class t_ARG_09>
158173inline
158174variant<t_HEAD, t_TAIL_01,
158175 t_TAIL_02,
158176 t_TAIL_03,
158177 t_TAIL_04,
158178 t_TAIL_05,
158179 t_TAIL_06,
158180 t_TAIL_07,
158181 t_TAIL_08,
158182 t_TAIL_09,
158183 t_TAIL_10,
158184 t_TAIL_11,
158185 t_TAIL_12,
158186 t_TAIL_13,
158187 t_TAIL_14,
158188 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
158189 allocator_type allocator,
158191 const t_ARG_01& arg_01,
158192 const t_ARG_02& arg_02,
158193 const t_ARG_03& arg_03,
158194 const t_ARG_04& arg_04,
158195 const t_ARG_05& arg_05,
158196 const t_ARG_06& arg_06,
158197 const t_ARG_07& arg_07,
158198 const t_ARG_08& arg_08,
158199 const t_ARG_09& arg_09)
158200: Variant_Base(bsl::allocator_arg_t(),
158201 allocator,
158202 bsl::in_place_index_t<t_INDEX>(),
158203 arg_01,
158204 arg_02,
158205 arg_03,
158206 arg_04,
158207 arg_05,
158208 arg_06,
158209 arg_07,
158210 arg_08,
158211 arg_09)
158212{
158213}
158214#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
158215
158216#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
158217template <class t_HEAD, class t_TAIL_01,
158218 class t_TAIL_02,
158219 class t_TAIL_03,
158220 class t_TAIL_04,
158221 class t_TAIL_05,
158222 class t_TAIL_06,
158223 class t_TAIL_07,
158224 class t_TAIL_08,
158225 class t_TAIL_09,
158226 class t_TAIL_10,
158227 class t_TAIL_11,
158228 class t_TAIL_12,
158229 class t_TAIL_13,
158230 class t_TAIL_14,
158231 class t_TAIL_15>
158232template <size_t t_INDEX,
158233 class t_ARG_01,
158234 class t_ARG_02,
158235 class t_ARG_03,
158236 class t_ARG_04,
158237 class t_ARG_05,
158238 class t_ARG_06,
158239 class t_ARG_07,
158240 class t_ARG_08,
158241 class t_ARG_09>
158242inline
158243variant<t_HEAD, t_TAIL_01,
158244 t_TAIL_02,
158245 t_TAIL_03,
158246 t_TAIL_04,
158247 t_TAIL_05,
158248 t_TAIL_06,
158249 t_TAIL_07,
158250 t_TAIL_08,
158251 t_TAIL_09,
158252 t_TAIL_10,
158253 t_TAIL_11,
158254 t_TAIL_12,
158255 t_TAIL_13,
158256 t_TAIL_14,
158257 t_TAIL_15,
158258 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
158259 allocator_type allocator,
158261 const t_ARG_01& arg_01,
158262 const t_ARG_02& arg_02,
158263 const t_ARG_03& arg_03,
158264 const t_ARG_04& arg_04,
158265 const t_ARG_05& arg_05,
158266 const t_ARG_06& arg_06,
158267 const t_ARG_07& arg_07,
158268 const t_ARG_08& arg_08,
158269 const t_ARG_09& arg_09)
158270: Variant_Base(bsl::allocator_arg_t(),
158271 allocator,
158272 bsl::in_place_index_t<t_INDEX>(),
158273 arg_01,
158274 arg_02,
158275 arg_03,
158276 arg_04,
158277 arg_05,
158278 arg_06,
158279 arg_07,
158280 arg_08,
158281 arg_09)
158282{
158283}
158284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
158285
158286#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
158287template <class t_HEAD, class t_TAIL_01,
158288 class t_TAIL_02,
158289 class t_TAIL_03,
158290 class t_TAIL_04,
158291 class t_TAIL_05,
158292 class t_TAIL_06,
158293 class t_TAIL_07,
158294 class t_TAIL_08,
158295 class t_TAIL_09,
158296 class t_TAIL_10,
158297 class t_TAIL_11,
158298 class t_TAIL_12,
158299 class t_TAIL_13,
158300 class t_TAIL_14,
158301 class t_TAIL_15,
158302 class t_TAIL_16>
158303template <size_t t_INDEX,
158304 class t_ARG_01,
158305 class t_ARG_02,
158306 class t_ARG_03,
158307 class t_ARG_04,
158308 class t_ARG_05,
158309 class t_ARG_06,
158310 class t_ARG_07,
158311 class t_ARG_08,
158312 class t_ARG_09>
158313inline
158314variant<t_HEAD, t_TAIL_01,
158315 t_TAIL_02,
158316 t_TAIL_03,
158317 t_TAIL_04,
158318 t_TAIL_05,
158319 t_TAIL_06,
158320 t_TAIL_07,
158321 t_TAIL_08,
158322 t_TAIL_09,
158323 t_TAIL_10,
158324 t_TAIL_11,
158325 t_TAIL_12,
158326 t_TAIL_13,
158327 t_TAIL_14,
158328 t_TAIL_15,
158329 t_TAIL_16,
158330 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
158331 allocator_type allocator,
158333 const t_ARG_01& arg_01,
158334 const t_ARG_02& arg_02,
158335 const t_ARG_03& arg_03,
158336 const t_ARG_04& arg_04,
158337 const t_ARG_05& arg_05,
158338 const t_ARG_06& arg_06,
158339 const t_ARG_07& arg_07,
158340 const t_ARG_08& arg_08,
158341 const t_ARG_09& arg_09)
158342: Variant_Base(bsl::allocator_arg_t(),
158343 allocator,
158344 bsl::in_place_index_t<t_INDEX>(),
158345 arg_01,
158346 arg_02,
158347 arg_03,
158348 arg_04,
158349 arg_05,
158350 arg_06,
158351 arg_07,
158352 arg_08,
158353 arg_09)
158354{
158355}
158356#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
158357
158358#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
158359template <class t_HEAD, class t_TAIL_01,
158360 class t_TAIL_02,
158361 class t_TAIL_03,
158362 class t_TAIL_04,
158363 class t_TAIL_05,
158364 class t_TAIL_06,
158365 class t_TAIL_07,
158366 class t_TAIL_08,
158367 class t_TAIL_09,
158368 class t_TAIL_10,
158369 class t_TAIL_11,
158370 class t_TAIL_12,
158371 class t_TAIL_13,
158372 class t_TAIL_14,
158373 class t_TAIL_15,
158374 class t_TAIL_16,
158375 class t_TAIL_17>
158376template <size_t t_INDEX,
158377 class t_ARG_01,
158378 class t_ARG_02,
158379 class t_ARG_03,
158380 class t_ARG_04,
158381 class t_ARG_05,
158382 class t_ARG_06,
158383 class t_ARG_07,
158384 class t_ARG_08,
158385 class t_ARG_09>
158386inline
158387variant<t_HEAD, t_TAIL_01,
158388 t_TAIL_02,
158389 t_TAIL_03,
158390 t_TAIL_04,
158391 t_TAIL_05,
158392 t_TAIL_06,
158393 t_TAIL_07,
158394 t_TAIL_08,
158395 t_TAIL_09,
158396 t_TAIL_10,
158397 t_TAIL_11,
158398 t_TAIL_12,
158399 t_TAIL_13,
158400 t_TAIL_14,
158401 t_TAIL_15,
158402 t_TAIL_16,
158403 t_TAIL_17,
158404 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
158405 allocator_type allocator,
158407 const t_ARG_01& arg_01,
158408 const t_ARG_02& arg_02,
158409 const t_ARG_03& arg_03,
158410 const t_ARG_04& arg_04,
158411 const t_ARG_05& arg_05,
158412 const t_ARG_06& arg_06,
158413 const t_ARG_07& arg_07,
158414 const t_ARG_08& arg_08,
158415 const t_ARG_09& arg_09)
158416: Variant_Base(bsl::allocator_arg_t(),
158417 allocator,
158418 bsl::in_place_index_t<t_INDEX>(),
158419 arg_01,
158420 arg_02,
158421 arg_03,
158422 arg_04,
158423 arg_05,
158424 arg_06,
158425 arg_07,
158426 arg_08,
158427 arg_09)
158428{
158429}
158430#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
158431
158432#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
158433template <class t_HEAD, class t_TAIL_01,
158434 class t_TAIL_02,
158435 class t_TAIL_03,
158436 class t_TAIL_04,
158437 class t_TAIL_05,
158438 class t_TAIL_06,
158439 class t_TAIL_07,
158440 class t_TAIL_08,
158441 class t_TAIL_09,
158442 class t_TAIL_10,
158443 class t_TAIL_11,
158444 class t_TAIL_12,
158445 class t_TAIL_13,
158446 class t_TAIL_14,
158447 class t_TAIL_15,
158448 class t_TAIL_16,
158449 class t_TAIL_17,
158450 class t_TAIL_18>
158451template <size_t t_INDEX,
158452 class t_ARG_01,
158453 class t_ARG_02,
158454 class t_ARG_03,
158455 class t_ARG_04,
158456 class t_ARG_05,
158457 class t_ARG_06,
158458 class t_ARG_07,
158459 class t_ARG_08,
158460 class t_ARG_09>
158461inline
158462variant<t_HEAD, t_TAIL_01,
158463 t_TAIL_02,
158464 t_TAIL_03,
158465 t_TAIL_04,
158466 t_TAIL_05,
158467 t_TAIL_06,
158468 t_TAIL_07,
158469 t_TAIL_08,
158470 t_TAIL_09,
158471 t_TAIL_10,
158472 t_TAIL_11,
158473 t_TAIL_12,
158474 t_TAIL_13,
158475 t_TAIL_14,
158476 t_TAIL_15,
158477 t_TAIL_16,
158478 t_TAIL_17,
158479 t_TAIL_18,
158480 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
158481 allocator_type allocator,
158483 const t_ARG_01& arg_01,
158484 const t_ARG_02& arg_02,
158485 const t_ARG_03& arg_03,
158486 const t_ARG_04& arg_04,
158487 const t_ARG_05& arg_05,
158488 const t_ARG_06& arg_06,
158489 const t_ARG_07& arg_07,
158490 const t_ARG_08& arg_08,
158491 const t_ARG_09& arg_09)
158492: Variant_Base(bsl::allocator_arg_t(),
158493 allocator,
158494 bsl::in_place_index_t<t_INDEX>(),
158495 arg_01,
158496 arg_02,
158497 arg_03,
158498 arg_04,
158499 arg_05,
158500 arg_06,
158501 arg_07,
158502 arg_08,
158503 arg_09)
158504{
158505}
158506#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
158507
158508
158509#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
158510template <class t_HEAD>
158511template <size_t t_INDEX,
158512 class t_ARG_01,
158513 class t_ARG_02,
158514 class t_ARG_03,
158515 class t_ARG_04,
158516 class t_ARG_05,
158517 class t_ARG_06,
158518 class t_ARG_07,
158519 class t_ARG_08,
158520 class t_ARG_09,
158521 class t_ARG_10>
158522inline
158523variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::variant(bsl::allocator_arg_t,
158524 allocator_type allocator,
158526 const t_ARG_01& arg_01,
158527 const t_ARG_02& arg_02,
158528 const t_ARG_03& arg_03,
158529 const t_ARG_04& arg_04,
158530 const t_ARG_05& arg_05,
158531 const t_ARG_06& arg_06,
158532 const t_ARG_07& arg_07,
158533 const t_ARG_08& arg_08,
158534 const t_ARG_09& arg_09,
158535 const t_ARG_10& arg_10)
158536: Variant_Base(bsl::allocator_arg_t(),
158537 allocator,
158538 bsl::in_place_index_t<t_INDEX>(),
158539 arg_01,
158540 arg_02,
158541 arg_03,
158542 arg_04,
158543 arg_05,
158544 arg_06,
158545 arg_07,
158546 arg_08,
158547 arg_09,
158548 arg_10)
158549{
158550}
158551#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
158552
158553#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
158554template <class t_HEAD, class t_TAIL_01>
158555template <size_t t_INDEX,
158556 class t_ARG_01,
158557 class t_ARG_02,
158558 class t_ARG_03,
158559 class t_ARG_04,
158560 class t_ARG_05,
158561 class t_ARG_06,
158562 class t_ARG_07,
158563 class t_ARG_08,
158564 class t_ARG_09,
158565 class t_ARG_10>
158566inline
158567variant<t_HEAD, t_TAIL_01,
158568 BSLS_COMPILERFEATURES_FILLT(17)>::variant(bsl::allocator_arg_t,
158569 allocator_type allocator,
158571 const t_ARG_01& arg_01,
158572 const t_ARG_02& arg_02,
158573 const t_ARG_03& arg_03,
158574 const t_ARG_04& arg_04,
158575 const t_ARG_05& arg_05,
158576 const t_ARG_06& arg_06,
158577 const t_ARG_07& arg_07,
158578 const t_ARG_08& arg_08,
158579 const t_ARG_09& arg_09,
158580 const t_ARG_10& arg_10)
158581: Variant_Base(bsl::allocator_arg_t(),
158582 allocator,
158583 bsl::in_place_index_t<t_INDEX>(),
158584 arg_01,
158585 arg_02,
158586 arg_03,
158587 arg_04,
158588 arg_05,
158589 arg_06,
158590 arg_07,
158591 arg_08,
158592 arg_09,
158593 arg_10)
158594{
158595}
158596#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
158597
158598#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
158599template <class t_HEAD, class t_TAIL_01,
158600 class t_TAIL_02>
158601template <size_t t_INDEX,
158602 class t_ARG_01,
158603 class t_ARG_02,
158604 class t_ARG_03,
158605 class t_ARG_04,
158606 class t_ARG_05,
158607 class t_ARG_06,
158608 class t_ARG_07,
158609 class t_ARG_08,
158610 class t_ARG_09,
158611 class t_ARG_10>
158612inline
158613variant<t_HEAD, t_TAIL_01,
158614 t_TAIL_02,
158615 BSLS_COMPILERFEATURES_FILLT(16)>::variant(bsl::allocator_arg_t,
158616 allocator_type allocator,
158618 const t_ARG_01& arg_01,
158619 const t_ARG_02& arg_02,
158620 const t_ARG_03& arg_03,
158621 const t_ARG_04& arg_04,
158622 const t_ARG_05& arg_05,
158623 const t_ARG_06& arg_06,
158624 const t_ARG_07& arg_07,
158625 const t_ARG_08& arg_08,
158626 const t_ARG_09& arg_09,
158627 const t_ARG_10& arg_10)
158628: Variant_Base(bsl::allocator_arg_t(),
158629 allocator,
158630 bsl::in_place_index_t<t_INDEX>(),
158631 arg_01,
158632 arg_02,
158633 arg_03,
158634 arg_04,
158635 arg_05,
158636 arg_06,
158637 arg_07,
158638 arg_08,
158639 arg_09,
158640 arg_10)
158641{
158642}
158643#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
158644
158645#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
158646template <class t_HEAD, class t_TAIL_01,
158647 class t_TAIL_02,
158648 class t_TAIL_03>
158649template <size_t t_INDEX,
158650 class t_ARG_01,
158651 class t_ARG_02,
158652 class t_ARG_03,
158653 class t_ARG_04,
158654 class t_ARG_05,
158655 class t_ARG_06,
158656 class t_ARG_07,
158657 class t_ARG_08,
158658 class t_ARG_09,
158659 class t_ARG_10>
158660inline
158661variant<t_HEAD, t_TAIL_01,
158662 t_TAIL_02,
158663 t_TAIL_03,
158664 BSLS_COMPILERFEATURES_FILLT(15)>::variant(bsl::allocator_arg_t,
158665 allocator_type allocator,
158667 const t_ARG_01& arg_01,
158668 const t_ARG_02& arg_02,
158669 const t_ARG_03& arg_03,
158670 const t_ARG_04& arg_04,
158671 const t_ARG_05& arg_05,
158672 const t_ARG_06& arg_06,
158673 const t_ARG_07& arg_07,
158674 const t_ARG_08& arg_08,
158675 const t_ARG_09& arg_09,
158676 const t_ARG_10& arg_10)
158677: Variant_Base(bsl::allocator_arg_t(),
158678 allocator,
158679 bsl::in_place_index_t<t_INDEX>(),
158680 arg_01,
158681 arg_02,
158682 arg_03,
158683 arg_04,
158684 arg_05,
158685 arg_06,
158686 arg_07,
158687 arg_08,
158688 arg_09,
158689 arg_10)
158690{
158691}
158692#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
158693
158694#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
158695template <class t_HEAD, class t_TAIL_01,
158696 class t_TAIL_02,
158697 class t_TAIL_03,
158698 class t_TAIL_04>
158699template <size_t t_INDEX,
158700 class t_ARG_01,
158701 class t_ARG_02,
158702 class t_ARG_03,
158703 class t_ARG_04,
158704 class t_ARG_05,
158705 class t_ARG_06,
158706 class t_ARG_07,
158707 class t_ARG_08,
158708 class t_ARG_09,
158709 class t_ARG_10>
158710inline
158711variant<t_HEAD, t_TAIL_01,
158712 t_TAIL_02,
158713 t_TAIL_03,
158714 t_TAIL_04,
158715 BSLS_COMPILERFEATURES_FILLT(14)>::variant(bsl::allocator_arg_t,
158716 allocator_type allocator,
158718 const t_ARG_01& arg_01,
158719 const t_ARG_02& arg_02,
158720 const t_ARG_03& arg_03,
158721 const t_ARG_04& arg_04,
158722 const t_ARG_05& arg_05,
158723 const t_ARG_06& arg_06,
158724 const t_ARG_07& arg_07,
158725 const t_ARG_08& arg_08,
158726 const t_ARG_09& arg_09,
158727 const t_ARG_10& arg_10)
158728: Variant_Base(bsl::allocator_arg_t(),
158729 allocator,
158730 bsl::in_place_index_t<t_INDEX>(),
158731 arg_01,
158732 arg_02,
158733 arg_03,
158734 arg_04,
158735 arg_05,
158736 arg_06,
158737 arg_07,
158738 arg_08,
158739 arg_09,
158740 arg_10)
158741{
158742}
158743#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
158744
158745#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
158746template <class t_HEAD, class t_TAIL_01,
158747 class t_TAIL_02,
158748 class t_TAIL_03,
158749 class t_TAIL_04,
158750 class t_TAIL_05>
158751template <size_t t_INDEX,
158752 class t_ARG_01,
158753 class t_ARG_02,
158754 class t_ARG_03,
158755 class t_ARG_04,
158756 class t_ARG_05,
158757 class t_ARG_06,
158758 class t_ARG_07,
158759 class t_ARG_08,
158760 class t_ARG_09,
158761 class t_ARG_10>
158762inline
158763variant<t_HEAD, t_TAIL_01,
158764 t_TAIL_02,
158765 t_TAIL_03,
158766 t_TAIL_04,
158767 t_TAIL_05,
158768 BSLS_COMPILERFEATURES_FILLT(13)>::variant(bsl::allocator_arg_t,
158769 allocator_type allocator,
158771 const t_ARG_01& arg_01,
158772 const t_ARG_02& arg_02,
158773 const t_ARG_03& arg_03,
158774 const t_ARG_04& arg_04,
158775 const t_ARG_05& arg_05,
158776 const t_ARG_06& arg_06,
158777 const t_ARG_07& arg_07,
158778 const t_ARG_08& arg_08,
158779 const t_ARG_09& arg_09,
158780 const t_ARG_10& arg_10)
158781: Variant_Base(bsl::allocator_arg_t(),
158782 allocator,
158783 bsl::in_place_index_t<t_INDEX>(),
158784 arg_01,
158785 arg_02,
158786 arg_03,
158787 arg_04,
158788 arg_05,
158789 arg_06,
158790 arg_07,
158791 arg_08,
158792 arg_09,
158793 arg_10)
158794{
158795}
158796#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
158797
158798#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
158799template <class t_HEAD, class t_TAIL_01,
158800 class t_TAIL_02,
158801 class t_TAIL_03,
158802 class t_TAIL_04,
158803 class t_TAIL_05,
158804 class t_TAIL_06>
158805template <size_t t_INDEX,
158806 class t_ARG_01,
158807 class t_ARG_02,
158808 class t_ARG_03,
158809 class t_ARG_04,
158810 class t_ARG_05,
158811 class t_ARG_06,
158812 class t_ARG_07,
158813 class t_ARG_08,
158814 class t_ARG_09,
158815 class t_ARG_10>
158816inline
158817variant<t_HEAD, t_TAIL_01,
158818 t_TAIL_02,
158819 t_TAIL_03,
158820 t_TAIL_04,
158821 t_TAIL_05,
158822 t_TAIL_06,
158823 BSLS_COMPILERFEATURES_FILLT(12)>::variant(bsl::allocator_arg_t,
158824 allocator_type allocator,
158826 const t_ARG_01& arg_01,
158827 const t_ARG_02& arg_02,
158828 const t_ARG_03& arg_03,
158829 const t_ARG_04& arg_04,
158830 const t_ARG_05& arg_05,
158831 const t_ARG_06& arg_06,
158832 const t_ARG_07& arg_07,
158833 const t_ARG_08& arg_08,
158834 const t_ARG_09& arg_09,
158835 const t_ARG_10& arg_10)
158836: Variant_Base(bsl::allocator_arg_t(),
158837 allocator,
158838 bsl::in_place_index_t<t_INDEX>(),
158839 arg_01,
158840 arg_02,
158841 arg_03,
158842 arg_04,
158843 arg_05,
158844 arg_06,
158845 arg_07,
158846 arg_08,
158847 arg_09,
158848 arg_10)
158849{
158850}
158851#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
158852
158853#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
158854template <class t_HEAD, class t_TAIL_01,
158855 class t_TAIL_02,
158856 class t_TAIL_03,
158857 class t_TAIL_04,
158858 class t_TAIL_05,
158859 class t_TAIL_06,
158860 class t_TAIL_07>
158861template <size_t t_INDEX,
158862 class t_ARG_01,
158863 class t_ARG_02,
158864 class t_ARG_03,
158865 class t_ARG_04,
158866 class t_ARG_05,
158867 class t_ARG_06,
158868 class t_ARG_07,
158869 class t_ARG_08,
158870 class t_ARG_09,
158871 class t_ARG_10>
158872inline
158873variant<t_HEAD, t_TAIL_01,
158874 t_TAIL_02,
158875 t_TAIL_03,
158876 t_TAIL_04,
158877 t_TAIL_05,
158878 t_TAIL_06,
158879 t_TAIL_07,
158880 BSLS_COMPILERFEATURES_FILLT(11)>::variant(bsl::allocator_arg_t,
158881 allocator_type allocator,
158883 const t_ARG_01& arg_01,
158884 const t_ARG_02& arg_02,
158885 const t_ARG_03& arg_03,
158886 const t_ARG_04& arg_04,
158887 const t_ARG_05& arg_05,
158888 const t_ARG_06& arg_06,
158889 const t_ARG_07& arg_07,
158890 const t_ARG_08& arg_08,
158891 const t_ARG_09& arg_09,
158892 const t_ARG_10& arg_10)
158893: Variant_Base(bsl::allocator_arg_t(),
158894 allocator,
158895 bsl::in_place_index_t<t_INDEX>(),
158896 arg_01,
158897 arg_02,
158898 arg_03,
158899 arg_04,
158900 arg_05,
158901 arg_06,
158902 arg_07,
158903 arg_08,
158904 arg_09,
158905 arg_10)
158906{
158907}
158908#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
158909
158910#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
158911template <class t_HEAD, class t_TAIL_01,
158912 class t_TAIL_02,
158913 class t_TAIL_03,
158914 class t_TAIL_04,
158915 class t_TAIL_05,
158916 class t_TAIL_06,
158917 class t_TAIL_07,
158918 class t_TAIL_08>
158919template <size_t t_INDEX,
158920 class t_ARG_01,
158921 class t_ARG_02,
158922 class t_ARG_03,
158923 class t_ARG_04,
158924 class t_ARG_05,
158925 class t_ARG_06,
158926 class t_ARG_07,
158927 class t_ARG_08,
158928 class t_ARG_09,
158929 class t_ARG_10>
158930inline
158931variant<t_HEAD, t_TAIL_01,
158932 t_TAIL_02,
158933 t_TAIL_03,
158934 t_TAIL_04,
158935 t_TAIL_05,
158936 t_TAIL_06,
158937 t_TAIL_07,
158938 t_TAIL_08,
158939 BSLS_COMPILERFEATURES_FILLT(10)>::variant(bsl::allocator_arg_t,
158940 allocator_type allocator,
158942 const t_ARG_01& arg_01,
158943 const t_ARG_02& arg_02,
158944 const t_ARG_03& arg_03,
158945 const t_ARG_04& arg_04,
158946 const t_ARG_05& arg_05,
158947 const t_ARG_06& arg_06,
158948 const t_ARG_07& arg_07,
158949 const t_ARG_08& arg_08,
158950 const t_ARG_09& arg_09,
158951 const t_ARG_10& arg_10)
158952: Variant_Base(bsl::allocator_arg_t(),
158953 allocator,
158954 bsl::in_place_index_t<t_INDEX>(),
158955 arg_01,
158956 arg_02,
158957 arg_03,
158958 arg_04,
158959 arg_05,
158960 arg_06,
158961 arg_07,
158962 arg_08,
158963 arg_09,
158964 arg_10)
158965{
158966}
158967#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
158968
158969#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
158970template <class t_HEAD, class t_TAIL_01,
158971 class t_TAIL_02,
158972 class t_TAIL_03,
158973 class t_TAIL_04,
158974 class t_TAIL_05,
158975 class t_TAIL_06,
158976 class t_TAIL_07,
158977 class t_TAIL_08,
158978 class t_TAIL_09>
158979template <size_t t_INDEX,
158980 class t_ARG_01,
158981 class t_ARG_02,
158982 class t_ARG_03,
158983 class t_ARG_04,
158984 class t_ARG_05,
158985 class t_ARG_06,
158986 class t_ARG_07,
158987 class t_ARG_08,
158988 class t_ARG_09,
158989 class t_ARG_10>
158990inline
158991variant<t_HEAD, t_TAIL_01,
158992 t_TAIL_02,
158993 t_TAIL_03,
158994 t_TAIL_04,
158995 t_TAIL_05,
158996 t_TAIL_06,
158997 t_TAIL_07,
158998 t_TAIL_08,
158999 t_TAIL_09,
159000 BSLS_COMPILERFEATURES_FILLT( 9)>::variant(bsl::allocator_arg_t,
159001 allocator_type allocator,
159003 const t_ARG_01& arg_01,
159004 const t_ARG_02& arg_02,
159005 const t_ARG_03& arg_03,
159006 const t_ARG_04& arg_04,
159007 const t_ARG_05& arg_05,
159008 const t_ARG_06& arg_06,
159009 const t_ARG_07& arg_07,
159010 const t_ARG_08& arg_08,
159011 const t_ARG_09& arg_09,
159012 const t_ARG_10& arg_10)
159013: Variant_Base(bsl::allocator_arg_t(),
159014 allocator,
159015 bsl::in_place_index_t<t_INDEX>(),
159016 arg_01,
159017 arg_02,
159018 arg_03,
159019 arg_04,
159020 arg_05,
159021 arg_06,
159022 arg_07,
159023 arg_08,
159024 arg_09,
159025 arg_10)
159026{
159027}
159028#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
159029
159030#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
159031template <class t_HEAD, class t_TAIL_01,
159032 class t_TAIL_02,
159033 class t_TAIL_03,
159034 class t_TAIL_04,
159035 class t_TAIL_05,
159036 class t_TAIL_06,
159037 class t_TAIL_07,
159038 class t_TAIL_08,
159039 class t_TAIL_09,
159040 class t_TAIL_10>
159041template <size_t t_INDEX,
159042 class t_ARG_01,
159043 class t_ARG_02,
159044 class t_ARG_03,
159045 class t_ARG_04,
159046 class t_ARG_05,
159047 class t_ARG_06,
159048 class t_ARG_07,
159049 class t_ARG_08,
159050 class t_ARG_09,
159051 class t_ARG_10>
159052inline
159053variant<t_HEAD, t_TAIL_01,
159054 t_TAIL_02,
159055 t_TAIL_03,
159056 t_TAIL_04,
159057 t_TAIL_05,
159058 t_TAIL_06,
159059 t_TAIL_07,
159060 t_TAIL_08,
159061 t_TAIL_09,
159062 t_TAIL_10,
159063 BSLS_COMPILERFEATURES_FILLT( 8)>::variant(bsl::allocator_arg_t,
159064 allocator_type allocator,
159066 const t_ARG_01& arg_01,
159067 const t_ARG_02& arg_02,
159068 const t_ARG_03& arg_03,
159069 const t_ARG_04& arg_04,
159070 const t_ARG_05& arg_05,
159071 const t_ARG_06& arg_06,
159072 const t_ARG_07& arg_07,
159073 const t_ARG_08& arg_08,
159074 const t_ARG_09& arg_09,
159075 const t_ARG_10& arg_10)
159076: Variant_Base(bsl::allocator_arg_t(),
159077 allocator,
159078 bsl::in_place_index_t<t_INDEX>(),
159079 arg_01,
159080 arg_02,
159081 arg_03,
159082 arg_04,
159083 arg_05,
159084 arg_06,
159085 arg_07,
159086 arg_08,
159087 arg_09,
159088 arg_10)
159089{
159090}
159091#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
159092
159093#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
159094template <class t_HEAD, class t_TAIL_01,
159095 class t_TAIL_02,
159096 class t_TAIL_03,
159097 class t_TAIL_04,
159098 class t_TAIL_05,
159099 class t_TAIL_06,
159100 class t_TAIL_07,
159101 class t_TAIL_08,
159102 class t_TAIL_09,
159103 class t_TAIL_10,
159104 class t_TAIL_11>
159105template <size_t t_INDEX,
159106 class t_ARG_01,
159107 class t_ARG_02,
159108 class t_ARG_03,
159109 class t_ARG_04,
159110 class t_ARG_05,
159111 class t_ARG_06,
159112 class t_ARG_07,
159113 class t_ARG_08,
159114 class t_ARG_09,
159115 class t_ARG_10>
159116inline
159117variant<t_HEAD, t_TAIL_01,
159118 t_TAIL_02,
159119 t_TAIL_03,
159120 t_TAIL_04,
159121 t_TAIL_05,
159122 t_TAIL_06,
159123 t_TAIL_07,
159124 t_TAIL_08,
159125 t_TAIL_09,
159126 t_TAIL_10,
159127 t_TAIL_11,
159128 BSLS_COMPILERFEATURES_FILLT( 7)>::variant(bsl::allocator_arg_t,
159129 allocator_type allocator,
159131 const t_ARG_01& arg_01,
159132 const t_ARG_02& arg_02,
159133 const t_ARG_03& arg_03,
159134 const t_ARG_04& arg_04,
159135 const t_ARG_05& arg_05,
159136 const t_ARG_06& arg_06,
159137 const t_ARG_07& arg_07,
159138 const t_ARG_08& arg_08,
159139 const t_ARG_09& arg_09,
159140 const t_ARG_10& arg_10)
159141: Variant_Base(bsl::allocator_arg_t(),
159142 allocator,
159143 bsl::in_place_index_t<t_INDEX>(),
159144 arg_01,
159145 arg_02,
159146 arg_03,
159147 arg_04,
159148 arg_05,
159149 arg_06,
159150 arg_07,
159151 arg_08,
159152 arg_09,
159153 arg_10)
159154{
159155}
159156#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
159157
159158#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
159159template <class t_HEAD, class t_TAIL_01,
159160 class t_TAIL_02,
159161 class t_TAIL_03,
159162 class t_TAIL_04,
159163 class t_TAIL_05,
159164 class t_TAIL_06,
159165 class t_TAIL_07,
159166 class t_TAIL_08,
159167 class t_TAIL_09,
159168 class t_TAIL_10,
159169 class t_TAIL_11,
159170 class t_TAIL_12>
159171template <size_t t_INDEX,
159172 class t_ARG_01,
159173 class t_ARG_02,
159174 class t_ARG_03,
159175 class t_ARG_04,
159176 class t_ARG_05,
159177 class t_ARG_06,
159178 class t_ARG_07,
159179 class t_ARG_08,
159180 class t_ARG_09,
159181 class t_ARG_10>
159182inline
159183variant<t_HEAD, t_TAIL_01,
159184 t_TAIL_02,
159185 t_TAIL_03,
159186 t_TAIL_04,
159187 t_TAIL_05,
159188 t_TAIL_06,
159189 t_TAIL_07,
159190 t_TAIL_08,
159191 t_TAIL_09,
159192 t_TAIL_10,
159193 t_TAIL_11,
159194 t_TAIL_12,
159195 BSLS_COMPILERFEATURES_FILLT( 6)>::variant(bsl::allocator_arg_t,
159196 allocator_type allocator,
159198 const t_ARG_01& arg_01,
159199 const t_ARG_02& arg_02,
159200 const t_ARG_03& arg_03,
159201 const t_ARG_04& arg_04,
159202 const t_ARG_05& arg_05,
159203 const t_ARG_06& arg_06,
159204 const t_ARG_07& arg_07,
159205 const t_ARG_08& arg_08,
159206 const t_ARG_09& arg_09,
159207 const t_ARG_10& arg_10)
159208: Variant_Base(bsl::allocator_arg_t(),
159209 allocator,
159210 bsl::in_place_index_t<t_INDEX>(),
159211 arg_01,
159212 arg_02,
159213 arg_03,
159214 arg_04,
159215 arg_05,
159216 arg_06,
159217 arg_07,
159218 arg_08,
159219 arg_09,
159220 arg_10)
159221{
159222}
159223#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
159224
159225#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
159226template <class t_HEAD, class t_TAIL_01,
159227 class t_TAIL_02,
159228 class t_TAIL_03,
159229 class t_TAIL_04,
159230 class t_TAIL_05,
159231 class t_TAIL_06,
159232 class t_TAIL_07,
159233 class t_TAIL_08,
159234 class t_TAIL_09,
159235 class t_TAIL_10,
159236 class t_TAIL_11,
159237 class t_TAIL_12,
159238 class t_TAIL_13>
159239template <size_t t_INDEX,
159240 class t_ARG_01,
159241 class t_ARG_02,
159242 class t_ARG_03,
159243 class t_ARG_04,
159244 class t_ARG_05,
159245 class t_ARG_06,
159246 class t_ARG_07,
159247 class t_ARG_08,
159248 class t_ARG_09,
159249 class t_ARG_10>
159250inline
159251variant<t_HEAD, t_TAIL_01,
159252 t_TAIL_02,
159253 t_TAIL_03,
159254 t_TAIL_04,
159255 t_TAIL_05,
159256 t_TAIL_06,
159257 t_TAIL_07,
159258 t_TAIL_08,
159259 t_TAIL_09,
159260 t_TAIL_10,
159261 t_TAIL_11,
159262 t_TAIL_12,
159263 t_TAIL_13,
159264 BSLS_COMPILERFEATURES_FILLT( 5)>::variant(bsl::allocator_arg_t,
159265 allocator_type allocator,
159267 const t_ARG_01& arg_01,
159268 const t_ARG_02& arg_02,
159269 const t_ARG_03& arg_03,
159270 const t_ARG_04& arg_04,
159271 const t_ARG_05& arg_05,
159272 const t_ARG_06& arg_06,
159273 const t_ARG_07& arg_07,
159274 const t_ARG_08& arg_08,
159275 const t_ARG_09& arg_09,
159276 const t_ARG_10& arg_10)
159277: Variant_Base(bsl::allocator_arg_t(),
159278 allocator,
159279 bsl::in_place_index_t<t_INDEX>(),
159280 arg_01,
159281 arg_02,
159282 arg_03,
159283 arg_04,
159284 arg_05,
159285 arg_06,
159286 arg_07,
159287 arg_08,
159288 arg_09,
159289 arg_10)
159290{
159291}
159292#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
159293
159294#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
159295template <class t_HEAD, class t_TAIL_01,
159296 class t_TAIL_02,
159297 class t_TAIL_03,
159298 class t_TAIL_04,
159299 class t_TAIL_05,
159300 class t_TAIL_06,
159301 class t_TAIL_07,
159302 class t_TAIL_08,
159303 class t_TAIL_09,
159304 class t_TAIL_10,
159305 class t_TAIL_11,
159306 class t_TAIL_12,
159307 class t_TAIL_13,
159308 class t_TAIL_14>
159309template <size_t t_INDEX,
159310 class t_ARG_01,
159311 class t_ARG_02,
159312 class t_ARG_03,
159313 class t_ARG_04,
159314 class t_ARG_05,
159315 class t_ARG_06,
159316 class t_ARG_07,
159317 class t_ARG_08,
159318 class t_ARG_09,
159319 class t_ARG_10>
159320inline
159321variant<t_HEAD, t_TAIL_01,
159322 t_TAIL_02,
159323 t_TAIL_03,
159324 t_TAIL_04,
159325 t_TAIL_05,
159326 t_TAIL_06,
159327 t_TAIL_07,
159328 t_TAIL_08,
159329 t_TAIL_09,
159330 t_TAIL_10,
159331 t_TAIL_11,
159332 t_TAIL_12,
159333 t_TAIL_13,
159334 t_TAIL_14,
159335 BSLS_COMPILERFEATURES_FILLT( 4)>::variant(bsl::allocator_arg_t,
159336 allocator_type allocator,
159338 const t_ARG_01& arg_01,
159339 const t_ARG_02& arg_02,
159340 const t_ARG_03& arg_03,
159341 const t_ARG_04& arg_04,
159342 const t_ARG_05& arg_05,
159343 const t_ARG_06& arg_06,
159344 const t_ARG_07& arg_07,
159345 const t_ARG_08& arg_08,
159346 const t_ARG_09& arg_09,
159347 const t_ARG_10& arg_10)
159348: Variant_Base(bsl::allocator_arg_t(),
159349 allocator,
159350 bsl::in_place_index_t<t_INDEX>(),
159351 arg_01,
159352 arg_02,
159353 arg_03,
159354 arg_04,
159355 arg_05,
159356 arg_06,
159357 arg_07,
159358 arg_08,
159359 arg_09,
159360 arg_10)
159361{
159362}
159363#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
159364
159365#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
159366template <class t_HEAD, class t_TAIL_01,
159367 class t_TAIL_02,
159368 class t_TAIL_03,
159369 class t_TAIL_04,
159370 class t_TAIL_05,
159371 class t_TAIL_06,
159372 class t_TAIL_07,
159373 class t_TAIL_08,
159374 class t_TAIL_09,
159375 class t_TAIL_10,
159376 class t_TAIL_11,
159377 class t_TAIL_12,
159378 class t_TAIL_13,
159379 class t_TAIL_14,
159380 class t_TAIL_15>
159381template <size_t t_INDEX,
159382 class t_ARG_01,
159383 class t_ARG_02,
159384 class t_ARG_03,
159385 class t_ARG_04,
159386 class t_ARG_05,
159387 class t_ARG_06,
159388 class t_ARG_07,
159389 class t_ARG_08,
159390 class t_ARG_09,
159391 class t_ARG_10>
159392inline
159393variant<t_HEAD, t_TAIL_01,
159394 t_TAIL_02,
159395 t_TAIL_03,
159396 t_TAIL_04,
159397 t_TAIL_05,
159398 t_TAIL_06,
159399 t_TAIL_07,
159400 t_TAIL_08,
159401 t_TAIL_09,
159402 t_TAIL_10,
159403 t_TAIL_11,
159404 t_TAIL_12,
159405 t_TAIL_13,
159406 t_TAIL_14,
159407 t_TAIL_15,
159408 BSLS_COMPILERFEATURES_FILLT( 3)>::variant(bsl::allocator_arg_t,
159409 allocator_type allocator,
159411 const t_ARG_01& arg_01,
159412 const t_ARG_02& arg_02,
159413 const t_ARG_03& arg_03,
159414 const t_ARG_04& arg_04,
159415 const t_ARG_05& arg_05,
159416 const t_ARG_06& arg_06,
159417 const t_ARG_07& arg_07,
159418 const t_ARG_08& arg_08,
159419 const t_ARG_09& arg_09,
159420 const t_ARG_10& arg_10)
159421: Variant_Base(bsl::allocator_arg_t(),
159422 allocator,
159423 bsl::in_place_index_t<t_INDEX>(),
159424 arg_01,
159425 arg_02,
159426 arg_03,
159427 arg_04,
159428 arg_05,
159429 arg_06,
159430 arg_07,
159431 arg_08,
159432 arg_09,
159433 arg_10)
159434{
159435}
159436#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
159437
159438#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
159439template <class t_HEAD, class t_TAIL_01,
159440 class t_TAIL_02,
159441 class t_TAIL_03,
159442 class t_TAIL_04,
159443 class t_TAIL_05,
159444 class t_TAIL_06,
159445 class t_TAIL_07,
159446 class t_TAIL_08,
159447 class t_TAIL_09,
159448 class t_TAIL_10,
159449 class t_TAIL_11,
159450 class t_TAIL_12,
159451 class t_TAIL_13,
159452 class t_TAIL_14,
159453 class t_TAIL_15,
159454 class t_TAIL_16>
159455template <size_t t_INDEX,
159456 class t_ARG_01,
159457 class t_ARG_02,
159458 class t_ARG_03,
159459 class t_ARG_04,
159460 class t_ARG_05,
159461 class t_ARG_06,
159462 class t_ARG_07,
159463 class t_ARG_08,
159464 class t_ARG_09,
159465 class t_ARG_10>
159466inline
159467variant<t_HEAD, t_TAIL_01,
159468 t_TAIL_02,
159469 t_TAIL_03,
159470 t_TAIL_04,
159471 t_TAIL_05,
159472 t_TAIL_06,
159473 t_TAIL_07,
159474 t_TAIL_08,
159475 t_TAIL_09,
159476 t_TAIL_10,
159477 t_TAIL_11,
159478 t_TAIL_12,
159479 t_TAIL_13,
159480 t_TAIL_14,
159481 t_TAIL_15,
159482 t_TAIL_16,
159483 BSLS_COMPILERFEATURES_FILLT( 2)>::variant(bsl::allocator_arg_t,
159484 allocator_type allocator,
159486 const t_ARG_01& arg_01,
159487 const t_ARG_02& arg_02,
159488 const t_ARG_03& arg_03,
159489 const t_ARG_04& arg_04,
159490 const t_ARG_05& arg_05,
159491 const t_ARG_06& arg_06,
159492 const t_ARG_07& arg_07,
159493 const t_ARG_08& arg_08,
159494 const t_ARG_09& arg_09,
159495 const t_ARG_10& arg_10)
159496: Variant_Base(bsl::allocator_arg_t(),
159497 allocator,
159498 bsl::in_place_index_t<t_INDEX>(),
159499 arg_01,
159500 arg_02,
159501 arg_03,
159502 arg_04,
159503 arg_05,
159504 arg_06,
159505 arg_07,
159506 arg_08,
159507 arg_09,
159508 arg_10)
159509{
159510}
159511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
159512
159513#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
159514template <class t_HEAD, class t_TAIL_01,
159515 class t_TAIL_02,
159516 class t_TAIL_03,
159517 class t_TAIL_04,
159518 class t_TAIL_05,
159519 class t_TAIL_06,
159520 class t_TAIL_07,
159521 class t_TAIL_08,
159522 class t_TAIL_09,
159523 class t_TAIL_10,
159524 class t_TAIL_11,
159525 class t_TAIL_12,
159526 class t_TAIL_13,
159527 class t_TAIL_14,
159528 class t_TAIL_15,
159529 class t_TAIL_16,
159530 class t_TAIL_17>
159531template <size_t t_INDEX,
159532 class t_ARG_01,
159533 class t_ARG_02,
159534 class t_ARG_03,
159535 class t_ARG_04,
159536 class t_ARG_05,
159537 class t_ARG_06,
159538 class t_ARG_07,
159539 class t_ARG_08,
159540 class t_ARG_09,
159541 class t_ARG_10>
159542inline
159543variant<t_HEAD, t_TAIL_01,
159544 t_TAIL_02,
159545 t_TAIL_03,
159546 t_TAIL_04,
159547 t_TAIL_05,
159548 t_TAIL_06,
159549 t_TAIL_07,
159550 t_TAIL_08,
159551 t_TAIL_09,
159552 t_TAIL_10,
159553 t_TAIL_11,
159554 t_TAIL_12,
159555 t_TAIL_13,
159556 t_TAIL_14,
159557 t_TAIL_15,
159558 t_TAIL_16,
159559 t_TAIL_17,
159560 BSLS_COMPILERFEATURES_FILLT( 1)>::variant(bsl::allocator_arg_t,
159561 allocator_type allocator,
159563 const t_ARG_01& arg_01,
159564 const t_ARG_02& arg_02,
159565 const t_ARG_03& arg_03,
159566 const t_ARG_04& arg_04,
159567 const t_ARG_05& arg_05,
159568 const t_ARG_06& arg_06,
159569 const t_ARG_07& arg_07,
159570 const t_ARG_08& arg_08,
159571 const t_ARG_09& arg_09,
159572 const t_ARG_10& arg_10)
159573: Variant_Base(bsl::allocator_arg_t(),
159574 allocator,
159575 bsl::in_place_index_t<t_INDEX>(),
159576 arg_01,
159577 arg_02,
159578 arg_03,
159579 arg_04,
159580 arg_05,
159581 arg_06,
159582 arg_07,
159583 arg_08,
159584 arg_09,
159585 arg_10)
159586{
159587}
159588#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
159589
159590#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
159591template <class t_HEAD, class t_TAIL_01,
159592 class t_TAIL_02,
159593 class t_TAIL_03,
159594 class t_TAIL_04,
159595 class t_TAIL_05,
159596 class t_TAIL_06,
159597 class t_TAIL_07,
159598 class t_TAIL_08,
159599 class t_TAIL_09,
159600 class t_TAIL_10,
159601 class t_TAIL_11,
159602 class t_TAIL_12,
159603 class t_TAIL_13,
159604 class t_TAIL_14,
159605 class t_TAIL_15,
159606 class t_TAIL_16,
159607 class t_TAIL_17,
159608 class t_TAIL_18>
159609template <size_t t_INDEX,
159610 class t_ARG_01,
159611 class t_ARG_02,
159612 class t_ARG_03,
159613 class t_ARG_04,
159614 class t_ARG_05,
159615 class t_ARG_06,
159616 class t_ARG_07,
159617 class t_ARG_08,
159618 class t_ARG_09,
159619 class t_ARG_10>
159620inline
159621variant<t_HEAD, t_TAIL_01,
159622 t_TAIL_02,
159623 t_TAIL_03,
159624 t_TAIL_04,
159625 t_TAIL_05,
159626 t_TAIL_06,
159627 t_TAIL_07,
159628 t_TAIL_08,
159629 t_TAIL_09,
159630 t_TAIL_10,
159631 t_TAIL_11,
159632 t_TAIL_12,
159633 t_TAIL_13,
159634 t_TAIL_14,
159635 t_TAIL_15,
159636 t_TAIL_16,
159637 t_TAIL_17,
159638 t_TAIL_18,
159639 BSLS_COMPILERFEATURES_FILLT( 0)>::variant(bsl::allocator_arg_t,
159640 allocator_type allocator,
159642 const t_ARG_01& arg_01,
159643 const t_ARG_02& arg_02,
159644 const t_ARG_03& arg_03,
159645 const t_ARG_04& arg_04,
159646 const t_ARG_05& arg_05,
159647 const t_ARG_06& arg_06,
159648 const t_ARG_07& arg_07,
159649 const t_ARG_08& arg_08,
159650 const t_ARG_09& arg_09,
159651 const t_ARG_10& arg_10)
159652: Variant_Base(bsl::allocator_arg_t(),
159653 allocator,
159654 bsl::in_place_index_t<t_INDEX>(),
159655 arg_01,
159656 arg_02,
159657 arg_03,
159658 arg_04,
159659 arg_05,
159660 arg_06,
159661 arg_07,
159662 arg_08,
159663 arg_09,
159664 arg_10)
159665{
159666}
159667#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
159668
159669
159670#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
159671template <class t_HEAD>
159672template <class t_TYPE>
159673typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159674 t_TYPE,
159675 variant<t_HEAD> >::value,
159676 t_TYPE&>::type
159677variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::emplace()
159678{
159679 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159680
159681 Variant_Base::template baseEmplace<index>();
159682
159683 return bsl::get<index>(*this);
159684}
159685#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
159686
159687#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
159688template <class t_HEAD, class t_TAIL_01>
159689template <class t_TYPE>
159690typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159691 t_TYPE,
159692 variant<t_HEAD, t_TAIL_01> >::value,
159693 t_TYPE&>::type
159694variant<t_HEAD, t_TAIL_01,
159695 BSLS_COMPILERFEATURES_FILLT(17)>::emplace()
159696{
159697 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159698
159699 Variant_Base::template baseEmplace<index>();
159700
159701 return bsl::get<index>(*this);
159702}
159703#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
159704
159705#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
159706template <class t_HEAD, class t_TAIL_01,
159707 class t_TAIL_02>
159708template <class t_TYPE>
159709typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159710 t_TYPE,
159711 variant<t_HEAD, t_TAIL_01,
159712 t_TAIL_02> >::value,
159713 t_TYPE&>::type
159714variant<t_HEAD, t_TAIL_01,
159715 t_TAIL_02,
159716 BSLS_COMPILERFEATURES_FILLT(16)>::emplace()
159717{
159718 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159719
159720 Variant_Base::template baseEmplace<index>();
159721
159722 return bsl::get<index>(*this);
159723}
159724#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
159725
159726#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
159727template <class t_HEAD, class t_TAIL_01,
159728 class t_TAIL_02,
159729 class t_TAIL_03>
159730template <class t_TYPE>
159731typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159732 t_TYPE,
159733 variant<t_HEAD, t_TAIL_01,
159734 t_TAIL_02,
159735 t_TAIL_03> >::value,
159736 t_TYPE&>::type
159737variant<t_HEAD, t_TAIL_01,
159738 t_TAIL_02,
159739 t_TAIL_03,
159740 BSLS_COMPILERFEATURES_FILLT(15)>::emplace()
159741{
159742 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159743
159744 Variant_Base::template baseEmplace<index>();
159745
159746 return bsl::get<index>(*this);
159747}
159748#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
159749
159750#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
159751template <class t_HEAD, class t_TAIL_01,
159752 class t_TAIL_02,
159753 class t_TAIL_03,
159754 class t_TAIL_04>
159755template <class t_TYPE>
159756typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159757 t_TYPE,
159758 variant<t_HEAD, t_TAIL_01,
159759 t_TAIL_02,
159760 t_TAIL_03,
159761 t_TAIL_04> >::value,
159762 t_TYPE&>::type
159763variant<t_HEAD, t_TAIL_01,
159764 t_TAIL_02,
159765 t_TAIL_03,
159766 t_TAIL_04,
159767 BSLS_COMPILERFEATURES_FILLT(14)>::emplace()
159768{
159769 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159770
159771 Variant_Base::template baseEmplace<index>();
159772
159773 return bsl::get<index>(*this);
159774}
159775#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
159776
159777#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
159778template <class t_HEAD, class t_TAIL_01,
159779 class t_TAIL_02,
159780 class t_TAIL_03,
159781 class t_TAIL_04,
159782 class t_TAIL_05>
159783template <class t_TYPE>
159784typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159785 t_TYPE,
159786 variant<t_HEAD, t_TAIL_01,
159787 t_TAIL_02,
159788 t_TAIL_03,
159789 t_TAIL_04,
159790 t_TAIL_05> >::value,
159791 t_TYPE&>::type
159792variant<t_HEAD, t_TAIL_01,
159793 t_TAIL_02,
159794 t_TAIL_03,
159795 t_TAIL_04,
159796 t_TAIL_05,
159797 BSLS_COMPILERFEATURES_FILLT(13)>::emplace()
159798{
159799 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159800
159801 Variant_Base::template baseEmplace<index>();
159802
159803 return bsl::get<index>(*this);
159804}
159805#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
159806
159807#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
159808template <class t_HEAD, class t_TAIL_01,
159809 class t_TAIL_02,
159810 class t_TAIL_03,
159811 class t_TAIL_04,
159812 class t_TAIL_05,
159813 class t_TAIL_06>
159814template <class t_TYPE>
159815typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159816 t_TYPE,
159817 variant<t_HEAD, t_TAIL_01,
159818 t_TAIL_02,
159819 t_TAIL_03,
159820 t_TAIL_04,
159821 t_TAIL_05,
159822 t_TAIL_06> >::value,
159823 t_TYPE&>::type
159824variant<t_HEAD, t_TAIL_01,
159825 t_TAIL_02,
159826 t_TAIL_03,
159827 t_TAIL_04,
159828 t_TAIL_05,
159829 t_TAIL_06,
159830 BSLS_COMPILERFEATURES_FILLT(12)>::emplace()
159831{
159832 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159833
159834 Variant_Base::template baseEmplace<index>();
159835
159836 return bsl::get<index>(*this);
159837}
159838#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
159839
159840#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
159841template <class t_HEAD, class t_TAIL_01,
159842 class t_TAIL_02,
159843 class t_TAIL_03,
159844 class t_TAIL_04,
159845 class t_TAIL_05,
159846 class t_TAIL_06,
159847 class t_TAIL_07>
159848template <class t_TYPE>
159849typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159850 t_TYPE,
159851 variant<t_HEAD, t_TAIL_01,
159852 t_TAIL_02,
159853 t_TAIL_03,
159854 t_TAIL_04,
159855 t_TAIL_05,
159856 t_TAIL_06,
159857 t_TAIL_07> >::value,
159858 t_TYPE&>::type
159859variant<t_HEAD, t_TAIL_01,
159860 t_TAIL_02,
159861 t_TAIL_03,
159862 t_TAIL_04,
159863 t_TAIL_05,
159864 t_TAIL_06,
159865 t_TAIL_07,
159866 BSLS_COMPILERFEATURES_FILLT(11)>::emplace()
159867{
159868 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159869
159870 Variant_Base::template baseEmplace<index>();
159871
159872 return bsl::get<index>(*this);
159873}
159874#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
159875
159876#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
159877template <class t_HEAD, class t_TAIL_01,
159878 class t_TAIL_02,
159879 class t_TAIL_03,
159880 class t_TAIL_04,
159881 class t_TAIL_05,
159882 class t_TAIL_06,
159883 class t_TAIL_07,
159884 class t_TAIL_08>
159885template <class t_TYPE>
159886typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159887 t_TYPE,
159888 variant<t_HEAD, t_TAIL_01,
159889 t_TAIL_02,
159890 t_TAIL_03,
159891 t_TAIL_04,
159892 t_TAIL_05,
159893 t_TAIL_06,
159894 t_TAIL_07,
159895 t_TAIL_08> >::value,
159896 t_TYPE&>::type
159897variant<t_HEAD, t_TAIL_01,
159898 t_TAIL_02,
159899 t_TAIL_03,
159900 t_TAIL_04,
159901 t_TAIL_05,
159902 t_TAIL_06,
159903 t_TAIL_07,
159904 t_TAIL_08,
159905 BSLS_COMPILERFEATURES_FILLT(10)>::emplace()
159906{
159907 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159908
159909 Variant_Base::template baseEmplace<index>();
159910
159911 return bsl::get<index>(*this);
159912}
159913#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
159914
159915#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
159916template <class t_HEAD, class t_TAIL_01,
159917 class t_TAIL_02,
159918 class t_TAIL_03,
159919 class t_TAIL_04,
159920 class t_TAIL_05,
159921 class t_TAIL_06,
159922 class t_TAIL_07,
159923 class t_TAIL_08,
159924 class t_TAIL_09>
159925template <class t_TYPE>
159926typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159927 t_TYPE,
159928 variant<t_HEAD, t_TAIL_01,
159929 t_TAIL_02,
159930 t_TAIL_03,
159931 t_TAIL_04,
159932 t_TAIL_05,
159933 t_TAIL_06,
159934 t_TAIL_07,
159935 t_TAIL_08,
159936 t_TAIL_09> >::value,
159937 t_TYPE&>::type
159938variant<t_HEAD, t_TAIL_01,
159939 t_TAIL_02,
159940 t_TAIL_03,
159941 t_TAIL_04,
159942 t_TAIL_05,
159943 t_TAIL_06,
159944 t_TAIL_07,
159945 t_TAIL_08,
159946 t_TAIL_09,
159947 BSLS_COMPILERFEATURES_FILLT( 9)>::emplace()
159948{
159949 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159950
159951 Variant_Base::template baseEmplace<index>();
159952
159953 return bsl::get<index>(*this);
159954}
159955#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
159956
159957#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
159958template <class t_HEAD, class t_TAIL_01,
159959 class t_TAIL_02,
159960 class t_TAIL_03,
159961 class t_TAIL_04,
159962 class t_TAIL_05,
159963 class t_TAIL_06,
159964 class t_TAIL_07,
159965 class t_TAIL_08,
159966 class t_TAIL_09,
159967 class t_TAIL_10>
159968template <class t_TYPE>
159969typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
159970 t_TYPE,
159971 variant<t_HEAD, t_TAIL_01,
159972 t_TAIL_02,
159973 t_TAIL_03,
159974 t_TAIL_04,
159975 t_TAIL_05,
159976 t_TAIL_06,
159977 t_TAIL_07,
159978 t_TAIL_08,
159979 t_TAIL_09,
159980 t_TAIL_10> >::value,
159981 t_TYPE&>::type
159982variant<t_HEAD, t_TAIL_01,
159983 t_TAIL_02,
159984 t_TAIL_03,
159985 t_TAIL_04,
159986 t_TAIL_05,
159987 t_TAIL_06,
159988 t_TAIL_07,
159989 t_TAIL_08,
159990 t_TAIL_09,
159991 t_TAIL_10,
159992 BSLS_COMPILERFEATURES_FILLT( 8)>::emplace()
159993{
159994 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
159995
159996 Variant_Base::template baseEmplace<index>();
159997
159998 return bsl::get<index>(*this);
159999}
160000#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
160001
160002#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
160003template <class t_HEAD, class t_TAIL_01,
160004 class t_TAIL_02,
160005 class t_TAIL_03,
160006 class t_TAIL_04,
160007 class t_TAIL_05,
160008 class t_TAIL_06,
160009 class t_TAIL_07,
160010 class t_TAIL_08,
160011 class t_TAIL_09,
160012 class t_TAIL_10,
160013 class t_TAIL_11>
160014template <class t_TYPE>
160015typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160016 t_TYPE,
160017 variant<t_HEAD, t_TAIL_01,
160018 t_TAIL_02,
160019 t_TAIL_03,
160020 t_TAIL_04,
160021 t_TAIL_05,
160022 t_TAIL_06,
160023 t_TAIL_07,
160024 t_TAIL_08,
160025 t_TAIL_09,
160026 t_TAIL_10,
160027 t_TAIL_11> >::value,
160028 t_TYPE&>::type
160029variant<t_HEAD, t_TAIL_01,
160030 t_TAIL_02,
160031 t_TAIL_03,
160032 t_TAIL_04,
160033 t_TAIL_05,
160034 t_TAIL_06,
160035 t_TAIL_07,
160036 t_TAIL_08,
160037 t_TAIL_09,
160038 t_TAIL_10,
160039 t_TAIL_11,
160040 BSLS_COMPILERFEATURES_FILLT( 7)>::emplace()
160041{
160042 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160043
160044 Variant_Base::template baseEmplace<index>();
160045
160046 return bsl::get<index>(*this);
160047}
160048#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
160049
160050#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
160051template <class t_HEAD, class t_TAIL_01,
160052 class t_TAIL_02,
160053 class t_TAIL_03,
160054 class t_TAIL_04,
160055 class t_TAIL_05,
160056 class t_TAIL_06,
160057 class t_TAIL_07,
160058 class t_TAIL_08,
160059 class t_TAIL_09,
160060 class t_TAIL_10,
160061 class t_TAIL_11,
160062 class t_TAIL_12>
160063template <class t_TYPE>
160064typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160065 t_TYPE,
160066 variant<t_HEAD, t_TAIL_01,
160067 t_TAIL_02,
160068 t_TAIL_03,
160069 t_TAIL_04,
160070 t_TAIL_05,
160071 t_TAIL_06,
160072 t_TAIL_07,
160073 t_TAIL_08,
160074 t_TAIL_09,
160075 t_TAIL_10,
160076 t_TAIL_11,
160077 t_TAIL_12> >::value,
160078 t_TYPE&>::type
160079variant<t_HEAD, t_TAIL_01,
160080 t_TAIL_02,
160081 t_TAIL_03,
160082 t_TAIL_04,
160083 t_TAIL_05,
160084 t_TAIL_06,
160085 t_TAIL_07,
160086 t_TAIL_08,
160087 t_TAIL_09,
160088 t_TAIL_10,
160089 t_TAIL_11,
160090 t_TAIL_12,
160091 BSLS_COMPILERFEATURES_FILLT( 6)>::emplace()
160092{
160093 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160094
160095 Variant_Base::template baseEmplace<index>();
160096
160097 return bsl::get<index>(*this);
160098}
160099#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
160100
160101#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
160102template <class t_HEAD, class t_TAIL_01,
160103 class t_TAIL_02,
160104 class t_TAIL_03,
160105 class t_TAIL_04,
160106 class t_TAIL_05,
160107 class t_TAIL_06,
160108 class t_TAIL_07,
160109 class t_TAIL_08,
160110 class t_TAIL_09,
160111 class t_TAIL_10,
160112 class t_TAIL_11,
160113 class t_TAIL_12,
160114 class t_TAIL_13>
160115template <class t_TYPE>
160116typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160117 t_TYPE,
160118 variant<t_HEAD, t_TAIL_01,
160119 t_TAIL_02,
160120 t_TAIL_03,
160121 t_TAIL_04,
160122 t_TAIL_05,
160123 t_TAIL_06,
160124 t_TAIL_07,
160125 t_TAIL_08,
160126 t_TAIL_09,
160127 t_TAIL_10,
160128 t_TAIL_11,
160129 t_TAIL_12,
160130 t_TAIL_13> >::value,
160131 t_TYPE&>::type
160132variant<t_HEAD, t_TAIL_01,
160133 t_TAIL_02,
160134 t_TAIL_03,
160135 t_TAIL_04,
160136 t_TAIL_05,
160137 t_TAIL_06,
160138 t_TAIL_07,
160139 t_TAIL_08,
160140 t_TAIL_09,
160141 t_TAIL_10,
160142 t_TAIL_11,
160143 t_TAIL_12,
160144 t_TAIL_13,
160145 BSLS_COMPILERFEATURES_FILLT( 5)>::emplace()
160146{
160147 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160148
160149 Variant_Base::template baseEmplace<index>();
160150
160151 return bsl::get<index>(*this);
160152}
160153#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
160154
160155#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
160156template <class t_HEAD, class t_TAIL_01,
160157 class t_TAIL_02,
160158 class t_TAIL_03,
160159 class t_TAIL_04,
160160 class t_TAIL_05,
160161 class t_TAIL_06,
160162 class t_TAIL_07,
160163 class t_TAIL_08,
160164 class t_TAIL_09,
160165 class t_TAIL_10,
160166 class t_TAIL_11,
160167 class t_TAIL_12,
160168 class t_TAIL_13,
160169 class t_TAIL_14>
160170template <class t_TYPE>
160171typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160172 t_TYPE,
160173 variant<t_HEAD, t_TAIL_01,
160174 t_TAIL_02,
160175 t_TAIL_03,
160176 t_TAIL_04,
160177 t_TAIL_05,
160178 t_TAIL_06,
160179 t_TAIL_07,
160180 t_TAIL_08,
160181 t_TAIL_09,
160182 t_TAIL_10,
160183 t_TAIL_11,
160184 t_TAIL_12,
160185 t_TAIL_13,
160186 t_TAIL_14> >::value,
160187 t_TYPE&>::type
160188variant<t_HEAD, t_TAIL_01,
160189 t_TAIL_02,
160190 t_TAIL_03,
160191 t_TAIL_04,
160192 t_TAIL_05,
160193 t_TAIL_06,
160194 t_TAIL_07,
160195 t_TAIL_08,
160196 t_TAIL_09,
160197 t_TAIL_10,
160198 t_TAIL_11,
160199 t_TAIL_12,
160200 t_TAIL_13,
160201 t_TAIL_14,
160202 BSLS_COMPILERFEATURES_FILLT( 4)>::emplace()
160203{
160204 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160205
160206 Variant_Base::template baseEmplace<index>();
160207
160208 return bsl::get<index>(*this);
160209}
160210#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
160211
160212#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
160213template <class t_HEAD, class t_TAIL_01,
160214 class t_TAIL_02,
160215 class t_TAIL_03,
160216 class t_TAIL_04,
160217 class t_TAIL_05,
160218 class t_TAIL_06,
160219 class t_TAIL_07,
160220 class t_TAIL_08,
160221 class t_TAIL_09,
160222 class t_TAIL_10,
160223 class t_TAIL_11,
160224 class t_TAIL_12,
160225 class t_TAIL_13,
160226 class t_TAIL_14,
160227 class t_TAIL_15>
160228template <class t_TYPE>
160229typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160230 t_TYPE,
160231 variant<t_HEAD, t_TAIL_01,
160232 t_TAIL_02,
160233 t_TAIL_03,
160234 t_TAIL_04,
160235 t_TAIL_05,
160236 t_TAIL_06,
160237 t_TAIL_07,
160238 t_TAIL_08,
160239 t_TAIL_09,
160240 t_TAIL_10,
160241 t_TAIL_11,
160242 t_TAIL_12,
160243 t_TAIL_13,
160244 t_TAIL_14,
160245 t_TAIL_15> >::value,
160246 t_TYPE&>::type
160247variant<t_HEAD, t_TAIL_01,
160248 t_TAIL_02,
160249 t_TAIL_03,
160250 t_TAIL_04,
160251 t_TAIL_05,
160252 t_TAIL_06,
160253 t_TAIL_07,
160254 t_TAIL_08,
160255 t_TAIL_09,
160256 t_TAIL_10,
160257 t_TAIL_11,
160258 t_TAIL_12,
160259 t_TAIL_13,
160260 t_TAIL_14,
160261 t_TAIL_15,
160262 BSLS_COMPILERFEATURES_FILLT( 3)>::emplace()
160263{
160264 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160265
160266 Variant_Base::template baseEmplace<index>();
160267
160268 return bsl::get<index>(*this);
160269}
160270#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
160271
160272#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
160273template <class t_HEAD, class t_TAIL_01,
160274 class t_TAIL_02,
160275 class t_TAIL_03,
160276 class t_TAIL_04,
160277 class t_TAIL_05,
160278 class t_TAIL_06,
160279 class t_TAIL_07,
160280 class t_TAIL_08,
160281 class t_TAIL_09,
160282 class t_TAIL_10,
160283 class t_TAIL_11,
160284 class t_TAIL_12,
160285 class t_TAIL_13,
160286 class t_TAIL_14,
160287 class t_TAIL_15,
160288 class t_TAIL_16>
160289template <class t_TYPE>
160290typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160291 t_TYPE,
160292 variant<t_HEAD, t_TAIL_01,
160293 t_TAIL_02,
160294 t_TAIL_03,
160295 t_TAIL_04,
160296 t_TAIL_05,
160297 t_TAIL_06,
160298 t_TAIL_07,
160299 t_TAIL_08,
160300 t_TAIL_09,
160301 t_TAIL_10,
160302 t_TAIL_11,
160303 t_TAIL_12,
160304 t_TAIL_13,
160305 t_TAIL_14,
160306 t_TAIL_15,
160307 t_TAIL_16> >::value,
160308 t_TYPE&>::type
160309variant<t_HEAD, t_TAIL_01,
160310 t_TAIL_02,
160311 t_TAIL_03,
160312 t_TAIL_04,
160313 t_TAIL_05,
160314 t_TAIL_06,
160315 t_TAIL_07,
160316 t_TAIL_08,
160317 t_TAIL_09,
160318 t_TAIL_10,
160319 t_TAIL_11,
160320 t_TAIL_12,
160321 t_TAIL_13,
160322 t_TAIL_14,
160323 t_TAIL_15,
160324 t_TAIL_16,
160325 BSLS_COMPILERFEATURES_FILLT( 2)>::emplace()
160326{
160327 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160328
160329 Variant_Base::template baseEmplace<index>();
160330
160331 return bsl::get<index>(*this);
160332}
160333#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
160334
160335#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
160336template <class t_HEAD, class t_TAIL_01,
160337 class t_TAIL_02,
160338 class t_TAIL_03,
160339 class t_TAIL_04,
160340 class t_TAIL_05,
160341 class t_TAIL_06,
160342 class t_TAIL_07,
160343 class t_TAIL_08,
160344 class t_TAIL_09,
160345 class t_TAIL_10,
160346 class t_TAIL_11,
160347 class t_TAIL_12,
160348 class t_TAIL_13,
160349 class t_TAIL_14,
160350 class t_TAIL_15,
160351 class t_TAIL_16,
160352 class t_TAIL_17>
160353template <class t_TYPE>
160354typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160355 t_TYPE,
160356 variant<t_HEAD, t_TAIL_01,
160357 t_TAIL_02,
160358 t_TAIL_03,
160359 t_TAIL_04,
160360 t_TAIL_05,
160361 t_TAIL_06,
160362 t_TAIL_07,
160363 t_TAIL_08,
160364 t_TAIL_09,
160365 t_TAIL_10,
160366 t_TAIL_11,
160367 t_TAIL_12,
160368 t_TAIL_13,
160369 t_TAIL_14,
160370 t_TAIL_15,
160371 t_TAIL_16,
160372 t_TAIL_17> >::value,
160373 t_TYPE&>::type
160374variant<t_HEAD, t_TAIL_01,
160375 t_TAIL_02,
160376 t_TAIL_03,
160377 t_TAIL_04,
160378 t_TAIL_05,
160379 t_TAIL_06,
160380 t_TAIL_07,
160381 t_TAIL_08,
160382 t_TAIL_09,
160383 t_TAIL_10,
160384 t_TAIL_11,
160385 t_TAIL_12,
160386 t_TAIL_13,
160387 t_TAIL_14,
160388 t_TAIL_15,
160389 t_TAIL_16,
160390 t_TAIL_17,
160391 BSLS_COMPILERFEATURES_FILLT( 1)>::emplace()
160392{
160393 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160394
160395 Variant_Base::template baseEmplace<index>();
160396
160397 return bsl::get<index>(*this);
160398}
160399#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
160400
160401#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
160402template <class t_HEAD, class t_TAIL_01,
160403 class t_TAIL_02,
160404 class t_TAIL_03,
160405 class t_TAIL_04,
160406 class t_TAIL_05,
160407 class t_TAIL_06,
160408 class t_TAIL_07,
160409 class t_TAIL_08,
160410 class t_TAIL_09,
160411 class t_TAIL_10,
160412 class t_TAIL_11,
160413 class t_TAIL_12,
160414 class t_TAIL_13,
160415 class t_TAIL_14,
160416 class t_TAIL_15,
160417 class t_TAIL_16,
160418 class t_TAIL_17,
160419 class t_TAIL_18>
160420template <class t_TYPE>
160421typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160422 t_TYPE,
160423 variant<t_HEAD, t_TAIL_01,
160424 t_TAIL_02,
160425 t_TAIL_03,
160426 t_TAIL_04,
160427 t_TAIL_05,
160428 t_TAIL_06,
160429 t_TAIL_07,
160430 t_TAIL_08,
160431 t_TAIL_09,
160432 t_TAIL_10,
160433 t_TAIL_11,
160434 t_TAIL_12,
160435 t_TAIL_13,
160436 t_TAIL_14,
160437 t_TAIL_15,
160438 t_TAIL_16,
160439 t_TAIL_17,
160440 t_TAIL_18> >::value,
160441 t_TYPE&>::type
160442variant<t_HEAD, t_TAIL_01,
160443 t_TAIL_02,
160444 t_TAIL_03,
160445 t_TAIL_04,
160446 t_TAIL_05,
160447 t_TAIL_06,
160448 t_TAIL_07,
160449 t_TAIL_08,
160450 t_TAIL_09,
160451 t_TAIL_10,
160452 t_TAIL_11,
160453 t_TAIL_12,
160454 t_TAIL_13,
160455 t_TAIL_14,
160456 t_TAIL_15,
160457 t_TAIL_16,
160458 t_TAIL_17,
160459 t_TAIL_18,
160460 BSLS_COMPILERFEATURES_FILLT( 0)>::emplace()
160461{
160462 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160463
160464 Variant_Base::template baseEmplace<index>();
160465
160466 return bsl::get<index>(*this);
160467}
160468#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
160469
160470
160471#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
160472template <class t_HEAD>
160473template <class t_TYPE, class t_ARG_01>
160474typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160475 t_TYPE,
160476 variant<t_HEAD> >::value,
160477 t_TYPE&>::type
160478variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
160479 >::emplace(const t_ARG_01& arg_01)
160480{
160481 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160482
160483 Variant_Base::template baseEmplace<index>(arg_01);
160484
160485 return bsl::get<index>(*this);
160486}
160487#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
160488
160489#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
160490template <class t_HEAD, class t_TAIL_01>
160491template <class t_TYPE, class t_ARG_01>
160492typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160493 t_TYPE,
160494 variant<t_HEAD, t_TAIL_01> >::value,
160495 t_TYPE&>::type
160496variant<t_HEAD, t_TAIL_01,
160497 BSLS_COMPILERFEATURES_FILLT(17)
160498 >::emplace(const t_ARG_01& arg_01)
160499{
160500 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160501
160502 Variant_Base::template baseEmplace<index>(arg_01);
160503
160504 return bsl::get<index>(*this);
160505}
160506#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
160507
160508#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
160509template <class t_HEAD, class t_TAIL_01,
160510 class t_TAIL_02>
160511template <class t_TYPE, class t_ARG_01>
160512typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160513 t_TYPE,
160514 variant<t_HEAD, t_TAIL_01,
160515 t_TAIL_02> >::value,
160516 t_TYPE&>::type
160517variant<t_HEAD, t_TAIL_01,
160518 t_TAIL_02,
160519 BSLS_COMPILERFEATURES_FILLT(16)
160520 >::emplace(const t_ARG_01& arg_01)
160521{
160522 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160523
160524 Variant_Base::template baseEmplace<index>(arg_01);
160525
160526 return bsl::get<index>(*this);
160527}
160528#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
160529
160530#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
160531template <class t_HEAD, class t_TAIL_01,
160532 class t_TAIL_02,
160533 class t_TAIL_03>
160534template <class t_TYPE, class t_ARG_01>
160535typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160536 t_TYPE,
160537 variant<t_HEAD, t_TAIL_01,
160538 t_TAIL_02,
160539 t_TAIL_03> >::value,
160540 t_TYPE&>::type
160541variant<t_HEAD, t_TAIL_01,
160542 t_TAIL_02,
160543 t_TAIL_03,
160544 BSLS_COMPILERFEATURES_FILLT(15)
160545 >::emplace(const t_ARG_01& arg_01)
160546{
160547 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160548
160549 Variant_Base::template baseEmplace<index>(arg_01);
160550
160551 return bsl::get<index>(*this);
160552}
160553#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
160554
160555#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
160556template <class t_HEAD, class t_TAIL_01,
160557 class t_TAIL_02,
160558 class t_TAIL_03,
160559 class t_TAIL_04>
160560template <class t_TYPE, class t_ARG_01>
160561typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160562 t_TYPE,
160563 variant<t_HEAD, t_TAIL_01,
160564 t_TAIL_02,
160565 t_TAIL_03,
160566 t_TAIL_04> >::value,
160567 t_TYPE&>::type
160568variant<t_HEAD, t_TAIL_01,
160569 t_TAIL_02,
160570 t_TAIL_03,
160571 t_TAIL_04,
160572 BSLS_COMPILERFEATURES_FILLT(14)
160573 >::emplace(const t_ARG_01& arg_01)
160574{
160575 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160576
160577 Variant_Base::template baseEmplace<index>(arg_01);
160578
160579 return bsl::get<index>(*this);
160580}
160581#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
160582
160583#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
160584template <class t_HEAD, class t_TAIL_01,
160585 class t_TAIL_02,
160586 class t_TAIL_03,
160587 class t_TAIL_04,
160588 class t_TAIL_05>
160589template <class t_TYPE, class t_ARG_01>
160590typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160591 t_TYPE,
160592 variant<t_HEAD, t_TAIL_01,
160593 t_TAIL_02,
160594 t_TAIL_03,
160595 t_TAIL_04,
160596 t_TAIL_05> >::value,
160597 t_TYPE&>::type
160598variant<t_HEAD, t_TAIL_01,
160599 t_TAIL_02,
160600 t_TAIL_03,
160601 t_TAIL_04,
160602 t_TAIL_05,
160603 BSLS_COMPILERFEATURES_FILLT(13)
160604 >::emplace(const t_ARG_01& arg_01)
160605{
160606 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160607
160608 Variant_Base::template baseEmplace<index>(arg_01);
160609
160610 return bsl::get<index>(*this);
160611}
160612#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
160613
160614#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
160615template <class t_HEAD, class t_TAIL_01,
160616 class t_TAIL_02,
160617 class t_TAIL_03,
160618 class t_TAIL_04,
160619 class t_TAIL_05,
160620 class t_TAIL_06>
160621template <class t_TYPE, class t_ARG_01>
160622typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160623 t_TYPE,
160624 variant<t_HEAD, t_TAIL_01,
160625 t_TAIL_02,
160626 t_TAIL_03,
160627 t_TAIL_04,
160628 t_TAIL_05,
160629 t_TAIL_06> >::value,
160630 t_TYPE&>::type
160631variant<t_HEAD, t_TAIL_01,
160632 t_TAIL_02,
160633 t_TAIL_03,
160634 t_TAIL_04,
160635 t_TAIL_05,
160636 t_TAIL_06,
160637 BSLS_COMPILERFEATURES_FILLT(12)
160638 >::emplace(const t_ARG_01& arg_01)
160639{
160640 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160641
160642 Variant_Base::template baseEmplace<index>(arg_01);
160643
160644 return bsl::get<index>(*this);
160645}
160646#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
160647
160648#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
160649template <class t_HEAD, class t_TAIL_01,
160650 class t_TAIL_02,
160651 class t_TAIL_03,
160652 class t_TAIL_04,
160653 class t_TAIL_05,
160654 class t_TAIL_06,
160655 class t_TAIL_07>
160656template <class t_TYPE, class t_ARG_01>
160657typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160658 t_TYPE,
160659 variant<t_HEAD, t_TAIL_01,
160660 t_TAIL_02,
160661 t_TAIL_03,
160662 t_TAIL_04,
160663 t_TAIL_05,
160664 t_TAIL_06,
160665 t_TAIL_07> >::value,
160666 t_TYPE&>::type
160667variant<t_HEAD, t_TAIL_01,
160668 t_TAIL_02,
160669 t_TAIL_03,
160670 t_TAIL_04,
160671 t_TAIL_05,
160672 t_TAIL_06,
160673 t_TAIL_07,
160674 BSLS_COMPILERFEATURES_FILLT(11)
160675 >::emplace(const t_ARG_01& arg_01)
160676{
160677 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160678
160679 Variant_Base::template baseEmplace<index>(arg_01);
160680
160681 return bsl::get<index>(*this);
160682}
160683#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
160684
160685#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
160686template <class t_HEAD, class t_TAIL_01,
160687 class t_TAIL_02,
160688 class t_TAIL_03,
160689 class t_TAIL_04,
160690 class t_TAIL_05,
160691 class t_TAIL_06,
160692 class t_TAIL_07,
160693 class t_TAIL_08>
160694template <class t_TYPE, class t_ARG_01>
160695typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160696 t_TYPE,
160697 variant<t_HEAD, t_TAIL_01,
160698 t_TAIL_02,
160699 t_TAIL_03,
160700 t_TAIL_04,
160701 t_TAIL_05,
160702 t_TAIL_06,
160703 t_TAIL_07,
160704 t_TAIL_08> >::value,
160705 t_TYPE&>::type
160706variant<t_HEAD, t_TAIL_01,
160707 t_TAIL_02,
160708 t_TAIL_03,
160709 t_TAIL_04,
160710 t_TAIL_05,
160711 t_TAIL_06,
160712 t_TAIL_07,
160713 t_TAIL_08,
160714 BSLS_COMPILERFEATURES_FILLT(10)
160715 >::emplace(const t_ARG_01& arg_01)
160716{
160717 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160718
160719 Variant_Base::template baseEmplace<index>(arg_01);
160720
160721 return bsl::get<index>(*this);
160722}
160723#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
160724
160725#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
160726template <class t_HEAD, class t_TAIL_01,
160727 class t_TAIL_02,
160728 class t_TAIL_03,
160729 class t_TAIL_04,
160730 class t_TAIL_05,
160731 class t_TAIL_06,
160732 class t_TAIL_07,
160733 class t_TAIL_08,
160734 class t_TAIL_09>
160735template <class t_TYPE, class t_ARG_01>
160736typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160737 t_TYPE,
160738 variant<t_HEAD, t_TAIL_01,
160739 t_TAIL_02,
160740 t_TAIL_03,
160741 t_TAIL_04,
160742 t_TAIL_05,
160743 t_TAIL_06,
160744 t_TAIL_07,
160745 t_TAIL_08,
160746 t_TAIL_09> >::value,
160747 t_TYPE&>::type
160748variant<t_HEAD, t_TAIL_01,
160749 t_TAIL_02,
160750 t_TAIL_03,
160751 t_TAIL_04,
160752 t_TAIL_05,
160753 t_TAIL_06,
160754 t_TAIL_07,
160755 t_TAIL_08,
160756 t_TAIL_09,
160757 BSLS_COMPILERFEATURES_FILLT( 9)
160758 >::emplace(const t_ARG_01& arg_01)
160759{
160760 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160761
160762 Variant_Base::template baseEmplace<index>(arg_01);
160763
160764 return bsl::get<index>(*this);
160765}
160766#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
160767
160768#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
160769template <class t_HEAD, class t_TAIL_01,
160770 class t_TAIL_02,
160771 class t_TAIL_03,
160772 class t_TAIL_04,
160773 class t_TAIL_05,
160774 class t_TAIL_06,
160775 class t_TAIL_07,
160776 class t_TAIL_08,
160777 class t_TAIL_09,
160778 class t_TAIL_10>
160779template <class t_TYPE, class t_ARG_01>
160780typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160781 t_TYPE,
160782 variant<t_HEAD, t_TAIL_01,
160783 t_TAIL_02,
160784 t_TAIL_03,
160785 t_TAIL_04,
160786 t_TAIL_05,
160787 t_TAIL_06,
160788 t_TAIL_07,
160789 t_TAIL_08,
160790 t_TAIL_09,
160791 t_TAIL_10> >::value,
160792 t_TYPE&>::type
160793variant<t_HEAD, t_TAIL_01,
160794 t_TAIL_02,
160795 t_TAIL_03,
160796 t_TAIL_04,
160797 t_TAIL_05,
160798 t_TAIL_06,
160799 t_TAIL_07,
160800 t_TAIL_08,
160801 t_TAIL_09,
160802 t_TAIL_10,
160803 BSLS_COMPILERFEATURES_FILLT( 8)
160804 >::emplace(const t_ARG_01& arg_01)
160805{
160806 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160807
160808 Variant_Base::template baseEmplace<index>(arg_01);
160809
160810 return bsl::get<index>(*this);
160811}
160812#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
160813
160814#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
160815template <class t_HEAD, class t_TAIL_01,
160816 class t_TAIL_02,
160817 class t_TAIL_03,
160818 class t_TAIL_04,
160819 class t_TAIL_05,
160820 class t_TAIL_06,
160821 class t_TAIL_07,
160822 class t_TAIL_08,
160823 class t_TAIL_09,
160824 class t_TAIL_10,
160825 class t_TAIL_11>
160826template <class t_TYPE, class t_ARG_01>
160827typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160828 t_TYPE,
160829 variant<t_HEAD, t_TAIL_01,
160830 t_TAIL_02,
160831 t_TAIL_03,
160832 t_TAIL_04,
160833 t_TAIL_05,
160834 t_TAIL_06,
160835 t_TAIL_07,
160836 t_TAIL_08,
160837 t_TAIL_09,
160838 t_TAIL_10,
160839 t_TAIL_11> >::value,
160840 t_TYPE&>::type
160841variant<t_HEAD, t_TAIL_01,
160842 t_TAIL_02,
160843 t_TAIL_03,
160844 t_TAIL_04,
160845 t_TAIL_05,
160846 t_TAIL_06,
160847 t_TAIL_07,
160848 t_TAIL_08,
160849 t_TAIL_09,
160850 t_TAIL_10,
160851 t_TAIL_11,
160852 BSLS_COMPILERFEATURES_FILLT( 7)
160853 >::emplace(const t_ARG_01& arg_01)
160854{
160855 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160856
160857 Variant_Base::template baseEmplace<index>(arg_01);
160858
160859 return bsl::get<index>(*this);
160860}
160861#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
160862
160863#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
160864template <class t_HEAD, class t_TAIL_01,
160865 class t_TAIL_02,
160866 class t_TAIL_03,
160867 class t_TAIL_04,
160868 class t_TAIL_05,
160869 class t_TAIL_06,
160870 class t_TAIL_07,
160871 class t_TAIL_08,
160872 class t_TAIL_09,
160873 class t_TAIL_10,
160874 class t_TAIL_11,
160875 class t_TAIL_12>
160876template <class t_TYPE, class t_ARG_01>
160877typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160878 t_TYPE,
160879 variant<t_HEAD, t_TAIL_01,
160880 t_TAIL_02,
160881 t_TAIL_03,
160882 t_TAIL_04,
160883 t_TAIL_05,
160884 t_TAIL_06,
160885 t_TAIL_07,
160886 t_TAIL_08,
160887 t_TAIL_09,
160888 t_TAIL_10,
160889 t_TAIL_11,
160890 t_TAIL_12> >::value,
160891 t_TYPE&>::type
160892variant<t_HEAD, t_TAIL_01,
160893 t_TAIL_02,
160894 t_TAIL_03,
160895 t_TAIL_04,
160896 t_TAIL_05,
160897 t_TAIL_06,
160898 t_TAIL_07,
160899 t_TAIL_08,
160900 t_TAIL_09,
160901 t_TAIL_10,
160902 t_TAIL_11,
160903 t_TAIL_12,
160904 BSLS_COMPILERFEATURES_FILLT( 6)
160905 >::emplace(const t_ARG_01& arg_01)
160906{
160907 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160908
160909 Variant_Base::template baseEmplace<index>(arg_01);
160910
160911 return bsl::get<index>(*this);
160912}
160913#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
160914
160915#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
160916template <class t_HEAD, class t_TAIL_01,
160917 class t_TAIL_02,
160918 class t_TAIL_03,
160919 class t_TAIL_04,
160920 class t_TAIL_05,
160921 class t_TAIL_06,
160922 class t_TAIL_07,
160923 class t_TAIL_08,
160924 class t_TAIL_09,
160925 class t_TAIL_10,
160926 class t_TAIL_11,
160927 class t_TAIL_12,
160928 class t_TAIL_13>
160929template <class t_TYPE, class t_ARG_01>
160930typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160931 t_TYPE,
160932 variant<t_HEAD, t_TAIL_01,
160933 t_TAIL_02,
160934 t_TAIL_03,
160935 t_TAIL_04,
160936 t_TAIL_05,
160937 t_TAIL_06,
160938 t_TAIL_07,
160939 t_TAIL_08,
160940 t_TAIL_09,
160941 t_TAIL_10,
160942 t_TAIL_11,
160943 t_TAIL_12,
160944 t_TAIL_13> >::value,
160945 t_TYPE&>::type
160946variant<t_HEAD, t_TAIL_01,
160947 t_TAIL_02,
160948 t_TAIL_03,
160949 t_TAIL_04,
160950 t_TAIL_05,
160951 t_TAIL_06,
160952 t_TAIL_07,
160953 t_TAIL_08,
160954 t_TAIL_09,
160955 t_TAIL_10,
160956 t_TAIL_11,
160957 t_TAIL_12,
160958 t_TAIL_13,
160959 BSLS_COMPILERFEATURES_FILLT( 5)
160960 >::emplace(const t_ARG_01& arg_01)
160961{
160962 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
160963
160964 Variant_Base::template baseEmplace<index>(arg_01);
160965
160966 return bsl::get<index>(*this);
160967}
160968#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
160969
160970#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
160971template <class t_HEAD, class t_TAIL_01,
160972 class t_TAIL_02,
160973 class t_TAIL_03,
160974 class t_TAIL_04,
160975 class t_TAIL_05,
160976 class t_TAIL_06,
160977 class t_TAIL_07,
160978 class t_TAIL_08,
160979 class t_TAIL_09,
160980 class t_TAIL_10,
160981 class t_TAIL_11,
160982 class t_TAIL_12,
160983 class t_TAIL_13,
160984 class t_TAIL_14>
160985template <class t_TYPE, class t_ARG_01>
160986typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
160987 t_TYPE,
160988 variant<t_HEAD, t_TAIL_01,
160989 t_TAIL_02,
160990 t_TAIL_03,
160991 t_TAIL_04,
160992 t_TAIL_05,
160993 t_TAIL_06,
160994 t_TAIL_07,
160995 t_TAIL_08,
160996 t_TAIL_09,
160997 t_TAIL_10,
160998 t_TAIL_11,
160999 t_TAIL_12,
161000 t_TAIL_13,
161001 t_TAIL_14> >::value,
161002 t_TYPE&>::type
161003variant<t_HEAD, t_TAIL_01,
161004 t_TAIL_02,
161005 t_TAIL_03,
161006 t_TAIL_04,
161007 t_TAIL_05,
161008 t_TAIL_06,
161009 t_TAIL_07,
161010 t_TAIL_08,
161011 t_TAIL_09,
161012 t_TAIL_10,
161013 t_TAIL_11,
161014 t_TAIL_12,
161015 t_TAIL_13,
161016 t_TAIL_14,
161017 BSLS_COMPILERFEATURES_FILLT( 4)
161018 >::emplace(const t_ARG_01& arg_01)
161019{
161020 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161021
161022 Variant_Base::template baseEmplace<index>(arg_01);
161023
161024 return bsl::get<index>(*this);
161025}
161026#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
161027
161028#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
161029template <class t_HEAD, class t_TAIL_01,
161030 class t_TAIL_02,
161031 class t_TAIL_03,
161032 class t_TAIL_04,
161033 class t_TAIL_05,
161034 class t_TAIL_06,
161035 class t_TAIL_07,
161036 class t_TAIL_08,
161037 class t_TAIL_09,
161038 class t_TAIL_10,
161039 class t_TAIL_11,
161040 class t_TAIL_12,
161041 class t_TAIL_13,
161042 class t_TAIL_14,
161043 class t_TAIL_15>
161044template <class t_TYPE, class t_ARG_01>
161045typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161046 t_TYPE,
161047 variant<t_HEAD, t_TAIL_01,
161048 t_TAIL_02,
161049 t_TAIL_03,
161050 t_TAIL_04,
161051 t_TAIL_05,
161052 t_TAIL_06,
161053 t_TAIL_07,
161054 t_TAIL_08,
161055 t_TAIL_09,
161056 t_TAIL_10,
161057 t_TAIL_11,
161058 t_TAIL_12,
161059 t_TAIL_13,
161060 t_TAIL_14,
161061 t_TAIL_15> >::value,
161062 t_TYPE&>::type
161063variant<t_HEAD, t_TAIL_01,
161064 t_TAIL_02,
161065 t_TAIL_03,
161066 t_TAIL_04,
161067 t_TAIL_05,
161068 t_TAIL_06,
161069 t_TAIL_07,
161070 t_TAIL_08,
161071 t_TAIL_09,
161072 t_TAIL_10,
161073 t_TAIL_11,
161074 t_TAIL_12,
161075 t_TAIL_13,
161076 t_TAIL_14,
161077 t_TAIL_15,
161078 BSLS_COMPILERFEATURES_FILLT( 3)
161079 >::emplace(const t_ARG_01& arg_01)
161080{
161081 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161082
161083 Variant_Base::template baseEmplace<index>(arg_01);
161084
161085 return bsl::get<index>(*this);
161086}
161087#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
161088
161089#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
161090template <class t_HEAD, class t_TAIL_01,
161091 class t_TAIL_02,
161092 class t_TAIL_03,
161093 class t_TAIL_04,
161094 class t_TAIL_05,
161095 class t_TAIL_06,
161096 class t_TAIL_07,
161097 class t_TAIL_08,
161098 class t_TAIL_09,
161099 class t_TAIL_10,
161100 class t_TAIL_11,
161101 class t_TAIL_12,
161102 class t_TAIL_13,
161103 class t_TAIL_14,
161104 class t_TAIL_15,
161105 class t_TAIL_16>
161106template <class t_TYPE, class t_ARG_01>
161107typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161108 t_TYPE,
161109 variant<t_HEAD, t_TAIL_01,
161110 t_TAIL_02,
161111 t_TAIL_03,
161112 t_TAIL_04,
161113 t_TAIL_05,
161114 t_TAIL_06,
161115 t_TAIL_07,
161116 t_TAIL_08,
161117 t_TAIL_09,
161118 t_TAIL_10,
161119 t_TAIL_11,
161120 t_TAIL_12,
161121 t_TAIL_13,
161122 t_TAIL_14,
161123 t_TAIL_15,
161124 t_TAIL_16> >::value,
161125 t_TYPE&>::type
161126variant<t_HEAD, t_TAIL_01,
161127 t_TAIL_02,
161128 t_TAIL_03,
161129 t_TAIL_04,
161130 t_TAIL_05,
161131 t_TAIL_06,
161132 t_TAIL_07,
161133 t_TAIL_08,
161134 t_TAIL_09,
161135 t_TAIL_10,
161136 t_TAIL_11,
161137 t_TAIL_12,
161138 t_TAIL_13,
161139 t_TAIL_14,
161140 t_TAIL_15,
161141 t_TAIL_16,
161142 BSLS_COMPILERFEATURES_FILLT( 2)
161143 >::emplace(const t_ARG_01& arg_01)
161144{
161145 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161146
161147 Variant_Base::template baseEmplace<index>(arg_01);
161148
161149 return bsl::get<index>(*this);
161150}
161151#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
161152
161153#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
161154template <class t_HEAD, class t_TAIL_01,
161155 class t_TAIL_02,
161156 class t_TAIL_03,
161157 class t_TAIL_04,
161158 class t_TAIL_05,
161159 class t_TAIL_06,
161160 class t_TAIL_07,
161161 class t_TAIL_08,
161162 class t_TAIL_09,
161163 class t_TAIL_10,
161164 class t_TAIL_11,
161165 class t_TAIL_12,
161166 class t_TAIL_13,
161167 class t_TAIL_14,
161168 class t_TAIL_15,
161169 class t_TAIL_16,
161170 class t_TAIL_17>
161171template <class t_TYPE, class t_ARG_01>
161172typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161173 t_TYPE,
161174 variant<t_HEAD, t_TAIL_01,
161175 t_TAIL_02,
161176 t_TAIL_03,
161177 t_TAIL_04,
161178 t_TAIL_05,
161179 t_TAIL_06,
161180 t_TAIL_07,
161181 t_TAIL_08,
161182 t_TAIL_09,
161183 t_TAIL_10,
161184 t_TAIL_11,
161185 t_TAIL_12,
161186 t_TAIL_13,
161187 t_TAIL_14,
161188 t_TAIL_15,
161189 t_TAIL_16,
161190 t_TAIL_17> >::value,
161191 t_TYPE&>::type
161192variant<t_HEAD, t_TAIL_01,
161193 t_TAIL_02,
161194 t_TAIL_03,
161195 t_TAIL_04,
161196 t_TAIL_05,
161197 t_TAIL_06,
161198 t_TAIL_07,
161199 t_TAIL_08,
161200 t_TAIL_09,
161201 t_TAIL_10,
161202 t_TAIL_11,
161203 t_TAIL_12,
161204 t_TAIL_13,
161205 t_TAIL_14,
161206 t_TAIL_15,
161207 t_TAIL_16,
161208 t_TAIL_17,
161209 BSLS_COMPILERFEATURES_FILLT( 1)
161210 >::emplace(const t_ARG_01& arg_01)
161211{
161212 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161213
161214 Variant_Base::template baseEmplace<index>(arg_01);
161215
161216 return bsl::get<index>(*this);
161217}
161218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
161219
161220#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
161221template <class t_HEAD, class t_TAIL_01,
161222 class t_TAIL_02,
161223 class t_TAIL_03,
161224 class t_TAIL_04,
161225 class t_TAIL_05,
161226 class t_TAIL_06,
161227 class t_TAIL_07,
161228 class t_TAIL_08,
161229 class t_TAIL_09,
161230 class t_TAIL_10,
161231 class t_TAIL_11,
161232 class t_TAIL_12,
161233 class t_TAIL_13,
161234 class t_TAIL_14,
161235 class t_TAIL_15,
161236 class t_TAIL_16,
161237 class t_TAIL_17,
161238 class t_TAIL_18>
161239template <class t_TYPE, class t_ARG_01>
161240typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161241 t_TYPE,
161242 variant<t_HEAD, t_TAIL_01,
161243 t_TAIL_02,
161244 t_TAIL_03,
161245 t_TAIL_04,
161246 t_TAIL_05,
161247 t_TAIL_06,
161248 t_TAIL_07,
161249 t_TAIL_08,
161250 t_TAIL_09,
161251 t_TAIL_10,
161252 t_TAIL_11,
161253 t_TAIL_12,
161254 t_TAIL_13,
161255 t_TAIL_14,
161256 t_TAIL_15,
161257 t_TAIL_16,
161258 t_TAIL_17,
161259 t_TAIL_18> >::value,
161260 t_TYPE&>::type
161261variant<t_HEAD, t_TAIL_01,
161262 t_TAIL_02,
161263 t_TAIL_03,
161264 t_TAIL_04,
161265 t_TAIL_05,
161266 t_TAIL_06,
161267 t_TAIL_07,
161268 t_TAIL_08,
161269 t_TAIL_09,
161270 t_TAIL_10,
161271 t_TAIL_11,
161272 t_TAIL_12,
161273 t_TAIL_13,
161274 t_TAIL_14,
161275 t_TAIL_15,
161276 t_TAIL_16,
161277 t_TAIL_17,
161278 t_TAIL_18,
161279 BSLS_COMPILERFEATURES_FILLT( 0)
161280 >::emplace(const t_ARG_01& arg_01)
161281{
161282 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161283
161284 Variant_Base::template baseEmplace<index>(arg_01);
161285
161286 return bsl::get<index>(*this);
161287}
161288#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
161289
161290
161291#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
161292template <class t_HEAD>
161293template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161294typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161295 t_TYPE,
161296 variant<t_HEAD> >::value,
161297 t_TYPE&>::type
161298variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
161299 >::emplace(const t_ARG_01& arg_01,
161300 const t_ARG_02& arg_02)
161301{
161302 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161303
161304 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161305
161306 return bsl::get<index>(*this);
161307}
161308#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
161309
161310#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
161311template <class t_HEAD, class t_TAIL_01>
161312template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161313typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161314 t_TYPE,
161315 variant<t_HEAD, t_TAIL_01> >::value,
161316 t_TYPE&>::type
161317variant<t_HEAD, t_TAIL_01,
161318 BSLS_COMPILERFEATURES_FILLT(17)
161319 >::emplace(const t_ARG_01& arg_01,
161320 const t_ARG_02& arg_02)
161321{
161322 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161323
161324 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161325
161326 return bsl::get<index>(*this);
161327}
161328#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
161329
161330#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
161331template <class t_HEAD, class t_TAIL_01,
161332 class t_TAIL_02>
161333template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161334typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161335 t_TYPE,
161336 variant<t_HEAD, t_TAIL_01,
161337 t_TAIL_02> >::value,
161338 t_TYPE&>::type
161339variant<t_HEAD, t_TAIL_01,
161340 t_TAIL_02,
161341 BSLS_COMPILERFEATURES_FILLT(16)
161342 >::emplace(const t_ARG_01& arg_01,
161343 const t_ARG_02& arg_02)
161344{
161345 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161346
161347 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161348
161349 return bsl::get<index>(*this);
161350}
161351#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
161352
161353#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
161354template <class t_HEAD, class t_TAIL_01,
161355 class t_TAIL_02,
161356 class t_TAIL_03>
161357template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161358typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161359 t_TYPE,
161360 variant<t_HEAD, t_TAIL_01,
161361 t_TAIL_02,
161362 t_TAIL_03> >::value,
161363 t_TYPE&>::type
161364variant<t_HEAD, t_TAIL_01,
161365 t_TAIL_02,
161366 t_TAIL_03,
161367 BSLS_COMPILERFEATURES_FILLT(15)
161368 >::emplace(const t_ARG_01& arg_01,
161369 const t_ARG_02& arg_02)
161370{
161371 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161372
161373 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161374
161375 return bsl::get<index>(*this);
161376}
161377#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
161378
161379#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
161380template <class t_HEAD, class t_TAIL_01,
161381 class t_TAIL_02,
161382 class t_TAIL_03,
161383 class t_TAIL_04>
161384template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161385typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161386 t_TYPE,
161387 variant<t_HEAD, t_TAIL_01,
161388 t_TAIL_02,
161389 t_TAIL_03,
161390 t_TAIL_04> >::value,
161391 t_TYPE&>::type
161392variant<t_HEAD, t_TAIL_01,
161393 t_TAIL_02,
161394 t_TAIL_03,
161395 t_TAIL_04,
161396 BSLS_COMPILERFEATURES_FILLT(14)
161397 >::emplace(const t_ARG_01& arg_01,
161398 const t_ARG_02& arg_02)
161399{
161400 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161401
161402 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161403
161404 return bsl::get<index>(*this);
161405}
161406#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
161407
161408#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
161409template <class t_HEAD, class t_TAIL_01,
161410 class t_TAIL_02,
161411 class t_TAIL_03,
161412 class t_TAIL_04,
161413 class t_TAIL_05>
161414template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161415typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161416 t_TYPE,
161417 variant<t_HEAD, t_TAIL_01,
161418 t_TAIL_02,
161419 t_TAIL_03,
161420 t_TAIL_04,
161421 t_TAIL_05> >::value,
161422 t_TYPE&>::type
161423variant<t_HEAD, t_TAIL_01,
161424 t_TAIL_02,
161425 t_TAIL_03,
161426 t_TAIL_04,
161427 t_TAIL_05,
161428 BSLS_COMPILERFEATURES_FILLT(13)
161429 >::emplace(const t_ARG_01& arg_01,
161430 const t_ARG_02& arg_02)
161431{
161432 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161433
161434 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161435
161436 return bsl::get<index>(*this);
161437}
161438#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
161439
161440#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
161441template <class t_HEAD, class t_TAIL_01,
161442 class t_TAIL_02,
161443 class t_TAIL_03,
161444 class t_TAIL_04,
161445 class t_TAIL_05,
161446 class t_TAIL_06>
161447template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161448typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161449 t_TYPE,
161450 variant<t_HEAD, t_TAIL_01,
161451 t_TAIL_02,
161452 t_TAIL_03,
161453 t_TAIL_04,
161454 t_TAIL_05,
161455 t_TAIL_06> >::value,
161456 t_TYPE&>::type
161457variant<t_HEAD, t_TAIL_01,
161458 t_TAIL_02,
161459 t_TAIL_03,
161460 t_TAIL_04,
161461 t_TAIL_05,
161462 t_TAIL_06,
161463 BSLS_COMPILERFEATURES_FILLT(12)
161464 >::emplace(const t_ARG_01& arg_01,
161465 const t_ARG_02& arg_02)
161466{
161467 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161468
161469 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161470
161471 return bsl::get<index>(*this);
161472}
161473#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
161474
161475#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
161476template <class t_HEAD, class t_TAIL_01,
161477 class t_TAIL_02,
161478 class t_TAIL_03,
161479 class t_TAIL_04,
161480 class t_TAIL_05,
161481 class t_TAIL_06,
161482 class t_TAIL_07>
161483template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161484typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161485 t_TYPE,
161486 variant<t_HEAD, t_TAIL_01,
161487 t_TAIL_02,
161488 t_TAIL_03,
161489 t_TAIL_04,
161490 t_TAIL_05,
161491 t_TAIL_06,
161492 t_TAIL_07> >::value,
161493 t_TYPE&>::type
161494variant<t_HEAD, t_TAIL_01,
161495 t_TAIL_02,
161496 t_TAIL_03,
161497 t_TAIL_04,
161498 t_TAIL_05,
161499 t_TAIL_06,
161500 t_TAIL_07,
161501 BSLS_COMPILERFEATURES_FILLT(11)
161502 >::emplace(const t_ARG_01& arg_01,
161503 const t_ARG_02& arg_02)
161504{
161505 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161506
161507 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161508
161509 return bsl::get<index>(*this);
161510}
161511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
161512
161513#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
161514template <class t_HEAD, class t_TAIL_01,
161515 class t_TAIL_02,
161516 class t_TAIL_03,
161517 class t_TAIL_04,
161518 class t_TAIL_05,
161519 class t_TAIL_06,
161520 class t_TAIL_07,
161521 class t_TAIL_08>
161522template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161523typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161524 t_TYPE,
161525 variant<t_HEAD, t_TAIL_01,
161526 t_TAIL_02,
161527 t_TAIL_03,
161528 t_TAIL_04,
161529 t_TAIL_05,
161530 t_TAIL_06,
161531 t_TAIL_07,
161532 t_TAIL_08> >::value,
161533 t_TYPE&>::type
161534variant<t_HEAD, t_TAIL_01,
161535 t_TAIL_02,
161536 t_TAIL_03,
161537 t_TAIL_04,
161538 t_TAIL_05,
161539 t_TAIL_06,
161540 t_TAIL_07,
161541 t_TAIL_08,
161542 BSLS_COMPILERFEATURES_FILLT(10)
161543 >::emplace(const t_ARG_01& arg_01,
161544 const t_ARG_02& arg_02)
161545{
161546 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161547
161548 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161549
161550 return bsl::get<index>(*this);
161551}
161552#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
161553
161554#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
161555template <class t_HEAD, class t_TAIL_01,
161556 class t_TAIL_02,
161557 class t_TAIL_03,
161558 class t_TAIL_04,
161559 class t_TAIL_05,
161560 class t_TAIL_06,
161561 class t_TAIL_07,
161562 class t_TAIL_08,
161563 class t_TAIL_09>
161564template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161565typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161566 t_TYPE,
161567 variant<t_HEAD, t_TAIL_01,
161568 t_TAIL_02,
161569 t_TAIL_03,
161570 t_TAIL_04,
161571 t_TAIL_05,
161572 t_TAIL_06,
161573 t_TAIL_07,
161574 t_TAIL_08,
161575 t_TAIL_09> >::value,
161576 t_TYPE&>::type
161577variant<t_HEAD, t_TAIL_01,
161578 t_TAIL_02,
161579 t_TAIL_03,
161580 t_TAIL_04,
161581 t_TAIL_05,
161582 t_TAIL_06,
161583 t_TAIL_07,
161584 t_TAIL_08,
161585 t_TAIL_09,
161586 BSLS_COMPILERFEATURES_FILLT( 9)
161587 >::emplace(const t_ARG_01& arg_01,
161588 const t_ARG_02& arg_02)
161589{
161590 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161591
161592 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161593
161594 return bsl::get<index>(*this);
161595}
161596#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
161597
161598#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
161599template <class t_HEAD, class t_TAIL_01,
161600 class t_TAIL_02,
161601 class t_TAIL_03,
161602 class t_TAIL_04,
161603 class t_TAIL_05,
161604 class t_TAIL_06,
161605 class t_TAIL_07,
161606 class t_TAIL_08,
161607 class t_TAIL_09,
161608 class t_TAIL_10>
161609template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161610typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161611 t_TYPE,
161612 variant<t_HEAD, t_TAIL_01,
161613 t_TAIL_02,
161614 t_TAIL_03,
161615 t_TAIL_04,
161616 t_TAIL_05,
161617 t_TAIL_06,
161618 t_TAIL_07,
161619 t_TAIL_08,
161620 t_TAIL_09,
161621 t_TAIL_10> >::value,
161622 t_TYPE&>::type
161623variant<t_HEAD, t_TAIL_01,
161624 t_TAIL_02,
161625 t_TAIL_03,
161626 t_TAIL_04,
161627 t_TAIL_05,
161628 t_TAIL_06,
161629 t_TAIL_07,
161630 t_TAIL_08,
161631 t_TAIL_09,
161632 t_TAIL_10,
161633 BSLS_COMPILERFEATURES_FILLT( 8)
161634 >::emplace(const t_ARG_01& arg_01,
161635 const t_ARG_02& arg_02)
161636{
161637 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161638
161639 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161640
161641 return bsl::get<index>(*this);
161642}
161643#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
161644
161645#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
161646template <class t_HEAD, class t_TAIL_01,
161647 class t_TAIL_02,
161648 class t_TAIL_03,
161649 class t_TAIL_04,
161650 class t_TAIL_05,
161651 class t_TAIL_06,
161652 class t_TAIL_07,
161653 class t_TAIL_08,
161654 class t_TAIL_09,
161655 class t_TAIL_10,
161656 class t_TAIL_11>
161657template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161658typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161659 t_TYPE,
161660 variant<t_HEAD, t_TAIL_01,
161661 t_TAIL_02,
161662 t_TAIL_03,
161663 t_TAIL_04,
161664 t_TAIL_05,
161665 t_TAIL_06,
161666 t_TAIL_07,
161667 t_TAIL_08,
161668 t_TAIL_09,
161669 t_TAIL_10,
161670 t_TAIL_11> >::value,
161671 t_TYPE&>::type
161672variant<t_HEAD, t_TAIL_01,
161673 t_TAIL_02,
161674 t_TAIL_03,
161675 t_TAIL_04,
161676 t_TAIL_05,
161677 t_TAIL_06,
161678 t_TAIL_07,
161679 t_TAIL_08,
161680 t_TAIL_09,
161681 t_TAIL_10,
161682 t_TAIL_11,
161683 BSLS_COMPILERFEATURES_FILLT( 7)
161684 >::emplace(const t_ARG_01& arg_01,
161685 const t_ARG_02& arg_02)
161686{
161687 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161688
161689 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161690
161691 return bsl::get<index>(*this);
161692}
161693#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
161694
161695#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
161696template <class t_HEAD, class t_TAIL_01,
161697 class t_TAIL_02,
161698 class t_TAIL_03,
161699 class t_TAIL_04,
161700 class t_TAIL_05,
161701 class t_TAIL_06,
161702 class t_TAIL_07,
161703 class t_TAIL_08,
161704 class t_TAIL_09,
161705 class t_TAIL_10,
161706 class t_TAIL_11,
161707 class t_TAIL_12>
161708template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161709typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161710 t_TYPE,
161711 variant<t_HEAD, t_TAIL_01,
161712 t_TAIL_02,
161713 t_TAIL_03,
161714 t_TAIL_04,
161715 t_TAIL_05,
161716 t_TAIL_06,
161717 t_TAIL_07,
161718 t_TAIL_08,
161719 t_TAIL_09,
161720 t_TAIL_10,
161721 t_TAIL_11,
161722 t_TAIL_12> >::value,
161723 t_TYPE&>::type
161724variant<t_HEAD, t_TAIL_01,
161725 t_TAIL_02,
161726 t_TAIL_03,
161727 t_TAIL_04,
161728 t_TAIL_05,
161729 t_TAIL_06,
161730 t_TAIL_07,
161731 t_TAIL_08,
161732 t_TAIL_09,
161733 t_TAIL_10,
161734 t_TAIL_11,
161735 t_TAIL_12,
161736 BSLS_COMPILERFEATURES_FILLT( 6)
161737 >::emplace(const t_ARG_01& arg_01,
161738 const t_ARG_02& arg_02)
161739{
161740 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161741
161742 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161743
161744 return bsl::get<index>(*this);
161745}
161746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
161747
161748#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
161749template <class t_HEAD, class t_TAIL_01,
161750 class t_TAIL_02,
161751 class t_TAIL_03,
161752 class t_TAIL_04,
161753 class t_TAIL_05,
161754 class t_TAIL_06,
161755 class t_TAIL_07,
161756 class t_TAIL_08,
161757 class t_TAIL_09,
161758 class t_TAIL_10,
161759 class t_TAIL_11,
161760 class t_TAIL_12,
161761 class t_TAIL_13>
161762template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161763typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161764 t_TYPE,
161765 variant<t_HEAD, t_TAIL_01,
161766 t_TAIL_02,
161767 t_TAIL_03,
161768 t_TAIL_04,
161769 t_TAIL_05,
161770 t_TAIL_06,
161771 t_TAIL_07,
161772 t_TAIL_08,
161773 t_TAIL_09,
161774 t_TAIL_10,
161775 t_TAIL_11,
161776 t_TAIL_12,
161777 t_TAIL_13> >::value,
161778 t_TYPE&>::type
161779variant<t_HEAD, t_TAIL_01,
161780 t_TAIL_02,
161781 t_TAIL_03,
161782 t_TAIL_04,
161783 t_TAIL_05,
161784 t_TAIL_06,
161785 t_TAIL_07,
161786 t_TAIL_08,
161787 t_TAIL_09,
161788 t_TAIL_10,
161789 t_TAIL_11,
161790 t_TAIL_12,
161791 t_TAIL_13,
161792 BSLS_COMPILERFEATURES_FILLT( 5)
161793 >::emplace(const t_ARG_01& arg_01,
161794 const t_ARG_02& arg_02)
161795{
161796 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161797
161798 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161799
161800 return bsl::get<index>(*this);
161801}
161802#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
161803
161804#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
161805template <class t_HEAD, class t_TAIL_01,
161806 class t_TAIL_02,
161807 class t_TAIL_03,
161808 class t_TAIL_04,
161809 class t_TAIL_05,
161810 class t_TAIL_06,
161811 class t_TAIL_07,
161812 class t_TAIL_08,
161813 class t_TAIL_09,
161814 class t_TAIL_10,
161815 class t_TAIL_11,
161816 class t_TAIL_12,
161817 class t_TAIL_13,
161818 class t_TAIL_14>
161819template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161820typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161821 t_TYPE,
161822 variant<t_HEAD, t_TAIL_01,
161823 t_TAIL_02,
161824 t_TAIL_03,
161825 t_TAIL_04,
161826 t_TAIL_05,
161827 t_TAIL_06,
161828 t_TAIL_07,
161829 t_TAIL_08,
161830 t_TAIL_09,
161831 t_TAIL_10,
161832 t_TAIL_11,
161833 t_TAIL_12,
161834 t_TAIL_13,
161835 t_TAIL_14> >::value,
161836 t_TYPE&>::type
161837variant<t_HEAD, t_TAIL_01,
161838 t_TAIL_02,
161839 t_TAIL_03,
161840 t_TAIL_04,
161841 t_TAIL_05,
161842 t_TAIL_06,
161843 t_TAIL_07,
161844 t_TAIL_08,
161845 t_TAIL_09,
161846 t_TAIL_10,
161847 t_TAIL_11,
161848 t_TAIL_12,
161849 t_TAIL_13,
161850 t_TAIL_14,
161851 BSLS_COMPILERFEATURES_FILLT( 4)
161852 >::emplace(const t_ARG_01& arg_01,
161853 const t_ARG_02& arg_02)
161854{
161855 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161856
161857 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161858
161859 return bsl::get<index>(*this);
161860}
161861#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
161862
161863#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
161864template <class t_HEAD, class t_TAIL_01,
161865 class t_TAIL_02,
161866 class t_TAIL_03,
161867 class t_TAIL_04,
161868 class t_TAIL_05,
161869 class t_TAIL_06,
161870 class t_TAIL_07,
161871 class t_TAIL_08,
161872 class t_TAIL_09,
161873 class t_TAIL_10,
161874 class t_TAIL_11,
161875 class t_TAIL_12,
161876 class t_TAIL_13,
161877 class t_TAIL_14,
161878 class t_TAIL_15>
161879template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161880typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161881 t_TYPE,
161882 variant<t_HEAD, t_TAIL_01,
161883 t_TAIL_02,
161884 t_TAIL_03,
161885 t_TAIL_04,
161886 t_TAIL_05,
161887 t_TAIL_06,
161888 t_TAIL_07,
161889 t_TAIL_08,
161890 t_TAIL_09,
161891 t_TAIL_10,
161892 t_TAIL_11,
161893 t_TAIL_12,
161894 t_TAIL_13,
161895 t_TAIL_14,
161896 t_TAIL_15> >::value,
161897 t_TYPE&>::type
161898variant<t_HEAD, t_TAIL_01,
161899 t_TAIL_02,
161900 t_TAIL_03,
161901 t_TAIL_04,
161902 t_TAIL_05,
161903 t_TAIL_06,
161904 t_TAIL_07,
161905 t_TAIL_08,
161906 t_TAIL_09,
161907 t_TAIL_10,
161908 t_TAIL_11,
161909 t_TAIL_12,
161910 t_TAIL_13,
161911 t_TAIL_14,
161912 t_TAIL_15,
161913 BSLS_COMPILERFEATURES_FILLT( 3)
161914 >::emplace(const t_ARG_01& arg_01,
161915 const t_ARG_02& arg_02)
161916{
161917 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161918
161919 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161920
161921 return bsl::get<index>(*this);
161922}
161923#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
161924
161925#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
161926template <class t_HEAD, class t_TAIL_01,
161927 class t_TAIL_02,
161928 class t_TAIL_03,
161929 class t_TAIL_04,
161930 class t_TAIL_05,
161931 class t_TAIL_06,
161932 class t_TAIL_07,
161933 class t_TAIL_08,
161934 class t_TAIL_09,
161935 class t_TAIL_10,
161936 class t_TAIL_11,
161937 class t_TAIL_12,
161938 class t_TAIL_13,
161939 class t_TAIL_14,
161940 class t_TAIL_15,
161941 class t_TAIL_16>
161942template <class t_TYPE, class t_ARG_01, class t_ARG_02>
161943typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
161944 t_TYPE,
161945 variant<t_HEAD, t_TAIL_01,
161946 t_TAIL_02,
161947 t_TAIL_03,
161948 t_TAIL_04,
161949 t_TAIL_05,
161950 t_TAIL_06,
161951 t_TAIL_07,
161952 t_TAIL_08,
161953 t_TAIL_09,
161954 t_TAIL_10,
161955 t_TAIL_11,
161956 t_TAIL_12,
161957 t_TAIL_13,
161958 t_TAIL_14,
161959 t_TAIL_15,
161960 t_TAIL_16> >::value,
161961 t_TYPE&>::type
161962variant<t_HEAD, t_TAIL_01,
161963 t_TAIL_02,
161964 t_TAIL_03,
161965 t_TAIL_04,
161966 t_TAIL_05,
161967 t_TAIL_06,
161968 t_TAIL_07,
161969 t_TAIL_08,
161970 t_TAIL_09,
161971 t_TAIL_10,
161972 t_TAIL_11,
161973 t_TAIL_12,
161974 t_TAIL_13,
161975 t_TAIL_14,
161976 t_TAIL_15,
161977 t_TAIL_16,
161978 BSLS_COMPILERFEATURES_FILLT( 2)
161979 >::emplace(const t_ARG_01& arg_01,
161980 const t_ARG_02& arg_02)
161981{
161982 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
161983
161984 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
161985
161986 return bsl::get<index>(*this);
161987}
161988#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
161989
161990#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
161991template <class t_HEAD, class t_TAIL_01,
161992 class t_TAIL_02,
161993 class t_TAIL_03,
161994 class t_TAIL_04,
161995 class t_TAIL_05,
161996 class t_TAIL_06,
161997 class t_TAIL_07,
161998 class t_TAIL_08,
161999 class t_TAIL_09,
162000 class t_TAIL_10,
162001 class t_TAIL_11,
162002 class t_TAIL_12,
162003 class t_TAIL_13,
162004 class t_TAIL_14,
162005 class t_TAIL_15,
162006 class t_TAIL_16,
162007 class t_TAIL_17>
162008template <class t_TYPE, class t_ARG_01, class t_ARG_02>
162009typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162010 t_TYPE,
162011 variant<t_HEAD, t_TAIL_01,
162012 t_TAIL_02,
162013 t_TAIL_03,
162014 t_TAIL_04,
162015 t_TAIL_05,
162016 t_TAIL_06,
162017 t_TAIL_07,
162018 t_TAIL_08,
162019 t_TAIL_09,
162020 t_TAIL_10,
162021 t_TAIL_11,
162022 t_TAIL_12,
162023 t_TAIL_13,
162024 t_TAIL_14,
162025 t_TAIL_15,
162026 t_TAIL_16,
162027 t_TAIL_17> >::value,
162028 t_TYPE&>::type
162029variant<t_HEAD, t_TAIL_01,
162030 t_TAIL_02,
162031 t_TAIL_03,
162032 t_TAIL_04,
162033 t_TAIL_05,
162034 t_TAIL_06,
162035 t_TAIL_07,
162036 t_TAIL_08,
162037 t_TAIL_09,
162038 t_TAIL_10,
162039 t_TAIL_11,
162040 t_TAIL_12,
162041 t_TAIL_13,
162042 t_TAIL_14,
162043 t_TAIL_15,
162044 t_TAIL_16,
162045 t_TAIL_17,
162046 BSLS_COMPILERFEATURES_FILLT( 1)
162047 >::emplace(const t_ARG_01& arg_01,
162048 const t_ARG_02& arg_02)
162049{
162050 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162051
162052 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
162053
162054 return bsl::get<index>(*this);
162055}
162056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
162057
162058#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
162059template <class t_HEAD, class t_TAIL_01,
162060 class t_TAIL_02,
162061 class t_TAIL_03,
162062 class t_TAIL_04,
162063 class t_TAIL_05,
162064 class t_TAIL_06,
162065 class t_TAIL_07,
162066 class t_TAIL_08,
162067 class t_TAIL_09,
162068 class t_TAIL_10,
162069 class t_TAIL_11,
162070 class t_TAIL_12,
162071 class t_TAIL_13,
162072 class t_TAIL_14,
162073 class t_TAIL_15,
162074 class t_TAIL_16,
162075 class t_TAIL_17,
162076 class t_TAIL_18>
162077template <class t_TYPE, class t_ARG_01, class t_ARG_02>
162078typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162079 t_TYPE,
162080 variant<t_HEAD, t_TAIL_01,
162081 t_TAIL_02,
162082 t_TAIL_03,
162083 t_TAIL_04,
162084 t_TAIL_05,
162085 t_TAIL_06,
162086 t_TAIL_07,
162087 t_TAIL_08,
162088 t_TAIL_09,
162089 t_TAIL_10,
162090 t_TAIL_11,
162091 t_TAIL_12,
162092 t_TAIL_13,
162093 t_TAIL_14,
162094 t_TAIL_15,
162095 t_TAIL_16,
162096 t_TAIL_17,
162097 t_TAIL_18> >::value,
162098 t_TYPE&>::type
162099variant<t_HEAD, t_TAIL_01,
162100 t_TAIL_02,
162101 t_TAIL_03,
162102 t_TAIL_04,
162103 t_TAIL_05,
162104 t_TAIL_06,
162105 t_TAIL_07,
162106 t_TAIL_08,
162107 t_TAIL_09,
162108 t_TAIL_10,
162109 t_TAIL_11,
162110 t_TAIL_12,
162111 t_TAIL_13,
162112 t_TAIL_14,
162113 t_TAIL_15,
162114 t_TAIL_16,
162115 t_TAIL_17,
162116 t_TAIL_18,
162117 BSLS_COMPILERFEATURES_FILLT( 0)
162118 >::emplace(const t_ARG_01& arg_01,
162119 const t_ARG_02& arg_02)
162120{
162121 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162122
162123 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
162124
162125 return bsl::get<index>(*this);
162126}
162127#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
162128
162129
162130#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
162131template <class t_HEAD>
162132template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162133typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162134 t_TYPE,
162135 variant<t_HEAD> >::value,
162136 t_TYPE&>::type
162137variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
162138 >::emplace(const t_ARG_01& arg_01,
162139 const t_ARG_02& arg_02,
162140 const t_ARG_03& arg_03)
162141{
162142 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162143
162144 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162145
162146 return bsl::get<index>(*this);
162147}
162148#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
162149
162150#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
162151template <class t_HEAD, class t_TAIL_01>
162152template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162153typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162154 t_TYPE,
162155 variant<t_HEAD, t_TAIL_01> >::value,
162156 t_TYPE&>::type
162157variant<t_HEAD, t_TAIL_01,
162158 BSLS_COMPILERFEATURES_FILLT(17)
162159 >::emplace(const t_ARG_01& arg_01,
162160 const t_ARG_02& arg_02,
162161 const t_ARG_03& arg_03)
162162{
162163 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162164
162165 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162166
162167 return bsl::get<index>(*this);
162168}
162169#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
162170
162171#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
162172template <class t_HEAD, class t_TAIL_01,
162173 class t_TAIL_02>
162174template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162175typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162176 t_TYPE,
162177 variant<t_HEAD, t_TAIL_01,
162178 t_TAIL_02> >::value,
162179 t_TYPE&>::type
162180variant<t_HEAD, t_TAIL_01,
162181 t_TAIL_02,
162182 BSLS_COMPILERFEATURES_FILLT(16)
162183 >::emplace(const t_ARG_01& arg_01,
162184 const t_ARG_02& arg_02,
162185 const t_ARG_03& arg_03)
162186{
162187 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162188
162189 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162190
162191 return bsl::get<index>(*this);
162192}
162193#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
162194
162195#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
162196template <class t_HEAD, class t_TAIL_01,
162197 class t_TAIL_02,
162198 class t_TAIL_03>
162199template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162200typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162201 t_TYPE,
162202 variant<t_HEAD, t_TAIL_01,
162203 t_TAIL_02,
162204 t_TAIL_03> >::value,
162205 t_TYPE&>::type
162206variant<t_HEAD, t_TAIL_01,
162207 t_TAIL_02,
162208 t_TAIL_03,
162209 BSLS_COMPILERFEATURES_FILLT(15)
162210 >::emplace(const t_ARG_01& arg_01,
162211 const t_ARG_02& arg_02,
162212 const t_ARG_03& arg_03)
162213{
162214 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162215
162216 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162217
162218 return bsl::get<index>(*this);
162219}
162220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
162221
162222#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
162223template <class t_HEAD, class t_TAIL_01,
162224 class t_TAIL_02,
162225 class t_TAIL_03,
162226 class t_TAIL_04>
162227template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162228typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162229 t_TYPE,
162230 variant<t_HEAD, t_TAIL_01,
162231 t_TAIL_02,
162232 t_TAIL_03,
162233 t_TAIL_04> >::value,
162234 t_TYPE&>::type
162235variant<t_HEAD, t_TAIL_01,
162236 t_TAIL_02,
162237 t_TAIL_03,
162238 t_TAIL_04,
162239 BSLS_COMPILERFEATURES_FILLT(14)
162240 >::emplace(const t_ARG_01& arg_01,
162241 const t_ARG_02& arg_02,
162242 const t_ARG_03& arg_03)
162243{
162244 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162245
162246 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162247
162248 return bsl::get<index>(*this);
162249}
162250#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
162251
162252#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
162253template <class t_HEAD, class t_TAIL_01,
162254 class t_TAIL_02,
162255 class t_TAIL_03,
162256 class t_TAIL_04,
162257 class t_TAIL_05>
162258template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162259typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162260 t_TYPE,
162261 variant<t_HEAD, t_TAIL_01,
162262 t_TAIL_02,
162263 t_TAIL_03,
162264 t_TAIL_04,
162265 t_TAIL_05> >::value,
162266 t_TYPE&>::type
162267variant<t_HEAD, t_TAIL_01,
162268 t_TAIL_02,
162269 t_TAIL_03,
162270 t_TAIL_04,
162271 t_TAIL_05,
162272 BSLS_COMPILERFEATURES_FILLT(13)
162273 >::emplace(const t_ARG_01& arg_01,
162274 const t_ARG_02& arg_02,
162275 const t_ARG_03& arg_03)
162276{
162277 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162278
162279 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162280
162281 return bsl::get<index>(*this);
162282}
162283#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
162284
162285#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
162286template <class t_HEAD, class t_TAIL_01,
162287 class t_TAIL_02,
162288 class t_TAIL_03,
162289 class t_TAIL_04,
162290 class t_TAIL_05,
162291 class t_TAIL_06>
162292template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162293typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162294 t_TYPE,
162295 variant<t_HEAD, t_TAIL_01,
162296 t_TAIL_02,
162297 t_TAIL_03,
162298 t_TAIL_04,
162299 t_TAIL_05,
162300 t_TAIL_06> >::value,
162301 t_TYPE&>::type
162302variant<t_HEAD, t_TAIL_01,
162303 t_TAIL_02,
162304 t_TAIL_03,
162305 t_TAIL_04,
162306 t_TAIL_05,
162307 t_TAIL_06,
162308 BSLS_COMPILERFEATURES_FILLT(12)
162309 >::emplace(const t_ARG_01& arg_01,
162310 const t_ARG_02& arg_02,
162311 const t_ARG_03& arg_03)
162312{
162313 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162314
162315 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162316
162317 return bsl::get<index>(*this);
162318}
162319#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
162320
162321#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
162322template <class t_HEAD, class t_TAIL_01,
162323 class t_TAIL_02,
162324 class t_TAIL_03,
162325 class t_TAIL_04,
162326 class t_TAIL_05,
162327 class t_TAIL_06,
162328 class t_TAIL_07>
162329template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162330typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162331 t_TYPE,
162332 variant<t_HEAD, t_TAIL_01,
162333 t_TAIL_02,
162334 t_TAIL_03,
162335 t_TAIL_04,
162336 t_TAIL_05,
162337 t_TAIL_06,
162338 t_TAIL_07> >::value,
162339 t_TYPE&>::type
162340variant<t_HEAD, t_TAIL_01,
162341 t_TAIL_02,
162342 t_TAIL_03,
162343 t_TAIL_04,
162344 t_TAIL_05,
162345 t_TAIL_06,
162346 t_TAIL_07,
162347 BSLS_COMPILERFEATURES_FILLT(11)
162348 >::emplace(const t_ARG_01& arg_01,
162349 const t_ARG_02& arg_02,
162350 const t_ARG_03& arg_03)
162351{
162352 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162353
162354 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162355
162356 return bsl::get<index>(*this);
162357}
162358#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
162359
162360#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
162361template <class t_HEAD, class t_TAIL_01,
162362 class t_TAIL_02,
162363 class t_TAIL_03,
162364 class t_TAIL_04,
162365 class t_TAIL_05,
162366 class t_TAIL_06,
162367 class t_TAIL_07,
162368 class t_TAIL_08>
162369template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162370typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162371 t_TYPE,
162372 variant<t_HEAD, t_TAIL_01,
162373 t_TAIL_02,
162374 t_TAIL_03,
162375 t_TAIL_04,
162376 t_TAIL_05,
162377 t_TAIL_06,
162378 t_TAIL_07,
162379 t_TAIL_08> >::value,
162380 t_TYPE&>::type
162381variant<t_HEAD, t_TAIL_01,
162382 t_TAIL_02,
162383 t_TAIL_03,
162384 t_TAIL_04,
162385 t_TAIL_05,
162386 t_TAIL_06,
162387 t_TAIL_07,
162388 t_TAIL_08,
162389 BSLS_COMPILERFEATURES_FILLT(10)
162390 >::emplace(const t_ARG_01& arg_01,
162391 const t_ARG_02& arg_02,
162392 const t_ARG_03& arg_03)
162393{
162394 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162395
162396 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162397
162398 return bsl::get<index>(*this);
162399}
162400#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
162401
162402#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
162403template <class t_HEAD, class t_TAIL_01,
162404 class t_TAIL_02,
162405 class t_TAIL_03,
162406 class t_TAIL_04,
162407 class t_TAIL_05,
162408 class t_TAIL_06,
162409 class t_TAIL_07,
162410 class t_TAIL_08,
162411 class t_TAIL_09>
162412template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162413typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162414 t_TYPE,
162415 variant<t_HEAD, t_TAIL_01,
162416 t_TAIL_02,
162417 t_TAIL_03,
162418 t_TAIL_04,
162419 t_TAIL_05,
162420 t_TAIL_06,
162421 t_TAIL_07,
162422 t_TAIL_08,
162423 t_TAIL_09> >::value,
162424 t_TYPE&>::type
162425variant<t_HEAD, t_TAIL_01,
162426 t_TAIL_02,
162427 t_TAIL_03,
162428 t_TAIL_04,
162429 t_TAIL_05,
162430 t_TAIL_06,
162431 t_TAIL_07,
162432 t_TAIL_08,
162433 t_TAIL_09,
162434 BSLS_COMPILERFEATURES_FILLT( 9)
162435 >::emplace(const t_ARG_01& arg_01,
162436 const t_ARG_02& arg_02,
162437 const t_ARG_03& arg_03)
162438{
162439 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162440
162441 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162442
162443 return bsl::get<index>(*this);
162444}
162445#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
162446
162447#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
162448template <class t_HEAD, class t_TAIL_01,
162449 class t_TAIL_02,
162450 class t_TAIL_03,
162451 class t_TAIL_04,
162452 class t_TAIL_05,
162453 class t_TAIL_06,
162454 class t_TAIL_07,
162455 class t_TAIL_08,
162456 class t_TAIL_09,
162457 class t_TAIL_10>
162458template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162459typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162460 t_TYPE,
162461 variant<t_HEAD, t_TAIL_01,
162462 t_TAIL_02,
162463 t_TAIL_03,
162464 t_TAIL_04,
162465 t_TAIL_05,
162466 t_TAIL_06,
162467 t_TAIL_07,
162468 t_TAIL_08,
162469 t_TAIL_09,
162470 t_TAIL_10> >::value,
162471 t_TYPE&>::type
162472variant<t_HEAD, t_TAIL_01,
162473 t_TAIL_02,
162474 t_TAIL_03,
162475 t_TAIL_04,
162476 t_TAIL_05,
162477 t_TAIL_06,
162478 t_TAIL_07,
162479 t_TAIL_08,
162480 t_TAIL_09,
162481 t_TAIL_10,
162482 BSLS_COMPILERFEATURES_FILLT( 8)
162483 >::emplace(const t_ARG_01& arg_01,
162484 const t_ARG_02& arg_02,
162485 const t_ARG_03& arg_03)
162486{
162487 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162488
162489 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162490
162491 return bsl::get<index>(*this);
162492}
162493#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
162494
162495#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
162496template <class t_HEAD, class t_TAIL_01,
162497 class t_TAIL_02,
162498 class t_TAIL_03,
162499 class t_TAIL_04,
162500 class t_TAIL_05,
162501 class t_TAIL_06,
162502 class t_TAIL_07,
162503 class t_TAIL_08,
162504 class t_TAIL_09,
162505 class t_TAIL_10,
162506 class t_TAIL_11>
162507template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162508typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162509 t_TYPE,
162510 variant<t_HEAD, t_TAIL_01,
162511 t_TAIL_02,
162512 t_TAIL_03,
162513 t_TAIL_04,
162514 t_TAIL_05,
162515 t_TAIL_06,
162516 t_TAIL_07,
162517 t_TAIL_08,
162518 t_TAIL_09,
162519 t_TAIL_10,
162520 t_TAIL_11> >::value,
162521 t_TYPE&>::type
162522variant<t_HEAD, t_TAIL_01,
162523 t_TAIL_02,
162524 t_TAIL_03,
162525 t_TAIL_04,
162526 t_TAIL_05,
162527 t_TAIL_06,
162528 t_TAIL_07,
162529 t_TAIL_08,
162530 t_TAIL_09,
162531 t_TAIL_10,
162532 t_TAIL_11,
162533 BSLS_COMPILERFEATURES_FILLT( 7)
162534 >::emplace(const t_ARG_01& arg_01,
162535 const t_ARG_02& arg_02,
162536 const t_ARG_03& arg_03)
162537{
162538 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162539
162540 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162541
162542 return bsl::get<index>(*this);
162543}
162544#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
162545
162546#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
162547template <class t_HEAD, class t_TAIL_01,
162548 class t_TAIL_02,
162549 class t_TAIL_03,
162550 class t_TAIL_04,
162551 class t_TAIL_05,
162552 class t_TAIL_06,
162553 class t_TAIL_07,
162554 class t_TAIL_08,
162555 class t_TAIL_09,
162556 class t_TAIL_10,
162557 class t_TAIL_11,
162558 class t_TAIL_12>
162559template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162560typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162561 t_TYPE,
162562 variant<t_HEAD, t_TAIL_01,
162563 t_TAIL_02,
162564 t_TAIL_03,
162565 t_TAIL_04,
162566 t_TAIL_05,
162567 t_TAIL_06,
162568 t_TAIL_07,
162569 t_TAIL_08,
162570 t_TAIL_09,
162571 t_TAIL_10,
162572 t_TAIL_11,
162573 t_TAIL_12> >::value,
162574 t_TYPE&>::type
162575variant<t_HEAD, t_TAIL_01,
162576 t_TAIL_02,
162577 t_TAIL_03,
162578 t_TAIL_04,
162579 t_TAIL_05,
162580 t_TAIL_06,
162581 t_TAIL_07,
162582 t_TAIL_08,
162583 t_TAIL_09,
162584 t_TAIL_10,
162585 t_TAIL_11,
162586 t_TAIL_12,
162587 BSLS_COMPILERFEATURES_FILLT( 6)
162588 >::emplace(const t_ARG_01& arg_01,
162589 const t_ARG_02& arg_02,
162590 const t_ARG_03& arg_03)
162591{
162592 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162593
162594 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162595
162596 return bsl::get<index>(*this);
162597}
162598#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
162599
162600#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
162601template <class t_HEAD, class t_TAIL_01,
162602 class t_TAIL_02,
162603 class t_TAIL_03,
162604 class t_TAIL_04,
162605 class t_TAIL_05,
162606 class t_TAIL_06,
162607 class t_TAIL_07,
162608 class t_TAIL_08,
162609 class t_TAIL_09,
162610 class t_TAIL_10,
162611 class t_TAIL_11,
162612 class t_TAIL_12,
162613 class t_TAIL_13>
162614template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162615typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162616 t_TYPE,
162617 variant<t_HEAD, t_TAIL_01,
162618 t_TAIL_02,
162619 t_TAIL_03,
162620 t_TAIL_04,
162621 t_TAIL_05,
162622 t_TAIL_06,
162623 t_TAIL_07,
162624 t_TAIL_08,
162625 t_TAIL_09,
162626 t_TAIL_10,
162627 t_TAIL_11,
162628 t_TAIL_12,
162629 t_TAIL_13> >::value,
162630 t_TYPE&>::type
162631variant<t_HEAD, t_TAIL_01,
162632 t_TAIL_02,
162633 t_TAIL_03,
162634 t_TAIL_04,
162635 t_TAIL_05,
162636 t_TAIL_06,
162637 t_TAIL_07,
162638 t_TAIL_08,
162639 t_TAIL_09,
162640 t_TAIL_10,
162641 t_TAIL_11,
162642 t_TAIL_12,
162643 t_TAIL_13,
162644 BSLS_COMPILERFEATURES_FILLT( 5)
162645 >::emplace(const t_ARG_01& arg_01,
162646 const t_ARG_02& arg_02,
162647 const t_ARG_03& arg_03)
162648{
162649 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162650
162651 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162652
162653 return bsl::get<index>(*this);
162654}
162655#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
162656
162657#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
162658template <class t_HEAD, class t_TAIL_01,
162659 class t_TAIL_02,
162660 class t_TAIL_03,
162661 class t_TAIL_04,
162662 class t_TAIL_05,
162663 class t_TAIL_06,
162664 class t_TAIL_07,
162665 class t_TAIL_08,
162666 class t_TAIL_09,
162667 class t_TAIL_10,
162668 class t_TAIL_11,
162669 class t_TAIL_12,
162670 class t_TAIL_13,
162671 class t_TAIL_14>
162672template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162673typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162674 t_TYPE,
162675 variant<t_HEAD, t_TAIL_01,
162676 t_TAIL_02,
162677 t_TAIL_03,
162678 t_TAIL_04,
162679 t_TAIL_05,
162680 t_TAIL_06,
162681 t_TAIL_07,
162682 t_TAIL_08,
162683 t_TAIL_09,
162684 t_TAIL_10,
162685 t_TAIL_11,
162686 t_TAIL_12,
162687 t_TAIL_13,
162688 t_TAIL_14> >::value,
162689 t_TYPE&>::type
162690variant<t_HEAD, t_TAIL_01,
162691 t_TAIL_02,
162692 t_TAIL_03,
162693 t_TAIL_04,
162694 t_TAIL_05,
162695 t_TAIL_06,
162696 t_TAIL_07,
162697 t_TAIL_08,
162698 t_TAIL_09,
162699 t_TAIL_10,
162700 t_TAIL_11,
162701 t_TAIL_12,
162702 t_TAIL_13,
162703 t_TAIL_14,
162704 BSLS_COMPILERFEATURES_FILLT( 4)
162705 >::emplace(const t_ARG_01& arg_01,
162706 const t_ARG_02& arg_02,
162707 const t_ARG_03& arg_03)
162708{
162709 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162710
162711 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162712
162713 return bsl::get<index>(*this);
162714}
162715#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
162716
162717#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
162718template <class t_HEAD, class t_TAIL_01,
162719 class t_TAIL_02,
162720 class t_TAIL_03,
162721 class t_TAIL_04,
162722 class t_TAIL_05,
162723 class t_TAIL_06,
162724 class t_TAIL_07,
162725 class t_TAIL_08,
162726 class t_TAIL_09,
162727 class t_TAIL_10,
162728 class t_TAIL_11,
162729 class t_TAIL_12,
162730 class t_TAIL_13,
162731 class t_TAIL_14,
162732 class t_TAIL_15>
162733template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162734typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162735 t_TYPE,
162736 variant<t_HEAD, t_TAIL_01,
162737 t_TAIL_02,
162738 t_TAIL_03,
162739 t_TAIL_04,
162740 t_TAIL_05,
162741 t_TAIL_06,
162742 t_TAIL_07,
162743 t_TAIL_08,
162744 t_TAIL_09,
162745 t_TAIL_10,
162746 t_TAIL_11,
162747 t_TAIL_12,
162748 t_TAIL_13,
162749 t_TAIL_14,
162750 t_TAIL_15> >::value,
162751 t_TYPE&>::type
162752variant<t_HEAD, t_TAIL_01,
162753 t_TAIL_02,
162754 t_TAIL_03,
162755 t_TAIL_04,
162756 t_TAIL_05,
162757 t_TAIL_06,
162758 t_TAIL_07,
162759 t_TAIL_08,
162760 t_TAIL_09,
162761 t_TAIL_10,
162762 t_TAIL_11,
162763 t_TAIL_12,
162764 t_TAIL_13,
162765 t_TAIL_14,
162766 t_TAIL_15,
162767 BSLS_COMPILERFEATURES_FILLT( 3)
162768 >::emplace(const t_ARG_01& arg_01,
162769 const t_ARG_02& arg_02,
162770 const t_ARG_03& arg_03)
162771{
162772 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162773
162774 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162775
162776 return bsl::get<index>(*this);
162777}
162778#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
162779
162780#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
162781template <class t_HEAD, class t_TAIL_01,
162782 class t_TAIL_02,
162783 class t_TAIL_03,
162784 class t_TAIL_04,
162785 class t_TAIL_05,
162786 class t_TAIL_06,
162787 class t_TAIL_07,
162788 class t_TAIL_08,
162789 class t_TAIL_09,
162790 class t_TAIL_10,
162791 class t_TAIL_11,
162792 class t_TAIL_12,
162793 class t_TAIL_13,
162794 class t_TAIL_14,
162795 class t_TAIL_15,
162796 class t_TAIL_16>
162797template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162798typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162799 t_TYPE,
162800 variant<t_HEAD, t_TAIL_01,
162801 t_TAIL_02,
162802 t_TAIL_03,
162803 t_TAIL_04,
162804 t_TAIL_05,
162805 t_TAIL_06,
162806 t_TAIL_07,
162807 t_TAIL_08,
162808 t_TAIL_09,
162809 t_TAIL_10,
162810 t_TAIL_11,
162811 t_TAIL_12,
162812 t_TAIL_13,
162813 t_TAIL_14,
162814 t_TAIL_15,
162815 t_TAIL_16> >::value,
162816 t_TYPE&>::type
162817variant<t_HEAD, t_TAIL_01,
162818 t_TAIL_02,
162819 t_TAIL_03,
162820 t_TAIL_04,
162821 t_TAIL_05,
162822 t_TAIL_06,
162823 t_TAIL_07,
162824 t_TAIL_08,
162825 t_TAIL_09,
162826 t_TAIL_10,
162827 t_TAIL_11,
162828 t_TAIL_12,
162829 t_TAIL_13,
162830 t_TAIL_14,
162831 t_TAIL_15,
162832 t_TAIL_16,
162833 BSLS_COMPILERFEATURES_FILLT( 2)
162834 >::emplace(const t_ARG_01& arg_01,
162835 const t_ARG_02& arg_02,
162836 const t_ARG_03& arg_03)
162837{
162838 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162839
162840 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162841
162842 return bsl::get<index>(*this);
162843}
162844#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
162845
162846#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
162847template <class t_HEAD, class t_TAIL_01,
162848 class t_TAIL_02,
162849 class t_TAIL_03,
162850 class t_TAIL_04,
162851 class t_TAIL_05,
162852 class t_TAIL_06,
162853 class t_TAIL_07,
162854 class t_TAIL_08,
162855 class t_TAIL_09,
162856 class t_TAIL_10,
162857 class t_TAIL_11,
162858 class t_TAIL_12,
162859 class t_TAIL_13,
162860 class t_TAIL_14,
162861 class t_TAIL_15,
162862 class t_TAIL_16,
162863 class t_TAIL_17>
162864template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162865typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162866 t_TYPE,
162867 variant<t_HEAD, t_TAIL_01,
162868 t_TAIL_02,
162869 t_TAIL_03,
162870 t_TAIL_04,
162871 t_TAIL_05,
162872 t_TAIL_06,
162873 t_TAIL_07,
162874 t_TAIL_08,
162875 t_TAIL_09,
162876 t_TAIL_10,
162877 t_TAIL_11,
162878 t_TAIL_12,
162879 t_TAIL_13,
162880 t_TAIL_14,
162881 t_TAIL_15,
162882 t_TAIL_16,
162883 t_TAIL_17> >::value,
162884 t_TYPE&>::type
162885variant<t_HEAD, t_TAIL_01,
162886 t_TAIL_02,
162887 t_TAIL_03,
162888 t_TAIL_04,
162889 t_TAIL_05,
162890 t_TAIL_06,
162891 t_TAIL_07,
162892 t_TAIL_08,
162893 t_TAIL_09,
162894 t_TAIL_10,
162895 t_TAIL_11,
162896 t_TAIL_12,
162897 t_TAIL_13,
162898 t_TAIL_14,
162899 t_TAIL_15,
162900 t_TAIL_16,
162901 t_TAIL_17,
162902 BSLS_COMPILERFEATURES_FILLT( 1)
162903 >::emplace(const t_ARG_01& arg_01,
162904 const t_ARG_02& arg_02,
162905 const t_ARG_03& arg_03)
162906{
162907 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162908
162909 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162910
162911 return bsl::get<index>(*this);
162912}
162913#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
162914
162915#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
162916template <class t_HEAD, class t_TAIL_01,
162917 class t_TAIL_02,
162918 class t_TAIL_03,
162919 class t_TAIL_04,
162920 class t_TAIL_05,
162921 class t_TAIL_06,
162922 class t_TAIL_07,
162923 class t_TAIL_08,
162924 class t_TAIL_09,
162925 class t_TAIL_10,
162926 class t_TAIL_11,
162927 class t_TAIL_12,
162928 class t_TAIL_13,
162929 class t_TAIL_14,
162930 class t_TAIL_15,
162931 class t_TAIL_16,
162932 class t_TAIL_17,
162933 class t_TAIL_18>
162934template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
162935typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162936 t_TYPE,
162937 variant<t_HEAD, t_TAIL_01,
162938 t_TAIL_02,
162939 t_TAIL_03,
162940 t_TAIL_04,
162941 t_TAIL_05,
162942 t_TAIL_06,
162943 t_TAIL_07,
162944 t_TAIL_08,
162945 t_TAIL_09,
162946 t_TAIL_10,
162947 t_TAIL_11,
162948 t_TAIL_12,
162949 t_TAIL_13,
162950 t_TAIL_14,
162951 t_TAIL_15,
162952 t_TAIL_16,
162953 t_TAIL_17,
162954 t_TAIL_18> >::value,
162955 t_TYPE&>::type
162956variant<t_HEAD, t_TAIL_01,
162957 t_TAIL_02,
162958 t_TAIL_03,
162959 t_TAIL_04,
162960 t_TAIL_05,
162961 t_TAIL_06,
162962 t_TAIL_07,
162963 t_TAIL_08,
162964 t_TAIL_09,
162965 t_TAIL_10,
162966 t_TAIL_11,
162967 t_TAIL_12,
162968 t_TAIL_13,
162969 t_TAIL_14,
162970 t_TAIL_15,
162971 t_TAIL_16,
162972 t_TAIL_17,
162973 t_TAIL_18,
162974 BSLS_COMPILERFEATURES_FILLT( 0)
162975 >::emplace(const t_ARG_01& arg_01,
162976 const t_ARG_02& arg_02,
162977 const t_ARG_03& arg_03)
162978{
162979 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
162980
162981 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
162982
162983 return bsl::get<index>(*this);
162984}
162985#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
162986
162987
162988#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
162989template <class t_HEAD>
162990template <class t_TYPE,
162991 class t_ARG_01,
162992 class t_ARG_02,
162993 class t_ARG_03,
162994 class t_ARG_04>
162995typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
162996 t_TYPE,
162997 variant<t_HEAD> >::value,
162998 t_TYPE&>::type
162999variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
163000 >::emplace(const t_ARG_01& arg_01,
163001 const t_ARG_02& arg_02,
163002 const t_ARG_03& arg_03,
163003 const t_ARG_04& arg_04)
163004{
163005 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163006
163007 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163008
163009 return bsl::get<index>(*this);
163010}
163011#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
163012
163013#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
163014template <class t_HEAD, class t_TAIL_01>
163015template <class t_TYPE,
163016 class t_ARG_01,
163017 class t_ARG_02,
163018 class t_ARG_03,
163019 class t_ARG_04>
163020typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163021 t_TYPE,
163022 variant<t_HEAD, t_TAIL_01> >::value,
163023 t_TYPE&>::type
163024variant<t_HEAD, t_TAIL_01,
163025 BSLS_COMPILERFEATURES_FILLT(17)
163026 >::emplace(const t_ARG_01& arg_01,
163027 const t_ARG_02& arg_02,
163028 const t_ARG_03& arg_03,
163029 const t_ARG_04& arg_04)
163030{
163031 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163032
163033 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163034
163035 return bsl::get<index>(*this);
163036}
163037#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
163038
163039#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
163040template <class t_HEAD, class t_TAIL_01,
163041 class t_TAIL_02>
163042template <class t_TYPE,
163043 class t_ARG_01,
163044 class t_ARG_02,
163045 class t_ARG_03,
163046 class t_ARG_04>
163047typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163048 t_TYPE,
163049 variant<t_HEAD, t_TAIL_01,
163050 t_TAIL_02> >::value,
163051 t_TYPE&>::type
163052variant<t_HEAD, t_TAIL_01,
163053 t_TAIL_02,
163054 BSLS_COMPILERFEATURES_FILLT(16)
163055 >::emplace(const t_ARG_01& arg_01,
163056 const t_ARG_02& arg_02,
163057 const t_ARG_03& arg_03,
163058 const t_ARG_04& arg_04)
163059{
163060 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163061
163062 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163063
163064 return bsl::get<index>(*this);
163065}
163066#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
163067
163068#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
163069template <class t_HEAD, class t_TAIL_01,
163070 class t_TAIL_02,
163071 class t_TAIL_03>
163072template <class t_TYPE,
163073 class t_ARG_01,
163074 class t_ARG_02,
163075 class t_ARG_03,
163076 class t_ARG_04>
163077typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163078 t_TYPE,
163079 variant<t_HEAD, t_TAIL_01,
163080 t_TAIL_02,
163081 t_TAIL_03> >::value,
163082 t_TYPE&>::type
163083variant<t_HEAD, t_TAIL_01,
163084 t_TAIL_02,
163085 t_TAIL_03,
163086 BSLS_COMPILERFEATURES_FILLT(15)
163087 >::emplace(const t_ARG_01& arg_01,
163088 const t_ARG_02& arg_02,
163089 const t_ARG_03& arg_03,
163090 const t_ARG_04& arg_04)
163091{
163092 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163093
163094 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163095
163096 return bsl::get<index>(*this);
163097}
163098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
163099
163100#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
163101template <class t_HEAD, class t_TAIL_01,
163102 class t_TAIL_02,
163103 class t_TAIL_03,
163104 class t_TAIL_04>
163105template <class t_TYPE,
163106 class t_ARG_01,
163107 class t_ARG_02,
163108 class t_ARG_03,
163109 class t_ARG_04>
163110typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163111 t_TYPE,
163112 variant<t_HEAD, t_TAIL_01,
163113 t_TAIL_02,
163114 t_TAIL_03,
163115 t_TAIL_04> >::value,
163116 t_TYPE&>::type
163117variant<t_HEAD, t_TAIL_01,
163118 t_TAIL_02,
163119 t_TAIL_03,
163120 t_TAIL_04,
163121 BSLS_COMPILERFEATURES_FILLT(14)
163122 >::emplace(const t_ARG_01& arg_01,
163123 const t_ARG_02& arg_02,
163124 const t_ARG_03& arg_03,
163125 const t_ARG_04& arg_04)
163126{
163127 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163128
163129 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163130
163131 return bsl::get<index>(*this);
163132}
163133#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
163134
163135#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
163136template <class t_HEAD, class t_TAIL_01,
163137 class t_TAIL_02,
163138 class t_TAIL_03,
163139 class t_TAIL_04,
163140 class t_TAIL_05>
163141template <class t_TYPE,
163142 class t_ARG_01,
163143 class t_ARG_02,
163144 class t_ARG_03,
163145 class t_ARG_04>
163146typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163147 t_TYPE,
163148 variant<t_HEAD, t_TAIL_01,
163149 t_TAIL_02,
163150 t_TAIL_03,
163151 t_TAIL_04,
163152 t_TAIL_05> >::value,
163153 t_TYPE&>::type
163154variant<t_HEAD, t_TAIL_01,
163155 t_TAIL_02,
163156 t_TAIL_03,
163157 t_TAIL_04,
163158 t_TAIL_05,
163159 BSLS_COMPILERFEATURES_FILLT(13)
163160 >::emplace(const t_ARG_01& arg_01,
163161 const t_ARG_02& arg_02,
163162 const t_ARG_03& arg_03,
163163 const t_ARG_04& arg_04)
163164{
163165 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163166
163167 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163168
163169 return bsl::get<index>(*this);
163170}
163171#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
163172
163173#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
163174template <class t_HEAD, class t_TAIL_01,
163175 class t_TAIL_02,
163176 class t_TAIL_03,
163177 class t_TAIL_04,
163178 class t_TAIL_05,
163179 class t_TAIL_06>
163180template <class t_TYPE,
163181 class t_ARG_01,
163182 class t_ARG_02,
163183 class t_ARG_03,
163184 class t_ARG_04>
163185typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163186 t_TYPE,
163187 variant<t_HEAD, t_TAIL_01,
163188 t_TAIL_02,
163189 t_TAIL_03,
163190 t_TAIL_04,
163191 t_TAIL_05,
163192 t_TAIL_06> >::value,
163193 t_TYPE&>::type
163194variant<t_HEAD, t_TAIL_01,
163195 t_TAIL_02,
163196 t_TAIL_03,
163197 t_TAIL_04,
163198 t_TAIL_05,
163199 t_TAIL_06,
163200 BSLS_COMPILERFEATURES_FILLT(12)
163201 >::emplace(const t_ARG_01& arg_01,
163202 const t_ARG_02& arg_02,
163203 const t_ARG_03& arg_03,
163204 const t_ARG_04& arg_04)
163205{
163206 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163207
163208 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163209
163210 return bsl::get<index>(*this);
163211}
163212#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
163213
163214#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
163215template <class t_HEAD, class t_TAIL_01,
163216 class t_TAIL_02,
163217 class t_TAIL_03,
163218 class t_TAIL_04,
163219 class t_TAIL_05,
163220 class t_TAIL_06,
163221 class t_TAIL_07>
163222template <class t_TYPE,
163223 class t_ARG_01,
163224 class t_ARG_02,
163225 class t_ARG_03,
163226 class t_ARG_04>
163227typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163228 t_TYPE,
163229 variant<t_HEAD, t_TAIL_01,
163230 t_TAIL_02,
163231 t_TAIL_03,
163232 t_TAIL_04,
163233 t_TAIL_05,
163234 t_TAIL_06,
163235 t_TAIL_07> >::value,
163236 t_TYPE&>::type
163237variant<t_HEAD, t_TAIL_01,
163238 t_TAIL_02,
163239 t_TAIL_03,
163240 t_TAIL_04,
163241 t_TAIL_05,
163242 t_TAIL_06,
163243 t_TAIL_07,
163244 BSLS_COMPILERFEATURES_FILLT(11)
163245 >::emplace(const t_ARG_01& arg_01,
163246 const t_ARG_02& arg_02,
163247 const t_ARG_03& arg_03,
163248 const t_ARG_04& arg_04)
163249{
163250 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163251
163252 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163253
163254 return bsl::get<index>(*this);
163255}
163256#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
163257
163258#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
163259template <class t_HEAD, class t_TAIL_01,
163260 class t_TAIL_02,
163261 class t_TAIL_03,
163262 class t_TAIL_04,
163263 class t_TAIL_05,
163264 class t_TAIL_06,
163265 class t_TAIL_07,
163266 class t_TAIL_08>
163267template <class t_TYPE,
163268 class t_ARG_01,
163269 class t_ARG_02,
163270 class t_ARG_03,
163271 class t_ARG_04>
163272typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163273 t_TYPE,
163274 variant<t_HEAD, t_TAIL_01,
163275 t_TAIL_02,
163276 t_TAIL_03,
163277 t_TAIL_04,
163278 t_TAIL_05,
163279 t_TAIL_06,
163280 t_TAIL_07,
163281 t_TAIL_08> >::value,
163282 t_TYPE&>::type
163283variant<t_HEAD, t_TAIL_01,
163284 t_TAIL_02,
163285 t_TAIL_03,
163286 t_TAIL_04,
163287 t_TAIL_05,
163288 t_TAIL_06,
163289 t_TAIL_07,
163290 t_TAIL_08,
163291 BSLS_COMPILERFEATURES_FILLT(10)
163292 >::emplace(const t_ARG_01& arg_01,
163293 const t_ARG_02& arg_02,
163294 const t_ARG_03& arg_03,
163295 const t_ARG_04& arg_04)
163296{
163297 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163298
163299 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163300
163301 return bsl::get<index>(*this);
163302}
163303#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
163304
163305#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
163306template <class t_HEAD, class t_TAIL_01,
163307 class t_TAIL_02,
163308 class t_TAIL_03,
163309 class t_TAIL_04,
163310 class t_TAIL_05,
163311 class t_TAIL_06,
163312 class t_TAIL_07,
163313 class t_TAIL_08,
163314 class t_TAIL_09>
163315template <class t_TYPE,
163316 class t_ARG_01,
163317 class t_ARG_02,
163318 class t_ARG_03,
163319 class t_ARG_04>
163320typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163321 t_TYPE,
163322 variant<t_HEAD, t_TAIL_01,
163323 t_TAIL_02,
163324 t_TAIL_03,
163325 t_TAIL_04,
163326 t_TAIL_05,
163327 t_TAIL_06,
163328 t_TAIL_07,
163329 t_TAIL_08,
163330 t_TAIL_09> >::value,
163331 t_TYPE&>::type
163332variant<t_HEAD, t_TAIL_01,
163333 t_TAIL_02,
163334 t_TAIL_03,
163335 t_TAIL_04,
163336 t_TAIL_05,
163337 t_TAIL_06,
163338 t_TAIL_07,
163339 t_TAIL_08,
163340 t_TAIL_09,
163341 BSLS_COMPILERFEATURES_FILLT( 9)
163342 >::emplace(const t_ARG_01& arg_01,
163343 const t_ARG_02& arg_02,
163344 const t_ARG_03& arg_03,
163345 const t_ARG_04& arg_04)
163346{
163347 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163348
163349 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163350
163351 return bsl::get<index>(*this);
163352}
163353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
163354
163355#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
163356template <class t_HEAD, class t_TAIL_01,
163357 class t_TAIL_02,
163358 class t_TAIL_03,
163359 class t_TAIL_04,
163360 class t_TAIL_05,
163361 class t_TAIL_06,
163362 class t_TAIL_07,
163363 class t_TAIL_08,
163364 class t_TAIL_09,
163365 class t_TAIL_10>
163366template <class t_TYPE,
163367 class t_ARG_01,
163368 class t_ARG_02,
163369 class t_ARG_03,
163370 class t_ARG_04>
163371typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163372 t_TYPE,
163373 variant<t_HEAD, t_TAIL_01,
163374 t_TAIL_02,
163375 t_TAIL_03,
163376 t_TAIL_04,
163377 t_TAIL_05,
163378 t_TAIL_06,
163379 t_TAIL_07,
163380 t_TAIL_08,
163381 t_TAIL_09,
163382 t_TAIL_10> >::value,
163383 t_TYPE&>::type
163384variant<t_HEAD, t_TAIL_01,
163385 t_TAIL_02,
163386 t_TAIL_03,
163387 t_TAIL_04,
163388 t_TAIL_05,
163389 t_TAIL_06,
163390 t_TAIL_07,
163391 t_TAIL_08,
163392 t_TAIL_09,
163393 t_TAIL_10,
163394 BSLS_COMPILERFEATURES_FILLT( 8)
163395 >::emplace(const t_ARG_01& arg_01,
163396 const t_ARG_02& arg_02,
163397 const t_ARG_03& arg_03,
163398 const t_ARG_04& arg_04)
163399{
163400 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163401
163402 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163403
163404 return bsl::get<index>(*this);
163405}
163406#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
163407
163408#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
163409template <class t_HEAD, class t_TAIL_01,
163410 class t_TAIL_02,
163411 class t_TAIL_03,
163412 class t_TAIL_04,
163413 class t_TAIL_05,
163414 class t_TAIL_06,
163415 class t_TAIL_07,
163416 class t_TAIL_08,
163417 class t_TAIL_09,
163418 class t_TAIL_10,
163419 class t_TAIL_11>
163420template <class t_TYPE,
163421 class t_ARG_01,
163422 class t_ARG_02,
163423 class t_ARG_03,
163424 class t_ARG_04>
163425typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163426 t_TYPE,
163427 variant<t_HEAD, t_TAIL_01,
163428 t_TAIL_02,
163429 t_TAIL_03,
163430 t_TAIL_04,
163431 t_TAIL_05,
163432 t_TAIL_06,
163433 t_TAIL_07,
163434 t_TAIL_08,
163435 t_TAIL_09,
163436 t_TAIL_10,
163437 t_TAIL_11> >::value,
163438 t_TYPE&>::type
163439variant<t_HEAD, t_TAIL_01,
163440 t_TAIL_02,
163441 t_TAIL_03,
163442 t_TAIL_04,
163443 t_TAIL_05,
163444 t_TAIL_06,
163445 t_TAIL_07,
163446 t_TAIL_08,
163447 t_TAIL_09,
163448 t_TAIL_10,
163449 t_TAIL_11,
163450 BSLS_COMPILERFEATURES_FILLT( 7)
163451 >::emplace(const t_ARG_01& arg_01,
163452 const t_ARG_02& arg_02,
163453 const t_ARG_03& arg_03,
163454 const t_ARG_04& arg_04)
163455{
163456 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163457
163458 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163459
163460 return bsl::get<index>(*this);
163461}
163462#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
163463
163464#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
163465template <class t_HEAD, class t_TAIL_01,
163466 class t_TAIL_02,
163467 class t_TAIL_03,
163468 class t_TAIL_04,
163469 class t_TAIL_05,
163470 class t_TAIL_06,
163471 class t_TAIL_07,
163472 class t_TAIL_08,
163473 class t_TAIL_09,
163474 class t_TAIL_10,
163475 class t_TAIL_11,
163476 class t_TAIL_12>
163477template <class t_TYPE,
163478 class t_ARG_01,
163479 class t_ARG_02,
163480 class t_ARG_03,
163481 class t_ARG_04>
163482typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163483 t_TYPE,
163484 variant<t_HEAD, t_TAIL_01,
163485 t_TAIL_02,
163486 t_TAIL_03,
163487 t_TAIL_04,
163488 t_TAIL_05,
163489 t_TAIL_06,
163490 t_TAIL_07,
163491 t_TAIL_08,
163492 t_TAIL_09,
163493 t_TAIL_10,
163494 t_TAIL_11,
163495 t_TAIL_12> >::value,
163496 t_TYPE&>::type
163497variant<t_HEAD, t_TAIL_01,
163498 t_TAIL_02,
163499 t_TAIL_03,
163500 t_TAIL_04,
163501 t_TAIL_05,
163502 t_TAIL_06,
163503 t_TAIL_07,
163504 t_TAIL_08,
163505 t_TAIL_09,
163506 t_TAIL_10,
163507 t_TAIL_11,
163508 t_TAIL_12,
163509 BSLS_COMPILERFEATURES_FILLT( 6)
163510 >::emplace(const t_ARG_01& arg_01,
163511 const t_ARG_02& arg_02,
163512 const t_ARG_03& arg_03,
163513 const t_ARG_04& arg_04)
163514{
163515 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163516
163517 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163518
163519 return bsl::get<index>(*this);
163520}
163521#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
163522
163523#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
163524template <class t_HEAD, class t_TAIL_01,
163525 class t_TAIL_02,
163526 class t_TAIL_03,
163527 class t_TAIL_04,
163528 class t_TAIL_05,
163529 class t_TAIL_06,
163530 class t_TAIL_07,
163531 class t_TAIL_08,
163532 class t_TAIL_09,
163533 class t_TAIL_10,
163534 class t_TAIL_11,
163535 class t_TAIL_12,
163536 class t_TAIL_13>
163537template <class t_TYPE,
163538 class t_ARG_01,
163539 class t_ARG_02,
163540 class t_ARG_03,
163541 class t_ARG_04>
163542typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163543 t_TYPE,
163544 variant<t_HEAD, t_TAIL_01,
163545 t_TAIL_02,
163546 t_TAIL_03,
163547 t_TAIL_04,
163548 t_TAIL_05,
163549 t_TAIL_06,
163550 t_TAIL_07,
163551 t_TAIL_08,
163552 t_TAIL_09,
163553 t_TAIL_10,
163554 t_TAIL_11,
163555 t_TAIL_12,
163556 t_TAIL_13> >::value,
163557 t_TYPE&>::type
163558variant<t_HEAD, t_TAIL_01,
163559 t_TAIL_02,
163560 t_TAIL_03,
163561 t_TAIL_04,
163562 t_TAIL_05,
163563 t_TAIL_06,
163564 t_TAIL_07,
163565 t_TAIL_08,
163566 t_TAIL_09,
163567 t_TAIL_10,
163568 t_TAIL_11,
163569 t_TAIL_12,
163570 t_TAIL_13,
163571 BSLS_COMPILERFEATURES_FILLT( 5)
163572 >::emplace(const t_ARG_01& arg_01,
163573 const t_ARG_02& arg_02,
163574 const t_ARG_03& arg_03,
163575 const t_ARG_04& arg_04)
163576{
163577 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163578
163579 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163580
163581 return bsl::get<index>(*this);
163582}
163583#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
163584
163585#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
163586template <class t_HEAD, class t_TAIL_01,
163587 class t_TAIL_02,
163588 class t_TAIL_03,
163589 class t_TAIL_04,
163590 class t_TAIL_05,
163591 class t_TAIL_06,
163592 class t_TAIL_07,
163593 class t_TAIL_08,
163594 class t_TAIL_09,
163595 class t_TAIL_10,
163596 class t_TAIL_11,
163597 class t_TAIL_12,
163598 class t_TAIL_13,
163599 class t_TAIL_14>
163600template <class t_TYPE,
163601 class t_ARG_01,
163602 class t_ARG_02,
163603 class t_ARG_03,
163604 class t_ARG_04>
163605typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163606 t_TYPE,
163607 variant<t_HEAD, t_TAIL_01,
163608 t_TAIL_02,
163609 t_TAIL_03,
163610 t_TAIL_04,
163611 t_TAIL_05,
163612 t_TAIL_06,
163613 t_TAIL_07,
163614 t_TAIL_08,
163615 t_TAIL_09,
163616 t_TAIL_10,
163617 t_TAIL_11,
163618 t_TAIL_12,
163619 t_TAIL_13,
163620 t_TAIL_14> >::value,
163621 t_TYPE&>::type
163622variant<t_HEAD, t_TAIL_01,
163623 t_TAIL_02,
163624 t_TAIL_03,
163625 t_TAIL_04,
163626 t_TAIL_05,
163627 t_TAIL_06,
163628 t_TAIL_07,
163629 t_TAIL_08,
163630 t_TAIL_09,
163631 t_TAIL_10,
163632 t_TAIL_11,
163633 t_TAIL_12,
163634 t_TAIL_13,
163635 t_TAIL_14,
163636 BSLS_COMPILERFEATURES_FILLT( 4)
163637 >::emplace(const t_ARG_01& arg_01,
163638 const t_ARG_02& arg_02,
163639 const t_ARG_03& arg_03,
163640 const t_ARG_04& arg_04)
163641{
163642 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163643
163644 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163645
163646 return bsl::get<index>(*this);
163647}
163648#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
163649
163650#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
163651template <class t_HEAD, class t_TAIL_01,
163652 class t_TAIL_02,
163653 class t_TAIL_03,
163654 class t_TAIL_04,
163655 class t_TAIL_05,
163656 class t_TAIL_06,
163657 class t_TAIL_07,
163658 class t_TAIL_08,
163659 class t_TAIL_09,
163660 class t_TAIL_10,
163661 class t_TAIL_11,
163662 class t_TAIL_12,
163663 class t_TAIL_13,
163664 class t_TAIL_14,
163665 class t_TAIL_15>
163666template <class t_TYPE,
163667 class t_ARG_01,
163668 class t_ARG_02,
163669 class t_ARG_03,
163670 class t_ARG_04>
163671typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163672 t_TYPE,
163673 variant<t_HEAD, t_TAIL_01,
163674 t_TAIL_02,
163675 t_TAIL_03,
163676 t_TAIL_04,
163677 t_TAIL_05,
163678 t_TAIL_06,
163679 t_TAIL_07,
163680 t_TAIL_08,
163681 t_TAIL_09,
163682 t_TAIL_10,
163683 t_TAIL_11,
163684 t_TAIL_12,
163685 t_TAIL_13,
163686 t_TAIL_14,
163687 t_TAIL_15> >::value,
163688 t_TYPE&>::type
163689variant<t_HEAD, t_TAIL_01,
163690 t_TAIL_02,
163691 t_TAIL_03,
163692 t_TAIL_04,
163693 t_TAIL_05,
163694 t_TAIL_06,
163695 t_TAIL_07,
163696 t_TAIL_08,
163697 t_TAIL_09,
163698 t_TAIL_10,
163699 t_TAIL_11,
163700 t_TAIL_12,
163701 t_TAIL_13,
163702 t_TAIL_14,
163703 t_TAIL_15,
163704 BSLS_COMPILERFEATURES_FILLT( 3)
163705 >::emplace(const t_ARG_01& arg_01,
163706 const t_ARG_02& arg_02,
163707 const t_ARG_03& arg_03,
163708 const t_ARG_04& arg_04)
163709{
163710 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163711
163712 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163713
163714 return bsl::get<index>(*this);
163715}
163716#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
163717
163718#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
163719template <class t_HEAD, class t_TAIL_01,
163720 class t_TAIL_02,
163721 class t_TAIL_03,
163722 class t_TAIL_04,
163723 class t_TAIL_05,
163724 class t_TAIL_06,
163725 class t_TAIL_07,
163726 class t_TAIL_08,
163727 class t_TAIL_09,
163728 class t_TAIL_10,
163729 class t_TAIL_11,
163730 class t_TAIL_12,
163731 class t_TAIL_13,
163732 class t_TAIL_14,
163733 class t_TAIL_15,
163734 class t_TAIL_16>
163735template <class t_TYPE,
163736 class t_ARG_01,
163737 class t_ARG_02,
163738 class t_ARG_03,
163739 class t_ARG_04>
163740typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163741 t_TYPE,
163742 variant<t_HEAD, t_TAIL_01,
163743 t_TAIL_02,
163744 t_TAIL_03,
163745 t_TAIL_04,
163746 t_TAIL_05,
163747 t_TAIL_06,
163748 t_TAIL_07,
163749 t_TAIL_08,
163750 t_TAIL_09,
163751 t_TAIL_10,
163752 t_TAIL_11,
163753 t_TAIL_12,
163754 t_TAIL_13,
163755 t_TAIL_14,
163756 t_TAIL_15,
163757 t_TAIL_16> >::value,
163758 t_TYPE&>::type
163759variant<t_HEAD, t_TAIL_01,
163760 t_TAIL_02,
163761 t_TAIL_03,
163762 t_TAIL_04,
163763 t_TAIL_05,
163764 t_TAIL_06,
163765 t_TAIL_07,
163766 t_TAIL_08,
163767 t_TAIL_09,
163768 t_TAIL_10,
163769 t_TAIL_11,
163770 t_TAIL_12,
163771 t_TAIL_13,
163772 t_TAIL_14,
163773 t_TAIL_15,
163774 t_TAIL_16,
163775 BSLS_COMPILERFEATURES_FILLT( 2)
163776 >::emplace(const t_ARG_01& arg_01,
163777 const t_ARG_02& arg_02,
163778 const t_ARG_03& arg_03,
163779 const t_ARG_04& arg_04)
163780{
163781 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163782
163783 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163784
163785 return bsl::get<index>(*this);
163786}
163787#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
163788
163789#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
163790template <class t_HEAD, class t_TAIL_01,
163791 class t_TAIL_02,
163792 class t_TAIL_03,
163793 class t_TAIL_04,
163794 class t_TAIL_05,
163795 class t_TAIL_06,
163796 class t_TAIL_07,
163797 class t_TAIL_08,
163798 class t_TAIL_09,
163799 class t_TAIL_10,
163800 class t_TAIL_11,
163801 class t_TAIL_12,
163802 class t_TAIL_13,
163803 class t_TAIL_14,
163804 class t_TAIL_15,
163805 class t_TAIL_16,
163806 class t_TAIL_17>
163807template <class t_TYPE,
163808 class t_ARG_01,
163809 class t_ARG_02,
163810 class t_ARG_03,
163811 class t_ARG_04>
163812typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163813 t_TYPE,
163814 variant<t_HEAD, t_TAIL_01,
163815 t_TAIL_02,
163816 t_TAIL_03,
163817 t_TAIL_04,
163818 t_TAIL_05,
163819 t_TAIL_06,
163820 t_TAIL_07,
163821 t_TAIL_08,
163822 t_TAIL_09,
163823 t_TAIL_10,
163824 t_TAIL_11,
163825 t_TAIL_12,
163826 t_TAIL_13,
163827 t_TAIL_14,
163828 t_TAIL_15,
163829 t_TAIL_16,
163830 t_TAIL_17> >::value,
163831 t_TYPE&>::type
163832variant<t_HEAD, t_TAIL_01,
163833 t_TAIL_02,
163834 t_TAIL_03,
163835 t_TAIL_04,
163836 t_TAIL_05,
163837 t_TAIL_06,
163838 t_TAIL_07,
163839 t_TAIL_08,
163840 t_TAIL_09,
163841 t_TAIL_10,
163842 t_TAIL_11,
163843 t_TAIL_12,
163844 t_TAIL_13,
163845 t_TAIL_14,
163846 t_TAIL_15,
163847 t_TAIL_16,
163848 t_TAIL_17,
163849 BSLS_COMPILERFEATURES_FILLT( 1)
163850 >::emplace(const t_ARG_01& arg_01,
163851 const t_ARG_02& arg_02,
163852 const t_ARG_03& arg_03,
163853 const t_ARG_04& arg_04)
163854{
163855 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163856
163857 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163858
163859 return bsl::get<index>(*this);
163860}
163861#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
163862
163863#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
163864template <class t_HEAD, class t_TAIL_01,
163865 class t_TAIL_02,
163866 class t_TAIL_03,
163867 class t_TAIL_04,
163868 class t_TAIL_05,
163869 class t_TAIL_06,
163870 class t_TAIL_07,
163871 class t_TAIL_08,
163872 class t_TAIL_09,
163873 class t_TAIL_10,
163874 class t_TAIL_11,
163875 class t_TAIL_12,
163876 class t_TAIL_13,
163877 class t_TAIL_14,
163878 class t_TAIL_15,
163879 class t_TAIL_16,
163880 class t_TAIL_17,
163881 class t_TAIL_18>
163882template <class t_TYPE,
163883 class t_ARG_01,
163884 class t_ARG_02,
163885 class t_ARG_03,
163886 class t_ARG_04>
163887typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163888 t_TYPE,
163889 variant<t_HEAD, t_TAIL_01,
163890 t_TAIL_02,
163891 t_TAIL_03,
163892 t_TAIL_04,
163893 t_TAIL_05,
163894 t_TAIL_06,
163895 t_TAIL_07,
163896 t_TAIL_08,
163897 t_TAIL_09,
163898 t_TAIL_10,
163899 t_TAIL_11,
163900 t_TAIL_12,
163901 t_TAIL_13,
163902 t_TAIL_14,
163903 t_TAIL_15,
163904 t_TAIL_16,
163905 t_TAIL_17,
163906 t_TAIL_18> >::value,
163907 t_TYPE&>::type
163908variant<t_HEAD, t_TAIL_01,
163909 t_TAIL_02,
163910 t_TAIL_03,
163911 t_TAIL_04,
163912 t_TAIL_05,
163913 t_TAIL_06,
163914 t_TAIL_07,
163915 t_TAIL_08,
163916 t_TAIL_09,
163917 t_TAIL_10,
163918 t_TAIL_11,
163919 t_TAIL_12,
163920 t_TAIL_13,
163921 t_TAIL_14,
163922 t_TAIL_15,
163923 t_TAIL_16,
163924 t_TAIL_17,
163925 t_TAIL_18,
163926 BSLS_COMPILERFEATURES_FILLT( 0)
163927 >::emplace(const t_ARG_01& arg_01,
163928 const t_ARG_02& arg_02,
163929 const t_ARG_03& arg_03,
163930 const t_ARG_04& arg_04)
163931{
163932 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163933
163934 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
163935
163936 return bsl::get<index>(*this);
163937}
163938#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
163939
163940
163941#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
163942template <class t_HEAD>
163943template <class t_TYPE,
163944 class t_ARG_01,
163945 class t_ARG_02,
163946 class t_ARG_03,
163947 class t_ARG_04,
163948 class t_ARG_05>
163949typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163950 t_TYPE,
163951 variant<t_HEAD> >::value,
163952 t_TYPE&>::type
163953variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
163954 >::emplace(const t_ARG_01& arg_01,
163955 const t_ARG_02& arg_02,
163956 const t_ARG_03& arg_03,
163957 const t_ARG_04& arg_04,
163958 const t_ARG_05& arg_05)
163959{
163960 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163961
163962 Variant_Base::template baseEmplace<index>(
163963 arg_01, arg_02, arg_03, arg_04, arg_05);
163964
163965 return bsl::get<index>(*this);
163966}
163967#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
163968
163969#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
163970template <class t_HEAD, class t_TAIL_01>
163971template <class t_TYPE,
163972 class t_ARG_01,
163973 class t_ARG_02,
163974 class t_ARG_03,
163975 class t_ARG_04,
163976 class t_ARG_05>
163977typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
163978 t_TYPE,
163979 variant<t_HEAD, t_TAIL_01> >::value,
163980 t_TYPE&>::type
163981variant<t_HEAD, t_TAIL_01,
163982 BSLS_COMPILERFEATURES_FILLT(17)
163983 >::emplace(const t_ARG_01& arg_01,
163984 const t_ARG_02& arg_02,
163985 const t_ARG_03& arg_03,
163986 const t_ARG_04& arg_04,
163987 const t_ARG_05& arg_05)
163988{
163989 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
163990
163991 Variant_Base::template baseEmplace<index>(
163992 arg_01, arg_02, arg_03, arg_04, arg_05);
163993
163994 return bsl::get<index>(*this);
163995}
163996#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
163997
163998#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
163999template <class t_HEAD, class t_TAIL_01,
164000 class t_TAIL_02>
164001template <class t_TYPE,
164002 class t_ARG_01,
164003 class t_ARG_02,
164004 class t_ARG_03,
164005 class t_ARG_04,
164006 class t_ARG_05>
164007typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164008 t_TYPE,
164009 variant<t_HEAD, t_TAIL_01,
164010 t_TAIL_02> >::value,
164011 t_TYPE&>::type
164012variant<t_HEAD, t_TAIL_01,
164013 t_TAIL_02,
164014 BSLS_COMPILERFEATURES_FILLT(16)
164015 >::emplace(const t_ARG_01& arg_01,
164016 const t_ARG_02& arg_02,
164017 const t_ARG_03& arg_03,
164018 const t_ARG_04& arg_04,
164019 const t_ARG_05& arg_05)
164020{
164021 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164022
164023 Variant_Base::template baseEmplace<index>(
164024 arg_01, arg_02, arg_03, arg_04, arg_05);
164025
164026 return bsl::get<index>(*this);
164027}
164028#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
164029
164030#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
164031template <class t_HEAD, class t_TAIL_01,
164032 class t_TAIL_02,
164033 class t_TAIL_03>
164034template <class t_TYPE,
164035 class t_ARG_01,
164036 class t_ARG_02,
164037 class t_ARG_03,
164038 class t_ARG_04,
164039 class t_ARG_05>
164040typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164041 t_TYPE,
164042 variant<t_HEAD, t_TAIL_01,
164043 t_TAIL_02,
164044 t_TAIL_03> >::value,
164045 t_TYPE&>::type
164046variant<t_HEAD, t_TAIL_01,
164047 t_TAIL_02,
164048 t_TAIL_03,
164049 BSLS_COMPILERFEATURES_FILLT(15)
164050 >::emplace(const t_ARG_01& arg_01,
164051 const t_ARG_02& arg_02,
164052 const t_ARG_03& arg_03,
164053 const t_ARG_04& arg_04,
164054 const t_ARG_05& arg_05)
164055{
164056 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164057
164058 Variant_Base::template baseEmplace<index>(
164059 arg_01, arg_02, arg_03, arg_04, arg_05);
164060
164061 return bsl::get<index>(*this);
164062}
164063#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
164064
164065#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
164066template <class t_HEAD, class t_TAIL_01,
164067 class t_TAIL_02,
164068 class t_TAIL_03,
164069 class t_TAIL_04>
164070template <class t_TYPE,
164071 class t_ARG_01,
164072 class t_ARG_02,
164073 class t_ARG_03,
164074 class t_ARG_04,
164075 class t_ARG_05>
164076typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164077 t_TYPE,
164078 variant<t_HEAD, t_TAIL_01,
164079 t_TAIL_02,
164080 t_TAIL_03,
164081 t_TAIL_04> >::value,
164082 t_TYPE&>::type
164083variant<t_HEAD, t_TAIL_01,
164084 t_TAIL_02,
164085 t_TAIL_03,
164086 t_TAIL_04,
164087 BSLS_COMPILERFEATURES_FILLT(14)
164088 >::emplace(const t_ARG_01& arg_01,
164089 const t_ARG_02& arg_02,
164090 const t_ARG_03& arg_03,
164091 const t_ARG_04& arg_04,
164092 const t_ARG_05& arg_05)
164093{
164094 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164095
164096 Variant_Base::template baseEmplace<index>(
164097 arg_01, arg_02, arg_03, arg_04, arg_05);
164098
164099 return bsl::get<index>(*this);
164100}
164101#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
164102
164103#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
164104template <class t_HEAD, class t_TAIL_01,
164105 class t_TAIL_02,
164106 class t_TAIL_03,
164107 class t_TAIL_04,
164108 class t_TAIL_05>
164109template <class t_TYPE,
164110 class t_ARG_01,
164111 class t_ARG_02,
164112 class t_ARG_03,
164113 class t_ARG_04,
164114 class t_ARG_05>
164115typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164116 t_TYPE,
164117 variant<t_HEAD, t_TAIL_01,
164118 t_TAIL_02,
164119 t_TAIL_03,
164120 t_TAIL_04,
164121 t_TAIL_05> >::value,
164122 t_TYPE&>::type
164123variant<t_HEAD, t_TAIL_01,
164124 t_TAIL_02,
164125 t_TAIL_03,
164126 t_TAIL_04,
164127 t_TAIL_05,
164128 BSLS_COMPILERFEATURES_FILLT(13)
164129 >::emplace(const t_ARG_01& arg_01,
164130 const t_ARG_02& arg_02,
164131 const t_ARG_03& arg_03,
164132 const t_ARG_04& arg_04,
164133 const t_ARG_05& arg_05)
164134{
164135 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164136
164137 Variant_Base::template baseEmplace<index>(
164138 arg_01, arg_02, arg_03, arg_04, arg_05);
164139
164140 return bsl::get<index>(*this);
164141}
164142#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
164143
164144#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
164145template <class t_HEAD, class t_TAIL_01,
164146 class t_TAIL_02,
164147 class t_TAIL_03,
164148 class t_TAIL_04,
164149 class t_TAIL_05,
164150 class t_TAIL_06>
164151template <class t_TYPE,
164152 class t_ARG_01,
164153 class t_ARG_02,
164154 class t_ARG_03,
164155 class t_ARG_04,
164156 class t_ARG_05>
164157typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164158 t_TYPE,
164159 variant<t_HEAD, t_TAIL_01,
164160 t_TAIL_02,
164161 t_TAIL_03,
164162 t_TAIL_04,
164163 t_TAIL_05,
164164 t_TAIL_06> >::value,
164165 t_TYPE&>::type
164166variant<t_HEAD, t_TAIL_01,
164167 t_TAIL_02,
164168 t_TAIL_03,
164169 t_TAIL_04,
164170 t_TAIL_05,
164171 t_TAIL_06,
164172 BSLS_COMPILERFEATURES_FILLT(12)
164173 >::emplace(const t_ARG_01& arg_01,
164174 const t_ARG_02& arg_02,
164175 const t_ARG_03& arg_03,
164176 const t_ARG_04& arg_04,
164177 const t_ARG_05& arg_05)
164178{
164179 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164180
164181 Variant_Base::template baseEmplace<index>(
164182 arg_01, arg_02, arg_03, arg_04, arg_05);
164183
164184 return bsl::get<index>(*this);
164185}
164186#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
164187
164188#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
164189template <class t_HEAD, class t_TAIL_01,
164190 class t_TAIL_02,
164191 class t_TAIL_03,
164192 class t_TAIL_04,
164193 class t_TAIL_05,
164194 class t_TAIL_06,
164195 class t_TAIL_07>
164196template <class t_TYPE,
164197 class t_ARG_01,
164198 class t_ARG_02,
164199 class t_ARG_03,
164200 class t_ARG_04,
164201 class t_ARG_05>
164202typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164203 t_TYPE,
164204 variant<t_HEAD, t_TAIL_01,
164205 t_TAIL_02,
164206 t_TAIL_03,
164207 t_TAIL_04,
164208 t_TAIL_05,
164209 t_TAIL_06,
164210 t_TAIL_07> >::value,
164211 t_TYPE&>::type
164212variant<t_HEAD, t_TAIL_01,
164213 t_TAIL_02,
164214 t_TAIL_03,
164215 t_TAIL_04,
164216 t_TAIL_05,
164217 t_TAIL_06,
164218 t_TAIL_07,
164219 BSLS_COMPILERFEATURES_FILLT(11)
164220 >::emplace(const t_ARG_01& arg_01,
164221 const t_ARG_02& arg_02,
164222 const t_ARG_03& arg_03,
164223 const t_ARG_04& arg_04,
164224 const t_ARG_05& arg_05)
164225{
164226 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164227
164228 Variant_Base::template baseEmplace<index>(
164229 arg_01, arg_02, arg_03, arg_04, arg_05);
164230
164231 return bsl::get<index>(*this);
164232}
164233#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
164234
164235#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
164236template <class t_HEAD, class t_TAIL_01,
164237 class t_TAIL_02,
164238 class t_TAIL_03,
164239 class t_TAIL_04,
164240 class t_TAIL_05,
164241 class t_TAIL_06,
164242 class t_TAIL_07,
164243 class t_TAIL_08>
164244template <class t_TYPE,
164245 class t_ARG_01,
164246 class t_ARG_02,
164247 class t_ARG_03,
164248 class t_ARG_04,
164249 class t_ARG_05>
164250typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164251 t_TYPE,
164252 variant<t_HEAD, t_TAIL_01,
164253 t_TAIL_02,
164254 t_TAIL_03,
164255 t_TAIL_04,
164256 t_TAIL_05,
164257 t_TAIL_06,
164258 t_TAIL_07,
164259 t_TAIL_08> >::value,
164260 t_TYPE&>::type
164261variant<t_HEAD, t_TAIL_01,
164262 t_TAIL_02,
164263 t_TAIL_03,
164264 t_TAIL_04,
164265 t_TAIL_05,
164266 t_TAIL_06,
164267 t_TAIL_07,
164268 t_TAIL_08,
164269 BSLS_COMPILERFEATURES_FILLT(10)
164270 >::emplace(const t_ARG_01& arg_01,
164271 const t_ARG_02& arg_02,
164272 const t_ARG_03& arg_03,
164273 const t_ARG_04& arg_04,
164274 const t_ARG_05& arg_05)
164275{
164276 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164277
164278 Variant_Base::template baseEmplace<index>(
164279 arg_01, arg_02, arg_03, arg_04, arg_05);
164280
164281 return bsl::get<index>(*this);
164282}
164283#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
164284
164285#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
164286template <class t_HEAD, class t_TAIL_01,
164287 class t_TAIL_02,
164288 class t_TAIL_03,
164289 class t_TAIL_04,
164290 class t_TAIL_05,
164291 class t_TAIL_06,
164292 class t_TAIL_07,
164293 class t_TAIL_08,
164294 class t_TAIL_09>
164295template <class t_TYPE,
164296 class t_ARG_01,
164297 class t_ARG_02,
164298 class t_ARG_03,
164299 class t_ARG_04,
164300 class t_ARG_05>
164301typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164302 t_TYPE,
164303 variant<t_HEAD, t_TAIL_01,
164304 t_TAIL_02,
164305 t_TAIL_03,
164306 t_TAIL_04,
164307 t_TAIL_05,
164308 t_TAIL_06,
164309 t_TAIL_07,
164310 t_TAIL_08,
164311 t_TAIL_09> >::value,
164312 t_TYPE&>::type
164313variant<t_HEAD, t_TAIL_01,
164314 t_TAIL_02,
164315 t_TAIL_03,
164316 t_TAIL_04,
164317 t_TAIL_05,
164318 t_TAIL_06,
164319 t_TAIL_07,
164320 t_TAIL_08,
164321 t_TAIL_09,
164322 BSLS_COMPILERFEATURES_FILLT( 9)
164323 >::emplace(const t_ARG_01& arg_01,
164324 const t_ARG_02& arg_02,
164325 const t_ARG_03& arg_03,
164326 const t_ARG_04& arg_04,
164327 const t_ARG_05& arg_05)
164328{
164329 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164330
164331 Variant_Base::template baseEmplace<index>(
164332 arg_01, arg_02, arg_03, arg_04, arg_05);
164333
164334 return bsl::get<index>(*this);
164335}
164336#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
164337
164338#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
164339template <class t_HEAD, class t_TAIL_01,
164340 class t_TAIL_02,
164341 class t_TAIL_03,
164342 class t_TAIL_04,
164343 class t_TAIL_05,
164344 class t_TAIL_06,
164345 class t_TAIL_07,
164346 class t_TAIL_08,
164347 class t_TAIL_09,
164348 class t_TAIL_10>
164349template <class t_TYPE,
164350 class t_ARG_01,
164351 class t_ARG_02,
164352 class t_ARG_03,
164353 class t_ARG_04,
164354 class t_ARG_05>
164355typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164356 t_TYPE,
164357 variant<t_HEAD, t_TAIL_01,
164358 t_TAIL_02,
164359 t_TAIL_03,
164360 t_TAIL_04,
164361 t_TAIL_05,
164362 t_TAIL_06,
164363 t_TAIL_07,
164364 t_TAIL_08,
164365 t_TAIL_09,
164366 t_TAIL_10> >::value,
164367 t_TYPE&>::type
164368variant<t_HEAD, t_TAIL_01,
164369 t_TAIL_02,
164370 t_TAIL_03,
164371 t_TAIL_04,
164372 t_TAIL_05,
164373 t_TAIL_06,
164374 t_TAIL_07,
164375 t_TAIL_08,
164376 t_TAIL_09,
164377 t_TAIL_10,
164378 BSLS_COMPILERFEATURES_FILLT( 8)
164379 >::emplace(const t_ARG_01& arg_01,
164380 const t_ARG_02& arg_02,
164381 const t_ARG_03& arg_03,
164382 const t_ARG_04& arg_04,
164383 const t_ARG_05& arg_05)
164384{
164385 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164386
164387 Variant_Base::template baseEmplace<index>(
164388 arg_01, arg_02, arg_03, arg_04, arg_05);
164389
164390 return bsl::get<index>(*this);
164391}
164392#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
164393
164394#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
164395template <class t_HEAD, class t_TAIL_01,
164396 class t_TAIL_02,
164397 class t_TAIL_03,
164398 class t_TAIL_04,
164399 class t_TAIL_05,
164400 class t_TAIL_06,
164401 class t_TAIL_07,
164402 class t_TAIL_08,
164403 class t_TAIL_09,
164404 class t_TAIL_10,
164405 class t_TAIL_11>
164406template <class t_TYPE,
164407 class t_ARG_01,
164408 class t_ARG_02,
164409 class t_ARG_03,
164410 class t_ARG_04,
164411 class t_ARG_05>
164412typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164413 t_TYPE,
164414 variant<t_HEAD, t_TAIL_01,
164415 t_TAIL_02,
164416 t_TAIL_03,
164417 t_TAIL_04,
164418 t_TAIL_05,
164419 t_TAIL_06,
164420 t_TAIL_07,
164421 t_TAIL_08,
164422 t_TAIL_09,
164423 t_TAIL_10,
164424 t_TAIL_11> >::value,
164425 t_TYPE&>::type
164426variant<t_HEAD, t_TAIL_01,
164427 t_TAIL_02,
164428 t_TAIL_03,
164429 t_TAIL_04,
164430 t_TAIL_05,
164431 t_TAIL_06,
164432 t_TAIL_07,
164433 t_TAIL_08,
164434 t_TAIL_09,
164435 t_TAIL_10,
164436 t_TAIL_11,
164437 BSLS_COMPILERFEATURES_FILLT( 7)
164438 >::emplace(const t_ARG_01& arg_01,
164439 const t_ARG_02& arg_02,
164440 const t_ARG_03& arg_03,
164441 const t_ARG_04& arg_04,
164442 const t_ARG_05& arg_05)
164443{
164444 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164445
164446 Variant_Base::template baseEmplace<index>(
164447 arg_01, arg_02, arg_03, arg_04, arg_05);
164448
164449 return bsl::get<index>(*this);
164450}
164451#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
164452
164453#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
164454template <class t_HEAD, class t_TAIL_01,
164455 class t_TAIL_02,
164456 class t_TAIL_03,
164457 class t_TAIL_04,
164458 class t_TAIL_05,
164459 class t_TAIL_06,
164460 class t_TAIL_07,
164461 class t_TAIL_08,
164462 class t_TAIL_09,
164463 class t_TAIL_10,
164464 class t_TAIL_11,
164465 class t_TAIL_12>
164466template <class t_TYPE,
164467 class t_ARG_01,
164468 class t_ARG_02,
164469 class t_ARG_03,
164470 class t_ARG_04,
164471 class t_ARG_05>
164472typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164473 t_TYPE,
164474 variant<t_HEAD, t_TAIL_01,
164475 t_TAIL_02,
164476 t_TAIL_03,
164477 t_TAIL_04,
164478 t_TAIL_05,
164479 t_TAIL_06,
164480 t_TAIL_07,
164481 t_TAIL_08,
164482 t_TAIL_09,
164483 t_TAIL_10,
164484 t_TAIL_11,
164485 t_TAIL_12> >::value,
164486 t_TYPE&>::type
164487variant<t_HEAD, t_TAIL_01,
164488 t_TAIL_02,
164489 t_TAIL_03,
164490 t_TAIL_04,
164491 t_TAIL_05,
164492 t_TAIL_06,
164493 t_TAIL_07,
164494 t_TAIL_08,
164495 t_TAIL_09,
164496 t_TAIL_10,
164497 t_TAIL_11,
164498 t_TAIL_12,
164499 BSLS_COMPILERFEATURES_FILLT( 6)
164500 >::emplace(const t_ARG_01& arg_01,
164501 const t_ARG_02& arg_02,
164502 const t_ARG_03& arg_03,
164503 const t_ARG_04& arg_04,
164504 const t_ARG_05& arg_05)
164505{
164506 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164507
164508 Variant_Base::template baseEmplace<index>(
164509 arg_01, arg_02, arg_03, arg_04, arg_05);
164510
164511 return bsl::get<index>(*this);
164512}
164513#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
164514
164515#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
164516template <class t_HEAD, class t_TAIL_01,
164517 class t_TAIL_02,
164518 class t_TAIL_03,
164519 class t_TAIL_04,
164520 class t_TAIL_05,
164521 class t_TAIL_06,
164522 class t_TAIL_07,
164523 class t_TAIL_08,
164524 class t_TAIL_09,
164525 class t_TAIL_10,
164526 class t_TAIL_11,
164527 class t_TAIL_12,
164528 class t_TAIL_13>
164529template <class t_TYPE,
164530 class t_ARG_01,
164531 class t_ARG_02,
164532 class t_ARG_03,
164533 class t_ARG_04,
164534 class t_ARG_05>
164535typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164536 t_TYPE,
164537 variant<t_HEAD, t_TAIL_01,
164538 t_TAIL_02,
164539 t_TAIL_03,
164540 t_TAIL_04,
164541 t_TAIL_05,
164542 t_TAIL_06,
164543 t_TAIL_07,
164544 t_TAIL_08,
164545 t_TAIL_09,
164546 t_TAIL_10,
164547 t_TAIL_11,
164548 t_TAIL_12,
164549 t_TAIL_13> >::value,
164550 t_TYPE&>::type
164551variant<t_HEAD, t_TAIL_01,
164552 t_TAIL_02,
164553 t_TAIL_03,
164554 t_TAIL_04,
164555 t_TAIL_05,
164556 t_TAIL_06,
164557 t_TAIL_07,
164558 t_TAIL_08,
164559 t_TAIL_09,
164560 t_TAIL_10,
164561 t_TAIL_11,
164562 t_TAIL_12,
164563 t_TAIL_13,
164564 BSLS_COMPILERFEATURES_FILLT( 5)
164565 >::emplace(const t_ARG_01& arg_01,
164566 const t_ARG_02& arg_02,
164567 const t_ARG_03& arg_03,
164568 const t_ARG_04& arg_04,
164569 const t_ARG_05& arg_05)
164570{
164571 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164572
164573 Variant_Base::template baseEmplace<index>(
164574 arg_01, arg_02, arg_03, arg_04, arg_05);
164575
164576 return bsl::get<index>(*this);
164577}
164578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
164579
164580#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
164581template <class t_HEAD, class t_TAIL_01,
164582 class t_TAIL_02,
164583 class t_TAIL_03,
164584 class t_TAIL_04,
164585 class t_TAIL_05,
164586 class t_TAIL_06,
164587 class t_TAIL_07,
164588 class t_TAIL_08,
164589 class t_TAIL_09,
164590 class t_TAIL_10,
164591 class t_TAIL_11,
164592 class t_TAIL_12,
164593 class t_TAIL_13,
164594 class t_TAIL_14>
164595template <class t_TYPE,
164596 class t_ARG_01,
164597 class t_ARG_02,
164598 class t_ARG_03,
164599 class t_ARG_04,
164600 class t_ARG_05>
164601typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164602 t_TYPE,
164603 variant<t_HEAD, t_TAIL_01,
164604 t_TAIL_02,
164605 t_TAIL_03,
164606 t_TAIL_04,
164607 t_TAIL_05,
164608 t_TAIL_06,
164609 t_TAIL_07,
164610 t_TAIL_08,
164611 t_TAIL_09,
164612 t_TAIL_10,
164613 t_TAIL_11,
164614 t_TAIL_12,
164615 t_TAIL_13,
164616 t_TAIL_14> >::value,
164617 t_TYPE&>::type
164618variant<t_HEAD, t_TAIL_01,
164619 t_TAIL_02,
164620 t_TAIL_03,
164621 t_TAIL_04,
164622 t_TAIL_05,
164623 t_TAIL_06,
164624 t_TAIL_07,
164625 t_TAIL_08,
164626 t_TAIL_09,
164627 t_TAIL_10,
164628 t_TAIL_11,
164629 t_TAIL_12,
164630 t_TAIL_13,
164631 t_TAIL_14,
164632 BSLS_COMPILERFEATURES_FILLT( 4)
164633 >::emplace(const t_ARG_01& arg_01,
164634 const t_ARG_02& arg_02,
164635 const t_ARG_03& arg_03,
164636 const t_ARG_04& arg_04,
164637 const t_ARG_05& arg_05)
164638{
164639 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164640
164641 Variant_Base::template baseEmplace<index>(
164642 arg_01, arg_02, arg_03, arg_04, arg_05);
164643
164644 return bsl::get<index>(*this);
164645}
164646#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
164647
164648#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
164649template <class t_HEAD, class t_TAIL_01,
164650 class t_TAIL_02,
164651 class t_TAIL_03,
164652 class t_TAIL_04,
164653 class t_TAIL_05,
164654 class t_TAIL_06,
164655 class t_TAIL_07,
164656 class t_TAIL_08,
164657 class t_TAIL_09,
164658 class t_TAIL_10,
164659 class t_TAIL_11,
164660 class t_TAIL_12,
164661 class t_TAIL_13,
164662 class t_TAIL_14,
164663 class t_TAIL_15>
164664template <class t_TYPE,
164665 class t_ARG_01,
164666 class t_ARG_02,
164667 class t_ARG_03,
164668 class t_ARG_04,
164669 class t_ARG_05>
164670typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164671 t_TYPE,
164672 variant<t_HEAD, t_TAIL_01,
164673 t_TAIL_02,
164674 t_TAIL_03,
164675 t_TAIL_04,
164676 t_TAIL_05,
164677 t_TAIL_06,
164678 t_TAIL_07,
164679 t_TAIL_08,
164680 t_TAIL_09,
164681 t_TAIL_10,
164682 t_TAIL_11,
164683 t_TAIL_12,
164684 t_TAIL_13,
164685 t_TAIL_14,
164686 t_TAIL_15> >::value,
164687 t_TYPE&>::type
164688variant<t_HEAD, t_TAIL_01,
164689 t_TAIL_02,
164690 t_TAIL_03,
164691 t_TAIL_04,
164692 t_TAIL_05,
164693 t_TAIL_06,
164694 t_TAIL_07,
164695 t_TAIL_08,
164696 t_TAIL_09,
164697 t_TAIL_10,
164698 t_TAIL_11,
164699 t_TAIL_12,
164700 t_TAIL_13,
164701 t_TAIL_14,
164702 t_TAIL_15,
164703 BSLS_COMPILERFEATURES_FILLT( 3)
164704 >::emplace(const t_ARG_01& arg_01,
164705 const t_ARG_02& arg_02,
164706 const t_ARG_03& arg_03,
164707 const t_ARG_04& arg_04,
164708 const t_ARG_05& arg_05)
164709{
164710 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164711
164712 Variant_Base::template baseEmplace<index>(
164713 arg_01, arg_02, arg_03, arg_04, arg_05);
164714
164715 return bsl::get<index>(*this);
164716}
164717#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
164718
164719#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
164720template <class t_HEAD, class t_TAIL_01,
164721 class t_TAIL_02,
164722 class t_TAIL_03,
164723 class t_TAIL_04,
164724 class t_TAIL_05,
164725 class t_TAIL_06,
164726 class t_TAIL_07,
164727 class t_TAIL_08,
164728 class t_TAIL_09,
164729 class t_TAIL_10,
164730 class t_TAIL_11,
164731 class t_TAIL_12,
164732 class t_TAIL_13,
164733 class t_TAIL_14,
164734 class t_TAIL_15,
164735 class t_TAIL_16>
164736template <class t_TYPE,
164737 class t_ARG_01,
164738 class t_ARG_02,
164739 class t_ARG_03,
164740 class t_ARG_04,
164741 class t_ARG_05>
164742typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164743 t_TYPE,
164744 variant<t_HEAD, t_TAIL_01,
164745 t_TAIL_02,
164746 t_TAIL_03,
164747 t_TAIL_04,
164748 t_TAIL_05,
164749 t_TAIL_06,
164750 t_TAIL_07,
164751 t_TAIL_08,
164752 t_TAIL_09,
164753 t_TAIL_10,
164754 t_TAIL_11,
164755 t_TAIL_12,
164756 t_TAIL_13,
164757 t_TAIL_14,
164758 t_TAIL_15,
164759 t_TAIL_16> >::value,
164760 t_TYPE&>::type
164761variant<t_HEAD, t_TAIL_01,
164762 t_TAIL_02,
164763 t_TAIL_03,
164764 t_TAIL_04,
164765 t_TAIL_05,
164766 t_TAIL_06,
164767 t_TAIL_07,
164768 t_TAIL_08,
164769 t_TAIL_09,
164770 t_TAIL_10,
164771 t_TAIL_11,
164772 t_TAIL_12,
164773 t_TAIL_13,
164774 t_TAIL_14,
164775 t_TAIL_15,
164776 t_TAIL_16,
164777 BSLS_COMPILERFEATURES_FILLT( 2)
164778 >::emplace(const t_ARG_01& arg_01,
164779 const t_ARG_02& arg_02,
164780 const t_ARG_03& arg_03,
164781 const t_ARG_04& arg_04,
164782 const t_ARG_05& arg_05)
164783{
164784 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164785
164786 Variant_Base::template baseEmplace<index>(
164787 arg_01, arg_02, arg_03, arg_04, arg_05);
164788
164789 return bsl::get<index>(*this);
164790}
164791#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
164792
164793#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
164794template <class t_HEAD, class t_TAIL_01,
164795 class t_TAIL_02,
164796 class t_TAIL_03,
164797 class t_TAIL_04,
164798 class t_TAIL_05,
164799 class t_TAIL_06,
164800 class t_TAIL_07,
164801 class t_TAIL_08,
164802 class t_TAIL_09,
164803 class t_TAIL_10,
164804 class t_TAIL_11,
164805 class t_TAIL_12,
164806 class t_TAIL_13,
164807 class t_TAIL_14,
164808 class t_TAIL_15,
164809 class t_TAIL_16,
164810 class t_TAIL_17>
164811template <class t_TYPE,
164812 class t_ARG_01,
164813 class t_ARG_02,
164814 class t_ARG_03,
164815 class t_ARG_04,
164816 class t_ARG_05>
164817typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164818 t_TYPE,
164819 variant<t_HEAD, t_TAIL_01,
164820 t_TAIL_02,
164821 t_TAIL_03,
164822 t_TAIL_04,
164823 t_TAIL_05,
164824 t_TAIL_06,
164825 t_TAIL_07,
164826 t_TAIL_08,
164827 t_TAIL_09,
164828 t_TAIL_10,
164829 t_TAIL_11,
164830 t_TAIL_12,
164831 t_TAIL_13,
164832 t_TAIL_14,
164833 t_TAIL_15,
164834 t_TAIL_16,
164835 t_TAIL_17> >::value,
164836 t_TYPE&>::type
164837variant<t_HEAD, t_TAIL_01,
164838 t_TAIL_02,
164839 t_TAIL_03,
164840 t_TAIL_04,
164841 t_TAIL_05,
164842 t_TAIL_06,
164843 t_TAIL_07,
164844 t_TAIL_08,
164845 t_TAIL_09,
164846 t_TAIL_10,
164847 t_TAIL_11,
164848 t_TAIL_12,
164849 t_TAIL_13,
164850 t_TAIL_14,
164851 t_TAIL_15,
164852 t_TAIL_16,
164853 t_TAIL_17,
164854 BSLS_COMPILERFEATURES_FILLT( 1)
164855 >::emplace(const t_ARG_01& arg_01,
164856 const t_ARG_02& arg_02,
164857 const t_ARG_03& arg_03,
164858 const t_ARG_04& arg_04,
164859 const t_ARG_05& arg_05)
164860{
164861 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164862
164863 Variant_Base::template baseEmplace<index>(
164864 arg_01, arg_02, arg_03, arg_04, arg_05);
164865
164866 return bsl::get<index>(*this);
164867}
164868#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
164869
164870#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
164871template <class t_HEAD, class t_TAIL_01,
164872 class t_TAIL_02,
164873 class t_TAIL_03,
164874 class t_TAIL_04,
164875 class t_TAIL_05,
164876 class t_TAIL_06,
164877 class t_TAIL_07,
164878 class t_TAIL_08,
164879 class t_TAIL_09,
164880 class t_TAIL_10,
164881 class t_TAIL_11,
164882 class t_TAIL_12,
164883 class t_TAIL_13,
164884 class t_TAIL_14,
164885 class t_TAIL_15,
164886 class t_TAIL_16,
164887 class t_TAIL_17,
164888 class t_TAIL_18>
164889template <class t_TYPE,
164890 class t_ARG_01,
164891 class t_ARG_02,
164892 class t_ARG_03,
164893 class t_ARG_04,
164894 class t_ARG_05>
164895typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164896 t_TYPE,
164897 variant<t_HEAD, t_TAIL_01,
164898 t_TAIL_02,
164899 t_TAIL_03,
164900 t_TAIL_04,
164901 t_TAIL_05,
164902 t_TAIL_06,
164903 t_TAIL_07,
164904 t_TAIL_08,
164905 t_TAIL_09,
164906 t_TAIL_10,
164907 t_TAIL_11,
164908 t_TAIL_12,
164909 t_TAIL_13,
164910 t_TAIL_14,
164911 t_TAIL_15,
164912 t_TAIL_16,
164913 t_TAIL_17,
164914 t_TAIL_18> >::value,
164915 t_TYPE&>::type
164916variant<t_HEAD, t_TAIL_01,
164917 t_TAIL_02,
164918 t_TAIL_03,
164919 t_TAIL_04,
164920 t_TAIL_05,
164921 t_TAIL_06,
164922 t_TAIL_07,
164923 t_TAIL_08,
164924 t_TAIL_09,
164925 t_TAIL_10,
164926 t_TAIL_11,
164927 t_TAIL_12,
164928 t_TAIL_13,
164929 t_TAIL_14,
164930 t_TAIL_15,
164931 t_TAIL_16,
164932 t_TAIL_17,
164933 t_TAIL_18,
164934 BSLS_COMPILERFEATURES_FILLT( 0)
164935 >::emplace(const t_ARG_01& arg_01,
164936 const t_ARG_02& arg_02,
164937 const t_ARG_03& arg_03,
164938 const t_ARG_04& arg_04,
164939 const t_ARG_05& arg_05)
164940{
164941 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164942
164943 Variant_Base::template baseEmplace<index>(
164944 arg_01, arg_02, arg_03, arg_04, arg_05);
164945
164946 return bsl::get<index>(*this);
164947}
164948#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
164949
164950
164951#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
164952template <class t_HEAD>
164953template <class t_TYPE,
164954 class t_ARG_01,
164955 class t_ARG_02,
164956 class t_ARG_03,
164957 class t_ARG_04,
164958 class t_ARG_05,
164959 class t_ARG_06>
164960typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164961 t_TYPE,
164962 variant<t_HEAD> >::value,
164963 t_TYPE&>::type
164964variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
164965 >::emplace(const t_ARG_01& arg_01,
164966 const t_ARG_02& arg_02,
164967 const t_ARG_03& arg_03,
164968 const t_ARG_04& arg_04,
164969 const t_ARG_05& arg_05,
164970 const t_ARG_06& arg_06)
164971{
164972 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
164973
164974 Variant_Base::template baseEmplace<index>(
164975 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
164976
164977 return bsl::get<index>(*this);
164978}
164979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
164980
164981#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
164982template <class t_HEAD, class t_TAIL_01>
164983template <class t_TYPE,
164984 class t_ARG_01,
164985 class t_ARG_02,
164986 class t_ARG_03,
164987 class t_ARG_04,
164988 class t_ARG_05,
164989 class t_ARG_06>
164990typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
164991 t_TYPE,
164992 variant<t_HEAD, t_TAIL_01> >::value,
164993 t_TYPE&>::type
164994variant<t_HEAD, t_TAIL_01,
164995 BSLS_COMPILERFEATURES_FILLT(17)
164996 >::emplace(const t_ARG_01& arg_01,
164997 const t_ARG_02& arg_02,
164998 const t_ARG_03& arg_03,
164999 const t_ARG_04& arg_04,
165000 const t_ARG_05& arg_05,
165001 const t_ARG_06& arg_06)
165002{
165003 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165004
165005 Variant_Base::template baseEmplace<index>(
165006 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165007
165008 return bsl::get<index>(*this);
165009}
165010#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
165011
165012#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
165013template <class t_HEAD, class t_TAIL_01,
165014 class t_TAIL_02>
165015template <class t_TYPE,
165016 class t_ARG_01,
165017 class t_ARG_02,
165018 class t_ARG_03,
165019 class t_ARG_04,
165020 class t_ARG_05,
165021 class t_ARG_06>
165022typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165023 t_TYPE,
165024 variant<t_HEAD, t_TAIL_01,
165025 t_TAIL_02> >::value,
165026 t_TYPE&>::type
165027variant<t_HEAD, t_TAIL_01,
165028 t_TAIL_02,
165029 BSLS_COMPILERFEATURES_FILLT(16)
165030 >::emplace(const t_ARG_01& arg_01,
165031 const t_ARG_02& arg_02,
165032 const t_ARG_03& arg_03,
165033 const t_ARG_04& arg_04,
165034 const t_ARG_05& arg_05,
165035 const t_ARG_06& arg_06)
165036{
165037 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165038
165039 Variant_Base::template baseEmplace<index>(
165040 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165041
165042 return bsl::get<index>(*this);
165043}
165044#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
165045
165046#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
165047template <class t_HEAD, class t_TAIL_01,
165048 class t_TAIL_02,
165049 class t_TAIL_03>
165050template <class t_TYPE,
165051 class t_ARG_01,
165052 class t_ARG_02,
165053 class t_ARG_03,
165054 class t_ARG_04,
165055 class t_ARG_05,
165056 class t_ARG_06>
165057typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165058 t_TYPE,
165059 variant<t_HEAD, t_TAIL_01,
165060 t_TAIL_02,
165061 t_TAIL_03> >::value,
165062 t_TYPE&>::type
165063variant<t_HEAD, t_TAIL_01,
165064 t_TAIL_02,
165065 t_TAIL_03,
165066 BSLS_COMPILERFEATURES_FILLT(15)
165067 >::emplace(const t_ARG_01& arg_01,
165068 const t_ARG_02& arg_02,
165069 const t_ARG_03& arg_03,
165070 const t_ARG_04& arg_04,
165071 const t_ARG_05& arg_05,
165072 const t_ARG_06& arg_06)
165073{
165074 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165075
165076 Variant_Base::template baseEmplace<index>(
165077 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165078
165079 return bsl::get<index>(*this);
165080}
165081#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
165082
165083#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
165084template <class t_HEAD, class t_TAIL_01,
165085 class t_TAIL_02,
165086 class t_TAIL_03,
165087 class t_TAIL_04>
165088template <class t_TYPE,
165089 class t_ARG_01,
165090 class t_ARG_02,
165091 class t_ARG_03,
165092 class t_ARG_04,
165093 class t_ARG_05,
165094 class t_ARG_06>
165095typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165096 t_TYPE,
165097 variant<t_HEAD, t_TAIL_01,
165098 t_TAIL_02,
165099 t_TAIL_03,
165100 t_TAIL_04> >::value,
165101 t_TYPE&>::type
165102variant<t_HEAD, t_TAIL_01,
165103 t_TAIL_02,
165104 t_TAIL_03,
165105 t_TAIL_04,
165106 BSLS_COMPILERFEATURES_FILLT(14)
165107 >::emplace(const t_ARG_01& arg_01,
165108 const t_ARG_02& arg_02,
165109 const t_ARG_03& arg_03,
165110 const t_ARG_04& arg_04,
165111 const t_ARG_05& arg_05,
165112 const t_ARG_06& arg_06)
165113{
165114 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165115
165116 Variant_Base::template baseEmplace<index>(
165117 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165118
165119 return bsl::get<index>(*this);
165120}
165121#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
165122
165123#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
165124template <class t_HEAD, class t_TAIL_01,
165125 class t_TAIL_02,
165126 class t_TAIL_03,
165127 class t_TAIL_04,
165128 class t_TAIL_05>
165129template <class t_TYPE,
165130 class t_ARG_01,
165131 class t_ARG_02,
165132 class t_ARG_03,
165133 class t_ARG_04,
165134 class t_ARG_05,
165135 class t_ARG_06>
165136typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165137 t_TYPE,
165138 variant<t_HEAD, t_TAIL_01,
165139 t_TAIL_02,
165140 t_TAIL_03,
165141 t_TAIL_04,
165142 t_TAIL_05> >::value,
165143 t_TYPE&>::type
165144variant<t_HEAD, t_TAIL_01,
165145 t_TAIL_02,
165146 t_TAIL_03,
165147 t_TAIL_04,
165148 t_TAIL_05,
165149 BSLS_COMPILERFEATURES_FILLT(13)
165150 >::emplace(const t_ARG_01& arg_01,
165151 const t_ARG_02& arg_02,
165152 const t_ARG_03& arg_03,
165153 const t_ARG_04& arg_04,
165154 const t_ARG_05& arg_05,
165155 const t_ARG_06& arg_06)
165156{
165157 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165158
165159 Variant_Base::template baseEmplace<index>(
165160 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165161
165162 return bsl::get<index>(*this);
165163}
165164#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
165165
165166#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
165167template <class t_HEAD, class t_TAIL_01,
165168 class t_TAIL_02,
165169 class t_TAIL_03,
165170 class t_TAIL_04,
165171 class t_TAIL_05,
165172 class t_TAIL_06>
165173template <class t_TYPE,
165174 class t_ARG_01,
165175 class t_ARG_02,
165176 class t_ARG_03,
165177 class t_ARG_04,
165178 class t_ARG_05,
165179 class t_ARG_06>
165180typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165181 t_TYPE,
165182 variant<t_HEAD, t_TAIL_01,
165183 t_TAIL_02,
165184 t_TAIL_03,
165185 t_TAIL_04,
165186 t_TAIL_05,
165187 t_TAIL_06> >::value,
165188 t_TYPE&>::type
165189variant<t_HEAD, t_TAIL_01,
165190 t_TAIL_02,
165191 t_TAIL_03,
165192 t_TAIL_04,
165193 t_TAIL_05,
165194 t_TAIL_06,
165195 BSLS_COMPILERFEATURES_FILLT(12)
165196 >::emplace(const t_ARG_01& arg_01,
165197 const t_ARG_02& arg_02,
165198 const t_ARG_03& arg_03,
165199 const t_ARG_04& arg_04,
165200 const t_ARG_05& arg_05,
165201 const t_ARG_06& arg_06)
165202{
165203 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165204
165205 Variant_Base::template baseEmplace<index>(
165206 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165207
165208 return bsl::get<index>(*this);
165209}
165210#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
165211
165212#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
165213template <class t_HEAD, class t_TAIL_01,
165214 class t_TAIL_02,
165215 class t_TAIL_03,
165216 class t_TAIL_04,
165217 class t_TAIL_05,
165218 class t_TAIL_06,
165219 class t_TAIL_07>
165220template <class t_TYPE,
165221 class t_ARG_01,
165222 class t_ARG_02,
165223 class t_ARG_03,
165224 class t_ARG_04,
165225 class t_ARG_05,
165226 class t_ARG_06>
165227typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165228 t_TYPE,
165229 variant<t_HEAD, t_TAIL_01,
165230 t_TAIL_02,
165231 t_TAIL_03,
165232 t_TAIL_04,
165233 t_TAIL_05,
165234 t_TAIL_06,
165235 t_TAIL_07> >::value,
165236 t_TYPE&>::type
165237variant<t_HEAD, t_TAIL_01,
165238 t_TAIL_02,
165239 t_TAIL_03,
165240 t_TAIL_04,
165241 t_TAIL_05,
165242 t_TAIL_06,
165243 t_TAIL_07,
165244 BSLS_COMPILERFEATURES_FILLT(11)
165245 >::emplace(const t_ARG_01& arg_01,
165246 const t_ARG_02& arg_02,
165247 const t_ARG_03& arg_03,
165248 const t_ARG_04& arg_04,
165249 const t_ARG_05& arg_05,
165250 const t_ARG_06& arg_06)
165251{
165252 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165253
165254 Variant_Base::template baseEmplace<index>(
165255 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165256
165257 return bsl::get<index>(*this);
165258}
165259#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
165260
165261#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
165262template <class t_HEAD, class t_TAIL_01,
165263 class t_TAIL_02,
165264 class t_TAIL_03,
165265 class t_TAIL_04,
165266 class t_TAIL_05,
165267 class t_TAIL_06,
165268 class t_TAIL_07,
165269 class t_TAIL_08>
165270template <class t_TYPE,
165271 class t_ARG_01,
165272 class t_ARG_02,
165273 class t_ARG_03,
165274 class t_ARG_04,
165275 class t_ARG_05,
165276 class t_ARG_06>
165277typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165278 t_TYPE,
165279 variant<t_HEAD, t_TAIL_01,
165280 t_TAIL_02,
165281 t_TAIL_03,
165282 t_TAIL_04,
165283 t_TAIL_05,
165284 t_TAIL_06,
165285 t_TAIL_07,
165286 t_TAIL_08> >::value,
165287 t_TYPE&>::type
165288variant<t_HEAD, t_TAIL_01,
165289 t_TAIL_02,
165290 t_TAIL_03,
165291 t_TAIL_04,
165292 t_TAIL_05,
165293 t_TAIL_06,
165294 t_TAIL_07,
165295 t_TAIL_08,
165296 BSLS_COMPILERFEATURES_FILLT(10)
165297 >::emplace(const t_ARG_01& arg_01,
165298 const t_ARG_02& arg_02,
165299 const t_ARG_03& arg_03,
165300 const t_ARG_04& arg_04,
165301 const t_ARG_05& arg_05,
165302 const t_ARG_06& arg_06)
165303{
165304 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165305
165306 Variant_Base::template baseEmplace<index>(
165307 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165308
165309 return bsl::get<index>(*this);
165310}
165311#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
165312
165313#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
165314template <class t_HEAD, class t_TAIL_01,
165315 class t_TAIL_02,
165316 class t_TAIL_03,
165317 class t_TAIL_04,
165318 class t_TAIL_05,
165319 class t_TAIL_06,
165320 class t_TAIL_07,
165321 class t_TAIL_08,
165322 class t_TAIL_09>
165323template <class t_TYPE,
165324 class t_ARG_01,
165325 class t_ARG_02,
165326 class t_ARG_03,
165327 class t_ARG_04,
165328 class t_ARG_05,
165329 class t_ARG_06>
165330typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165331 t_TYPE,
165332 variant<t_HEAD, t_TAIL_01,
165333 t_TAIL_02,
165334 t_TAIL_03,
165335 t_TAIL_04,
165336 t_TAIL_05,
165337 t_TAIL_06,
165338 t_TAIL_07,
165339 t_TAIL_08,
165340 t_TAIL_09> >::value,
165341 t_TYPE&>::type
165342variant<t_HEAD, t_TAIL_01,
165343 t_TAIL_02,
165344 t_TAIL_03,
165345 t_TAIL_04,
165346 t_TAIL_05,
165347 t_TAIL_06,
165348 t_TAIL_07,
165349 t_TAIL_08,
165350 t_TAIL_09,
165351 BSLS_COMPILERFEATURES_FILLT( 9)
165352 >::emplace(const t_ARG_01& arg_01,
165353 const t_ARG_02& arg_02,
165354 const t_ARG_03& arg_03,
165355 const t_ARG_04& arg_04,
165356 const t_ARG_05& arg_05,
165357 const t_ARG_06& arg_06)
165358{
165359 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165360
165361 Variant_Base::template baseEmplace<index>(
165362 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165363
165364 return bsl::get<index>(*this);
165365}
165366#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
165367
165368#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
165369template <class t_HEAD, class t_TAIL_01,
165370 class t_TAIL_02,
165371 class t_TAIL_03,
165372 class t_TAIL_04,
165373 class t_TAIL_05,
165374 class t_TAIL_06,
165375 class t_TAIL_07,
165376 class t_TAIL_08,
165377 class t_TAIL_09,
165378 class t_TAIL_10>
165379template <class t_TYPE,
165380 class t_ARG_01,
165381 class t_ARG_02,
165382 class t_ARG_03,
165383 class t_ARG_04,
165384 class t_ARG_05,
165385 class t_ARG_06>
165386typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165387 t_TYPE,
165388 variant<t_HEAD, t_TAIL_01,
165389 t_TAIL_02,
165390 t_TAIL_03,
165391 t_TAIL_04,
165392 t_TAIL_05,
165393 t_TAIL_06,
165394 t_TAIL_07,
165395 t_TAIL_08,
165396 t_TAIL_09,
165397 t_TAIL_10> >::value,
165398 t_TYPE&>::type
165399variant<t_HEAD, t_TAIL_01,
165400 t_TAIL_02,
165401 t_TAIL_03,
165402 t_TAIL_04,
165403 t_TAIL_05,
165404 t_TAIL_06,
165405 t_TAIL_07,
165406 t_TAIL_08,
165407 t_TAIL_09,
165408 t_TAIL_10,
165409 BSLS_COMPILERFEATURES_FILLT( 8)
165410 >::emplace(const t_ARG_01& arg_01,
165411 const t_ARG_02& arg_02,
165412 const t_ARG_03& arg_03,
165413 const t_ARG_04& arg_04,
165414 const t_ARG_05& arg_05,
165415 const t_ARG_06& arg_06)
165416{
165417 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165418
165419 Variant_Base::template baseEmplace<index>(
165420 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165421
165422 return bsl::get<index>(*this);
165423}
165424#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
165425
165426#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
165427template <class t_HEAD, class t_TAIL_01,
165428 class t_TAIL_02,
165429 class t_TAIL_03,
165430 class t_TAIL_04,
165431 class t_TAIL_05,
165432 class t_TAIL_06,
165433 class t_TAIL_07,
165434 class t_TAIL_08,
165435 class t_TAIL_09,
165436 class t_TAIL_10,
165437 class t_TAIL_11>
165438template <class t_TYPE,
165439 class t_ARG_01,
165440 class t_ARG_02,
165441 class t_ARG_03,
165442 class t_ARG_04,
165443 class t_ARG_05,
165444 class t_ARG_06>
165445typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165446 t_TYPE,
165447 variant<t_HEAD, t_TAIL_01,
165448 t_TAIL_02,
165449 t_TAIL_03,
165450 t_TAIL_04,
165451 t_TAIL_05,
165452 t_TAIL_06,
165453 t_TAIL_07,
165454 t_TAIL_08,
165455 t_TAIL_09,
165456 t_TAIL_10,
165457 t_TAIL_11> >::value,
165458 t_TYPE&>::type
165459variant<t_HEAD, t_TAIL_01,
165460 t_TAIL_02,
165461 t_TAIL_03,
165462 t_TAIL_04,
165463 t_TAIL_05,
165464 t_TAIL_06,
165465 t_TAIL_07,
165466 t_TAIL_08,
165467 t_TAIL_09,
165468 t_TAIL_10,
165469 t_TAIL_11,
165470 BSLS_COMPILERFEATURES_FILLT( 7)
165471 >::emplace(const t_ARG_01& arg_01,
165472 const t_ARG_02& arg_02,
165473 const t_ARG_03& arg_03,
165474 const t_ARG_04& arg_04,
165475 const t_ARG_05& arg_05,
165476 const t_ARG_06& arg_06)
165477{
165478 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165479
165480 Variant_Base::template baseEmplace<index>(
165481 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165482
165483 return bsl::get<index>(*this);
165484}
165485#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
165486
165487#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
165488template <class t_HEAD, class t_TAIL_01,
165489 class t_TAIL_02,
165490 class t_TAIL_03,
165491 class t_TAIL_04,
165492 class t_TAIL_05,
165493 class t_TAIL_06,
165494 class t_TAIL_07,
165495 class t_TAIL_08,
165496 class t_TAIL_09,
165497 class t_TAIL_10,
165498 class t_TAIL_11,
165499 class t_TAIL_12>
165500template <class t_TYPE,
165501 class t_ARG_01,
165502 class t_ARG_02,
165503 class t_ARG_03,
165504 class t_ARG_04,
165505 class t_ARG_05,
165506 class t_ARG_06>
165507typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165508 t_TYPE,
165509 variant<t_HEAD, t_TAIL_01,
165510 t_TAIL_02,
165511 t_TAIL_03,
165512 t_TAIL_04,
165513 t_TAIL_05,
165514 t_TAIL_06,
165515 t_TAIL_07,
165516 t_TAIL_08,
165517 t_TAIL_09,
165518 t_TAIL_10,
165519 t_TAIL_11,
165520 t_TAIL_12> >::value,
165521 t_TYPE&>::type
165522variant<t_HEAD, t_TAIL_01,
165523 t_TAIL_02,
165524 t_TAIL_03,
165525 t_TAIL_04,
165526 t_TAIL_05,
165527 t_TAIL_06,
165528 t_TAIL_07,
165529 t_TAIL_08,
165530 t_TAIL_09,
165531 t_TAIL_10,
165532 t_TAIL_11,
165533 t_TAIL_12,
165534 BSLS_COMPILERFEATURES_FILLT( 6)
165535 >::emplace(const t_ARG_01& arg_01,
165536 const t_ARG_02& arg_02,
165537 const t_ARG_03& arg_03,
165538 const t_ARG_04& arg_04,
165539 const t_ARG_05& arg_05,
165540 const t_ARG_06& arg_06)
165541{
165542 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165543
165544 Variant_Base::template baseEmplace<index>(
165545 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165546
165547 return bsl::get<index>(*this);
165548}
165549#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
165550
165551#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
165552template <class t_HEAD, class t_TAIL_01,
165553 class t_TAIL_02,
165554 class t_TAIL_03,
165555 class t_TAIL_04,
165556 class t_TAIL_05,
165557 class t_TAIL_06,
165558 class t_TAIL_07,
165559 class t_TAIL_08,
165560 class t_TAIL_09,
165561 class t_TAIL_10,
165562 class t_TAIL_11,
165563 class t_TAIL_12,
165564 class t_TAIL_13>
165565template <class t_TYPE,
165566 class t_ARG_01,
165567 class t_ARG_02,
165568 class t_ARG_03,
165569 class t_ARG_04,
165570 class t_ARG_05,
165571 class t_ARG_06>
165572typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165573 t_TYPE,
165574 variant<t_HEAD, t_TAIL_01,
165575 t_TAIL_02,
165576 t_TAIL_03,
165577 t_TAIL_04,
165578 t_TAIL_05,
165579 t_TAIL_06,
165580 t_TAIL_07,
165581 t_TAIL_08,
165582 t_TAIL_09,
165583 t_TAIL_10,
165584 t_TAIL_11,
165585 t_TAIL_12,
165586 t_TAIL_13> >::value,
165587 t_TYPE&>::type
165588variant<t_HEAD, t_TAIL_01,
165589 t_TAIL_02,
165590 t_TAIL_03,
165591 t_TAIL_04,
165592 t_TAIL_05,
165593 t_TAIL_06,
165594 t_TAIL_07,
165595 t_TAIL_08,
165596 t_TAIL_09,
165597 t_TAIL_10,
165598 t_TAIL_11,
165599 t_TAIL_12,
165600 t_TAIL_13,
165601 BSLS_COMPILERFEATURES_FILLT( 5)
165602 >::emplace(const t_ARG_01& arg_01,
165603 const t_ARG_02& arg_02,
165604 const t_ARG_03& arg_03,
165605 const t_ARG_04& arg_04,
165606 const t_ARG_05& arg_05,
165607 const t_ARG_06& arg_06)
165608{
165609 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165610
165611 Variant_Base::template baseEmplace<index>(
165612 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165613
165614 return bsl::get<index>(*this);
165615}
165616#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
165617
165618#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
165619template <class t_HEAD, class t_TAIL_01,
165620 class t_TAIL_02,
165621 class t_TAIL_03,
165622 class t_TAIL_04,
165623 class t_TAIL_05,
165624 class t_TAIL_06,
165625 class t_TAIL_07,
165626 class t_TAIL_08,
165627 class t_TAIL_09,
165628 class t_TAIL_10,
165629 class t_TAIL_11,
165630 class t_TAIL_12,
165631 class t_TAIL_13,
165632 class t_TAIL_14>
165633template <class t_TYPE,
165634 class t_ARG_01,
165635 class t_ARG_02,
165636 class t_ARG_03,
165637 class t_ARG_04,
165638 class t_ARG_05,
165639 class t_ARG_06>
165640typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165641 t_TYPE,
165642 variant<t_HEAD, t_TAIL_01,
165643 t_TAIL_02,
165644 t_TAIL_03,
165645 t_TAIL_04,
165646 t_TAIL_05,
165647 t_TAIL_06,
165648 t_TAIL_07,
165649 t_TAIL_08,
165650 t_TAIL_09,
165651 t_TAIL_10,
165652 t_TAIL_11,
165653 t_TAIL_12,
165654 t_TAIL_13,
165655 t_TAIL_14> >::value,
165656 t_TYPE&>::type
165657variant<t_HEAD, t_TAIL_01,
165658 t_TAIL_02,
165659 t_TAIL_03,
165660 t_TAIL_04,
165661 t_TAIL_05,
165662 t_TAIL_06,
165663 t_TAIL_07,
165664 t_TAIL_08,
165665 t_TAIL_09,
165666 t_TAIL_10,
165667 t_TAIL_11,
165668 t_TAIL_12,
165669 t_TAIL_13,
165670 t_TAIL_14,
165671 BSLS_COMPILERFEATURES_FILLT( 4)
165672 >::emplace(const t_ARG_01& arg_01,
165673 const t_ARG_02& arg_02,
165674 const t_ARG_03& arg_03,
165675 const t_ARG_04& arg_04,
165676 const t_ARG_05& arg_05,
165677 const t_ARG_06& arg_06)
165678{
165679 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165680
165681 Variant_Base::template baseEmplace<index>(
165682 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165683
165684 return bsl::get<index>(*this);
165685}
165686#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
165687
165688#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
165689template <class t_HEAD, class t_TAIL_01,
165690 class t_TAIL_02,
165691 class t_TAIL_03,
165692 class t_TAIL_04,
165693 class t_TAIL_05,
165694 class t_TAIL_06,
165695 class t_TAIL_07,
165696 class t_TAIL_08,
165697 class t_TAIL_09,
165698 class t_TAIL_10,
165699 class t_TAIL_11,
165700 class t_TAIL_12,
165701 class t_TAIL_13,
165702 class t_TAIL_14,
165703 class t_TAIL_15>
165704template <class t_TYPE,
165705 class t_ARG_01,
165706 class t_ARG_02,
165707 class t_ARG_03,
165708 class t_ARG_04,
165709 class t_ARG_05,
165710 class t_ARG_06>
165711typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165712 t_TYPE,
165713 variant<t_HEAD, t_TAIL_01,
165714 t_TAIL_02,
165715 t_TAIL_03,
165716 t_TAIL_04,
165717 t_TAIL_05,
165718 t_TAIL_06,
165719 t_TAIL_07,
165720 t_TAIL_08,
165721 t_TAIL_09,
165722 t_TAIL_10,
165723 t_TAIL_11,
165724 t_TAIL_12,
165725 t_TAIL_13,
165726 t_TAIL_14,
165727 t_TAIL_15> >::value,
165728 t_TYPE&>::type
165729variant<t_HEAD, t_TAIL_01,
165730 t_TAIL_02,
165731 t_TAIL_03,
165732 t_TAIL_04,
165733 t_TAIL_05,
165734 t_TAIL_06,
165735 t_TAIL_07,
165736 t_TAIL_08,
165737 t_TAIL_09,
165738 t_TAIL_10,
165739 t_TAIL_11,
165740 t_TAIL_12,
165741 t_TAIL_13,
165742 t_TAIL_14,
165743 t_TAIL_15,
165744 BSLS_COMPILERFEATURES_FILLT( 3)
165745 >::emplace(const t_ARG_01& arg_01,
165746 const t_ARG_02& arg_02,
165747 const t_ARG_03& arg_03,
165748 const t_ARG_04& arg_04,
165749 const t_ARG_05& arg_05,
165750 const t_ARG_06& arg_06)
165751{
165752 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165753
165754 Variant_Base::template baseEmplace<index>(
165755 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165756
165757 return bsl::get<index>(*this);
165758}
165759#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
165760
165761#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
165762template <class t_HEAD, class t_TAIL_01,
165763 class t_TAIL_02,
165764 class t_TAIL_03,
165765 class t_TAIL_04,
165766 class t_TAIL_05,
165767 class t_TAIL_06,
165768 class t_TAIL_07,
165769 class t_TAIL_08,
165770 class t_TAIL_09,
165771 class t_TAIL_10,
165772 class t_TAIL_11,
165773 class t_TAIL_12,
165774 class t_TAIL_13,
165775 class t_TAIL_14,
165776 class t_TAIL_15,
165777 class t_TAIL_16>
165778template <class t_TYPE,
165779 class t_ARG_01,
165780 class t_ARG_02,
165781 class t_ARG_03,
165782 class t_ARG_04,
165783 class t_ARG_05,
165784 class t_ARG_06>
165785typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165786 t_TYPE,
165787 variant<t_HEAD, t_TAIL_01,
165788 t_TAIL_02,
165789 t_TAIL_03,
165790 t_TAIL_04,
165791 t_TAIL_05,
165792 t_TAIL_06,
165793 t_TAIL_07,
165794 t_TAIL_08,
165795 t_TAIL_09,
165796 t_TAIL_10,
165797 t_TAIL_11,
165798 t_TAIL_12,
165799 t_TAIL_13,
165800 t_TAIL_14,
165801 t_TAIL_15,
165802 t_TAIL_16> >::value,
165803 t_TYPE&>::type
165804variant<t_HEAD, t_TAIL_01,
165805 t_TAIL_02,
165806 t_TAIL_03,
165807 t_TAIL_04,
165808 t_TAIL_05,
165809 t_TAIL_06,
165810 t_TAIL_07,
165811 t_TAIL_08,
165812 t_TAIL_09,
165813 t_TAIL_10,
165814 t_TAIL_11,
165815 t_TAIL_12,
165816 t_TAIL_13,
165817 t_TAIL_14,
165818 t_TAIL_15,
165819 t_TAIL_16,
165820 BSLS_COMPILERFEATURES_FILLT( 2)
165821 >::emplace(const t_ARG_01& arg_01,
165822 const t_ARG_02& arg_02,
165823 const t_ARG_03& arg_03,
165824 const t_ARG_04& arg_04,
165825 const t_ARG_05& arg_05,
165826 const t_ARG_06& arg_06)
165827{
165828 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165829
165830 Variant_Base::template baseEmplace<index>(
165831 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165832
165833 return bsl::get<index>(*this);
165834}
165835#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
165836
165837#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
165838template <class t_HEAD, class t_TAIL_01,
165839 class t_TAIL_02,
165840 class t_TAIL_03,
165841 class t_TAIL_04,
165842 class t_TAIL_05,
165843 class t_TAIL_06,
165844 class t_TAIL_07,
165845 class t_TAIL_08,
165846 class t_TAIL_09,
165847 class t_TAIL_10,
165848 class t_TAIL_11,
165849 class t_TAIL_12,
165850 class t_TAIL_13,
165851 class t_TAIL_14,
165852 class t_TAIL_15,
165853 class t_TAIL_16,
165854 class t_TAIL_17>
165855template <class t_TYPE,
165856 class t_ARG_01,
165857 class t_ARG_02,
165858 class t_ARG_03,
165859 class t_ARG_04,
165860 class t_ARG_05,
165861 class t_ARG_06>
165862typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165863 t_TYPE,
165864 variant<t_HEAD, t_TAIL_01,
165865 t_TAIL_02,
165866 t_TAIL_03,
165867 t_TAIL_04,
165868 t_TAIL_05,
165869 t_TAIL_06,
165870 t_TAIL_07,
165871 t_TAIL_08,
165872 t_TAIL_09,
165873 t_TAIL_10,
165874 t_TAIL_11,
165875 t_TAIL_12,
165876 t_TAIL_13,
165877 t_TAIL_14,
165878 t_TAIL_15,
165879 t_TAIL_16,
165880 t_TAIL_17> >::value,
165881 t_TYPE&>::type
165882variant<t_HEAD, t_TAIL_01,
165883 t_TAIL_02,
165884 t_TAIL_03,
165885 t_TAIL_04,
165886 t_TAIL_05,
165887 t_TAIL_06,
165888 t_TAIL_07,
165889 t_TAIL_08,
165890 t_TAIL_09,
165891 t_TAIL_10,
165892 t_TAIL_11,
165893 t_TAIL_12,
165894 t_TAIL_13,
165895 t_TAIL_14,
165896 t_TAIL_15,
165897 t_TAIL_16,
165898 t_TAIL_17,
165899 BSLS_COMPILERFEATURES_FILLT( 1)
165900 >::emplace(const t_ARG_01& arg_01,
165901 const t_ARG_02& arg_02,
165902 const t_ARG_03& arg_03,
165903 const t_ARG_04& arg_04,
165904 const t_ARG_05& arg_05,
165905 const t_ARG_06& arg_06)
165906{
165907 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165908
165909 Variant_Base::template baseEmplace<index>(
165910 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165911
165912 return bsl::get<index>(*this);
165913}
165914#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
165915
165916#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
165917template <class t_HEAD, class t_TAIL_01,
165918 class t_TAIL_02,
165919 class t_TAIL_03,
165920 class t_TAIL_04,
165921 class t_TAIL_05,
165922 class t_TAIL_06,
165923 class t_TAIL_07,
165924 class t_TAIL_08,
165925 class t_TAIL_09,
165926 class t_TAIL_10,
165927 class t_TAIL_11,
165928 class t_TAIL_12,
165929 class t_TAIL_13,
165930 class t_TAIL_14,
165931 class t_TAIL_15,
165932 class t_TAIL_16,
165933 class t_TAIL_17,
165934 class t_TAIL_18>
165935template <class t_TYPE,
165936 class t_ARG_01,
165937 class t_ARG_02,
165938 class t_ARG_03,
165939 class t_ARG_04,
165940 class t_ARG_05,
165941 class t_ARG_06>
165942typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
165943 t_TYPE,
165944 variant<t_HEAD, t_TAIL_01,
165945 t_TAIL_02,
165946 t_TAIL_03,
165947 t_TAIL_04,
165948 t_TAIL_05,
165949 t_TAIL_06,
165950 t_TAIL_07,
165951 t_TAIL_08,
165952 t_TAIL_09,
165953 t_TAIL_10,
165954 t_TAIL_11,
165955 t_TAIL_12,
165956 t_TAIL_13,
165957 t_TAIL_14,
165958 t_TAIL_15,
165959 t_TAIL_16,
165960 t_TAIL_17,
165961 t_TAIL_18> >::value,
165962 t_TYPE&>::type
165963variant<t_HEAD, t_TAIL_01,
165964 t_TAIL_02,
165965 t_TAIL_03,
165966 t_TAIL_04,
165967 t_TAIL_05,
165968 t_TAIL_06,
165969 t_TAIL_07,
165970 t_TAIL_08,
165971 t_TAIL_09,
165972 t_TAIL_10,
165973 t_TAIL_11,
165974 t_TAIL_12,
165975 t_TAIL_13,
165976 t_TAIL_14,
165977 t_TAIL_15,
165978 t_TAIL_16,
165979 t_TAIL_17,
165980 t_TAIL_18,
165981 BSLS_COMPILERFEATURES_FILLT( 0)
165982 >::emplace(const t_ARG_01& arg_01,
165983 const t_ARG_02& arg_02,
165984 const t_ARG_03& arg_03,
165985 const t_ARG_04& arg_04,
165986 const t_ARG_05& arg_05,
165987 const t_ARG_06& arg_06)
165988{
165989 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
165990
165991 Variant_Base::template baseEmplace<index>(
165992 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
165993
165994 return bsl::get<index>(*this);
165995}
165996#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
165997
165998
165999#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
166000template <class t_HEAD>
166001template <class t_TYPE,
166002 class t_ARG_01,
166003 class t_ARG_02,
166004 class t_ARG_03,
166005 class t_ARG_04,
166006 class t_ARG_05,
166007 class t_ARG_06,
166008 class t_ARG_07>
166009typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166010 t_TYPE,
166011 variant<t_HEAD> >::value,
166012 t_TYPE&>::type
166013variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
166014 >::emplace(const t_ARG_01& arg_01,
166015 const t_ARG_02& arg_02,
166016 const t_ARG_03& arg_03,
166017 const t_ARG_04& arg_04,
166018 const t_ARG_05& arg_05,
166019 const t_ARG_06& arg_06,
166020 const t_ARG_07& arg_07)
166021{
166022 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166023
166024 Variant_Base::template baseEmplace<index>(
166025 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166026
166027 return bsl::get<index>(*this);
166028}
166029#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
166030
166031#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
166032template <class t_HEAD, class t_TAIL_01>
166033template <class t_TYPE,
166034 class t_ARG_01,
166035 class t_ARG_02,
166036 class t_ARG_03,
166037 class t_ARG_04,
166038 class t_ARG_05,
166039 class t_ARG_06,
166040 class t_ARG_07>
166041typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166042 t_TYPE,
166043 variant<t_HEAD, t_TAIL_01> >::value,
166044 t_TYPE&>::type
166045variant<t_HEAD, t_TAIL_01,
166046 BSLS_COMPILERFEATURES_FILLT(17)
166047 >::emplace(const t_ARG_01& arg_01,
166048 const t_ARG_02& arg_02,
166049 const t_ARG_03& arg_03,
166050 const t_ARG_04& arg_04,
166051 const t_ARG_05& arg_05,
166052 const t_ARG_06& arg_06,
166053 const t_ARG_07& arg_07)
166054{
166055 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166056
166057 Variant_Base::template baseEmplace<index>(
166058 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166059
166060 return bsl::get<index>(*this);
166061}
166062#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
166063
166064#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
166065template <class t_HEAD, class t_TAIL_01,
166066 class t_TAIL_02>
166067template <class t_TYPE,
166068 class t_ARG_01,
166069 class t_ARG_02,
166070 class t_ARG_03,
166071 class t_ARG_04,
166072 class t_ARG_05,
166073 class t_ARG_06,
166074 class t_ARG_07>
166075typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166076 t_TYPE,
166077 variant<t_HEAD, t_TAIL_01,
166078 t_TAIL_02> >::value,
166079 t_TYPE&>::type
166080variant<t_HEAD, t_TAIL_01,
166081 t_TAIL_02,
166082 BSLS_COMPILERFEATURES_FILLT(16)
166083 >::emplace(const t_ARG_01& arg_01,
166084 const t_ARG_02& arg_02,
166085 const t_ARG_03& arg_03,
166086 const t_ARG_04& arg_04,
166087 const t_ARG_05& arg_05,
166088 const t_ARG_06& arg_06,
166089 const t_ARG_07& arg_07)
166090{
166091 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166092
166093 Variant_Base::template baseEmplace<index>(
166094 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166095
166096 return bsl::get<index>(*this);
166097}
166098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
166099
166100#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
166101template <class t_HEAD, class t_TAIL_01,
166102 class t_TAIL_02,
166103 class t_TAIL_03>
166104template <class t_TYPE,
166105 class t_ARG_01,
166106 class t_ARG_02,
166107 class t_ARG_03,
166108 class t_ARG_04,
166109 class t_ARG_05,
166110 class t_ARG_06,
166111 class t_ARG_07>
166112typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166113 t_TYPE,
166114 variant<t_HEAD, t_TAIL_01,
166115 t_TAIL_02,
166116 t_TAIL_03> >::value,
166117 t_TYPE&>::type
166118variant<t_HEAD, t_TAIL_01,
166119 t_TAIL_02,
166120 t_TAIL_03,
166121 BSLS_COMPILERFEATURES_FILLT(15)
166122 >::emplace(const t_ARG_01& arg_01,
166123 const t_ARG_02& arg_02,
166124 const t_ARG_03& arg_03,
166125 const t_ARG_04& arg_04,
166126 const t_ARG_05& arg_05,
166127 const t_ARG_06& arg_06,
166128 const t_ARG_07& arg_07)
166129{
166130 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166131
166132 Variant_Base::template baseEmplace<index>(
166133 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166134
166135 return bsl::get<index>(*this);
166136}
166137#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
166138
166139#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
166140template <class t_HEAD, class t_TAIL_01,
166141 class t_TAIL_02,
166142 class t_TAIL_03,
166143 class t_TAIL_04>
166144template <class t_TYPE,
166145 class t_ARG_01,
166146 class t_ARG_02,
166147 class t_ARG_03,
166148 class t_ARG_04,
166149 class t_ARG_05,
166150 class t_ARG_06,
166151 class t_ARG_07>
166152typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166153 t_TYPE,
166154 variant<t_HEAD, t_TAIL_01,
166155 t_TAIL_02,
166156 t_TAIL_03,
166157 t_TAIL_04> >::value,
166158 t_TYPE&>::type
166159variant<t_HEAD, t_TAIL_01,
166160 t_TAIL_02,
166161 t_TAIL_03,
166162 t_TAIL_04,
166163 BSLS_COMPILERFEATURES_FILLT(14)
166164 >::emplace(const t_ARG_01& arg_01,
166165 const t_ARG_02& arg_02,
166166 const t_ARG_03& arg_03,
166167 const t_ARG_04& arg_04,
166168 const t_ARG_05& arg_05,
166169 const t_ARG_06& arg_06,
166170 const t_ARG_07& arg_07)
166171{
166172 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166173
166174 Variant_Base::template baseEmplace<index>(
166175 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166176
166177 return bsl::get<index>(*this);
166178}
166179#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
166180
166181#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
166182template <class t_HEAD, class t_TAIL_01,
166183 class t_TAIL_02,
166184 class t_TAIL_03,
166185 class t_TAIL_04,
166186 class t_TAIL_05>
166187template <class t_TYPE,
166188 class t_ARG_01,
166189 class t_ARG_02,
166190 class t_ARG_03,
166191 class t_ARG_04,
166192 class t_ARG_05,
166193 class t_ARG_06,
166194 class t_ARG_07>
166195typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166196 t_TYPE,
166197 variant<t_HEAD, t_TAIL_01,
166198 t_TAIL_02,
166199 t_TAIL_03,
166200 t_TAIL_04,
166201 t_TAIL_05> >::value,
166202 t_TYPE&>::type
166203variant<t_HEAD, t_TAIL_01,
166204 t_TAIL_02,
166205 t_TAIL_03,
166206 t_TAIL_04,
166207 t_TAIL_05,
166208 BSLS_COMPILERFEATURES_FILLT(13)
166209 >::emplace(const t_ARG_01& arg_01,
166210 const t_ARG_02& arg_02,
166211 const t_ARG_03& arg_03,
166212 const t_ARG_04& arg_04,
166213 const t_ARG_05& arg_05,
166214 const t_ARG_06& arg_06,
166215 const t_ARG_07& arg_07)
166216{
166217 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166218
166219 Variant_Base::template baseEmplace<index>(
166220 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166221
166222 return bsl::get<index>(*this);
166223}
166224#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
166225
166226#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
166227template <class t_HEAD, class t_TAIL_01,
166228 class t_TAIL_02,
166229 class t_TAIL_03,
166230 class t_TAIL_04,
166231 class t_TAIL_05,
166232 class t_TAIL_06>
166233template <class t_TYPE,
166234 class t_ARG_01,
166235 class t_ARG_02,
166236 class t_ARG_03,
166237 class t_ARG_04,
166238 class t_ARG_05,
166239 class t_ARG_06,
166240 class t_ARG_07>
166241typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166242 t_TYPE,
166243 variant<t_HEAD, t_TAIL_01,
166244 t_TAIL_02,
166245 t_TAIL_03,
166246 t_TAIL_04,
166247 t_TAIL_05,
166248 t_TAIL_06> >::value,
166249 t_TYPE&>::type
166250variant<t_HEAD, t_TAIL_01,
166251 t_TAIL_02,
166252 t_TAIL_03,
166253 t_TAIL_04,
166254 t_TAIL_05,
166255 t_TAIL_06,
166256 BSLS_COMPILERFEATURES_FILLT(12)
166257 >::emplace(const t_ARG_01& arg_01,
166258 const t_ARG_02& arg_02,
166259 const t_ARG_03& arg_03,
166260 const t_ARG_04& arg_04,
166261 const t_ARG_05& arg_05,
166262 const t_ARG_06& arg_06,
166263 const t_ARG_07& arg_07)
166264{
166265 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166266
166267 Variant_Base::template baseEmplace<index>(
166268 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166269
166270 return bsl::get<index>(*this);
166271}
166272#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
166273
166274#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
166275template <class t_HEAD, class t_TAIL_01,
166276 class t_TAIL_02,
166277 class t_TAIL_03,
166278 class t_TAIL_04,
166279 class t_TAIL_05,
166280 class t_TAIL_06,
166281 class t_TAIL_07>
166282template <class t_TYPE,
166283 class t_ARG_01,
166284 class t_ARG_02,
166285 class t_ARG_03,
166286 class t_ARG_04,
166287 class t_ARG_05,
166288 class t_ARG_06,
166289 class t_ARG_07>
166290typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166291 t_TYPE,
166292 variant<t_HEAD, t_TAIL_01,
166293 t_TAIL_02,
166294 t_TAIL_03,
166295 t_TAIL_04,
166296 t_TAIL_05,
166297 t_TAIL_06,
166298 t_TAIL_07> >::value,
166299 t_TYPE&>::type
166300variant<t_HEAD, t_TAIL_01,
166301 t_TAIL_02,
166302 t_TAIL_03,
166303 t_TAIL_04,
166304 t_TAIL_05,
166305 t_TAIL_06,
166306 t_TAIL_07,
166307 BSLS_COMPILERFEATURES_FILLT(11)
166308 >::emplace(const t_ARG_01& arg_01,
166309 const t_ARG_02& arg_02,
166310 const t_ARG_03& arg_03,
166311 const t_ARG_04& arg_04,
166312 const t_ARG_05& arg_05,
166313 const t_ARG_06& arg_06,
166314 const t_ARG_07& arg_07)
166315{
166316 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166317
166318 Variant_Base::template baseEmplace<index>(
166319 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166320
166321 return bsl::get<index>(*this);
166322}
166323#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
166324
166325#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
166326template <class t_HEAD, class t_TAIL_01,
166327 class t_TAIL_02,
166328 class t_TAIL_03,
166329 class t_TAIL_04,
166330 class t_TAIL_05,
166331 class t_TAIL_06,
166332 class t_TAIL_07,
166333 class t_TAIL_08>
166334template <class t_TYPE,
166335 class t_ARG_01,
166336 class t_ARG_02,
166337 class t_ARG_03,
166338 class t_ARG_04,
166339 class t_ARG_05,
166340 class t_ARG_06,
166341 class t_ARG_07>
166342typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166343 t_TYPE,
166344 variant<t_HEAD, t_TAIL_01,
166345 t_TAIL_02,
166346 t_TAIL_03,
166347 t_TAIL_04,
166348 t_TAIL_05,
166349 t_TAIL_06,
166350 t_TAIL_07,
166351 t_TAIL_08> >::value,
166352 t_TYPE&>::type
166353variant<t_HEAD, t_TAIL_01,
166354 t_TAIL_02,
166355 t_TAIL_03,
166356 t_TAIL_04,
166357 t_TAIL_05,
166358 t_TAIL_06,
166359 t_TAIL_07,
166360 t_TAIL_08,
166361 BSLS_COMPILERFEATURES_FILLT(10)
166362 >::emplace(const t_ARG_01& arg_01,
166363 const t_ARG_02& arg_02,
166364 const t_ARG_03& arg_03,
166365 const t_ARG_04& arg_04,
166366 const t_ARG_05& arg_05,
166367 const t_ARG_06& arg_06,
166368 const t_ARG_07& arg_07)
166369{
166370 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166371
166372 Variant_Base::template baseEmplace<index>(
166373 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166374
166375 return bsl::get<index>(*this);
166376}
166377#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
166378
166379#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
166380template <class t_HEAD, class t_TAIL_01,
166381 class t_TAIL_02,
166382 class t_TAIL_03,
166383 class t_TAIL_04,
166384 class t_TAIL_05,
166385 class t_TAIL_06,
166386 class t_TAIL_07,
166387 class t_TAIL_08,
166388 class t_TAIL_09>
166389template <class t_TYPE,
166390 class t_ARG_01,
166391 class t_ARG_02,
166392 class t_ARG_03,
166393 class t_ARG_04,
166394 class t_ARG_05,
166395 class t_ARG_06,
166396 class t_ARG_07>
166397typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166398 t_TYPE,
166399 variant<t_HEAD, t_TAIL_01,
166400 t_TAIL_02,
166401 t_TAIL_03,
166402 t_TAIL_04,
166403 t_TAIL_05,
166404 t_TAIL_06,
166405 t_TAIL_07,
166406 t_TAIL_08,
166407 t_TAIL_09> >::value,
166408 t_TYPE&>::type
166409variant<t_HEAD, t_TAIL_01,
166410 t_TAIL_02,
166411 t_TAIL_03,
166412 t_TAIL_04,
166413 t_TAIL_05,
166414 t_TAIL_06,
166415 t_TAIL_07,
166416 t_TAIL_08,
166417 t_TAIL_09,
166418 BSLS_COMPILERFEATURES_FILLT( 9)
166419 >::emplace(const t_ARG_01& arg_01,
166420 const t_ARG_02& arg_02,
166421 const t_ARG_03& arg_03,
166422 const t_ARG_04& arg_04,
166423 const t_ARG_05& arg_05,
166424 const t_ARG_06& arg_06,
166425 const t_ARG_07& arg_07)
166426{
166427 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166428
166429 Variant_Base::template baseEmplace<index>(
166430 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166431
166432 return bsl::get<index>(*this);
166433}
166434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
166435
166436#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
166437template <class t_HEAD, class t_TAIL_01,
166438 class t_TAIL_02,
166439 class t_TAIL_03,
166440 class t_TAIL_04,
166441 class t_TAIL_05,
166442 class t_TAIL_06,
166443 class t_TAIL_07,
166444 class t_TAIL_08,
166445 class t_TAIL_09,
166446 class t_TAIL_10>
166447template <class t_TYPE,
166448 class t_ARG_01,
166449 class t_ARG_02,
166450 class t_ARG_03,
166451 class t_ARG_04,
166452 class t_ARG_05,
166453 class t_ARG_06,
166454 class t_ARG_07>
166455typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166456 t_TYPE,
166457 variant<t_HEAD, t_TAIL_01,
166458 t_TAIL_02,
166459 t_TAIL_03,
166460 t_TAIL_04,
166461 t_TAIL_05,
166462 t_TAIL_06,
166463 t_TAIL_07,
166464 t_TAIL_08,
166465 t_TAIL_09,
166466 t_TAIL_10> >::value,
166467 t_TYPE&>::type
166468variant<t_HEAD, t_TAIL_01,
166469 t_TAIL_02,
166470 t_TAIL_03,
166471 t_TAIL_04,
166472 t_TAIL_05,
166473 t_TAIL_06,
166474 t_TAIL_07,
166475 t_TAIL_08,
166476 t_TAIL_09,
166477 t_TAIL_10,
166478 BSLS_COMPILERFEATURES_FILLT( 8)
166479 >::emplace(const t_ARG_01& arg_01,
166480 const t_ARG_02& arg_02,
166481 const t_ARG_03& arg_03,
166482 const t_ARG_04& arg_04,
166483 const t_ARG_05& arg_05,
166484 const t_ARG_06& arg_06,
166485 const t_ARG_07& arg_07)
166486{
166487 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166488
166489 Variant_Base::template baseEmplace<index>(
166490 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166491
166492 return bsl::get<index>(*this);
166493}
166494#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
166495
166496#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
166497template <class t_HEAD, class t_TAIL_01,
166498 class t_TAIL_02,
166499 class t_TAIL_03,
166500 class t_TAIL_04,
166501 class t_TAIL_05,
166502 class t_TAIL_06,
166503 class t_TAIL_07,
166504 class t_TAIL_08,
166505 class t_TAIL_09,
166506 class t_TAIL_10,
166507 class t_TAIL_11>
166508template <class t_TYPE,
166509 class t_ARG_01,
166510 class t_ARG_02,
166511 class t_ARG_03,
166512 class t_ARG_04,
166513 class t_ARG_05,
166514 class t_ARG_06,
166515 class t_ARG_07>
166516typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166517 t_TYPE,
166518 variant<t_HEAD, t_TAIL_01,
166519 t_TAIL_02,
166520 t_TAIL_03,
166521 t_TAIL_04,
166522 t_TAIL_05,
166523 t_TAIL_06,
166524 t_TAIL_07,
166525 t_TAIL_08,
166526 t_TAIL_09,
166527 t_TAIL_10,
166528 t_TAIL_11> >::value,
166529 t_TYPE&>::type
166530variant<t_HEAD, t_TAIL_01,
166531 t_TAIL_02,
166532 t_TAIL_03,
166533 t_TAIL_04,
166534 t_TAIL_05,
166535 t_TAIL_06,
166536 t_TAIL_07,
166537 t_TAIL_08,
166538 t_TAIL_09,
166539 t_TAIL_10,
166540 t_TAIL_11,
166541 BSLS_COMPILERFEATURES_FILLT( 7)
166542 >::emplace(const t_ARG_01& arg_01,
166543 const t_ARG_02& arg_02,
166544 const t_ARG_03& arg_03,
166545 const t_ARG_04& arg_04,
166546 const t_ARG_05& arg_05,
166547 const t_ARG_06& arg_06,
166548 const t_ARG_07& arg_07)
166549{
166550 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166551
166552 Variant_Base::template baseEmplace<index>(
166553 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166554
166555 return bsl::get<index>(*this);
166556}
166557#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
166558
166559#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
166560template <class t_HEAD, class t_TAIL_01,
166561 class t_TAIL_02,
166562 class t_TAIL_03,
166563 class t_TAIL_04,
166564 class t_TAIL_05,
166565 class t_TAIL_06,
166566 class t_TAIL_07,
166567 class t_TAIL_08,
166568 class t_TAIL_09,
166569 class t_TAIL_10,
166570 class t_TAIL_11,
166571 class t_TAIL_12>
166572template <class t_TYPE,
166573 class t_ARG_01,
166574 class t_ARG_02,
166575 class t_ARG_03,
166576 class t_ARG_04,
166577 class t_ARG_05,
166578 class t_ARG_06,
166579 class t_ARG_07>
166580typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166581 t_TYPE,
166582 variant<t_HEAD, t_TAIL_01,
166583 t_TAIL_02,
166584 t_TAIL_03,
166585 t_TAIL_04,
166586 t_TAIL_05,
166587 t_TAIL_06,
166588 t_TAIL_07,
166589 t_TAIL_08,
166590 t_TAIL_09,
166591 t_TAIL_10,
166592 t_TAIL_11,
166593 t_TAIL_12> >::value,
166594 t_TYPE&>::type
166595variant<t_HEAD, t_TAIL_01,
166596 t_TAIL_02,
166597 t_TAIL_03,
166598 t_TAIL_04,
166599 t_TAIL_05,
166600 t_TAIL_06,
166601 t_TAIL_07,
166602 t_TAIL_08,
166603 t_TAIL_09,
166604 t_TAIL_10,
166605 t_TAIL_11,
166606 t_TAIL_12,
166607 BSLS_COMPILERFEATURES_FILLT( 6)
166608 >::emplace(const t_ARG_01& arg_01,
166609 const t_ARG_02& arg_02,
166610 const t_ARG_03& arg_03,
166611 const t_ARG_04& arg_04,
166612 const t_ARG_05& arg_05,
166613 const t_ARG_06& arg_06,
166614 const t_ARG_07& arg_07)
166615{
166616 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166617
166618 Variant_Base::template baseEmplace<index>(
166619 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166620
166621 return bsl::get<index>(*this);
166622}
166623#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
166624
166625#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
166626template <class t_HEAD, class t_TAIL_01,
166627 class t_TAIL_02,
166628 class t_TAIL_03,
166629 class t_TAIL_04,
166630 class t_TAIL_05,
166631 class t_TAIL_06,
166632 class t_TAIL_07,
166633 class t_TAIL_08,
166634 class t_TAIL_09,
166635 class t_TAIL_10,
166636 class t_TAIL_11,
166637 class t_TAIL_12,
166638 class t_TAIL_13>
166639template <class t_TYPE,
166640 class t_ARG_01,
166641 class t_ARG_02,
166642 class t_ARG_03,
166643 class t_ARG_04,
166644 class t_ARG_05,
166645 class t_ARG_06,
166646 class t_ARG_07>
166647typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166648 t_TYPE,
166649 variant<t_HEAD, t_TAIL_01,
166650 t_TAIL_02,
166651 t_TAIL_03,
166652 t_TAIL_04,
166653 t_TAIL_05,
166654 t_TAIL_06,
166655 t_TAIL_07,
166656 t_TAIL_08,
166657 t_TAIL_09,
166658 t_TAIL_10,
166659 t_TAIL_11,
166660 t_TAIL_12,
166661 t_TAIL_13> >::value,
166662 t_TYPE&>::type
166663variant<t_HEAD, t_TAIL_01,
166664 t_TAIL_02,
166665 t_TAIL_03,
166666 t_TAIL_04,
166667 t_TAIL_05,
166668 t_TAIL_06,
166669 t_TAIL_07,
166670 t_TAIL_08,
166671 t_TAIL_09,
166672 t_TAIL_10,
166673 t_TAIL_11,
166674 t_TAIL_12,
166675 t_TAIL_13,
166676 BSLS_COMPILERFEATURES_FILLT( 5)
166677 >::emplace(const t_ARG_01& arg_01,
166678 const t_ARG_02& arg_02,
166679 const t_ARG_03& arg_03,
166680 const t_ARG_04& arg_04,
166681 const t_ARG_05& arg_05,
166682 const t_ARG_06& arg_06,
166683 const t_ARG_07& arg_07)
166684{
166685 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166686
166687 Variant_Base::template baseEmplace<index>(
166688 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166689
166690 return bsl::get<index>(*this);
166691}
166692#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
166693
166694#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
166695template <class t_HEAD, class t_TAIL_01,
166696 class t_TAIL_02,
166697 class t_TAIL_03,
166698 class t_TAIL_04,
166699 class t_TAIL_05,
166700 class t_TAIL_06,
166701 class t_TAIL_07,
166702 class t_TAIL_08,
166703 class t_TAIL_09,
166704 class t_TAIL_10,
166705 class t_TAIL_11,
166706 class t_TAIL_12,
166707 class t_TAIL_13,
166708 class t_TAIL_14>
166709template <class t_TYPE,
166710 class t_ARG_01,
166711 class t_ARG_02,
166712 class t_ARG_03,
166713 class t_ARG_04,
166714 class t_ARG_05,
166715 class t_ARG_06,
166716 class t_ARG_07>
166717typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166718 t_TYPE,
166719 variant<t_HEAD, t_TAIL_01,
166720 t_TAIL_02,
166721 t_TAIL_03,
166722 t_TAIL_04,
166723 t_TAIL_05,
166724 t_TAIL_06,
166725 t_TAIL_07,
166726 t_TAIL_08,
166727 t_TAIL_09,
166728 t_TAIL_10,
166729 t_TAIL_11,
166730 t_TAIL_12,
166731 t_TAIL_13,
166732 t_TAIL_14> >::value,
166733 t_TYPE&>::type
166734variant<t_HEAD, t_TAIL_01,
166735 t_TAIL_02,
166736 t_TAIL_03,
166737 t_TAIL_04,
166738 t_TAIL_05,
166739 t_TAIL_06,
166740 t_TAIL_07,
166741 t_TAIL_08,
166742 t_TAIL_09,
166743 t_TAIL_10,
166744 t_TAIL_11,
166745 t_TAIL_12,
166746 t_TAIL_13,
166747 t_TAIL_14,
166748 BSLS_COMPILERFEATURES_FILLT( 4)
166749 >::emplace(const t_ARG_01& arg_01,
166750 const t_ARG_02& arg_02,
166751 const t_ARG_03& arg_03,
166752 const t_ARG_04& arg_04,
166753 const t_ARG_05& arg_05,
166754 const t_ARG_06& arg_06,
166755 const t_ARG_07& arg_07)
166756{
166757 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166758
166759 Variant_Base::template baseEmplace<index>(
166760 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166761
166762 return bsl::get<index>(*this);
166763}
166764#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
166765
166766#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
166767template <class t_HEAD, class t_TAIL_01,
166768 class t_TAIL_02,
166769 class t_TAIL_03,
166770 class t_TAIL_04,
166771 class t_TAIL_05,
166772 class t_TAIL_06,
166773 class t_TAIL_07,
166774 class t_TAIL_08,
166775 class t_TAIL_09,
166776 class t_TAIL_10,
166777 class t_TAIL_11,
166778 class t_TAIL_12,
166779 class t_TAIL_13,
166780 class t_TAIL_14,
166781 class t_TAIL_15>
166782template <class t_TYPE,
166783 class t_ARG_01,
166784 class t_ARG_02,
166785 class t_ARG_03,
166786 class t_ARG_04,
166787 class t_ARG_05,
166788 class t_ARG_06,
166789 class t_ARG_07>
166790typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166791 t_TYPE,
166792 variant<t_HEAD, t_TAIL_01,
166793 t_TAIL_02,
166794 t_TAIL_03,
166795 t_TAIL_04,
166796 t_TAIL_05,
166797 t_TAIL_06,
166798 t_TAIL_07,
166799 t_TAIL_08,
166800 t_TAIL_09,
166801 t_TAIL_10,
166802 t_TAIL_11,
166803 t_TAIL_12,
166804 t_TAIL_13,
166805 t_TAIL_14,
166806 t_TAIL_15> >::value,
166807 t_TYPE&>::type
166808variant<t_HEAD, t_TAIL_01,
166809 t_TAIL_02,
166810 t_TAIL_03,
166811 t_TAIL_04,
166812 t_TAIL_05,
166813 t_TAIL_06,
166814 t_TAIL_07,
166815 t_TAIL_08,
166816 t_TAIL_09,
166817 t_TAIL_10,
166818 t_TAIL_11,
166819 t_TAIL_12,
166820 t_TAIL_13,
166821 t_TAIL_14,
166822 t_TAIL_15,
166823 BSLS_COMPILERFEATURES_FILLT( 3)
166824 >::emplace(const t_ARG_01& arg_01,
166825 const t_ARG_02& arg_02,
166826 const t_ARG_03& arg_03,
166827 const t_ARG_04& arg_04,
166828 const t_ARG_05& arg_05,
166829 const t_ARG_06& arg_06,
166830 const t_ARG_07& arg_07)
166831{
166832 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166833
166834 Variant_Base::template baseEmplace<index>(
166835 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166836
166837 return bsl::get<index>(*this);
166838}
166839#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
166840
166841#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
166842template <class t_HEAD, class t_TAIL_01,
166843 class t_TAIL_02,
166844 class t_TAIL_03,
166845 class t_TAIL_04,
166846 class t_TAIL_05,
166847 class t_TAIL_06,
166848 class t_TAIL_07,
166849 class t_TAIL_08,
166850 class t_TAIL_09,
166851 class t_TAIL_10,
166852 class t_TAIL_11,
166853 class t_TAIL_12,
166854 class t_TAIL_13,
166855 class t_TAIL_14,
166856 class t_TAIL_15,
166857 class t_TAIL_16>
166858template <class t_TYPE,
166859 class t_ARG_01,
166860 class t_ARG_02,
166861 class t_ARG_03,
166862 class t_ARG_04,
166863 class t_ARG_05,
166864 class t_ARG_06,
166865 class t_ARG_07>
166866typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166867 t_TYPE,
166868 variant<t_HEAD, t_TAIL_01,
166869 t_TAIL_02,
166870 t_TAIL_03,
166871 t_TAIL_04,
166872 t_TAIL_05,
166873 t_TAIL_06,
166874 t_TAIL_07,
166875 t_TAIL_08,
166876 t_TAIL_09,
166877 t_TAIL_10,
166878 t_TAIL_11,
166879 t_TAIL_12,
166880 t_TAIL_13,
166881 t_TAIL_14,
166882 t_TAIL_15,
166883 t_TAIL_16> >::value,
166884 t_TYPE&>::type
166885variant<t_HEAD, t_TAIL_01,
166886 t_TAIL_02,
166887 t_TAIL_03,
166888 t_TAIL_04,
166889 t_TAIL_05,
166890 t_TAIL_06,
166891 t_TAIL_07,
166892 t_TAIL_08,
166893 t_TAIL_09,
166894 t_TAIL_10,
166895 t_TAIL_11,
166896 t_TAIL_12,
166897 t_TAIL_13,
166898 t_TAIL_14,
166899 t_TAIL_15,
166900 t_TAIL_16,
166901 BSLS_COMPILERFEATURES_FILLT( 2)
166902 >::emplace(const t_ARG_01& arg_01,
166903 const t_ARG_02& arg_02,
166904 const t_ARG_03& arg_03,
166905 const t_ARG_04& arg_04,
166906 const t_ARG_05& arg_05,
166907 const t_ARG_06& arg_06,
166908 const t_ARG_07& arg_07)
166909{
166910 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166911
166912 Variant_Base::template baseEmplace<index>(
166913 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166914
166915 return bsl::get<index>(*this);
166916}
166917#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
166918
166919#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
166920template <class t_HEAD, class t_TAIL_01,
166921 class t_TAIL_02,
166922 class t_TAIL_03,
166923 class t_TAIL_04,
166924 class t_TAIL_05,
166925 class t_TAIL_06,
166926 class t_TAIL_07,
166927 class t_TAIL_08,
166928 class t_TAIL_09,
166929 class t_TAIL_10,
166930 class t_TAIL_11,
166931 class t_TAIL_12,
166932 class t_TAIL_13,
166933 class t_TAIL_14,
166934 class t_TAIL_15,
166935 class t_TAIL_16,
166936 class t_TAIL_17>
166937template <class t_TYPE,
166938 class t_ARG_01,
166939 class t_ARG_02,
166940 class t_ARG_03,
166941 class t_ARG_04,
166942 class t_ARG_05,
166943 class t_ARG_06,
166944 class t_ARG_07>
166945typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
166946 t_TYPE,
166947 variant<t_HEAD, t_TAIL_01,
166948 t_TAIL_02,
166949 t_TAIL_03,
166950 t_TAIL_04,
166951 t_TAIL_05,
166952 t_TAIL_06,
166953 t_TAIL_07,
166954 t_TAIL_08,
166955 t_TAIL_09,
166956 t_TAIL_10,
166957 t_TAIL_11,
166958 t_TAIL_12,
166959 t_TAIL_13,
166960 t_TAIL_14,
166961 t_TAIL_15,
166962 t_TAIL_16,
166963 t_TAIL_17> >::value,
166964 t_TYPE&>::type
166965variant<t_HEAD, t_TAIL_01,
166966 t_TAIL_02,
166967 t_TAIL_03,
166968 t_TAIL_04,
166969 t_TAIL_05,
166970 t_TAIL_06,
166971 t_TAIL_07,
166972 t_TAIL_08,
166973 t_TAIL_09,
166974 t_TAIL_10,
166975 t_TAIL_11,
166976 t_TAIL_12,
166977 t_TAIL_13,
166978 t_TAIL_14,
166979 t_TAIL_15,
166980 t_TAIL_16,
166981 t_TAIL_17,
166982 BSLS_COMPILERFEATURES_FILLT( 1)
166983 >::emplace(const t_ARG_01& arg_01,
166984 const t_ARG_02& arg_02,
166985 const t_ARG_03& arg_03,
166986 const t_ARG_04& arg_04,
166987 const t_ARG_05& arg_05,
166988 const t_ARG_06& arg_06,
166989 const t_ARG_07& arg_07)
166990{
166991 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
166992
166993 Variant_Base::template baseEmplace<index>(
166994 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
166995
166996 return bsl::get<index>(*this);
166997}
166998#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
166999
167000#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
167001template <class t_HEAD, class t_TAIL_01,
167002 class t_TAIL_02,
167003 class t_TAIL_03,
167004 class t_TAIL_04,
167005 class t_TAIL_05,
167006 class t_TAIL_06,
167007 class t_TAIL_07,
167008 class t_TAIL_08,
167009 class t_TAIL_09,
167010 class t_TAIL_10,
167011 class t_TAIL_11,
167012 class t_TAIL_12,
167013 class t_TAIL_13,
167014 class t_TAIL_14,
167015 class t_TAIL_15,
167016 class t_TAIL_16,
167017 class t_TAIL_17,
167018 class t_TAIL_18>
167019template <class t_TYPE,
167020 class t_ARG_01,
167021 class t_ARG_02,
167022 class t_ARG_03,
167023 class t_ARG_04,
167024 class t_ARG_05,
167025 class t_ARG_06,
167026 class t_ARG_07>
167027typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167028 t_TYPE,
167029 variant<t_HEAD, t_TAIL_01,
167030 t_TAIL_02,
167031 t_TAIL_03,
167032 t_TAIL_04,
167033 t_TAIL_05,
167034 t_TAIL_06,
167035 t_TAIL_07,
167036 t_TAIL_08,
167037 t_TAIL_09,
167038 t_TAIL_10,
167039 t_TAIL_11,
167040 t_TAIL_12,
167041 t_TAIL_13,
167042 t_TAIL_14,
167043 t_TAIL_15,
167044 t_TAIL_16,
167045 t_TAIL_17,
167046 t_TAIL_18> >::value,
167047 t_TYPE&>::type
167048variant<t_HEAD, t_TAIL_01,
167049 t_TAIL_02,
167050 t_TAIL_03,
167051 t_TAIL_04,
167052 t_TAIL_05,
167053 t_TAIL_06,
167054 t_TAIL_07,
167055 t_TAIL_08,
167056 t_TAIL_09,
167057 t_TAIL_10,
167058 t_TAIL_11,
167059 t_TAIL_12,
167060 t_TAIL_13,
167061 t_TAIL_14,
167062 t_TAIL_15,
167063 t_TAIL_16,
167064 t_TAIL_17,
167065 t_TAIL_18,
167066 BSLS_COMPILERFEATURES_FILLT( 0)
167067 >::emplace(const t_ARG_01& arg_01,
167068 const t_ARG_02& arg_02,
167069 const t_ARG_03& arg_03,
167070 const t_ARG_04& arg_04,
167071 const t_ARG_05& arg_05,
167072 const t_ARG_06& arg_06,
167073 const t_ARG_07& arg_07)
167074{
167075 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167076
167077 Variant_Base::template baseEmplace<index>(
167078 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
167079
167080 return bsl::get<index>(*this);
167081}
167082#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
167083
167084
167085#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
167086template <class t_HEAD>
167087template <class t_TYPE,
167088 class t_ARG_01,
167089 class t_ARG_02,
167090 class t_ARG_03,
167091 class t_ARG_04,
167092 class t_ARG_05,
167093 class t_ARG_06,
167094 class t_ARG_07,
167095 class t_ARG_08>
167096typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167097 t_TYPE,
167098 variant<t_HEAD> >::value,
167099 t_TYPE&>::type
167100variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
167101 >::emplace(const t_ARG_01& arg_01,
167102 const t_ARG_02& arg_02,
167103 const t_ARG_03& arg_03,
167104 const t_ARG_04& arg_04,
167105 const t_ARG_05& arg_05,
167106 const t_ARG_06& arg_06,
167107 const t_ARG_07& arg_07,
167108 const t_ARG_08& arg_08)
167109{
167110 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167111
167112 Variant_Base::template baseEmplace<index>(
167113 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167114
167115 return bsl::get<index>(*this);
167116}
167117#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
167118
167119#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
167120template <class t_HEAD, class t_TAIL_01>
167121template <class t_TYPE,
167122 class t_ARG_01,
167123 class t_ARG_02,
167124 class t_ARG_03,
167125 class t_ARG_04,
167126 class t_ARG_05,
167127 class t_ARG_06,
167128 class t_ARG_07,
167129 class t_ARG_08>
167130typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167131 t_TYPE,
167132 variant<t_HEAD, t_TAIL_01> >::value,
167133 t_TYPE&>::type
167134variant<t_HEAD, t_TAIL_01,
167135 BSLS_COMPILERFEATURES_FILLT(17)
167136 >::emplace(const t_ARG_01& arg_01,
167137 const t_ARG_02& arg_02,
167138 const t_ARG_03& arg_03,
167139 const t_ARG_04& arg_04,
167140 const t_ARG_05& arg_05,
167141 const t_ARG_06& arg_06,
167142 const t_ARG_07& arg_07,
167143 const t_ARG_08& arg_08)
167144{
167145 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167146
167147 Variant_Base::template baseEmplace<index>(
167148 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167149
167150 return bsl::get<index>(*this);
167151}
167152#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
167153
167154#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
167155template <class t_HEAD, class t_TAIL_01,
167156 class t_TAIL_02>
167157template <class t_TYPE,
167158 class t_ARG_01,
167159 class t_ARG_02,
167160 class t_ARG_03,
167161 class t_ARG_04,
167162 class t_ARG_05,
167163 class t_ARG_06,
167164 class t_ARG_07,
167165 class t_ARG_08>
167166typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167167 t_TYPE,
167168 variant<t_HEAD, t_TAIL_01,
167169 t_TAIL_02> >::value,
167170 t_TYPE&>::type
167171variant<t_HEAD, t_TAIL_01,
167172 t_TAIL_02,
167173 BSLS_COMPILERFEATURES_FILLT(16)
167174 >::emplace(const t_ARG_01& arg_01,
167175 const t_ARG_02& arg_02,
167176 const t_ARG_03& arg_03,
167177 const t_ARG_04& arg_04,
167178 const t_ARG_05& arg_05,
167179 const t_ARG_06& arg_06,
167180 const t_ARG_07& arg_07,
167181 const t_ARG_08& arg_08)
167182{
167183 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167184
167185 Variant_Base::template baseEmplace<index>(
167186 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167187
167188 return bsl::get<index>(*this);
167189}
167190#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
167191
167192#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
167193template <class t_HEAD, class t_TAIL_01,
167194 class t_TAIL_02,
167195 class t_TAIL_03>
167196template <class t_TYPE,
167197 class t_ARG_01,
167198 class t_ARG_02,
167199 class t_ARG_03,
167200 class t_ARG_04,
167201 class t_ARG_05,
167202 class t_ARG_06,
167203 class t_ARG_07,
167204 class t_ARG_08>
167205typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167206 t_TYPE,
167207 variant<t_HEAD, t_TAIL_01,
167208 t_TAIL_02,
167209 t_TAIL_03> >::value,
167210 t_TYPE&>::type
167211variant<t_HEAD, t_TAIL_01,
167212 t_TAIL_02,
167213 t_TAIL_03,
167214 BSLS_COMPILERFEATURES_FILLT(15)
167215 >::emplace(const t_ARG_01& arg_01,
167216 const t_ARG_02& arg_02,
167217 const t_ARG_03& arg_03,
167218 const t_ARG_04& arg_04,
167219 const t_ARG_05& arg_05,
167220 const t_ARG_06& arg_06,
167221 const t_ARG_07& arg_07,
167222 const t_ARG_08& arg_08)
167223{
167224 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167225
167226 Variant_Base::template baseEmplace<index>(
167227 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167228
167229 return bsl::get<index>(*this);
167230}
167231#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
167232
167233#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
167234template <class t_HEAD, class t_TAIL_01,
167235 class t_TAIL_02,
167236 class t_TAIL_03,
167237 class t_TAIL_04>
167238template <class t_TYPE,
167239 class t_ARG_01,
167240 class t_ARG_02,
167241 class t_ARG_03,
167242 class t_ARG_04,
167243 class t_ARG_05,
167244 class t_ARG_06,
167245 class t_ARG_07,
167246 class t_ARG_08>
167247typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167248 t_TYPE,
167249 variant<t_HEAD, t_TAIL_01,
167250 t_TAIL_02,
167251 t_TAIL_03,
167252 t_TAIL_04> >::value,
167253 t_TYPE&>::type
167254variant<t_HEAD, t_TAIL_01,
167255 t_TAIL_02,
167256 t_TAIL_03,
167257 t_TAIL_04,
167258 BSLS_COMPILERFEATURES_FILLT(14)
167259 >::emplace(const t_ARG_01& arg_01,
167260 const t_ARG_02& arg_02,
167261 const t_ARG_03& arg_03,
167262 const t_ARG_04& arg_04,
167263 const t_ARG_05& arg_05,
167264 const t_ARG_06& arg_06,
167265 const t_ARG_07& arg_07,
167266 const t_ARG_08& arg_08)
167267{
167268 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167269
167270 Variant_Base::template baseEmplace<index>(
167271 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167272
167273 return bsl::get<index>(*this);
167274}
167275#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
167276
167277#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
167278template <class t_HEAD, class t_TAIL_01,
167279 class t_TAIL_02,
167280 class t_TAIL_03,
167281 class t_TAIL_04,
167282 class t_TAIL_05>
167283template <class t_TYPE,
167284 class t_ARG_01,
167285 class t_ARG_02,
167286 class t_ARG_03,
167287 class t_ARG_04,
167288 class t_ARG_05,
167289 class t_ARG_06,
167290 class t_ARG_07,
167291 class t_ARG_08>
167292typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167293 t_TYPE,
167294 variant<t_HEAD, t_TAIL_01,
167295 t_TAIL_02,
167296 t_TAIL_03,
167297 t_TAIL_04,
167298 t_TAIL_05> >::value,
167299 t_TYPE&>::type
167300variant<t_HEAD, t_TAIL_01,
167301 t_TAIL_02,
167302 t_TAIL_03,
167303 t_TAIL_04,
167304 t_TAIL_05,
167305 BSLS_COMPILERFEATURES_FILLT(13)
167306 >::emplace(const t_ARG_01& arg_01,
167307 const t_ARG_02& arg_02,
167308 const t_ARG_03& arg_03,
167309 const t_ARG_04& arg_04,
167310 const t_ARG_05& arg_05,
167311 const t_ARG_06& arg_06,
167312 const t_ARG_07& arg_07,
167313 const t_ARG_08& arg_08)
167314{
167315 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167316
167317 Variant_Base::template baseEmplace<index>(
167318 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167319
167320 return bsl::get<index>(*this);
167321}
167322#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
167323
167324#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
167325template <class t_HEAD, class t_TAIL_01,
167326 class t_TAIL_02,
167327 class t_TAIL_03,
167328 class t_TAIL_04,
167329 class t_TAIL_05,
167330 class t_TAIL_06>
167331template <class t_TYPE,
167332 class t_ARG_01,
167333 class t_ARG_02,
167334 class t_ARG_03,
167335 class t_ARG_04,
167336 class t_ARG_05,
167337 class t_ARG_06,
167338 class t_ARG_07,
167339 class t_ARG_08>
167340typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167341 t_TYPE,
167342 variant<t_HEAD, t_TAIL_01,
167343 t_TAIL_02,
167344 t_TAIL_03,
167345 t_TAIL_04,
167346 t_TAIL_05,
167347 t_TAIL_06> >::value,
167348 t_TYPE&>::type
167349variant<t_HEAD, t_TAIL_01,
167350 t_TAIL_02,
167351 t_TAIL_03,
167352 t_TAIL_04,
167353 t_TAIL_05,
167354 t_TAIL_06,
167355 BSLS_COMPILERFEATURES_FILLT(12)
167356 >::emplace(const t_ARG_01& arg_01,
167357 const t_ARG_02& arg_02,
167358 const t_ARG_03& arg_03,
167359 const t_ARG_04& arg_04,
167360 const t_ARG_05& arg_05,
167361 const t_ARG_06& arg_06,
167362 const t_ARG_07& arg_07,
167363 const t_ARG_08& arg_08)
167364{
167365 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167366
167367 Variant_Base::template baseEmplace<index>(
167368 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167369
167370 return bsl::get<index>(*this);
167371}
167372#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
167373
167374#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
167375template <class t_HEAD, class t_TAIL_01,
167376 class t_TAIL_02,
167377 class t_TAIL_03,
167378 class t_TAIL_04,
167379 class t_TAIL_05,
167380 class t_TAIL_06,
167381 class t_TAIL_07>
167382template <class t_TYPE,
167383 class t_ARG_01,
167384 class t_ARG_02,
167385 class t_ARG_03,
167386 class t_ARG_04,
167387 class t_ARG_05,
167388 class t_ARG_06,
167389 class t_ARG_07,
167390 class t_ARG_08>
167391typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167392 t_TYPE,
167393 variant<t_HEAD, t_TAIL_01,
167394 t_TAIL_02,
167395 t_TAIL_03,
167396 t_TAIL_04,
167397 t_TAIL_05,
167398 t_TAIL_06,
167399 t_TAIL_07> >::value,
167400 t_TYPE&>::type
167401variant<t_HEAD, t_TAIL_01,
167402 t_TAIL_02,
167403 t_TAIL_03,
167404 t_TAIL_04,
167405 t_TAIL_05,
167406 t_TAIL_06,
167407 t_TAIL_07,
167408 BSLS_COMPILERFEATURES_FILLT(11)
167409 >::emplace(const t_ARG_01& arg_01,
167410 const t_ARG_02& arg_02,
167411 const t_ARG_03& arg_03,
167412 const t_ARG_04& arg_04,
167413 const t_ARG_05& arg_05,
167414 const t_ARG_06& arg_06,
167415 const t_ARG_07& arg_07,
167416 const t_ARG_08& arg_08)
167417{
167418 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167419
167420 Variant_Base::template baseEmplace<index>(
167421 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167422
167423 return bsl::get<index>(*this);
167424}
167425#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
167426
167427#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
167428template <class t_HEAD, class t_TAIL_01,
167429 class t_TAIL_02,
167430 class t_TAIL_03,
167431 class t_TAIL_04,
167432 class t_TAIL_05,
167433 class t_TAIL_06,
167434 class t_TAIL_07,
167435 class t_TAIL_08>
167436template <class t_TYPE,
167437 class t_ARG_01,
167438 class t_ARG_02,
167439 class t_ARG_03,
167440 class t_ARG_04,
167441 class t_ARG_05,
167442 class t_ARG_06,
167443 class t_ARG_07,
167444 class t_ARG_08>
167445typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167446 t_TYPE,
167447 variant<t_HEAD, t_TAIL_01,
167448 t_TAIL_02,
167449 t_TAIL_03,
167450 t_TAIL_04,
167451 t_TAIL_05,
167452 t_TAIL_06,
167453 t_TAIL_07,
167454 t_TAIL_08> >::value,
167455 t_TYPE&>::type
167456variant<t_HEAD, t_TAIL_01,
167457 t_TAIL_02,
167458 t_TAIL_03,
167459 t_TAIL_04,
167460 t_TAIL_05,
167461 t_TAIL_06,
167462 t_TAIL_07,
167463 t_TAIL_08,
167464 BSLS_COMPILERFEATURES_FILLT(10)
167465 >::emplace(const t_ARG_01& arg_01,
167466 const t_ARG_02& arg_02,
167467 const t_ARG_03& arg_03,
167468 const t_ARG_04& arg_04,
167469 const t_ARG_05& arg_05,
167470 const t_ARG_06& arg_06,
167471 const t_ARG_07& arg_07,
167472 const t_ARG_08& arg_08)
167473{
167474 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167475
167476 Variant_Base::template baseEmplace<index>(
167477 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167478
167479 return bsl::get<index>(*this);
167480}
167481#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
167482
167483#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
167484template <class t_HEAD, class t_TAIL_01,
167485 class t_TAIL_02,
167486 class t_TAIL_03,
167487 class t_TAIL_04,
167488 class t_TAIL_05,
167489 class t_TAIL_06,
167490 class t_TAIL_07,
167491 class t_TAIL_08,
167492 class t_TAIL_09>
167493template <class t_TYPE,
167494 class t_ARG_01,
167495 class t_ARG_02,
167496 class t_ARG_03,
167497 class t_ARG_04,
167498 class t_ARG_05,
167499 class t_ARG_06,
167500 class t_ARG_07,
167501 class t_ARG_08>
167502typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167503 t_TYPE,
167504 variant<t_HEAD, t_TAIL_01,
167505 t_TAIL_02,
167506 t_TAIL_03,
167507 t_TAIL_04,
167508 t_TAIL_05,
167509 t_TAIL_06,
167510 t_TAIL_07,
167511 t_TAIL_08,
167512 t_TAIL_09> >::value,
167513 t_TYPE&>::type
167514variant<t_HEAD, t_TAIL_01,
167515 t_TAIL_02,
167516 t_TAIL_03,
167517 t_TAIL_04,
167518 t_TAIL_05,
167519 t_TAIL_06,
167520 t_TAIL_07,
167521 t_TAIL_08,
167522 t_TAIL_09,
167523 BSLS_COMPILERFEATURES_FILLT( 9)
167524 >::emplace(const t_ARG_01& arg_01,
167525 const t_ARG_02& arg_02,
167526 const t_ARG_03& arg_03,
167527 const t_ARG_04& arg_04,
167528 const t_ARG_05& arg_05,
167529 const t_ARG_06& arg_06,
167530 const t_ARG_07& arg_07,
167531 const t_ARG_08& arg_08)
167532{
167533 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167534
167535 Variant_Base::template baseEmplace<index>(
167536 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167537
167538 return bsl::get<index>(*this);
167539}
167540#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
167541
167542#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
167543template <class t_HEAD, class t_TAIL_01,
167544 class t_TAIL_02,
167545 class t_TAIL_03,
167546 class t_TAIL_04,
167547 class t_TAIL_05,
167548 class t_TAIL_06,
167549 class t_TAIL_07,
167550 class t_TAIL_08,
167551 class t_TAIL_09,
167552 class t_TAIL_10>
167553template <class t_TYPE,
167554 class t_ARG_01,
167555 class t_ARG_02,
167556 class t_ARG_03,
167557 class t_ARG_04,
167558 class t_ARG_05,
167559 class t_ARG_06,
167560 class t_ARG_07,
167561 class t_ARG_08>
167562typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167563 t_TYPE,
167564 variant<t_HEAD, t_TAIL_01,
167565 t_TAIL_02,
167566 t_TAIL_03,
167567 t_TAIL_04,
167568 t_TAIL_05,
167569 t_TAIL_06,
167570 t_TAIL_07,
167571 t_TAIL_08,
167572 t_TAIL_09,
167573 t_TAIL_10> >::value,
167574 t_TYPE&>::type
167575variant<t_HEAD, t_TAIL_01,
167576 t_TAIL_02,
167577 t_TAIL_03,
167578 t_TAIL_04,
167579 t_TAIL_05,
167580 t_TAIL_06,
167581 t_TAIL_07,
167582 t_TAIL_08,
167583 t_TAIL_09,
167584 t_TAIL_10,
167585 BSLS_COMPILERFEATURES_FILLT( 8)
167586 >::emplace(const t_ARG_01& arg_01,
167587 const t_ARG_02& arg_02,
167588 const t_ARG_03& arg_03,
167589 const t_ARG_04& arg_04,
167590 const t_ARG_05& arg_05,
167591 const t_ARG_06& arg_06,
167592 const t_ARG_07& arg_07,
167593 const t_ARG_08& arg_08)
167594{
167595 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167596
167597 Variant_Base::template baseEmplace<index>(
167598 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167599
167600 return bsl::get<index>(*this);
167601}
167602#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
167603
167604#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
167605template <class t_HEAD, class t_TAIL_01,
167606 class t_TAIL_02,
167607 class t_TAIL_03,
167608 class t_TAIL_04,
167609 class t_TAIL_05,
167610 class t_TAIL_06,
167611 class t_TAIL_07,
167612 class t_TAIL_08,
167613 class t_TAIL_09,
167614 class t_TAIL_10,
167615 class t_TAIL_11>
167616template <class t_TYPE,
167617 class t_ARG_01,
167618 class t_ARG_02,
167619 class t_ARG_03,
167620 class t_ARG_04,
167621 class t_ARG_05,
167622 class t_ARG_06,
167623 class t_ARG_07,
167624 class t_ARG_08>
167625typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167626 t_TYPE,
167627 variant<t_HEAD, t_TAIL_01,
167628 t_TAIL_02,
167629 t_TAIL_03,
167630 t_TAIL_04,
167631 t_TAIL_05,
167632 t_TAIL_06,
167633 t_TAIL_07,
167634 t_TAIL_08,
167635 t_TAIL_09,
167636 t_TAIL_10,
167637 t_TAIL_11> >::value,
167638 t_TYPE&>::type
167639variant<t_HEAD, t_TAIL_01,
167640 t_TAIL_02,
167641 t_TAIL_03,
167642 t_TAIL_04,
167643 t_TAIL_05,
167644 t_TAIL_06,
167645 t_TAIL_07,
167646 t_TAIL_08,
167647 t_TAIL_09,
167648 t_TAIL_10,
167649 t_TAIL_11,
167650 BSLS_COMPILERFEATURES_FILLT( 7)
167651 >::emplace(const t_ARG_01& arg_01,
167652 const t_ARG_02& arg_02,
167653 const t_ARG_03& arg_03,
167654 const t_ARG_04& arg_04,
167655 const t_ARG_05& arg_05,
167656 const t_ARG_06& arg_06,
167657 const t_ARG_07& arg_07,
167658 const t_ARG_08& arg_08)
167659{
167660 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167661
167662 Variant_Base::template baseEmplace<index>(
167663 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167664
167665 return bsl::get<index>(*this);
167666}
167667#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
167668
167669#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
167670template <class t_HEAD, class t_TAIL_01,
167671 class t_TAIL_02,
167672 class t_TAIL_03,
167673 class t_TAIL_04,
167674 class t_TAIL_05,
167675 class t_TAIL_06,
167676 class t_TAIL_07,
167677 class t_TAIL_08,
167678 class t_TAIL_09,
167679 class t_TAIL_10,
167680 class t_TAIL_11,
167681 class t_TAIL_12>
167682template <class t_TYPE,
167683 class t_ARG_01,
167684 class t_ARG_02,
167685 class t_ARG_03,
167686 class t_ARG_04,
167687 class t_ARG_05,
167688 class t_ARG_06,
167689 class t_ARG_07,
167690 class t_ARG_08>
167691typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167692 t_TYPE,
167693 variant<t_HEAD, t_TAIL_01,
167694 t_TAIL_02,
167695 t_TAIL_03,
167696 t_TAIL_04,
167697 t_TAIL_05,
167698 t_TAIL_06,
167699 t_TAIL_07,
167700 t_TAIL_08,
167701 t_TAIL_09,
167702 t_TAIL_10,
167703 t_TAIL_11,
167704 t_TAIL_12> >::value,
167705 t_TYPE&>::type
167706variant<t_HEAD, t_TAIL_01,
167707 t_TAIL_02,
167708 t_TAIL_03,
167709 t_TAIL_04,
167710 t_TAIL_05,
167711 t_TAIL_06,
167712 t_TAIL_07,
167713 t_TAIL_08,
167714 t_TAIL_09,
167715 t_TAIL_10,
167716 t_TAIL_11,
167717 t_TAIL_12,
167718 BSLS_COMPILERFEATURES_FILLT( 6)
167719 >::emplace(const t_ARG_01& arg_01,
167720 const t_ARG_02& arg_02,
167721 const t_ARG_03& arg_03,
167722 const t_ARG_04& arg_04,
167723 const t_ARG_05& arg_05,
167724 const t_ARG_06& arg_06,
167725 const t_ARG_07& arg_07,
167726 const t_ARG_08& arg_08)
167727{
167728 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167729
167730 Variant_Base::template baseEmplace<index>(
167731 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167732
167733 return bsl::get<index>(*this);
167734}
167735#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
167736
167737#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
167738template <class t_HEAD, class t_TAIL_01,
167739 class t_TAIL_02,
167740 class t_TAIL_03,
167741 class t_TAIL_04,
167742 class t_TAIL_05,
167743 class t_TAIL_06,
167744 class t_TAIL_07,
167745 class t_TAIL_08,
167746 class t_TAIL_09,
167747 class t_TAIL_10,
167748 class t_TAIL_11,
167749 class t_TAIL_12,
167750 class t_TAIL_13>
167751template <class t_TYPE,
167752 class t_ARG_01,
167753 class t_ARG_02,
167754 class t_ARG_03,
167755 class t_ARG_04,
167756 class t_ARG_05,
167757 class t_ARG_06,
167758 class t_ARG_07,
167759 class t_ARG_08>
167760typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167761 t_TYPE,
167762 variant<t_HEAD, t_TAIL_01,
167763 t_TAIL_02,
167764 t_TAIL_03,
167765 t_TAIL_04,
167766 t_TAIL_05,
167767 t_TAIL_06,
167768 t_TAIL_07,
167769 t_TAIL_08,
167770 t_TAIL_09,
167771 t_TAIL_10,
167772 t_TAIL_11,
167773 t_TAIL_12,
167774 t_TAIL_13> >::value,
167775 t_TYPE&>::type
167776variant<t_HEAD, t_TAIL_01,
167777 t_TAIL_02,
167778 t_TAIL_03,
167779 t_TAIL_04,
167780 t_TAIL_05,
167781 t_TAIL_06,
167782 t_TAIL_07,
167783 t_TAIL_08,
167784 t_TAIL_09,
167785 t_TAIL_10,
167786 t_TAIL_11,
167787 t_TAIL_12,
167788 t_TAIL_13,
167789 BSLS_COMPILERFEATURES_FILLT( 5)
167790 >::emplace(const t_ARG_01& arg_01,
167791 const t_ARG_02& arg_02,
167792 const t_ARG_03& arg_03,
167793 const t_ARG_04& arg_04,
167794 const t_ARG_05& arg_05,
167795 const t_ARG_06& arg_06,
167796 const t_ARG_07& arg_07,
167797 const t_ARG_08& arg_08)
167798{
167799 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167800
167801 Variant_Base::template baseEmplace<index>(
167802 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167803
167804 return bsl::get<index>(*this);
167805}
167806#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
167807
167808#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
167809template <class t_HEAD, class t_TAIL_01,
167810 class t_TAIL_02,
167811 class t_TAIL_03,
167812 class t_TAIL_04,
167813 class t_TAIL_05,
167814 class t_TAIL_06,
167815 class t_TAIL_07,
167816 class t_TAIL_08,
167817 class t_TAIL_09,
167818 class t_TAIL_10,
167819 class t_TAIL_11,
167820 class t_TAIL_12,
167821 class t_TAIL_13,
167822 class t_TAIL_14>
167823template <class t_TYPE,
167824 class t_ARG_01,
167825 class t_ARG_02,
167826 class t_ARG_03,
167827 class t_ARG_04,
167828 class t_ARG_05,
167829 class t_ARG_06,
167830 class t_ARG_07,
167831 class t_ARG_08>
167832typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167833 t_TYPE,
167834 variant<t_HEAD, t_TAIL_01,
167835 t_TAIL_02,
167836 t_TAIL_03,
167837 t_TAIL_04,
167838 t_TAIL_05,
167839 t_TAIL_06,
167840 t_TAIL_07,
167841 t_TAIL_08,
167842 t_TAIL_09,
167843 t_TAIL_10,
167844 t_TAIL_11,
167845 t_TAIL_12,
167846 t_TAIL_13,
167847 t_TAIL_14> >::value,
167848 t_TYPE&>::type
167849variant<t_HEAD, t_TAIL_01,
167850 t_TAIL_02,
167851 t_TAIL_03,
167852 t_TAIL_04,
167853 t_TAIL_05,
167854 t_TAIL_06,
167855 t_TAIL_07,
167856 t_TAIL_08,
167857 t_TAIL_09,
167858 t_TAIL_10,
167859 t_TAIL_11,
167860 t_TAIL_12,
167861 t_TAIL_13,
167862 t_TAIL_14,
167863 BSLS_COMPILERFEATURES_FILLT( 4)
167864 >::emplace(const t_ARG_01& arg_01,
167865 const t_ARG_02& arg_02,
167866 const t_ARG_03& arg_03,
167867 const t_ARG_04& arg_04,
167868 const t_ARG_05& arg_05,
167869 const t_ARG_06& arg_06,
167870 const t_ARG_07& arg_07,
167871 const t_ARG_08& arg_08)
167872{
167873 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167874
167875 Variant_Base::template baseEmplace<index>(
167876 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167877
167878 return bsl::get<index>(*this);
167879}
167880#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
167881
167882#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
167883template <class t_HEAD, class t_TAIL_01,
167884 class t_TAIL_02,
167885 class t_TAIL_03,
167886 class t_TAIL_04,
167887 class t_TAIL_05,
167888 class t_TAIL_06,
167889 class t_TAIL_07,
167890 class t_TAIL_08,
167891 class t_TAIL_09,
167892 class t_TAIL_10,
167893 class t_TAIL_11,
167894 class t_TAIL_12,
167895 class t_TAIL_13,
167896 class t_TAIL_14,
167897 class t_TAIL_15>
167898template <class t_TYPE,
167899 class t_ARG_01,
167900 class t_ARG_02,
167901 class t_ARG_03,
167902 class t_ARG_04,
167903 class t_ARG_05,
167904 class t_ARG_06,
167905 class t_ARG_07,
167906 class t_ARG_08>
167907typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167908 t_TYPE,
167909 variant<t_HEAD, t_TAIL_01,
167910 t_TAIL_02,
167911 t_TAIL_03,
167912 t_TAIL_04,
167913 t_TAIL_05,
167914 t_TAIL_06,
167915 t_TAIL_07,
167916 t_TAIL_08,
167917 t_TAIL_09,
167918 t_TAIL_10,
167919 t_TAIL_11,
167920 t_TAIL_12,
167921 t_TAIL_13,
167922 t_TAIL_14,
167923 t_TAIL_15> >::value,
167924 t_TYPE&>::type
167925variant<t_HEAD, t_TAIL_01,
167926 t_TAIL_02,
167927 t_TAIL_03,
167928 t_TAIL_04,
167929 t_TAIL_05,
167930 t_TAIL_06,
167931 t_TAIL_07,
167932 t_TAIL_08,
167933 t_TAIL_09,
167934 t_TAIL_10,
167935 t_TAIL_11,
167936 t_TAIL_12,
167937 t_TAIL_13,
167938 t_TAIL_14,
167939 t_TAIL_15,
167940 BSLS_COMPILERFEATURES_FILLT( 3)
167941 >::emplace(const t_ARG_01& arg_01,
167942 const t_ARG_02& arg_02,
167943 const t_ARG_03& arg_03,
167944 const t_ARG_04& arg_04,
167945 const t_ARG_05& arg_05,
167946 const t_ARG_06& arg_06,
167947 const t_ARG_07& arg_07,
167948 const t_ARG_08& arg_08)
167949{
167950 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
167951
167952 Variant_Base::template baseEmplace<index>(
167953 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
167954
167955 return bsl::get<index>(*this);
167956}
167957#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
167958
167959#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
167960template <class t_HEAD, class t_TAIL_01,
167961 class t_TAIL_02,
167962 class t_TAIL_03,
167963 class t_TAIL_04,
167964 class t_TAIL_05,
167965 class t_TAIL_06,
167966 class t_TAIL_07,
167967 class t_TAIL_08,
167968 class t_TAIL_09,
167969 class t_TAIL_10,
167970 class t_TAIL_11,
167971 class t_TAIL_12,
167972 class t_TAIL_13,
167973 class t_TAIL_14,
167974 class t_TAIL_15,
167975 class t_TAIL_16>
167976template <class t_TYPE,
167977 class t_ARG_01,
167978 class t_ARG_02,
167979 class t_ARG_03,
167980 class t_ARG_04,
167981 class t_ARG_05,
167982 class t_ARG_06,
167983 class t_ARG_07,
167984 class t_ARG_08>
167985typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
167986 t_TYPE,
167987 variant<t_HEAD, t_TAIL_01,
167988 t_TAIL_02,
167989 t_TAIL_03,
167990 t_TAIL_04,
167991 t_TAIL_05,
167992 t_TAIL_06,
167993 t_TAIL_07,
167994 t_TAIL_08,
167995 t_TAIL_09,
167996 t_TAIL_10,
167997 t_TAIL_11,
167998 t_TAIL_12,
167999 t_TAIL_13,
168000 t_TAIL_14,
168001 t_TAIL_15,
168002 t_TAIL_16> >::value,
168003 t_TYPE&>::type
168004variant<t_HEAD, t_TAIL_01,
168005 t_TAIL_02,
168006 t_TAIL_03,
168007 t_TAIL_04,
168008 t_TAIL_05,
168009 t_TAIL_06,
168010 t_TAIL_07,
168011 t_TAIL_08,
168012 t_TAIL_09,
168013 t_TAIL_10,
168014 t_TAIL_11,
168015 t_TAIL_12,
168016 t_TAIL_13,
168017 t_TAIL_14,
168018 t_TAIL_15,
168019 t_TAIL_16,
168020 BSLS_COMPILERFEATURES_FILLT( 2)
168021 >::emplace(const t_ARG_01& arg_01,
168022 const t_ARG_02& arg_02,
168023 const t_ARG_03& arg_03,
168024 const t_ARG_04& arg_04,
168025 const t_ARG_05& arg_05,
168026 const t_ARG_06& arg_06,
168027 const t_ARG_07& arg_07,
168028 const t_ARG_08& arg_08)
168029{
168030 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168031
168032 Variant_Base::template baseEmplace<index>(
168033 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
168034
168035 return bsl::get<index>(*this);
168036}
168037#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
168038
168039#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
168040template <class t_HEAD, class t_TAIL_01,
168041 class t_TAIL_02,
168042 class t_TAIL_03,
168043 class t_TAIL_04,
168044 class t_TAIL_05,
168045 class t_TAIL_06,
168046 class t_TAIL_07,
168047 class t_TAIL_08,
168048 class t_TAIL_09,
168049 class t_TAIL_10,
168050 class t_TAIL_11,
168051 class t_TAIL_12,
168052 class t_TAIL_13,
168053 class t_TAIL_14,
168054 class t_TAIL_15,
168055 class t_TAIL_16,
168056 class t_TAIL_17>
168057template <class t_TYPE,
168058 class t_ARG_01,
168059 class t_ARG_02,
168060 class t_ARG_03,
168061 class t_ARG_04,
168062 class t_ARG_05,
168063 class t_ARG_06,
168064 class t_ARG_07,
168065 class t_ARG_08>
168066typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168067 t_TYPE,
168068 variant<t_HEAD, t_TAIL_01,
168069 t_TAIL_02,
168070 t_TAIL_03,
168071 t_TAIL_04,
168072 t_TAIL_05,
168073 t_TAIL_06,
168074 t_TAIL_07,
168075 t_TAIL_08,
168076 t_TAIL_09,
168077 t_TAIL_10,
168078 t_TAIL_11,
168079 t_TAIL_12,
168080 t_TAIL_13,
168081 t_TAIL_14,
168082 t_TAIL_15,
168083 t_TAIL_16,
168084 t_TAIL_17> >::value,
168085 t_TYPE&>::type
168086variant<t_HEAD, t_TAIL_01,
168087 t_TAIL_02,
168088 t_TAIL_03,
168089 t_TAIL_04,
168090 t_TAIL_05,
168091 t_TAIL_06,
168092 t_TAIL_07,
168093 t_TAIL_08,
168094 t_TAIL_09,
168095 t_TAIL_10,
168096 t_TAIL_11,
168097 t_TAIL_12,
168098 t_TAIL_13,
168099 t_TAIL_14,
168100 t_TAIL_15,
168101 t_TAIL_16,
168102 t_TAIL_17,
168103 BSLS_COMPILERFEATURES_FILLT( 1)
168104 >::emplace(const t_ARG_01& arg_01,
168105 const t_ARG_02& arg_02,
168106 const t_ARG_03& arg_03,
168107 const t_ARG_04& arg_04,
168108 const t_ARG_05& arg_05,
168109 const t_ARG_06& arg_06,
168110 const t_ARG_07& arg_07,
168111 const t_ARG_08& arg_08)
168112{
168113 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168114
168115 Variant_Base::template baseEmplace<index>(
168116 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
168117
168118 return bsl::get<index>(*this);
168119}
168120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
168121
168122#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
168123template <class t_HEAD, class t_TAIL_01,
168124 class t_TAIL_02,
168125 class t_TAIL_03,
168126 class t_TAIL_04,
168127 class t_TAIL_05,
168128 class t_TAIL_06,
168129 class t_TAIL_07,
168130 class t_TAIL_08,
168131 class t_TAIL_09,
168132 class t_TAIL_10,
168133 class t_TAIL_11,
168134 class t_TAIL_12,
168135 class t_TAIL_13,
168136 class t_TAIL_14,
168137 class t_TAIL_15,
168138 class t_TAIL_16,
168139 class t_TAIL_17,
168140 class t_TAIL_18>
168141template <class t_TYPE,
168142 class t_ARG_01,
168143 class t_ARG_02,
168144 class t_ARG_03,
168145 class t_ARG_04,
168146 class t_ARG_05,
168147 class t_ARG_06,
168148 class t_ARG_07,
168149 class t_ARG_08>
168150typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168151 t_TYPE,
168152 variant<t_HEAD, t_TAIL_01,
168153 t_TAIL_02,
168154 t_TAIL_03,
168155 t_TAIL_04,
168156 t_TAIL_05,
168157 t_TAIL_06,
168158 t_TAIL_07,
168159 t_TAIL_08,
168160 t_TAIL_09,
168161 t_TAIL_10,
168162 t_TAIL_11,
168163 t_TAIL_12,
168164 t_TAIL_13,
168165 t_TAIL_14,
168166 t_TAIL_15,
168167 t_TAIL_16,
168168 t_TAIL_17,
168169 t_TAIL_18> >::value,
168170 t_TYPE&>::type
168171variant<t_HEAD, t_TAIL_01,
168172 t_TAIL_02,
168173 t_TAIL_03,
168174 t_TAIL_04,
168175 t_TAIL_05,
168176 t_TAIL_06,
168177 t_TAIL_07,
168178 t_TAIL_08,
168179 t_TAIL_09,
168180 t_TAIL_10,
168181 t_TAIL_11,
168182 t_TAIL_12,
168183 t_TAIL_13,
168184 t_TAIL_14,
168185 t_TAIL_15,
168186 t_TAIL_16,
168187 t_TAIL_17,
168188 t_TAIL_18,
168189 BSLS_COMPILERFEATURES_FILLT( 0)
168190 >::emplace(const t_ARG_01& arg_01,
168191 const t_ARG_02& arg_02,
168192 const t_ARG_03& arg_03,
168193 const t_ARG_04& arg_04,
168194 const t_ARG_05& arg_05,
168195 const t_ARG_06& arg_06,
168196 const t_ARG_07& arg_07,
168197 const t_ARG_08& arg_08)
168198{
168199 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168200
168201 Variant_Base::template baseEmplace<index>(
168202 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
168203
168204 return bsl::get<index>(*this);
168205}
168206#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
168207
168208
168209#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
168210template <class t_HEAD>
168211template <class t_TYPE,
168212 class t_ARG_01,
168213 class t_ARG_02,
168214 class t_ARG_03,
168215 class t_ARG_04,
168216 class t_ARG_05,
168217 class t_ARG_06,
168218 class t_ARG_07,
168219 class t_ARG_08,
168220 class t_ARG_09>
168221typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168222 t_TYPE,
168223 variant<t_HEAD> >::value,
168224 t_TYPE&>::type
168225variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
168226 >::emplace(const t_ARG_01& arg_01,
168227 const t_ARG_02& arg_02,
168228 const t_ARG_03& arg_03,
168229 const t_ARG_04& arg_04,
168230 const t_ARG_05& arg_05,
168231 const t_ARG_06& arg_06,
168232 const t_ARG_07& arg_07,
168233 const t_ARG_08& arg_08,
168234 const t_ARG_09& arg_09)
168235{
168236 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168237
168238 Variant_Base::template baseEmplace<index>(arg_01,
168239 arg_02,
168240 arg_03,
168241 arg_04,
168242 arg_05,
168243 arg_06,
168244 arg_07,
168245 arg_08,
168246 arg_09);
168247
168248 return bsl::get<index>(*this);
168249}
168250#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
168251
168252#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
168253template <class t_HEAD, class t_TAIL_01>
168254template <class t_TYPE,
168255 class t_ARG_01,
168256 class t_ARG_02,
168257 class t_ARG_03,
168258 class t_ARG_04,
168259 class t_ARG_05,
168260 class t_ARG_06,
168261 class t_ARG_07,
168262 class t_ARG_08,
168263 class t_ARG_09>
168264typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168265 t_TYPE,
168266 variant<t_HEAD, t_TAIL_01> >::value,
168267 t_TYPE&>::type
168268variant<t_HEAD, t_TAIL_01,
168269 BSLS_COMPILERFEATURES_FILLT(17)
168270 >::emplace(const t_ARG_01& arg_01,
168271 const t_ARG_02& arg_02,
168272 const t_ARG_03& arg_03,
168273 const t_ARG_04& arg_04,
168274 const t_ARG_05& arg_05,
168275 const t_ARG_06& arg_06,
168276 const t_ARG_07& arg_07,
168277 const t_ARG_08& arg_08,
168278 const t_ARG_09& arg_09)
168279{
168280 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168281
168282 Variant_Base::template baseEmplace<index>(arg_01,
168283 arg_02,
168284 arg_03,
168285 arg_04,
168286 arg_05,
168287 arg_06,
168288 arg_07,
168289 arg_08,
168290 arg_09);
168291
168292 return bsl::get<index>(*this);
168293}
168294#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
168295
168296#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
168297template <class t_HEAD, class t_TAIL_01,
168298 class t_TAIL_02>
168299template <class t_TYPE,
168300 class t_ARG_01,
168301 class t_ARG_02,
168302 class t_ARG_03,
168303 class t_ARG_04,
168304 class t_ARG_05,
168305 class t_ARG_06,
168306 class t_ARG_07,
168307 class t_ARG_08,
168308 class t_ARG_09>
168309typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168310 t_TYPE,
168311 variant<t_HEAD, t_TAIL_01,
168312 t_TAIL_02> >::value,
168313 t_TYPE&>::type
168314variant<t_HEAD, t_TAIL_01,
168315 t_TAIL_02,
168316 BSLS_COMPILERFEATURES_FILLT(16)
168317 >::emplace(const t_ARG_01& arg_01,
168318 const t_ARG_02& arg_02,
168319 const t_ARG_03& arg_03,
168320 const t_ARG_04& arg_04,
168321 const t_ARG_05& arg_05,
168322 const t_ARG_06& arg_06,
168323 const t_ARG_07& arg_07,
168324 const t_ARG_08& arg_08,
168325 const t_ARG_09& arg_09)
168326{
168327 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168328
168329 Variant_Base::template baseEmplace<index>(arg_01,
168330 arg_02,
168331 arg_03,
168332 arg_04,
168333 arg_05,
168334 arg_06,
168335 arg_07,
168336 arg_08,
168337 arg_09);
168338
168339 return bsl::get<index>(*this);
168340}
168341#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
168342
168343#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
168344template <class t_HEAD, class t_TAIL_01,
168345 class t_TAIL_02,
168346 class t_TAIL_03>
168347template <class t_TYPE,
168348 class t_ARG_01,
168349 class t_ARG_02,
168350 class t_ARG_03,
168351 class t_ARG_04,
168352 class t_ARG_05,
168353 class t_ARG_06,
168354 class t_ARG_07,
168355 class t_ARG_08,
168356 class t_ARG_09>
168357typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168358 t_TYPE,
168359 variant<t_HEAD, t_TAIL_01,
168360 t_TAIL_02,
168361 t_TAIL_03> >::value,
168362 t_TYPE&>::type
168363variant<t_HEAD, t_TAIL_01,
168364 t_TAIL_02,
168365 t_TAIL_03,
168366 BSLS_COMPILERFEATURES_FILLT(15)
168367 >::emplace(const t_ARG_01& arg_01,
168368 const t_ARG_02& arg_02,
168369 const t_ARG_03& arg_03,
168370 const t_ARG_04& arg_04,
168371 const t_ARG_05& arg_05,
168372 const t_ARG_06& arg_06,
168373 const t_ARG_07& arg_07,
168374 const t_ARG_08& arg_08,
168375 const t_ARG_09& arg_09)
168376{
168377 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168378
168379 Variant_Base::template baseEmplace<index>(arg_01,
168380 arg_02,
168381 arg_03,
168382 arg_04,
168383 arg_05,
168384 arg_06,
168385 arg_07,
168386 arg_08,
168387 arg_09);
168388
168389 return bsl::get<index>(*this);
168390}
168391#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
168392
168393#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
168394template <class t_HEAD, class t_TAIL_01,
168395 class t_TAIL_02,
168396 class t_TAIL_03,
168397 class t_TAIL_04>
168398template <class t_TYPE,
168399 class t_ARG_01,
168400 class t_ARG_02,
168401 class t_ARG_03,
168402 class t_ARG_04,
168403 class t_ARG_05,
168404 class t_ARG_06,
168405 class t_ARG_07,
168406 class t_ARG_08,
168407 class t_ARG_09>
168408typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168409 t_TYPE,
168410 variant<t_HEAD, t_TAIL_01,
168411 t_TAIL_02,
168412 t_TAIL_03,
168413 t_TAIL_04> >::value,
168414 t_TYPE&>::type
168415variant<t_HEAD, t_TAIL_01,
168416 t_TAIL_02,
168417 t_TAIL_03,
168418 t_TAIL_04,
168419 BSLS_COMPILERFEATURES_FILLT(14)
168420 >::emplace(const t_ARG_01& arg_01,
168421 const t_ARG_02& arg_02,
168422 const t_ARG_03& arg_03,
168423 const t_ARG_04& arg_04,
168424 const t_ARG_05& arg_05,
168425 const t_ARG_06& arg_06,
168426 const t_ARG_07& arg_07,
168427 const t_ARG_08& arg_08,
168428 const t_ARG_09& arg_09)
168429{
168430 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168431
168432 Variant_Base::template baseEmplace<index>(arg_01,
168433 arg_02,
168434 arg_03,
168435 arg_04,
168436 arg_05,
168437 arg_06,
168438 arg_07,
168439 arg_08,
168440 arg_09);
168441
168442 return bsl::get<index>(*this);
168443}
168444#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
168445
168446#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
168447template <class t_HEAD, class t_TAIL_01,
168448 class t_TAIL_02,
168449 class t_TAIL_03,
168450 class t_TAIL_04,
168451 class t_TAIL_05>
168452template <class t_TYPE,
168453 class t_ARG_01,
168454 class t_ARG_02,
168455 class t_ARG_03,
168456 class t_ARG_04,
168457 class t_ARG_05,
168458 class t_ARG_06,
168459 class t_ARG_07,
168460 class t_ARG_08,
168461 class t_ARG_09>
168462typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168463 t_TYPE,
168464 variant<t_HEAD, t_TAIL_01,
168465 t_TAIL_02,
168466 t_TAIL_03,
168467 t_TAIL_04,
168468 t_TAIL_05> >::value,
168469 t_TYPE&>::type
168470variant<t_HEAD, t_TAIL_01,
168471 t_TAIL_02,
168472 t_TAIL_03,
168473 t_TAIL_04,
168474 t_TAIL_05,
168475 BSLS_COMPILERFEATURES_FILLT(13)
168476 >::emplace(const t_ARG_01& arg_01,
168477 const t_ARG_02& arg_02,
168478 const t_ARG_03& arg_03,
168479 const t_ARG_04& arg_04,
168480 const t_ARG_05& arg_05,
168481 const t_ARG_06& arg_06,
168482 const t_ARG_07& arg_07,
168483 const t_ARG_08& arg_08,
168484 const t_ARG_09& arg_09)
168485{
168486 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168487
168488 Variant_Base::template baseEmplace<index>(arg_01,
168489 arg_02,
168490 arg_03,
168491 arg_04,
168492 arg_05,
168493 arg_06,
168494 arg_07,
168495 arg_08,
168496 arg_09);
168497
168498 return bsl::get<index>(*this);
168499}
168500#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
168501
168502#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
168503template <class t_HEAD, class t_TAIL_01,
168504 class t_TAIL_02,
168505 class t_TAIL_03,
168506 class t_TAIL_04,
168507 class t_TAIL_05,
168508 class t_TAIL_06>
168509template <class t_TYPE,
168510 class t_ARG_01,
168511 class t_ARG_02,
168512 class t_ARG_03,
168513 class t_ARG_04,
168514 class t_ARG_05,
168515 class t_ARG_06,
168516 class t_ARG_07,
168517 class t_ARG_08,
168518 class t_ARG_09>
168519typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168520 t_TYPE,
168521 variant<t_HEAD, t_TAIL_01,
168522 t_TAIL_02,
168523 t_TAIL_03,
168524 t_TAIL_04,
168525 t_TAIL_05,
168526 t_TAIL_06> >::value,
168527 t_TYPE&>::type
168528variant<t_HEAD, t_TAIL_01,
168529 t_TAIL_02,
168530 t_TAIL_03,
168531 t_TAIL_04,
168532 t_TAIL_05,
168533 t_TAIL_06,
168534 BSLS_COMPILERFEATURES_FILLT(12)
168535 >::emplace(const t_ARG_01& arg_01,
168536 const t_ARG_02& arg_02,
168537 const t_ARG_03& arg_03,
168538 const t_ARG_04& arg_04,
168539 const t_ARG_05& arg_05,
168540 const t_ARG_06& arg_06,
168541 const t_ARG_07& arg_07,
168542 const t_ARG_08& arg_08,
168543 const t_ARG_09& arg_09)
168544{
168545 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168546
168547 Variant_Base::template baseEmplace<index>(arg_01,
168548 arg_02,
168549 arg_03,
168550 arg_04,
168551 arg_05,
168552 arg_06,
168553 arg_07,
168554 arg_08,
168555 arg_09);
168556
168557 return bsl::get<index>(*this);
168558}
168559#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
168560
168561#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
168562template <class t_HEAD, class t_TAIL_01,
168563 class t_TAIL_02,
168564 class t_TAIL_03,
168565 class t_TAIL_04,
168566 class t_TAIL_05,
168567 class t_TAIL_06,
168568 class t_TAIL_07>
168569template <class t_TYPE,
168570 class t_ARG_01,
168571 class t_ARG_02,
168572 class t_ARG_03,
168573 class t_ARG_04,
168574 class t_ARG_05,
168575 class t_ARG_06,
168576 class t_ARG_07,
168577 class t_ARG_08,
168578 class t_ARG_09>
168579typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168580 t_TYPE,
168581 variant<t_HEAD, t_TAIL_01,
168582 t_TAIL_02,
168583 t_TAIL_03,
168584 t_TAIL_04,
168585 t_TAIL_05,
168586 t_TAIL_06,
168587 t_TAIL_07> >::value,
168588 t_TYPE&>::type
168589variant<t_HEAD, t_TAIL_01,
168590 t_TAIL_02,
168591 t_TAIL_03,
168592 t_TAIL_04,
168593 t_TAIL_05,
168594 t_TAIL_06,
168595 t_TAIL_07,
168596 BSLS_COMPILERFEATURES_FILLT(11)
168597 >::emplace(const t_ARG_01& arg_01,
168598 const t_ARG_02& arg_02,
168599 const t_ARG_03& arg_03,
168600 const t_ARG_04& arg_04,
168601 const t_ARG_05& arg_05,
168602 const t_ARG_06& arg_06,
168603 const t_ARG_07& arg_07,
168604 const t_ARG_08& arg_08,
168605 const t_ARG_09& arg_09)
168606{
168607 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168608
168609 Variant_Base::template baseEmplace<index>(arg_01,
168610 arg_02,
168611 arg_03,
168612 arg_04,
168613 arg_05,
168614 arg_06,
168615 arg_07,
168616 arg_08,
168617 arg_09);
168618
168619 return bsl::get<index>(*this);
168620}
168621#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
168622
168623#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
168624template <class t_HEAD, class t_TAIL_01,
168625 class t_TAIL_02,
168626 class t_TAIL_03,
168627 class t_TAIL_04,
168628 class t_TAIL_05,
168629 class t_TAIL_06,
168630 class t_TAIL_07,
168631 class t_TAIL_08>
168632template <class t_TYPE,
168633 class t_ARG_01,
168634 class t_ARG_02,
168635 class t_ARG_03,
168636 class t_ARG_04,
168637 class t_ARG_05,
168638 class t_ARG_06,
168639 class t_ARG_07,
168640 class t_ARG_08,
168641 class t_ARG_09>
168642typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168643 t_TYPE,
168644 variant<t_HEAD, t_TAIL_01,
168645 t_TAIL_02,
168646 t_TAIL_03,
168647 t_TAIL_04,
168648 t_TAIL_05,
168649 t_TAIL_06,
168650 t_TAIL_07,
168651 t_TAIL_08> >::value,
168652 t_TYPE&>::type
168653variant<t_HEAD, t_TAIL_01,
168654 t_TAIL_02,
168655 t_TAIL_03,
168656 t_TAIL_04,
168657 t_TAIL_05,
168658 t_TAIL_06,
168659 t_TAIL_07,
168660 t_TAIL_08,
168661 BSLS_COMPILERFEATURES_FILLT(10)
168662 >::emplace(const t_ARG_01& arg_01,
168663 const t_ARG_02& arg_02,
168664 const t_ARG_03& arg_03,
168665 const t_ARG_04& arg_04,
168666 const t_ARG_05& arg_05,
168667 const t_ARG_06& arg_06,
168668 const t_ARG_07& arg_07,
168669 const t_ARG_08& arg_08,
168670 const t_ARG_09& arg_09)
168671{
168672 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168673
168674 Variant_Base::template baseEmplace<index>(arg_01,
168675 arg_02,
168676 arg_03,
168677 arg_04,
168678 arg_05,
168679 arg_06,
168680 arg_07,
168681 arg_08,
168682 arg_09);
168683
168684 return bsl::get<index>(*this);
168685}
168686#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
168687
168688#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
168689template <class t_HEAD, class t_TAIL_01,
168690 class t_TAIL_02,
168691 class t_TAIL_03,
168692 class t_TAIL_04,
168693 class t_TAIL_05,
168694 class t_TAIL_06,
168695 class t_TAIL_07,
168696 class t_TAIL_08,
168697 class t_TAIL_09>
168698template <class t_TYPE,
168699 class t_ARG_01,
168700 class t_ARG_02,
168701 class t_ARG_03,
168702 class t_ARG_04,
168703 class t_ARG_05,
168704 class t_ARG_06,
168705 class t_ARG_07,
168706 class t_ARG_08,
168707 class t_ARG_09>
168708typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168709 t_TYPE,
168710 variant<t_HEAD, t_TAIL_01,
168711 t_TAIL_02,
168712 t_TAIL_03,
168713 t_TAIL_04,
168714 t_TAIL_05,
168715 t_TAIL_06,
168716 t_TAIL_07,
168717 t_TAIL_08,
168718 t_TAIL_09> >::value,
168719 t_TYPE&>::type
168720variant<t_HEAD, t_TAIL_01,
168721 t_TAIL_02,
168722 t_TAIL_03,
168723 t_TAIL_04,
168724 t_TAIL_05,
168725 t_TAIL_06,
168726 t_TAIL_07,
168727 t_TAIL_08,
168728 t_TAIL_09,
168729 BSLS_COMPILERFEATURES_FILLT( 9)
168730 >::emplace(const t_ARG_01& arg_01,
168731 const t_ARG_02& arg_02,
168732 const t_ARG_03& arg_03,
168733 const t_ARG_04& arg_04,
168734 const t_ARG_05& arg_05,
168735 const t_ARG_06& arg_06,
168736 const t_ARG_07& arg_07,
168737 const t_ARG_08& arg_08,
168738 const t_ARG_09& arg_09)
168739{
168740 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168741
168742 Variant_Base::template baseEmplace<index>(arg_01,
168743 arg_02,
168744 arg_03,
168745 arg_04,
168746 arg_05,
168747 arg_06,
168748 arg_07,
168749 arg_08,
168750 arg_09);
168751
168752 return bsl::get<index>(*this);
168753}
168754#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
168755
168756#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
168757template <class t_HEAD, class t_TAIL_01,
168758 class t_TAIL_02,
168759 class t_TAIL_03,
168760 class t_TAIL_04,
168761 class t_TAIL_05,
168762 class t_TAIL_06,
168763 class t_TAIL_07,
168764 class t_TAIL_08,
168765 class t_TAIL_09,
168766 class t_TAIL_10>
168767template <class t_TYPE,
168768 class t_ARG_01,
168769 class t_ARG_02,
168770 class t_ARG_03,
168771 class t_ARG_04,
168772 class t_ARG_05,
168773 class t_ARG_06,
168774 class t_ARG_07,
168775 class t_ARG_08,
168776 class t_ARG_09>
168777typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168778 t_TYPE,
168779 variant<t_HEAD, t_TAIL_01,
168780 t_TAIL_02,
168781 t_TAIL_03,
168782 t_TAIL_04,
168783 t_TAIL_05,
168784 t_TAIL_06,
168785 t_TAIL_07,
168786 t_TAIL_08,
168787 t_TAIL_09,
168788 t_TAIL_10> >::value,
168789 t_TYPE&>::type
168790variant<t_HEAD, t_TAIL_01,
168791 t_TAIL_02,
168792 t_TAIL_03,
168793 t_TAIL_04,
168794 t_TAIL_05,
168795 t_TAIL_06,
168796 t_TAIL_07,
168797 t_TAIL_08,
168798 t_TAIL_09,
168799 t_TAIL_10,
168800 BSLS_COMPILERFEATURES_FILLT( 8)
168801 >::emplace(const t_ARG_01& arg_01,
168802 const t_ARG_02& arg_02,
168803 const t_ARG_03& arg_03,
168804 const t_ARG_04& arg_04,
168805 const t_ARG_05& arg_05,
168806 const t_ARG_06& arg_06,
168807 const t_ARG_07& arg_07,
168808 const t_ARG_08& arg_08,
168809 const t_ARG_09& arg_09)
168810{
168811 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168812
168813 Variant_Base::template baseEmplace<index>(arg_01,
168814 arg_02,
168815 arg_03,
168816 arg_04,
168817 arg_05,
168818 arg_06,
168819 arg_07,
168820 arg_08,
168821 arg_09);
168822
168823 return bsl::get<index>(*this);
168824}
168825#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
168826
168827#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
168828template <class t_HEAD, class t_TAIL_01,
168829 class t_TAIL_02,
168830 class t_TAIL_03,
168831 class t_TAIL_04,
168832 class t_TAIL_05,
168833 class t_TAIL_06,
168834 class t_TAIL_07,
168835 class t_TAIL_08,
168836 class t_TAIL_09,
168837 class t_TAIL_10,
168838 class t_TAIL_11>
168839template <class t_TYPE,
168840 class t_ARG_01,
168841 class t_ARG_02,
168842 class t_ARG_03,
168843 class t_ARG_04,
168844 class t_ARG_05,
168845 class t_ARG_06,
168846 class t_ARG_07,
168847 class t_ARG_08,
168848 class t_ARG_09>
168849typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168850 t_TYPE,
168851 variant<t_HEAD, t_TAIL_01,
168852 t_TAIL_02,
168853 t_TAIL_03,
168854 t_TAIL_04,
168855 t_TAIL_05,
168856 t_TAIL_06,
168857 t_TAIL_07,
168858 t_TAIL_08,
168859 t_TAIL_09,
168860 t_TAIL_10,
168861 t_TAIL_11> >::value,
168862 t_TYPE&>::type
168863variant<t_HEAD, t_TAIL_01,
168864 t_TAIL_02,
168865 t_TAIL_03,
168866 t_TAIL_04,
168867 t_TAIL_05,
168868 t_TAIL_06,
168869 t_TAIL_07,
168870 t_TAIL_08,
168871 t_TAIL_09,
168872 t_TAIL_10,
168873 t_TAIL_11,
168874 BSLS_COMPILERFEATURES_FILLT( 7)
168875 >::emplace(const t_ARG_01& arg_01,
168876 const t_ARG_02& arg_02,
168877 const t_ARG_03& arg_03,
168878 const t_ARG_04& arg_04,
168879 const t_ARG_05& arg_05,
168880 const t_ARG_06& arg_06,
168881 const t_ARG_07& arg_07,
168882 const t_ARG_08& arg_08,
168883 const t_ARG_09& arg_09)
168884{
168885 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168886
168887 Variant_Base::template baseEmplace<index>(arg_01,
168888 arg_02,
168889 arg_03,
168890 arg_04,
168891 arg_05,
168892 arg_06,
168893 arg_07,
168894 arg_08,
168895 arg_09);
168896
168897 return bsl::get<index>(*this);
168898}
168899#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
168900
168901#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
168902template <class t_HEAD, class t_TAIL_01,
168903 class t_TAIL_02,
168904 class t_TAIL_03,
168905 class t_TAIL_04,
168906 class t_TAIL_05,
168907 class t_TAIL_06,
168908 class t_TAIL_07,
168909 class t_TAIL_08,
168910 class t_TAIL_09,
168911 class t_TAIL_10,
168912 class t_TAIL_11,
168913 class t_TAIL_12>
168914template <class t_TYPE,
168915 class t_ARG_01,
168916 class t_ARG_02,
168917 class t_ARG_03,
168918 class t_ARG_04,
168919 class t_ARG_05,
168920 class t_ARG_06,
168921 class t_ARG_07,
168922 class t_ARG_08,
168923 class t_ARG_09>
168924typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
168925 t_TYPE,
168926 variant<t_HEAD, t_TAIL_01,
168927 t_TAIL_02,
168928 t_TAIL_03,
168929 t_TAIL_04,
168930 t_TAIL_05,
168931 t_TAIL_06,
168932 t_TAIL_07,
168933 t_TAIL_08,
168934 t_TAIL_09,
168935 t_TAIL_10,
168936 t_TAIL_11,
168937 t_TAIL_12> >::value,
168938 t_TYPE&>::type
168939variant<t_HEAD, t_TAIL_01,
168940 t_TAIL_02,
168941 t_TAIL_03,
168942 t_TAIL_04,
168943 t_TAIL_05,
168944 t_TAIL_06,
168945 t_TAIL_07,
168946 t_TAIL_08,
168947 t_TAIL_09,
168948 t_TAIL_10,
168949 t_TAIL_11,
168950 t_TAIL_12,
168951 BSLS_COMPILERFEATURES_FILLT( 6)
168952 >::emplace(const t_ARG_01& arg_01,
168953 const t_ARG_02& arg_02,
168954 const t_ARG_03& arg_03,
168955 const t_ARG_04& arg_04,
168956 const t_ARG_05& arg_05,
168957 const t_ARG_06& arg_06,
168958 const t_ARG_07& arg_07,
168959 const t_ARG_08& arg_08,
168960 const t_ARG_09& arg_09)
168961{
168962 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
168963
168964 Variant_Base::template baseEmplace<index>(arg_01,
168965 arg_02,
168966 arg_03,
168967 arg_04,
168968 arg_05,
168969 arg_06,
168970 arg_07,
168971 arg_08,
168972 arg_09);
168973
168974 return bsl::get<index>(*this);
168975}
168976#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
168977
168978#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
168979template <class t_HEAD, class t_TAIL_01,
168980 class t_TAIL_02,
168981 class t_TAIL_03,
168982 class t_TAIL_04,
168983 class t_TAIL_05,
168984 class t_TAIL_06,
168985 class t_TAIL_07,
168986 class t_TAIL_08,
168987 class t_TAIL_09,
168988 class t_TAIL_10,
168989 class t_TAIL_11,
168990 class t_TAIL_12,
168991 class t_TAIL_13>
168992template <class t_TYPE,
168993 class t_ARG_01,
168994 class t_ARG_02,
168995 class t_ARG_03,
168996 class t_ARG_04,
168997 class t_ARG_05,
168998 class t_ARG_06,
168999 class t_ARG_07,
169000 class t_ARG_08,
169001 class t_ARG_09>
169002typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169003 t_TYPE,
169004 variant<t_HEAD, t_TAIL_01,
169005 t_TAIL_02,
169006 t_TAIL_03,
169007 t_TAIL_04,
169008 t_TAIL_05,
169009 t_TAIL_06,
169010 t_TAIL_07,
169011 t_TAIL_08,
169012 t_TAIL_09,
169013 t_TAIL_10,
169014 t_TAIL_11,
169015 t_TAIL_12,
169016 t_TAIL_13> >::value,
169017 t_TYPE&>::type
169018variant<t_HEAD, t_TAIL_01,
169019 t_TAIL_02,
169020 t_TAIL_03,
169021 t_TAIL_04,
169022 t_TAIL_05,
169023 t_TAIL_06,
169024 t_TAIL_07,
169025 t_TAIL_08,
169026 t_TAIL_09,
169027 t_TAIL_10,
169028 t_TAIL_11,
169029 t_TAIL_12,
169030 t_TAIL_13,
169031 BSLS_COMPILERFEATURES_FILLT( 5)
169032 >::emplace(const t_ARG_01& arg_01,
169033 const t_ARG_02& arg_02,
169034 const t_ARG_03& arg_03,
169035 const t_ARG_04& arg_04,
169036 const t_ARG_05& arg_05,
169037 const t_ARG_06& arg_06,
169038 const t_ARG_07& arg_07,
169039 const t_ARG_08& arg_08,
169040 const t_ARG_09& arg_09)
169041{
169042 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169043
169044 Variant_Base::template baseEmplace<index>(arg_01,
169045 arg_02,
169046 arg_03,
169047 arg_04,
169048 arg_05,
169049 arg_06,
169050 arg_07,
169051 arg_08,
169052 arg_09);
169053
169054 return bsl::get<index>(*this);
169055}
169056#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
169057
169058#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
169059template <class t_HEAD, class t_TAIL_01,
169060 class t_TAIL_02,
169061 class t_TAIL_03,
169062 class t_TAIL_04,
169063 class t_TAIL_05,
169064 class t_TAIL_06,
169065 class t_TAIL_07,
169066 class t_TAIL_08,
169067 class t_TAIL_09,
169068 class t_TAIL_10,
169069 class t_TAIL_11,
169070 class t_TAIL_12,
169071 class t_TAIL_13,
169072 class t_TAIL_14>
169073template <class t_TYPE,
169074 class t_ARG_01,
169075 class t_ARG_02,
169076 class t_ARG_03,
169077 class t_ARG_04,
169078 class t_ARG_05,
169079 class t_ARG_06,
169080 class t_ARG_07,
169081 class t_ARG_08,
169082 class t_ARG_09>
169083typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169084 t_TYPE,
169085 variant<t_HEAD, t_TAIL_01,
169086 t_TAIL_02,
169087 t_TAIL_03,
169088 t_TAIL_04,
169089 t_TAIL_05,
169090 t_TAIL_06,
169091 t_TAIL_07,
169092 t_TAIL_08,
169093 t_TAIL_09,
169094 t_TAIL_10,
169095 t_TAIL_11,
169096 t_TAIL_12,
169097 t_TAIL_13,
169098 t_TAIL_14> >::value,
169099 t_TYPE&>::type
169100variant<t_HEAD, t_TAIL_01,
169101 t_TAIL_02,
169102 t_TAIL_03,
169103 t_TAIL_04,
169104 t_TAIL_05,
169105 t_TAIL_06,
169106 t_TAIL_07,
169107 t_TAIL_08,
169108 t_TAIL_09,
169109 t_TAIL_10,
169110 t_TAIL_11,
169111 t_TAIL_12,
169112 t_TAIL_13,
169113 t_TAIL_14,
169114 BSLS_COMPILERFEATURES_FILLT( 4)
169115 >::emplace(const t_ARG_01& arg_01,
169116 const t_ARG_02& arg_02,
169117 const t_ARG_03& arg_03,
169118 const t_ARG_04& arg_04,
169119 const t_ARG_05& arg_05,
169120 const t_ARG_06& arg_06,
169121 const t_ARG_07& arg_07,
169122 const t_ARG_08& arg_08,
169123 const t_ARG_09& arg_09)
169124{
169125 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169126
169127 Variant_Base::template baseEmplace<index>(arg_01,
169128 arg_02,
169129 arg_03,
169130 arg_04,
169131 arg_05,
169132 arg_06,
169133 arg_07,
169134 arg_08,
169135 arg_09);
169136
169137 return bsl::get<index>(*this);
169138}
169139#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
169140
169141#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
169142template <class t_HEAD, class t_TAIL_01,
169143 class t_TAIL_02,
169144 class t_TAIL_03,
169145 class t_TAIL_04,
169146 class t_TAIL_05,
169147 class t_TAIL_06,
169148 class t_TAIL_07,
169149 class t_TAIL_08,
169150 class t_TAIL_09,
169151 class t_TAIL_10,
169152 class t_TAIL_11,
169153 class t_TAIL_12,
169154 class t_TAIL_13,
169155 class t_TAIL_14,
169156 class t_TAIL_15>
169157template <class t_TYPE,
169158 class t_ARG_01,
169159 class t_ARG_02,
169160 class t_ARG_03,
169161 class t_ARG_04,
169162 class t_ARG_05,
169163 class t_ARG_06,
169164 class t_ARG_07,
169165 class t_ARG_08,
169166 class t_ARG_09>
169167typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169168 t_TYPE,
169169 variant<t_HEAD, t_TAIL_01,
169170 t_TAIL_02,
169171 t_TAIL_03,
169172 t_TAIL_04,
169173 t_TAIL_05,
169174 t_TAIL_06,
169175 t_TAIL_07,
169176 t_TAIL_08,
169177 t_TAIL_09,
169178 t_TAIL_10,
169179 t_TAIL_11,
169180 t_TAIL_12,
169181 t_TAIL_13,
169182 t_TAIL_14,
169183 t_TAIL_15> >::value,
169184 t_TYPE&>::type
169185variant<t_HEAD, t_TAIL_01,
169186 t_TAIL_02,
169187 t_TAIL_03,
169188 t_TAIL_04,
169189 t_TAIL_05,
169190 t_TAIL_06,
169191 t_TAIL_07,
169192 t_TAIL_08,
169193 t_TAIL_09,
169194 t_TAIL_10,
169195 t_TAIL_11,
169196 t_TAIL_12,
169197 t_TAIL_13,
169198 t_TAIL_14,
169199 t_TAIL_15,
169200 BSLS_COMPILERFEATURES_FILLT( 3)
169201 >::emplace(const t_ARG_01& arg_01,
169202 const t_ARG_02& arg_02,
169203 const t_ARG_03& arg_03,
169204 const t_ARG_04& arg_04,
169205 const t_ARG_05& arg_05,
169206 const t_ARG_06& arg_06,
169207 const t_ARG_07& arg_07,
169208 const t_ARG_08& arg_08,
169209 const t_ARG_09& arg_09)
169210{
169211 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169212
169213 Variant_Base::template baseEmplace<index>(arg_01,
169214 arg_02,
169215 arg_03,
169216 arg_04,
169217 arg_05,
169218 arg_06,
169219 arg_07,
169220 arg_08,
169221 arg_09);
169222
169223 return bsl::get<index>(*this);
169224}
169225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
169226
169227#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
169228template <class t_HEAD, class t_TAIL_01,
169229 class t_TAIL_02,
169230 class t_TAIL_03,
169231 class t_TAIL_04,
169232 class t_TAIL_05,
169233 class t_TAIL_06,
169234 class t_TAIL_07,
169235 class t_TAIL_08,
169236 class t_TAIL_09,
169237 class t_TAIL_10,
169238 class t_TAIL_11,
169239 class t_TAIL_12,
169240 class t_TAIL_13,
169241 class t_TAIL_14,
169242 class t_TAIL_15,
169243 class t_TAIL_16>
169244template <class t_TYPE,
169245 class t_ARG_01,
169246 class t_ARG_02,
169247 class t_ARG_03,
169248 class t_ARG_04,
169249 class t_ARG_05,
169250 class t_ARG_06,
169251 class t_ARG_07,
169252 class t_ARG_08,
169253 class t_ARG_09>
169254typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169255 t_TYPE,
169256 variant<t_HEAD, t_TAIL_01,
169257 t_TAIL_02,
169258 t_TAIL_03,
169259 t_TAIL_04,
169260 t_TAIL_05,
169261 t_TAIL_06,
169262 t_TAIL_07,
169263 t_TAIL_08,
169264 t_TAIL_09,
169265 t_TAIL_10,
169266 t_TAIL_11,
169267 t_TAIL_12,
169268 t_TAIL_13,
169269 t_TAIL_14,
169270 t_TAIL_15,
169271 t_TAIL_16> >::value,
169272 t_TYPE&>::type
169273variant<t_HEAD, t_TAIL_01,
169274 t_TAIL_02,
169275 t_TAIL_03,
169276 t_TAIL_04,
169277 t_TAIL_05,
169278 t_TAIL_06,
169279 t_TAIL_07,
169280 t_TAIL_08,
169281 t_TAIL_09,
169282 t_TAIL_10,
169283 t_TAIL_11,
169284 t_TAIL_12,
169285 t_TAIL_13,
169286 t_TAIL_14,
169287 t_TAIL_15,
169288 t_TAIL_16,
169289 BSLS_COMPILERFEATURES_FILLT( 2)
169290 >::emplace(const t_ARG_01& arg_01,
169291 const t_ARG_02& arg_02,
169292 const t_ARG_03& arg_03,
169293 const t_ARG_04& arg_04,
169294 const t_ARG_05& arg_05,
169295 const t_ARG_06& arg_06,
169296 const t_ARG_07& arg_07,
169297 const t_ARG_08& arg_08,
169298 const t_ARG_09& arg_09)
169299{
169300 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169301
169302 Variant_Base::template baseEmplace<index>(arg_01,
169303 arg_02,
169304 arg_03,
169305 arg_04,
169306 arg_05,
169307 arg_06,
169308 arg_07,
169309 arg_08,
169310 arg_09);
169311
169312 return bsl::get<index>(*this);
169313}
169314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
169315
169316#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
169317template <class t_HEAD, class t_TAIL_01,
169318 class t_TAIL_02,
169319 class t_TAIL_03,
169320 class t_TAIL_04,
169321 class t_TAIL_05,
169322 class t_TAIL_06,
169323 class t_TAIL_07,
169324 class t_TAIL_08,
169325 class t_TAIL_09,
169326 class t_TAIL_10,
169327 class t_TAIL_11,
169328 class t_TAIL_12,
169329 class t_TAIL_13,
169330 class t_TAIL_14,
169331 class t_TAIL_15,
169332 class t_TAIL_16,
169333 class t_TAIL_17>
169334template <class t_TYPE,
169335 class t_ARG_01,
169336 class t_ARG_02,
169337 class t_ARG_03,
169338 class t_ARG_04,
169339 class t_ARG_05,
169340 class t_ARG_06,
169341 class t_ARG_07,
169342 class t_ARG_08,
169343 class t_ARG_09>
169344typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169345 t_TYPE,
169346 variant<t_HEAD, t_TAIL_01,
169347 t_TAIL_02,
169348 t_TAIL_03,
169349 t_TAIL_04,
169350 t_TAIL_05,
169351 t_TAIL_06,
169352 t_TAIL_07,
169353 t_TAIL_08,
169354 t_TAIL_09,
169355 t_TAIL_10,
169356 t_TAIL_11,
169357 t_TAIL_12,
169358 t_TAIL_13,
169359 t_TAIL_14,
169360 t_TAIL_15,
169361 t_TAIL_16,
169362 t_TAIL_17> >::value,
169363 t_TYPE&>::type
169364variant<t_HEAD, t_TAIL_01,
169365 t_TAIL_02,
169366 t_TAIL_03,
169367 t_TAIL_04,
169368 t_TAIL_05,
169369 t_TAIL_06,
169370 t_TAIL_07,
169371 t_TAIL_08,
169372 t_TAIL_09,
169373 t_TAIL_10,
169374 t_TAIL_11,
169375 t_TAIL_12,
169376 t_TAIL_13,
169377 t_TAIL_14,
169378 t_TAIL_15,
169379 t_TAIL_16,
169380 t_TAIL_17,
169381 BSLS_COMPILERFEATURES_FILLT( 1)
169382 >::emplace(const t_ARG_01& arg_01,
169383 const t_ARG_02& arg_02,
169384 const t_ARG_03& arg_03,
169385 const t_ARG_04& arg_04,
169386 const t_ARG_05& arg_05,
169387 const t_ARG_06& arg_06,
169388 const t_ARG_07& arg_07,
169389 const t_ARG_08& arg_08,
169390 const t_ARG_09& arg_09)
169391{
169392 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169393
169394 Variant_Base::template baseEmplace<index>(arg_01,
169395 arg_02,
169396 arg_03,
169397 arg_04,
169398 arg_05,
169399 arg_06,
169400 arg_07,
169401 arg_08,
169402 arg_09);
169403
169404 return bsl::get<index>(*this);
169405}
169406#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
169407
169408#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
169409template <class t_HEAD, class t_TAIL_01,
169410 class t_TAIL_02,
169411 class t_TAIL_03,
169412 class t_TAIL_04,
169413 class t_TAIL_05,
169414 class t_TAIL_06,
169415 class t_TAIL_07,
169416 class t_TAIL_08,
169417 class t_TAIL_09,
169418 class t_TAIL_10,
169419 class t_TAIL_11,
169420 class t_TAIL_12,
169421 class t_TAIL_13,
169422 class t_TAIL_14,
169423 class t_TAIL_15,
169424 class t_TAIL_16,
169425 class t_TAIL_17,
169426 class t_TAIL_18>
169427template <class t_TYPE,
169428 class t_ARG_01,
169429 class t_ARG_02,
169430 class t_ARG_03,
169431 class t_ARG_04,
169432 class t_ARG_05,
169433 class t_ARG_06,
169434 class t_ARG_07,
169435 class t_ARG_08,
169436 class t_ARG_09>
169437typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169438 t_TYPE,
169439 variant<t_HEAD, t_TAIL_01,
169440 t_TAIL_02,
169441 t_TAIL_03,
169442 t_TAIL_04,
169443 t_TAIL_05,
169444 t_TAIL_06,
169445 t_TAIL_07,
169446 t_TAIL_08,
169447 t_TAIL_09,
169448 t_TAIL_10,
169449 t_TAIL_11,
169450 t_TAIL_12,
169451 t_TAIL_13,
169452 t_TAIL_14,
169453 t_TAIL_15,
169454 t_TAIL_16,
169455 t_TAIL_17,
169456 t_TAIL_18> >::value,
169457 t_TYPE&>::type
169458variant<t_HEAD, t_TAIL_01,
169459 t_TAIL_02,
169460 t_TAIL_03,
169461 t_TAIL_04,
169462 t_TAIL_05,
169463 t_TAIL_06,
169464 t_TAIL_07,
169465 t_TAIL_08,
169466 t_TAIL_09,
169467 t_TAIL_10,
169468 t_TAIL_11,
169469 t_TAIL_12,
169470 t_TAIL_13,
169471 t_TAIL_14,
169472 t_TAIL_15,
169473 t_TAIL_16,
169474 t_TAIL_17,
169475 t_TAIL_18,
169476 BSLS_COMPILERFEATURES_FILLT( 0)
169477 >::emplace(const t_ARG_01& arg_01,
169478 const t_ARG_02& arg_02,
169479 const t_ARG_03& arg_03,
169480 const t_ARG_04& arg_04,
169481 const t_ARG_05& arg_05,
169482 const t_ARG_06& arg_06,
169483 const t_ARG_07& arg_07,
169484 const t_ARG_08& arg_08,
169485 const t_ARG_09& arg_09)
169486{
169487 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169488
169489 Variant_Base::template baseEmplace<index>(arg_01,
169490 arg_02,
169491 arg_03,
169492 arg_04,
169493 arg_05,
169494 arg_06,
169495 arg_07,
169496 arg_08,
169497 arg_09);
169498
169499 return bsl::get<index>(*this);
169500}
169501#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
169502
169503
169504#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
169505template <class t_HEAD>
169506template <class t_TYPE,
169507 class t_ARG_01,
169508 class t_ARG_02,
169509 class t_ARG_03,
169510 class t_ARG_04,
169511 class t_ARG_05,
169512 class t_ARG_06,
169513 class t_ARG_07,
169514 class t_ARG_08,
169515 class t_ARG_09,
169516 class t_ARG_10>
169517typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169518 t_TYPE,
169519 variant<t_HEAD> >::value,
169520 t_TYPE&>::type
169521variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
169522 >::emplace(const t_ARG_01& arg_01,
169523 const t_ARG_02& arg_02,
169524 const t_ARG_03& arg_03,
169525 const t_ARG_04& arg_04,
169526 const t_ARG_05& arg_05,
169527 const t_ARG_06& arg_06,
169528 const t_ARG_07& arg_07,
169529 const t_ARG_08& arg_08,
169530 const t_ARG_09& arg_09,
169531 const t_ARG_10& arg_10)
169532{
169533 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169534
169535 Variant_Base::template baseEmplace<index>(arg_01,
169536 arg_02,
169537 arg_03,
169538 arg_04,
169539 arg_05,
169540 arg_06,
169541 arg_07,
169542 arg_08,
169543 arg_09,
169544 arg_10);
169545
169546 return bsl::get<index>(*this);
169547}
169548#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
169549
169550#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
169551template <class t_HEAD, class t_TAIL_01>
169552template <class t_TYPE,
169553 class t_ARG_01,
169554 class t_ARG_02,
169555 class t_ARG_03,
169556 class t_ARG_04,
169557 class t_ARG_05,
169558 class t_ARG_06,
169559 class t_ARG_07,
169560 class t_ARG_08,
169561 class t_ARG_09,
169562 class t_ARG_10>
169563typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169564 t_TYPE,
169565 variant<t_HEAD, t_TAIL_01> >::value,
169566 t_TYPE&>::type
169567variant<t_HEAD, t_TAIL_01,
169568 BSLS_COMPILERFEATURES_FILLT(17)
169569 >::emplace(const t_ARG_01& arg_01,
169570 const t_ARG_02& arg_02,
169571 const t_ARG_03& arg_03,
169572 const t_ARG_04& arg_04,
169573 const t_ARG_05& arg_05,
169574 const t_ARG_06& arg_06,
169575 const t_ARG_07& arg_07,
169576 const t_ARG_08& arg_08,
169577 const t_ARG_09& arg_09,
169578 const t_ARG_10& arg_10)
169579{
169580 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169581
169582 Variant_Base::template baseEmplace<index>(arg_01,
169583 arg_02,
169584 arg_03,
169585 arg_04,
169586 arg_05,
169587 arg_06,
169588 arg_07,
169589 arg_08,
169590 arg_09,
169591 arg_10);
169592
169593 return bsl::get<index>(*this);
169594}
169595#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
169596
169597#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
169598template <class t_HEAD, class t_TAIL_01,
169599 class t_TAIL_02>
169600template <class t_TYPE,
169601 class t_ARG_01,
169602 class t_ARG_02,
169603 class t_ARG_03,
169604 class t_ARG_04,
169605 class t_ARG_05,
169606 class t_ARG_06,
169607 class t_ARG_07,
169608 class t_ARG_08,
169609 class t_ARG_09,
169610 class t_ARG_10>
169611typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169612 t_TYPE,
169613 variant<t_HEAD, t_TAIL_01,
169614 t_TAIL_02> >::value,
169615 t_TYPE&>::type
169616variant<t_HEAD, t_TAIL_01,
169617 t_TAIL_02,
169618 BSLS_COMPILERFEATURES_FILLT(16)
169619 >::emplace(const t_ARG_01& arg_01,
169620 const t_ARG_02& arg_02,
169621 const t_ARG_03& arg_03,
169622 const t_ARG_04& arg_04,
169623 const t_ARG_05& arg_05,
169624 const t_ARG_06& arg_06,
169625 const t_ARG_07& arg_07,
169626 const t_ARG_08& arg_08,
169627 const t_ARG_09& arg_09,
169628 const t_ARG_10& arg_10)
169629{
169630 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169631
169632 Variant_Base::template baseEmplace<index>(arg_01,
169633 arg_02,
169634 arg_03,
169635 arg_04,
169636 arg_05,
169637 arg_06,
169638 arg_07,
169639 arg_08,
169640 arg_09,
169641 arg_10);
169642
169643 return bsl::get<index>(*this);
169644}
169645#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
169646
169647#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
169648template <class t_HEAD, class t_TAIL_01,
169649 class t_TAIL_02,
169650 class t_TAIL_03>
169651template <class t_TYPE,
169652 class t_ARG_01,
169653 class t_ARG_02,
169654 class t_ARG_03,
169655 class t_ARG_04,
169656 class t_ARG_05,
169657 class t_ARG_06,
169658 class t_ARG_07,
169659 class t_ARG_08,
169660 class t_ARG_09,
169661 class t_ARG_10>
169662typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169663 t_TYPE,
169664 variant<t_HEAD, t_TAIL_01,
169665 t_TAIL_02,
169666 t_TAIL_03> >::value,
169667 t_TYPE&>::type
169668variant<t_HEAD, t_TAIL_01,
169669 t_TAIL_02,
169670 t_TAIL_03,
169671 BSLS_COMPILERFEATURES_FILLT(15)
169672 >::emplace(const t_ARG_01& arg_01,
169673 const t_ARG_02& arg_02,
169674 const t_ARG_03& arg_03,
169675 const t_ARG_04& arg_04,
169676 const t_ARG_05& arg_05,
169677 const t_ARG_06& arg_06,
169678 const t_ARG_07& arg_07,
169679 const t_ARG_08& arg_08,
169680 const t_ARG_09& arg_09,
169681 const t_ARG_10& arg_10)
169682{
169683 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169684
169685 Variant_Base::template baseEmplace<index>(arg_01,
169686 arg_02,
169687 arg_03,
169688 arg_04,
169689 arg_05,
169690 arg_06,
169691 arg_07,
169692 arg_08,
169693 arg_09,
169694 arg_10);
169695
169696 return bsl::get<index>(*this);
169697}
169698#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
169699
169700#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
169701template <class t_HEAD, class t_TAIL_01,
169702 class t_TAIL_02,
169703 class t_TAIL_03,
169704 class t_TAIL_04>
169705template <class t_TYPE,
169706 class t_ARG_01,
169707 class t_ARG_02,
169708 class t_ARG_03,
169709 class t_ARG_04,
169710 class t_ARG_05,
169711 class t_ARG_06,
169712 class t_ARG_07,
169713 class t_ARG_08,
169714 class t_ARG_09,
169715 class t_ARG_10>
169716typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169717 t_TYPE,
169718 variant<t_HEAD, t_TAIL_01,
169719 t_TAIL_02,
169720 t_TAIL_03,
169721 t_TAIL_04> >::value,
169722 t_TYPE&>::type
169723variant<t_HEAD, t_TAIL_01,
169724 t_TAIL_02,
169725 t_TAIL_03,
169726 t_TAIL_04,
169727 BSLS_COMPILERFEATURES_FILLT(14)
169728 >::emplace(const t_ARG_01& arg_01,
169729 const t_ARG_02& arg_02,
169730 const t_ARG_03& arg_03,
169731 const t_ARG_04& arg_04,
169732 const t_ARG_05& arg_05,
169733 const t_ARG_06& arg_06,
169734 const t_ARG_07& arg_07,
169735 const t_ARG_08& arg_08,
169736 const t_ARG_09& arg_09,
169737 const t_ARG_10& arg_10)
169738{
169739 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169740
169741 Variant_Base::template baseEmplace<index>(arg_01,
169742 arg_02,
169743 arg_03,
169744 arg_04,
169745 arg_05,
169746 arg_06,
169747 arg_07,
169748 arg_08,
169749 arg_09,
169750 arg_10);
169751
169752 return bsl::get<index>(*this);
169753}
169754#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
169755
169756#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
169757template <class t_HEAD, class t_TAIL_01,
169758 class t_TAIL_02,
169759 class t_TAIL_03,
169760 class t_TAIL_04,
169761 class t_TAIL_05>
169762template <class t_TYPE,
169763 class t_ARG_01,
169764 class t_ARG_02,
169765 class t_ARG_03,
169766 class t_ARG_04,
169767 class t_ARG_05,
169768 class t_ARG_06,
169769 class t_ARG_07,
169770 class t_ARG_08,
169771 class t_ARG_09,
169772 class t_ARG_10>
169773typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169774 t_TYPE,
169775 variant<t_HEAD, t_TAIL_01,
169776 t_TAIL_02,
169777 t_TAIL_03,
169778 t_TAIL_04,
169779 t_TAIL_05> >::value,
169780 t_TYPE&>::type
169781variant<t_HEAD, t_TAIL_01,
169782 t_TAIL_02,
169783 t_TAIL_03,
169784 t_TAIL_04,
169785 t_TAIL_05,
169786 BSLS_COMPILERFEATURES_FILLT(13)
169787 >::emplace(const t_ARG_01& arg_01,
169788 const t_ARG_02& arg_02,
169789 const t_ARG_03& arg_03,
169790 const t_ARG_04& arg_04,
169791 const t_ARG_05& arg_05,
169792 const t_ARG_06& arg_06,
169793 const t_ARG_07& arg_07,
169794 const t_ARG_08& arg_08,
169795 const t_ARG_09& arg_09,
169796 const t_ARG_10& arg_10)
169797{
169798 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169799
169800 Variant_Base::template baseEmplace<index>(arg_01,
169801 arg_02,
169802 arg_03,
169803 arg_04,
169804 arg_05,
169805 arg_06,
169806 arg_07,
169807 arg_08,
169808 arg_09,
169809 arg_10);
169810
169811 return bsl::get<index>(*this);
169812}
169813#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
169814
169815#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
169816template <class t_HEAD, class t_TAIL_01,
169817 class t_TAIL_02,
169818 class t_TAIL_03,
169819 class t_TAIL_04,
169820 class t_TAIL_05,
169821 class t_TAIL_06>
169822template <class t_TYPE,
169823 class t_ARG_01,
169824 class t_ARG_02,
169825 class t_ARG_03,
169826 class t_ARG_04,
169827 class t_ARG_05,
169828 class t_ARG_06,
169829 class t_ARG_07,
169830 class t_ARG_08,
169831 class t_ARG_09,
169832 class t_ARG_10>
169833typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169834 t_TYPE,
169835 variant<t_HEAD, t_TAIL_01,
169836 t_TAIL_02,
169837 t_TAIL_03,
169838 t_TAIL_04,
169839 t_TAIL_05,
169840 t_TAIL_06> >::value,
169841 t_TYPE&>::type
169842variant<t_HEAD, t_TAIL_01,
169843 t_TAIL_02,
169844 t_TAIL_03,
169845 t_TAIL_04,
169846 t_TAIL_05,
169847 t_TAIL_06,
169848 BSLS_COMPILERFEATURES_FILLT(12)
169849 >::emplace(const t_ARG_01& arg_01,
169850 const t_ARG_02& arg_02,
169851 const t_ARG_03& arg_03,
169852 const t_ARG_04& arg_04,
169853 const t_ARG_05& arg_05,
169854 const t_ARG_06& arg_06,
169855 const t_ARG_07& arg_07,
169856 const t_ARG_08& arg_08,
169857 const t_ARG_09& arg_09,
169858 const t_ARG_10& arg_10)
169859{
169860 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169861
169862 Variant_Base::template baseEmplace<index>(arg_01,
169863 arg_02,
169864 arg_03,
169865 arg_04,
169866 arg_05,
169867 arg_06,
169868 arg_07,
169869 arg_08,
169870 arg_09,
169871 arg_10);
169872
169873 return bsl::get<index>(*this);
169874}
169875#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
169876
169877#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
169878template <class t_HEAD, class t_TAIL_01,
169879 class t_TAIL_02,
169880 class t_TAIL_03,
169881 class t_TAIL_04,
169882 class t_TAIL_05,
169883 class t_TAIL_06,
169884 class t_TAIL_07>
169885template <class t_TYPE,
169886 class t_ARG_01,
169887 class t_ARG_02,
169888 class t_ARG_03,
169889 class t_ARG_04,
169890 class t_ARG_05,
169891 class t_ARG_06,
169892 class t_ARG_07,
169893 class t_ARG_08,
169894 class t_ARG_09,
169895 class t_ARG_10>
169896typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169897 t_TYPE,
169898 variant<t_HEAD, t_TAIL_01,
169899 t_TAIL_02,
169900 t_TAIL_03,
169901 t_TAIL_04,
169902 t_TAIL_05,
169903 t_TAIL_06,
169904 t_TAIL_07> >::value,
169905 t_TYPE&>::type
169906variant<t_HEAD, t_TAIL_01,
169907 t_TAIL_02,
169908 t_TAIL_03,
169909 t_TAIL_04,
169910 t_TAIL_05,
169911 t_TAIL_06,
169912 t_TAIL_07,
169913 BSLS_COMPILERFEATURES_FILLT(11)
169914 >::emplace(const t_ARG_01& arg_01,
169915 const t_ARG_02& arg_02,
169916 const t_ARG_03& arg_03,
169917 const t_ARG_04& arg_04,
169918 const t_ARG_05& arg_05,
169919 const t_ARG_06& arg_06,
169920 const t_ARG_07& arg_07,
169921 const t_ARG_08& arg_08,
169922 const t_ARG_09& arg_09,
169923 const t_ARG_10& arg_10)
169924{
169925 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169926
169927 Variant_Base::template baseEmplace<index>(arg_01,
169928 arg_02,
169929 arg_03,
169930 arg_04,
169931 arg_05,
169932 arg_06,
169933 arg_07,
169934 arg_08,
169935 arg_09,
169936 arg_10);
169937
169938 return bsl::get<index>(*this);
169939}
169940#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
169941
169942#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
169943template <class t_HEAD, class t_TAIL_01,
169944 class t_TAIL_02,
169945 class t_TAIL_03,
169946 class t_TAIL_04,
169947 class t_TAIL_05,
169948 class t_TAIL_06,
169949 class t_TAIL_07,
169950 class t_TAIL_08>
169951template <class t_TYPE,
169952 class t_ARG_01,
169953 class t_ARG_02,
169954 class t_ARG_03,
169955 class t_ARG_04,
169956 class t_ARG_05,
169957 class t_ARG_06,
169958 class t_ARG_07,
169959 class t_ARG_08,
169960 class t_ARG_09,
169961 class t_ARG_10>
169962typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
169963 t_TYPE,
169964 variant<t_HEAD, t_TAIL_01,
169965 t_TAIL_02,
169966 t_TAIL_03,
169967 t_TAIL_04,
169968 t_TAIL_05,
169969 t_TAIL_06,
169970 t_TAIL_07,
169971 t_TAIL_08> >::value,
169972 t_TYPE&>::type
169973variant<t_HEAD, t_TAIL_01,
169974 t_TAIL_02,
169975 t_TAIL_03,
169976 t_TAIL_04,
169977 t_TAIL_05,
169978 t_TAIL_06,
169979 t_TAIL_07,
169980 t_TAIL_08,
169981 BSLS_COMPILERFEATURES_FILLT(10)
169982 >::emplace(const t_ARG_01& arg_01,
169983 const t_ARG_02& arg_02,
169984 const t_ARG_03& arg_03,
169985 const t_ARG_04& arg_04,
169986 const t_ARG_05& arg_05,
169987 const t_ARG_06& arg_06,
169988 const t_ARG_07& arg_07,
169989 const t_ARG_08& arg_08,
169990 const t_ARG_09& arg_09,
169991 const t_ARG_10& arg_10)
169992{
169993 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
169994
169995 Variant_Base::template baseEmplace<index>(arg_01,
169996 arg_02,
169997 arg_03,
169998 arg_04,
169999 arg_05,
170000 arg_06,
170001 arg_07,
170002 arg_08,
170003 arg_09,
170004 arg_10);
170005
170006 return bsl::get<index>(*this);
170007}
170008#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
170009
170010#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
170011template <class t_HEAD, class t_TAIL_01,
170012 class t_TAIL_02,
170013 class t_TAIL_03,
170014 class t_TAIL_04,
170015 class t_TAIL_05,
170016 class t_TAIL_06,
170017 class t_TAIL_07,
170018 class t_TAIL_08,
170019 class t_TAIL_09>
170020template <class t_TYPE,
170021 class t_ARG_01,
170022 class t_ARG_02,
170023 class t_ARG_03,
170024 class t_ARG_04,
170025 class t_ARG_05,
170026 class t_ARG_06,
170027 class t_ARG_07,
170028 class t_ARG_08,
170029 class t_ARG_09,
170030 class t_ARG_10>
170031typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170032 t_TYPE,
170033 variant<t_HEAD, t_TAIL_01,
170034 t_TAIL_02,
170035 t_TAIL_03,
170036 t_TAIL_04,
170037 t_TAIL_05,
170038 t_TAIL_06,
170039 t_TAIL_07,
170040 t_TAIL_08,
170041 t_TAIL_09> >::value,
170042 t_TYPE&>::type
170043variant<t_HEAD, t_TAIL_01,
170044 t_TAIL_02,
170045 t_TAIL_03,
170046 t_TAIL_04,
170047 t_TAIL_05,
170048 t_TAIL_06,
170049 t_TAIL_07,
170050 t_TAIL_08,
170051 t_TAIL_09,
170052 BSLS_COMPILERFEATURES_FILLT( 9)
170053 >::emplace(const t_ARG_01& arg_01,
170054 const t_ARG_02& arg_02,
170055 const t_ARG_03& arg_03,
170056 const t_ARG_04& arg_04,
170057 const t_ARG_05& arg_05,
170058 const t_ARG_06& arg_06,
170059 const t_ARG_07& arg_07,
170060 const t_ARG_08& arg_08,
170061 const t_ARG_09& arg_09,
170062 const t_ARG_10& arg_10)
170063{
170064 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170065
170066 Variant_Base::template baseEmplace<index>(arg_01,
170067 arg_02,
170068 arg_03,
170069 arg_04,
170070 arg_05,
170071 arg_06,
170072 arg_07,
170073 arg_08,
170074 arg_09,
170075 arg_10);
170076
170077 return bsl::get<index>(*this);
170078}
170079#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
170080
170081#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
170082template <class t_HEAD, class t_TAIL_01,
170083 class t_TAIL_02,
170084 class t_TAIL_03,
170085 class t_TAIL_04,
170086 class t_TAIL_05,
170087 class t_TAIL_06,
170088 class t_TAIL_07,
170089 class t_TAIL_08,
170090 class t_TAIL_09,
170091 class t_TAIL_10>
170092template <class t_TYPE,
170093 class t_ARG_01,
170094 class t_ARG_02,
170095 class t_ARG_03,
170096 class t_ARG_04,
170097 class t_ARG_05,
170098 class t_ARG_06,
170099 class t_ARG_07,
170100 class t_ARG_08,
170101 class t_ARG_09,
170102 class t_ARG_10>
170103typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170104 t_TYPE,
170105 variant<t_HEAD, t_TAIL_01,
170106 t_TAIL_02,
170107 t_TAIL_03,
170108 t_TAIL_04,
170109 t_TAIL_05,
170110 t_TAIL_06,
170111 t_TAIL_07,
170112 t_TAIL_08,
170113 t_TAIL_09,
170114 t_TAIL_10> >::value,
170115 t_TYPE&>::type
170116variant<t_HEAD, t_TAIL_01,
170117 t_TAIL_02,
170118 t_TAIL_03,
170119 t_TAIL_04,
170120 t_TAIL_05,
170121 t_TAIL_06,
170122 t_TAIL_07,
170123 t_TAIL_08,
170124 t_TAIL_09,
170125 t_TAIL_10,
170126 BSLS_COMPILERFEATURES_FILLT( 8)
170127 >::emplace(const t_ARG_01& arg_01,
170128 const t_ARG_02& arg_02,
170129 const t_ARG_03& arg_03,
170130 const t_ARG_04& arg_04,
170131 const t_ARG_05& arg_05,
170132 const t_ARG_06& arg_06,
170133 const t_ARG_07& arg_07,
170134 const t_ARG_08& arg_08,
170135 const t_ARG_09& arg_09,
170136 const t_ARG_10& arg_10)
170137{
170138 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170139
170140 Variant_Base::template baseEmplace<index>(arg_01,
170141 arg_02,
170142 arg_03,
170143 arg_04,
170144 arg_05,
170145 arg_06,
170146 arg_07,
170147 arg_08,
170148 arg_09,
170149 arg_10);
170150
170151 return bsl::get<index>(*this);
170152}
170153#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
170154
170155#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
170156template <class t_HEAD, class t_TAIL_01,
170157 class t_TAIL_02,
170158 class t_TAIL_03,
170159 class t_TAIL_04,
170160 class t_TAIL_05,
170161 class t_TAIL_06,
170162 class t_TAIL_07,
170163 class t_TAIL_08,
170164 class t_TAIL_09,
170165 class t_TAIL_10,
170166 class t_TAIL_11>
170167template <class t_TYPE,
170168 class t_ARG_01,
170169 class t_ARG_02,
170170 class t_ARG_03,
170171 class t_ARG_04,
170172 class t_ARG_05,
170173 class t_ARG_06,
170174 class t_ARG_07,
170175 class t_ARG_08,
170176 class t_ARG_09,
170177 class t_ARG_10>
170178typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170179 t_TYPE,
170180 variant<t_HEAD, t_TAIL_01,
170181 t_TAIL_02,
170182 t_TAIL_03,
170183 t_TAIL_04,
170184 t_TAIL_05,
170185 t_TAIL_06,
170186 t_TAIL_07,
170187 t_TAIL_08,
170188 t_TAIL_09,
170189 t_TAIL_10,
170190 t_TAIL_11> >::value,
170191 t_TYPE&>::type
170192variant<t_HEAD, t_TAIL_01,
170193 t_TAIL_02,
170194 t_TAIL_03,
170195 t_TAIL_04,
170196 t_TAIL_05,
170197 t_TAIL_06,
170198 t_TAIL_07,
170199 t_TAIL_08,
170200 t_TAIL_09,
170201 t_TAIL_10,
170202 t_TAIL_11,
170203 BSLS_COMPILERFEATURES_FILLT( 7)
170204 >::emplace(const t_ARG_01& arg_01,
170205 const t_ARG_02& arg_02,
170206 const t_ARG_03& arg_03,
170207 const t_ARG_04& arg_04,
170208 const t_ARG_05& arg_05,
170209 const t_ARG_06& arg_06,
170210 const t_ARG_07& arg_07,
170211 const t_ARG_08& arg_08,
170212 const t_ARG_09& arg_09,
170213 const t_ARG_10& arg_10)
170214{
170215 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170216
170217 Variant_Base::template baseEmplace<index>(arg_01,
170218 arg_02,
170219 arg_03,
170220 arg_04,
170221 arg_05,
170222 arg_06,
170223 arg_07,
170224 arg_08,
170225 arg_09,
170226 arg_10);
170227
170228 return bsl::get<index>(*this);
170229}
170230#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
170231
170232#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
170233template <class t_HEAD, class t_TAIL_01,
170234 class t_TAIL_02,
170235 class t_TAIL_03,
170236 class t_TAIL_04,
170237 class t_TAIL_05,
170238 class t_TAIL_06,
170239 class t_TAIL_07,
170240 class t_TAIL_08,
170241 class t_TAIL_09,
170242 class t_TAIL_10,
170243 class t_TAIL_11,
170244 class t_TAIL_12>
170245template <class t_TYPE,
170246 class t_ARG_01,
170247 class t_ARG_02,
170248 class t_ARG_03,
170249 class t_ARG_04,
170250 class t_ARG_05,
170251 class t_ARG_06,
170252 class t_ARG_07,
170253 class t_ARG_08,
170254 class t_ARG_09,
170255 class t_ARG_10>
170256typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170257 t_TYPE,
170258 variant<t_HEAD, t_TAIL_01,
170259 t_TAIL_02,
170260 t_TAIL_03,
170261 t_TAIL_04,
170262 t_TAIL_05,
170263 t_TAIL_06,
170264 t_TAIL_07,
170265 t_TAIL_08,
170266 t_TAIL_09,
170267 t_TAIL_10,
170268 t_TAIL_11,
170269 t_TAIL_12> >::value,
170270 t_TYPE&>::type
170271variant<t_HEAD, t_TAIL_01,
170272 t_TAIL_02,
170273 t_TAIL_03,
170274 t_TAIL_04,
170275 t_TAIL_05,
170276 t_TAIL_06,
170277 t_TAIL_07,
170278 t_TAIL_08,
170279 t_TAIL_09,
170280 t_TAIL_10,
170281 t_TAIL_11,
170282 t_TAIL_12,
170283 BSLS_COMPILERFEATURES_FILLT( 6)
170284 >::emplace(const t_ARG_01& arg_01,
170285 const t_ARG_02& arg_02,
170286 const t_ARG_03& arg_03,
170287 const t_ARG_04& arg_04,
170288 const t_ARG_05& arg_05,
170289 const t_ARG_06& arg_06,
170290 const t_ARG_07& arg_07,
170291 const t_ARG_08& arg_08,
170292 const t_ARG_09& arg_09,
170293 const t_ARG_10& arg_10)
170294{
170295 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170296
170297 Variant_Base::template baseEmplace<index>(arg_01,
170298 arg_02,
170299 arg_03,
170300 arg_04,
170301 arg_05,
170302 arg_06,
170303 arg_07,
170304 arg_08,
170305 arg_09,
170306 arg_10);
170307
170308 return bsl::get<index>(*this);
170309}
170310#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
170311
170312#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
170313template <class t_HEAD, class t_TAIL_01,
170314 class t_TAIL_02,
170315 class t_TAIL_03,
170316 class t_TAIL_04,
170317 class t_TAIL_05,
170318 class t_TAIL_06,
170319 class t_TAIL_07,
170320 class t_TAIL_08,
170321 class t_TAIL_09,
170322 class t_TAIL_10,
170323 class t_TAIL_11,
170324 class t_TAIL_12,
170325 class t_TAIL_13>
170326template <class t_TYPE,
170327 class t_ARG_01,
170328 class t_ARG_02,
170329 class t_ARG_03,
170330 class t_ARG_04,
170331 class t_ARG_05,
170332 class t_ARG_06,
170333 class t_ARG_07,
170334 class t_ARG_08,
170335 class t_ARG_09,
170336 class t_ARG_10>
170337typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170338 t_TYPE,
170339 variant<t_HEAD, t_TAIL_01,
170340 t_TAIL_02,
170341 t_TAIL_03,
170342 t_TAIL_04,
170343 t_TAIL_05,
170344 t_TAIL_06,
170345 t_TAIL_07,
170346 t_TAIL_08,
170347 t_TAIL_09,
170348 t_TAIL_10,
170349 t_TAIL_11,
170350 t_TAIL_12,
170351 t_TAIL_13> >::value,
170352 t_TYPE&>::type
170353variant<t_HEAD, t_TAIL_01,
170354 t_TAIL_02,
170355 t_TAIL_03,
170356 t_TAIL_04,
170357 t_TAIL_05,
170358 t_TAIL_06,
170359 t_TAIL_07,
170360 t_TAIL_08,
170361 t_TAIL_09,
170362 t_TAIL_10,
170363 t_TAIL_11,
170364 t_TAIL_12,
170365 t_TAIL_13,
170366 BSLS_COMPILERFEATURES_FILLT( 5)
170367 >::emplace(const t_ARG_01& arg_01,
170368 const t_ARG_02& arg_02,
170369 const t_ARG_03& arg_03,
170370 const t_ARG_04& arg_04,
170371 const t_ARG_05& arg_05,
170372 const t_ARG_06& arg_06,
170373 const t_ARG_07& arg_07,
170374 const t_ARG_08& arg_08,
170375 const t_ARG_09& arg_09,
170376 const t_ARG_10& arg_10)
170377{
170378 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170379
170380 Variant_Base::template baseEmplace<index>(arg_01,
170381 arg_02,
170382 arg_03,
170383 arg_04,
170384 arg_05,
170385 arg_06,
170386 arg_07,
170387 arg_08,
170388 arg_09,
170389 arg_10);
170390
170391 return bsl::get<index>(*this);
170392}
170393#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
170394
170395#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
170396template <class t_HEAD, class t_TAIL_01,
170397 class t_TAIL_02,
170398 class t_TAIL_03,
170399 class t_TAIL_04,
170400 class t_TAIL_05,
170401 class t_TAIL_06,
170402 class t_TAIL_07,
170403 class t_TAIL_08,
170404 class t_TAIL_09,
170405 class t_TAIL_10,
170406 class t_TAIL_11,
170407 class t_TAIL_12,
170408 class t_TAIL_13,
170409 class t_TAIL_14>
170410template <class t_TYPE,
170411 class t_ARG_01,
170412 class t_ARG_02,
170413 class t_ARG_03,
170414 class t_ARG_04,
170415 class t_ARG_05,
170416 class t_ARG_06,
170417 class t_ARG_07,
170418 class t_ARG_08,
170419 class t_ARG_09,
170420 class t_ARG_10>
170421typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170422 t_TYPE,
170423 variant<t_HEAD, t_TAIL_01,
170424 t_TAIL_02,
170425 t_TAIL_03,
170426 t_TAIL_04,
170427 t_TAIL_05,
170428 t_TAIL_06,
170429 t_TAIL_07,
170430 t_TAIL_08,
170431 t_TAIL_09,
170432 t_TAIL_10,
170433 t_TAIL_11,
170434 t_TAIL_12,
170435 t_TAIL_13,
170436 t_TAIL_14> >::value,
170437 t_TYPE&>::type
170438variant<t_HEAD, t_TAIL_01,
170439 t_TAIL_02,
170440 t_TAIL_03,
170441 t_TAIL_04,
170442 t_TAIL_05,
170443 t_TAIL_06,
170444 t_TAIL_07,
170445 t_TAIL_08,
170446 t_TAIL_09,
170447 t_TAIL_10,
170448 t_TAIL_11,
170449 t_TAIL_12,
170450 t_TAIL_13,
170451 t_TAIL_14,
170452 BSLS_COMPILERFEATURES_FILLT( 4)
170453 >::emplace(const t_ARG_01& arg_01,
170454 const t_ARG_02& arg_02,
170455 const t_ARG_03& arg_03,
170456 const t_ARG_04& arg_04,
170457 const t_ARG_05& arg_05,
170458 const t_ARG_06& arg_06,
170459 const t_ARG_07& arg_07,
170460 const t_ARG_08& arg_08,
170461 const t_ARG_09& arg_09,
170462 const t_ARG_10& arg_10)
170463{
170464 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170465
170466 Variant_Base::template baseEmplace<index>(arg_01,
170467 arg_02,
170468 arg_03,
170469 arg_04,
170470 arg_05,
170471 arg_06,
170472 arg_07,
170473 arg_08,
170474 arg_09,
170475 arg_10);
170476
170477 return bsl::get<index>(*this);
170478}
170479#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
170480
170481#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
170482template <class t_HEAD, class t_TAIL_01,
170483 class t_TAIL_02,
170484 class t_TAIL_03,
170485 class t_TAIL_04,
170486 class t_TAIL_05,
170487 class t_TAIL_06,
170488 class t_TAIL_07,
170489 class t_TAIL_08,
170490 class t_TAIL_09,
170491 class t_TAIL_10,
170492 class t_TAIL_11,
170493 class t_TAIL_12,
170494 class t_TAIL_13,
170495 class t_TAIL_14,
170496 class t_TAIL_15>
170497template <class t_TYPE,
170498 class t_ARG_01,
170499 class t_ARG_02,
170500 class t_ARG_03,
170501 class t_ARG_04,
170502 class t_ARG_05,
170503 class t_ARG_06,
170504 class t_ARG_07,
170505 class t_ARG_08,
170506 class t_ARG_09,
170507 class t_ARG_10>
170508typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170509 t_TYPE,
170510 variant<t_HEAD, t_TAIL_01,
170511 t_TAIL_02,
170512 t_TAIL_03,
170513 t_TAIL_04,
170514 t_TAIL_05,
170515 t_TAIL_06,
170516 t_TAIL_07,
170517 t_TAIL_08,
170518 t_TAIL_09,
170519 t_TAIL_10,
170520 t_TAIL_11,
170521 t_TAIL_12,
170522 t_TAIL_13,
170523 t_TAIL_14,
170524 t_TAIL_15> >::value,
170525 t_TYPE&>::type
170526variant<t_HEAD, t_TAIL_01,
170527 t_TAIL_02,
170528 t_TAIL_03,
170529 t_TAIL_04,
170530 t_TAIL_05,
170531 t_TAIL_06,
170532 t_TAIL_07,
170533 t_TAIL_08,
170534 t_TAIL_09,
170535 t_TAIL_10,
170536 t_TAIL_11,
170537 t_TAIL_12,
170538 t_TAIL_13,
170539 t_TAIL_14,
170540 t_TAIL_15,
170541 BSLS_COMPILERFEATURES_FILLT( 3)
170542 >::emplace(const t_ARG_01& arg_01,
170543 const t_ARG_02& arg_02,
170544 const t_ARG_03& arg_03,
170545 const t_ARG_04& arg_04,
170546 const t_ARG_05& arg_05,
170547 const t_ARG_06& arg_06,
170548 const t_ARG_07& arg_07,
170549 const t_ARG_08& arg_08,
170550 const t_ARG_09& arg_09,
170551 const t_ARG_10& arg_10)
170552{
170553 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170554
170555 Variant_Base::template baseEmplace<index>(arg_01,
170556 arg_02,
170557 arg_03,
170558 arg_04,
170559 arg_05,
170560 arg_06,
170561 arg_07,
170562 arg_08,
170563 arg_09,
170564 arg_10);
170565
170566 return bsl::get<index>(*this);
170567}
170568#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
170569
170570#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
170571template <class t_HEAD, class t_TAIL_01,
170572 class t_TAIL_02,
170573 class t_TAIL_03,
170574 class t_TAIL_04,
170575 class t_TAIL_05,
170576 class t_TAIL_06,
170577 class t_TAIL_07,
170578 class t_TAIL_08,
170579 class t_TAIL_09,
170580 class t_TAIL_10,
170581 class t_TAIL_11,
170582 class t_TAIL_12,
170583 class t_TAIL_13,
170584 class t_TAIL_14,
170585 class t_TAIL_15,
170586 class t_TAIL_16>
170587template <class t_TYPE,
170588 class t_ARG_01,
170589 class t_ARG_02,
170590 class t_ARG_03,
170591 class t_ARG_04,
170592 class t_ARG_05,
170593 class t_ARG_06,
170594 class t_ARG_07,
170595 class t_ARG_08,
170596 class t_ARG_09,
170597 class t_ARG_10>
170598typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170599 t_TYPE,
170600 variant<t_HEAD, t_TAIL_01,
170601 t_TAIL_02,
170602 t_TAIL_03,
170603 t_TAIL_04,
170604 t_TAIL_05,
170605 t_TAIL_06,
170606 t_TAIL_07,
170607 t_TAIL_08,
170608 t_TAIL_09,
170609 t_TAIL_10,
170610 t_TAIL_11,
170611 t_TAIL_12,
170612 t_TAIL_13,
170613 t_TAIL_14,
170614 t_TAIL_15,
170615 t_TAIL_16> >::value,
170616 t_TYPE&>::type
170617variant<t_HEAD, t_TAIL_01,
170618 t_TAIL_02,
170619 t_TAIL_03,
170620 t_TAIL_04,
170621 t_TAIL_05,
170622 t_TAIL_06,
170623 t_TAIL_07,
170624 t_TAIL_08,
170625 t_TAIL_09,
170626 t_TAIL_10,
170627 t_TAIL_11,
170628 t_TAIL_12,
170629 t_TAIL_13,
170630 t_TAIL_14,
170631 t_TAIL_15,
170632 t_TAIL_16,
170633 BSLS_COMPILERFEATURES_FILLT( 2)
170634 >::emplace(const t_ARG_01& arg_01,
170635 const t_ARG_02& arg_02,
170636 const t_ARG_03& arg_03,
170637 const t_ARG_04& arg_04,
170638 const t_ARG_05& arg_05,
170639 const t_ARG_06& arg_06,
170640 const t_ARG_07& arg_07,
170641 const t_ARG_08& arg_08,
170642 const t_ARG_09& arg_09,
170643 const t_ARG_10& arg_10)
170644{
170645 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170646
170647 Variant_Base::template baseEmplace<index>(arg_01,
170648 arg_02,
170649 arg_03,
170650 arg_04,
170651 arg_05,
170652 arg_06,
170653 arg_07,
170654 arg_08,
170655 arg_09,
170656 arg_10);
170657
170658 return bsl::get<index>(*this);
170659}
170660#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
170661
170662#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
170663template <class t_HEAD, class t_TAIL_01,
170664 class t_TAIL_02,
170665 class t_TAIL_03,
170666 class t_TAIL_04,
170667 class t_TAIL_05,
170668 class t_TAIL_06,
170669 class t_TAIL_07,
170670 class t_TAIL_08,
170671 class t_TAIL_09,
170672 class t_TAIL_10,
170673 class t_TAIL_11,
170674 class t_TAIL_12,
170675 class t_TAIL_13,
170676 class t_TAIL_14,
170677 class t_TAIL_15,
170678 class t_TAIL_16,
170679 class t_TAIL_17>
170680template <class t_TYPE,
170681 class t_ARG_01,
170682 class t_ARG_02,
170683 class t_ARG_03,
170684 class t_ARG_04,
170685 class t_ARG_05,
170686 class t_ARG_06,
170687 class t_ARG_07,
170688 class t_ARG_08,
170689 class t_ARG_09,
170690 class t_ARG_10>
170691typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170692 t_TYPE,
170693 variant<t_HEAD, t_TAIL_01,
170694 t_TAIL_02,
170695 t_TAIL_03,
170696 t_TAIL_04,
170697 t_TAIL_05,
170698 t_TAIL_06,
170699 t_TAIL_07,
170700 t_TAIL_08,
170701 t_TAIL_09,
170702 t_TAIL_10,
170703 t_TAIL_11,
170704 t_TAIL_12,
170705 t_TAIL_13,
170706 t_TAIL_14,
170707 t_TAIL_15,
170708 t_TAIL_16,
170709 t_TAIL_17> >::value,
170710 t_TYPE&>::type
170711variant<t_HEAD, t_TAIL_01,
170712 t_TAIL_02,
170713 t_TAIL_03,
170714 t_TAIL_04,
170715 t_TAIL_05,
170716 t_TAIL_06,
170717 t_TAIL_07,
170718 t_TAIL_08,
170719 t_TAIL_09,
170720 t_TAIL_10,
170721 t_TAIL_11,
170722 t_TAIL_12,
170723 t_TAIL_13,
170724 t_TAIL_14,
170725 t_TAIL_15,
170726 t_TAIL_16,
170727 t_TAIL_17,
170728 BSLS_COMPILERFEATURES_FILLT( 1)
170729 >::emplace(const t_ARG_01& arg_01,
170730 const t_ARG_02& arg_02,
170731 const t_ARG_03& arg_03,
170732 const t_ARG_04& arg_04,
170733 const t_ARG_05& arg_05,
170734 const t_ARG_06& arg_06,
170735 const t_ARG_07& arg_07,
170736 const t_ARG_08& arg_08,
170737 const t_ARG_09& arg_09,
170738 const t_ARG_10& arg_10)
170739{
170740 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170741
170742 Variant_Base::template baseEmplace<index>(arg_01,
170743 arg_02,
170744 arg_03,
170745 arg_04,
170746 arg_05,
170747 arg_06,
170748 arg_07,
170749 arg_08,
170750 arg_09,
170751 arg_10);
170752
170753 return bsl::get<index>(*this);
170754}
170755#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
170756
170757#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
170758template <class t_HEAD, class t_TAIL_01,
170759 class t_TAIL_02,
170760 class t_TAIL_03,
170761 class t_TAIL_04,
170762 class t_TAIL_05,
170763 class t_TAIL_06,
170764 class t_TAIL_07,
170765 class t_TAIL_08,
170766 class t_TAIL_09,
170767 class t_TAIL_10,
170768 class t_TAIL_11,
170769 class t_TAIL_12,
170770 class t_TAIL_13,
170771 class t_TAIL_14,
170772 class t_TAIL_15,
170773 class t_TAIL_16,
170774 class t_TAIL_17,
170775 class t_TAIL_18>
170776template <class t_TYPE,
170777 class t_ARG_01,
170778 class t_ARG_02,
170779 class t_ARG_03,
170780 class t_ARG_04,
170781 class t_ARG_05,
170782 class t_ARG_06,
170783 class t_ARG_07,
170784 class t_ARG_08,
170785 class t_ARG_09,
170786 class t_ARG_10>
170787typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
170788 t_TYPE,
170789 variant<t_HEAD, t_TAIL_01,
170790 t_TAIL_02,
170791 t_TAIL_03,
170792 t_TAIL_04,
170793 t_TAIL_05,
170794 t_TAIL_06,
170795 t_TAIL_07,
170796 t_TAIL_08,
170797 t_TAIL_09,
170798 t_TAIL_10,
170799 t_TAIL_11,
170800 t_TAIL_12,
170801 t_TAIL_13,
170802 t_TAIL_14,
170803 t_TAIL_15,
170804 t_TAIL_16,
170805 t_TAIL_17,
170806 t_TAIL_18> >::value,
170807 t_TYPE&>::type
170808variant<t_HEAD, t_TAIL_01,
170809 t_TAIL_02,
170810 t_TAIL_03,
170811 t_TAIL_04,
170812 t_TAIL_05,
170813 t_TAIL_06,
170814 t_TAIL_07,
170815 t_TAIL_08,
170816 t_TAIL_09,
170817 t_TAIL_10,
170818 t_TAIL_11,
170819 t_TAIL_12,
170820 t_TAIL_13,
170821 t_TAIL_14,
170822 t_TAIL_15,
170823 t_TAIL_16,
170824 t_TAIL_17,
170825 t_TAIL_18,
170826 BSLS_COMPILERFEATURES_FILLT( 0)
170827 >::emplace(const t_ARG_01& arg_01,
170828 const t_ARG_02& arg_02,
170829 const t_ARG_03& arg_03,
170830 const t_ARG_04& arg_04,
170831 const t_ARG_05& arg_05,
170832 const t_ARG_06& arg_06,
170833 const t_ARG_07& arg_07,
170834 const t_ARG_08& arg_08,
170835 const t_ARG_09& arg_09,
170836 const t_ARG_10& arg_10)
170837{
170838 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
170839
170840 Variant_Base::template baseEmplace<index>(arg_01,
170841 arg_02,
170842 arg_03,
170843 arg_04,
170844 arg_05,
170845 arg_06,
170846 arg_07,
170847 arg_08,
170848 arg_09,
170849 arg_10);
170850
170851 return bsl::get<index>(*this);
170852}
170853#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
170854
170855
170856#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
170857template <class t_HEAD>
170858template <size_t t_INDEX>
170859typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
170860variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::emplace()
170861{
170862 Variant_Base::template baseEmplace<t_INDEX>();
170863
170864 return bsl::get<t_INDEX>(*this);
170865}
170866#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
170867
170868#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
170869template <class t_HEAD, class t_TAIL_01>
170870template <size_t t_INDEX>
170871typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
170872variant<t_HEAD, t_TAIL_01,
170873 BSLS_COMPILERFEATURES_FILLT(17)>::emplace()
170874{
170875 Variant_Base::template baseEmplace<t_INDEX>();
170876
170877 return bsl::get<t_INDEX>(*this);
170878}
170879#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
170880
170881#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
170882template <class t_HEAD, class t_TAIL_01,
170883 class t_TAIL_02>
170884template <size_t t_INDEX>
170885typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
170886 t_TAIL_02> >::type&
170887variant<t_HEAD, t_TAIL_01,
170888 t_TAIL_02,
170889 BSLS_COMPILERFEATURES_FILLT(16)>::emplace()
170890{
170891 Variant_Base::template baseEmplace<t_INDEX>();
170892
170893 return bsl::get<t_INDEX>(*this);
170894}
170895#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
170896
170897#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
170898template <class t_HEAD, class t_TAIL_01,
170899 class t_TAIL_02,
170900 class t_TAIL_03>
170901template <size_t t_INDEX>
170902typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
170903 t_TAIL_02,
170904 t_TAIL_03> >::type&
170905variant<t_HEAD, t_TAIL_01,
170906 t_TAIL_02,
170907 t_TAIL_03,
170908 BSLS_COMPILERFEATURES_FILLT(15)>::emplace()
170909{
170910 Variant_Base::template baseEmplace<t_INDEX>();
170911
170912 return bsl::get<t_INDEX>(*this);
170913}
170914#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
170915
170916#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
170917template <class t_HEAD, class t_TAIL_01,
170918 class t_TAIL_02,
170919 class t_TAIL_03,
170920 class t_TAIL_04>
170921template <size_t t_INDEX>
170922typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
170923 t_TAIL_02,
170924 t_TAIL_03,
170925 t_TAIL_04> >::type&
170926variant<t_HEAD, t_TAIL_01,
170927 t_TAIL_02,
170928 t_TAIL_03,
170929 t_TAIL_04,
170930 BSLS_COMPILERFEATURES_FILLT(14)>::emplace()
170931{
170932 Variant_Base::template baseEmplace<t_INDEX>();
170933
170934 return bsl::get<t_INDEX>(*this);
170935}
170936#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
170937
170938#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
170939template <class t_HEAD, class t_TAIL_01,
170940 class t_TAIL_02,
170941 class t_TAIL_03,
170942 class t_TAIL_04,
170943 class t_TAIL_05>
170944template <size_t t_INDEX>
170945typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
170946 t_TAIL_02,
170947 t_TAIL_03,
170948 t_TAIL_04,
170949 t_TAIL_05> >::type&
170950variant<t_HEAD, t_TAIL_01,
170951 t_TAIL_02,
170952 t_TAIL_03,
170953 t_TAIL_04,
170954 t_TAIL_05,
170955 BSLS_COMPILERFEATURES_FILLT(13)>::emplace()
170956{
170957 Variant_Base::template baseEmplace<t_INDEX>();
170958
170959 return bsl::get<t_INDEX>(*this);
170960}
170961#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
170962
170963#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
170964template <class t_HEAD, class t_TAIL_01,
170965 class t_TAIL_02,
170966 class t_TAIL_03,
170967 class t_TAIL_04,
170968 class t_TAIL_05,
170969 class t_TAIL_06>
170970template <size_t t_INDEX>
170971typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
170972 t_TAIL_02,
170973 t_TAIL_03,
170974 t_TAIL_04,
170975 t_TAIL_05,
170976 t_TAIL_06> >::type&
170977variant<t_HEAD, t_TAIL_01,
170978 t_TAIL_02,
170979 t_TAIL_03,
170980 t_TAIL_04,
170981 t_TAIL_05,
170982 t_TAIL_06,
170983 BSLS_COMPILERFEATURES_FILLT(12)>::emplace()
170984{
170985 Variant_Base::template baseEmplace<t_INDEX>();
170986
170987 return bsl::get<t_INDEX>(*this);
170988}
170989#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
170990
170991#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
170992template <class t_HEAD, class t_TAIL_01,
170993 class t_TAIL_02,
170994 class t_TAIL_03,
170995 class t_TAIL_04,
170996 class t_TAIL_05,
170997 class t_TAIL_06,
170998 class t_TAIL_07>
170999template <size_t t_INDEX>
171000typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171001 t_TAIL_02,
171002 t_TAIL_03,
171003 t_TAIL_04,
171004 t_TAIL_05,
171005 t_TAIL_06,
171006 t_TAIL_07> >::type&
171007variant<t_HEAD, t_TAIL_01,
171008 t_TAIL_02,
171009 t_TAIL_03,
171010 t_TAIL_04,
171011 t_TAIL_05,
171012 t_TAIL_06,
171013 t_TAIL_07,
171014 BSLS_COMPILERFEATURES_FILLT(11)>::emplace()
171015{
171016 Variant_Base::template baseEmplace<t_INDEX>();
171017
171018 return bsl::get<t_INDEX>(*this);
171019}
171020#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
171021
171022#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
171023template <class t_HEAD, class t_TAIL_01,
171024 class t_TAIL_02,
171025 class t_TAIL_03,
171026 class t_TAIL_04,
171027 class t_TAIL_05,
171028 class t_TAIL_06,
171029 class t_TAIL_07,
171030 class t_TAIL_08>
171031template <size_t t_INDEX>
171032typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171033 t_TAIL_02,
171034 t_TAIL_03,
171035 t_TAIL_04,
171036 t_TAIL_05,
171037 t_TAIL_06,
171038 t_TAIL_07,
171039 t_TAIL_08> >::type&
171040variant<t_HEAD, t_TAIL_01,
171041 t_TAIL_02,
171042 t_TAIL_03,
171043 t_TAIL_04,
171044 t_TAIL_05,
171045 t_TAIL_06,
171046 t_TAIL_07,
171047 t_TAIL_08,
171048 BSLS_COMPILERFEATURES_FILLT(10)>::emplace()
171049{
171050 Variant_Base::template baseEmplace<t_INDEX>();
171051
171052 return bsl::get<t_INDEX>(*this);
171053}
171054#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
171055
171056#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
171057template <class t_HEAD, class t_TAIL_01,
171058 class t_TAIL_02,
171059 class t_TAIL_03,
171060 class t_TAIL_04,
171061 class t_TAIL_05,
171062 class t_TAIL_06,
171063 class t_TAIL_07,
171064 class t_TAIL_08,
171065 class t_TAIL_09>
171066template <size_t t_INDEX>
171067typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171068 t_TAIL_02,
171069 t_TAIL_03,
171070 t_TAIL_04,
171071 t_TAIL_05,
171072 t_TAIL_06,
171073 t_TAIL_07,
171074 t_TAIL_08,
171075 t_TAIL_09> >::type&
171076variant<t_HEAD, t_TAIL_01,
171077 t_TAIL_02,
171078 t_TAIL_03,
171079 t_TAIL_04,
171080 t_TAIL_05,
171081 t_TAIL_06,
171082 t_TAIL_07,
171083 t_TAIL_08,
171084 t_TAIL_09,
171085 BSLS_COMPILERFEATURES_FILLT( 9)>::emplace()
171086{
171087 Variant_Base::template baseEmplace<t_INDEX>();
171088
171089 return bsl::get<t_INDEX>(*this);
171090}
171091#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
171092
171093#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
171094template <class t_HEAD, class t_TAIL_01,
171095 class t_TAIL_02,
171096 class t_TAIL_03,
171097 class t_TAIL_04,
171098 class t_TAIL_05,
171099 class t_TAIL_06,
171100 class t_TAIL_07,
171101 class t_TAIL_08,
171102 class t_TAIL_09,
171103 class t_TAIL_10>
171104template <size_t t_INDEX>
171105typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171106 t_TAIL_02,
171107 t_TAIL_03,
171108 t_TAIL_04,
171109 t_TAIL_05,
171110 t_TAIL_06,
171111 t_TAIL_07,
171112 t_TAIL_08,
171113 t_TAIL_09,
171114 t_TAIL_10> >::type&
171115variant<t_HEAD, t_TAIL_01,
171116 t_TAIL_02,
171117 t_TAIL_03,
171118 t_TAIL_04,
171119 t_TAIL_05,
171120 t_TAIL_06,
171121 t_TAIL_07,
171122 t_TAIL_08,
171123 t_TAIL_09,
171124 t_TAIL_10,
171125 BSLS_COMPILERFEATURES_FILLT( 8)>::emplace()
171126{
171127 Variant_Base::template baseEmplace<t_INDEX>();
171128
171129 return bsl::get<t_INDEX>(*this);
171130}
171131#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
171132
171133#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
171134template <class t_HEAD, class t_TAIL_01,
171135 class t_TAIL_02,
171136 class t_TAIL_03,
171137 class t_TAIL_04,
171138 class t_TAIL_05,
171139 class t_TAIL_06,
171140 class t_TAIL_07,
171141 class t_TAIL_08,
171142 class t_TAIL_09,
171143 class t_TAIL_10,
171144 class t_TAIL_11>
171145template <size_t t_INDEX>
171146typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171147 t_TAIL_02,
171148 t_TAIL_03,
171149 t_TAIL_04,
171150 t_TAIL_05,
171151 t_TAIL_06,
171152 t_TAIL_07,
171153 t_TAIL_08,
171154 t_TAIL_09,
171155 t_TAIL_10,
171156 t_TAIL_11> >::type&
171157variant<t_HEAD, t_TAIL_01,
171158 t_TAIL_02,
171159 t_TAIL_03,
171160 t_TAIL_04,
171161 t_TAIL_05,
171162 t_TAIL_06,
171163 t_TAIL_07,
171164 t_TAIL_08,
171165 t_TAIL_09,
171166 t_TAIL_10,
171167 t_TAIL_11,
171168 BSLS_COMPILERFEATURES_FILLT( 7)>::emplace()
171169{
171170 Variant_Base::template baseEmplace<t_INDEX>();
171171
171172 return bsl::get<t_INDEX>(*this);
171173}
171174#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
171175
171176#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
171177template <class t_HEAD, class t_TAIL_01,
171178 class t_TAIL_02,
171179 class t_TAIL_03,
171180 class t_TAIL_04,
171181 class t_TAIL_05,
171182 class t_TAIL_06,
171183 class t_TAIL_07,
171184 class t_TAIL_08,
171185 class t_TAIL_09,
171186 class t_TAIL_10,
171187 class t_TAIL_11,
171188 class t_TAIL_12>
171189template <size_t t_INDEX>
171190typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171191 t_TAIL_02,
171192 t_TAIL_03,
171193 t_TAIL_04,
171194 t_TAIL_05,
171195 t_TAIL_06,
171196 t_TAIL_07,
171197 t_TAIL_08,
171198 t_TAIL_09,
171199 t_TAIL_10,
171200 t_TAIL_11,
171201 t_TAIL_12> >::type&
171202variant<t_HEAD, t_TAIL_01,
171203 t_TAIL_02,
171204 t_TAIL_03,
171205 t_TAIL_04,
171206 t_TAIL_05,
171207 t_TAIL_06,
171208 t_TAIL_07,
171209 t_TAIL_08,
171210 t_TAIL_09,
171211 t_TAIL_10,
171212 t_TAIL_11,
171213 t_TAIL_12,
171214 BSLS_COMPILERFEATURES_FILLT( 6)>::emplace()
171215{
171216 Variant_Base::template baseEmplace<t_INDEX>();
171217
171218 return bsl::get<t_INDEX>(*this);
171219}
171220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
171221
171222#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
171223template <class t_HEAD, class t_TAIL_01,
171224 class t_TAIL_02,
171225 class t_TAIL_03,
171226 class t_TAIL_04,
171227 class t_TAIL_05,
171228 class t_TAIL_06,
171229 class t_TAIL_07,
171230 class t_TAIL_08,
171231 class t_TAIL_09,
171232 class t_TAIL_10,
171233 class t_TAIL_11,
171234 class t_TAIL_12,
171235 class t_TAIL_13>
171236template <size_t t_INDEX>
171237typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171238 t_TAIL_02,
171239 t_TAIL_03,
171240 t_TAIL_04,
171241 t_TAIL_05,
171242 t_TAIL_06,
171243 t_TAIL_07,
171244 t_TAIL_08,
171245 t_TAIL_09,
171246 t_TAIL_10,
171247 t_TAIL_11,
171248 t_TAIL_12,
171249 t_TAIL_13> >::type&
171250variant<t_HEAD, t_TAIL_01,
171251 t_TAIL_02,
171252 t_TAIL_03,
171253 t_TAIL_04,
171254 t_TAIL_05,
171255 t_TAIL_06,
171256 t_TAIL_07,
171257 t_TAIL_08,
171258 t_TAIL_09,
171259 t_TAIL_10,
171260 t_TAIL_11,
171261 t_TAIL_12,
171262 t_TAIL_13,
171263 BSLS_COMPILERFEATURES_FILLT( 5)>::emplace()
171264{
171265 Variant_Base::template baseEmplace<t_INDEX>();
171266
171267 return bsl::get<t_INDEX>(*this);
171268}
171269#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
171270
171271#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
171272template <class t_HEAD, class t_TAIL_01,
171273 class t_TAIL_02,
171274 class t_TAIL_03,
171275 class t_TAIL_04,
171276 class t_TAIL_05,
171277 class t_TAIL_06,
171278 class t_TAIL_07,
171279 class t_TAIL_08,
171280 class t_TAIL_09,
171281 class t_TAIL_10,
171282 class t_TAIL_11,
171283 class t_TAIL_12,
171284 class t_TAIL_13,
171285 class t_TAIL_14>
171286template <size_t t_INDEX>
171287typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171288 t_TAIL_02,
171289 t_TAIL_03,
171290 t_TAIL_04,
171291 t_TAIL_05,
171292 t_TAIL_06,
171293 t_TAIL_07,
171294 t_TAIL_08,
171295 t_TAIL_09,
171296 t_TAIL_10,
171297 t_TAIL_11,
171298 t_TAIL_12,
171299 t_TAIL_13,
171300 t_TAIL_14> >::type&
171301variant<t_HEAD, t_TAIL_01,
171302 t_TAIL_02,
171303 t_TAIL_03,
171304 t_TAIL_04,
171305 t_TAIL_05,
171306 t_TAIL_06,
171307 t_TAIL_07,
171308 t_TAIL_08,
171309 t_TAIL_09,
171310 t_TAIL_10,
171311 t_TAIL_11,
171312 t_TAIL_12,
171313 t_TAIL_13,
171314 t_TAIL_14,
171315 BSLS_COMPILERFEATURES_FILLT( 4)>::emplace()
171316{
171317 Variant_Base::template baseEmplace<t_INDEX>();
171318
171319 return bsl::get<t_INDEX>(*this);
171320}
171321#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
171322
171323#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
171324template <class t_HEAD, class t_TAIL_01,
171325 class t_TAIL_02,
171326 class t_TAIL_03,
171327 class t_TAIL_04,
171328 class t_TAIL_05,
171329 class t_TAIL_06,
171330 class t_TAIL_07,
171331 class t_TAIL_08,
171332 class t_TAIL_09,
171333 class t_TAIL_10,
171334 class t_TAIL_11,
171335 class t_TAIL_12,
171336 class t_TAIL_13,
171337 class t_TAIL_14,
171338 class t_TAIL_15>
171339template <size_t t_INDEX>
171340typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171341 t_TAIL_02,
171342 t_TAIL_03,
171343 t_TAIL_04,
171344 t_TAIL_05,
171345 t_TAIL_06,
171346 t_TAIL_07,
171347 t_TAIL_08,
171348 t_TAIL_09,
171349 t_TAIL_10,
171350 t_TAIL_11,
171351 t_TAIL_12,
171352 t_TAIL_13,
171353 t_TAIL_14,
171354 t_TAIL_15> >::type&
171355variant<t_HEAD, t_TAIL_01,
171356 t_TAIL_02,
171357 t_TAIL_03,
171358 t_TAIL_04,
171359 t_TAIL_05,
171360 t_TAIL_06,
171361 t_TAIL_07,
171362 t_TAIL_08,
171363 t_TAIL_09,
171364 t_TAIL_10,
171365 t_TAIL_11,
171366 t_TAIL_12,
171367 t_TAIL_13,
171368 t_TAIL_14,
171369 t_TAIL_15,
171370 BSLS_COMPILERFEATURES_FILLT( 3)>::emplace()
171371{
171372 Variant_Base::template baseEmplace<t_INDEX>();
171373
171374 return bsl::get<t_INDEX>(*this);
171375}
171376#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
171377
171378#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
171379template <class t_HEAD, class t_TAIL_01,
171380 class t_TAIL_02,
171381 class t_TAIL_03,
171382 class t_TAIL_04,
171383 class t_TAIL_05,
171384 class t_TAIL_06,
171385 class t_TAIL_07,
171386 class t_TAIL_08,
171387 class t_TAIL_09,
171388 class t_TAIL_10,
171389 class t_TAIL_11,
171390 class t_TAIL_12,
171391 class t_TAIL_13,
171392 class t_TAIL_14,
171393 class t_TAIL_15,
171394 class t_TAIL_16>
171395template <size_t t_INDEX>
171396typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171397 t_TAIL_02,
171398 t_TAIL_03,
171399 t_TAIL_04,
171400 t_TAIL_05,
171401 t_TAIL_06,
171402 t_TAIL_07,
171403 t_TAIL_08,
171404 t_TAIL_09,
171405 t_TAIL_10,
171406 t_TAIL_11,
171407 t_TAIL_12,
171408 t_TAIL_13,
171409 t_TAIL_14,
171410 t_TAIL_15,
171411 t_TAIL_16> >::type&
171412variant<t_HEAD, t_TAIL_01,
171413 t_TAIL_02,
171414 t_TAIL_03,
171415 t_TAIL_04,
171416 t_TAIL_05,
171417 t_TAIL_06,
171418 t_TAIL_07,
171419 t_TAIL_08,
171420 t_TAIL_09,
171421 t_TAIL_10,
171422 t_TAIL_11,
171423 t_TAIL_12,
171424 t_TAIL_13,
171425 t_TAIL_14,
171426 t_TAIL_15,
171427 t_TAIL_16,
171428 BSLS_COMPILERFEATURES_FILLT( 2)>::emplace()
171429{
171430 Variant_Base::template baseEmplace<t_INDEX>();
171431
171432 return bsl::get<t_INDEX>(*this);
171433}
171434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
171435
171436#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
171437template <class t_HEAD, class t_TAIL_01,
171438 class t_TAIL_02,
171439 class t_TAIL_03,
171440 class t_TAIL_04,
171441 class t_TAIL_05,
171442 class t_TAIL_06,
171443 class t_TAIL_07,
171444 class t_TAIL_08,
171445 class t_TAIL_09,
171446 class t_TAIL_10,
171447 class t_TAIL_11,
171448 class t_TAIL_12,
171449 class t_TAIL_13,
171450 class t_TAIL_14,
171451 class t_TAIL_15,
171452 class t_TAIL_16,
171453 class t_TAIL_17>
171454template <size_t t_INDEX>
171455typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171456 t_TAIL_02,
171457 t_TAIL_03,
171458 t_TAIL_04,
171459 t_TAIL_05,
171460 t_TAIL_06,
171461 t_TAIL_07,
171462 t_TAIL_08,
171463 t_TAIL_09,
171464 t_TAIL_10,
171465 t_TAIL_11,
171466 t_TAIL_12,
171467 t_TAIL_13,
171468 t_TAIL_14,
171469 t_TAIL_15,
171470 t_TAIL_16,
171471 t_TAIL_17> >::type&
171472variant<t_HEAD, t_TAIL_01,
171473 t_TAIL_02,
171474 t_TAIL_03,
171475 t_TAIL_04,
171476 t_TAIL_05,
171477 t_TAIL_06,
171478 t_TAIL_07,
171479 t_TAIL_08,
171480 t_TAIL_09,
171481 t_TAIL_10,
171482 t_TAIL_11,
171483 t_TAIL_12,
171484 t_TAIL_13,
171485 t_TAIL_14,
171486 t_TAIL_15,
171487 t_TAIL_16,
171488 t_TAIL_17,
171489 BSLS_COMPILERFEATURES_FILLT( 1)>::emplace()
171490{
171491 Variant_Base::template baseEmplace<t_INDEX>();
171492
171493 return bsl::get<t_INDEX>(*this);
171494}
171495#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
171496
171497#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
171498template <class t_HEAD, class t_TAIL_01,
171499 class t_TAIL_02,
171500 class t_TAIL_03,
171501 class t_TAIL_04,
171502 class t_TAIL_05,
171503 class t_TAIL_06,
171504 class t_TAIL_07,
171505 class t_TAIL_08,
171506 class t_TAIL_09,
171507 class t_TAIL_10,
171508 class t_TAIL_11,
171509 class t_TAIL_12,
171510 class t_TAIL_13,
171511 class t_TAIL_14,
171512 class t_TAIL_15,
171513 class t_TAIL_16,
171514 class t_TAIL_17,
171515 class t_TAIL_18>
171516template <size_t t_INDEX>
171517typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171518 t_TAIL_02,
171519 t_TAIL_03,
171520 t_TAIL_04,
171521 t_TAIL_05,
171522 t_TAIL_06,
171523 t_TAIL_07,
171524 t_TAIL_08,
171525 t_TAIL_09,
171526 t_TAIL_10,
171527 t_TAIL_11,
171528 t_TAIL_12,
171529 t_TAIL_13,
171530 t_TAIL_14,
171531 t_TAIL_15,
171532 t_TAIL_16,
171533 t_TAIL_17,
171534 t_TAIL_18> >::type&
171535variant<t_HEAD, t_TAIL_01,
171536 t_TAIL_02,
171537 t_TAIL_03,
171538 t_TAIL_04,
171539 t_TAIL_05,
171540 t_TAIL_06,
171541 t_TAIL_07,
171542 t_TAIL_08,
171543 t_TAIL_09,
171544 t_TAIL_10,
171545 t_TAIL_11,
171546 t_TAIL_12,
171547 t_TAIL_13,
171548 t_TAIL_14,
171549 t_TAIL_15,
171550 t_TAIL_16,
171551 t_TAIL_17,
171552 t_TAIL_18,
171553 BSLS_COMPILERFEATURES_FILLT( 0)>::emplace()
171554{
171555 Variant_Base::template baseEmplace<t_INDEX>();
171556
171557 return bsl::get<t_INDEX>(*this);
171558}
171559#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
171560
171561
171562#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
171563template <class t_HEAD>
171564template <size_t t_INDEX, class t_ARG_01>
171565typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
171566variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
171567 >::emplace(const t_ARG_01& arg_01)
171568{
171569 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171570
171571 return bsl::get<t_INDEX>(*this);
171572}
171573#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
171574
171575#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
171576template <class t_HEAD, class t_TAIL_01>
171577template <size_t t_INDEX, class t_ARG_01>
171578typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
171579variant<t_HEAD, t_TAIL_01,
171580 BSLS_COMPILERFEATURES_FILLT(17)
171581 >::emplace(const t_ARG_01& arg_01)
171582{
171583 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171584
171585 return bsl::get<t_INDEX>(*this);
171586}
171587#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
171588
171589#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
171590template <class t_HEAD, class t_TAIL_01,
171591 class t_TAIL_02>
171592template <size_t t_INDEX, class t_ARG_01>
171593typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171594 t_TAIL_02> >::type&
171595variant<t_HEAD, t_TAIL_01,
171596 t_TAIL_02,
171597 BSLS_COMPILERFEATURES_FILLT(16)
171598 >::emplace(const t_ARG_01& arg_01)
171599{
171600 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171601
171602 return bsl::get<t_INDEX>(*this);
171603}
171604#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
171605
171606#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
171607template <class t_HEAD, class t_TAIL_01,
171608 class t_TAIL_02,
171609 class t_TAIL_03>
171610template <size_t t_INDEX, class t_ARG_01>
171611typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171612 t_TAIL_02,
171613 t_TAIL_03> >::type&
171614variant<t_HEAD, t_TAIL_01,
171615 t_TAIL_02,
171616 t_TAIL_03,
171617 BSLS_COMPILERFEATURES_FILLT(15)
171618 >::emplace(const t_ARG_01& arg_01)
171619{
171620 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171621
171622 return bsl::get<t_INDEX>(*this);
171623}
171624#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
171625
171626#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
171627template <class t_HEAD, class t_TAIL_01,
171628 class t_TAIL_02,
171629 class t_TAIL_03,
171630 class t_TAIL_04>
171631template <size_t t_INDEX, class t_ARG_01>
171632typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171633 t_TAIL_02,
171634 t_TAIL_03,
171635 t_TAIL_04> >::type&
171636variant<t_HEAD, t_TAIL_01,
171637 t_TAIL_02,
171638 t_TAIL_03,
171639 t_TAIL_04,
171640 BSLS_COMPILERFEATURES_FILLT(14)
171641 >::emplace(const t_ARG_01& arg_01)
171642{
171643 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171644
171645 return bsl::get<t_INDEX>(*this);
171646}
171647#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
171648
171649#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
171650template <class t_HEAD, class t_TAIL_01,
171651 class t_TAIL_02,
171652 class t_TAIL_03,
171653 class t_TAIL_04,
171654 class t_TAIL_05>
171655template <size_t t_INDEX, class t_ARG_01>
171656typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171657 t_TAIL_02,
171658 t_TAIL_03,
171659 t_TAIL_04,
171660 t_TAIL_05> >::type&
171661variant<t_HEAD, t_TAIL_01,
171662 t_TAIL_02,
171663 t_TAIL_03,
171664 t_TAIL_04,
171665 t_TAIL_05,
171666 BSLS_COMPILERFEATURES_FILLT(13)
171667 >::emplace(const t_ARG_01& arg_01)
171668{
171669 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171670
171671 return bsl::get<t_INDEX>(*this);
171672}
171673#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
171674
171675#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
171676template <class t_HEAD, class t_TAIL_01,
171677 class t_TAIL_02,
171678 class t_TAIL_03,
171679 class t_TAIL_04,
171680 class t_TAIL_05,
171681 class t_TAIL_06>
171682template <size_t t_INDEX, class t_ARG_01>
171683typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171684 t_TAIL_02,
171685 t_TAIL_03,
171686 t_TAIL_04,
171687 t_TAIL_05,
171688 t_TAIL_06> >::type&
171689variant<t_HEAD, t_TAIL_01,
171690 t_TAIL_02,
171691 t_TAIL_03,
171692 t_TAIL_04,
171693 t_TAIL_05,
171694 t_TAIL_06,
171695 BSLS_COMPILERFEATURES_FILLT(12)
171696 >::emplace(const t_ARG_01& arg_01)
171697{
171698 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171699
171700 return bsl::get<t_INDEX>(*this);
171701}
171702#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
171703
171704#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
171705template <class t_HEAD, class t_TAIL_01,
171706 class t_TAIL_02,
171707 class t_TAIL_03,
171708 class t_TAIL_04,
171709 class t_TAIL_05,
171710 class t_TAIL_06,
171711 class t_TAIL_07>
171712template <size_t t_INDEX, class t_ARG_01>
171713typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171714 t_TAIL_02,
171715 t_TAIL_03,
171716 t_TAIL_04,
171717 t_TAIL_05,
171718 t_TAIL_06,
171719 t_TAIL_07> >::type&
171720variant<t_HEAD, t_TAIL_01,
171721 t_TAIL_02,
171722 t_TAIL_03,
171723 t_TAIL_04,
171724 t_TAIL_05,
171725 t_TAIL_06,
171726 t_TAIL_07,
171727 BSLS_COMPILERFEATURES_FILLT(11)
171728 >::emplace(const t_ARG_01& arg_01)
171729{
171730 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171731
171732 return bsl::get<t_INDEX>(*this);
171733}
171734#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
171735
171736#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
171737template <class t_HEAD, class t_TAIL_01,
171738 class t_TAIL_02,
171739 class t_TAIL_03,
171740 class t_TAIL_04,
171741 class t_TAIL_05,
171742 class t_TAIL_06,
171743 class t_TAIL_07,
171744 class t_TAIL_08>
171745template <size_t t_INDEX, class t_ARG_01>
171746typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171747 t_TAIL_02,
171748 t_TAIL_03,
171749 t_TAIL_04,
171750 t_TAIL_05,
171751 t_TAIL_06,
171752 t_TAIL_07,
171753 t_TAIL_08> >::type&
171754variant<t_HEAD, t_TAIL_01,
171755 t_TAIL_02,
171756 t_TAIL_03,
171757 t_TAIL_04,
171758 t_TAIL_05,
171759 t_TAIL_06,
171760 t_TAIL_07,
171761 t_TAIL_08,
171762 BSLS_COMPILERFEATURES_FILLT(10)
171763 >::emplace(const t_ARG_01& arg_01)
171764{
171765 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171766
171767 return bsl::get<t_INDEX>(*this);
171768}
171769#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
171770
171771#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
171772template <class t_HEAD, class t_TAIL_01,
171773 class t_TAIL_02,
171774 class t_TAIL_03,
171775 class t_TAIL_04,
171776 class t_TAIL_05,
171777 class t_TAIL_06,
171778 class t_TAIL_07,
171779 class t_TAIL_08,
171780 class t_TAIL_09>
171781template <size_t t_INDEX, class t_ARG_01>
171782typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171783 t_TAIL_02,
171784 t_TAIL_03,
171785 t_TAIL_04,
171786 t_TAIL_05,
171787 t_TAIL_06,
171788 t_TAIL_07,
171789 t_TAIL_08,
171790 t_TAIL_09> >::type&
171791variant<t_HEAD, t_TAIL_01,
171792 t_TAIL_02,
171793 t_TAIL_03,
171794 t_TAIL_04,
171795 t_TAIL_05,
171796 t_TAIL_06,
171797 t_TAIL_07,
171798 t_TAIL_08,
171799 t_TAIL_09,
171800 BSLS_COMPILERFEATURES_FILLT( 9)
171801 >::emplace(const t_ARG_01& arg_01)
171802{
171803 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171804
171805 return bsl::get<t_INDEX>(*this);
171806}
171807#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
171808
171809#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
171810template <class t_HEAD, class t_TAIL_01,
171811 class t_TAIL_02,
171812 class t_TAIL_03,
171813 class t_TAIL_04,
171814 class t_TAIL_05,
171815 class t_TAIL_06,
171816 class t_TAIL_07,
171817 class t_TAIL_08,
171818 class t_TAIL_09,
171819 class t_TAIL_10>
171820template <size_t t_INDEX, class t_ARG_01>
171821typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171822 t_TAIL_02,
171823 t_TAIL_03,
171824 t_TAIL_04,
171825 t_TAIL_05,
171826 t_TAIL_06,
171827 t_TAIL_07,
171828 t_TAIL_08,
171829 t_TAIL_09,
171830 t_TAIL_10> >::type&
171831variant<t_HEAD, t_TAIL_01,
171832 t_TAIL_02,
171833 t_TAIL_03,
171834 t_TAIL_04,
171835 t_TAIL_05,
171836 t_TAIL_06,
171837 t_TAIL_07,
171838 t_TAIL_08,
171839 t_TAIL_09,
171840 t_TAIL_10,
171841 BSLS_COMPILERFEATURES_FILLT( 8)
171842 >::emplace(const t_ARG_01& arg_01)
171843{
171844 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171845
171846 return bsl::get<t_INDEX>(*this);
171847}
171848#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
171849
171850#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
171851template <class t_HEAD, class t_TAIL_01,
171852 class t_TAIL_02,
171853 class t_TAIL_03,
171854 class t_TAIL_04,
171855 class t_TAIL_05,
171856 class t_TAIL_06,
171857 class t_TAIL_07,
171858 class t_TAIL_08,
171859 class t_TAIL_09,
171860 class t_TAIL_10,
171861 class t_TAIL_11>
171862template <size_t t_INDEX, class t_ARG_01>
171863typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171864 t_TAIL_02,
171865 t_TAIL_03,
171866 t_TAIL_04,
171867 t_TAIL_05,
171868 t_TAIL_06,
171869 t_TAIL_07,
171870 t_TAIL_08,
171871 t_TAIL_09,
171872 t_TAIL_10,
171873 t_TAIL_11> >::type&
171874variant<t_HEAD, t_TAIL_01,
171875 t_TAIL_02,
171876 t_TAIL_03,
171877 t_TAIL_04,
171878 t_TAIL_05,
171879 t_TAIL_06,
171880 t_TAIL_07,
171881 t_TAIL_08,
171882 t_TAIL_09,
171883 t_TAIL_10,
171884 t_TAIL_11,
171885 BSLS_COMPILERFEATURES_FILLT( 7)
171886 >::emplace(const t_ARG_01& arg_01)
171887{
171888 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171889
171890 return bsl::get<t_INDEX>(*this);
171891}
171892#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
171893
171894#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
171895template <class t_HEAD, class t_TAIL_01,
171896 class t_TAIL_02,
171897 class t_TAIL_03,
171898 class t_TAIL_04,
171899 class t_TAIL_05,
171900 class t_TAIL_06,
171901 class t_TAIL_07,
171902 class t_TAIL_08,
171903 class t_TAIL_09,
171904 class t_TAIL_10,
171905 class t_TAIL_11,
171906 class t_TAIL_12>
171907template <size_t t_INDEX, class t_ARG_01>
171908typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171909 t_TAIL_02,
171910 t_TAIL_03,
171911 t_TAIL_04,
171912 t_TAIL_05,
171913 t_TAIL_06,
171914 t_TAIL_07,
171915 t_TAIL_08,
171916 t_TAIL_09,
171917 t_TAIL_10,
171918 t_TAIL_11,
171919 t_TAIL_12> >::type&
171920variant<t_HEAD, t_TAIL_01,
171921 t_TAIL_02,
171922 t_TAIL_03,
171923 t_TAIL_04,
171924 t_TAIL_05,
171925 t_TAIL_06,
171926 t_TAIL_07,
171927 t_TAIL_08,
171928 t_TAIL_09,
171929 t_TAIL_10,
171930 t_TAIL_11,
171931 t_TAIL_12,
171932 BSLS_COMPILERFEATURES_FILLT( 6)
171933 >::emplace(const t_ARG_01& arg_01)
171934{
171935 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171936
171937 return bsl::get<t_INDEX>(*this);
171938}
171939#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
171940
171941#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
171942template <class t_HEAD, class t_TAIL_01,
171943 class t_TAIL_02,
171944 class t_TAIL_03,
171945 class t_TAIL_04,
171946 class t_TAIL_05,
171947 class t_TAIL_06,
171948 class t_TAIL_07,
171949 class t_TAIL_08,
171950 class t_TAIL_09,
171951 class t_TAIL_10,
171952 class t_TAIL_11,
171953 class t_TAIL_12,
171954 class t_TAIL_13>
171955template <size_t t_INDEX, class t_ARG_01>
171956typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
171957 t_TAIL_02,
171958 t_TAIL_03,
171959 t_TAIL_04,
171960 t_TAIL_05,
171961 t_TAIL_06,
171962 t_TAIL_07,
171963 t_TAIL_08,
171964 t_TAIL_09,
171965 t_TAIL_10,
171966 t_TAIL_11,
171967 t_TAIL_12,
171968 t_TAIL_13> >::type&
171969variant<t_HEAD, t_TAIL_01,
171970 t_TAIL_02,
171971 t_TAIL_03,
171972 t_TAIL_04,
171973 t_TAIL_05,
171974 t_TAIL_06,
171975 t_TAIL_07,
171976 t_TAIL_08,
171977 t_TAIL_09,
171978 t_TAIL_10,
171979 t_TAIL_11,
171980 t_TAIL_12,
171981 t_TAIL_13,
171982 BSLS_COMPILERFEATURES_FILLT( 5)
171983 >::emplace(const t_ARG_01& arg_01)
171984{
171985 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
171986
171987 return bsl::get<t_INDEX>(*this);
171988}
171989#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
171990
171991#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
171992template <class t_HEAD, class t_TAIL_01,
171993 class t_TAIL_02,
171994 class t_TAIL_03,
171995 class t_TAIL_04,
171996 class t_TAIL_05,
171997 class t_TAIL_06,
171998 class t_TAIL_07,
171999 class t_TAIL_08,
172000 class t_TAIL_09,
172001 class t_TAIL_10,
172002 class t_TAIL_11,
172003 class t_TAIL_12,
172004 class t_TAIL_13,
172005 class t_TAIL_14>
172006template <size_t t_INDEX, class t_ARG_01>
172007typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172008 t_TAIL_02,
172009 t_TAIL_03,
172010 t_TAIL_04,
172011 t_TAIL_05,
172012 t_TAIL_06,
172013 t_TAIL_07,
172014 t_TAIL_08,
172015 t_TAIL_09,
172016 t_TAIL_10,
172017 t_TAIL_11,
172018 t_TAIL_12,
172019 t_TAIL_13,
172020 t_TAIL_14> >::type&
172021variant<t_HEAD, t_TAIL_01,
172022 t_TAIL_02,
172023 t_TAIL_03,
172024 t_TAIL_04,
172025 t_TAIL_05,
172026 t_TAIL_06,
172027 t_TAIL_07,
172028 t_TAIL_08,
172029 t_TAIL_09,
172030 t_TAIL_10,
172031 t_TAIL_11,
172032 t_TAIL_12,
172033 t_TAIL_13,
172034 t_TAIL_14,
172035 BSLS_COMPILERFEATURES_FILLT( 4)
172036 >::emplace(const t_ARG_01& arg_01)
172037{
172038 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
172039
172040 return bsl::get<t_INDEX>(*this);
172041}
172042#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
172043
172044#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
172045template <class t_HEAD, class t_TAIL_01,
172046 class t_TAIL_02,
172047 class t_TAIL_03,
172048 class t_TAIL_04,
172049 class t_TAIL_05,
172050 class t_TAIL_06,
172051 class t_TAIL_07,
172052 class t_TAIL_08,
172053 class t_TAIL_09,
172054 class t_TAIL_10,
172055 class t_TAIL_11,
172056 class t_TAIL_12,
172057 class t_TAIL_13,
172058 class t_TAIL_14,
172059 class t_TAIL_15>
172060template <size_t t_INDEX, class t_ARG_01>
172061typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172062 t_TAIL_02,
172063 t_TAIL_03,
172064 t_TAIL_04,
172065 t_TAIL_05,
172066 t_TAIL_06,
172067 t_TAIL_07,
172068 t_TAIL_08,
172069 t_TAIL_09,
172070 t_TAIL_10,
172071 t_TAIL_11,
172072 t_TAIL_12,
172073 t_TAIL_13,
172074 t_TAIL_14,
172075 t_TAIL_15> >::type&
172076variant<t_HEAD, t_TAIL_01,
172077 t_TAIL_02,
172078 t_TAIL_03,
172079 t_TAIL_04,
172080 t_TAIL_05,
172081 t_TAIL_06,
172082 t_TAIL_07,
172083 t_TAIL_08,
172084 t_TAIL_09,
172085 t_TAIL_10,
172086 t_TAIL_11,
172087 t_TAIL_12,
172088 t_TAIL_13,
172089 t_TAIL_14,
172090 t_TAIL_15,
172091 BSLS_COMPILERFEATURES_FILLT( 3)
172092 >::emplace(const t_ARG_01& arg_01)
172093{
172094 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
172095
172096 return bsl::get<t_INDEX>(*this);
172097}
172098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
172099
172100#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
172101template <class t_HEAD, class t_TAIL_01,
172102 class t_TAIL_02,
172103 class t_TAIL_03,
172104 class t_TAIL_04,
172105 class t_TAIL_05,
172106 class t_TAIL_06,
172107 class t_TAIL_07,
172108 class t_TAIL_08,
172109 class t_TAIL_09,
172110 class t_TAIL_10,
172111 class t_TAIL_11,
172112 class t_TAIL_12,
172113 class t_TAIL_13,
172114 class t_TAIL_14,
172115 class t_TAIL_15,
172116 class t_TAIL_16>
172117template <size_t t_INDEX, class t_ARG_01>
172118typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172119 t_TAIL_02,
172120 t_TAIL_03,
172121 t_TAIL_04,
172122 t_TAIL_05,
172123 t_TAIL_06,
172124 t_TAIL_07,
172125 t_TAIL_08,
172126 t_TAIL_09,
172127 t_TAIL_10,
172128 t_TAIL_11,
172129 t_TAIL_12,
172130 t_TAIL_13,
172131 t_TAIL_14,
172132 t_TAIL_15,
172133 t_TAIL_16> >::type&
172134variant<t_HEAD, t_TAIL_01,
172135 t_TAIL_02,
172136 t_TAIL_03,
172137 t_TAIL_04,
172138 t_TAIL_05,
172139 t_TAIL_06,
172140 t_TAIL_07,
172141 t_TAIL_08,
172142 t_TAIL_09,
172143 t_TAIL_10,
172144 t_TAIL_11,
172145 t_TAIL_12,
172146 t_TAIL_13,
172147 t_TAIL_14,
172148 t_TAIL_15,
172149 t_TAIL_16,
172150 BSLS_COMPILERFEATURES_FILLT( 2)
172151 >::emplace(const t_ARG_01& arg_01)
172152{
172153 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
172154
172155 return bsl::get<t_INDEX>(*this);
172156}
172157#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
172158
172159#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
172160template <class t_HEAD, class t_TAIL_01,
172161 class t_TAIL_02,
172162 class t_TAIL_03,
172163 class t_TAIL_04,
172164 class t_TAIL_05,
172165 class t_TAIL_06,
172166 class t_TAIL_07,
172167 class t_TAIL_08,
172168 class t_TAIL_09,
172169 class t_TAIL_10,
172170 class t_TAIL_11,
172171 class t_TAIL_12,
172172 class t_TAIL_13,
172173 class t_TAIL_14,
172174 class t_TAIL_15,
172175 class t_TAIL_16,
172176 class t_TAIL_17>
172177template <size_t t_INDEX, class t_ARG_01>
172178typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172179 t_TAIL_02,
172180 t_TAIL_03,
172181 t_TAIL_04,
172182 t_TAIL_05,
172183 t_TAIL_06,
172184 t_TAIL_07,
172185 t_TAIL_08,
172186 t_TAIL_09,
172187 t_TAIL_10,
172188 t_TAIL_11,
172189 t_TAIL_12,
172190 t_TAIL_13,
172191 t_TAIL_14,
172192 t_TAIL_15,
172193 t_TAIL_16,
172194 t_TAIL_17> >::type&
172195variant<t_HEAD, t_TAIL_01,
172196 t_TAIL_02,
172197 t_TAIL_03,
172198 t_TAIL_04,
172199 t_TAIL_05,
172200 t_TAIL_06,
172201 t_TAIL_07,
172202 t_TAIL_08,
172203 t_TAIL_09,
172204 t_TAIL_10,
172205 t_TAIL_11,
172206 t_TAIL_12,
172207 t_TAIL_13,
172208 t_TAIL_14,
172209 t_TAIL_15,
172210 t_TAIL_16,
172211 t_TAIL_17,
172212 BSLS_COMPILERFEATURES_FILLT( 1)
172213 >::emplace(const t_ARG_01& arg_01)
172214{
172215 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
172216
172217 return bsl::get<t_INDEX>(*this);
172218}
172219#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
172220
172221#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
172222template <class t_HEAD, class t_TAIL_01,
172223 class t_TAIL_02,
172224 class t_TAIL_03,
172225 class t_TAIL_04,
172226 class t_TAIL_05,
172227 class t_TAIL_06,
172228 class t_TAIL_07,
172229 class t_TAIL_08,
172230 class t_TAIL_09,
172231 class t_TAIL_10,
172232 class t_TAIL_11,
172233 class t_TAIL_12,
172234 class t_TAIL_13,
172235 class t_TAIL_14,
172236 class t_TAIL_15,
172237 class t_TAIL_16,
172238 class t_TAIL_17,
172239 class t_TAIL_18>
172240template <size_t t_INDEX, class t_ARG_01>
172241typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172242 t_TAIL_02,
172243 t_TAIL_03,
172244 t_TAIL_04,
172245 t_TAIL_05,
172246 t_TAIL_06,
172247 t_TAIL_07,
172248 t_TAIL_08,
172249 t_TAIL_09,
172250 t_TAIL_10,
172251 t_TAIL_11,
172252 t_TAIL_12,
172253 t_TAIL_13,
172254 t_TAIL_14,
172255 t_TAIL_15,
172256 t_TAIL_16,
172257 t_TAIL_17,
172258 t_TAIL_18> >::type&
172259variant<t_HEAD, t_TAIL_01,
172260 t_TAIL_02,
172261 t_TAIL_03,
172262 t_TAIL_04,
172263 t_TAIL_05,
172264 t_TAIL_06,
172265 t_TAIL_07,
172266 t_TAIL_08,
172267 t_TAIL_09,
172268 t_TAIL_10,
172269 t_TAIL_11,
172270 t_TAIL_12,
172271 t_TAIL_13,
172272 t_TAIL_14,
172273 t_TAIL_15,
172274 t_TAIL_16,
172275 t_TAIL_17,
172276 t_TAIL_18,
172277 BSLS_COMPILERFEATURES_FILLT( 0)
172278 >::emplace(const t_ARG_01& arg_01)
172279{
172280 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
172281
172282 return bsl::get<t_INDEX>(*this);
172283}
172284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
172285
172286
172287#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
172288template <class t_HEAD>
172289template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172290typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
172291variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
172292 >::emplace(const t_ARG_01& arg_01,
172293 const t_ARG_02& arg_02)
172294{
172295 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172296
172297 return bsl::get<t_INDEX>(*this);
172298}
172299#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
172300
172301#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
172302template <class t_HEAD, class t_TAIL_01>
172303template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172304typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
172305variant<t_HEAD, t_TAIL_01,
172306 BSLS_COMPILERFEATURES_FILLT(17)
172307 >::emplace(const t_ARG_01& arg_01,
172308 const t_ARG_02& arg_02)
172309{
172310 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172311
172312 return bsl::get<t_INDEX>(*this);
172313}
172314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
172315
172316#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
172317template <class t_HEAD, class t_TAIL_01,
172318 class t_TAIL_02>
172319template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172320typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172321 t_TAIL_02> >::type&
172322variant<t_HEAD, t_TAIL_01,
172323 t_TAIL_02,
172324 BSLS_COMPILERFEATURES_FILLT(16)
172325 >::emplace(const t_ARG_01& arg_01,
172326 const t_ARG_02& arg_02)
172327{
172328 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172329
172330 return bsl::get<t_INDEX>(*this);
172331}
172332#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
172333
172334#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
172335template <class t_HEAD, class t_TAIL_01,
172336 class t_TAIL_02,
172337 class t_TAIL_03>
172338template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172339typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172340 t_TAIL_02,
172341 t_TAIL_03> >::type&
172342variant<t_HEAD, t_TAIL_01,
172343 t_TAIL_02,
172344 t_TAIL_03,
172345 BSLS_COMPILERFEATURES_FILLT(15)
172346 >::emplace(const t_ARG_01& arg_01,
172347 const t_ARG_02& arg_02)
172348{
172349 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172350
172351 return bsl::get<t_INDEX>(*this);
172352}
172353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
172354
172355#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
172356template <class t_HEAD, class t_TAIL_01,
172357 class t_TAIL_02,
172358 class t_TAIL_03,
172359 class t_TAIL_04>
172360template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172361typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172362 t_TAIL_02,
172363 t_TAIL_03,
172364 t_TAIL_04> >::type&
172365variant<t_HEAD, t_TAIL_01,
172366 t_TAIL_02,
172367 t_TAIL_03,
172368 t_TAIL_04,
172369 BSLS_COMPILERFEATURES_FILLT(14)
172370 >::emplace(const t_ARG_01& arg_01,
172371 const t_ARG_02& arg_02)
172372{
172373 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172374
172375 return bsl::get<t_INDEX>(*this);
172376}
172377#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
172378
172379#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
172380template <class t_HEAD, class t_TAIL_01,
172381 class t_TAIL_02,
172382 class t_TAIL_03,
172383 class t_TAIL_04,
172384 class t_TAIL_05>
172385template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172386typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172387 t_TAIL_02,
172388 t_TAIL_03,
172389 t_TAIL_04,
172390 t_TAIL_05> >::type&
172391variant<t_HEAD, t_TAIL_01,
172392 t_TAIL_02,
172393 t_TAIL_03,
172394 t_TAIL_04,
172395 t_TAIL_05,
172396 BSLS_COMPILERFEATURES_FILLT(13)
172397 >::emplace(const t_ARG_01& arg_01,
172398 const t_ARG_02& arg_02)
172399{
172400 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172401
172402 return bsl::get<t_INDEX>(*this);
172403}
172404#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
172405
172406#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
172407template <class t_HEAD, class t_TAIL_01,
172408 class t_TAIL_02,
172409 class t_TAIL_03,
172410 class t_TAIL_04,
172411 class t_TAIL_05,
172412 class t_TAIL_06>
172413template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172414typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172415 t_TAIL_02,
172416 t_TAIL_03,
172417 t_TAIL_04,
172418 t_TAIL_05,
172419 t_TAIL_06> >::type&
172420variant<t_HEAD, t_TAIL_01,
172421 t_TAIL_02,
172422 t_TAIL_03,
172423 t_TAIL_04,
172424 t_TAIL_05,
172425 t_TAIL_06,
172426 BSLS_COMPILERFEATURES_FILLT(12)
172427 >::emplace(const t_ARG_01& arg_01,
172428 const t_ARG_02& arg_02)
172429{
172430 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172431
172432 return bsl::get<t_INDEX>(*this);
172433}
172434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
172435
172436#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
172437template <class t_HEAD, class t_TAIL_01,
172438 class t_TAIL_02,
172439 class t_TAIL_03,
172440 class t_TAIL_04,
172441 class t_TAIL_05,
172442 class t_TAIL_06,
172443 class t_TAIL_07>
172444template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172445typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172446 t_TAIL_02,
172447 t_TAIL_03,
172448 t_TAIL_04,
172449 t_TAIL_05,
172450 t_TAIL_06,
172451 t_TAIL_07> >::type&
172452variant<t_HEAD, t_TAIL_01,
172453 t_TAIL_02,
172454 t_TAIL_03,
172455 t_TAIL_04,
172456 t_TAIL_05,
172457 t_TAIL_06,
172458 t_TAIL_07,
172459 BSLS_COMPILERFEATURES_FILLT(11)
172460 >::emplace(const t_ARG_01& arg_01,
172461 const t_ARG_02& arg_02)
172462{
172463 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172464
172465 return bsl::get<t_INDEX>(*this);
172466}
172467#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
172468
172469#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
172470template <class t_HEAD, class t_TAIL_01,
172471 class t_TAIL_02,
172472 class t_TAIL_03,
172473 class t_TAIL_04,
172474 class t_TAIL_05,
172475 class t_TAIL_06,
172476 class t_TAIL_07,
172477 class t_TAIL_08>
172478template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172479typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172480 t_TAIL_02,
172481 t_TAIL_03,
172482 t_TAIL_04,
172483 t_TAIL_05,
172484 t_TAIL_06,
172485 t_TAIL_07,
172486 t_TAIL_08> >::type&
172487variant<t_HEAD, t_TAIL_01,
172488 t_TAIL_02,
172489 t_TAIL_03,
172490 t_TAIL_04,
172491 t_TAIL_05,
172492 t_TAIL_06,
172493 t_TAIL_07,
172494 t_TAIL_08,
172495 BSLS_COMPILERFEATURES_FILLT(10)
172496 >::emplace(const t_ARG_01& arg_01,
172497 const t_ARG_02& arg_02)
172498{
172499 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172500
172501 return bsl::get<t_INDEX>(*this);
172502}
172503#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
172504
172505#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
172506template <class t_HEAD, class t_TAIL_01,
172507 class t_TAIL_02,
172508 class t_TAIL_03,
172509 class t_TAIL_04,
172510 class t_TAIL_05,
172511 class t_TAIL_06,
172512 class t_TAIL_07,
172513 class t_TAIL_08,
172514 class t_TAIL_09>
172515template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172516typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172517 t_TAIL_02,
172518 t_TAIL_03,
172519 t_TAIL_04,
172520 t_TAIL_05,
172521 t_TAIL_06,
172522 t_TAIL_07,
172523 t_TAIL_08,
172524 t_TAIL_09> >::type&
172525variant<t_HEAD, t_TAIL_01,
172526 t_TAIL_02,
172527 t_TAIL_03,
172528 t_TAIL_04,
172529 t_TAIL_05,
172530 t_TAIL_06,
172531 t_TAIL_07,
172532 t_TAIL_08,
172533 t_TAIL_09,
172534 BSLS_COMPILERFEATURES_FILLT( 9)
172535 >::emplace(const t_ARG_01& arg_01,
172536 const t_ARG_02& arg_02)
172537{
172538 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172539
172540 return bsl::get<t_INDEX>(*this);
172541}
172542#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
172543
172544#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
172545template <class t_HEAD, class t_TAIL_01,
172546 class t_TAIL_02,
172547 class t_TAIL_03,
172548 class t_TAIL_04,
172549 class t_TAIL_05,
172550 class t_TAIL_06,
172551 class t_TAIL_07,
172552 class t_TAIL_08,
172553 class t_TAIL_09,
172554 class t_TAIL_10>
172555template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172556typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172557 t_TAIL_02,
172558 t_TAIL_03,
172559 t_TAIL_04,
172560 t_TAIL_05,
172561 t_TAIL_06,
172562 t_TAIL_07,
172563 t_TAIL_08,
172564 t_TAIL_09,
172565 t_TAIL_10> >::type&
172566variant<t_HEAD, t_TAIL_01,
172567 t_TAIL_02,
172568 t_TAIL_03,
172569 t_TAIL_04,
172570 t_TAIL_05,
172571 t_TAIL_06,
172572 t_TAIL_07,
172573 t_TAIL_08,
172574 t_TAIL_09,
172575 t_TAIL_10,
172576 BSLS_COMPILERFEATURES_FILLT( 8)
172577 >::emplace(const t_ARG_01& arg_01,
172578 const t_ARG_02& arg_02)
172579{
172580 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172581
172582 return bsl::get<t_INDEX>(*this);
172583}
172584#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
172585
172586#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
172587template <class t_HEAD, class t_TAIL_01,
172588 class t_TAIL_02,
172589 class t_TAIL_03,
172590 class t_TAIL_04,
172591 class t_TAIL_05,
172592 class t_TAIL_06,
172593 class t_TAIL_07,
172594 class t_TAIL_08,
172595 class t_TAIL_09,
172596 class t_TAIL_10,
172597 class t_TAIL_11>
172598template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172599typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172600 t_TAIL_02,
172601 t_TAIL_03,
172602 t_TAIL_04,
172603 t_TAIL_05,
172604 t_TAIL_06,
172605 t_TAIL_07,
172606 t_TAIL_08,
172607 t_TAIL_09,
172608 t_TAIL_10,
172609 t_TAIL_11> >::type&
172610variant<t_HEAD, t_TAIL_01,
172611 t_TAIL_02,
172612 t_TAIL_03,
172613 t_TAIL_04,
172614 t_TAIL_05,
172615 t_TAIL_06,
172616 t_TAIL_07,
172617 t_TAIL_08,
172618 t_TAIL_09,
172619 t_TAIL_10,
172620 t_TAIL_11,
172621 BSLS_COMPILERFEATURES_FILLT( 7)
172622 >::emplace(const t_ARG_01& arg_01,
172623 const t_ARG_02& arg_02)
172624{
172625 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172626
172627 return bsl::get<t_INDEX>(*this);
172628}
172629#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
172630
172631#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
172632template <class t_HEAD, class t_TAIL_01,
172633 class t_TAIL_02,
172634 class t_TAIL_03,
172635 class t_TAIL_04,
172636 class t_TAIL_05,
172637 class t_TAIL_06,
172638 class t_TAIL_07,
172639 class t_TAIL_08,
172640 class t_TAIL_09,
172641 class t_TAIL_10,
172642 class t_TAIL_11,
172643 class t_TAIL_12>
172644template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172645typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172646 t_TAIL_02,
172647 t_TAIL_03,
172648 t_TAIL_04,
172649 t_TAIL_05,
172650 t_TAIL_06,
172651 t_TAIL_07,
172652 t_TAIL_08,
172653 t_TAIL_09,
172654 t_TAIL_10,
172655 t_TAIL_11,
172656 t_TAIL_12> >::type&
172657variant<t_HEAD, t_TAIL_01,
172658 t_TAIL_02,
172659 t_TAIL_03,
172660 t_TAIL_04,
172661 t_TAIL_05,
172662 t_TAIL_06,
172663 t_TAIL_07,
172664 t_TAIL_08,
172665 t_TAIL_09,
172666 t_TAIL_10,
172667 t_TAIL_11,
172668 t_TAIL_12,
172669 BSLS_COMPILERFEATURES_FILLT( 6)
172670 >::emplace(const t_ARG_01& arg_01,
172671 const t_ARG_02& arg_02)
172672{
172673 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172674
172675 return bsl::get<t_INDEX>(*this);
172676}
172677#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
172678
172679#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
172680template <class t_HEAD, class t_TAIL_01,
172681 class t_TAIL_02,
172682 class t_TAIL_03,
172683 class t_TAIL_04,
172684 class t_TAIL_05,
172685 class t_TAIL_06,
172686 class t_TAIL_07,
172687 class t_TAIL_08,
172688 class t_TAIL_09,
172689 class t_TAIL_10,
172690 class t_TAIL_11,
172691 class t_TAIL_12,
172692 class t_TAIL_13>
172693template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172694typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172695 t_TAIL_02,
172696 t_TAIL_03,
172697 t_TAIL_04,
172698 t_TAIL_05,
172699 t_TAIL_06,
172700 t_TAIL_07,
172701 t_TAIL_08,
172702 t_TAIL_09,
172703 t_TAIL_10,
172704 t_TAIL_11,
172705 t_TAIL_12,
172706 t_TAIL_13> >::type&
172707variant<t_HEAD, t_TAIL_01,
172708 t_TAIL_02,
172709 t_TAIL_03,
172710 t_TAIL_04,
172711 t_TAIL_05,
172712 t_TAIL_06,
172713 t_TAIL_07,
172714 t_TAIL_08,
172715 t_TAIL_09,
172716 t_TAIL_10,
172717 t_TAIL_11,
172718 t_TAIL_12,
172719 t_TAIL_13,
172720 BSLS_COMPILERFEATURES_FILLT( 5)
172721 >::emplace(const t_ARG_01& arg_01,
172722 const t_ARG_02& arg_02)
172723{
172724 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172725
172726 return bsl::get<t_INDEX>(*this);
172727}
172728#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
172729
172730#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
172731template <class t_HEAD, class t_TAIL_01,
172732 class t_TAIL_02,
172733 class t_TAIL_03,
172734 class t_TAIL_04,
172735 class t_TAIL_05,
172736 class t_TAIL_06,
172737 class t_TAIL_07,
172738 class t_TAIL_08,
172739 class t_TAIL_09,
172740 class t_TAIL_10,
172741 class t_TAIL_11,
172742 class t_TAIL_12,
172743 class t_TAIL_13,
172744 class t_TAIL_14>
172745template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172746typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172747 t_TAIL_02,
172748 t_TAIL_03,
172749 t_TAIL_04,
172750 t_TAIL_05,
172751 t_TAIL_06,
172752 t_TAIL_07,
172753 t_TAIL_08,
172754 t_TAIL_09,
172755 t_TAIL_10,
172756 t_TAIL_11,
172757 t_TAIL_12,
172758 t_TAIL_13,
172759 t_TAIL_14> >::type&
172760variant<t_HEAD, t_TAIL_01,
172761 t_TAIL_02,
172762 t_TAIL_03,
172763 t_TAIL_04,
172764 t_TAIL_05,
172765 t_TAIL_06,
172766 t_TAIL_07,
172767 t_TAIL_08,
172768 t_TAIL_09,
172769 t_TAIL_10,
172770 t_TAIL_11,
172771 t_TAIL_12,
172772 t_TAIL_13,
172773 t_TAIL_14,
172774 BSLS_COMPILERFEATURES_FILLT( 4)
172775 >::emplace(const t_ARG_01& arg_01,
172776 const t_ARG_02& arg_02)
172777{
172778 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172779
172780 return bsl::get<t_INDEX>(*this);
172781}
172782#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
172783
172784#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
172785template <class t_HEAD, class t_TAIL_01,
172786 class t_TAIL_02,
172787 class t_TAIL_03,
172788 class t_TAIL_04,
172789 class t_TAIL_05,
172790 class t_TAIL_06,
172791 class t_TAIL_07,
172792 class t_TAIL_08,
172793 class t_TAIL_09,
172794 class t_TAIL_10,
172795 class t_TAIL_11,
172796 class t_TAIL_12,
172797 class t_TAIL_13,
172798 class t_TAIL_14,
172799 class t_TAIL_15>
172800template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172801typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172802 t_TAIL_02,
172803 t_TAIL_03,
172804 t_TAIL_04,
172805 t_TAIL_05,
172806 t_TAIL_06,
172807 t_TAIL_07,
172808 t_TAIL_08,
172809 t_TAIL_09,
172810 t_TAIL_10,
172811 t_TAIL_11,
172812 t_TAIL_12,
172813 t_TAIL_13,
172814 t_TAIL_14,
172815 t_TAIL_15> >::type&
172816variant<t_HEAD, t_TAIL_01,
172817 t_TAIL_02,
172818 t_TAIL_03,
172819 t_TAIL_04,
172820 t_TAIL_05,
172821 t_TAIL_06,
172822 t_TAIL_07,
172823 t_TAIL_08,
172824 t_TAIL_09,
172825 t_TAIL_10,
172826 t_TAIL_11,
172827 t_TAIL_12,
172828 t_TAIL_13,
172829 t_TAIL_14,
172830 t_TAIL_15,
172831 BSLS_COMPILERFEATURES_FILLT( 3)
172832 >::emplace(const t_ARG_01& arg_01,
172833 const t_ARG_02& arg_02)
172834{
172835 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172836
172837 return bsl::get<t_INDEX>(*this);
172838}
172839#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
172840
172841#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
172842template <class t_HEAD, class t_TAIL_01,
172843 class t_TAIL_02,
172844 class t_TAIL_03,
172845 class t_TAIL_04,
172846 class t_TAIL_05,
172847 class t_TAIL_06,
172848 class t_TAIL_07,
172849 class t_TAIL_08,
172850 class t_TAIL_09,
172851 class t_TAIL_10,
172852 class t_TAIL_11,
172853 class t_TAIL_12,
172854 class t_TAIL_13,
172855 class t_TAIL_14,
172856 class t_TAIL_15,
172857 class t_TAIL_16>
172858template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172859typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172860 t_TAIL_02,
172861 t_TAIL_03,
172862 t_TAIL_04,
172863 t_TAIL_05,
172864 t_TAIL_06,
172865 t_TAIL_07,
172866 t_TAIL_08,
172867 t_TAIL_09,
172868 t_TAIL_10,
172869 t_TAIL_11,
172870 t_TAIL_12,
172871 t_TAIL_13,
172872 t_TAIL_14,
172873 t_TAIL_15,
172874 t_TAIL_16> >::type&
172875variant<t_HEAD, t_TAIL_01,
172876 t_TAIL_02,
172877 t_TAIL_03,
172878 t_TAIL_04,
172879 t_TAIL_05,
172880 t_TAIL_06,
172881 t_TAIL_07,
172882 t_TAIL_08,
172883 t_TAIL_09,
172884 t_TAIL_10,
172885 t_TAIL_11,
172886 t_TAIL_12,
172887 t_TAIL_13,
172888 t_TAIL_14,
172889 t_TAIL_15,
172890 t_TAIL_16,
172891 BSLS_COMPILERFEATURES_FILLT( 2)
172892 >::emplace(const t_ARG_01& arg_01,
172893 const t_ARG_02& arg_02)
172894{
172895 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172896
172897 return bsl::get<t_INDEX>(*this);
172898}
172899#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
172900
172901#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
172902template <class t_HEAD, class t_TAIL_01,
172903 class t_TAIL_02,
172904 class t_TAIL_03,
172905 class t_TAIL_04,
172906 class t_TAIL_05,
172907 class t_TAIL_06,
172908 class t_TAIL_07,
172909 class t_TAIL_08,
172910 class t_TAIL_09,
172911 class t_TAIL_10,
172912 class t_TAIL_11,
172913 class t_TAIL_12,
172914 class t_TAIL_13,
172915 class t_TAIL_14,
172916 class t_TAIL_15,
172917 class t_TAIL_16,
172918 class t_TAIL_17>
172919template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172920typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172921 t_TAIL_02,
172922 t_TAIL_03,
172923 t_TAIL_04,
172924 t_TAIL_05,
172925 t_TAIL_06,
172926 t_TAIL_07,
172927 t_TAIL_08,
172928 t_TAIL_09,
172929 t_TAIL_10,
172930 t_TAIL_11,
172931 t_TAIL_12,
172932 t_TAIL_13,
172933 t_TAIL_14,
172934 t_TAIL_15,
172935 t_TAIL_16,
172936 t_TAIL_17> >::type&
172937variant<t_HEAD, t_TAIL_01,
172938 t_TAIL_02,
172939 t_TAIL_03,
172940 t_TAIL_04,
172941 t_TAIL_05,
172942 t_TAIL_06,
172943 t_TAIL_07,
172944 t_TAIL_08,
172945 t_TAIL_09,
172946 t_TAIL_10,
172947 t_TAIL_11,
172948 t_TAIL_12,
172949 t_TAIL_13,
172950 t_TAIL_14,
172951 t_TAIL_15,
172952 t_TAIL_16,
172953 t_TAIL_17,
172954 BSLS_COMPILERFEATURES_FILLT( 1)
172955 >::emplace(const t_ARG_01& arg_01,
172956 const t_ARG_02& arg_02)
172957{
172958 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
172959
172960 return bsl::get<t_INDEX>(*this);
172961}
172962#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
172963
172964#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
172965template <class t_HEAD, class t_TAIL_01,
172966 class t_TAIL_02,
172967 class t_TAIL_03,
172968 class t_TAIL_04,
172969 class t_TAIL_05,
172970 class t_TAIL_06,
172971 class t_TAIL_07,
172972 class t_TAIL_08,
172973 class t_TAIL_09,
172974 class t_TAIL_10,
172975 class t_TAIL_11,
172976 class t_TAIL_12,
172977 class t_TAIL_13,
172978 class t_TAIL_14,
172979 class t_TAIL_15,
172980 class t_TAIL_16,
172981 class t_TAIL_17,
172982 class t_TAIL_18>
172983template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
172984typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
172985 t_TAIL_02,
172986 t_TAIL_03,
172987 t_TAIL_04,
172988 t_TAIL_05,
172989 t_TAIL_06,
172990 t_TAIL_07,
172991 t_TAIL_08,
172992 t_TAIL_09,
172993 t_TAIL_10,
172994 t_TAIL_11,
172995 t_TAIL_12,
172996 t_TAIL_13,
172997 t_TAIL_14,
172998 t_TAIL_15,
172999 t_TAIL_16,
173000 t_TAIL_17,
173001 t_TAIL_18> >::type&
173002variant<t_HEAD, t_TAIL_01,
173003 t_TAIL_02,
173004 t_TAIL_03,
173005 t_TAIL_04,
173006 t_TAIL_05,
173007 t_TAIL_06,
173008 t_TAIL_07,
173009 t_TAIL_08,
173010 t_TAIL_09,
173011 t_TAIL_10,
173012 t_TAIL_11,
173013 t_TAIL_12,
173014 t_TAIL_13,
173015 t_TAIL_14,
173016 t_TAIL_15,
173017 t_TAIL_16,
173018 t_TAIL_17,
173019 t_TAIL_18,
173020 BSLS_COMPILERFEATURES_FILLT( 0)
173021 >::emplace(const t_ARG_01& arg_01,
173022 const t_ARG_02& arg_02)
173023{
173024 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
173025
173026 return bsl::get<t_INDEX>(*this);
173027}
173028#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
173029
173030
173031#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
173032template <class t_HEAD>
173033template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173034typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
173035variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
173036 >::emplace(const t_ARG_01& arg_01,
173037 const t_ARG_02& arg_02,
173038 const t_ARG_03& arg_03)
173039{
173040 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173041
173042 return bsl::get<t_INDEX>(*this);
173043}
173044#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
173045
173046#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
173047template <class t_HEAD, class t_TAIL_01>
173048template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173049typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
173050variant<t_HEAD, t_TAIL_01,
173051 BSLS_COMPILERFEATURES_FILLT(17)
173052 >::emplace(const t_ARG_01& arg_01,
173053 const t_ARG_02& arg_02,
173054 const t_ARG_03& arg_03)
173055{
173056 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173057
173058 return bsl::get<t_INDEX>(*this);
173059}
173060#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
173061
173062#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
173063template <class t_HEAD, class t_TAIL_01,
173064 class t_TAIL_02>
173065template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173066typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173067 t_TAIL_02> >::type&
173068variant<t_HEAD, t_TAIL_01,
173069 t_TAIL_02,
173070 BSLS_COMPILERFEATURES_FILLT(16)
173071 >::emplace(const t_ARG_01& arg_01,
173072 const t_ARG_02& arg_02,
173073 const t_ARG_03& arg_03)
173074{
173075 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173076
173077 return bsl::get<t_INDEX>(*this);
173078}
173079#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
173080
173081#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
173082template <class t_HEAD, class t_TAIL_01,
173083 class t_TAIL_02,
173084 class t_TAIL_03>
173085template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173086typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173087 t_TAIL_02,
173088 t_TAIL_03> >::type&
173089variant<t_HEAD, t_TAIL_01,
173090 t_TAIL_02,
173091 t_TAIL_03,
173092 BSLS_COMPILERFEATURES_FILLT(15)
173093 >::emplace(const t_ARG_01& arg_01,
173094 const t_ARG_02& arg_02,
173095 const t_ARG_03& arg_03)
173096{
173097 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173098
173099 return bsl::get<t_INDEX>(*this);
173100}
173101#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
173102
173103#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
173104template <class t_HEAD, class t_TAIL_01,
173105 class t_TAIL_02,
173106 class t_TAIL_03,
173107 class t_TAIL_04>
173108template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173109typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173110 t_TAIL_02,
173111 t_TAIL_03,
173112 t_TAIL_04> >::type&
173113variant<t_HEAD, t_TAIL_01,
173114 t_TAIL_02,
173115 t_TAIL_03,
173116 t_TAIL_04,
173117 BSLS_COMPILERFEATURES_FILLT(14)
173118 >::emplace(const t_ARG_01& arg_01,
173119 const t_ARG_02& arg_02,
173120 const t_ARG_03& arg_03)
173121{
173122 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173123
173124 return bsl::get<t_INDEX>(*this);
173125}
173126#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
173127
173128#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
173129template <class t_HEAD, class t_TAIL_01,
173130 class t_TAIL_02,
173131 class t_TAIL_03,
173132 class t_TAIL_04,
173133 class t_TAIL_05>
173134template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173135typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173136 t_TAIL_02,
173137 t_TAIL_03,
173138 t_TAIL_04,
173139 t_TAIL_05> >::type&
173140variant<t_HEAD, t_TAIL_01,
173141 t_TAIL_02,
173142 t_TAIL_03,
173143 t_TAIL_04,
173144 t_TAIL_05,
173145 BSLS_COMPILERFEATURES_FILLT(13)
173146 >::emplace(const t_ARG_01& arg_01,
173147 const t_ARG_02& arg_02,
173148 const t_ARG_03& arg_03)
173149{
173150 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173151
173152 return bsl::get<t_INDEX>(*this);
173153}
173154#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
173155
173156#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
173157template <class t_HEAD, class t_TAIL_01,
173158 class t_TAIL_02,
173159 class t_TAIL_03,
173160 class t_TAIL_04,
173161 class t_TAIL_05,
173162 class t_TAIL_06>
173163template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173164typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173165 t_TAIL_02,
173166 t_TAIL_03,
173167 t_TAIL_04,
173168 t_TAIL_05,
173169 t_TAIL_06> >::type&
173170variant<t_HEAD, t_TAIL_01,
173171 t_TAIL_02,
173172 t_TAIL_03,
173173 t_TAIL_04,
173174 t_TAIL_05,
173175 t_TAIL_06,
173176 BSLS_COMPILERFEATURES_FILLT(12)
173177 >::emplace(const t_ARG_01& arg_01,
173178 const t_ARG_02& arg_02,
173179 const t_ARG_03& arg_03)
173180{
173181 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173182
173183 return bsl::get<t_INDEX>(*this);
173184}
173185#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
173186
173187#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
173188template <class t_HEAD, class t_TAIL_01,
173189 class t_TAIL_02,
173190 class t_TAIL_03,
173191 class t_TAIL_04,
173192 class t_TAIL_05,
173193 class t_TAIL_06,
173194 class t_TAIL_07>
173195template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173196typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173197 t_TAIL_02,
173198 t_TAIL_03,
173199 t_TAIL_04,
173200 t_TAIL_05,
173201 t_TAIL_06,
173202 t_TAIL_07> >::type&
173203variant<t_HEAD, t_TAIL_01,
173204 t_TAIL_02,
173205 t_TAIL_03,
173206 t_TAIL_04,
173207 t_TAIL_05,
173208 t_TAIL_06,
173209 t_TAIL_07,
173210 BSLS_COMPILERFEATURES_FILLT(11)
173211 >::emplace(const t_ARG_01& arg_01,
173212 const t_ARG_02& arg_02,
173213 const t_ARG_03& arg_03)
173214{
173215 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173216
173217 return bsl::get<t_INDEX>(*this);
173218}
173219#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
173220
173221#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
173222template <class t_HEAD, class t_TAIL_01,
173223 class t_TAIL_02,
173224 class t_TAIL_03,
173225 class t_TAIL_04,
173226 class t_TAIL_05,
173227 class t_TAIL_06,
173228 class t_TAIL_07,
173229 class t_TAIL_08>
173230template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173231typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173232 t_TAIL_02,
173233 t_TAIL_03,
173234 t_TAIL_04,
173235 t_TAIL_05,
173236 t_TAIL_06,
173237 t_TAIL_07,
173238 t_TAIL_08> >::type&
173239variant<t_HEAD, t_TAIL_01,
173240 t_TAIL_02,
173241 t_TAIL_03,
173242 t_TAIL_04,
173243 t_TAIL_05,
173244 t_TAIL_06,
173245 t_TAIL_07,
173246 t_TAIL_08,
173247 BSLS_COMPILERFEATURES_FILLT(10)
173248 >::emplace(const t_ARG_01& arg_01,
173249 const t_ARG_02& arg_02,
173250 const t_ARG_03& arg_03)
173251{
173252 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173253
173254 return bsl::get<t_INDEX>(*this);
173255}
173256#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
173257
173258#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
173259template <class t_HEAD, class t_TAIL_01,
173260 class t_TAIL_02,
173261 class t_TAIL_03,
173262 class t_TAIL_04,
173263 class t_TAIL_05,
173264 class t_TAIL_06,
173265 class t_TAIL_07,
173266 class t_TAIL_08,
173267 class t_TAIL_09>
173268template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173269typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173270 t_TAIL_02,
173271 t_TAIL_03,
173272 t_TAIL_04,
173273 t_TAIL_05,
173274 t_TAIL_06,
173275 t_TAIL_07,
173276 t_TAIL_08,
173277 t_TAIL_09> >::type&
173278variant<t_HEAD, t_TAIL_01,
173279 t_TAIL_02,
173280 t_TAIL_03,
173281 t_TAIL_04,
173282 t_TAIL_05,
173283 t_TAIL_06,
173284 t_TAIL_07,
173285 t_TAIL_08,
173286 t_TAIL_09,
173287 BSLS_COMPILERFEATURES_FILLT( 9)
173288 >::emplace(const t_ARG_01& arg_01,
173289 const t_ARG_02& arg_02,
173290 const t_ARG_03& arg_03)
173291{
173292 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173293
173294 return bsl::get<t_INDEX>(*this);
173295}
173296#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
173297
173298#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
173299template <class t_HEAD, class t_TAIL_01,
173300 class t_TAIL_02,
173301 class t_TAIL_03,
173302 class t_TAIL_04,
173303 class t_TAIL_05,
173304 class t_TAIL_06,
173305 class t_TAIL_07,
173306 class t_TAIL_08,
173307 class t_TAIL_09,
173308 class t_TAIL_10>
173309template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173310typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173311 t_TAIL_02,
173312 t_TAIL_03,
173313 t_TAIL_04,
173314 t_TAIL_05,
173315 t_TAIL_06,
173316 t_TAIL_07,
173317 t_TAIL_08,
173318 t_TAIL_09,
173319 t_TAIL_10> >::type&
173320variant<t_HEAD, t_TAIL_01,
173321 t_TAIL_02,
173322 t_TAIL_03,
173323 t_TAIL_04,
173324 t_TAIL_05,
173325 t_TAIL_06,
173326 t_TAIL_07,
173327 t_TAIL_08,
173328 t_TAIL_09,
173329 t_TAIL_10,
173330 BSLS_COMPILERFEATURES_FILLT( 8)
173331 >::emplace(const t_ARG_01& arg_01,
173332 const t_ARG_02& arg_02,
173333 const t_ARG_03& arg_03)
173334{
173335 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173336
173337 return bsl::get<t_INDEX>(*this);
173338}
173339#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
173340
173341#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
173342template <class t_HEAD, class t_TAIL_01,
173343 class t_TAIL_02,
173344 class t_TAIL_03,
173345 class t_TAIL_04,
173346 class t_TAIL_05,
173347 class t_TAIL_06,
173348 class t_TAIL_07,
173349 class t_TAIL_08,
173350 class t_TAIL_09,
173351 class t_TAIL_10,
173352 class t_TAIL_11>
173353template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173354typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173355 t_TAIL_02,
173356 t_TAIL_03,
173357 t_TAIL_04,
173358 t_TAIL_05,
173359 t_TAIL_06,
173360 t_TAIL_07,
173361 t_TAIL_08,
173362 t_TAIL_09,
173363 t_TAIL_10,
173364 t_TAIL_11> >::type&
173365variant<t_HEAD, t_TAIL_01,
173366 t_TAIL_02,
173367 t_TAIL_03,
173368 t_TAIL_04,
173369 t_TAIL_05,
173370 t_TAIL_06,
173371 t_TAIL_07,
173372 t_TAIL_08,
173373 t_TAIL_09,
173374 t_TAIL_10,
173375 t_TAIL_11,
173376 BSLS_COMPILERFEATURES_FILLT( 7)
173377 >::emplace(const t_ARG_01& arg_01,
173378 const t_ARG_02& arg_02,
173379 const t_ARG_03& arg_03)
173380{
173381 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173382
173383 return bsl::get<t_INDEX>(*this);
173384}
173385#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
173386
173387#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
173388template <class t_HEAD, class t_TAIL_01,
173389 class t_TAIL_02,
173390 class t_TAIL_03,
173391 class t_TAIL_04,
173392 class t_TAIL_05,
173393 class t_TAIL_06,
173394 class t_TAIL_07,
173395 class t_TAIL_08,
173396 class t_TAIL_09,
173397 class t_TAIL_10,
173398 class t_TAIL_11,
173399 class t_TAIL_12>
173400template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173401typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173402 t_TAIL_02,
173403 t_TAIL_03,
173404 t_TAIL_04,
173405 t_TAIL_05,
173406 t_TAIL_06,
173407 t_TAIL_07,
173408 t_TAIL_08,
173409 t_TAIL_09,
173410 t_TAIL_10,
173411 t_TAIL_11,
173412 t_TAIL_12> >::type&
173413variant<t_HEAD, t_TAIL_01,
173414 t_TAIL_02,
173415 t_TAIL_03,
173416 t_TAIL_04,
173417 t_TAIL_05,
173418 t_TAIL_06,
173419 t_TAIL_07,
173420 t_TAIL_08,
173421 t_TAIL_09,
173422 t_TAIL_10,
173423 t_TAIL_11,
173424 t_TAIL_12,
173425 BSLS_COMPILERFEATURES_FILLT( 6)
173426 >::emplace(const t_ARG_01& arg_01,
173427 const t_ARG_02& arg_02,
173428 const t_ARG_03& arg_03)
173429{
173430 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173431
173432 return bsl::get<t_INDEX>(*this);
173433}
173434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
173435
173436#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
173437template <class t_HEAD, class t_TAIL_01,
173438 class t_TAIL_02,
173439 class t_TAIL_03,
173440 class t_TAIL_04,
173441 class t_TAIL_05,
173442 class t_TAIL_06,
173443 class t_TAIL_07,
173444 class t_TAIL_08,
173445 class t_TAIL_09,
173446 class t_TAIL_10,
173447 class t_TAIL_11,
173448 class t_TAIL_12,
173449 class t_TAIL_13>
173450template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173451typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173452 t_TAIL_02,
173453 t_TAIL_03,
173454 t_TAIL_04,
173455 t_TAIL_05,
173456 t_TAIL_06,
173457 t_TAIL_07,
173458 t_TAIL_08,
173459 t_TAIL_09,
173460 t_TAIL_10,
173461 t_TAIL_11,
173462 t_TAIL_12,
173463 t_TAIL_13> >::type&
173464variant<t_HEAD, t_TAIL_01,
173465 t_TAIL_02,
173466 t_TAIL_03,
173467 t_TAIL_04,
173468 t_TAIL_05,
173469 t_TAIL_06,
173470 t_TAIL_07,
173471 t_TAIL_08,
173472 t_TAIL_09,
173473 t_TAIL_10,
173474 t_TAIL_11,
173475 t_TAIL_12,
173476 t_TAIL_13,
173477 BSLS_COMPILERFEATURES_FILLT( 5)
173478 >::emplace(const t_ARG_01& arg_01,
173479 const t_ARG_02& arg_02,
173480 const t_ARG_03& arg_03)
173481{
173482 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173483
173484 return bsl::get<t_INDEX>(*this);
173485}
173486#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
173487
173488#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
173489template <class t_HEAD, class t_TAIL_01,
173490 class t_TAIL_02,
173491 class t_TAIL_03,
173492 class t_TAIL_04,
173493 class t_TAIL_05,
173494 class t_TAIL_06,
173495 class t_TAIL_07,
173496 class t_TAIL_08,
173497 class t_TAIL_09,
173498 class t_TAIL_10,
173499 class t_TAIL_11,
173500 class t_TAIL_12,
173501 class t_TAIL_13,
173502 class t_TAIL_14>
173503template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173504typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173505 t_TAIL_02,
173506 t_TAIL_03,
173507 t_TAIL_04,
173508 t_TAIL_05,
173509 t_TAIL_06,
173510 t_TAIL_07,
173511 t_TAIL_08,
173512 t_TAIL_09,
173513 t_TAIL_10,
173514 t_TAIL_11,
173515 t_TAIL_12,
173516 t_TAIL_13,
173517 t_TAIL_14> >::type&
173518variant<t_HEAD, t_TAIL_01,
173519 t_TAIL_02,
173520 t_TAIL_03,
173521 t_TAIL_04,
173522 t_TAIL_05,
173523 t_TAIL_06,
173524 t_TAIL_07,
173525 t_TAIL_08,
173526 t_TAIL_09,
173527 t_TAIL_10,
173528 t_TAIL_11,
173529 t_TAIL_12,
173530 t_TAIL_13,
173531 t_TAIL_14,
173532 BSLS_COMPILERFEATURES_FILLT( 4)
173533 >::emplace(const t_ARG_01& arg_01,
173534 const t_ARG_02& arg_02,
173535 const t_ARG_03& arg_03)
173536{
173537 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173538
173539 return bsl::get<t_INDEX>(*this);
173540}
173541#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
173542
173543#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
173544template <class t_HEAD, class t_TAIL_01,
173545 class t_TAIL_02,
173546 class t_TAIL_03,
173547 class t_TAIL_04,
173548 class t_TAIL_05,
173549 class t_TAIL_06,
173550 class t_TAIL_07,
173551 class t_TAIL_08,
173552 class t_TAIL_09,
173553 class t_TAIL_10,
173554 class t_TAIL_11,
173555 class t_TAIL_12,
173556 class t_TAIL_13,
173557 class t_TAIL_14,
173558 class t_TAIL_15>
173559template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173560typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173561 t_TAIL_02,
173562 t_TAIL_03,
173563 t_TAIL_04,
173564 t_TAIL_05,
173565 t_TAIL_06,
173566 t_TAIL_07,
173567 t_TAIL_08,
173568 t_TAIL_09,
173569 t_TAIL_10,
173570 t_TAIL_11,
173571 t_TAIL_12,
173572 t_TAIL_13,
173573 t_TAIL_14,
173574 t_TAIL_15> >::type&
173575variant<t_HEAD, t_TAIL_01,
173576 t_TAIL_02,
173577 t_TAIL_03,
173578 t_TAIL_04,
173579 t_TAIL_05,
173580 t_TAIL_06,
173581 t_TAIL_07,
173582 t_TAIL_08,
173583 t_TAIL_09,
173584 t_TAIL_10,
173585 t_TAIL_11,
173586 t_TAIL_12,
173587 t_TAIL_13,
173588 t_TAIL_14,
173589 t_TAIL_15,
173590 BSLS_COMPILERFEATURES_FILLT( 3)
173591 >::emplace(const t_ARG_01& arg_01,
173592 const t_ARG_02& arg_02,
173593 const t_ARG_03& arg_03)
173594{
173595 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173596
173597 return bsl::get<t_INDEX>(*this);
173598}
173599#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
173600
173601#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
173602template <class t_HEAD, class t_TAIL_01,
173603 class t_TAIL_02,
173604 class t_TAIL_03,
173605 class t_TAIL_04,
173606 class t_TAIL_05,
173607 class t_TAIL_06,
173608 class t_TAIL_07,
173609 class t_TAIL_08,
173610 class t_TAIL_09,
173611 class t_TAIL_10,
173612 class t_TAIL_11,
173613 class t_TAIL_12,
173614 class t_TAIL_13,
173615 class t_TAIL_14,
173616 class t_TAIL_15,
173617 class t_TAIL_16>
173618template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173619typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173620 t_TAIL_02,
173621 t_TAIL_03,
173622 t_TAIL_04,
173623 t_TAIL_05,
173624 t_TAIL_06,
173625 t_TAIL_07,
173626 t_TAIL_08,
173627 t_TAIL_09,
173628 t_TAIL_10,
173629 t_TAIL_11,
173630 t_TAIL_12,
173631 t_TAIL_13,
173632 t_TAIL_14,
173633 t_TAIL_15,
173634 t_TAIL_16> >::type&
173635variant<t_HEAD, t_TAIL_01,
173636 t_TAIL_02,
173637 t_TAIL_03,
173638 t_TAIL_04,
173639 t_TAIL_05,
173640 t_TAIL_06,
173641 t_TAIL_07,
173642 t_TAIL_08,
173643 t_TAIL_09,
173644 t_TAIL_10,
173645 t_TAIL_11,
173646 t_TAIL_12,
173647 t_TAIL_13,
173648 t_TAIL_14,
173649 t_TAIL_15,
173650 t_TAIL_16,
173651 BSLS_COMPILERFEATURES_FILLT( 2)
173652 >::emplace(const t_ARG_01& arg_01,
173653 const t_ARG_02& arg_02,
173654 const t_ARG_03& arg_03)
173655{
173656 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173657
173658 return bsl::get<t_INDEX>(*this);
173659}
173660#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
173661
173662#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
173663template <class t_HEAD, class t_TAIL_01,
173664 class t_TAIL_02,
173665 class t_TAIL_03,
173666 class t_TAIL_04,
173667 class t_TAIL_05,
173668 class t_TAIL_06,
173669 class t_TAIL_07,
173670 class t_TAIL_08,
173671 class t_TAIL_09,
173672 class t_TAIL_10,
173673 class t_TAIL_11,
173674 class t_TAIL_12,
173675 class t_TAIL_13,
173676 class t_TAIL_14,
173677 class t_TAIL_15,
173678 class t_TAIL_16,
173679 class t_TAIL_17>
173680template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173681typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173682 t_TAIL_02,
173683 t_TAIL_03,
173684 t_TAIL_04,
173685 t_TAIL_05,
173686 t_TAIL_06,
173687 t_TAIL_07,
173688 t_TAIL_08,
173689 t_TAIL_09,
173690 t_TAIL_10,
173691 t_TAIL_11,
173692 t_TAIL_12,
173693 t_TAIL_13,
173694 t_TAIL_14,
173695 t_TAIL_15,
173696 t_TAIL_16,
173697 t_TAIL_17> >::type&
173698variant<t_HEAD, t_TAIL_01,
173699 t_TAIL_02,
173700 t_TAIL_03,
173701 t_TAIL_04,
173702 t_TAIL_05,
173703 t_TAIL_06,
173704 t_TAIL_07,
173705 t_TAIL_08,
173706 t_TAIL_09,
173707 t_TAIL_10,
173708 t_TAIL_11,
173709 t_TAIL_12,
173710 t_TAIL_13,
173711 t_TAIL_14,
173712 t_TAIL_15,
173713 t_TAIL_16,
173714 t_TAIL_17,
173715 BSLS_COMPILERFEATURES_FILLT( 1)
173716 >::emplace(const t_ARG_01& arg_01,
173717 const t_ARG_02& arg_02,
173718 const t_ARG_03& arg_03)
173719{
173720 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173721
173722 return bsl::get<t_INDEX>(*this);
173723}
173724#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
173725
173726#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
173727template <class t_HEAD, class t_TAIL_01,
173728 class t_TAIL_02,
173729 class t_TAIL_03,
173730 class t_TAIL_04,
173731 class t_TAIL_05,
173732 class t_TAIL_06,
173733 class t_TAIL_07,
173734 class t_TAIL_08,
173735 class t_TAIL_09,
173736 class t_TAIL_10,
173737 class t_TAIL_11,
173738 class t_TAIL_12,
173739 class t_TAIL_13,
173740 class t_TAIL_14,
173741 class t_TAIL_15,
173742 class t_TAIL_16,
173743 class t_TAIL_17,
173744 class t_TAIL_18>
173745template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
173746typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173747 t_TAIL_02,
173748 t_TAIL_03,
173749 t_TAIL_04,
173750 t_TAIL_05,
173751 t_TAIL_06,
173752 t_TAIL_07,
173753 t_TAIL_08,
173754 t_TAIL_09,
173755 t_TAIL_10,
173756 t_TAIL_11,
173757 t_TAIL_12,
173758 t_TAIL_13,
173759 t_TAIL_14,
173760 t_TAIL_15,
173761 t_TAIL_16,
173762 t_TAIL_17,
173763 t_TAIL_18> >::type&
173764variant<t_HEAD, t_TAIL_01,
173765 t_TAIL_02,
173766 t_TAIL_03,
173767 t_TAIL_04,
173768 t_TAIL_05,
173769 t_TAIL_06,
173770 t_TAIL_07,
173771 t_TAIL_08,
173772 t_TAIL_09,
173773 t_TAIL_10,
173774 t_TAIL_11,
173775 t_TAIL_12,
173776 t_TAIL_13,
173777 t_TAIL_14,
173778 t_TAIL_15,
173779 t_TAIL_16,
173780 t_TAIL_17,
173781 t_TAIL_18,
173782 BSLS_COMPILERFEATURES_FILLT( 0)
173783 >::emplace(const t_ARG_01& arg_01,
173784 const t_ARG_02& arg_02,
173785 const t_ARG_03& arg_03)
173786{
173787 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
173788
173789 return bsl::get<t_INDEX>(*this);
173790}
173791#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
173792
173793
173794#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
173795template <class t_HEAD>
173796template <size_t t_INDEX,
173797 class t_ARG_01,
173798 class t_ARG_02,
173799 class t_ARG_03,
173800 class t_ARG_04>
173801typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
173802variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
173803 >::emplace(const t_ARG_01& arg_01,
173804 const t_ARG_02& arg_02,
173805 const t_ARG_03& arg_03,
173806 const t_ARG_04& arg_04)
173807{
173808 Variant_Base::template baseEmplace<t_INDEX>(
173809 arg_01, arg_02, arg_03, arg_04);
173810
173811 return bsl::get<t_INDEX>(*this);
173812}
173813#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
173814
173815#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
173816template <class t_HEAD, class t_TAIL_01>
173817template <size_t t_INDEX,
173818 class t_ARG_01,
173819 class t_ARG_02,
173820 class t_ARG_03,
173821 class t_ARG_04>
173822typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
173823variant<t_HEAD, t_TAIL_01,
173824 BSLS_COMPILERFEATURES_FILLT(17)
173825 >::emplace(const t_ARG_01& arg_01,
173826 const t_ARG_02& arg_02,
173827 const t_ARG_03& arg_03,
173828 const t_ARG_04& arg_04)
173829{
173830 Variant_Base::template baseEmplace<t_INDEX>(
173831 arg_01, arg_02, arg_03, arg_04);
173832
173833 return bsl::get<t_INDEX>(*this);
173834}
173835#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
173836
173837#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
173838template <class t_HEAD, class t_TAIL_01,
173839 class t_TAIL_02>
173840template <size_t t_INDEX,
173841 class t_ARG_01,
173842 class t_ARG_02,
173843 class t_ARG_03,
173844 class t_ARG_04>
173845typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173846 t_TAIL_02> >::type&
173847variant<t_HEAD, t_TAIL_01,
173848 t_TAIL_02,
173849 BSLS_COMPILERFEATURES_FILLT(16)
173850 >::emplace(const t_ARG_01& arg_01,
173851 const t_ARG_02& arg_02,
173852 const t_ARG_03& arg_03,
173853 const t_ARG_04& arg_04)
173854{
173855 Variant_Base::template baseEmplace<t_INDEX>(
173856 arg_01, arg_02, arg_03, arg_04);
173857
173858 return bsl::get<t_INDEX>(*this);
173859}
173860#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
173861
173862#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
173863template <class t_HEAD, class t_TAIL_01,
173864 class t_TAIL_02,
173865 class t_TAIL_03>
173866template <size_t t_INDEX,
173867 class t_ARG_01,
173868 class t_ARG_02,
173869 class t_ARG_03,
173870 class t_ARG_04>
173871typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173872 t_TAIL_02,
173873 t_TAIL_03> >::type&
173874variant<t_HEAD, t_TAIL_01,
173875 t_TAIL_02,
173876 t_TAIL_03,
173877 BSLS_COMPILERFEATURES_FILLT(15)
173878 >::emplace(const t_ARG_01& arg_01,
173879 const t_ARG_02& arg_02,
173880 const t_ARG_03& arg_03,
173881 const t_ARG_04& arg_04)
173882{
173883 Variant_Base::template baseEmplace<t_INDEX>(
173884 arg_01, arg_02, arg_03, arg_04);
173885
173886 return bsl::get<t_INDEX>(*this);
173887}
173888#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
173889
173890#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
173891template <class t_HEAD, class t_TAIL_01,
173892 class t_TAIL_02,
173893 class t_TAIL_03,
173894 class t_TAIL_04>
173895template <size_t t_INDEX,
173896 class t_ARG_01,
173897 class t_ARG_02,
173898 class t_ARG_03,
173899 class t_ARG_04>
173900typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173901 t_TAIL_02,
173902 t_TAIL_03,
173903 t_TAIL_04> >::type&
173904variant<t_HEAD, t_TAIL_01,
173905 t_TAIL_02,
173906 t_TAIL_03,
173907 t_TAIL_04,
173908 BSLS_COMPILERFEATURES_FILLT(14)
173909 >::emplace(const t_ARG_01& arg_01,
173910 const t_ARG_02& arg_02,
173911 const t_ARG_03& arg_03,
173912 const t_ARG_04& arg_04)
173913{
173914 Variant_Base::template baseEmplace<t_INDEX>(
173915 arg_01, arg_02, arg_03, arg_04);
173916
173917 return bsl::get<t_INDEX>(*this);
173918}
173919#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
173920
173921#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
173922template <class t_HEAD, class t_TAIL_01,
173923 class t_TAIL_02,
173924 class t_TAIL_03,
173925 class t_TAIL_04,
173926 class t_TAIL_05>
173927template <size_t t_INDEX,
173928 class t_ARG_01,
173929 class t_ARG_02,
173930 class t_ARG_03,
173931 class t_ARG_04>
173932typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173933 t_TAIL_02,
173934 t_TAIL_03,
173935 t_TAIL_04,
173936 t_TAIL_05> >::type&
173937variant<t_HEAD, t_TAIL_01,
173938 t_TAIL_02,
173939 t_TAIL_03,
173940 t_TAIL_04,
173941 t_TAIL_05,
173942 BSLS_COMPILERFEATURES_FILLT(13)
173943 >::emplace(const t_ARG_01& arg_01,
173944 const t_ARG_02& arg_02,
173945 const t_ARG_03& arg_03,
173946 const t_ARG_04& arg_04)
173947{
173948 Variant_Base::template baseEmplace<t_INDEX>(
173949 arg_01, arg_02, arg_03, arg_04);
173950
173951 return bsl::get<t_INDEX>(*this);
173952}
173953#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
173954
173955#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
173956template <class t_HEAD, class t_TAIL_01,
173957 class t_TAIL_02,
173958 class t_TAIL_03,
173959 class t_TAIL_04,
173960 class t_TAIL_05,
173961 class t_TAIL_06>
173962template <size_t t_INDEX,
173963 class t_ARG_01,
173964 class t_ARG_02,
173965 class t_ARG_03,
173966 class t_ARG_04>
173967typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
173968 t_TAIL_02,
173969 t_TAIL_03,
173970 t_TAIL_04,
173971 t_TAIL_05,
173972 t_TAIL_06> >::type&
173973variant<t_HEAD, t_TAIL_01,
173974 t_TAIL_02,
173975 t_TAIL_03,
173976 t_TAIL_04,
173977 t_TAIL_05,
173978 t_TAIL_06,
173979 BSLS_COMPILERFEATURES_FILLT(12)
173980 >::emplace(const t_ARG_01& arg_01,
173981 const t_ARG_02& arg_02,
173982 const t_ARG_03& arg_03,
173983 const t_ARG_04& arg_04)
173984{
173985 Variant_Base::template baseEmplace<t_INDEX>(
173986 arg_01, arg_02, arg_03, arg_04);
173987
173988 return bsl::get<t_INDEX>(*this);
173989}
173990#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
173991
173992#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
173993template <class t_HEAD, class t_TAIL_01,
173994 class t_TAIL_02,
173995 class t_TAIL_03,
173996 class t_TAIL_04,
173997 class t_TAIL_05,
173998 class t_TAIL_06,
173999 class t_TAIL_07>
174000template <size_t t_INDEX,
174001 class t_ARG_01,
174002 class t_ARG_02,
174003 class t_ARG_03,
174004 class t_ARG_04>
174005typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174006 t_TAIL_02,
174007 t_TAIL_03,
174008 t_TAIL_04,
174009 t_TAIL_05,
174010 t_TAIL_06,
174011 t_TAIL_07> >::type&
174012variant<t_HEAD, t_TAIL_01,
174013 t_TAIL_02,
174014 t_TAIL_03,
174015 t_TAIL_04,
174016 t_TAIL_05,
174017 t_TAIL_06,
174018 t_TAIL_07,
174019 BSLS_COMPILERFEATURES_FILLT(11)
174020 >::emplace(const t_ARG_01& arg_01,
174021 const t_ARG_02& arg_02,
174022 const t_ARG_03& arg_03,
174023 const t_ARG_04& arg_04)
174024{
174025 Variant_Base::template baseEmplace<t_INDEX>(
174026 arg_01, arg_02, arg_03, arg_04);
174027
174028 return bsl::get<t_INDEX>(*this);
174029}
174030#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
174031
174032#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
174033template <class t_HEAD, class t_TAIL_01,
174034 class t_TAIL_02,
174035 class t_TAIL_03,
174036 class t_TAIL_04,
174037 class t_TAIL_05,
174038 class t_TAIL_06,
174039 class t_TAIL_07,
174040 class t_TAIL_08>
174041template <size_t t_INDEX,
174042 class t_ARG_01,
174043 class t_ARG_02,
174044 class t_ARG_03,
174045 class t_ARG_04>
174046typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174047 t_TAIL_02,
174048 t_TAIL_03,
174049 t_TAIL_04,
174050 t_TAIL_05,
174051 t_TAIL_06,
174052 t_TAIL_07,
174053 t_TAIL_08> >::type&
174054variant<t_HEAD, t_TAIL_01,
174055 t_TAIL_02,
174056 t_TAIL_03,
174057 t_TAIL_04,
174058 t_TAIL_05,
174059 t_TAIL_06,
174060 t_TAIL_07,
174061 t_TAIL_08,
174062 BSLS_COMPILERFEATURES_FILLT(10)
174063 >::emplace(const t_ARG_01& arg_01,
174064 const t_ARG_02& arg_02,
174065 const t_ARG_03& arg_03,
174066 const t_ARG_04& arg_04)
174067{
174068 Variant_Base::template baseEmplace<t_INDEX>(
174069 arg_01, arg_02, arg_03, arg_04);
174070
174071 return bsl::get<t_INDEX>(*this);
174072}
174073#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
174074
174075#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
174076template <class t_HEAD, class t_TAIL_01,
174077 class t_TAIL_02,
174078 class t_TAIL_03,
174079 class t_TAIL_04,
174080 class t_TAIL_05,
174081 class t_TAIL_06,
174082 class t_TAIL_07,
174083 class t_TAIL_08,
174084 class t_TAIL_09>
174085template <size_t t_INDEX,
174086 class t_ARG_01,
174087 class t_ARG_02,
174088 class t_ARG_03,
174089 class t_ARG_04>
174090typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174091 t_TAIL_02,
174092 t_TAIL_03,
174093 t_TAIL_04,
174094 t_TAIL_05,
174095 t_TAIL_06,
174096 t_TAIL_07,
174097 t_TAIL_08,
174098 t_TAIL_09> >::type&
174099variant<t_HEAD, t_TAIL_01,
174100 t_TAIL_02,
174101 t_TAIL_03,
174102 t_TAIL_04,
174103 t_TAIL_05,
174104 t_TAIL_06,
174105 t_TAIL_07,
174106 t_TAIL_08,
174107 t_TAIL_09,
174108 BSLS_COMPILERFEATURES_FILLT( 9)
174109 >::emplace(const t_ARG_01& arg_01,
174110 const t_ARG_02& arg_02,
174111 const t_ARG_03& arg_03,
174112 const t_ARG_04& arg_04)
174113{
174114 Variant_Base::template baseEmplace<t_INDEX>(
174115 arg_01, arg_02, arg_03, arg_04);
174116
174117 return bsl::get<t_INDEX>(*this);
174118}
174119#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
174120
174121#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
174122template <class t_HEAD, class t_TAIL_01,
174123 class t_TAIL_02,
174124 class t_TAIL_03,
174125 class t_TAIL_04,
174126 class t_TAIL_05,
174127 class t_TAIL_06,
174128 class t_TAIL_07,
174129 class t_TAIL_08,
174130 class t_TAIL_09,
174131 class t_TAIL_10>
174132template <size_t t_INDEX,
174133 class t_ARG_01,
174134 class t_ARG_02,
174135 class t_ARG_03,
174136 class t_ARG_04>
174137typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174138 t_TAIL_02,
174139 t_TAIL_03,
174140 t_TAIL_04,
174141 t_TAIL_05,
174142 t_TAIL_06,
174143 t_TAIL_07,
174144 t_TAIL_08,
174145 t_TAIL_09,
174146 t_TAIL_10> >::type&
174147variant<t_HEAD, t_TAIL_01,
174148 t_TAIL_02,
174149 t_TAIL_03,
174150 t_TAIL_04,
174151 t_TAIL_05,
174152 t_TAIL_06,
174153 t_TAIL_07,
174154 t_TAIL_08,
174155 t_TAIL_09,
174156 t_TAIL_10,
174157 BSLS_COMPILERFEATURES_FILLT( 8)
174158 >::emplace(const t_ARG_01& arg_01,
174159 const t_ARG_02& arg_02,
174160 const t_ARG_03& arg_03,
174161 const t_ARG_04& arg_04)
174162{
174163 Variant_Base::template baseEmplace<t_INDEX>(
174164 arg_01, arg_02, arg_03, arg_04);
174165
174166 return bsl::get<t_INDEX>(*this);
174167}
174168#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
174169
174170#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
174171template <class t_HEAD, class t_TAIL_01,
174172 class t_TAIL_02,
174173 class t_TAIL_03,
174174 class t_TAIL_04,
174175 class t_TAIL_05,
174176 class t_TAIL_06,
174177 class t_TAIL_07,
174178 class t_TAIL_08,
174179 class t_TAIL_09,
174180 class t_TAIL_10,
174181 class t_TAIL_11>
174182template <size_t t_INDEX,
174183 class t_ARG_01,
174184 class t_ARG_02,
174185 class t_ARG_03,
174186 class t_ARG_04>
174187typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174188 t_TAIL_02,
174189 t_TAIL_03,
174190 t_TAIL_04,
174191 t_TAIL_05,
174192 t_TAIL_06,
174193 t_TAIL_07,
174194 t_TAIL_08,
174195 t_TAIL_09,
174196 t_TAIL_10,
174197 t_TAIL_11> >::type&
174198variant<t_HEAD, t_TAIL_01,
174199 t_TAIL_02,
174200 t_TAIL_03,
174201 t_TAIL_04,
174202 t_TAIL_05,
174203 t_TAIL_06,
174204 t_TAIL_07,
174205 t_TAIL_08,
174206 t_TAIL_09,
174207 t_TAIL_10,
174208 t_TAIL_11,
174209 BSLS_COMPILERFEATURES_FILLT( 7)
174210 >::emplace(const t_ARG_01& arg_01,
174211 const t_ARG_02& arg_02,
174212 const t_ARG_03& arg_03,
174213 const t_ARG_04& arg_04)
174214{
174215 Variant_Base::template baseEmplace<t_INDEX>(
174216 arg_01, arg_02, arg_03, arg_04);
174217
174218 return bsl::get<t_INDEX>(*this);
174219}
174220#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
174221
174222#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
174223template <class t_HEAD, class t_TAIL_01,
174224 class t_TAIL_02,
174225 class t_TAIL_03,
174226 class t_TAIL_04,
174227 class t_TAIL_05,
174228 class t_TAIL_06,
174229 class t_TAIL_07,
174230 class t_TAIL_08,
174231 class t_TAIL_09,
174232 class t_TAIL_10,
174233 class t_TAIL_11,
174234 class t_TAIL_12>
174235template <size_t t_INDEX,
174236 class t_ARG_01,
174237 class t_ARG_02,
174238 class t_ARG_03,
174239 class t_ARG_04>
174240typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174241 t_TAIL_02,
174242 t_TAIL_03,
174243 t_TAIL_04,
174244 t_TAIL_05,
174245 t_TAIL_06,
174246 t_TAIL_07,
174247 t_TAIL_08,
174248 t_TAIL_09,
174249 t_TAIL_10,
174250 t_TAIL_11,
174251 t_TAIL_12> >::type&
174252variant<t_HEAD, t_TAIL_01,
174253 t_TAIL_02,
174254 t_TAIL_03,
174255 t_TAIL_04,
174256 t_TAIL_05,
174257 t_TAIL_06,
174258 t_TAIL_07,
174259 t_TAIL_08,
174260 t_TAIL_09,
174261 t_TAIL_10,
174262 t_TAIL_11,
174263 t_TAIL_12,
174264 BSLS_COMPILERFEATURES_FILLT( 6)
174265 >::emplace(const t_ARG_01& arg_01,
174266 const t_ARG_02& arg_02,
174267 const t_ARG_03& arg_03,
174268 const t_ARG_04& arg_04)
174269{
174270 Variant_Base::template baseEmplace<t_INDEX>(
174271 arg_01, arg_02, arg_03, arg_04);
174272
174273 return bsl::get<t_INDEX>(*this);
174274}
174275#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
174276
174277#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
174278template <class t_HEAD, class t_TAIL_01,
174279 class t_TAIL_02,
174280 class t_TAIL_03,
174281 class t_TAIL_04,
174282 class t_TAIL_05,
174283 class t_TAIL_06,
174284 class t_TAIL_07,
174285 class t_TAIL_08,
174286 class t_TAIL_09,
174287 class t_TAIL_10,
174288 class t_TAIL_11,
174289 class t_TAIL_12,
174290 class t_TAIL_13>
174291template <size_t t_INDEX,
174292 class t_ARG_01,
174293 class t_ARG_02,
174294 class t_ARG_03,
174295 class t_ARG_04>
174296typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174297 t_TAIL_02,
174298 t_TAIL_03,
174299 t_TAIL_04,
174300 t_TAIL_05,
174301 t_TAIL_06,
174302 t_TAIL_07,
174303 t_TAIL_08,
174304 t_TAIL_09,
174305 t_TAIL_10,
174306 t_TAIL_11,
174307 t_TAIL_12,
174308 t_TAIL_13> >::type&
174309variant<t_HEAD, t_TAIL_01,
174310 t_TAIL_02,
174311 t_TAIL_03,
174312 t_TAIL_04,
174313 t_TAIL_05,
174314 t_TAIL_06,
174315 t_TAIL_07,
174316 t_TAIL_08,
174317 t_TAIL_09,
174318 t_TAIL_10,
174319 t_TAIL_11,
174320 t_TAIL_12,
174321 t_TAIL_13,
174322 BSLS_COMPILERFEATURES_FILLT( 5)
174323 >::emplace(const t_ARG_01& arg_01,
174324 const t_ARG_02& arg_02,
174325 const t_ARG_03& arg_03,
174326 const t_ARG_04& arg_04)
174327{
174328 Variant_Base::template baseEmplace<t_INDEX>(
174329 arg_01, arg_02, arg_03, arg_04);
174330
174331 return bsl::get<t_INDEX>(*this);
174332}
174333#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
174334
174335#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
174336template <class t_HEAD, class t_TAIL_01,
174337 class t_TAIL_02,
174338 class t_TAIL_03,
174339 class t_TAIL_04,
174340 class t_TAIL_05,
174341 class t_TAIL_06,
174342 class t_TAIL_07,
174343 class t_TAIL_08,
174344 class t_TAIL_09,
174345 class t_TAIL_10,
174346 class t_TAIL_11,
174347 class t_TAIL_12,
174348 class t_TAIL_13,
174349 class t_TAIL_14>
174350template <size_t t_INDEX,
174351 class t_ARG_01,
174352 class t_ARG_02,
174353 class t_ARG_03,
174354 class t_ARG_04>
174355typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174356 t_TAIL_02,
174357 t_TAIL_03,
174358 t_TAIL_04,
174359 t_TAIL_05,
174360 t_TAIL_06,
174361 t_TAIL_07,
174362 t_TAIL_08,
174363 t_TAIL_09,
174364 t_TAIL_10,
174365 t_TAIL_11,
174366 t_TAIL_12,
174367 t_TAIL_13,
174368 t_TAIL_14> >::type&
174369variant<t_HEAD, t_TAIL_01,
174370 t_TAIL_02,
174371 t_TAIL_03,
174372 t_TAIL_04,
174373 t_TAIL_05,
174374 t_TAIL_06,
174375 t_TAIL_07,
174376 t_TAIL_08,
174377 t_TAIL_09,
174378 t_TAIL_10,
174379 t_TAIL_11,
174380 t_TAIL_12,
174381 t_TAIL_13,
174382 t_TAIL_14,
174383 BSLS_COMPILERFEATURES_FILLT( 4)
174384 >::emplace(const t_ARG_01& arg_01,
174385 const t_ARG_02& arg_02,
174386 const t_ARG_03& arg_03,
174387 const t_ARG_04& arg_04)
174388{
174389 Variant_Base::template baseEmplace<t_INDEX>(
174390 arg_01, arg_02, arg_03, arg_04);
174391
174392 return bsl::get<t_INDEX>(*this);
174393}
174394#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
174395
174396#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
174397template <class t_HEAD, class t_TAIL_01,
174398 class t_TAIL_02,
174399 class t_TAIL_03,
174400 class t_TAIL_04,
174401 class t_TAIL_05,
174402 class t_TAIL_06,
174403 class t_TAIL_07,
174404 class t_TAIL_08,
174405 class t_TAIL_09,
174406 class t_TAIL_10,
174407 class t_TAIL_11,
174408 class t_TAIL_12,
174409 class t_TAIL_13,
174410 class t_TAIL_14,
174411 class t_TAIL_15>
174412template <size_t t_INDEX,
174413 class t_ARG_01,
174414 class t_ARG_02,
174415 class t_ARG_03,
174416 class t_ARG_04>
174417typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174418 t_TAIL_02,
174419 t_TAIL_03,
174420 t_TAIL_04,
174421 t_TAIL_05,
174422 t_TAIL_06,
174423 t_TAIL_07,
174424 t_TAIL_08,
174425 t_TAIL_09,
174426 t_TAIL_10,
174427 t_TAIL_11,
174428 t_TAIL_12,
174429 t_TAIL_13,
174430 t_TAIL_14,
174431 t_TAIL_15> >::type&
174432variant<t_HEAD, t_TAIL_01,
174433 t_TAIL_02,
174434 t_TAIL_03,
174435 t_TAIL_04,
174436 t_TAIL_05,
174437 t_TAIL_06,
174438 t_TAIL_07,
174439 t_TAIL_08,
174440 t_TAIL_09,
174441 t_TAIL_10,
174442 t_TAIL_11,
174443 t_TAIL_12,
174444 t_TAIL_13,
174445 t_TAIL_14,
174446 t_TAIL_15,
174447 BSLS_COMPILERFEATURES_FILLT( 3)
174448 >::emplace(const t_ARG_01& arg_01,
174449 const t_ARG_02& arg_02,
174450 const t_ARG_03& arg_03,
174451 const t_ARG_04& arg_04)
174452{
174453 Variant_Base::template baseEmplace<t_INDEX>(
174454 arg_01, arg_02, arg_03, arg_04);
174455
174456 return bsl::get<t_INDEX>(*this);
174457}
174458#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
174459
174460#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
174461template <class t_HEAD, class t_TAIL_01,
174462 class t_TAIL_02,
174463 class t_TAIL_03,
174464 class t_TAIL_04,
174465 class t_TAIL_05,
174466 class t_TAIL_06,
174467 class t_TAIL_07,
174468 class t_TAIL_08,
174469 class t_TAIL_09,
174470 class t_TAIL_10,
174471 class t_TAIL_11,
174472 class t_TAIL_12,
174473 class t_TAIL_13,
174474 class t_TAIL_14,
174475 class t_TAIL_15,
174476 class t_TAIL_16>
174477template <size_t t_INDEX,
174478 class t_ARG_01,
174479 class t_ARG_02,
174480 class t_ARG_03,
174481 class t_ARG_04>
174482typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174483 t_TAIL_02,
174484 t_TAIL_03,
174485 t_TAIL_04,
174486 t_TAIL_05,
174487 t_TAIL_06,
174488 t_TAIL_07,
174489 t_TAIL_08,
174490 t_TAIL_09,
174491 t_TAIL_10,
174492 t_TAIL_11,
174493 t_TAIL_12,
174494 t_TAIL_13,
174495 t_TAIL_14,
174496 t_TAIL_15,
174497 t_TAIL_16> >::type&
174498variant<t_HEAD, t_TAIL_01,
174499 t_TAIL_02,
174500 t_TAIL_03,
174501 t_TAIL_04,
174502 t_TAIL_05,
174503 t_TAIL_06,
174504 t_TAIL_07,
174505 t_TAIL_08,
174506 t_TAIL_09,
174507 t_TAIL_10,
174508 t_TAIL_11,
174509 t_TAIL_12,
174510 t_TAIL_13,
174511 t_TAIL_14,
174512 t_TAIL_15,
174513 t_TAIL_16,
174514 BSLS_COMPILERFEATURES_FILLT( 2)
174515 >::emplace(const t_ARG_01& arg_01,
174516 const t_ARG_02& arg_02,
174517 const t_ARG_03& arg_03,
174518 const t_ARG_04& arg_04)
174519{
174520 Variant_Base::template baseEmplace<t_INDEX>(
174521 arg_01, arg_02, arg_03, arg_04);
174522
174523 return bsl::get<t_INDEX>(*this);
174524}
174525#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
174526
174527#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
174528template <class t_HEAD, class t_TAIL_01,
174529 class t_TAIL_02,
174530 class t_TAIL_03,
174531 class t_TAIL_04,
174532 class t_TAIL_05,
174533 class t_TAIL_06,
174534 class t_TAIL_07,
174535 class t_TAIL_08,
174536 class t_TAIL_09,
174537 class t_TAIL_10,
174538 class t_TAIL_11,
174539 class t_TAIL_12,
174540 class t_TAIL_13,
174541 class t_TAIL_14,
174542 class t_TAIL_15,
174543 class t_TAIL_16,
174544 class t_TAIL_17>
174545template <size_t t_INDEX,
174546 class t_ARG_01,
174547 class t_ARG_02,
174548 class t_ARG_03,
174549 class t_ARG_04>
174550typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174551 t_TAIL_02,
174552 t_TAIL_03,
174553 t_TAIL_04,
174554 t_TAIL_05,
174555 t_TAIL_06,
174556 t_TAIL_07,
174557 t_TAIL_08,
174558 t_TAIL_09,
174559 t_TAIL_10,
174560 t_TAIL_11,
174561 t_TAIL_12,
174562 t_TAIL_13,
174563 t_TAIL_14,
174564 t_TAIL_15,
174565 t_TAIL_16,
174566 t_TAIL_17> >::type&
174567variant<t_HEAD, t_TAIL_01,
174568 t_TAIL_02,
174569 t_TAIL_03,
174570 t_TAIL_04,
174571 t_TAIL_05,
174572 t_TAIL_06,
174573 t_TAIL_07,
174574 t_TAIL_08,
174575 t_TAIL_09,
174576 t_TAIL_10,
174577 t_TAIL_11,
174578 t_TAIL_12,
174579 t_TAIL_13,
174580 t_TAIL_14,
174581 t_TAIL_15,
174582 t_TAIL_16,
174583 t_TAIL_17,
174584 BSLS_COMPILERFEATURES_FILLT( 1)
174585 >::emplace(const t_ARG_01& arg_01,
174586 const t_ARG_02& arg_02,
174587 const t_ARG_03& arg_03,
174588 const t_ARG_04& arg_04)
174589{
174590 Variant_Base::template baseEmplace<t_INDEX>(
174591 arg_01, arg_02, arg_03, arg_04);
174592
174593 return bsl::get<t_INDEX>(*this);
174594}
174595#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
174596
174597#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
174598template <class t_HEAD, class t_TAIL_01,
174599 class t_TAIL_02,
174600 class t_TAIL_03,
174601 class t_TAIL_04,
174602 class t_TAIL_05,
174603 class t_TAIL_06,
174604 class t_TAIL_07,
174605 class t_TAIL_08,
174606 class t_TAIL_09,
174607 class t_TAIL_10,
174608 class t_TAIL_11,
174609 class t_TAIL_12,
174610 class t_TAIL_13,
174611 class t_TAIL_14,
174612 class t_TAIL_15,
174613 class t_TAIL_16,
174614 class t_TAIL_17,
174615 class t_TAIL_18>
174616template <size_t t_INDEX,
174617 class t_ARG_01,
174618 class t_ARG_02,
174619 class t_ARG_03,
174620 class t_ARG_04>
174621typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174622 t_TAIL_02,
174623 t_TAIL_03,
174624 t_TAIL_04,
174625 t_TAIL_05,
174626 t_TAIL_06,
174627 t_TAIL_07,
174628 t_TAIL_08,
174629 t_TAIL_09,
174630 t_TAIL_10,
174631 t_TAIL_11,
174632 t_TAIL_12,
174633 t_TAIL_13,
174634 t_TAIL_14,
174635 t_TAIL_15,
174636 t_TAIL_16,
174637 t_TAIL_17,
174638 t_TAIL_18> >::type&
174639variant<t_HEAD, t_TAIL_01,
174640 t_TAIL_02,
174641 t_TAIL_03,
174642 t_TAIL_04,
174643 t_TAIL_05,
174644 t_TAIL_06,
174645 t_TAIL_07,
174646 t_TAIL_08,
174647 t_TAIL_09,
174648 t_TAIL_10,
174649 t_TAIL_11,
174650 t_TAIL_12,
174651 t_TAIL_13,
174652 t_TAIL_14,
174653 t_TAIL_15,
174654 t_TAIL_16,
174655 t_TAIL_17,
174656 t_TAIL_18,
174657 BSLS_COMPILERFEATURES_FILLT( 0)
174658 >::emplace(const t_ARG_01& arg_01,
174659 const t_ARG_02& arg_02,
174660 const t_ARG_03& arg_03,
174661 const t_ARG_04& arg_04)
174662{
174663 Variant_Base::template baseEmplace<t_INDEX>(
174664 arg_01, arg_02, arg_03, arg_04);
174665
174666 return bsl::get<t_INDEX>(*this);
174667}
174668#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
174669
174670
174671#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
174672template <class t_HEAD>
174673template <size_t t_INDEX,
174674 class t_ARG_01,
174675 class t_ARG_02,
174676 class t_ARG_03,
174677 class t_ARG_04,
174678 class t_ARG_05>
174679typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
174680variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
174681 >::emplace(const t_ARG_01& arg_01,
174682 const t_ARG_02& arg_02,
174683 const t_ARG_03& arg_03,
174684 const t_ARG_04& arg_04,
174685 const t_ARG_05& arg_05)
174686{
174687 Variant_Base::template baseEmplace<t_INDEX>(
174688 arg_01, arg_02, arg_03, arg_04, arg_05);
174689
174690 return bsl::get<t_INDEX>(*this);
174691}
174692#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
174693
174694#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
174695template <class t_HEAD, class t_TAIL_01>
174696template <size_t t_INDEX,
174697 class t_ARG_01,
174698 class t_ARG_02,
174699 class t_ARG_03,
174700 class t_ARG_04,
174701 class t_ARG_05>
174702typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
174703variant<t_HEAD, t_TAIL_01,
174704 BSLS_COMPILERFEATURES_FILLT(17)
174705 >::emplace(const t_ARG_01& arg_01,
174706 const t_ARG_02& arg_02,
174707 const t_ARG_03& arg_03,
174708 const t_ARG_04& arg_04,
174709 const t_ARG_05& arg_05)
174710{
174711 Variant_Base::template baseEmplace<t_INDEX>(
174712 arg_01, arg_02, arg_03, arg_04, arg_05);
174713
174714 return bsl::get<t_INDEX>(*this);
174715}
174716#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
174717
174718#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
174719template <class t_HEAD, class t_TAIL_01,
174720 class t_TAIL_02>
174721template <size_t t_INDEX,
174722 class t_ARG_01,
174723 class t_ARG_02,
174724 class t_ARG_03,
174725 class t_ARG_04,
174726 class t_ARG_05>
174727typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174728 t_TAIL_02> >::type&
174729variant<t_HEAD, t_TAIL_01,
174730 t_TAIL_02,
174731 BSLS_COMPILERFEATURES_FILLT(16)
174732 >::emplace(const t_ARG_01& arg_01,
174733 const t_ARG_02& arg_02,
174734 const t_ARG_03& arg_03,
174735 const t_ARG_04& arg_04,
174736 const t_ARG_05& arg_05)
174737{
174738 Variant_Base::template baseEmplace<t_INDEX>(
174739 arg_01, arg_02, arg_03, arg_04, arg_05);
174740
174741 return bsl::get<t_INDEX>(*this);
174742}
174743#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
174744
174745#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
174746template <class t_HEAD, class t_TAIL_01,
174747 class t_TAIL_02,
174748 class t_TAIL_03>
174749template <size_t t_INDEX,
174750 class t_ARG_01,
174751 class t_ARG_02,
174752 class t_ARG_03,
174753 class t_ARG_04,
174754 class t_ARG_05>
174755typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174756 t_TAIL_02,
174757 t_TAIL_03> >::type&
174758variant<t_HEAD, t_TAIL_01,
174759 t_TAIL_02,
174760 t_TAIL_03,
174761 BSLS_COMPILERFEATURES_FILLT(15)
174762 >::emplace(const t_ARG_01& arg_01,
174763 const t_ARG_02& arg_02,
174764 const t_ARG_03& arg_03,
174765 const t_ARG_04& arg_04,
174766 const t_ARG_05& arg_05)
174767{
174768 Variant_Base::template baseEmplace<t_INDEX>(
174769 arg_01, arg_02, arg_03, arg_04, arg_05);
174770
174771 return bsl::get<t_INDEX>(*this);
174772}
174773#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
174774
174775#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
174776template <class t_HEAD, class t_TAIL_01,
174777 class t_TAIL_02,
174778 class t_TAIL_03,
174779 class t_TAIL_04>
174780template <size_t t_INDEX,
174781 class t_ARG_01,
174782 class t_ARG_02,
174783 class t_ARG_03,
174784 class t_ARG_04,
174785 class t_ARG_05>
174786typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174787 t_TAIL_02,
174788 t_TAIL_03,
174789 t_TAIL_04> >::type&
174790variant<t_HEAD, t_TAIL_01,
174791 t_TAIL_02,
174792 t_TAIL_03,
174793 t_TAIL_04,
174794 BSLS_COMPILERFEATURES_FILLT(14)
174795 >::emplace(const t_ARG_01& arg_01,
174796 const t_ARG_02& arg_02,
174797 const t_ARG_03& arg_03,
174798 const t_ARG_04& arg_04,
174799 const t_ARG_05& arg_05)
174800{
174801 Variant_Base::template baseEmplace<t_INDEX>(
174802 arg_01, arg_02, arg_03, arg_04, arg_05);
174803
174804 return bsl::get<t_INDEX>(*this);
174805}
174806#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
174807
174808#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
174809template <class t_HEAD, class t_TAIL_01,
174810 class t_TAIL_02,
174811 class t_TAIL_03,
174812 class t_TAIL_04,
174813 class t_TAIL_05>
174814template <size_t t_INDEX,
174815 class t_ARG_01,
174816 class t_ARG_02,
174817 class t_ARG_03,
174818 class t_ARG_04,
174819 class t_ARG_05>
174820typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174821 t_TAIL_02,
174822 t_TAIL_03,
174823 t_TAIL_04,
174824 t_TAIL_05> >::type&
174825variant<t_HEAD, t_TAIL_01,
174826 t_TAIL_02,
174827 t_TAIL_03,
174828 t_TAIL_04,
174829 t_TAIL_05,
174830 BSLS_COMPILERFEATURES_FILLT(13)
174831 >::emplace(const t_ARG_01& arg_01,
174832 const t_ARG_02& arg_02,
174833 const t_ARG_03& arg_03,
174834 const t_ARG_04& arg_04,
174835 const t_ARG_05& arg_05)
174836{
174837 Variant_Base::template baseEmplace<t_INDEX>(
174838 arg_01, arg_02, arg_03, arg_04, arg_05);
174839
174840 return bsl::get<t_INDEX>(*this);
174841}
174842#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
174843
174844#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
174845template <class t_HEAD, class t_TAIL_01,
174846 class t_TAIL_02,
174847 class t_TAIL_03,
174848 class t_TAIL_04,
174849 class t_TAIL_05,
174850 class t_TAIL_06>
174851template <size_t t_INDEX,
174852 class t_ARG_01,
174853 class t_ARG_02,
174854 class t_ARG_03,
174855 class t_ARG_04,
174856 class t_ARG_05>
174857typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174858 t_TAIL_02,
174859 t_TAIL_03,
174860 t_TAIL_04,
174861 t_TAIL_05,
174862 t_TAIL_06> >::type&
174863variant<t_HEAD, t_TAIL_01,
174864 t_TAIL_02,
174865 t_TAIL_03,
174866 t_TAIL_04,
174867 t_TAIL_05,
174868 t_TAIL_06,
174869 BSLS_COMPILERFEATURES_FILLT(12)
174870 >::emplace(const t_ARG_01& arg_01,
174871 const t_ARG_02& arg_02,
174872 const t_ARG_03& arg_03,
174873 const t_ARG_04& arg_04,
174874 const t_ARG_05& arg_05)
174875{
174876 Variant_Base::template baseEmplace<t_INDEX>(
174877 arg_01, arg_02, arg_03, arg_04, arg_05);
174878
174879 return bsl::get<t_INDEX>(*this);
174880}
174881#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
174882
174883#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
174884template <class t_HEAD, class t_TAIL_01,
174885 class t_TAIL_02,
174886 class t_TAIL_03,
174887 class t_TAIL_04,
174888 class t_TAIL_05,
174889 class t_TAIL_06,
174890 class t_TAIL_07>
174891template <size_t t_INDEX,
174892 class t_ARG_01,
174893 class t_ARG_02,
174894 class t_ARG_03,
174895 class t_ARG_04,
174896 class t_ARG_05>
174897typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174898 t_TAIL_02,
174899 t_TAIL_03,
174900 t_TAIL_04,
174901 t_TAIL_05,
174902 t_TAIL_06,
174903 t_TAIL_07> >::type&
174904variant<t_HEAD, t_TAIL_01,
174905 t_TAIL_02,
174906 t_TAIL_03,
174907 t_TAIL_04,
174908 t_TAIL_05,
174909 t_TAIL_06,
174910 t_TAIL_07,
174911 BSLS_COMPILERFEATURES_FILLT(11)
174912 >::emplace(const t_ARG_01& arg_01,
174913 const t_ARG_02& arg_02,
174914 const t_ARG_03& arg_03,
174915 const t_ARG_04& arg_04,
174916 const t_ARG_05& arg_05)
174917{
174918 Variant_Base::template baseEmplace<t_INDEX>(
174919 arg_01, arg_02, arg_03, arg_04, arg_05);
174920
174921 return bsl::get<t_INDEX>(*this);
174922}
174923#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
174924
174925#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
174926template <class t_HEAD, class t_TAIL_01,
174927 class t_TAIL_02,
174928 class t_TAIL_03,
174929 class t_TAIL_04,
174930 class t_TAIL_05,
174931 class t_TAIL_06,
174932 class t_TAIL_07,
174933 class t_TAIL_08>
174934template <size_t t_INDEX,
174935 class t_ARG_01,
174936 class t_ARG_02,
174937 class t_ARG_03,
174938 class t_ARG_04,
174939 class t_ARG_05>
174940typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174941 t_TAIL_02,
174942 t_TAIL_03,
174943 t_TAIL_04,
174944 t_TAIL_05,
174945 t_TAIL_06,
174946 t_TAIL_07,
174947 t_TAIL_08> >::type&
174948variant<t_HEAD, t_TAIL_01,
174949 t_TAIL_02,
174950 t_TAIL_03,
174951 t_TAIL_04,
174952 t_TAIL_05,
174953 t_TAIL_06,
174954 t_TAIL_07,
174955 t_TAIL_08,
174956 BSLS_COMPILERFEATURES_FILLT(10)
174957 >::emplace(const t_ARG_01& arg_01,
174958 const t_ARG_02& arg_02,
174959 const t_ARG_03& arg_03,
174960 const t_ARG_04& arg_04,
174961 const t_ARG_05& arg_05)
174962{
174963 Variant_Base::template baseEmplace<t_INDEX>(
174964 arg_01, arg_02, arg_03, arg_04, arg_05);
174965
174966 return bsl::get<t_INDEX>(*this);
174967}
174968#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
174969
174970#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
174971template <class t_HEAD, class t_TAIL_01,
174972 class t_TAIL_02,
174973 class t_TAIL_03,
174974 class t_TAIL_04,
174975 class t_TAIL_05,
174976 class t_TAIL_06,
174977 class t_TAIL_07,
174978 class t_TAIL_08,
174979 class t_TAIL_09>
174980template <size_t t_INDEX,
174981 class t_ARG_01,
174982 class t_ARG_02,
174983 class t_ARG_03,
174984 class t_ARG_04,
174985 class t_ARG_05>
174986typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
174987 t_TAIL_02,
174988 t_TAIL_03,
174989 t_TAIL_04,
174990 t_TAIL_05,
174991 t_TAIL_06,
174992 t_TAIL_07,
174993 t_TAIL_08,
174994 t_TAIL_09> >::type&
174995variant<t_HEAD, t_TAIL_01,
174996 t_TAIL_02,
174997 t_TAIL_03,
174998 t_TAIL_04,
174999 t_TAIL_05,
175000 t_TAIL_06,
175001 t_TAIL_07,
175002 t_TAIL_08,
175003 t_TAIL_09,
175004 BSLS_COMPILERFEATURES_FILLT( 9)
175005 >::emplace(const t_ARG_01& arg_01,
175006 const t_ARG_02& arg_02,
175007 const t_ARG_03& arg_03,
175008 const t_ARG_04& arg_04,
175009 const t_ARG_05& arg_05)
175010{
175011 Variant_Base::template baseEmplace<t_INDEX>(
175012 arg_01, arg_02, arg_03, arg_04, arg_05);
175013
175014 return bsl::get<t_INDEX>(*this);
175015}
175016#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
175017
175018#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
175019template <class t_HEAD, class t_TAIL_01,
175020 class t_TAIL_02,
175021 class t_TAIL_03,
175022 class t_TAIL_04,
175023 class t_TAIL_05,
175024 class t_TAIL_06,
175025 class t_TAIL_07,
175026 class t_TAIL_08,
175027 class t_TAIL_09,
175028 class t_TAIL_10>
175029template <size_t t_INDEX,
175030 class t_ARG_01,
175031 class t_ARG_02,
175032 class t_ARG_03,
175033 class t_ARG_04,
175034 class t_ARG_05>
175035typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175036 t_TAIL_02,
175037 t_TAIL_03,
175038 t_TAIL_04,
175039 t_TAIL_05,
175040 t_TAIL_06,
175041 t_TAIL_07,
175042 t_TAIL_08,
175043 t_TAIL_09,
175044 t_TAIL_10> >::type&
175045variant<t_HEAD, t_TAIL_01,
175046 t_TAIL_02,
175047 t_TAIL_03,
175048 t_TAIL_04,
175049 t_TAIL_05,
175050 t_TAIL_06,
175051 t_TAIL_07,
175052 t_TAIL_08,
175053 t_TAIL_09,
175054 t_TAIL_10,
175055 BSLS_COMPILERFEATURES_FILLT( 8)
175056 >::emplace(const t_ARG_01& arg_01,
175057 const t_ARG_02& arg_02,
175058 const t_ARG_03& arg_03,
175059 const t_ARG_04& arg_04,
175060 const t_ARG_05& arg_05)
175061{
175062 Variant_Base::template baseEmplace<t_INDEX>(
175063 arg_01, arg_02, arg_03, arg_04, arg_05);
175064
175065 return bsl::get<t_INDEX>(*this);
175066}
175067#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
175068
175069#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
175070template <class t_HEAD, class t_TAIL_01,
175071 class t_TAIL_02,
175072 class t_TAIL_03,
175073 class t_TAIL_04,
175074 class t_TAIL_05,
175075 class t_TAIL_06,
175076 class t_TAIL_07,
175077 class t_TAIL_08,
175078 class t_TAIL_09,
175079 class t_TAIL_10,
175080 class t_TAIL_11>
175081template <size_t t_INDEX,
175082 class t_ARG_01,
175083 class t_ARG_02,
175084 class t_ARG_03,
175085 class t_ARG_04,
175086 class t_ARG_05>
175087typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175088 t_TAIL_02,
175089 t_TAIL_03,
175090 t_TAIL_04,
175091 t_TAIL_05,
175092 t_TAIL_06,
175093 t_TAIL_07,
175094 t_TAIL_08,
175095 t_TAIL_09,
175096 t_TAIL_10,
175097 t_TAIL_11> >::type&
175098variant<t_HEAD, t_TAIL_01,
175099 t_TAIL_02,
175100 t_TAIL_03,
175101 t_TAIL_04,
175102 t_TAIL_05,
175103 t_TAIL_06,
175104 t_TAIL_07,
175105 t_TAIL_08,
175106 t_TAIL_09,
175107 t_TAIL_10,
175108 t_TAIL_11,
175109 BSLS_COMPILERFEATURES_FILLT( 7)
175110 >::emplace(const t_ARG_01& arg_01,
175111 const t_ARG_02& arg_02,
175112 const t_ARG_03& arg_03,
175113 const t_ARG_04& arg_04,
175114 const t_ARG_05& arg_05)
175115{
175116 Variant_Base::template baseEmplace<t_INDEX>(
175117 arg_01, arg_02, arg_03, arg_04, arg_05);
175118
175119 return bsl::get<t_INDEX>(*this);
175120}
175121#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
175122
175123#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
175124template <class t_HEAD, class t_TAIL_01,
175125 class t_TAIL_02,
175126 class t_TAIL_03,
175127 class t_TAIL_04,
175128 class t_TAIL_05,
175129 class t_TAIL_06,
175130 class t_TAIL_07,
175131 class t_TAIL_08,
175132 class t_TAIL_09,
175133 class t_TAIL_10,
175134 class t_TAIL_11,
175135 class t_TAIL_12>
175136template <size_t t_INDEX,
175137 class t_ARG_01,
175138 class t_ARG_02,
175139 class t_ARG_03,
175140 class t_ARG_04,
175141 class t_ARG_05>
175142typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175143 t_TAIL_02,
175144 t_TAIL_03,
175145 t_TAIL_04,
175146 t_TAIL_05,
175147 t_TAIL_06,
175148 t_TAIL_07,
175149 t_TAIL_08,
175150 t_TAIL_09,
175151 t_TAIL_10,
175152 t_TAIL_11,
175153 t_TAIL_12> >::type&
175154variant<t_HEAD, t_TAIL_01,
175155 t_TAIL_02,
175156 t_TAIL_03,
175157 t_TAIL_04,
175158 t_TAIL_05,
175159 t_TAIL_06,
175160 t_TAIL_07,
175161 t_TAIL_08,
175162 t_TAIL_09,
175163 t_TAIL_10,
175164 t_TAIL_11,
175165 t_TAIL_12,
175166 BSLS_COMPILERFEATURES_FILLT( 6)
175167 >::emplace(const t_ARG_01& arg_01,
175168 const t_ARG_02& arg_02,
175169 const t_ARG_03& arg_03,
175170 const t_ARG_04& arg_04,
175171 const t_ARG_05& arg_05)
175172{
175173 Variant_Base::template baseEmplace<t_INDEX>(
175174 arg_01, arg_02, arg_03, arg_04, arg_05);
175175
175176 return bsl::get<t_INDEX>(*this);
175177}
175178#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
175179
175180#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
175181template <class t_HEAD, class t_TAIL_01,
175182 class t_TAIL_02,
175183 class t_TAIL_03,
175184 class t_TAIL_04,
175185 class t_TAIL_05,
175186 class t_TAIL_06,
175187 class t_TAIL_07,
175188 class t_TAIL_08,
175189 class t_TAIL_09,
175190 class t_TAIL_10,
175191 class t_TAIL_11,
175192 class t_TAIL_12,
175193 class t_TAIL_13>
175194template <size_t t_INDEX,
175195 class t_ARG_01,
175196 class t_ARG_02,
175197 class t_ARG_03,
175198 class t_ARG_04,
175199 class t_ARG_05>
175200typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175201 t_TAIL_02,
175202 t_TAIL_03,
175203 t_TAIL_04,
175204 t_TAIL_05,
175205 t_TAIL_06,
175206 t_TAIL_07,
175207 t_TAIL_08,
175208 t_TAIL_09,
175209 t_TAIL_10,
175210 t_TAIL_11,
175211 t_TAIL_12,
175212 t_TAIL_13> >::type&
175213variant<t_HEAD, t_TAIL_01,
175214 t_TAIL_02,
175215 t_TAIL_03,
175216 t_TAIL_04,
175217 t_TAIL_05,
175218 t_TAIL_06,
175219 t_TAIL_07,
175220 t_TAIL_08,
175221 t_TAIL_09,
175222 t_TAIL_10,
175223 t_TAIL_11,
175224 t_TAIL_12,
175225 t_TAIL_13,
175226 BSLS_COMPILERFEATURES_FILLT( 5)
175227 >::emplace(const t_ARG_01& arg_01,
175228 const t_ARG_02& arg_02,
175229 const t_ARG_03& arg_03,
175230 const t_ARG_04& arg_04,
175231 const t_ARG_05& arg_05)
175232{
175233 Variant_Base::template baseEmplace<t_INDEX>(
175234 arg_01, arg_02, arg_03, arg_04, arg_05);
175235
175236 return bsl::get<t_INDEX>(*this);
175237}
175238#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
175239
175240#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
175241template <class t_HEAD, class t_TAIL_01,
175242 class t_TAIL_02,
175243 class t_TAIL_03,
175244 class t_TAIL_04,
175245 class t_TAIL_05,
175246 class t_TAIL_06,
175247 class t_TAIL_07,
175248 class t_TAIL_08,
175249 class t_TAIL_09,
175250 class t_TAIL_10,
175251 class t_TAIL_11,
175252 class t_TAIL_12,
175253 class t_TAIL_13,
175254 class t_TAIL_14>
175255template <size_t t_INDEX,
175256 class t_ARG_01,
175257 class t_ARG_02,
175258 class t_ARG_03,
175259 class t_ARG_04,
175260 class t_ARG_05>
175261typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175262 t_TAIL_02,
175263 t_TAIL_03,
175264 t_TAIL_04,
175265 t_TAIL_05,
175266 t_TAIL_06,
175267 t_TAIL_07,
175268 t_TAIL_08,
175269 t_TAIL_09,
175270 t_TAIL_10,
175271 t_TAIL_11,
175272 t_TAIL_12,
175273 t_TAIL_13,
175274 t_TAIL_14> >::type&
175275variant<t_HEAD, t_TAIL_01,
175276 t_TAIL_02,
175277 t_TAIL_03,
175278 t_TAIL_04,
175279 t_TAIL_05,
175280 t_TAIL_06,
175281 t_TAIL_07,
175282 t_TAIL_08,
175283 t_TAIL_09,
175284 t_TAIL_10,
175285 t_TAIL_11,
175286 t_TAIL_12,
175287 t_TAIL_13,
175288 t_TAIL_14,
175289 BSLS_COMPILERFEATURES_FILLT( 4)
175290 >::emplace(const t_ARG_01& arg_01,
175291 const t_ARG_02& arg_02,
175292 const t_ARG_03& arg_03,
175293 const t_ARG_04& arg_04,
175294 const t_ARG_05& arg_05)
175295{
175296 Variant_Base::template baseEmplace<t_INDEX>(
175297 arg_01, arg_02, arg_03, arg_04, arg_05);
175298
175299 return bsl::get<t_INDEX>(*this);
175300}
175301#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
175302
175303#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
175304template <class t_HEAD, class t_TAIL_01,
175305 class t_TAIL_02,
175306 class t_TAIL_03,
175307 class t_TAIL_04,
175308 class t_TAIL_05,
175309 class t_TAIL_06,
175310 class t_TAIL_07,
175311 class t_TAIL_08,
175312 class t_TAIL_09,
175313 class t_TAIL_10,
175314 class t_TAIL_11,
175315 class t_TAIL_12,
175316 class t_TAIL_13,
175317 class t_TAIL_14,
175318 class t_TAIL_15>
175319template <size_t t_INDEX,
175320 class t_ARG_01,
175321 class t_ARG_02,
175322 class t_ARG_03,
175323 class t_ARG_04,
175324 class t_ARG_05>
175325typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175326 t_TAIL_02,
175327 t_TAIL_03,
175328 t_TAIL_04,
175329 t_TAIL_05,
175330 t_TAIL_06,
175331 t_TAIL_07,
175332 t_TAIL_08,
175333 t_TAIL_09,
175334 t_TAIL_10,
175335 t_TAIL_11,
175336 t_TAIL_12,
175337 t_TAIL_13,
175338 t_TAIL_14,
175339 t_TAIL_15> >::type&
175340variant<t_HEAD, t_TAIL_01,
175341 t_TAIL_02,
175342 t_TAIL_03,
175343 t_TAIL_04,
175344 t_TAIL_05,
175345 t_TAIL_06,
175346 t_TAIL_07,
175347 t_TAIL_08,
175348 t_TAIL_09,
175349 t_TAIL_10,
175350 t_TAIL_11,
175351 t_TAIL_12,
175352 t_TAIL_13,
175353 t_TAIL_14,
175354 t_TAIL_15,
175355 BSLS_COMPILERFEATURES_FILLT( 3)
175356 >::emplace(const t_ARG_01& arg_01,
175357 const t_ARG_02& arg_02,
175358 const t_ARG_03& arg_03,
175359 const t_ARG_04& arg_04,
175360 const t_ARG_05& arg_05)
175361{
175362 Variant_Base::template baseEmplace<t_INDEX>(
175363 arg_01, arg_02, arg_03, arg_04, arg_05);
175364
175365 return bsl::get<t_INDEX>(*this);
175366}
175367#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
175368
175369#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
175370template <class t_HEAD, class t_TAIL_01,
175371 class t_TAIL_02,
175372 class t_TAIL_03,
175373 class t_TAIL_04,
175374 class t_TAIL_05,
175375 class t_TAIL_06,
175376 class t_TAIL_07,
175377 class t_TAIL_08,
175378 class t_TAIL_09,
175379 class t_TAIL_10,
175380 class t_TAIL_11,
175381 class t_TAIL_12,
175382 class t_TAIL_13,
175383 class t_TAIL_14,
175384 class t_TAIL_15,
175385 class t_TAIL_16>
175386template <size_t t_INDEX,
175387 class t_ARG_01,
175388 class t_ARG_02,
175389 class t_ARG_03,
175390 class t_ARG_04,
175391 class t_ARG_05>
175392typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175393 t_TAIL_02,
175394 t_TAIL_03,
175395 t_TAIL_04,
175396 t_TAIL_05,
175397 t_TAIL_06,
175398 t_TAIL_07,
175399 t_TAIL_08,
175400 t_TAIL_09,
175401 t_TAIL_10,
175402 t_TAIL_11,
175403 t_TAIL_12,
175404 t_TAIL_13,
175405 t_TAIL_14,
175406 t_TAIL_15,
175407 t_TAIL_16> >::type&
175408variant<t_HEAD, t_TAIL_01,
175409 t_TAIL_02,
175410 t_TAIL_03,
175411 t_TAIL_04,
175412 t_TAIL_05,
175413 t_TAIL_06,
175414 t_TAIL_07,
175415 t_TAIL_08,
175416 t_TAIL_09,
175417 t_TAIL_10,
175418 t_TAIL_11,
175419 t_TAIL_12,
175420 t_TAIL_13,
175421 t_TAIL_14,
175422 t_TAIL_15,
175423 t_TAIL_16,
175424 BSLS_COMPILERFEATURES_FILLT( 2)
175425 >::emplace(const t_ARG_01& arg_01,
175426 const t_ARG_02& arg_02,
175427 const t_ARG_03& arg_03,
175428 const t_ARG_04& arg_04,
175429 const t_ARG_05& arg_05)
175430{
175431 Variant_Base::template baseEmplace<t_INDEX>(
175432 arg_01, arg_02, arg_03, arg_04, arg_05);
175433
175434 return bsl::get<t_INDEX>(*this);
175435}
175436#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
175437
175438#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
175439template <class t_HEAD, class t_TAIL_01,
175440 class t_TAIL_02,
175441 class t_TAIL_03,
175442 class t_TAIL_04,
175443 class t_TAIL_05,
175444 class t_TAIL_06,
175445 class t_TAIL_07,
175446 class t_TAIL_08,
175447 class t_TAIL_09,
175448 class t_TAIL_10,
175449 class t_TAIL_11,
175450 class t_TAIL_12,
175451 class t_TAIL_13,
175452 class t_TAIL_14,
175453 class t_TAIL_15,
175454 class t_TAIL_16,
175455 class t_TAIL_17>
175456template <size_t t_INDEX,
175457 class t_ARG_01,
175458 class t_ARG_02,
175459 class t_ARG_03,
175460 class t_ARG_04,
175461 class t_ARG_05>
175462typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175463 t_TAIL_02,
175464 t_TAIL_03,
175465 t_TAIL_04,
175466 t_TAIL_05,
175467 t_TAIL_06,
175468 t_TAIL_07,
175469 t_TAIL_08,
175470 t_TAIL_09,
175471 t_TAIL_10,
175472 t_TAIL_11,
175473 t_TAIL_12,
175474 t_TAIL_13,
175475 t_TAIL_14,
175476 t_TAIL_15,
175477 t_TAIL_16,
175478 t_TAIL_17> >::type&
175479variant<t_HEAD, t_TAIL_01,
175480 t_TAIL_02,
175481 t_TAIL_03,
175482 t_TAIL_04,
175483 t_TAIL_05,
175484 t_TAIL_06,
175485 t_TAIL_07,
175486 t_TAIL_08,
175487 t_TAIL_09,
175488 t_TAIL_10,
175489 t_TAIL_11,
175490 t_TAIL_12,
175491 t_TAIL_13,
175492 t_TAIL_14,
175493 t_TAIL_15,
175494 t_TAIL_16,
175495 t_TAIL_17,
175496 BSLS_COMPILERFEATURES_FILLT( 1)
175497 >::emplace(const t_ARG_01& arg_01,
175498 const t_ARG_02& arg_02,
175499 const t_ARG_03& arg_03,
175500 const t_ARG_04& arg_04,
175501 const t_ARG_05& arg_05)
175502{
175503 Variant_Base::template baseEmplace<t_INDEX>(
175504 arg_01, arg_02, arg_03, arg_04, arg_05);
175505
175506 return bsl::get<t_INDEX>(*this);
175507}
175508#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
175509
175510#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
175511template <class t_HEAD, class t_TAIL_01,
175512 class t_TAIL_02,
175513 class t_TAIL_03,
175514 class t_TAIL_04,
175515 class t_TAIL_05,
175516 class t_TAIL_06,
175517 class t_TAIL_07,
175518 class t_TAIL_08,
175519 class t_TAIL_09,
175520 class t_TAIL_10,
175521 class t_TAIL_11,
175522 class t_TAIL_12,
175523 class t_TAIL_13,
175524 class t_TAIL_14,
175525 class t_TAIL_15,
175526 class t_TAIL_16,
175527 class t_TAIL_17,
175528 class t_TAIL_18>
175529template <size_t t_INDEX,
175530 class t_ARG_01,
175531 class t_ARG_02,
175532 class t_ARG_03,
175533 class t_ARG_04,
175534 class t_ARG_05>
175535typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175536 t_TAIL_02,
175537 t_TAIL_03,
175538 t_TAIL_04,
175539 t_TAIL_05,
175540 t_TAIL_06,
175541 t_TAIL_07,
175542 t_TAIL_08,
175543 t_TAIL_09,
175544 t_TAIL_10,
175545 t_TAIL_11,
175546 t_TAIL_12,
175547 t_TAIL_13,
175548 t_TAIL_14,
175549 t_TAIL_15,
175550 t_TAIL_16,
175551 t_TAIL_17,
175552 t_TAIL_18> >::type&
175553variant<t_HEAD, t_TAIL_01,
175554 t_TAIL_02,
175555 t_TAIL_03,
175556 t_TAIL_04,
175557 t_TAIL_05,
175558 t_TAIL_06,
175559 t_TAIL_07,
175560 t_TAIL_08,
175561 t_TAIL_09,
175562 t_TAIL_10,
175563 t_TAIL_11,
175564 t_TAIL_12,
175565 t_TAIL_13,
175566 t_TAIL_14,
175567 t_TAIL_15,
175568 t_TAIL_16,
175569 t_TAIL_17,
175570 t_TAIL_18,
175571 BSLS_COMPILERFEATURES_FILLT( 0)
175572 >::emplace(const t_ARG_01& arg_01,
175573 const t_ARG_02& arg_02,
175574 const t_ARG_03& arg_03,
175575 const t_ARG_04& arg_04,
175576 const t_ARG_05& arg_05)
175577{
175578 Variant_Base::template baseEmplace<t_INDEX>(
175579 arg_01, arg_02, arg_03, arg_04, arg_05);
175580
175581 return bsl::get<t_INDEX>(*this);
175582}
175583#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
175584
175585
175586#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
175587template <class t_HEAD>
175588template <size_t t_INDEX,
175589 class t_ARG_01,
175590 class t_ARG_02,
175591 class t_ARG_03,
175592 class t_ARG_04,
175593 class t_ARG_05,
175594 class t_ARG_06>
175595typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
175596variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
175597 >::emplace(const t_ARG_01& arg_01,
175598 const t_ARG_02& arg_02,
175599 const t_ARG_03& arg_03,
175600 const t_ARG_04& arg_04,
175601 const t_ARG_05& arg_05,
175602 const t_ARG_06& arg_06)
175603{
175604 Variant_Base::template baseEmplace<t_INDEX>(
175605 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175606
175607 return bsl::get<t_INDEX>(*this);
175608}
175609#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
175610
175611#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
175612template <class t_HEAD, class t_TAIL_01>
175613template <size_t t_INDEX,
175614 class t_ARG_01,
175615 class t_ARG_02,
175616 class t_ARG_03,
175617 class t_ARG_04,
175618 class t_ARG_05,
175619 class t_ARG_06>
175620typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
175621variant<t_HEAD, t_TAIL_01,
175622 BSLS_COMPILERFEATURES_FILLT(17)
175623 >::emplace(const t_ARG_01& arg_01,
175624 const t_ARG_02& arg_02,
175625 const t_ARG_03& arg_03,
175626 const t_ARG_04& arg_04,
175627 const t_ARG_05& arg_05,
175628 const t_ARG_06& arg_06)
175629{
175630 Variant_Base::template baseEmplace<t_INDEX>(
175631 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175632
175633 return bsl::get<t_INDEX>(*this);
175634}
175635#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
175636
175637#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
175638template <class t_HEAD, class t_TAIL_01,
175639 class t_TAIL_02>
175640template <size_t t_INDEX,
175641 class t_ARG_01,
175642 class t_ARG_02,
175643 class t_ARG_03,
175644 class t_ARG_04,
175645 class t_ARG_05,
175646 class t_ARG_06>
175647typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175648 t_TAIL_02> >::type&
175649variant<t_HEAD, t_TAIL_01,
175650 t_TAIL_02,
175651 BSLS_COMPILERFEATURES_FILLT(16)
175652 >::emplace(const t_ARG_01& arg_01,
175653 const t_ARG_02& arg_02,
175654 const t_ARG_03& arg_03,
175655 const t_ARG_04& arg_04,
175656 const t_ARG_05& arg_05,
175657 const t_ARG_06& arg_06)
175658{
175659 Variant_Base::template baseEmplace<t_INDEX>(
175660 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175661
175662 return bsl::get<t_INDEX>(*this);
175663}
175664#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
175665
175666#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
175667template <class t_HEAD, class t_TAIL_01,
175668 class t_TAIL_02,
175669 class t_TAIL_03>
175670template <size_t t_INDEX,
175671 class t_ARG_01,
175672 class t_ARG_02,
175673 class t_ARG_03,
175674 class t_ARG_04,
175675 class t_ARG_05,
175676 class t_ARG_06>
175677typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175678 t_TAIL_02,
175679 t_TAIL_03> >::type&
175680variant<t_HEAD, t_TAIL_01,
175681 t_TAIL_02,
175682 t_TAIL_03,
175683 BSLS_COMPILERFEATURES_FILLT(15)
175684 >::emplace(const t_ARG_01& arg_01,
175685 const t_ARG_02& arg_02,
175686 const t_ARG_03& arg_03,
175687 const t_ARG_04& arg_04,
175688 const t_ARG_05& arg_05,
175689 const t_ARG_06& arg_06)
175690{
175691 Variant_Base::template baseEmplace<t_INDEX>(
175692 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175693
175694 return bsl::get<t_INDEX>(*this);
175695}
175696#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
175697
175698#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
175699template <class t_HEAD, class t_TAIL_01,
175700 class t_TAIL_02,
175701 class t_TAIL_03,
175702 class t_TAIL_04>
175703template <size_t t_INDEX,
175704 class t_ARG_01,
175705 class t_ARG_02,
175706 class t_ARG_03,
175707 class t_ARG_04,
175708 class t_ARG_05,
175709 class t_ARG_06>
175710typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175711 t_TAIL_02,
175712 t_TAIL_03,
175713 t_TAIL_04> >::type&
175714variant<t_HEAD, t_TAIL_01,
175715 t_TAIL_02,
175716 t_TAIL_03,
175717 t_TAIL_04,
175718 BSLS_COMPILERFEATURES_FILLT(14)
175719 >::emplace(const t_ARG_01& arg_01,
175720 const t_ARG_02& arg_02,
175721 const t_ARG_03& arg_03,
175722 const t_ARG_04& arg_04,
175723 const t_ARG_05& arg_05,
175724 const t_ARG_06& arg_06)
175725{
175726 Variant_Base::template baseEmplace<t_INDEX>(
175727 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175728
175729 return bsl::get<t_INDEX>(*this);
175730}
175731#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
175732
175733#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
175734template <class t_HEAD, class t_TAIL_01,
175735 class t_TAIL_02,
175736 class t_TAIL_03,
175737 class t_TAIL_04,
175738 class t_TAIL_05>
175739template <size_t t_INDEX,
175740 class t_ARG_01,
175741 class t_ARG_02,
175742 class t_ARG_03,
175743 class t_ARG_04,
175744 class t_ARG_05,
175745 class t_ARG_06>
175746typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175747 t_TAIL_02,
175748 t_TAIL_03,
175749 t_TAIL_04,
175750 t_TAIL_05> >::type&
175751variant<t_HEAD, t_TAIL_01,
175752 t_TAIL_02,
175753 t_TAIL_03,
175754 t_TAIL_04,
175755 t_TAIL_05,
175756 BSLS_COMPILERFEATURES_FILLT(13)
175757 >::emplace(const t_ARG_01& arg_01,
175758 const t_ARG_02& arg_02,
175759 const t_ARG_03& arg_03,
175760 const t_ARG_04& arg_04,
175761 const t_ARG_05& arg_05,
175762 const t_ARG_06& arg_06)
175763{
175764 Variant_Base::template baseEmplace<t_INDEX>(
175765 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175766
175767 return bsl::get<t_INDEX>(*this);
175768}
175769#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
175770
175771#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
175772template <class t_HEAD, class t_TAIL_01,
175773 class t_TAIL_02,
175774 class t_TAIL_03,
175775 class t_TAIL_04,
175776 class t_TAIL_05,
175777 class t_TAIL_06>
175778template <size_t t_INDEX,
175779 class t_ARG_01,
175780 class t_ARG_02,
175781 class t_ARG_03,
175782 class t_ARG_04,
175783 class t_ARG_05,
175784 class t_ARG_06>
175785typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175786 t_TAIL_02,
175787 t_TAIL_03,
175788 t_TAIL_04,
175789 t_TAIL_05,
175790 t_TAIL_06> >::type&
175791variant<t_HEAD, t_TAIL_01,
175792 t_TAIL_02,
175793 t_TAIL_03,
175794 t_TAIL_04,
175795 t_TAIL_05,
175796 t_TAIL_06,
175797 BSLS_COMPILERFEATURES_FILLT(12)
175798 >::emplace(const t_ARG_01& arg_01,
175799 const t_ARG_02& arg_02,
175800 const t_ARG_03& arg_03,
175801 const t_ARG_04& arg_04,
175802 const t_ARG_05& arg_05,
175803 const t_ARG_06& arg_06)
175804{
175805 Variant_Base::template baseEmplace<t_INDEX>(
175806 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175807
175808 return bsl::get<t_INDEX>(*this);
175809}
175810#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
175811
175812#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
175813template <class t_HEAD, class t_TAIL_01,
175814 class t_TAIL_02,
175815 class t_TAIL_03,
175816 class t_TAIL_04,
175817 class t_TAIL_05,
175818 class t_TAIL_06,
175819 class t_TAIL_07>
175820template <size_t t_INDEX,
175821 class t_ARG_01,
175822 class t_ARG_02,
175823 class t_ARG_03,
175824 class t_ARG_04,
175825 class t_ARG_05,
175826 class t_ARG_06>
175827typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175828 t_TAIL_02,
175829 t_TAIL_03,
175830 t_TAIL_04,
175831 t_TAIL_05,
175832 t_TAIL_06,
175833 t_TAIL_07> >::type&
175834variant<t_HEAD, t_TAIL_01,
175835 t_TAIL_02,
175836 t_TAIL_03,
175837 t_TAIL_04,
175838 t_TAIL_05,
175839 t_TAIL_06,
175840 t_TAIL_07,
175841 BSLS_COMPILERFEATURES_FILLT(11)
175842 >::emplace(const t_ARG_01& arg_01,
175843 const t_ARG_02& arg_02,
175844 const t_ARG_03& arg_03,
175845 const t_ARG_04& arg_04,
175846 const t_ARG_05& arg_05,
175847 const t_ARG_06& arg_06)
175848{
175849 Variant_Base::template baseEmplace<t_INDEX>(
175850 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175851
175852 return bsl::get<t_INDEX>(*this);
175853}
175854#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
175855
175856#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
175857template <class t_HEAD, class t_TAIL_01,
175858 class t_TAIL_02,
175859 class t_TAIL_03,
175860 class t_TAIL_04,
175861 class t_TAIL_05,
175862 class t_TAIL_06,
175863 class t_TAIL_07,
175864 class t_TAIL_08>
175865template <size_t t_INDEX,
175866 class t_ARG_01,
175867 class t_ARG_02,
175868 class t_ARG_03,
175869 class t_ARG_04,
175870 class t_ARG_05,
175871 class t_ARG_06>
175872typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175873 t_TAIL_02,
175874 t_TAIL_03,
175875 t_TAIL_04,
175876 t_TAIL_05,
175877 t_TAIL_06,
175878 t_TAIL_07,
175879 t_TAIL_08> >::type&
175880variant<t_HEAD, t_TAIL_01,
175881 t_TAIL_02,
175882 t_TAIL_03,
175883 t_TAIL_04,
175884 t_TAIL_05,
175885 t_TAIL_06,
175886 t_TAIL_07,
175887 t_TAIL_08,
175888 BSLS_COMPILERFEATURES_FILLT(10)
175889 >::emplace(const t_ARG_01& arg_01,
175890 const t_ARG_02& arg_02,
175891 const t_ARG_03& arg_03,
175892 const t_ARG_04& arg_04,
175893 const t_ARG_05& arg_05,
175894 const t_ARG_06& arg_06)
175895{
175896 Variant_Base::template baseEmplace<t_INDEX>(
175897 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175898
175899 return bsl::get<t_INDEX>(*this);
175900}
175901#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
175902
175903#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
175904template <class t_HEAD, class t_TAIL_01,
175905 class t_TAIL_02,
175906 class t_TAIL_03,
175907 class t_TAIL_04,
175908 class t_TAIL_05,
175909 class t_TAIL_06,
175910 class t_TAIL_07,
175911 class t_TAIL_08,
175912 class t_TAIL_09>
175913template <size_t t_INDEX,
175914 class t_ARG_01,
175915 class t_ARG_02,
175916 class t_ARG_03,
175917 class t_ARG_04,
175918 class t_ARG_05,
175919 class t_ARG_06>
175920typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175921 t_TAIL_02,
175922 t_TAIL_03,
175923 t_TAIL_04,
175924 t_TAIL_05,
175925 t_TAIL_06,
175926 t_TAIL_07,
175927 t_TAIL_08,
175928 t_TAIL_09> >::type&
175929variant<t_HEAD, t_TAIL_01,
175930 t_TAIL_02,
175931 t_TAIL_03,
175932 t_TAIL_04,
175933 t_TAIL_05,
175934 t_TAIL_06,
175935 t_TAIL_07,
175936 t_TAIL_08,
175937 t_TAIL_09,
175938 BSLS_COMPILERFEATURES_FILLT( 9)
175939 >::emplace(const t_ARG_01& arg_01,
175940 const t_ARG_02& arg_02,
175941 const t_ARG_03& arg_03,
175942 const t_ARG_04& arg_04,
175943 const t_ARG_05& arg_05,
175944 const t_ARG_06& arg_06)
175945{
175946 Variant_Base::template baseEmplace<t_INDEX>(
175947 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
175948
175949 return bsl::get<t_INDEX>(*this);
175950}
175951#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
175952
175953#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
175954template <class t_HEAD, class t_TAIL_01,
175955 class t_TAIL_02,
175956 class t_TAIL_03,
175957 class t_TAIL_04,
175958 class t_TAIL_05,
175959 class t_TAIL_06,
175960 class t_TAIL_07,
175961 class t_TAIL_08,
175962 class t_TAIL_09,
175963 class t_TAIL_10>
175964template <size_t t_INDEX,
175965 class t_ARG_01,
175966 class t_ARG_02,
175967 class t_ARG_03,
175968 class t_ARG_04,
175969 class t_ARG_05,
175970 class t_ARG_06>
175971typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
175972 t_TAIL_02,
175973 t_TAIL_03,
175974 t_TAIL_04,
175975 t_TAIL_05,
175976 t_TAIL_06,
175977 t_TAIL_07,
175978 t_TAIL_08,
175979 t_TAIL_09,
175980 t_TAIL_10> >::type&
175981variant<t_HEAD, t_TAIL_01,
175982 t_TAIL_02,
175983 t_TAIL_03,
175984 t_TAIL_04,
175985 t_TAIL_05,
175986 t_TAIL_06,
175987 t_TAIL_07,
175988 t_TAIL_08,
175989 t_TAIL_09,
175990 t_TAIL_10,
175991 BSLS_COMPILERFEATURES_FILLT( 8)
175992 >::emplace(const t_ARG_01& arg_01,
175993 const t_ARG_02& arg_02,
175994 const t_ARG_03& arg_03,
175995 const t_ARG_04& arg_04,
175996 const t_ARG_05& arg_05,
175997 const t_ARG_06& arg_06)
175998{
175999 Variant_Base::template baseEmplace<t_INDEX>(
176000 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176001
176002 return bsl::get<t_INDEX>(*this);
176003}
176004#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
176005
176006#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
176007template <class t_HEAD, class t_TAIL_01,
176008 class t_TAIL_02,
176009 class t_TAIL_03,
176010 class t_TAIL_04,
176011 class t_TAIL_05,
176012 class t_TAIL_06,
176013 class t_TAIL_07,
176014 class t_TAIL_08,
176015 class t_TAIL_09,
176016 class t_TAIL_10,
176017 class t_TAIL_11>
176018template <size_t t_INDEX,
176019 class t_ARG_01,
176020 class t_ARG_02,
176021 class t_ARG_03,
176022 class t_ARG_04,
176023 class t_ARG_05,
176024 class t_ARG_06>
176025typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176026 t_TAIL_02,
176027 t_TAIL_03,
176028 t_TAIL_04,
176029 t_TAIL_05,
176030 t_TAIL_06,
176031 t_TAIL_07,
176032 t_TAIL_08,
176033 t_TAIL_09,
176034 t_TAIL_10,
176035 t_TAIL_11> >::type&
176036variant<t_HEAD, t_TAIL_01,
176037 t_TAIL_02,
176038 t_TAIL_03,
176039 t_TAIL_04,
176040 t_TAIL_05,
176041 t_TAIL_06,
176042 t_TAIL_07,
176043 t_TAIL_08,
176044 t_TAIL_09,
176045 t_TAIL_10,
176046 t_TAIL_11,
176047 BSLS_COMPILERFEATURES_FILLT( 7)
176048 >::emplace(const t_ARG_01& arg_01,
176049 const t_ARG_02& arg_02,
176050 const t_ARG_03& arg_03,
176051 const t_ARG_04& arg_04,
176052 const t_ARG_05& arg_05,
176053 const t_ARG_06& arg_06)
176054{
176055 Variant_Base::template baseEmplace<t_INDEX>(
176056 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176057
176058 return bsl::get<t_INDEX>(*this);
176059}
176060#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
176061
176062#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
176063template <class t_HEAD, class t_TAIL_01,
176064 class t_TAIL_02,
176065 class t_TAIL_03,
176066 class t_TAIL_04,
176067 class t_TAIL_05,
176068 class t_TAIL_06,
176069 class t_TAIL_07,
176070 class t_TAIL_08,
176071 class t_TAIL_09,
176072 class t_TAIL_10,
176073 class t_TAIL_11,
176074 class t_TAIL_12>
176075template <size_t t_INDEX,
176076 class t_ARG_01,
176077 class t_ARG_02,
176078 class t_ARG_03,
176079 class t_ARG_04,
176080 class t_ARG_05,
176081 class t_ARG_06>
176082typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176083 t_TAIL_02,
176084 t_TAIL_03,
176085 t_TAIL_04,
176086 t_TAIL_05,
176087 t_TAIL_06,
176088 t_TAIL_07,
176089 t_TAIL_08,
176090 t_TAIL_09,
176091 t_TAIL_10,
176092 t_TAIL_11,
176093 t_TAIL_12> >::type&
176094variant<t_HEAD, t_TAIL_01,
176095 t_TAIL_02,
176096 t_TAIL_03,
176097 t_TAIL_04,
176098 t_TAIL_05,
176099 t_TAIL_06,
176100 t_TAIL_07,
176101 t_TAIL_08,
176102 t_TAIL_09,
176103 t_TAIL_10,
176104 t_TAIL_11,
176105 t_TAIL_12,
176106 BSLS_COMPILERFEATURES_FILLT( 6)
176107 >::emplace(const t_ARG_01& arg_01,
176108 const t_ARG_02& arg_02,
176109 const t_ARG_03& arg_03,
176110 const t_ARG_04& arg_04,
176111 const t_ARG_05& arg_05,
176112 const t_ARG_06& arg_06)
176113{
176114 Variant_Base::template baseEmplace<t_INDEX>(
176115 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176116
176117 return bsl::get<t_INDEX>(*this);
176118}
176119#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
176120
176121#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
176122template <class t_HEAD, class t_TAIL_01,
176123 class t_TAIL_02,
176124 class t_TAIL_03,
176125 class t_TAIL_04,
176126 class t_TAIL_05,
176127 class t_TAIL_06,
176128 class t_TAIL_07,
176129 class t_TAIL_08,
176130 class t_TAIL_09,
176131 class t_TAIL_10,
176132 class t_TAIL_11,
176133 class t_TAIL_12,
176134 class t_TAIL_13>
176135template <size_t t_INDEX,
176136 class t_ARG_01,
176137 class t_ARG_02,
176138 class t_ARG_03,
176139 class t_ARG_04,
176140 class t_ARG_05,
176141 class t_ARG_06>
176142typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176143 t_TAIL_02,
176144 t_TAIL_03,
176145 t_TAIL_04,
176146 t_TAIL_05,
176147 t_TAIL_06,
176148 t_TAIL_07,
176149 t_TAIL_08,
176150 t_TAIL_09,
176151 t_TAIL_10,
176152 t_TAIL_11,
176153 t_TAIL_12,
176154 t_TAIL_13> >::type&
176155variant<t_HEAD, t_TAIL_01,
176156 t_TAIL_02,
176157 t_TAIL_03,
176158 t_TAIL_04,
176159 t_TAIL_05,
176160 t_TAIL_06,
176161 t_TAIL_07,
176162 t_TAIL_08,
176163 t_TAIL_09,
176164 t_TAIL_10,
176165 t_TAIL_11,
176166 t_TAIL_12,
176167 t_TAIL_13,
176168 BSLS_COMPILERFEATURES_FILLT( 5)
176169 >::emplace(const t_ARG_01& arg_01,
176170 const t_ARG_02& arg_02,
176171 const t_ARG_03& arg_03,
176172 const t_ARG_04& arg_04,
176173 const t_ARG_05& arg_05,
176174 const t_ARG_06& arg_06)
176175{
176176 Variant_Base::template baseEmplace<t_INDEX>(
176177 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176178
176179 return bsl::get<t_INDEX>(*this);
176180}
176181#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
176182
176183#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
176184template <class t_HEAD, class t_TAIL_01,
176185 class t_TAIL_02,
176186 class t_TAIL_03,
176187 class t_TAIL_04,
176188 class t_TAIL_05,
176189 class t_TAIL_06,
176190 class t_TAIL_07,
176191 class t_TAIL_08,
176192 class t_TAIL_09,
176193 class t_TAIL_10,
176194 class t_TAIL_11,
176195 class t_TAIL_12,
176196 class t_TAIL_13,
176197 class t_TAIL_14>
176198template <size_t t_INDEX,
176199 class t_ARG_01,
176200 class t_ARG_02,
176201 class t_ARG_03,
176202 class t_ARG_04,
176203 class t_ARG_05,
176204 class t_ARG_06>
176205typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176206 t_TAIL_02,
176207 t_TAIL_03,
176208 t_TAIL_04,
176209 t_TAIL_05,
176210 t_TAIL_06,
176211 t_TAIL_07,
176212 t_TAIL_08,
176213 t_TAIL_09,
176214 t_TAIL_10,
176215 t_TAIL_11,
176216 t_TAIL_12,
176217 t_TAIL_13,
176218 t_TAIL_14> >::type&
176219variant<t_HEAD, t_TAIL_01,
176220 t_TAIL_02,
176221 t_TAIL_03,
176222 t_TAIL_04,
176223 t_TAIL_05,
176224 t_TAIL_06,
176225 t_TAIL_07,
176226 t_TAIL_08,
176227 t_TAIL_09,
176228 t_TAIL_10,
176229 t_TAIL_11,
176230 t_TAIL_12,
176231 t_TAIL_13,
176232 t_TAIL_14,
176233 BSLS_COMPILERFEATURES_FILLT( 4)
176234 >::emplace(const t_ARG_01& arg_01,
176235 const t_ARG_02& arg_02,
176236 const t_ARG_03& arg_03,
176237 const t_ARG_04& arg_04,
176238 const t_ARG_05& arg_05,
176239 const t_ARG_06& arg_06)
176240{
176241 Variant_Base::template baseEmplace<t_INDEX>(
176242 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176243
176244 return bsl::get<t_INDEX>(*this);
176245}
176246#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
176247
176248#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
176249template <class t_HEAD, class t_TAIL_01,
176250 class t_TAIL_02,
176251 class t_TAIL_03,
176252 class t_TAIL_04,
176253 class t_TAIL_05,
176254 class t_TAIL_06,
176255 class t_TAIL_07,
176256 class t_TAIL_08,
176257 class t_TAIL_09,
176258 class t_TAIL_10,
176259 class t_TAIL_11,
176260 class t_TAIL_12,
176261 class t_TAIL_13,
176262 class t_TAIL_14,
176263 class t_TAIL_15>
176264template <size_t t_INDEX,
176265 class t_ARG_01,
176266 class t_ARG_02,
176267 class t_ARG_03,
176268 class t_ARG_04,
176269 class t_ARG_05,
176270 class t_ARG_06>
176271typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176272 t_TAIL_02,
176273 t_TAIL_03,
176274 t_TAIL_04,
176275 t_TAIL_05,
176276 t_TAIL_06,
176277 t_TAIL_07,
176278 t_TAIL_08,
176279 t_TAIL_09,
176280 t_TAIL_10,
176281 t_TAIL_11,
176282 t_TAIL_12,
176283 t_TAIL_13,
176284 t_TAIL_14,
176285 t_TAIL_15> >::type&
176286variant<t_HEAD, t_TAIL_01,
176287 t_TAIL_02,
176288 t_TAIL_03,
176289 t_TAIL_04,
176290 t_TAIL_05,
176291 t_TAIL_06,
176292 t_TAIL_07,
176293 t_TAIL_08,
176294 t_TAIL_09,
176295 t_TAIL_10,
176296 t_TAIL_11,
176297 t_TAIL_12,
176298 t_TAIL_13,
176299 t_TAIL_14,
176300 t_TAIL_15,
176301 BSLS_COMPILERFEATURES_FILLT( 3)
176302 >::emplace(const t_ARG_01& arg_01,
176303 const t_ARG_02& arg_02,
176304 const t_ARG_03& arg_03,
176305 const t_ARG_04& arg_04,
176306 const t_ARG_05& arg_05,
176307 const t_ARG_06& arg_06)
176308{
176309 Variant_Base::template baseEmplace<t_INDEX>(
176310 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176311
176312 return bsl::get<t_INDEX>(*this);
176313}
176314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
176315
176316#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
176317template <class t_HEAD, class t_TAIL_01,
176318 class t_TAIL_02,
176319 class t_TAIL_03,
176320 class t_TAIL_04,
176321 class t_TAIL_05,
176322 class t_TAIL_06,
176323 class t_TAIL_07,
176324 class t_TAIL_08,
176325 class t_TAIL_09,
176326 class t_TAIL_10,
176327 class t_TAIL_11,
176328 class t_TAIL_12,
176329 class t_TAIL_13,
176330 class t_TAIL_14,
176331 class t_TAIL_15,
176332 class t_TAIL_16>
176333template <size_t t_INDEX,
176334 class t_ARG_01,
176335 class t_ARG_02,
176336 class t_ARG_03,
176337 class t_ARG_04,
176338 class t_ARG_05,
176339 class t_ARG_06>
176340typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176341 t_TAIL_02,
176342 t_TAIL_03,
176343 t_TAIL_04,
176344 t_TAIL_05,
176345 t_TAIL_06,
176346 t_TAIL_07,
176347 t_TAIL_08,
176348 t_TAIL_09,
176349 t_TAIL_10,
176350 t_TAIL_11,
176351 t_TAIL_12,
176352 t_TAIL_13,
176353 t_TAIL_14,
176354 t_TAIL_15,
176355 t_TAIL_16> >::type&
176356variant<t_HEAD, t_TAIL_01,
176357 t_TAIL_02,
176358 t_TAIL_03,
176359 t_TAIL_04,
176360 t_TAIL_05,
176361 t_TAIL_06,
176362 t_TAIL_07,
176363 t_TAIL_08,
176364 t_TAIL_09,
176365 t_TAIL_10,
176366 t_TAIL_11,
176367 t_TAIL_12,
176368 t_TAIL_13,
176369 t_TAIL_14,
176370 t_TAIL_15,
176371 t_TAIL_16,
176372 BSLS_COMPILERFEATURES_FILLT( 2)
176373 >::emplace(const t_ARG_01& arg_01,
176374 const t_ARG_02& arg_02,
176375 const t_ARG_03& arg_03,
176376 const t_ARG_04& arg_04,
176377 const t_ARG_05& arg_05,
176378 const t_ARG_06& arg_06)
176379{
176380 Variant_Base::template baseEmplace<t_INDEX>(
176381 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176382
176383 return bsl::get<t_INDEX>(*this);
176384}
176385#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
176386
176387#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
176388template <class t_HEAD, class t_TAIL_01,
176389 class t_TAIL_02,
176390 class t_TAIL_03,
176391 class t_TAIL_04,
176392 class t_TAIL_05,
176393 class t_TAIL_06,
176394 class t_TAIL_07,
176395 class t_TAIL_08,
176396 class t_TAIL_09,
176397 class t_TAIL_10,
176398 class t_TAIL_11,
176399 class t_TAIL_12,
176400 class t_TAIL_13,
176401 class t_TAIL_14,
176402 class t_TAIL_15,
176403 class t_TAIL_16,
176404 class t_TAIL_17>
176405template <size_t t_INDEX,
176406 class t_ARG_01,
176407 class t_ARG_02,
176408 class t_ARG_03,
176409 class t_ARG_04,
176410 class t_ARG_05,
176411 class t_ARG_06>
176412typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176413 t_TAIL_02,
176414 t_TAIL_03,
176415 t_TAIL_04,
176416 t_TAIL_05,
176417 t_TAIL_06,
176418 t_TAIL_07,
176419 t_TAIL_08,
176420 t_TAIL_09,
176421 t_TAIL_10,
176422 t_TAIL_11,
176423 t_TAIL_12,
176424 t_TAIL_13,
176425 t_TAIL_14,
176426 t_TAIL_15,
176427 t_TAIL_16,
176428 t_TAIL_17> >::type&
176429variant<t_HEAD, t_TAIL_01,
176430 t_TAIL_02,
176431 t_TAIL_03,
176432 t_TAIL_04,
176433 t_TAIL_05,
176434 t_TAIL_06,
176435 t_TAIL_07,
176436 t_TAIL_08,
176437 t_TAIL_09,
176438 t_TAIL_10,
176439 t_TAIL_11,
176440 t_TAIL_12,
176441 t_TAIL_13,
176442 t_TAIL_14,
176443 t_TAIL_15,
176444 t_TAIL_16,
176445 t_TAIL_17,
176446 BSLS_COMPILERFEATURES_FILLT( 1)
176447 >::emplace(const t_ARG_01& arg_01,
176448 const t_ARG_02& arg_02,
176449 const t_ARG_03& arg_03,
176450 const t_ARG_04& arg_04,
176451 const t_ARG_05& arg_05,
176452 const t_ARG_06& arg_06)
176453{
176454 Variant_Base::template baseEmplace<t_INDEX>(
176455 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176456
176457 return bsl::get<t_INDEX>(*this);
176458}
176459#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
176460
176461#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
176462template <class t_HEAD, class t_TAIL_01,
176463 class t_TAIL_02,
176464 class t_TAIL_03,
176465 class t_TAIL_04,
176466 class t_TAIL_05,
176467 class t_TAIL_06,
176468 class t_TAIL_07,
176469 class t_TAIL_08,
176470 class t_TAIL_09,
176471 class t_TAIL_10,
176472 class t_TAIL_11,
176473 class t_TAIL_12,
176474 class t_TAIL_13,
176475 class t_TAIL_14,
176476 class t_TAIL_15,
176477 class t_TAIL_16,
176478 class t_TAIL_17,
176479 class t_TAIL_18>
176480template <size_t t_INDEX,
176481 class t_ARG_01,
176482 class t_ARG_02,
176483 class t_ARG_03,
176484 class t_ARG_04,
176485 class t_ARG_05,
176486 class t_ARG_06>
176487typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176488 t_TAIL_02,
176489 t_TAIL_03,
176490 t_TAIL_04,
176491 t_TAIL_05,
176492 t_TAIL_06,
176493 t_TAIL_07,
176494 t_TAIL_08,
176495 t_TAIL_09,
176496 t_TAIL_10,
176497 t_TAIL_11,
176498 t_TAIL_12,
176499 t_TAIL_13,
176500 t_TAIL_14,
176501 t_TAIL_15,
176502 t_TAIL_16,
176503 t_TAIL_17,
176504 t_TAIL_18> >::type&
176505variant<t_HEAD, t_TAIL_01,
176506 t_TAIL_02,
176507 t_TAIL_03,
176508 t_TAIL_04,
176509 t_TAIL_05,
176510 t_TAIL_06,
176511 t_TAIL_07,
176512 t_TAIL_08,
176513 t_TAIL_09,
176514 t_TAIL_10,
176515 t_TAIL_11,
176516 t_TAIL_12,
176517 t_TAIL_13,
176518 t_TAIL_14,
176519 t_TAIL_15,
176520 t_TAIL_16,
176521 t_TAIL_17,
176522 t_TAIL_18,
176523 BSLS_COMPILERFEATURES_FILLT( 0)
176524 >::emplace(const t_ARG_01& arg_01,
176525 const t_ARG_02& arg_02,
176526 const t_ARG_03& arg_03,
176527 const t_ARG_04& arg_04,
176528 const t_ARG_05& arg_05,
176529 const t_ARG_06& arg_06)
176530{
176531 Variant_Base::template baseEmplace<t_INDEX>(
176532 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
176533
176534 return bsl::get<t_INDEX>(*this);
176535}
176536#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
176537
176538
176539#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
176540template <class t_HEAD>
176541template <size_t t_INDEX,
176542 class t_ARG_01,
176543 class t_ARG_02,
176544 class t_ARG_03,
176545 class t_ARG_04,
176546 class t_ARG_05,
176547 class t_ARG_06,
176548 class t_ARG_07>
176549typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
176550variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
176551 >::emplace(const t_ARG_01& arg_01,
176552 const t_ARG_02& arg_02,
176553 const t_ARG_03& arg_03,
176554 const t_ARG_04& arg_04,
176555 const t_ARG_05& arg_05,
176556 const t_ARG_06& arg_06,
176557 const t_ARG_07& arg_07)
176558{
176559 Variant_Base::template baseEmplace<t_INDEX>(
176560 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176561
176562 return bsl::get<t_INDEX>(*this);
176563}
176564#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
176565
176566#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
176567template <class t_HEAD, class t_TAIL_01>
176568template <size_t t_INDEX,
176569 class t_ARG_01,
176570 class t_ARG_02,
176571 class t_ARG_03,
176572 class t_ARG_04,
176573 class t_ARG_05,
176574 class t_ARG_06,
176575 class t_ARG_07>
176576typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
176577variant<t_HEAD, t_TAIL_01,
176578 BSLS_COMPILERFEATURES_FILLT(17)
176579 >::emplace(const t_ARG_01& arg_01,
176580 const t_ARG_02& arg_02,
176581 const t_ARG_03& arg_03,
176582 const t_ARG_04& arg_04,
176583 const t_ARG_05& arg_05,
176584 const t_ARG_06& arg_06,
176585 const t_ARG_07& arg_07)
176586{
176587 Variant_Base::template baseEmplace<t_INDEX>(
176588 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176589
176590 return bsl::get<t_INDEX>(*this);
176591}
176592#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
176593
176594#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
176595template <class t_HEAD, class t_TAIL_01,
176596 class t_TAIL_02>
176597template <size_t t_INDEX,
176598 class t_ARG_01,
176599 class t_ARG_02,
176600 class t_ARG_03,
176601 class t_ARG_04,
176602 class t_ARG_05,
176603 class t_ARG_06,
176604 class t_ARG_07>
176605typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176606 t_TAIL_02> >::type&
176607variant<t_HEAD, t_TAIL_01,
176608 t_TAIL_02,
176609 BSLS_COMPILERFEATURES_FILLT(16)
176610 >::emplace(const t_ARG_01& arg_01,
176611 const t_ARG_02& arg_02,
176612 const t_ARG_03& arg_03,
176613 const t_ARG_04& arg_04,
176614 const t_ARG_05& arg_05,
176615 const t_ARG_06& arg_06,
176616 const t_ARG_07& arg_07)
176617{
176618 Variant_Base::template baseEmplace<t_INDEX>(
176619 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176620
176621 return bsl::get<t_INDEX>(*this);
176622}
176623#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
176624
176625#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
176626template <class t_HEAD, class t_TAIL_01,
176627 class t_TAIL_02,
176628 class t_TAIL_03>
176629template <size_t t_INDEX,
176630 class t_ARG_01,
176631 class t_ARG_02,
176632 class t_ARG_03,
176633 class t_ARG_04,
176634 class t_ARG_05,
176635 class t_ARG_06,
176636 class t_ARG_07>
176637typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176638 t_TAIL_02,
176639 t_TAIL_03> >::type&
176640variant<t_HEAD, t_TAIL_01,
176641 t_TAIL_02,
176642 t_TAIL_03,
176643 BSLS_COMPILERFEATURES_FILLT(15)
176644 >::emplace(const t_ARG_01& arg_01,
176645 const t_ARG_02& arg_02,
176646 const t_ARG_03& arg_03,
176647 const t_ARG_04& arg_04,
176648 const t_ARG_05& arg_05,
176649 const t_ARG_06& arg_06,
176650 const t_ARG_07& arg_07)
176651{
176652 Variant_Base::template baseEmplace<t_INDEX>(
176653 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176654
176655 return bsl::get<t_INDEX>(*this);
176656}
176657#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
176658
176659#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
176660template <class t_HEAD, class t_TAIL_01,
176661 class t_TAIL_02,
176662 class t_TAIL_03,
176663 class t_TAIL_04>
176664template <size_t t_INDEX,
176665 class t_ARG_01,
176666 class t_ARG_02,
176667 class t_ARG_03,
176668 class t_ARG_04,
176669 class t_ARG_05,
176670 class t_ARG_06,
176671 class t_ARG_07>
176672typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176673 t_TAIL_02,
176674 t_TAIL_03,
176675 t_TAIL_04> >::type&
176676variant<t_HEAD, t_TAIL_01,
176677 t_TAIL_02,
176678 t_TAIL_03,
176679 t_TAIL_04,
176680 BSLS_COMPILERFEATURES_FILLT(14)
176681 >::emplace(const t_ARG_01& arg_01,
176682 const t_ARG_02& arg_02,
176683 const t_ARG_03& arg_03,
176684 const t_ARG_04& arg_04,
176685 const t_ARG_05& arg_05,
176686 const t_ARG_06& arg_06,
176687 const t_ARG_07& arg_07)
176688{
176689 Variant_Base::template baseEmplace<t_INDEX>(
176690 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176691
176692 return bsl::get<t_INDEX>(*this);
176693}
176694#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
176695
176696#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
176697template <class t_HEAD, class t_TAIL_01,
176698 class t_TAIL_02,
176699 class t_TAIL_03,
176700 class t_TAIL_04,
176701 class t_TAIL_05>
176702template <size_t t_INDEX,
176703 class t_ARG_01,
176704 class t_ARG_02,
176705 class t_ARG_03,
176706 class t_ARG_04,
176707 class t_ARG_05,
176708 class t_ARG_06,
176709 class t_ARG_07>
176710typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176711 t_TAIL_02,
176712 t_TAIL_03,
176713 t_TAIL_04,
176714 t_TAIL_05> >::type&
176715variant<t_HEAD, t_TAIL_01,
176716 t_TAIL_02,
176717 t_TAIL_03,
176718 t_TAIL_04,
176719 t_TAIL_05,
176720 BSLS_COMPILERFEATURES_FILLT(13)
176721 >::emplace(const t_ARG_01& arg_01,
176722 const t_ARG_02& arg_02,
176723 const t_ARG_03& arg_03,
176724 const t_ARG_04& arg_04,
176725 const t_ARG_05& arg_05,
176726 const t_ARG_06& arg_06,
176727 const t_ARG_07& arg_07)
176728{
176729 Variant_Base::template baseEmplace<t_INDEX>(
176730 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176731
176732 return bsl::get<t_INDEX>(*this);
176733}
176734#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
176735
176736#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
176737template <class t_HEAD, class t_TAIL_01,
176738 class t_TAIL_02,
176739 class t_TAIL_03,
176740 class t_TAIL_04,
176741 class t_TAIL_05,
176742 class t_TAIL_06>
176743template <size_t t_INDEX,
176744 class t_ARG_01,
176745 class t_ARG_02,
176746 class t_ARG_03,
176747 class t_ARG_04,
176748 class t_ARG_05,
176749 class t_ARG_06,
176750 class t_ARG_07>
176751typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176752 t_TAIL_02,
176753 t_TAIL_03,
176754 t_TAIL_04,
176755 t_TAIL_05,
176756 t_TAIL_06> >::type&
176757variant<t_HEAD, t_TAIL_01,
176758 t_TAIL_02,
176759 t_TAIL_03,
176760 t_TAIL_04,
176761 t_TAIL_05,
176762 t_TAIL_06,
176763 BSLS_COMPILERFEATURES_FILLT(12)
176764 >::emplace(const t_ARG_01& arg_01,
176765 const t_ARG_02& arg_02,
176766 const t_ARG_03& arg_03,
176767 const t_ARG_04& arg_04,
176768 const t_ARG_05& arg_05,
176769 const t_ARG_06& arg_06,
176770 const t_ARG_07& arg_07)
176771{
176772 Variant_Base::template baseEmplace<t_INDEX>(
176773 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176774
176775 return bsl::get<t_INDEX>(*this);
176776}
176777#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
176778
176779#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
176780template <class t_HEAD, class t_TAIL_01,
176781 class t_TAIL_02,
176782 class t_TAIL_03,
176783 class t_TAIL_04,
176784 class t_TAIL_05,
176785 class t_TAIL_06,
176786 class t_TAIL_07>
176787template <size_t t_INDEX,
176788 class t_ARG_01,
176789 class t_ARG_02,
176790 class t_ARG_03,
176791 class t_ARG_04,
176792 class t_ARG_05,
176793 class t_ARG_06,
176794 class t_ARG_07>
176795typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176796 t_TAIL_02,
176797 t_TAIL_03,
176798 t_TAIL_04,
176799 t_TAIL_05,
176800 t_TAIL_06,
176801 t_TAIL_07> >::type&
176802variant<t_HEAD, t_TAIL_01,
176803 t_TAIL_02,
176804 t_TAIL_03,
176805 t_TAIL_04,
176806 t_TAIL_05,
176807 t_TAIL_06,
176808 t_TAIL_07,
176809 BSLS_COMPILERFEATURES_FILLT(11)
176810 >::emplace(const t_ARG_01& arg_01,
176811 const t_ARG_02& arg_02,
176812 const t_ARG_03& arg_03,
176813 const t_ARG_04& arg_04,
176814 const t_ARG_05& arg_05,
176815 const t_ARG_06& arg_06,
176816 const t_ARG_07& arg_07)
176817{
176818 Variant_Base::template baseEmplace<t_INDEX>(
176819 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176820
176821 return bsl::get<t_INDEX>(*this);
176822}
176823#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
176824
176825#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
176826template <class t_HEAD, class t_TAIL_01,
176827 class t_TAIL_02,
176828 class t_TAIL_03,
176829 class t_TAIL_04,
176830 class t_TAIL_05,
176831 class t_TAIL_06,
176832 class t_TAIL_07,
176833 class t_TAIL_08>
176834template <size_t t_INDEX,
176835 class t_ARG_01,
176836 class t_ARG_02,
176837 class t_ARG_03,
176838 class t_ARG_04,
176839 class t_ARG_05,
176840 class t_ARG_06,
176841 class t_ARG_07>
176842typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176843 t_TAIL_02,
176844 t_TAIL_03,
176845 t_TAIL_04,
176846 t_TAIL_05,
176847 t_TAIL_06,
176848 t_TAIL_07,
176849 t_TAIL_08> >::type&
176850variant<t_HEAD, t_TAIL_01,
176851 t_TAIL_02,
176852 t_TAIL_03,
176853 t_TAIL_04,
176854 t_TAIL_05,
176855 t_TAIL_06,
176856 t_TAIL_07,
176857 t_TAIL_08,
176858 BSLS_COMPILERFEATURES_FILLT(10)
176859 >::emplace(const t_ARG_01& arg_01,
176860 const t_ARG_02& arg_02,
176861 const t_ARG_03& arg_03,
176862 const t_ARG_04& arg_04,
176863 const t_ARG_05& arg_05,
176864 const t_ARG_06& arg_06,
176865 const t_ARG_07& arg_07)
176866{
176867 Variant_Base::template baseEmplace<t_INDEX>(
176868 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176869
176870 return bsl::get<t_INDEX>(*this);
176871}
176872#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
176873
176874#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
176875template <class t_HEAD, class t_TAIL_01,
176876 class t_TAIL_02,
176877 class t_TAIL_03,
176878 class t_TAIL_04,
176879 class t_TAIL_05,
176880 class t_TAIL_06,
176881 class t_TAIL_07,
176882 class t_TAIL_08,
176883 class t_TAIL_09>
176884template <size_t t_INDEX,
176885 class t_ARG_01,
176886 class t_ARG_02,
176887 class t_ARG_03,
176888 class t_ARG_04,
176889 class t_ARG_05,
176890 class t_ARG_06,
176891 class t_ARG_07>
176892typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176893 t_TAIL_02,
176894 t_TAIL_03,
176895 t_TAIL_04,
176896 t_TAIL_05,
176897 t_TAIL_06,
176898 t_TAIL_07,
176899 t_TAIL_08,
176900 t_TAIL_09> >::type&
176901variant<t_HEAD, t_TAIL_01,
176902 t_TAIL_02,
176903 t_TAIL_03,
176904 t_TAIL_04,
176905 t_TAIL_05,
176906 t_TAIL_06,
176907 t_TAIL_07,
176908 t_TAIL_08,
176909 t_TAIL_09,
176910 BSLS_COMPILERFEATURES_FILLT( 9)
176911 >::emplace(const t_ARG_01& arg_01,
176912 const t_ARG_02& arg_02,
176913 const t_ARG_03& arg_03,
176914 const t_ARG_04& arg_04,
176915 const t_ARG_05& arg_05,
176916 const t_ARG_06& arg_06,
176917 const t_ARG_07& arg_07)
176918{
176919 Variant_Base::template baseEmplace<t_INDEX>(
176920 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176921
176922 return bsl::get<t_INDEX>(*this);
176923}
176924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
176925
176926#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
176927template <class t_HEAD, class t_TAIL_01,
176928 class t_TAIL_02,
176929 class t_TAIL_03,
176930 class t_TAIL_04,
176931 class t_TAIL_05,
176932 class t_TAIL_06,
176933 class t_TAIL_07,
176934 class t_TAIL_08,
176935 class t_TAIL_09,
176936 class t_TAIL_10>
176937template <size_t t_INDEX,
176938 class t_ARG_01,
176939 class t_ARG_02,
176940 class t_ARG_03,
176941 class t_ARG_04,
176942 class t_ARG_05,
176943 class t_ARG_06,
176944 class t_ARG_07>
176945typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
176946 t_TAIL_02,
176947 t_TAIL_03,
176948 t_TAIL_04,
176949 t_TAIL_05,
176950 t_TAIL_06,
176951 t_TAIL_07,
176952 t_TAIL_08,
176953 t_TAIL_09,
176954 t_TAIL_10> >::type&
176955variant<t_HEAD, t_TAIL_01,
176956 t_TAIL_02,
176957 t_TAIL_03,
176958 t_TAIL_04,
176959 t_TAIL_05,
176960 t_TAIL_06,
176961 t_TAIL_07,
176962 t_TAIL_08,
176963 t_TAIL_09,
176964 t_TAIL_10,
176965 BSLS_COMPILERFEATURES_FILLT( 8)
176966 >::emplace(const t_ARG_01& arg_01,
176967 const t_ARG_02& arg_02,
176968 const t_ARG_03& arg_03,
176969 const t_ARG_04& arg_04,
176970 const t_ARG_05& arg_05,
176971 const t_ARG_06& arg_06,
176972 const t_ARG_07& arg_07)
176973{
176974 Variant_Base::template baseEmplace<t_INDEX>(
176975 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
176976
176977 return bsl::get<t_INDEX>(*this);
176978}
176979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
176980
176981#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
176982template <class t_HEAD, class t_TAIL_01,
176983 class t_TAIL_02,
176984 class t_TAIL_03,
176985 class t_TAIL_04,
176986 class t_TAIL_05,
176987 class t_TAIL_06,
176988 class t_TAIL_07,
176989 class t_TAIL_08,
176990 class t_TAIL_09,
176991 class t_TAIL_10,
176992 class t_TAIL_11>
176993template <size_t t_INDEX,
176994 class t_ARG_01,
176995 class t_ARG_02,
176996 class t_ARG_03,
176997 class t_ARG_04,
176998 class t_ARG_05,
176999 class t_ARG_06,
177000 class t_ARG_07>
177001typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177002 t_TAIL_02,
177003 t_TAIL_03,
177004 t_TAIL_04,
177005 t_TAIL_05,
177006 t_TAIL_06,
177007 t_TAIL_07,
177008 t_TAIL_08,
177009 t_TAIL_09,
177010 t_TAIL_10,
177011 t_TAIL_11> >::type&
177012variant<t_HEAD, t_TAIL_01,
177013 t_TAIL_02,
177014 t_TAIL_03,
177015 t_TAIL_04,
177016 t_TAIL_05,
177017 t_TAIL_06,
177018 t_TAIL_07,
177019 t_TAIL_08,
177020 t_TAIL_09,
177021 t_TAIL_10,
177022 t_TAIL_11,
177023 BSLS_COMPILERFEATURES_FILLT( 7)
177024 >::emplace(const t_ARG_01& arg_01,
177025 const t_ARG_02& arg_02,
177026 const t_ARG_03& arg_03,
177027 const t_ARG_04& arg_04,
177028 const t_ARG_05& arg_05,
177029 const t_ARG_06& arg_06,
177030 const t_ARG_07& arg_07)
177031{
177032 Variant_Base::template baseEmplace<t_INDEX>(
177033 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177034
177035 return bsl::get<t_INDEX>(*this);
177036}
177037#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
177038
177039#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
177040template <class t_HEAD, class t_TAIL_01,
177041 class t_TAIL_02,
177042 class t_TAIL_03,
177043 class t_TAIL_04,
177044 class t_TAIL_05,
177045 class t_TAIL_06,
177046 class t_TAIL_07,
177047 class t_TAIL_08,
177048 class t_TAIL_09,
177049 class t_TAIL_10,
177050 class t_TAIL_11,
177051 class t_TAIL_12>
177052template <size_t t_INDEX,
177053 class t_ARG_01,
177054 class t_ARG_02,
177055 class t_ARG_03,
177056 class t_ARG_04,
177057 class t_ARG_05,
177058 class t_ARG_06,
177059 class t_ARG_07>
177060typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177061 t_TAIL_02,
177062 t_TAIL_03,
177063 t_TAIL_04,
177064 t_TAIL_05,
177065 t_TAIL_06,
177066 t_TAIL_07,
177067 t_TAIL_08,
177068 t_TAIL_09,
177069 t_TAIL_10,
177070 t_TAIL_11,
177071 t_TAIL_12> >::type&
177072variant<t_HEAD, t_TAIL_01,
177073 t_TAIL_02,
177074 t_TAIL_03,
177075 t_TAIL_04,
177076 t_TAIL_05,
177077 t_TAIL_06,
177078 t_TAIL_07,
177079 t_TAIL_08,
177080 t_TAIL_09,
177081 t_TAIL_10,
177082 t_TAIL_11,
177083 t_TAIL_12,
177084 BSLS_COMPILERFEATURES_FILLT( 6)
177085 >::emplace(const t_ARG_01& arg_01,
177086 const t_ARG_02& arg_02,
177087 const t_ARG_03& arg_03,
177088 const t_ARG_04& arg_04,
177089 const t_ARG_05& arg_05,
177090 const t_ARG_06& arg_06,
177091 const t_ARG_07& arg_07)
177092{
177093 Variant_Base::template baseEmplace<t_INDEX>(
177094 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177095
177096 return bsl::get<t_INDEX>(*this);
177097}
177098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
177099
177100#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
177101template <class t_HEAD, class t_TAIL_01,
177102 class t_TAIL_02,
177103 class t_TAIL_03,
177104 class t_TAIL_04,
177105 class t_TAIL_05,
177106 class t_TAIL_06,
177107 class t_TAIL_07,
177108 class t_TAIL_08,
177109 class t_TAIL_09,
177110 class t_TAIL_10,
177111 class t_TAIL_11,
177112 class t_TAIL_12,
177113 class t_TAIL_13>
177114template <size_t t_INDEX,
177115 class t_ARG_01,
177116 class t_ARG_02,
177117 class t_ARG_03,
177118 class t_ARG_04,
177119 class t_ARG_05,
177120 class t_ARG_06,
177121 class t_ARG_07>
177122typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177123 t_TAIL_02,
177124 t_TAIL_03,
177125 t_TAIL_04,
177126 t_TAIL_05,
177127 t_TAIL_06,
177128 t_TAIL_07,
177129 t_TAIL_08,
177130 t_TAIL_09,
177131 t_TAIL_10,
177132 t_TAIL_11,
177133 t_TAIL_12,
177134 t_TAIL_13> >::type&
177135variant<t_HEAD, t_TAIL_01,
177136 t_TAIL_02,
177137 t_TAIL_03,
177138 t_TAIL_04,
177139 t_TAIL_05,
177140 t_TAIL_06,
177141 t_TAIL_07,
177142 t_TAIL_08,
177143 t_TAIL_09,
177144 t_TAIL_10,
177145 t_TAIL_11,
177146 t_TAIL_12,
177147 t_TAIL_13,
177148 BSLS_COMPILERFEATURES_FILLT( 5)
177149 >::emplace(const t_ARG_01& arg_01,
177150 const t_ARG_02& arg_02,
177151 const t_ARG_03& arg_03,
177152 const t_ARG_04& arg_04,
177153 const t_ARG_05& arg_05,
177154 const t_ARG_06& arg_06,
177155 const t_ARG_07& arg_07)
177156{
177157 Variant_Base::template baseEmplace<t_INDEX>(
177158 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177159
177160 return bsl::get<t_INDEX>(*this);
177161}
177162#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
177163
177164#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
177165template <class t_HEAD, class t_TAIL_01,
177166 class t_TAIL_02,
177167 class t_TAIL_03,
177168 class t_TAIL_04,
177169 class t_TAIL_05,
177170 class t_TAIL_06,
177171 class t_TAIL_07,
177172 class t_TAIL_08,
177173 class t_TAIL_09,
177174 class t_TAIL_10,
177175 class t_TAIL_11,
177176 class t_TAIL_12,
177177 class t_TAIL_13,
177178 class t_TAIL_14>
177179template <size_t t_INDEX,
177180 class t_ARG_01,
177181 class t_ARG_02,
177182 class t_ARG_03,
177183 class t_ARG_04,
177184 class t_ARG_05,
177185 class t_ARG_06,
177186 class t_ARG_07>
177187typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177188 t_TAIL_02,
177189 t_TAIL_03,
177190 t_TAIL_04,
177191 t_TAIL_05,
177192 t_TAIL_06,
177193 t_TAIL_07,
177194 t_TAIL_08,
177195 t_TAIL_09,
177196 t_TAIL_10,
177197 t_TAIL_11,
177198 t_TAIL_12,
177199 t_TAIL_13,
177200 t_TAIL_14> >::type&
177201variant<t_HEAD, t_TAIL_01,
177202 t_TAIL_02,
177203 t_TAIL_03,
177204 t_TAIL_04,
177205 t_TAIL_05,
177206 t_TAIL_06,
177207 t_TAIL_07,
177208 t_TAIL_08,
177209 t_TAIL_09,
177210 t_TAIL_10,
177211 t_TAIL_11,
177212 t_TAIL_12,
177213 t_TAIL_13,
177214 t_TAIL_14,
177215 BSLS_COMPILERFEATURES_FILLT( 4)
177216 >::emplace(const t_ARG_01& arg_01,
177217 const t_ARG_02& arg_02,
177218 const t_ARG_03& arg_03,
177219 const t_ARG_04& arg_04,
177220 const t_ARG_05& arg_05,
177221 const t_ARG_06& arg_06,
177222 const t_ARG_07& arg_07)
177223{
177224 Variant_Base::template baseEmplace<t_INDEX>(
177225 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177226
177227 return bsl::get<t_INDEX>(*this);
177228}
177229#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
177230
177231#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
177232template <class t_HEAD, class t_TAIL_01,
177233 class t_TAIL_02,
177234 class t_TAIL_03,
177235 class t_TAIL_04,
177236 class t_TAIL_05,
177237 class t_TAIL_06,
177238 class t_TAIL_07,
177239 class t_TAIL_08,
177240 class t_TAIL_09,
177241 class t_TAIL_10,
177242 class t_TAIL_11,
177243 class t_TAIL_12,
177244 class t_TAIL_13,
177245 class t_TAIL_14,
177246 class t_TAIL_15>
177247template <size_t t_INDEX,
177248 class t_ARG_01,
177249 class t_ARG_02,
177250 class t_ARG_03,
177251 class t_ARG_04,
177252 class t_ARG_05,
177253 class t_ARG_06,
177254 class t_ARG_07>
177255typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177256 t_TAIL_02,
177257 t_TAIL_03,
177258 t_TAIL_04,
177259 t_TAIL_05,
177260 t_TAIL_06,
177261 t_TAIL_07,
177262 t_TAIL_08,
177263 t_TAIL_09,
177264 t_TAIL_10,
177265 t_TAIL_11,
177266 t_TAIL_12,
177267 t_TAIL_13,
177268 t_TAIL_14,
177269 t_TAIL_15> >::type&
177270variant<t_HEAD, t_TAIL_01,
177271 t_TAIL_02,
177272 t_TAIL_03,
177273 t_TAIL_04,
177274 t_TAIL_05,
177275 t_TAIL_06,
177276 t_TAIL_07,
177277 t_TAIL_08,
177278 t_TAIL_09,
177279 t_TAIL_10,
177280 t_TAIL_11,
177281 t_TAIL_12,
177282 t_TAIL_13,
177283 t_TAIL_14,
177284 t_TAIL_15,
177285 BSLS_COMPILERFEATURES_FILLT( 3)
177286 >::emplace(const t_ARG_01& arg_01,
177287 const t_ARG_02& arg_02,
177288 const t_ARG_03& arg_03,
177289 const t_ARG_04& arg_04,
177290 const t_ARG_05& arg_05,
177291 const t_ARG_06& arg_06,
177292 const t_ARG_07& arg_07)
177293{
177294 Variant_Base::template baseEmplace<t_INDEX>(
177295 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177296
177297 return bsl::get<t_INDEX>(*this);
177298}
177299#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
177300
177301#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
177302template <class t_HEAD, class t_TAIL_01,
177303 class t_TAIL_02,
177304 class t_TAIL_03,
177305 class t_TAIL_04,
177306 class t_TAIL_05,
177307 class t_TAIL_06,
177308 class t_TAIL_07,
177309 class t_TAIL_08,
177310 class t_TAIL_09,
177311 class t_TAIL_10,
177312 class t_TAIL_11,
177313 class t_TAIL_12,
177314 class t_TAIL_13,
177315 class t_TAIL_14,
177316 class t_TAIL_15,
177317 class t_TAIL_16>
177318template <size_t t_INDEX,
177319 class t_ARG_01,
177320 class t_ARG_02,
177321 class t_ARG_03,
177322 class t_ARG_04,
177323 class t_ARG_05,
177324 class t_ARG_06,
177325 class t_ARG_07>
177326typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177327 t_TAIL_02,
177328 t_TAIL_03,
177329 t_TAIL_04,
177330 t_TAIL_05,
177331 t_TAIL_06,
177332 t_TAIL_07,
177333 t_TAIL_08,
177334 t_TAIL_09,
177335 t_TAIL_10,
177336 t_TAIL_11,
177337 t_TAIL_12,
177338 t_TAIL_13,
177339 t_TAIL_14,
177340 t_TAIL_15,
177341 t_TAIL_16> >::type&
177342variant<t_HEAD, t_TAIL_01,
177343 t_TAIL_02,
177344 t_TAIL_03,
177345 t_TAIL_04,
177346 t_TAIL_05,
177347 t_TAIL_06,
177348 t_TAIL_07,
177349 t_TAIL_08,
177350 t_TAIL_09,
177351 t_TAIL_10,
177352 t_TAIL_11,
177353 t_TAIL_12,
177354 t_TAIL_13,
177355 t_TAIL_14,
177356 t_TAIL_15,
177357 t_TAIL_16,
177358 BSLS_COMPILERFEATURES_FILLT( 2)
177359 >::emplace(const t_ARG_01& arg_01,
177360 const t_ARG_02& arg_02,
177361 const t_ARG_03& arg_03,
177362 const t_ARG_04& arg_04,
177363 const t_ARG_05& arg_05,
177364 const t_ARG_06& arg_06,
177365 const t_ARG_07& arg_07)
177366{
177367 Variant_Base::template baseEmplace<t_INDEX>(
177368 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177369
177370 return bsl::get<t_INDEX>(*this);
177371}
177372#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
177373
177374#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
177375template <class t_HEAD, class t_TAIL_01,
177376 class t_TAIL_02,
177377 class t_TAIL_03,
177378 class t_TAIL_04,
177379 class t_TAIL_05,
177380 class t_TAIL_06,
177381 class t_TAIL_07,
177382 class t_TAIL_08,
177383 class t_TAIL_09,
177384 class t_TAIL_10,
177385 class t_TAIL_11,
177386 class t_TAIL_12,
177387 class t_TAIL_13,
177388 class t_TAIL_14,
177389 class t_TAIL_15,
177390 class t_TAIL_16,
177391 class t_TAIL_17>
177392template <size_t t_INDEX,
177393 class t_ARG_01,
177394 class t_ARG_02,
177395 class t_ARG_03,
177396 class t_ARG_04,
177397 class t_ARG_05,
177398 class t_ARG_06,
177399 class t_ARG_07>
177400typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177401 t_TAIL_02,
177402 t_TAIL_03,
177403 t_TAIL_04,
177404 t_TAIL_05,
177405 t_TAIL_06,
177406 t_TAIL_07,
177407 t_TAIL_08,
177408 t_TAIL_09,
177409 t_TAIL_10,
177410 t_TAIL_11,
177411 t_TAIL_12,
177412 t_TAIL_13,
177413 t_TAIL_14,
177414 t_TAIL_15,
177415 t_TAIL_16,
177416 t_TAIL_17> >::type&
177417variant<t_HEAD, t_TAIL_01,
177418 t_TAIL_02,
177419 t_TAIL_03,
177420 t_TAIL_04,
177421 t_TAIL_05,
177422 t_TAIL_06,
177423 t_TAIL_07,
177424 t_TAIL_08,
177425 t_TAIL_09,
177426 t_TAIL_10,
177427 t_TAIL_11,
177428 t_TAIL_12,
177429 t_TAIL_13,
177430 t_TAIL_14,
177431 t_TAIL_15,
177432 t_TAIL_16,
177433 t_TAIL_17,
177434 BSLS_COMPILERFEATURES_FILLT( 1)
177435 >::emplace(const t_ARG_01& arg_01,
177436 const t_ARG_02& arg_02,
177437 const t_ARG_03& arg_03,
177438 const t_ARG_04& arg_04,
177439 const t_ARG_05& arg_05,
177440 const t_ARG_06& arg_06,
177441 const t_ARG_07& arg_07)
177442{
177443 Variant_Base::template baseEmplace<t_INDEX>(
177444 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177445
177446 return bsl::get<t_INDEX>(*this);
177447}
177448#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
177449
177450#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
177451template <class t_HEAD, class t_TAIL_01,
177452 class t_TAIL_02,
177453 class t_TAIL_03,
177454 class t_TAIL_04,
177455 class t_TAIL_05,
177456 class t_TAIL_06,
177457 class t_TAIL_07,
177458 class t_TAIL_08,
177459 class t_TAIL_09,
177460 class t_TAIL_10,
177461 class t_TAIL_11,
177462 class t_TAIL_12,
177463 class t_TAIL_13,
177464 class t_TAIL_14,
177465 class t_TAIL_15,
177466 class t_TAIL_16,
177467 class t_TAIL_17,
177468 class t_TAIL_18>
177469template <size_t t_INDEX,
177470 class t_ARG_01,
177471 class t_ARG_02,
177472 class t_ARG_03,
177473 class t_ARG_04,
177474 class t_ARG_05,
177475 class t_ARG_06,
177476 class t_ARG_07>
177477typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177478 t_TAIL_02,
177479 t_TAIL_03,
177480 t_TAIL_04,
177481 t_TAIL_05,
177482 t_TAIL_06,
177483 t_TAIL_07,
177484 t_TAIL_08,
177485 t_TAIL_09,
177486 t_TAIL_10,
177487 t_TAIL_11,
177488 t_TAIL_12,
177489 t_TAIL_13,
177490 t_TAIL_14,
177491 t_TAIL_15,
177492 t_TAIL_16,
177493 t_TAIL_17,
177494 t_TAIL_18> >::type&
177495variant<t_HEAD, t_TAIL_01,
177496 t_TAIL_02,
177497 t_TAIL_03,
177498 t_TAIL_04,
177499 t_TAIL_05,
177500 t_TAIL_06,
177501 t_TAIL_07,
177502 t_TAIL_08,
177503 t_TAIL_09,
177504 t_TAIL_10,
177505 t_TAIL_11,
177506 t_TAIL_12,
177507 t_TAIL_13,
177508 t_TAIL_14,
177509 t_TAIL_15,
177510 t_TAIL_16,
177511 t_TAIL_17,
177512 t_TAIL_18,
177513 BSLS_COMPILERFEATURES_FILLT( 0)
177514 >::emplace(const t_ARG_01& arg_01,
177515 const t_ARG_02& arg_02,
177516 const t_ARG_03& arg_03,
177517 const t_ARG_04& arg_04,
177518 const t_ARG_05& arg_05,
177519 const t_ARG_06& arg_06,
177520 const t_ARG_07& arg_07)
177521{
177522 Variant_Base::template baseEmplace<t_INDEX>(
177523 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
177524
177525 return bsl::get<t_INDEX>(*this);
177526}
177527#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
177528
177529
177530#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
177531template <class t_HEAD>
177532template <size_t t_INDEX,
177533 class t_ARG_01,
177534 class t_ARG_02,
177535 class t_ARG_03,
177536 class t_ARG_04,
177537 class t_ARG_05,
177538 class t_ARG_06,
177539 class t_ARG_07,
177540 class t_ARG_08>
177541typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
177542variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
177543 >::emplace(const t_ARG_01& arg_01,
177544 const t_ARG_02& arg_02,
177545 const t_ARG_03& arg_03,
177546 const t_ARG_04& arg_04,
177547 const t_ARG_05& arg_05,
177548 const t_ARG_06& arg_06,
177549 const t_ARG_07& arg_07,
177550 const t_ARG_08& arg_08)
177551{
177552 Variant_Base::template baseEmplace<t_INDEX>(
177553 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177554
177555 return bsl::get<t_INDEX>(*this);
177556}
177557#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
177558
177559#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
177560template <class t_HEAD, class t_TAIL_01>
177561template <size_t t_INDEX,
177562 class t_ARG_01,
177563 class t_ARG_02,
177564 class t_ARG_03,
177565 class t_ARG_04,
177566 class t_ARG_05,
177567 class t_ARG_06,
177568 class t_ARG_07,
177569 class t_ARG_08>
177570typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
177571variant<t_HEAD, t_TAIL_01,
177572 BSLS_COMPILERFEATURES_FILLT(17)
177573 >::emplace(const t_ARG_01& arg_01,
177574 const t_ARG_02& arg_02,
177575 const t_ARG_03& arg_03,
177576 const t_ARG_04& arg_04,
177577 const t_ARG_05& arg_05,
177578 const t_ARG_06& arg_06,
177579 const t_ARG_07& arg_07,
177580 const t_ARG_08& arg_08)
177581{
177582 Variant_Base::template baseEmplace<t_INDEX>(
177583 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177584
177585 return bsl::get<t_INDEX>(*this);
177586}
177587#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
177588
177589#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
177590template <class t_HEAD, class t_TAIL_01,
177591 class t_TAIL_02>
177592template <size_t t_INDEX,
177593 class t_ARG_01,
177594 class t_ARG_02,
177595 class t_ARG_03,
177596 class t_ARG_04,
177597 class t_ARG_05,
177598 class t_ARG_06,
177599 class t_ARG_07,
177600 class t_ARG_08>
177601typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177602 t_TAIL_02> >::type&
177603variant<t_HEAD, t_TAIL_01,
177604 t_TAIL_02,
177605 BSLS_COMPILERFEATURES_FILLT(16)
177606 >::emplace(const t_ARG_01& arg_01,
177607 const t_ARG_02& arg_02,
177608 const t_ARG_03& arg_03,
177609 const t_ARG_04& arg_04,
177610 const t_ARG_05& arg_05,
177611 const t_ARG_06& arg_06,
177612 const t_ARG_07& arg_07,
177613 const t_ARG_08& arg_08)
177614{
177615 Variant_Base::template baseEmplace<t_INDEX>(
177616 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177617
177618 return bsl::get<t_INDEX>(*this);
177619}
177620#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
177621
177622#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
177623template <class t_HEAD, class t_TAIL_01,
177624 class t_TAIL_02,
177625 class t_TAIL_03>
177626template <size_t t_INDEX,
177627 class t_ARG_01,
177628 class t_ARG_02,
177629 class t_ARG_03,
177630 class t_ARG_04,
177631 class t_ARG_05,
177632 class t_ARG_06,
177633 class t_ARG_07,
177634 class t_ARG_08>
177635typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177636 t_TAIL_02,
177637 t_TAIL_03> >::type&
177638variant<t_HEAD, t_TAIL_01,
177639 t_TAIL_02,
177640 t_TAIL_03,
177641 BSLS_COMPILERFEATURES_FILLT(15)
177642 >::emplace(const t_ARG_01& arg_01,
177643 const t_ARG_02& arg_02,
177644 const t_ARG_03& arg_03,
177645 const t_ARG_04& arg_04,
177646 const t_ARG_05& arg_05,
177647 const t_ARG_06& arg_06,
177648 const t_ARG_07& arg_07,
177649 const t_ARG_08& arg_08)
177650{
177651 Variant_Base::template baseEmplace<t_INDEX>(
177652 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177653
177654 return bsl::get<t_INDEX>(*this);
177655}
177656#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
177657
177658#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
177659template <class t_HEAD, class t_TAIL_01,
177660 class t_TAIL_02,
177661 class t_TAIL_03,
177662 class t_TAIL_04>
177663template <size_t t_INDEX,
177664 class t_ARG_01,
177665 class t_ARG_02,
177666 class t_ARG_03,
177667 class t_ARG_04,
177668 class t_ARG_05,
177669 class t_ARG_06,
177670 class t_ARG_07,
177671 class t_ARG_08>
177672typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177673 t_TAIL_02,
177674 t_TAIL_03,
177675 t_TAIL_04> >::type&
177676variant<t_HEAD, t_TAIL_01,
177677 t_TAIL_02,
177678 t_TAIL_03,
177679 t_TAIL_04,
177680 BSLS_COMPILERFEATURES_FILLT(14)
177681 >::emplace(const t_ARG_01& arg_01,
177682 const t_ARG_02& arg_02,
177683 const t_ARG_03& arg_03,
177684 const t_ARG_04& arg_04,
177685 const t_ARG_05& arg_05,
177686 const t_ARG_06& arg_06,
177687 const t_ARG_07& arg_07,
177688 const t_ARG_08& arg_08)
177689{
177690 Variant_Base::template baseEmplace<t_INDEX>(
177691 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177692
177693 return bsl::get<t_INDEX>(*this);
177694}
177695#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
177696
177697#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
177698template <class t_HEAD, class t_TAIL_01,
177699 class t_TAIL_02,
177700 class t_TAIL_03,
177701 class t_TAIL_04,
177702 class t_TAIL_05>
177703template <size_t t_INDEX,
177704 class t_ARG_01,
177705 class t_ARG_02,
177706 class t_ARG_03,
177707 class t_ARG_04,
177708 class t_ARG_05,
177709 class t_ARG_06,
177710 class t_ARG_07,
177711 class t_ARG_08>
177712typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177713 t_TAIL_02,
177714 t_TAIL_03,
177715 t_TAIL_04,
177716 t_TAIL_05> >::type&
177717variant<t_HEAD, t_TAIL_01,
177718 t_TAIL_02,
177719 t_TAIL_03,
177720 t_TAIL_04,
177721 t_TAIL_05,
177722 BSLS_COMPILERFEATURES_FILLT(13)
177723 >::emplace(const t_ARG_01& arg_01,
177724 const t_ARG_02& arg_02,
177725 const t_ARG_03& arg_03,
177726 const t_ARG_04& arg_04,
177727 const t_ARG_05& arg_05,
177728 const t_ARG_06& arg_06,
177729 const t_ARG_07& arg_07,
177730 const t_ARG_08& arg_08)
177731{
177732 Variant_Base::template baseEmplace<t_INDEX>(
177733 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177734
177735 return bsl::get<t_INDEX>(*this);
177736}
177737#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
177738
177739#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
177740template <class t_HEAD, class t_TAIL_01,
177741 class t_TAIL_02,
177742 class t_TAIL_03,
177743 class t_TAIL_04,
177744 class t_TAIL_05,
177745 class t_TAIL_06>
177746template <size_t t_INDEX,
177747 class t_ARG_01,
177748 class t_ARG_02,
177749 class t_ARG_03,
177750 class t_ARG_04,
177751 class t_ARG_05,
177752 class t_ARG_06,
177753 class t_ARG_07,
177754 class t_ARG_08>
177755typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177756 t_TAIL_02,
177757 t_TAIL_03,
177758 t_TAIL_04,
177759 t_TAIL_05,
177760 t_TAIL_06> >::type&
177761variant<t_HEAD, t_TAIL_01,
177762 t_TAIL_02,
177763 t_TAIL_03,
177764 t_TAIL_04,
177765 t_TAIL_05,
177766 t_TAIL_06,
177767 BSLS_COMPILERFEATURES_FILLT(12)
177768 >::emplace(const t_ARG_01& arg_01,
177769 const t_ARG_02& arg_02,
177770 const t_ARG_03& arg_03,
177771 const t_ARG_04& arg_04,
177772 const t_ARG_05& arg_05,
177773 const t_ARG_06& arg_06,
177774 const t_ARG_07& arg_07,
177775 const t_ARG_08& arg_08)
177776{
177777 Variant_Base::template baseEmplace<t_INDEX>(
177778 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177779
177780 return bsl::get<t_INDEX>(*this);
177781}
177782#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
177783
177784#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
177785template <class t_HEAD, class t_TAIL_01,
177786 class t_TAIL_02,
177787 class t_TAIL_03,
177788 class t_TAIL_04,
177789 class t_TAIL_05,
177790 class t_TAIL_06,
177791 class t_TAIL_07>
177792template <size_t t_INDEX,
177793 class t_ARG_01,
177794 class t_ARG_02,
177795 class t_ARG_03,
177796 class t_ARG_04,
177797 class t_ARG_05,
177798 class t_ARG_06,
177799 class t_ARG_07,
177800 class t_ARG_08>
177801typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177802 t_TAIL_02,
177803 t_TAIL_03,
177804 t_TAIL_04,
177805 t_TAIL_05,
177806 t_TAIL_06,
177807 t_TAIL_07> >::type&
177808variant<t_HEAD, t_TAIL_01,
177809 t_TAIL_02,
177810 t_TAIL_03,
177811 t_TAIL_04,
177812 t_TAIL_05,
177813 t_TAIL_06,
177814 t_TAIL_07,
177815 BSLS_COMPILERFEATURES_FILLT(11)
177816 >::emplace(const t_ARG_01& arg_01,
177817 const t_ARG_02& arg_02,
177818 const t_ARG_03& arg_03,
177819 const t_ARG_04& arg_04,
177820 const t_ARG_05& arg_05,
177821 const t_ARG_06& arg_06,
177822 const t_ARG_07& arg_07,
177823 const t_ARG_08& arg_08)
177824{
177825 Variant_Base::template baseEmplace<t_INDEX>(
177826 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177827
177828 return bsl::get<t_INDEX>(*this);
177829}
177830#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
177831
177832#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
177833template <class t_HEAD, class t_TAIL_01,
177834 class t_TAIL_02,
177835 class t_TAIL_03,
177836 class t_TAIL_04,
177837 class t_TAIL_05,
177838 class t_TAIL_06,
177839 class t_TAIL_07,
177840 class t_TAIL_08>
177841template <size_t t_INDEX,
177842 class t_ARG_01,
177843 class t_ARG_02,
177844 class t_ARG_03,
177845 class t_ARG_04,
177846 class t_ARG_05,
177847 class t_ARG_06,
177848 class t_ARG_07,
177849 class t_ARG_08>
177850typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177851 t_TAIL_02,
177852 t_TAIL_03,
177853 t_TAIL_04,
177854 t_TAIL_05,
177855 t_TAIL_06,
177856 t_TAIL_07,
177857 t_TAIL_08> >::type&
177858variant<t_HEAD, t_TAIL_01,
177859 t_TAIL_02,
177860 t_TAIL_03,
177861 t_TAIL_04,
177862 t_TAIL_05,
177863 t_TAIL_06,
177864 t_TAIL_07,
177865 t_TAIL_08,
177866 BSLS_COMPILERFEATURES_FILLT(10)
177867 >::emplace(const t_ARG_01& arg_01,
177868 const t_ARG_02& arg_02,
177869 const t_ARG_03& arg_03,
177870 const t_ARG_04& arg_04,
177871 const t_ARG_05& arg_05,
177872 const t_ARG_06& arg_06,
177873 const t_ARG_07& arg_07,
177874 const t_ARG_08& arg_08)
177875{
177876 Variant_Base::template baseEmplace<t_INDEX>(
177877 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177878
177879 return bsl::get<t_INDEX>(*this);
177880}
177881#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
177882
177883#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
177884template <class t_HEAD, class t_TAIL_01,
177885 class t_TAIL_02,
177886 class t_TAIL_03,
177887 class t_TAIL_04,
177888 class t_TAIL_05,
177889 class t_TAIL_06,
177890 class t_TAIL_07,
177891 class t_TAIL_08,
177892 class t_TAIL_09>
177893template <size_t t_INDEX,
177894 class t_ARG_01,
177895 class t_ARG_02,
177896 class t_ARG_03,
177897 class t_ARG_04,
177898 class t_ARG_05,
177899 class t_ARG_06,
177900 class t_ARG_07,
177901 class t_ARG_08>
177902typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177903 t_TAIL_02,
177904 t_TAIL_03,
177905 t_TAIL_04,
177906 t_TAIL_05,
177907 t_TAIL_06,
177908 t_TAIL_07,
177909 t_TAIL_08,
177910 t_TAIL_09> >::type&
177911variant<t_HEAD, t_TAIL_01,
177912 t_TAIL_02,
177913 t_TAIL_03,
177914 t_TAIL_04,
177915 t_TAIL_05,
177916 t_TAIL_06,
177917 t_TAIL_07,
177918 t_TAIL_08,
177919 t_TAIL_09,
177920 BSLS_COMPILERFEATURES_FILLT( 9)
177921 >::emplace(const t_ARG_01& arg_01,
177922 const t_ARG_02& arg_02,
177923 const t_ARG_03& arg_03,
177924 const t_ARG_04& arg_04,
177925 const t_ARG_05& arg_05,
177926 const t_ARG_06& arg_06,
177927 const t_ARG_07& arg_07,
177928 const t_ARG_08& arg_08)
177929{
177930 Variant_Base::template baseEmplace<t_INDEX>(
177931 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177932
177933 return bsl::get<t_INDEX>(*this);
177934}
177935#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
177936
177937#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
177938template <class t_HEAD, class t_TAIL_01,
177939 class t_TAIL_02,
177940 class t_TAIL_03,
177941 class t_TAIL_04,
177942 class t_TAIL_05,
177943 class t_TAIL_06,
177944 class t_TAIL_07,
177945 class t_TAIL_08,
177946 class t_TAIL_09,
177947 class t_TAIL_10>
177948template <size_t t_INDEX,
177949 class t_ARG_01,
177950 class t_ARG_02,
177951 class t_ARG_03,
177952 class t_ARG_04,
177953 class t_ARG_05,
177954 class t_ARG_06,
177955 class t_ARG_07,
177956 class t_ARG_08>
177957typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
177958 t_TAIL_02,
177959 t_TAIL_03,
177960 t_TAIL_04,
177961 t_TAIL_05,
177962 t_TAIL_06,
177963 t_TAIL_07,
177964 t_TAIL_08,
177965 t_TAIL_09,
177966 t_TAIL_10> >::type&
177967variant<t_HEAD, t_TAIL_01,
177968 t_TAIL_02,
177969 t_TAIL_03,
177970 t_TAIL_04,
177971 t_TAIL_05,
177972 t_TAIL_06,
177973 t_TAIL_07,
177974 t_TAIL_08,
177975 t_TAIL_09,
177976 t_TAIL_10,
177977 BSLS_COMPILERFEATURES_FILLT( 8)
177978 >::emplace(const t_ARG_01& arg_01,
177979 const t_ARG_02& arg_02,
177980 const t_ARG_03& arg_03,
177981 const t_ARG_04& arg_04,
177982 const t_ARG_05& arg_05,
177983 const t_ARG_06& arg_06,
177984 const t_ARG_07& arg_07,
177985 const t_ARG_08& arg_08)
177986{
177987 Variant_Base::template baseEmplace<t_INDEX>(
177988 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
177989
177990 return bsl::get<t_INDEX>(*this);
177991}
177992#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
177993
177994#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
177995template <class t_HEAD, class t_TAIL_01,
177996 class t_TAIL_02,
177997 class t_TAIL_03,
177998 class t_TAIL_04,
177999 class t_TAIL_05,
178000 class t_TAIL_06,
178001 class t_TAIL_07,
178002 class t_TAIL_08,
178003 class t_TAIL_09,
178004 class t_TAIL_10,
178005 class t_TAIL_11>
178006template <size_t t_INDEX,
178007 class t_ARG_01,
178008 class t_ARG_02,
178009 class t_ARG_03,
178010 class t_ARG_04,
178011 class t_ARG_05,
178012 class t_ARG_06,
178013 class t_ARG_07,
178014 class t_ARG_08>
178015typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178016 t_TAIL_02,
178017 t_TAIL_03,
178018 t_TAIL_04,
178019 t_TAIL_05,
178020 t_TAIL_06,
178021 t_TAIL_07,
178022 t_TAIL_08,
178023 t_TAIL_09,
178024 t_TAIL_10,
178025 t_TAIL_11> >::type&
178026variant<t_HEAD, t_TAIL_01,
178027 t_TAIL_02,
178028 t_TAIL_03,
178029 t_TAIL_04,
178030 t_TAIL_05,
178031 t_TAIL_06,
178032 t_TAIL_07,
178033 t_TAIL_08,
178034 t_TAIL_09,
178035 t_TAIL_10,
178036 t_TAIL_11,
178037 BSLS_COMPILERFEATURES_FILLT( 7)
178038 >::emplace(const t_ARG_01& arg_01,
178039 const t_ARG_02& arg_02,
178040 const t_ARG_03& arg_03,
178041 const t_ARG_04& arg_04,
178042 const t_ARG_05& arg_05,
178043 const t_ARG_06& arg_06,
178044 const t_ARG_07& arg_07,
178045 const t_ARG_08& arg_08)
178046{
178047 Variant_Base::template baseEmplace<t_INDEX>(
178048 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178049
178050 return bsl::get<t_INDEX>(*this);
178051}
178052#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
178053
178054#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
178055template <class t_HEAD, class t_TAIL_01,
178056 class t_TAIL_02,
178057 class t_TAIL_03,
178058 class t_TAIL_04,
178059 class t_TAIL_05,
178060 class t_TAIL_06,
178061 class t_TAIL_07,
178062 class t_TAIL_08,
178063 class t_TAIL_09,
178064 class t_TAIL_10,
178065 class t_TAIL_11,
178066 class t_TAIL_12>
178067template <size_t t_INDEX,
178068 class t_ARG_01,
178069 class t_ARG_02,
178070 class t_ARG_03,
178071 class t_ARG_04,
178072 class t_ARG_05,
178073 class t_ARG_06,
178074 class t_ARG_07,
178075 class t_ARG_08>
178076typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178077 t_TAIL_02,
178078 t_TAIL_03,
178079 t_TAIL_04,
178080 t_TAIL_05,
178081 t_TAIL_06,
178082 t_TAIL_07,
178083 t_TAIL_08,
178084 t_TAIL_09,
178085 t_TAIL_10,
178086 t_TAIL_11,
178087 t_TAIL_12> >::type&
178088variant<t_HEAD, t_TAIL_01,
178089 t_TAIL_02,
178090 t_TAIL_03,
178091 t_TAIL_04,
178092 t_TAIL_05,
178093 t_TAIL_06,
178094 t_TAIL_07,
178095 t_TAIL_08,
178096 t_TAIL_09,
178097 t_TAIL_10,
178098 t_TAIL_11,
178099 t_TAIL_12,
178100 BSLS_COMPILERFEATURES_FILLT( 6)
178101 >::emplace(const t_ARG_01& arg_01,
178102 const t_ARG_02& arg_02,
178103 const t_ARG_03& arg_03,
178104 const t_ARG_04& arg_04,
178105 const t_ARG_05& arg_05,
178106 const t_ARG_06& arg_06,
178107 const t_ARG_07& arg_07,
178108 const t_ARG_08& arg_08)
178109{
178110 Variant_Base::template baseEmplace<t_INDEX>(
178111 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178112
178113 return bsl::get<t_INDEX>(*this);
178114}
178115#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
178116
178117#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
178118template <class t_HEAD, class t_TAIL_01,
178119 class t_TAIL_02,
178120 class t_TAIL_03,
178121 class t_TAIL_04,
178122 class t_TAIL_05,
178123 class t_TAIL_06,
178124 class t_TAIL_07,
178125 class t_TAIL_08,
178126 class t_TAIL_09,
178127 class t_TAIL_10,
178128 class t_TAIL_11,
178129 class t_TAIL_12,
178130 class t_TAIL_13>
178131template <size_t t_INDEX,
178132 class t_ARG_01,
178133 class t_ARG_02,
178134 class t_ARG_03,
178135 class t_ARG_04,
178136 class t_ARG_05,
178137 class t_ARG_06,
178138 class t_ARG_07,
178139 class t_ARG_08>
178140typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178141 t_TAIL_02,
178142 t_TAIL_03,
178143 t_TAIL_04,
178144 t_TAIL_05,
178145 t_TAIL_06,
178146 t_TAIL_07,
178147 t_TAIL_08,
178148 t_TAIL_09,
178149 t_TAIL_10,
178150 t_TAIL_11,
178151 t_TAIL_12,
178152 t_TAIL_13> >::type&
178153variant<t_HEAD, t_TAIL_01,
178154 t_TAIL_02,
178155 t_TAIL_03,
178156 t_TAIL_04,
178157 t_TAIL_05,
178158 t_TAIL_06,
178159 t_TAIL_07,
178160 t_TAIL_08,
178161 t_TAIL_09,
178162 t_TAIL_10,
178163 t_TAIL_11,
178164 t_TAIL_12,
178165 t_TAIL_13,
178166 BSLS_COMPILERFEATURES_FILLT( 5)
178167 >::emplace(const t_ARG_01& arg_01,
178168 const t_ARG_02& arg_02,
178169 const t_ARG_03& arg_03,
178170 const t_ARG_04& arg_04,
178171 const t_ARG_05& arg_05,
178172 const t_ARG_06& arg_06,
178173 const t_ARG_07& arg_07,
178174 const t_ARG_08& arg_08)
178175{
178176 Variant_Base::template baseEmplace<t_INDEX>(
178177 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178178
178179 return bsl::get<t_INDEX>(*this);
178180}
178181#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
178182
178183#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
178184template <class t_HEAD, class t_TAIL_01,
178185 class t_TAIL_02,
178186 class t_TAIL_03,
178187 class t_TAIL_04,
178188 class t_TAIL_05,
178189 class t_TAIL_06,
178190 class t_TAIL_07,
178191 class t_TAIL_08,
178192 class t_TAIL_09,
178193 class t_TAIL_10,
178194 class t_TAIL_11,
178195 class t_TAIL_12,
178196 class t_TAIL_13,
178197 class t_TAIL_14>
178198template <size_t t_INDEX,
178199 class t_ARG_01,
178200 class t_ARG_02,
178201 class t_ARG_03,
178202 class t_ARG_04,
178203 class t_ARG_05,
178204 class t_ARG_06,
178205 class t_ARG_07,
178206 class t_ARG_08>
178207typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178208 t_TAIL_02,
178209 t_TAIL_03,
178210 t_TAIL_04,
178211 t_TAIL_05,
178212 t_TAIL_06,
178213 t_TAIL_07,
178214 t_TAIL_08,
178215 t_TAIL_09,
178216 t_TAIL_10,
178217 t_TAIL_11,
178218 t_TAIL_12,
178219 t_TAIL_13,
178220 t_TAIL_14> >::type&
178221variant<t_HEAD, t_TAIL_01,
178222 t_TAIL_02,
178223 t_TAIL_03,
178224 t_TAIL_04,
178225 t_TAIL_05,
178226 t_TAIL_06,
178227 t_TAIL_07,
178228 t_TAIL_08,
178229 t_TAIL_09,
178230 t_TAIL_10,
178231 t_TAIL_11,
178232 t_TAIL_12,
178233 t_TAIL_13,
178234 t_TAIL_14,
178235 BSLS_COMPILERFEATURES_FILLT( 4)
178236 >::emplace(const t_ARG_01& arg_01,
178237 const t_ARG_02& arg_02,
178238 const t_ARG_03& arg_03,
178239 const t_ARG_04& arg_04,
178240 const t_ARG_05& arg_05,
178241 const t_ARG_06& arg_06,
178242 const t_ARG_07& arg_07,
178243 const t_ARG_08& arg_08)
178244{
178245 Variant_Base::template baseEmplace<t_INDEX>(
178246 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178247
178248 return bsl::get<t_INDEX>(*this);
178249}
178250#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
178251
178252#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
178253template <class t_HEAD, class t_TAIL_01,
178254 class t_TAIL_02,
178255 class t_TAIL_03,
178256 class t_TAIL_04,
178257 class t_TAIL_05,
178258 class t_TAIL_06,
178259 class t_TAIL_07,
178260 class t_TAIL_08,
178261 class t_TAIL_09,
178262 class t_TAIL_10,
178263 class t_TAIL_11,
178264 class t_TAIL_12,
178265 class t_TAIL_13,
178266 class t_TAIL_14,
178267 class t_TAIL_15>
178268template <size_t t_INDEX,
178269 class t_ARG_01,
178270 class t_ARG_02,
178271 class t_ARG_03,
178272 class t_ARG_04,
178273 class t_ARG_05,
178274 class t_ARG_06,
178275 class t_ARG_07,
178276 class t_ARG_08>
178277typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178278 t_TAIL_02,
178279 t_TAIL_03,
178280 t_TAIL_04,
178281 t_TAIL_05,
178282 t_TAIL_06,
178283 t_TAIL_07,
178284 t_TAIL_08,
178285 t_TAIL_09,
178286 t_TAIL_10,
178287 t_TAIL_11,
178288 t_TAIL_12,
178289 t_TAIL_13,
178290 t_TAIL_14,
178291 t_TAIL_15> >::type&
178292variant<t_HEAD, t_TAIL_01,
178293 t_TAIL_02,
178294 t_TAIL_03,
178295 t_TAIL_04,
178296 t_TAIL_05,
178297 t_TAIL_06,
178298 t_TAIL_07,
178299 t_TAIL_08,
178300 t_TAIL_09,
178301 t_TAIL_10,
178302 t_TAIL_11,
178303 t_TAIL_12,
178304 t_TAIL_13,
178305 t_TAIL_14,
178306 t_TAIL_15,
178307 BSLS_COMPILERFEATURES_FILLT( 3)
178308 >::emplace(const t_ARG_01& arg_01,
178309 const t_ARG_02& arg_02,
178310 const t_ARG_03& arg_03,
178311 const t_ARG_04& arg_04,
178312 const t_ARG_05& arg_05,
178313 const t_ARG_06& arg_06,
178314 const t_ARG_07& arg_07,
178315 const t_ARG_08& arg_08)
178316{
178317 Variant_Base::template baseEmplace<t_INDEX>(
178318 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178319
178320 return bsl::get<t_INDEX>(*this);
178321}
178322#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
178323
178324#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
178325template <class t_HEAD, class t_TAIL_01,
178326 class t_TAIL_02,
178327 class t_TAIL_03,
178328 class t_TAIL_04,
178329 class t_TAIL_05,
178330 class t_TAIL_06,
178331 class t_TAIL_07,
178332 class t_TAIL_08,
178333 class t_TAIL_09,
178334 class t_TAIL_10,
178335 class t_TAIL_11,
178336 class t_TAIL_12,
178337 class t_TAIL_13,
178338 class t_TAIL_14,
178339 class t_TAIL_15,
178340 class t_TAIL_16>
178341template <size_t t_INDEX,
178342 class t_ARG_01,
178343 class t_ARG_02,
178344 class t_ARG_03,
178345 class t_ARG_04,
178346 class t_ARG_05,
178347 class t_ARG_06,
178348 class t_ARG_07,
178349 class t_ARG_08>
178350typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178351 t_TAIL_02,
178352 t_TAIL_03,
178353 t_TAIL_04,
178354 t_TAIL_05,
178355 t_TAIL_06,
178356 t_TAIL_07,
178357 t_TAIL_08,
178358 t_TAIL_09,
178359 t_TAIL_10,
178360 t_TAIL_11,
178361 t_TAIL_12,
178362 t_TAIL_13,
178363 t_TAIL_14,
178364 t_TAIL_15,
178365 t_TAIL_16> >::type&
178366variant<t_HEAD, t_TAIL_01,
178367 t_TAIL_02,
178368 t_TAIL_03,
178369 t_TAIL_04,
178370 t_TAIL_05,
178371 t_TAIL_06,
178372 t_TAIL_07,
178373 t_TAIL_08,
178374 t_TAIL_09,
178375 t_TAIL_10,
178376 t_TAIL_11,
178377 t_TAIL_12,
178378 t_TAIL_13,
178379 t_TAIL_14,
178380 t_TAIL_15,
178381 t_TAIL_16,
178382 BSLS_COMPILERFEATURES_FILLT( 2)
178383 >::emplace(const t_ARG_01& arg_01,
178384 const t_ARG_02& arg_02,
178385 const t_ARG_03& arg_03,
178386 const t_ARG_04& arg_04,
178387 const t_ARG_05& arg_05,
178388 const t_ARG_06& arg_06,
178389 const t_ARG_07& arg_07,
178390 const t_ARG_08& arg_08)
178391{
178392 Variant_Base::template baseEmplace<t_INDEX>(
178393 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178394
178395 return bsl::get<t_INDEX>(*this);
178396}
178397#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
178398
178399#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
178400template <class t_HEAD, class t_TAIL_01,
178401 class t_TAIL_02,
178402 class t_TAIL_03,
178403 class t_TAIL_04,
178404 class t_TAIL_05,
178405 class t_TAIL_06,
178406 class t_TAIL_07,
178407 class t_TAIL_08,
178408 class t_TAIL_09,
178409 class t_TAIL_10,
178410 class t_TAIL_11,
178411 class t_TAIL_12,
178412 class t_TAIL_13,
178413 class t_TAIL_14,
178414 class t_TAIL_15,
178415 class t_TAIL_16,
178416 class t_TAIL_17>
178417template <size_t t_INDEX,
178418 class t_ARG_01,
178419 class t_ARG_02,
178420 class t_ARG_03,
178421 class t_ARG_04,
178422 class t_ARG_05,
178423 class t_ARG_06,
178424 class t_ARG_07,
178425 class t_ARG_08>
178426typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178427 t_TAIL_02,
178428 t_TAIL_03,
178429 t_TAIL_04,
178430 t_TAIL_05,
178431 t_TAIL_06,
178432 t_TAIL_07,
178433 t_TAIL_08,
178434 t_TAIL_09,
178435 t_TAIL_10,
178436 t_TAIL_11,
178437 t_TAIL_12,
178438 t_TAIL_13,
178439 t_TAIL_14,
178440 t_TAIL_15,
178441 t_TAIL_16,
178442 t_TAIL_17> >::type&
178443variant<t_HEAD, t_TAIL_01,
178444 t_TAIL_02,
178445 t_TAIL_03,
178446 t_TAIL_04,
178447 t_TAIL_05,
178448 t_TAIL_06,
178449 t_TAIL_07,
178450 t_TAIL_08,
178451 t_TAIL_09,
178452 t_TAIL_10,
178453 t_TAIL_11,
178454 t_TAIL_12,
178455 t_TAIL_13,
178456 t_TAIL_14,
178457 t_TAIL_15,
178458 t_TAIL_16,
178459 t_TAIL_17,
178460 BSLS_COMPILERFEATURES_FILLT( 1)
178461 >::emplace(const t_ARG_01& arg_01,
178462 const t_ARG_02& arg_02,
178463 const t_ARG_03& arg_03,
178464 const t_ARG_04& arg_04,
178465 const t_ARG_05& arg_05,
178466 const t_ARG_06& arg_06,
178467 const t_ARG_07& arg_07,
178468 const t_ARG_08& arg_08)
178469{
178470 Variant_Base::template baseEmplace<t_INDEX>(
178471 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178472
178473 return bsl::get<t_INDEX>(*this);
178474}
178475#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
178476
178477#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
178478template <class t_HEAD, class t_TAIL_01,
178479 class t_TAIL_02,
178480 class t_TAIL_03,
178481 class t_TAIL_04,
178482 class t_TAIL_05,
178483 class t_TAIL_06,
178484 class t_TAIL_07,
178485 class t_TAIL_08,
178486 class t_TAIL_09,
178487 class t_TAIL_10,
178488 class t_TAIL_11,
178489 class t_TAIL_12,
178490 class t_TAIL_13,
178491 class t_TAIL_14,
178492 class t_TAIL_15,
178493 class t_TAIL_16,
178494 class t_TAIL_17,
178495 class t_TAIL_18>
178496template <size_t t_INDEX,
178497 class t_ARG_01,
178498 class t_ARG_02,
178499 class t_ARG_03,
178500 class t_ARG_04,
178501 class t_ARG_05,
178502 class t_ARG_06,
178503 class t_ARG_07,
178504 class t_ARG_08>
178505typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178506 t_TAIL_02,
178507 t_TAIL_03,
178508 t_TAIL_04,
178509 t_TAIL_05,
178510 t_TAIL_06,
178511 t_TAIL_07,
178512 t_TAIL_08,
178513 t_TAIL_09,
178514 t_TAIL_10,
178515 t_TAIL_11,
178516 t_TAIL_12,
178517 t_TAIL_13,
178518 t_TAIL_14,
178519 t_TAIL_15,
178520 t_TAIL_16,
178521 t_TAIL_17,
178522 t_TAIL_18> >::type&
178523variant<t_HEAD, t_TAIL_01,
178524 t_TAIL_02,
178525 t_TAIL_03,
178526 t_TAIL_04,
178527 t_TAIL_05,
178528 t_TAIL_06,
178529 t_TAIL_07,
178530 t_TAIL_08,
178531 t_TAIL_09,
178532 t_TAIL_10,
178533 t_TAIL_11,
178534 t_TAIL_12,
178535 t_TAIL_13,
178536 t_TAIL_14,
178537 t_TAIL_15,
178538 t_TAIL_16,
178539 t_TAIL_17,
178540 t_TAIL_18,
178541 BSLS_COMPILERFEATURES_FILLT( 0)
178542 >::emplace(const t_ARG_01& arg_01,
178543 const t_ARG_02& arg_02,
178544 const t_ARG_03& arg_03,
178545 const t_ARG_04& arg_04,
178546 const t_ARG_05& arg_05,
178547 const t_ARG_06& arg_06,
178548 const t_ARG_07& arg_07,
178549 const t_ARG_08& arg_08)
178550{
178551 Variant_Base::template baseEmplace<t_INDEX>(
178552 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
178553
178554 return bsl::get<t_INDEX>(*this);
178555}
178556#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
178557
178558
178559#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
178560template <class t_HEAD>
178561template <size_t t_INDEX,
178562 class t_ARG_01,
178563 class t_ARG_02,
178564 class t_ARG_03,
178565 class t_ARG_04,
178566 class t_ARG_05,
178567 class t_ARG_06,
178568 class t_ARG_07,
178569 class t_ARG_08,
178570 class t_ARG_09>
178571typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
178572variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
178573 >::emplace(const t_ARG_01& arg_01,
178574 const t_ARG_02& arg_02,
178575 const t_ARG_03& arg_03,
178576 const t_ARG_04& arg_04,
178577 const t_ARG_05& arg_05,
178578 const t_ARG_06& arg_06,
178579 const t_ARG_07& arg_07,
178580 const t_ARG_08& arg_08,
178581 const t_ARG_09& arg_09)
178582{
178583 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178584 arg_02,
178585 arg_03,
178586 arg_04,
178587 arg_05,
178588 arg_06,
178589 arg_07,
178590 arg_08,
178591 arg_09);
178592
178593 return bsl::get<t_INDEX>(*this);
178594}
178595#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
178596
178597#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
178598template <class t_HEAD, class t_TAIL_01>
178599template <size_t t_INDEX,
178600 class t_ARG_01,
178601 class t_ARG_02,
178602 class t_ARG_03,
178603 class t_ARG_04,
178604 class t_ARG_05,
178605 class t_ARG_06,
178606 class t_ARG_07,
178607 class t_ARG_08,
178608 class t_ARG_09>
178609typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
178610variant<t_HEAD, t_TAIL_01,
178611 BSLS_COMPILERFEATURES_FILLT(17)
178612 >::emplace(const t_ARG_01& arg_01,
178613 const t_ARG_02& arg_02,
178614 const t_ARG_03& arg_03,
178615 const t_ARG_04& arg_04,
178616 const t_ARG_05& arg_05,
178617 const t_ARG_06& arg_06,
178618 const t_ARG_07& arg_07,
178619 const t_ARG_08& arg_08,
178620 const t_ARG_09& arg_09)
178621{
178622 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178623 arg_02,
178624 arg_03,
178625 arg_04,
178626 arg_05,
178627 arg_06,
178628 arg_07,
178629 arg_08,
178630 arg_09);
178631
178632 return bsl::get<t_INDEX>(*this);
178633}
178634#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
178635
178636#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
178637template <class t_HEAD, class t_TAIL_01,
178638 class t_TAIL_02>
178639template <size_t t_INDEX,
178640 class t_ARG_01,
178641 class t_ARG_02,
178642 class t_ARG_03,
178643 class t_ARG_04,
178644 class t_ARG_05,
178645 class t_ARG_06,
178646 class t_ARG_07,
178647 class t_ARG_08,
178648 class t_ARG_09>
178649typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178650 t_TAIL_02> >::type&
178651variant<t_HEAD, t_TAIL_01,
178652 t_TAIL_02,
178653 BSLS_COMPILERFEATURES_FILLT(16)
178654 >::emplace(const t_ARG_01& arg_01,
178655 const t_ARG_02& arg_02,
178656 const t_ARG_03& arg_03,
178657 const t_ARG_04& arg_04,
178658 const t_ARG_05& arg_05,
178659 const t_ARG_06& arg_06,
178660 const t_ARG_07& arg_07,
178661 const t_ARG_08& arg_08,
178662 const t_ARG_09& arg_09)
178663{
178664 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178665 arg_02,
178666 arg_03,
178667 arg_04,
178668 arg_05,
178669 arg_06,
178670 arg_07,
178671 arg_08,
178672 arg_09);
178673
178674 return bsl::get<t_INDEX>(*this);
178675}
178676#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
178677
178678#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
178679template <class t_HEAD, class t_TAIL_01,
178680 class t_TAIL_02,
178681 class t_TAIL_03>
178682template <size_t t_INDEX,
178683 class t_ARG_01,
178684 class t_ARG_02,
178685 class t_ARG_03,
178686 class t_ARG_04,
178687 class t_ARG_05,
178688 class t_ARG_06,
178689 class t_ARG_07,
178690 class t_ARG_08,
178691 class t_ARG_09>
178692typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178693 t_TAIL_02,
178694 t_TAIL_03> >::type&
178695variant<t_HEAD, t_TAIL_01,
178696 t_TAIL_02,
178697 t_TAIL_03,
178698 BSLS_COMPILERFEATURES_FILLT(15)
178699 >::emplace(const t_ARG_01& arg_01,
178700 const t_ARG_02& arg_02,
178701 const t_ARG_03& arg_03,
178702 const t_ARG_04& arg_04,
178703 const t_ARG_05& arg_05,
178704 const t_ARG_06& arg_06,
178705 const t_ARG_07& arg_07,
178706 const t_ARG_08& arg_08,
178707 const t_ARG_09& arg_09)
178708{
178709 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178710 arg_02,
178711 arg_03,
178712 arg_04,
178713 arg_05,
178714 arg_06,
178715 arg_07,
178716 arg_08,
178717 arg_09);
178718
178719 return bsl::get<t_INDEX>(*this);
178720}
178721#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
178722
178723#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
178724template <class t_HEAD, class t_TAIL_01,
178725 class t_TAIL_02,
178726 class t_TAIL_03,
178727 class t_TAIL_04>
178728template <size_t t_INDEX,
178729 class t_ARG_01,
178730 class t_ARG_02,
178731 class t_ARG_03,
178732 class t_ARG_04,
178733 class t_ARG_05,
178734 class t_ARG_06,
178735 class t_ARG_07,
178736 class t_ARG_08,
178737 class t_ARG_09>
178738typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178739 t_TAIL_02,
178740 t_TAIL_03,
178741 t_TAIL_04> >::type&
178742variant<t_HEAD, t_TAIL_01,
178743 t_TAIL_02,
178744 t_TAIL_03,
178745 t_TAIL_04,
178746 BSLS_COMPILERFEATURES_FILLT(14)
178747 >::emplace(const t_ARG_01& arg_01,
178748 const t_ARG_02& arg_02,
178749 const t_ARG_03& arg_03,
178750 const t_ARG_04& arg_04,
178751 const t_ARG_05& arg_05,
178752 const t_ARG_06& arg_06,
178753 const t_ARG_07& arg_07,
178754 const t_ARG_08& arg_08,
178755 const t_ARG_09& arg_09)
178756{
178757 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178758 arg_02,
178759 arg_03,
178760 arg_04,
178761 arg_05,
178762 arg_06,
178763 arg_07,
178764 arg_08,
178765 arg_09);
178766
178767 return bsl::get<t_INDEX>(*this);
178768}
178769#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
178770
178771#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
178772template <class t_HEAD, class t_TAIL_01,
178773 class t_TAIL_02,
178774 class t_TAIL_03,
178775 class t_TAIL_04,
178776 class t_TAIL_05>
178777template <size_t t_INDEX,
178778 class t_ARG_01,
178779 class t_ARG_02,
178780 class t_ARG_03,
178781 class t_ARG_04,
178782 class t_ARG_05,
178783 class t_ARG_06,
178784 class t_ARG_07,
178785 class t_ARG_08,
178786 class t_ARG_09>
178787typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178788 t_TAIL_02,
178789 t_TAIL_03,
178790 t_TAIL_04,
178791 t_TAIL_05> >::type&
178792variant<t_HEAD, t_TAIL_01,
178793 t_TAIL_02,
178794 t_TAIL_03,
178795 t_TAIL_04,
178796 t_TAIL_05,
178797 BSLS_COMPILERFEATURES_FILLT(13)
178798 >::emplace(const t_ARG_01& arg_01,
178799 const t_ARG_02& arg_02,
178800 const t_ARG_03& arg_03,
178801 const t_ARG_04& arg_04,
178802 const t_ARG_05& arg_05,
178803 const t_ARG_06& arg_06,
178804 const t_ARG_07& arg_07,
178805 const t_ARG_08& arg_08,
178806 const t_ARG_09& arg_09)
178807{
178808 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178809 arg_02,
178810 arg_03,
178811 arg_04,
178812 arg_05,
178813 arg_06,
178814 arg_07,
178815 arg_08,
178816 arg_09);
178817
178818 return bsl::get<t_INDEX>(*this);
178819}
178820#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
178821
178822#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
178823template <class t_HEAD, class t_TAIL_01,
178824 class t_TAIL_02,
178825 class t_TAIL_03,
178826 class t_TAIL_04,
178827 class t_TAIL_05,
178828 class t_TAIL_06>
178829template <size_t t_INDEX,
178830 class t_ARG_01,
178831 class t_ARG_02,
178832 class t_ARG_03,
178833 class t_ARG_04,
178834 class t_ARG_05,
178835 class t_ARG_06,
178836 class t_ARG_07,
178837 class t_ARG_08,
178838 class t_ARG_09>
178839typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178840 t_TAIL_02,
178841 t_TAIL_03,
178842 t_TAIL_04,
178843 t_TAIL_05,
178844 t_TAIL_06> >::type&
178845variant<t_HEAD, t_TAIL_01,
178846 t_TAIL_02,
178847 t_TAIL_03,
178848 t_TAIL_04,
178849 t_TAIL_05,
178850 t_TAIL_06,
178851 BSLS_COMPILERFEATURES_FILLT(12)
178852 >::emplace(const t_ARG_01& arg_01,
178853 const t_ARG_02& arg_02,
178854 const t_ARG_03& arg_03,
178855 const t_ARG_04& arg_04,
178856 const t_ARG_05& arg_05,
178857 const t_ARG_06& arg_06,
178858 const t_ARG_07& arg_07,
178859 const t_ARG_08& arg_08,
178860 const t_ARG_09& arg_09)
178861{
178862 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178863 arg_02,
178864 arg_03,
178865 arg_04,
178866 arg_05,
178867 arg_06,
178868 arg_07,
178869 arg_08,
178870 arg_09);
178871
178872 return bsl::get<t_INDEX>(*this);
178873}
178874#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
178875
178876#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
178877template <class t_HEAD, class t_TAIL_01,
178878 class t_TAIL_02,
178879 class t_TAIL_03,
178880 class t_TAIL_04,
178881 class t_TAIL_05,
178882 class t_TAIL_06,
178883 class t_TAIL_07>
178884template <size_t t_INDEX,
178885 class t_ARG_01,
178886 class t_ARG_02,
178887 class t_ARG_03,
178888 class t_ARG_04,
178889 class t_ARG_05,
178890 class t_ARG_06,
178891 class t_ARG_07,
178892 class t_ARG_08,
178893 class t_ARG_09>
178894typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178895 t_TAIL_02,
178896 t_TAIL_03,
178897 t_TAIL_04,
178898 t_TAIL_05,
178899 t_TAIL_06,
178900 t_TAIL_07> >::type&
178901variant<t_HEAD, t_TAIL_01,
178902 t_TAIL_02,
178903 t_TAIL_03,
178904 t_TAIL_04,
178905 t_TAIL_05,
178906 t_TAIL_06,
178907 t_TAIL_07,
178908 BSLS_COMPILERFEATURES_FILLT(11)
178909 >::emplace(const t_ARG_01& arg_01,
178910 const t_ARG_02& arg_02,
178911 const t_ARG_03& arg_03,
178912 const t_ARG_04& arg_04,
178913 const t_ARG_05& arg_05,
178914 const t_ARG_06& arg_06,
178915 const t_ARG_07& arg_07,
178916 const t_ARG_08& arg_08,
178917 const t_ARG_09& arg_09)
178918{
178919 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178920 arg_02,
178921 arg_03,
178922 arg_04,
178923 arg_05,
178924 arg_06,
178925 arg_07,
178926 arg_08,
178927 arg_09);
178928
178929 return bsl::get<t_INDEX>(*this);
178930}
178931#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
178932
178933#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
178934template <class t_HEAD, class t_TAIL_01,
178935 class t_TAIL_02,
178936 class t_TAIL_03,
178937 class t_TAIL_04,
178938 class t_TAIL_05,
178939 class t_TAIL_06,
178940 class t_TAIL_07,
178941 class t_TAIL_08>
178942template <size_t t_INDEX,
178943 class t_ARG_01,
178944 class t_ARG_02,
178945 class t_ARG_03,
178946 class t_ARG_04,
178947 class t_ARG_05,
178948 class t_ARG_06,
178949 class t_ARG_07,
178950 class t_ARG_08,
178951 class t_ARG_09>
178952typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
178953 t_TAIL_02,
178954 t_TAIL_03,
178955 t_TAIL_04,
178956 t_TAIL_05,
178957 t_TAIL_06,
178958 t_TAIL_07,
178959 t_TAIL_08> >::type&
178960variant<t_HEAD, t_TAIL_01,
178961 t_TAIL_02,
178962 t_TAIL_03,
178963 t_TAIL_04,
178964 t_TAIL_05,
178965 t_TAIL_06,
178966 t_TAIL_07,
178967 t_TAIL_08,
178968 BSLS_COMPILERFEATURES_FILLT(10)
178969 >::emplace(const t_ARG_01& arg_01,
178970 const t_ARG_02& arg_02,
178971 const t_ARG_03& arg_03,
178972 const t_ARG_04& arg_04,
178973 const t_ARG_05& arg_05,
178974 const t_ARG_06& arg_06,
178975 const t_ARG_07& arg_07,
178976 const t_ARG_08& arg_08,
178977 const t_ARG_09& arg_09)
178978{
178979 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
178980 arg_02,
178981 arg_03,
178982 arg_04,
178983 arg_05,
178984 arg_06,
178985 arg_07,
178986 arg_08,
178987 arg_09);
178988
178989 return bsl::get<t_INDEX>(*this);
178990}
178991#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
178992
178993#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
178994template <class t_HEAD, class t_TAIL_01,
178995 class t_TAIL_02,
178996 class t_TAIL_03,
178997 class t_TAIL_04,
178998 class t_TAIL_05,
178999 class t_TAIL_06,
179000 class t_TAIL_07,
179001 class t_TAIL_08,
179002 class t_TAIL_09>
179003template <size_t t_INDEX,
179004 class t_ARG_01,
179005 class t_ARG_02,
179006 class t_ARG_03,
179007 class t_ARG_04,
179008 class t_ARG_05,
179009 class t_ARG_06,
179010 class t_ARG_07,
179011 class t_ARG_08,
179012 class t_ARG_09>
179013typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179014 t_TAIL_02,
179015 t_TAIL_03,
179016 t_TAIL_04,
179017 t_TAIL_05,
179018 t_TAIL_06,
179019 t_TAIL_07,
179020 t_TAIL_08,
179021 t_TAIL_09> >::type&
179022variant<t_HEAD, t_TAIL_01,
179023 t_TAIL_02,
179024 t_TAIL_03,
179025 t_TAIL_04,
179026 t_TAIL_05,
179027 t_TAIL_06,
179028 t_TAIL_07,
179029 t_TAIL_08,
179030 t_TAIL_09,
179031 BSLS_COMPILERFEATURES_FILLT( 9)
179032 >::emplace(const t_ARG_01& arg_01,
179033 const t_ARG_02& arg_02,
179034 const t_ARG_03& arg_03,
179035 const t_ARG_04& arg_04,
179036 const t_ARG_05& arg_05,
179037 const t_ARG_06& arg_06,
179038 const t_ARG_07& arg_07,
179039 const t_ARG_08& arg_08,
179040 const t_ARG_09& arg_09)
179041{
179042 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179043 arg_02,
179044 arg_03,
179045 arg_04,
179046 arg_05,
179047 arg_06,
179048 arg_07,
179049 arg_08,
179050 arg_09);
179051
179052 return bsl::get<t_INDEX>(*this);
179053}
179054#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
179055
179056#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
179057template <class t_HEAD, class t_TAIL_01,
179058 class t_TAIL_02,
179059 class t_TAIL_03,
179060 class t_TAIL_04,
179061 class t_TAIL_05,
179062 class t_TAIL_06,
179063 class t_TAIL_07,
179064 class t_TAIL_08,
179065 class t_TAIL_09,
179066 class t_TAIL_10>
179067template <size_t t_INDEX,
179068 class t_ARG_01,
179069 class t_ARG_02,
179070 class t_ARG_03,
179071 class t_ARG_04,
179072 class t_ARG_05,
179073 class t_ARG_06,
179074 class t_ARG_07,
179075 class t_ARG_08,
179076 class t_ARG_09>
179077typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179078 t_TAIL_02,
179079 t_TAIL_03,
179080 t_TAIL_04,
179081 t_TAIL_05,
179082 t_TAIL_06,
179083 t_TAIL_07,
179084 t_TAIL_08,
179085 t_TAIL_09,
179086 t_TAIL_10> >::type&
179087variant<t_HEAD, t_TAIL_01,
179088 t_TAIL_02,
179089 t_TAIL_03,
179090 t_TAIL_04,
179091 t_TAIL_05,
179092 t_TAIL_06,
179093 t_TAIL_07,
179094 t_TAIL_08,
179095 t_TAIL_09,
179096 t_TAIL_10,
179097 BSLS_COMPILERFEATURES_FILLT( 8)
179098 >::emplace(const t_ARG_01& arg_01,
179099 const t_ARG_02& arg_02,
179100 const t_ARG_03& arg_03,
179101 const t_ARG_04& arg_04,
179102 const t_ARG_05& arg_05,
179103 const t_ARG_06& arg_06,
179104 const t_ARG_07& arg_07,
179105 const t_ARG_08& arg_08,
179106 const t_ARG_09& arg_09)
179107{
179108 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179109 arg_02,
179110 arg_03,
179111 arg_04,
179112 arg_05,
179113 arg_06,
179114 arg_07,
179115 arg_08,
179116 arg_09);
179117
179118 return bsl::get<t_INDEX>(*this);
179119}
179120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
179121
179122#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
179123template <class t_HEAD, class t_TAIL_01,
179124 class t_TAIL_02,
179125 class t_TAIL_03,
179126 class t_TAIL_04,
179127 class t_TAIL_05,
179128 class t_TAIL_06,
179129 class t_TAIL_07,
179130 class t_TAIL_08,
179131 class t_TAIL_09,
179132 class t_TAIL_10,
179133 class t_TAIL_11>
179134template <size_t t_INDEX,
179135 class t_ARG_01,
179136 class t_ARG_02,
179137 class t_ARG_03,
179138 class t_ARG_04,
179139 class t_ARG_05,
179140 class t_ARG_06,
179141 class t_ARG_07,
179142 class t_ARG_08,
179143 class t_ARG_09>
179144typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179145 t_TAIL_02,
179146 t_TAIL_03,
179147 t_TAIL_04,
179148 t_TAIL_05,
179149 t_TAIL_06,
179150 t_TAIL_07,
179151 t_TAIL_08,
179152 t_TAIL_09,
179153 t_TAIL_10,
179154 t_TAIL_11> >::type&
179155variant<t_HEAD, t_TAIL_01,
179156 t_TAIL_02,
179157 t_TAIL_03,
179158 t_TAIL_04,
179159 t_TAIL_05,
179160 t_TAIL_06,
179161 t_TAIL_07,
179162 t_TAIL_08,
179163 t_TAIL_09,
179164 t_TAIL_10,
179165 t_TAIL_11,
179166 BSLS_COMPILERFEATURES_FILLT( 7)
179167 >::emplace(const t_ARG_01& arg_01,
179168 const t_ARG_02& arg_02,
179169 const t_ARG_03& arg_03,
179170 const t_ARG_04& arg_04,
179171 const t_ARG_05& arg_05,
179172 const t_ARG_06& arg_06,
179173 const t_ARG_07& arg_07,
179174 const t_ARG_08& arg_08,
179175 const t_ARG_09& arg_09)
179176{
179177 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179178 arg_02,
179179 arg_03,
179180 arg_04,
179181 arg_05,
179182 arg_06,
179183 arg_07,
179184 arg_08,
179185 arg_09);
179186
179187 return bsl::get<t_INDEX>(*this);
179188}
179189#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
179190
179191#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
179192template <class t_HEAD, class t_TAIL_01,
179193 class t_TAIL_02,
179194 class t_TAIL_03,
179195 class t_TAIL_04,
179196 class t_TAIL_05,
179197 class t_TAIL_06,
179198 class t_TAIL_07,
179199 class t_TAIL_08,
179200 class t_TAIL_09,
179201 class t_TAIL_10,
179202 class t_TAIL_11,
179203 class t_TAIL_12>
179204template <size_t t_INDEX,
179205 class t_ARG_01,
179206 class t_ARG_02,
179207 class t_ARG_03,
179208 class t_ARG_04,
179209 class t_ARG_05,
179210 class t_ARG_06,
179211 class t_ARG_07,
179212 class t_ARG_08,
179213 class t_ARG_09>
179214typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179215 t_TAIL_02,
179216 t_TAIL_03,
179217 t_TAIL_04,
179218 t_TAIL_05,
179219 t_TAIL_06,
179220 t_TAIL_07,
179221 t_TAIL_08,
179222 t_TAIL_09,
179223 t_TAIL_10,
179224 t_TAIL_11,
179225 t_TAIL_12> >::type&
179226variant<t_HEAD, t_TAIL_01,
179227 t_TAIL_02,
179228 t_TAIL_03,
179229 t_TAIL_04,
179230 t_TAIL_05,
179231 t_TAIL_06,
179232 t_TAIL_07,
179233 t_TAIL_08,
179234 t_TAIL_09,
179235 t_TAIL_10,
179236 t_TAIL_11,
179237 t_TAIL_12,
179238 BSLS_COMPILERFEATURES_FILLT( 6)
179239 >::emplace(const t_ARG_01& arg_01,
179240 const t_ARG_02& arg_02,
179241 const t_ARG_03& arg_03,
179242 const t_ARG_04& arg_04,
179243 const t_ARG_05& arg_05,
179244 const t_ARG_06& arg_06,
179245 const t_ARG_07& arg_07,
179246 const t_ARG_08& arg_08,
179247 const t_ARG_09& arg_09)
179248{
179249 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179250 arg_02,
179251 arg_03,
179252 arg_04,
179253 arg_05,
179254 arg_06,
179255 arg_07,
179256 arg_08,
179257 arg_09);
179258
179259 return bsl::get<t_INDEX>(*this);
179260}
179261#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
179262
179263#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
179264template <class t_HEAD, class t_TAIL_01,
179265 class t_TAIL_02,
179266 class t_TAIL_03,
179267 class t_TAIL_04,
179268 class t_TAIL_05,
179269 class t_TAIL_06,
179270 class t_TAIL_07,
179271 class t_TAIL_08,
179272 class t_TAIL_09,
179273 class t_TAIL_10,
179274 class t_TAIL_11,
179275 class t_TAIL_12,
179276 class t_TAIL_13>
179277template <size_t t_INDEX,
179278 class t_ARG_01,
179279 class t_ARG_02,
179280 class t_ARG_03,
179281 class t_ARG_04,
179282 class t_ARG_05,
179283 class t_ARG_06,
179284 class t_ARG_07,
179285 class t_ARG_08,
179286 class t_ARG_09>
179287typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179288 t_TAIL_02,
179289 t_TAIL_03,
179290 t_TAIL_04,
179291 t_TAIL_05,
179292 t_TAIL_06,
179293 t_TAIL_07,
179294 t_TAIL_08,
179295 t_TAIL_09,
179296 t_TAIL_10,
179297 t_TAIL_11,
179298 t_TAIL_12,
179299 t_TAIL_13> >::type&
179300variant<t_HEAD, t_TAIL_01,
179301 t_TAIL_02,
179302 t_TAIL_03,
179303 t_TAIL_04,
179304 t_TAIL_05,
179305 t_TAIL_06,
179306 t_TAIL_07,
179307 t_TAIL_08,
179308 t_TAIL_09,
179309 t_TAIL_10,
179310 t_TAIL_11,
179311 t_TAIL_12,
179312 t_TAIL_13,
179313 BSLS_COMPILERFEATURES_FILLT( 5)
179314 >::emplace(const t_ARG_01& arg_01,
179315 const t_ARG_02& arg_02,
179316 const t_ARG_03& arg_03,
179317 const t_ARG_04& arg_04,
179318 const t_ARG_05& arg_05,
179319 const t_ARG_06& arg_06,
179320 const t_ARG_07& arg_07,
179321 const t_ARG_08& arg_08,
179322 const t_ARG_09& arg_09)
179323{
179324 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179325 arg_02,
179326 arg_03,
179327 arg_04,
179328 arg_05,
179329 arg_06,
179330 arg_07,
179331 arg_08,
179332 arg_09);
179333
179334 return bsl::get<t_INDEX>(*this);
179335}
179336#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
179337
179338#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
179339template <class t_HEAD, class t_TAIL_01,
179340 class t_TAIL_02,
179341 class t_TAIL_03,
179342 class t_TAIL_04,
179343 class t_TAIL_05,
179344 class t_TAIL_06,
179345 class t_TAIL_07,
179346 class t_TAIL_08,
179347 class t_TAIL_09,
179348 class t_TAIL_10,
179349 class t_TAIL_11,
179350 class t_TAIL_12,
179351 class t_TAIL_13,
179352 class t_TAIL_14>
179353template <size_t t_INDEX,
179354 class t_ARG_01,
179355 class t_ARG_02,
179356 class t_ARG_03,
179357 class t_ARG_04,
179358 class t_ARG_05,
179359 class t_ARG_06,
179360 class t_ARG_07,
179361 class t_ARG_08,
179362 class t_ARG_09>
179363typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179364 t_TAIL_02,
179365 t_TAIL_03,
179366 t_TAIL_04,
179367 t_TAIL_05,
179368 t_TAIL_06,
179369 t_TAIL_07,
179370 t_TAIL_08,
179371 t_TAIL_09,
179372 t_TAIL_10,
179373 t_TAIL_11,
179374 t_TAIL_12,
179375 t_TAIL_13,
179376 t_TAIL_14> >::type&
179377variant<t_HEAD, t_TAIL_01,
179378 t_TAIL_02,
179379 t_TAIL_03,
179380 t_TAIL_04,
179381 t_TAIL_05,
179382 t_TAIL_06,
179383 t_TAIL_07,
179384 t_TAIL_08,
179385 t_TAIL_09,
179386 t_TAIL_10,
179387 t_TAIL_11,
179388 t_TAIL_12,
179389 t_TAIL_13,
179390 t_TAIL_14,
179391 BSLS_COMPILERFEATURES_FILLT( 4)
179392 >::emplace(const t_ARG_01& arg_01,
179393 const t_ARG_02& arg_02,
179394 const t_ARG_03& arg_03,
179395 const t_ARG_04& arg_04,
179396 const t_ARG_05& arg_05,
179397 const t_ARG_06& arg_06,
179398 const t_ARG_07& arg_07,
179399 const t_ARG_08& arg_08,
179400 const t_ARG_09& arg_09)
179401{
179402 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179403 arg_02,
179404 arg_03,
179405 arg_04,
179406 arg_05,
179407 arg_06,
179408 arg_07,
179409 arg_08,
179410 arg_09);
179411
179412 return bsl::get<t_INDEX>(*this);
179413}
179414#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
179415
179416#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
179417template <class t_HEAD, class t_TAIL_01,
179418 class t_TAIL_02,
179419 class t_TAIL_03,
179420 class t_TAIL_04,
179421 class t_TAIL_05,
179422 class t_TAIL_06,
179423 class t_TAIL_07,
179424 class t_TAIL_08,
179425 class t_TAIL_09,
179426 class t_TAIL_10,
179427 class t_TAIL_11,
179428 class t_TAIL_12,
179429 class t_TAIL_13,
179430 class t_TAIL_14,
179431 class t_TAIL_15>
179432template <size_t t_INDEX,
179433 class t_ARG_01,
179434 class t_ARG_02,
179435 class t_ARG_03,
179436 class t_ARG_04,
179437 class t_ARG_05,
179438 class t_ARG_06,
179439 class t_ARG_07,
179440 class t_ARG_08,
179441 class t_ARG_09>
179442typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179443 t_TAIL_02,
179444 t_TAIL_03,
179445 t_TAIL_04,
179446 t_TAIL_05,
179447 t_TAIL_06,
179448 t_TAIL_07,
179449 t_TAIL_08,
179450 t_TAIL_09,
179451 t_TAIL_10,
179452 t_TAIL_11,
179453 t_TAIL_12,
179454 t_TAIL_13,
179455 t_TAIL_14,
179456 t_TAIL_15> >::type&
179457variant<t_HEAD, t_TAIL_01,
179458 t_TAIL_02,
179459 t_TAIL_03,
179460 t_TAIL_04,
179461 t_TAIL_05,
179462 t_TAIL_06,
179463 t_TAIL_07,
179464 t_TAIL_08,
179465 t_TAIL_09,
179466 t_TAIL_10,
179467 t_TAIL_11,
179468 t_TAIL_12,
179469 t_TAIL_13,
179470 t_TAIL_14,
179471 t_TAIL_15,
179472 BSLS_COMPILERFEATURES_FILLT( 3)
179473 >::emplace(const t_ARG_01& arg_01,
179474 const t_ARG_02& arg_02,
179475 const t_ARG_03& arg_03,
179476 const t_ARG_04& arg_04,
179477 const t_ARG_05& arg_05,
179478 const t_ARG_06& arg_06,
179479 const t_ARG_07& arg_07,
179480 const t_ARG_08& arg_08,
179481 const t_ARG_09& arg_09)
179482{
179483 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179484 arg_02,
179485 arg_03,
179486 arg_04,
179487 arg_05,
179488 arg_06,
179489 arg_07,
179490 arg_08,
179491 arg_09);
179492
179493 return bsl::get<t_INDEX>(*this);
179494}
179495#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
179496
179497#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
179498template <class t_HEAD, class t_TAIL_01,
179499 class t_TAIL_02,
179500 class t_TAIL_03,
179501 class t_TAIL_04,
179502 class t_TAIL_05,
179503 class t_TAIL_06,
179504 class t_TAIL_07,
179505 class t_TAIL_08,
179506 class t_TAIL_09,
179507 class t_TAIL_10,
179508 class t_TAIL_11,
179509 class t_TAIL_12,
179510 class t_TAIL_13,
179511 class t_TAIL_14,
179512 class t_TAIL_15,
179513 class t_TAIL_16>
179514template <size_t t_INDEX,
179515 class t_ARG_01,
179516 class t_ARG_02,
179517 class t_ARG_03,
179518 class t_ARG_04,
179519 class t_ARG_05,
179520 class t_ARG_06,
179521 class t_ARG_07,
179522 class t_ARG_08,
179523 class t_ARG_09>
179524typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179525 t_TAIL_02,
179526 t_TAIL_03,
179527 t_TAIL_04,
179528 t_TAIL_05,
179529 t_TAIL_06,
179530 t_TAIL_07,
179531 t_TAIL_08,
179532 t_TAIL_09,
179533 t_TAIL_10,
179534 t_TAIL_11,
179535 t_TAIL_12,
179536 t_TAIL_13,
179537 t_TAIL_14,
179538 t_TAIL_15,
179539 t_TAIL_16> >::type&
179540variant<t_HEAD, t_TAIL_01,
179541 t_TAIL_02,
179542 t_TAIL_03,
179543 t_TAIL_04,
179544 t_TAIL_05,
179545 t_TAIL_06,
179546 t_TAIL_07,
179547 t_TAIL_08,
179548 t_TAIL_09,
179549 t_TAIL_10,
179550 t_TAIL_11,
179551 t_TAIL_12,
179552 t_TAIL_13,
179553 t_TAIL_14,
179554 t_TAIL_15,
179555 t_TAIL_16,
179556 BSLS_COMPILERFEATURES_FILLT( 2)
179557 >::emplace(const t_ARG_01& arg_01,
179558 const t_ARG_02& arg_02,
179559 const t_ARG_03& arg_03,
179560 const t_ARG_04& arg_04,
179561 const t_ARG_05& arg_05,
179562 const t_ARG_06& arg_06,
179563 const t_ARG_07& arg_07,
179564 const t_ARG_08& arg_08,
179565 const t_ARG_09& arg_09)
179566{
179567 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179568 arg_02,
179569 arg_03,
179570 arg_04,
179571 arg_05,
179572 arg_06,
179573 arg_07,
179574 arg_08,
179575 arg_09);
179576
179577 return bsl::get<t_INDEX>(*this);
179578}
179579#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
179580
179581#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
179582template <class t_HEAD, class t_TAIL_01,
179583 class t_TAIL_02,
179584 class t_TAIL_03,
179585 class t_TAIL_04,
179586 class t_TAIL_05,
179587 class t_TAIL_06,
179588 class t_TAIL_07,
179589 class t_TAIL_08,
179590 class t_TAIL_09,
179591 class t_TAIL_10,
179592 class t_TAIL_11,
179593 class t_TAIL_12,
179594 class t_TAIL_13,
179595 class t_TAIL_14,
179596 class t_TAIL_15,
179597 class t_TAIL_16,
179598 class t_TAIL_17>
179599template <size_t t_INDEX,
179600 class t_ARG_01,
179601 class t_ARG_02,
179602 class t_ARG_03,
179603 class t_ARG_04,
179604 class t_ARG_05,
179605 class t_ARG_06,
179606 class t_ARG_07,
179607 class t_ARG_08,
179608 class t_ARG_09>
179609typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179610 t_TAIL_02,
179611 t_TAIL_03,
179612 t_TAIL_04,
179613 t_TAIL_05,
179614 t_TAIL_06,
179615 t_TAIL_07,
179616 t_TAIL_08,
179617 t_TAIL_09,
179618 t_TAIL_10,
179619 t_TAIL_11,
179620 t_TAIL_12,
179621 t_TAIL_13,
179622 t_TAIL_14,
179623 t_TAIL_15,
179624 t_TAIL_16,
179625 t_TAIL_17> >::type&
179626variant<t_HEAD, t_TAIL_01,
179627 t_TAIL_02,
179628 t_TAIL_03,
179629 t_TAIL_04,
179630 t_TAIL_05,
179631 t_TAIL_06,
179632 t_TAIL_07,
179633 t_TAIL_08,
179634 t_TAIL_09,
179635 t_TAIL_10,
179636 t_TAIL_11,
179637 t_TAIL_12,
179638 t_TAIL_13,
179639 t_TAIL_14,
179640 t_TAIL_15,
179641 t_TAIL_16,
179642 t_TAIL_17,
179643 BSLS_COMPILERFEATURES_FILLT( 1)
179644 >::emplace(const t_ARG_01& arg_01,
179645 const t_ARG_02& arg_02,
179646 const t_ARG_03& arg_03,
179647 const t_ARG_04& arg_04,
179648 const t_ARG_05& arg_05,
179649 const t_ARG_06& arg_06,
179650 const t_ARG_07& arg_07,
179651 const t_ARG_08& arg_08,
179652 const t_ARG_09& arg_09)
179653{
179654 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179655 arg_02,
179656 arg_03,
179657 arg_04,
179658 arg_05,
179659 arg_06,
179660 arg_07,
179661 arg_08,
179662 arg_09);
179663
179664 return bsl::get<t_INDEX>(*this);
179665}
179666#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
179667
179668#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
179669template <class t_HEAD, class t_TAIL_01,
179670 class t_TAIL_02,
179671 class t_TAIL_03,
179672 class t_TAIL_04,
179673 class t_TAIL_05,
179674 class t_TAIL_06,
179675 class t_TAIL_07,
179676 class t_TAIL_08,
179677 class t_TAIL_09,
179678 class t_TAIL_10,
179679 class t_TAIL_11,
179680 class t_TAIL_12,
179681 class t_TAIL_13,
179682 class t_TAIL_14,
179683 class t_TAIL_15,
179684 class t_TAIL_16,
179685 class t_TAIL_17,
179686 class t_TAIL_18>
179687template <size_t t_INDEX,
179688 class t_ARG_01,
179689 class t_ARG_02,
179690 class t_ARG_03,
179691 class t_ARG_04,
179692 class t_ARG_05,
179693 class t_ARG_06,
179694 class t_ARG_07,
179695 class t_ARG_08,
179696 class t_ARG_09>
179697typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179698 t_TAIL_02,
179699 t_TAIL_03,
179700 t_TAIL_04,
179701 t_TAIL_05,
179702 t_TAIL_06,
179703 t_TAIL_07,
179704 t_TAIL_08,
179705 t_TAIL_09,
179706 t_TAIL_10,
179707 t_TAIL_11,
179708 t_TAIL_12,
179709 t_TAIL_13,
179710 t_TAIL_14,
179711 t_TAIL_15,
179712 t_TAIL_16,
179713 t_TAIL_17,
179714 t_TAIL_18> >::type&
179715variant<t_HEAD, t_TAIL_01,
179716 t_TAIL_02,
179717 t_TAIL_03,
179718 t_TAIL_04,
179719 t_TAIL_05,
179720 t_TAIL_06,
179721 t_TAIL_07,
179722 t_TAIL_08,
179723 t_TAIL_09,
179724 t_TAIL_10,
179725 t_TAIL_11,
179726 t_TAIL_12,
179727 t_TAIL_13,
179728 t_TAIL_14,
179729 t_TAIL_15,
179730 t_TAIL_16,
179731 t_TAIL_17,
179732 t_TAIL_18,
179733 BSLS_COMPILERFEATURES_FILLT( 0)
179734 >::emplace(const t_ARG_01& arg_01,
179735 const t_ARG_02& arg_02,
179736 const t_ARG_03& arg_03,
179737 const t_ARG_04& arg_04,
179738 const t_ARG_05& arg_05,
179739 const t_ARG_06& arg_06,
179740 const t_ARG_07& arg_07,
179741 const t_ARG_08& arg_08,
179742 const t_ARG_09& arg_09)
179743{
179744 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179745 arg_02,
179746 arg_03,
179747 arg_04,
179748 arg_05,
179749 arg_06,
179750 arg_07,
179751 arg_08,
179752 arg_09);
179753
179754 return bsl::get<t_INDEX>(*this);
179755}
179756#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
179757
179758
179759#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
179760template <class t_HEAD>
179761template <size_t t_INDEX,
179762 class t_ARG_01,
179763 class t_ARG_02,
179764 class t_ARG_03,
179765 class t_ARG_04,
179766 class t_ARG_05,
179767 class t_ARG_06,
179768 class t_ARG_07,
179769 class t_ARG_08,
179770 class t_ARG_09,
179771 class t_ARG_10>
179772typename variant_alternative<t_INDEX, variant<t_HEAD> >::type&
179773variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
179774 >::emplace(const t_ARG_01& arg_01,
179775 const t_ARG_02& arg_02,
179776 const t_ARG_03& arg_03,
179777 const t_ARG_04& arg_04,
179778 const t_ARG_05& arg_05,
179779 const t_ARG_06& arg_06,
179780 const t_ARG_07& arg_07,
179781 const t_ARG_08& arg_08,
179782 const t_ARG_09& arg_09,
179783 const t_ARG_10& arg_10)
179784{
179785 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179786 arg_02,
179787 arg_03,
179788 arg_04,
179789 arg_05,
179790 arg_06,
179791 arg_07,
179792 arg_08,
179793 arg_09,
179794 arg_10);
179795
179796 return bsl::get<t_INDEX>(*this);
179797}
179798#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
179799
179800#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
179801template <class t_HEAD, class t_TAIL_01>
179802template <size_t t_INDEX,
179803 class t_ARG_01,
179804 class t_ARG_02,
179805 class t_ARG_03,
179806 class t_ARG_04,
179807 class t_ARG_05,
179808 class t_ARG_06,
179809 class t_ARG_07,
179810 class t_ARG_08,
179811 class t_ARG_09,
179812 class t_ARG_10>
179813typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01> >::type&
179814variant<t_HEAD, t_TAIL_01,
179815 BSLS_COMPILERFEATURES_FILLT(17)
179816 >::emplace(const t_ARG_01& arg_01,
179817 const t_ARG_02& arg_02,
179818 const t_ARG_03& arg_03,
179819 const t_ARG_04& arg_04,
179820 const t_ARG_05& arg_05,
179821 const t_ARG_06& arg_06,
179822 const t_ARG_07& arg_07,
179823 const t_ARG_08& arg_08,
179824 const t_ARG_09& arg_09,
179825 const t_ARG_10& arg_10)
179826{
179827 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179828 arg_02,
179829 arg_03,
179830 arg_04,
179831 arg_05,
179832 arg_06,
179833 arg_07,
179834 arg_08,
179835 arg_09,
179836 arg_10);
179837
179838 return bsl::get<t_INDEX>(*this);
179839}
179840#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
179841
179842#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
179843template <class t_HEAD, class t_TAIL_01,
179844 class t_TAIL_02>
179845template <size_t t_INDEX,
179846 class t_ARG_01,
179847 class t_ARG_02,
179848 class t_ARG_03,
179849 class t_ARG_04,
179850 class t_ARG_05,
179851 class t_ARG_06,
179852 class t_ARG_07,
179853 class t_ARG_08,
179854 class t_ARG_09,
179855 class t_ARG_10>
179856typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179857 t_TAIL_02> >::type&
179858variant<t_HEAD, t_TAIL_01,
179859 t_TAIL_02,
179860 BSLS_COMPILERFEATURES_FILLT(16)
179861 >::emplace(const t_ARG_01& arg_01,
179862 const t_ARG_02& arg_02,
179863 const t_ARG_03& arg_03,
179864 const t_ARG_04& arg_04,
179865 const t_ARG_05& arg_05,
179866 const t_ARG_06& arg_06,
179867 const t_ARG_07& arg_07,
179868 const t_ARG_08& arg_08,
179869 const t_ARG_09& arg_09,
179870 const t_ARG_10& arg_10)
179871{
179872 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179873 arg_02,
179874 arg_03,
179875 arg_04,
179876 arg_05,
179877 arg_06,
179878 arg_07,
179879 arg_08,
179880 arg_09,
179881 arg_10);
179882
179883 return bsl::get<t_INDEX>(*this);
179884}
179885#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
179886
179887#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
179888template <class t_HEAD, class t_TAIL_01,
179889 class t_TAIL_02,
179890 class t_TAIL_03>
179891template <size_t t_INDEX,
179892 class t_ARG_01,
179893 class t_ARG_02,
179894 class t_ARG_03,
179895 class t_ARG_04,
179896 class t_ARG_05,
179897 class t_ARG_06,
179898 class t_ARG_07,
179899 class t_ARG_08,
179900 class t_ARG_09,
179901 class t_ARG_10>
179902typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179903 t_TAIL_02,
179904 t_TAIL_03> >::type&
179905variant<t_HEAD, t_TAIL_01,
179906 t_TAIL_02,
179907 t_TAIL_03,
179908 BSLS_COMPILERFEATURES_FILLT(15)
179909 >::emplace(const t_ARG_01& arg_01,
179910 const t_ARG_02& arg_02,
179911 const t_ARG_03& arg_03,
179912 const t_ARG_04& arg_04,
179913 const t_ARG_05& arg_05,
179914 const t_ARG_06& arg_06,
179915 const t_ARG_07& arg_07,
179916 const t_ARG_08& arg_08,
179917 const t_ARG_09& arg_09,
179918 const t_ARG_10& arg_10)
179919{
179920 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179921 arg_02,
179922 arg_03,
179923 arg_04,
179924 arg_05,
179925 arg_06,
179926 arg_07,
179927 arg_08,
179928 arg_09,
179929 arg_10);
179930
179931 return bsl::get<t_INDEX>(*this);
179932}
179933#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
179934
179935#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
179936template <class t_HEAD, class t_TAIL_01,
179937 class t_TAIL_02,
179938 class t_TAIL_03,
179939 class t_TAIL_04>
179940template <size_t t_INDEX,
179941 class t_ARG_01,
179942 class t_ARG_02,
179943 class t_ARG_03,
179944 class t_ARG_04,
179945 class t_ARG_05,
179946 class t_ARG_06,
179947 class t_ARG_07,
179948 class t_ARG_08,
179949 class t_ARG_09,
179950 class t_ARG_10>
179951typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
179952 t_TAIL_02,
179953 t_TAIL_03,
179954 t_TAIL_04> >::type&
179955variant<t_HEAD, t_TAIL_01,
179956 t_TAIL_02,
179957 t_TAIL_03,
179958 t_TAIL_04,
179959 BSLS_COMPILERFEATURES_FILLT(14)
179960 >::emplace(const t_ARG_01& arg_01,
179961 const t_ARG_02& arg_02,
179962 const t_ARG_03& arg_03,
179963 const t_ARG_04& arg_04,
179964 const t_ARG_05& arg_05,
179965 const t_ARG_06& arg_06,
179966 const t_ARG_07& arg_07,
179967 const t_ARG_08& arg_08,
179968 const t_ARG_09& arg_09,
179969 const t_ARG_10& arg_10)
179970{
179971 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
179972 arg_02,
179973 arg_03,
179974 arg_04,
179975 arg_05,
179976 arg_06,
179977 arg_07,
179978 arg_08,
179979 arg_09,
179980 arg_10);
179981
179982 return bsl::get<t_INDEX>(*this);
179983}
179984#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
179985
179986#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
179987template <class t_HEAD, class t_TAIL_01,
179988 class t_TAIL_02,
179989 class t_TAIL_03,
179990 class t_TAIL_04,
179991 class t_TAIL_05>
179992template <size_t t_INDEX,
179993 class t_ARG_01,
179994 class t_ARG_02,
179995 class t_ARG_03,
179996 class t_ARG_04,
179997 class t_ARG_05,
179998 class t_ARG_06,
179999 class t_ARG_07,
180000 class t_ARG_08,
180001 class t_ARG_09,
180002 class t_ARG_10>
180003typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180004 t_TAIL_02,
180005 t_TAIL_03,
180006 t_TAIL_04,
180007 t_TAIL_05> >::type&
180008variant<t_HEAD, t_TAIL_01,
180009 t_TAIL_02,
180010 t_TAIL_03,
180011 t_TAIL_04,
180012 t_TAIL_05,
180013 BSLS_COMPILERFEATURES_FILLT(13)
180014 >::emplace(const t_ARG_01& arg_01,
180015 const t_ARG_02& arg_02,
180016 const t_ARG_03& arg_03,
180017 const t_ARG_04& arg_04,
180018 const t_ARG_05& arg_05,
180019 const t_ARG_06& arg_06,
180020 const t_ARG_07& arg_07,
180021 const t_ARG_08& arg_08,
180022 const t_ARG_09& arg_09,
180023 const t_ARG_10& arg_10)
180024{
180025 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180026 arg_02,
180027 arg_03,
180028 arg_04,
180029 arg_05,
180030 arg_06,
180031 arg_07,
180032 arg_08,
180033 arg_09,
180034 arg_10);
180035
180036 return bsl::get<t_INDEX>(*this);
180037}
180038#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
180039
180040#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
180041template <class t_HEAD, class t_TAIL_01,
180042 class t_TAIL_02,
180043 class t_TAIL_03,
180044 class t_TAIL_04,
180045 class t_TAIL_05,
180046 class t_TAIL_06>
180047template <size_t t_INDEX,
180048 class t_ARG_01,
180049 class t_ARG_02,
180050 class t_ARG_03,
180051 class t_ARG_04,
180052 class t_ARG_05,
180053 class t_ARG_06,
180054 class t_ARG_07,
180055 class t_ARG_08,
180056 class t_ARG_09,
180057 class t_ARG_10>
180058typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180059 t_TAIL_02,
180060 t_TAIL_03,
180061 t_TAIL_04,
180062 t_TAIL_05,
180063 t_TAIL_06> >::type&
180064variant<t_HEAD, t_TAIL_01,
180065 t_TAIL_02,
180066 t_TAIL_03,
180067 t_TAIL_04,
180068 t_TAIL_05,
180069 t_TAIL_06,
180070 BSLS_COMPILERFEATURES_FILLT(12)
180071 >::emplace(const t_ARG_01& arg_01,
180072 const t_ARG_02& arg_02,
180073 const t_ARG_03& arg_03,
180074 const t_ARG_04& arg_04,
180075 const t_ARG_05& arg_05,
180076 const t_ARG_06& arg_06,
180077 const t_ARG_07& arg_07,
180078 const t_ARG_08& arg_08,
180079 const t_ARG_09& arg_09,
180080 const t_ARG_10& arg_10)
180081{
180082 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180083 arg_02,
180084 arg_03,
180085 arg_04,
180086 arg_05,
180087 arg_06,
180088 arg_07,
180089 arg_08,
180090 arg_09,
180091 arg_10);
180092
180093 return bsl::get<t_INDEX>(*this);
180094}
180095#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
180096
180097#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
180098template <class t_HEAD, class t_TAIL_01,
180099 class t_TAIL_02,
180100 class t_TAIL_03,
180101 class t_TAIL_04,
180102 class t_TAIL_05,
180103 class t_TAIL_06,
180104 class t_TAIL_07>
180105template <size_t t_INDEX,
180106 class t_ARG_01,
180107 class t_ARG_02,
180108 class t_ARG_03,
180109 class t_ARG_04,
180110 class t_ARG_05,
180111 class t_ARG_06,
180112 class t_ARG_07,
180113 class t_ARG_08,
180114 class t_ARG_09,
180115 class t_ARG_10>
180116typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180117 t_TAIL_02,
180118 t_TAIL_03,
180119 t_TAIL_04,
180120 t_TAIL_05,
180121 t_TAIL_06,
180122 t_TAIL_07> >::type&
180123variant<t_HEAD, t_TAIL_01,
180124 t_TAIL_02,
180125 t_TAIL_03,
180126 t_TAIL_04,
180127 t_TAIL_05,
180128 t_TAIL_06,
180129 t_TAIL_07,
180130 BSLS_COMPILERFEATURES_FILLT(11)
180131 >::emplace(const t_ARG_01& arg_01,
180132 const t_ARG_02& arg_02,
180133 const t_ARG_03& arg_03,
180134 const t_ARG_04& arg_04,
180135 const t_ARG_05& arg_05,
180136 const t_ARG_06& arg_06,
180137 const t_ARG_07& arg_07,
180138 const t_ARG_08& arg_08,
180139 const t_ARG_09& arg_09,
180140 const t_ARG_10& arg_10)
180141{
180142 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180143 arg_02,
180144 arg_03,
180145 arg_04,
180146 arg_05,
180147 arg_06,
180148 arg_07,
180149 arg_08,
180150 arg_09,
180151 arg_10);
180152
180153 return bsl::get<t_INDEX>(*this);
180154}
180155#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
180156
180157#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
180158template <class t_HEAD, class t_TAIL_01,
180159 class t_TAIL_02,
180160 class t_TAIL_03,
180161 class t_TAIL_04,
180162 class t_TAIL_05,
180163 class t_TAIL_06,
180164 class t_TAIL_07,
180165 class t_TAIL_08>
180166template <size_t t_INDEX,
180167 class t_ARG_01,
180168 class t_ARG_02,
180169 class t_ARG_03,
180170 class t_ARG_04,
180171 class t_ARG_05,
180172 class t_ARG_06,
180173 class t_ARG_07,
180174 class t_ARG_08,
180175 class t_ARG_09,
180176 class t_ARG_10>
180177typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180178 t_TAIL_02,
180179 t_TAIL_03,
180180 t_TAIL_04,
180181 t_TAIL_05,
180182 t_TAIL_06,
180183 t_TAIL_07,
180184 t_TAIL_08> >::type&
180185variant<t_HEAD, t_TAIL_01,
180186 t_TAIL_02,
180187 t_TAIL_03,
180188 t_TAIL_04,
180189 t_TAIL_05,
180190 t_TAIL_06,
180191 t_TAIL_07,
180192 t_TAIL_08,
180193 BSLS_COMPILERFEATURES_FILLT(10)
180194 >::emplace(const t_ARG_01& arg_01,
180195 const t_ARG_02& arg_02,
180196 const t_ARG_03& arg_03,
180197 const t_ARG_04& arg_04,
180198 const t_ARG_05& arg_05,
180199 const t_ARG_06& arg_06,
180200 const t_ARG_07& arg_07,
180201 const t_ARG_08& arg_08,
180202 const t_ARG_09& arg_09,
180203 const t_ARG_10& arg_10)
180204{
180205 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180206 arg_02,
180207 arg_03,
180208 arg_04,
180209 arg_05,
180210 arg_06,
180211 arg_07,
180212 arg_08,
180213 arg_09,
180214 arg_10);
180215
180216 return bsl::get<t_INDEX>(*this);
180217}
180218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
180219
180220#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
180221template <class t_HEAD, class t_TAIL_01,
180222 class t_TAIL_02,
180223 class t_TAIL_03,
180224 class t_TAIL_04,
180225 class t_TAIL_05,
180226 class t_TAIL_06,
180227 class t_TAIL_07,
180228 class t_TAIL_08,
180229 class t_TAIL_09>
180230template <size_t t_INDEX,
180231 class t_ARG_01,
180232 class t_ARG_02,
180233 class t_ARG_03,
180234 class t_ARG_04,
180235 class t_ARG_05,
180236 class t_ARG_06,
180237 class t_ARG_07,
180238 class t_ARG_08,
180239 class t_ARG_09,
180240 class t_ARG_10>
180241typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180242 t_TAIL_02,
180243 t_TAIL_03,
180244 t_TAIL_04,
180245 t_TAIL_05,
180246 t_TAIL_06,
180247 t_TAIL_07,
180248 t_TAIL_08,
180249 t_TAIL_09> >::type&
180250variant<t_HEAD, t_TAIL_01,
180251 t_TAIL_02,
180252 t_TAIL_03,
180253 t_TAIL_04,
180254 t_TAIL_05,
180255 t_TAIL_06,
180256 t_TAIL_07,
180257 t_TAIL_08,
180258 t_TAIL_09,
180259 BSLS_COMPILERFEATURES_FILLT( 9)
180260 >::emplace(const t_ARG_01& arg_01,
180261 const t_ARG_02& arg_02,
180262 const t_ARG_03& arg_03,
180263 const t_ARG_04& arg_04,
180264 const t_ARG_05& arg_05,
180265 const t_ARG_06& arg_06,
180266 const t_ARG_07& arg_07,
180267 const t_ARG_08& arg_08,
180268 const t_ARG_09& arg_09,
180269 const t_ARG_10& arg_10)
180270{
180271 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180272 arg_02,
180273 arg_03,
180274 arg_04,
180275 arg_05,
180276 arg_06,
180277 arg_07,
180278 arg_08,
180279 arg_09,
180280 arg_10);
180281
180282 return bsl::get<t_INDEX>(*this);
180283}
180284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
180285
180286#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
180287template <class t_HEAD, class t_TAIL_01,
180288 class t_TAIL_02,
180289 class t_TAIL_03,
180290 class t_TAIL_04,
180291 class t_TAIL_05,
180292 class t_TAIL_06,
180293 class t_TAIL_07,
180294 class t_TAIL_08,
180295 class t_TAIL_09,
180296 class t_TAIL_10>
180297template <size_t t_INDEX,
180298 class t_ARG_01,
180299 class t_ARG_02,
180300 class t_ARG_03,
180301 class t_ARG_04,
180302 class t_ARG_05,
180303 class t_ARG_06,
180304 class t_ARG_07,
180305 class t_ARG_08,
180306 class t_ARG_09,
180307 class t_ARG_10>
180308typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180309 t_TAIL_02,
180310 t_TAIL_03,
180311 t_TAIL_04,
180312 t_TAIL_05,
180313 t_TAIL_06,
180314 t_TAIL_07,
180315 t_TAIL_08,
180316 t_TAIL_09,
180317 t_TAIL_10> >::type&
180318variant<t_HEAD, t_TAIL_01,
180319 t_TAIL_02,
180320 t_TAIL_03,
180321 t_TAIL_04,
180322 t_TAIL_05,
180323 t_TAIL_06,
180324 t_TAIL_07,
180325 t_TAIL_08,
180326 t_TAIL_09,
180327 t_TAIL_10,
180328 BSLS_COMPILERFEATURES_FILLT( 8)
180329 >::emplace(const t_ARG_01& arg_01,
180330 const t_ARG_02& arg_02,
180331 const t_ARG_03& arg_03,
180332 const t_ARG_04& arg_04,
180333 const t_ARG_05& arg_05,
180334 const t_ARG_06& arg_06,
180335 const t_ARG_07& arg_07,
180336 const t_ARG_08& arg_08,
180337 const t_ARG_09& arg_09,
180338 const t_ARG_10& arg_10)
180339{
180340 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180341 arg_02,
180342 arg_03,
180343 arg_04,
180344 arg_05,
180345 arg_06,
180346 arg_07,
180347 arg_08,
180348 arg_09,
180349 arg_10);
180350
180351 return bsl::get<t_INDEX>(*this);
180352}
180353#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
180354
180355#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
180356template <class t_HEAD, class t_TAIL_01,
180357 class t_TAIL_02,
180358 class t_TAIL_03,
180359 class t_TAIL_04,
180360 class t_TAIL_05,
180361 class t_TAIL_06,
180362 class t_TAIL_07,
180363 class t_TAIL_08,
180364 class t_TAIL_09,
180365 class t_TAIL_10,
180366 class t_TAIL_11>
180367template <size_t t_INDEX,
180368 class t_ARG_01,
180369 class t_ARG_02,
180370 class t_ARG_03,
180371 class t_ARG_04,
180372 class t_ARG_05,
180373 class t_ARG_06,
180374 class t_ARG_07,
180375 class t_ARG_08,
180376 class t_ARG_09,
180377 class t_ARG_10>
180378typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180379 t_TAIL_02,
180380 t_TAIL_03,
180381 t_TAIL_04,
180382 t_TAIL_05,
180383 t_TAIL_06,
180384 t_TAIL_07,
180385 t_TAIL_08,
180386 t_TAIL_09,
180387 t_TAIL_10,
180388 t_TAIL_11> >::type&
180389variant<t_HEAD, t_TAIL_01,
180390 t_TAIL_02,
180391 t_TAIL_03,
180392 t_TAIL_04,
180393 t_TAIL_05,
180394 t_TAIL_06,
180395 t_TAIL_07,
180396 t_TAIL_08,
180397 t_TAIL_09,
180398 t_TAIL_10,
180399 t_TAIL_11,
180400 BSLS_COMPILERFEATURES_FILLT( 7)
180401 >::emplace(const t_ARG_01& arg_01,
180402 const t_ARG_02& arg_02,
180403 const t_ARG_03& arg_03,
180404 const t_ARG_04& arg_04,
180405 const t_ARG_05& arg_05,
180406 const t_ARG_06& arg_06,
180407 const t_ARG_07& arg_07,
180408 const t_ARG_08& arg_08,
180409 const t_ARG_09& arg_09,
180410 const t_ARG_10& arg_10)
180411{
180412 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180413 arg_02,
180414 arg_03,
180415 arg_04,
180416 arg_05,
180417 arg_06,
180418 arg_07,
180419 arg_08,
180420 arg_09,
180421 arg_10);
180422
180423 return bsl::get<t_INDEX>(*this);
180424}
180425#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
180426
180427#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
180428template <class t_HEAD, class t_TAIL_01,
180429 class t_TAIL_02,
180430 class t_TAIL_03,
180431 class t_TAIL_04,
180432 class t_TAIL_05,
180433 class t_TAIL_06,
180434 class t_TAIL_07,
180435 class t_TAIL_08,
180436 class t_TAIL_09,
180437 class t_TAIL_10,
180438 class t_TAIL_11,
180439 class t_TAIL_12>
180440template <size_t t_INDEX,
180441 class t_ARG_01,
180442 class t_ARG_02,
180443 class t_ARG_03,
180444 class t_ARG_04,
180445 class t_ARG_05,
180446 class t_ARG_06,
180447 class t_ARG_07,
180448 class t_ARG_08,
180449 class t_ARG_09,
180450 class t_ARG_10>
180451typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180452 t_TAIL_02,
180453 t_TAIL_03,
180454 t_TAIL_04,
180455 t_TAIL_05,
180456 t_TAIL_06,
180457 t_TAIL_07,
180458 t_TAIL_08,
180459 t_TAIL_09,
180460 t_TAIL_10,
180461 t_TAIL_11,
180462 t_TAIL_12> >::type&
180463variant<t_HEAD, t_TAIL_01,
180464 t_TAIL_02,
180465 t_TAIL_03,
180466 t_TAIL_04,
180467 t_TAIL_05,
180468 t_TAIL_06,
180469 t_TAIL_07,
180470 t_TAIL_08,
180471 t_TAIL_09,
180472 t_TAIL_10,
180473 t_TAIL_11,
180474 t_TAIL_12,
180475 BSLS_COMPILERFEATURES_FILLT( 6)
180476 >::emplace(const t_ARG_01& arg_01,
180477 const t_ARG_02& arg_02,
180478 const t_ARG_03& arg_03,
180479 const t_ARG_04& arg_04,
180480 const t_ARG_05& arg_05,
180481 const t_ARG_06& arg_06,
180482 const t_ARG_07& arg_07,
180483 const t_ARG_08& arg_08,
180484 const t_ARG_09& arg_09,
180485 const t_ARG_10& arg_10)
180486{
180487 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180488 arg_02,
180489 arg_03,
180490 arg_04,
180491 arg_05,
180492 arg_06,
180493 arg_07,
180494 arg_08,
180495 arg_09,
180496 arg_10);
180497
180498 return bsl::get<t_INDEX>(*this);
180499}
180500#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
180501
180502#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
180503template <class t_HEAD, class t_TAIL_01,
180504 class t_TAIL_02,
180505 class t_TAIL_03,
180506 class t_TAIL_04,
180507 class t_TAIL_05,
180508 class t_TAIL_06,
180509 class t_TAIL_07,
180510 class t_TAIL_08,
180511 class t_TAIL_09,
180512 class t_TAIL_10,
180513 class t_TAIL_11,
180514 class t_TAIL_12,
180515 class t_TAIL_13>
180516template <size_t t_INDEX,
180517 class t_ARG_01,
180518 class t_ARG_02,
180519 class t_ARG_03,
180520 class t_ARG_04,
180521 class t_ARG_05,
180522 class t_ARG_06,
180523 class t_ARG_07,
180524 class t_ARG_08,
180525 class t_ARG_09,
180526 class t_ARG_10>
180527typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180528 t_TAIL_02,
180529 t_TAIL_03,
180530 t_TAIL_04,
180531 t_TAIL_05,
180532 t_TAIL_06,
180533 t_TAIL_07,
180534 t_TAIL_08,
180535 t_TAIL_09,
180536 t_TAIL_10,
180537 t_TAIL_11,
180538 t_TAIL_12,
180539 t_TAIL_13> >::type&
180540variant<t_HEAD, t_TAIL_01,
180541 t_TAIL_02,
180542 t_TAIL_03,
180543 t_TAIL_04,
180544 t_TAIL_05,
180545 t_TAIL_06,
180546 t_TAIL_07,
180547 t_TAIL_08,
180548 t_TAIL_09,
180549 t_TAIL_10,
180550 t_TAIL_11,
180551 t_TAIL_12,
180552 t_TAIL_13,
180553 BSLS_COMPILERFEATURES_FILLT( 5)
180554 >::emplace(const t_ARG_01& arg_01,
180555 const t_ARG_02& arg_02,
180556 const t_ARG_03& arg_03,
180557 const t_ARG_04& arg_04,
180558 const t_ARG_05& arg_05,
180559 const t_ARG_06& arg_06,
180560 const t_ARG_07& arg_07,
180561 const t_ARG_08& arg_08,
180562 const t_ARG_09& arg_09,
180563 const t_ARG_10& arg_10)
180564{
180565 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180566 arg_02,
180567 arg_03,
180568 arg_04,
180569 arg_05,
180570 arg_06,
180571 arg_07,
180572 arg_08,
180573 arg_09,
180574 arg_10);
180575
180576 return bsl::get<t_INDEX>(*this);
180577}
180578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
180579
180580#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
180581template <class t_HEAD, class t_TAIL_01,
180582 class t_TAIL_02,
180583 class t_TAIL_03,
180584 class t_TAIL_04,
180585 class t_TAIL_05,
180586 class t_TAIL_06,
180587 class t_TAIL_07,
180588 class t_TAIL_08,
180589 class t_TAIL_09,
180590 class t_TAIL_10,
180591 class t_TAIL_11,
180592 class t_TAIL_12,
180593 class t_TAIL_13,
180594 class t_TAIL_14>
180595template <size_t t_INDEX,
180596 class t_ARG_01,
180597 class t_ARG_02,
180598 class t_ARG_03,
180599 class t_ARG_04,
180600 class t_ARG_05,
180601 class t_ARG_06,
180602 class t_ARG_07,
180603 class t_ARG_08,
180604 class t_ARG_09,
180605 class t_ARG_10>
180606typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180607 t_TAIL_02,
180608 t_TAIL_03,
180609 t_TAIL_04,
180610 t_TAIL_05,
180611 t_TAIL_06,
180612 t_TAIL_07,
180613 t_TAIL_08,
180614 t_TAIL_09,
180615 t_TAIL_10,
180616 t_TAIL_11,
180617 t_TAIL_12,
180618 t_TAIL_13,
180619 t_TAIL_14> >::type&
180620variant<t_HEAD, t_TAIL_01,
180621 t_TAIL_02,
180622 t_TAIL_03,
180623 t_TAIL_04,
180624 t_TAIL_05,
180625 t_TAIL_06,
180626 t_TAIL_07,
180627 t_TAIL_08,
180628 t_TAIL_09,
180629 t_TAIL_10,
180630 t_TAIL_11,
180631 t_TAIL_12,
180632 t_TAIL_13,
180633 t_TAIL_14,
180634 BSLS_COMPILERFEATURES_FILLT( 4)
180635 >::emplace(const t_ARG_01& arg_01,
180636 const t_ARG_02& arg_02,
180637 const t_ARG_03& arg_03,
180638 const t_ARG_04& arg_04,
180639 const t_ARG_05& arg_05,
180640 const t_ARG_06& arg_06,
180641 const t_ARG_07& arg_07,
180642 const t_ARG_08& arg_08,
180643 const t_ARG_09& arg_09,
180644 const t_ARG_10& arg_10)
180645{
180646 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180647 arg_02,
180648 arg_03,
180649 arg_04,
180650 arg_05,
180651 arg_06,
180652 arg_07,
180653 arg_08,
180654 arg_09,
180655 arg_10);
180656
180657 return bsl::get<t_INDEX>(*this);
180658}
180659#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
180660
180661#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
180662template <class t_HEAD, class t_TAIL_01,
180663 class t_TAIL_02,
180664 class t_TAIL_03,
180665 class t_TAIL_04,
180666 class t_TAIL_05,
180667 class t_TAIL_06,
180668 class t_TAIL_07,
180669 class t_TAIL_08,
180670 class t_TAIL_09,
180671 class t_TAIL_10,
180672 class t_TAIL_11,
180673 class t_TAIL_12,
180674 class t_TAIL_13,
180675 class t_TAIL_14,
180676 class t_TAIL_15>
180677template <size_t t_INDEX,
180678 class t_ARG_01,
180679 class t_ARG_02,
180680 class t_ARG_03,
180681 class t_ARG_04,
180682 class t_ARG_05,
180683 class t_ARG_06,
180684 class t_ARG_07,
180685 class t_ARG_08,
180686 class t_ARG_09,
180687 class t_ARG_10>
180688typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180689 t_TAIL_02,
180690 t_TAIL_03,
180691 t_TAIL_04,
180692 t_TAIL_05,
180693 t_TAIL_06,
180694 t_TAIL_07,
180695 t_TAIL_08,
180696 t_TAIL_09,
180697 t_TAIL_10,
180698 t_TAIL_11,
180699 t_TAIL_12,
180700 t_TAIL_13,
180701 t_TAIL_14,
180702 t_TAIL_15> >::type&
180703variant<t_HEAD, t_TAIL_01,
180704 t_TAIL_02,
180705 t_TAIL_03,
180706 t_TAIL_04,
180707 t_TAIL_05,
180708 t_TAIL_06,
180709 t_TAIL_07,
180710 t_TAIL_08,
180711 t_TAIL_09,
180712 t_TAIL_10,
180713 t_TAIL_11,
180714 t_TAIL_12,
180715 t_TAIL_13,
180716 t_TAIL_14,
180717 t_TAIL_15,
180718 BSLS_COMPILERFEATURES_FILLT( 3)
180719 >::emplace(const t_ARG_01& arg_01,
180720 const t_ARG_02& arg_02,
180721 const t_ARG_03& arg_03,
180722 const t_ARG_04& arg_04,
180723 const t_ARG_05& arg_05,
180724 const t_ARG_06& arg_06,
180725 const t_ARG_07& arg_07,
180726 const t_ARG_08& arg_08,
180727 const t_ARG_09& arg_09,
180728 const t_ARG_10& arg_10)
180729{
180730 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180731 arg_02,
180732 arg_03,
180733 arg_04,
180734 arg_05,
180735 arg_06,
180736 arg_07,
180737 arg_08,
180738 arg_09,
180739 arg_10);
180740
180741 return bsl::get<t_INDEX>(*this);
180742}
180743#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
180744
180745#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
180746template <class t_HEAD, class t_TAIL_01,
180747 class t_TAIL_02,
180748 class t_TAIL_03,
180749 class t_TAIL_04,
180750 class t_TAIL_05,
180751 class t_TAIL_06,
180752 class t_TAIL_07,
180753 class t_TAIL_08,
180754 class t_TAIL_09,
180755 class t_TAIL_10,
180756 class t_TAIL_11,
180757 class t_TAIL_12,
180758 class t_TAIL_13,
180759 class t_TAIL_14,
180760 class t_TAIL_15,
180761 class t_TAIL_16>
180762template <size_t t_INDEX,
180763 class t_ARG_01,
180764 class t_ARG_02,
180765 class t_ARG_03,
180766 class t_ARG_04,
180767 class t_ARG_05,
180768 class t_ARG_06,
180769 class t_ARG_07,
180770 class t_ARG_08,
180771 class t_ARG_09,
180772 class t_ARG_10>
180773typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180774 t_TAIL_02,
180775 t_TAIL_03,
180776 t_TAIL_04,
180777 t_TAIL_05,
180778 t_TAIL_06,
180779 t_TAIL_07,
180780 t_TAIL_08,
180781 t_TAIL_09,
180782 t_TAIL_10,
180783 t_TAIL_11,
180784 t_TAIL_12,
180785 t_TAIL_13,
180786 t_TAIL_14,
180787 t_TAIL_15,
180788 t_TAIL_16> >::type&
180789variant<t_HEAD, t_TAIL_01,
180790 t_TAIL_02,
180791 t_TAIL_03,
180792 t_TAIL_04,
180793 t_TAIL_05,
180794 t_TAIL_06,
180795 t_TAIL_07,
180796 t_TAIL_08,
180797 t_TAIL_09,
180798 t_TAIL_10,
180799 t_TAIL_11,
180800 t_TAIL_12,
180801 t_TAIL_13,
180802 t_TAIL_14,
180803 t_TAIL_15,
180804 t_TAIL_16,
180805 BSLS_COMPILERFEATURES_FILLT( 2)
180806 >::emplace(const t_ARG_01& arg_01,
180807 const t_ARG_02& arg_02,
180808 const t_ARG_03& arg_03,
180809 const t_ARG_04& arg_04,
180810 const t_ARG_05& arg_05,
180811 const t_ARG_06& arg_06,
180812 const t_ARG_07& arg_07,
180813 const t_ARG_08& arg_08,
180814 const t_ARG_09& arg_09,
180815 const t_ARG_10& arg_10)
180816{
180817 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180818 arg_02,
180819 arg_03,
180820 arg_04,
180821 arg_05,
180822 arg_06,
180823 arg_07,
180824 arg_08,
180825 arg_09,
180826 arg_10);
180827
180828 return bsl::get<t_INDEX>(*this);
180829}
180830#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
180831
180832#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
180833template <class t_HEAD, class t_TAIL_01,
180834 class t_TAIL_02,
180835 class t_TAIL_03,
180836 class t_TAIL_04,
180837 class t_TAIL_05,
180838 class t_TAIL_06,
180839 class t_TAIL_07,
180840 class t_TAIL_08,
180841 class t_TAIL_09,
180842 class t_TAIL_10,
180843 class t_TAIL_11,
180844 class t_TAIL_12,
180845 class t_TAIL_13,
180846 class t_TAIL_14,
180847 class t_TAIL_15,
180848 class t_TAIL_16,
180849 class t_TAIL_17>
180850template <size_t t_INDEX,
180851 class t_ARG_01,
180852 class t_ARG_02,
180853 class t_ARG_03,
180854 class t_ARG_04,
180855 class t_ARG_05,
180856 class t_ARG_06,
180857 class t_ARG_07,
180858 class t_ARG_08,
180859 class t_ARG_09,
180860 class t_ARG_10>
180861typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180862 t_TAIL_02,
180863 t_TAIL_03,
180864 t_TAIL_04,
180865 t_TAIL_05,
180866 t_TAIL_06,
180867 t_TAIL_07,
180868 t_TAIL_08,
180869 t_TAIL_09,
180870 t_TAIL_10,
180871 t_TAIL_11,
180872 t_TAIL_12,
180873 t_TAIL_13,
180874 t_TAIL_14,
180875 t_TAIL_15,
180876 t_TAIL_16,
180877 t_TAIL_17> >::type&
180878variant<t_HEAD, t_TAIL_01,
180879 t_TAIL_02,
180880 t_TAIL_03,
180881 t_TAIL_04,
180882 t_TAIL_05,
180883 t_TAIL_06,
180884 t_TAIL_07,
180885 t_TAIL_08,
180886 t_TAIL_09,
180887 t_TAIL_10,
180888 t_TAIL_11,
180889 t_TAIL_12,
180890 t_TAIL_13,
180891 t_TAIL_14,
180892 t_TAIL_15,
180893 t_TAIL_16,
180894 t_TAIL_17,
180895 BSLS_COMPILERFEATURES_FILLT( 1)
180896 >::emplace(const t_ARG_01& arg_01,
180897 const t_ARG_02& arg_02,
180898 const t_ARG_03& arg_03,
180899 const t_ARG_04& arg_04,
180900 const t_ARG_05& arg_05,
180901 const t_ARG_06& arg_06,
180902 const t_ARG_07& arg_07,
180903 const t_ARG_08& arg_08,
180904 const t_ARG_09& arg_09,
180905 const t_ARG_10& arg_10)
180906{
180907 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
180908 arg_02,
180909 arg_03,
180910 arg_04,
180911 arg_05,
180912 arg_06,
180913 arg_07,
180914 arg_08,
180915 arg_09,
180916 arg_10);
180917
180918 return bsl::get<t_INDEX>(*this);
180919}
180920#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
180921
180922#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
180923template <class t_HEAD, class t_TAIL_01,
180924 class t_TAIL_02,
180925 class t_TAIL_03,
180926 class t_TAIL_04,
180927 class t_TAIL_05,
180928 class t_TAIL_06,
180929 class t_TAIL_07,
180930 class t_TAIL_08,
180931 class t_TAIL_09,
180932 class t_TAIL_10,
180933 class t_TAIL_11,
180934 class t_TAIL_12,
180935 class t_TAIL_13,
180936 class t_TAIL_14,
180937 class t_TAIL_15,
180938 class t_TAIL_16,
180939 class t_TAIL_17,
180940 class t_TAIL_18>
180941template <size_t t_INDEX,
180942 class t_ARG_01,
180943 class t_ARG_02,
180944 class t_ARG_03,
180945 class t_ARG_04,
180946 class t_ARG_05,
180947 class t_ARG_06,
180948 class t_ARG_07,
180949 class t_ARG_08,
180950 class t_ARG_09,
180951 class t_ARG_10>
180952typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL_01,
180953 t_TAIL_02,
180954 t_TAIL_03,
180955 t_TAIL_04,
180956 t_TAIL_05,
180957 t_TAIL_06,
180958 t_TAIL_07,
180959 t_TAIL_08,
180960 t_TAIL_09,
180961 t_TAIL_10,
180962 t_TAIL_11,
180963 t_TAIL_12,
180964 t_TAIL_13,
180965 t_TAIL_14,
180966 t_TAIL_15,
180967 t_TAIL_16,
180968 t_TAIL_17,
180969 t_TAIL_18> >::type&
180970variant<t_HEAD, t_TAIL_01,
180971 t_TAIL_02,
180972 t_TAIL_03,
180973 t_TAIL_04,
180974 t_TAIL_05,
180975 t_TAIL_06,
180976 t_TAIL_07,
180977 t_TAIL_08,
180978 t_TAIL_09,
180979 t_TAIL_10,
180980 t_TAIL_11,
180981 t_TAIL_12,
180982 t_TAIL_13,
180983 t_TAIL_14,
180984 t_TAIL_15,
180985 t_TAIL_16,
180986 t_TAIL_17,
180987 t_TAIL_18,
180988 BSLS_COMPILERFEATURES_FILLT( 0)
180989 >::emplace(const t_ARG_01& arg_01,
180990 const t_ARG_02& arg_02,
180991 const t_ARG_03& arg_03,
180992 const t_ARG_04& arg_04,
180993 const t_ARG_05& arg_05,
180994 const t_ARG_06& arg_06,
180995 const t_ARG_07& arg_07,
180996 const t_ARG_08& arg_08,
180997 const t_ARG_09& arg_09,
180998 const t_ARG_10& arg_10)
180999{
181000 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
181001 arg_02,
181002 arg_03,
181003 arg_04,
181004 arg_05,
181005 arg_06,
181006 arg_07,
181007 arg_08,
181008 arg_09,
181009 arg_10);
181010
181011 return bsl::get<t_INDEX>(*this);
181012}
181013#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
181014
181015
181016#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
181017template <class t_HEAD>
181018inline
181019variant<t_HEAD>& variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::operator=(
181020 const variant& rhs)
181021{
181022 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181023 return *this;
181024}
181025#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
181026
181027#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
181028template <class t_HEAD, class t_TAIL_01>
181029inline
181030variant<t_HEAD, t_TAIL_01>& variant<t_HEAD, t_TAIL_01,
181031 BSLS_COMPILERFEATURES_FILLT(17)
181032 >::operator=(
181033 const variant& rhs)
181034{
181035 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181036 return *this;
181037}
181038#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
181039
181040#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
181041template <class t_HEAD, class t_TAIL_01,
181042 class t_TAIL_02>
181043inline
181044variant<t_HEAD, t_TAIL_01,
181045 t_TAIL_02>& variant<t_HEAD, t_TAIL_01,
181046 t_TAIL_02,
181047 BSLS_COMPILERFEATURES_FILLT(16)
181048 >::operator=(
181049 const variant& rhs)
181050{
181051 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181052 return *this;
181053}
181054#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
181055
181056#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
181057template <class t_HEAD, class t_TAIL_01,
181058 class t_TAIL_02,
181059 class t_TAIL_03>
181060inline
181061variant<t_HEAD, t_TAIL_01,
181062 t_TAIL_02,
181063 t_TAIL_03>& variant<t_HEAD, t_TAIL_01,
181064 t_TAIL_02,
181065 t_TAIL_03,
181066 BSLS_COMPILERFEATURES_FILLT(15)
181067 >::operator=(
181068 const variant& rhs)
181069{
181070 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181071 return *this;
181072}
181073#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
181074
181075#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
181076template <class t_HEAD, class t_TAIL_01,
181077 class t_TAIL_02,
181078 class t_TAIL_03,
181079 class t_TAIL_04>
181080inline
181081variant<t_HEAD, t_TAIL_01,
181082 t_TAIL_02,
181083 t_TAIL_03,
181084 t_TAIL_04>& variant<t_HEAD, t_TAIL_01,
181085 t_TAIL_02,
181086 t_TAIL_03,
181087 t_TAIL_04,
181088 BSLS_COMPILERFEATURES_FILLT(14)
181089 >::operator=(
181090 const variant& rhs)
181091{
181092 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181093 return *this;
181094}
181095#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
181096
181097#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
181098template <class t_HEAD, class t_TAIL_01,
181099 class t_TAIL_02,
181100 class t_TAIL_03,
181101 class t_TAIL_04,
181102 class t_TAIL_05>
181103inline
181104variant<t_HEAD, t_TAIL_01,
181105 t_TAIL_02,
181106 t_TAIL_03,
181107 t_TAIL_04,
181108 t_TAIL_05>& variant<t_HEAD, t_TAIL_01,
181109 t_TAIL_02,
181110 t_TAIL_03,
181111 t_TAIL_04,
181112 t_TAIL_05,
181113 BSLS_COMPILERFEATURES_FILLT(13)
181114 >::operator=(
181115 const variant& rhs)
181116{
181117 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181118 return *this;
181119}
181120#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
181121
181122#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
181123template <class t_HEAD, class t_TAIL_01,
181124 class t_TAIL_02,
181125 class t_TAIL_03,
181126 class t_TAIL_04,
181127 class t_TAIL_05,
181128 class t_TAIL_06>
181129inline
181130variant<t_HEAD, t_TAIL_01,
181131 t_TAIL_02,
181132 t_TAIL_03,
181133 t_TAIL_04,
181134 t_TAIL_05,
181135 t_TAIL_06>& variant<t_HEAD, t_TAIL_01,
181136 t_TAIL_02,
181137 t_TAIL_03,
181138 t_TAIL_04,
181139 t_TAIL_05,
181140 t_TAIL_06,
181141 BSLS_COMPILERFEATURES_FILLT(12)
181142 >::operator=(
181143 const variant& rhs)
181144{
181145 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181146 return *this;
181147}
181148#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
181149
181150#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
181151template <class t_HEAD, class t_TAIL_01,
181152 class t_TAIL_02,
181153 class t_TAIL_03,
181154 class t_TAIL_04,
181155 class t_TAIL_05,
181156 class t_TAIL_06,
181157 class t_TAIL_07>
181158inline
181159variant<t_HEAD, t_TAIL_01,
181160 t_TAIL_02,
181161 t_TAIL_03,
181162 t_TAIL_04,
181163 t_TAIL_05,
181164 t_TAIL_06,
181165 t_TAIL_07>& variant<t_HEAD, t_TAIL_01,
181166 t_TAIL_02,
181167 t_TAIL_03,
181168 t_TAIL_04,
181169 t_TAIL_05,
181170 t_TAIL_06,
181171 t_TAIL_07,
181172 BSLS_COMPILERFEATURES_FILLT(11)
181173 >::operator=(
181174 const variant& rhs)
181175{
181176 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181177 return *this;
181178}
181179#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
181180
181181#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
181182template <class t_HEAD, class t_TAIL_01,
181183 class t_TAIL_02,
181184 class t_TAIL_03,
181185 class t_TAIL_04,
181186 class t_TAIL_05,
181187 class t_TAIL_06,
181188 class t_TAIL_07,
181189 class t_TAIL_08>
181190inline
181191variant<t_HEAD, t_TAIL_01,
181192 t_TAIL_02,
181193 t_TAIL_03,
181194 t_TAIL_04,
181195 t_TAIL_05,
181196 t_TAIL_06,
181197 t_TAIL_07,
181198 t_TAIL_08>& variant<t_HEAD, t_TAIL_01,
181199 t_TAIL_02,
181200 t_TAIL_03,
181201 t_TAIL_04,
181202 t_TAIL_05,
181203 t_TAIL_06,
181204 t_TAIL_07,
181205 t_TAIL_08,
181206 BSLS_COMPILERFEATURES_FILLT(10)
181207 >::operator=(
181208 const variant& rhs)
181209{
181210 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181211 return *this;
181212}
181213#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
181214
181215#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
181216template <class t_HEAD, class t_TAIL_01,
181217 class t_TAIL_02,
181218 class t_TAIL_03,
181219 class t_TAIL_04,
181220 class t_TAIL_05,
181221 class t_TAIL_06,
181222 class t_TAIL_07,
181223 class t_TAIL_08,
181224 class t_TAIL_09>
181225inline
181226variant<t_HEAD, t_TAIL_01,
181227 t_TAIL_02,
181228 t_TAIL_03,
181229 t_TAIL_04,
181230 t_TAIL_05,
181231 t_TAIL_06,
181232 t_TAIL_07,
181233 t_TAIL_08,
181234 t_TAIL_09>& variant<t_HEAD, t_TAIL_01,
181235 t_TAIL_02,
181236 t_TAIL_03,
181237 t_TAIL_04,
181238 t_TAIL_05,
181239 t_TAIL_06,
181240 t_TAIL_07,
181241 t_TAIL_08,
181242 t_TAIL_09,
181243 BSLS_COMPILERFEATURES_FILLT( 9)
181244 >::operator=(
181245 const variant& rhs)
181246{
181247 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181248 return *this;
181249}
181250#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
181251
181252#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
181253template <class t_HEAD, class t_TAIL_01,
181254 class t_TAIL_02,
181255 class t_TAIL_03,
181256 class t_TAIL_04,
181257 class t_TAIL_05,
181258 class t_TAIL_06,
181259 class t_TAIL_07,
181260 class t_TAIL_08,
181261 class t_TAIL_09,
181262 class t_TAIL_10>
181263inline
181264variant<t_HEAD, t_TAIL_01,
181265 t_TAIL_02,
181266 t_TAIL_03,
181267 t_TAIL_04,
181268 t_TAIL_05,
181269 t_TAIL_06,
181270 t_TAIL_07,
181271 t_TAIL_08,
181272 t_TAIL_09,
181273 t_TAIL_10>& variant<t_HEAD, t_TAIL_01,
181274 t_TAIL_02,
181275 t_TAIL_03,
181276 t_TAIL_04,
181277 t_TAIL_05,
181278 t_TAIL_06,
181279 t_TAIL_07,
181280 t_TAIL_08,
181281 t_TAIL_09,
181282 t_TAIL_10,
181283 BSLS_COMPILERFEATURES_FILLT( 8)
181284 >::operator=(
181285 const variant& rhs)
181286{
181287 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181288 return *this;
181289}
181290#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
181291
181292#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
181293template <class t_HEAD, class t_TAIL_01,
181294 class t_TAIL_02,
181295 class t_TAIL_03,
181296 class t_TAIL_04,
181297 class t_TAIL_05,
181298 class t_TAIL_06,
181299 class t_TAIL_07,
181300 class t_TAIL_08,
181301 class t_TAIL_09,
181302 class t_TAIL_10,
181303 class t_TAIL_11>
181304inline
181305variant<t_HEAD, t_TAIL_01,
181306 t_TAIL_02,
181307 t_TAIL_03,
181308 t_TAIL_04,
181309 t_TAIL_05,
181310 t_TAIL_06,
181311 t_TAIL_07,
181312 t_TAIL_08,
181313 t_TAIL_09,
181314 t_TAIL_10,
181315 t_TAIL_11>& variant<t_HEAD, t_TAIL_01,
181316 t_TAIL_02,
181317 t_TAIL_03,
181318 t_TAIL_04,
181319 t_TAIL_05,
181320 t_TAIL_06,
181321 t_TAIL_07,
181322 t_TAIL_08,
181323 t_TAIL_09,
181324 t_TAIL_10,
181325 t_TAIL_11,
181326 BSLS_COMPILERFEATURES_FILLT( 7)
181327 >::operator=(
181328 const variant& rhs)
181329{
181330 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181331 return *this;
181332}
181333#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
181334
181335#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
181336template <class t_HEAD, class t_TAIL_01,
181337 class t_TAIL_02,
181338 class t_TAIL_03,
181339 class t_TAIL_04,
181340 class t_TAIL_05,
181341 class t_TAIL_06,
181342 class t_TAIL_07,
181343 class t_TAIL_08,
181344 class t_TAIL_09,
181345 class t_TAIL_10,
181346 class t_TAIL_11,
181347 class t_TAIL_12>
181348inline
181349variant<t_HEAD, t_TAIL_01,
181350 t_TAIL_02,
181351 t_TAIL_03,
181352 t_TAIL_04,
181353 t_TAIL_05,
181354 t_TAIL_06,
181355 t_TAIL_07,
181356 t_TAIL_08,
181357 t_TAIL_09,
181358 t_TAIL_10,
181359 t_TAIL_11,
181360 t_TAIL_12>& variant<t_HEAD, t_TAIL_01,
181361 t_TAIL_02,
181362 t_TAIL_03,
181363 t_TAIL_04,
181364 t_TAIL_05,
181365 t_TAIL_06,
181366 t_TAIL_07,
181367 t_TAIL_08,
181368 t_TAIL_09,
181369 t_TAIL_10,
181370 t_TAIL_11,
181371 t_TAIL_12,
181372 BSLS_COMPILERFEATURES_FILLT( 6)
181373 >::operator=(
181374 const variant& rhs)
181375{
181376 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181377 return *this;
181378}
181379#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
181380
181381#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
181382template <class t_HEAD, class t_TAIL_01,
181383 class t_TAIL_02,
181384 class t_TAIL_03,
181385 class t_TAIL_04,
181386 class t_TAIL_05,
181387 class t_TAIL_06,
181388 class t_TAIL_07,
181389 class t_TAIL_08,
181390 class t_TAIL_09,
181391 class t_TAIL_10,
181392 class t_TAIL_11,
181393 class t_TAIL_12,
181394 class t_TAIL_13>
181395inline
181396variant<t_HEAD, t_TAIL_01,
181397 t_TAIL_02,
181398 t_TAIL_03,
181399 t_TAIL_04,
181400 t_TAIL_05,
181401 t_TAIL_06,
181402 t_TAIL_07,
181403 t_TAIL_08,
181404 t_TAIL_09,
181405 t_TAIL_10,
181406 t_TAIL_11,
181407 t_TAIL_12,
181408 t_TAIL_13>& variant<t_HEAD, t_TAIL_01,
181409 t_TAIL_02,
181410 t_TAIL_03,
181411 t_TAIL_04,
181412 t_TAIL_05,
181413 t_TAIL_06,
181414 t_TAIL_07,
181415 t_TAIL_08,
181416 t_TAIL_09,
181417 t_TAIL_10,
181418 t_TAIL_11,
181419 t_TAIL_12,
181420 t_TAIL_13,
181421 BSLS_COMPILERFEATURES_FILLT( 5)
181422 >::operator=(
181423 const variant& rhs)
181424{
181425 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181426 return *this;
181427}
181428#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
181429
181430#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
181431template <class t_HEAD, class t_TAIL_01,
181432 class t_TAIL_02,
181433 class t_TAIL_03,
181434 class t_TAIL_04,
181435 class t_TAIL_05,
181436 class t_TAIL_06,
181437 class t_TAIL_07,
181438 class t_TAIL_08,
181439 class t_TAIL_09,
181440 class t_TAIL_10,
181441 class t_TAIL_11,
181442 class t_TAIL_12,
181443 class t_TAIL_13,
181444 class t_TAIL_14>
181445inline
181446variant<t_HEAD, t_TAIL_01,
181447 t_TAIL_02,
181448 t_TAIL_03,
181449 t_TAIL_04,
181450 t_TAIL_05,
181451 t_TAIL_06,
181452 t_TAIL_07,
181453 t_TAIL_08,
181454 t_TAIL_09,
181455 t_TAIL_10,
181456 t_TAIL_11,
181457 t_TAIL_12,
181458 t_TAIL_13,
181459 t_TAIL_14>& variant<t_HEAD, t_TAIL_01,
181460 t_TAIL_02,
181461 t_TAIL_03,
181462 t_TAIL_04,
181463 t_TAIL_05,
181464 t_TAIL_06,
181465 t_TAIL_07,
181466 t_TAIL_08,
181467 t_TAIL_09,
181468 t_TAIL_10,
181469 t_TAIL_11,
181470 t_TAIL_12,
181471 t_TAIL_13,
181472 t_TAIL_14,
181473 BSLS_COMPILERFEATURES_FILLT( 4)
181474 >::operator=(
181475 const variant& rhs)
181476{
181477 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181478 return *this;
181479}
181480#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
181481
181482#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
181483template <class t_HEAD, class t_TAIL_01,
181484 class t_TAIL_02,
181485 class t_TAIL_03,
181486 class t_TAIL_04,
181487 class t_TAIL_05,
181488 class t_TAIL_06,
181489 class t_TAIL_07,
181490 class t_TAIL_08,
181491 class t_TAIL_09,
181492 class t_TAIL_10,
181493 class t_TAIL_11,
181494 class t_TAIL_12,
181495 class t_TAIL_13,
181496 class t_TAIL_14,
181497 class t_TAIL_15>
181498inline
181499variant<t_HEAD, t_TAIL_01,
181500 t_TAIL_02,
181501 t_TAIL_03,
181502 t_TAIL_04,
181503 t_TAIL_05,
181504 t_TAIL_06,
181505 t_TAIL_07,
181506 t_TAIL_08,
181507 t_TAIL_09,
181508 t_TAIL_10,
181509 t_TAIL_11,
181510 t_TAIL_12,
181511 t_TAIL_13,
181512 t_TAIL_14,
181513 t_TAIL_15>& variant<t_HEAD, t_TAIL_01,
181514 t_TAIL_02,
181515 t_TAIL_03,
181516 t_TAIL_04,
181517 t_TAIL_05,
181518 t_TAIL_06,
181519 t_TAIL_07,
181520 t_TAIL_08,
181521 t_TAIL_09,
181522 t_TAIL_10,
181523 t_TAIL_11,
181524 t_TAIL_12,
181525 t_TAIL_13,
181526 t_TAIL_14,
181527 t_TAIL_15,
181528 BSLS_COMPILERFEATURES_FILLT( 3)
181529 >::operator=(
181530 const variant& rhs)
181531{
181532 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181533 return *this;
181534}
181535#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
181536
181537#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
181538template <class t_HEAD, class t_TAIL_01,
181539 class t_TAIL_02,
181540 class t_TAIL_03,
181541 class t_TAIL_04,
181542 class t_TAIL_05,
181543 class t_TAIL_06,
181544 class t_TAIL_07,
181545 class t_TAIL_08,
181546 class t_TAIL_09,
181547 class t_TAIL_10,
181548 class t_TAIL_11,
181549 class t_TAIL_12,
181550 class t_TAIL_13,
181551 class t_TAIL_14,
181552 class t_TAIL_15,
181553 class t_TAIL_16>
181554inline
181555variant<t_HEAD, t_TAIL_01,
181556 t_TAIL_02,
181557 t_TAIL_03,
181558 t_TAIL_04,
181559 t_TAIL_05,
181560 t_TAIL_06,
181561 t_TAIL_07,
181562 t_TAIL_08,
181563 t_TAIL_09,
181564 t_TAIL_10,
181565 t_TAIL_11,
181566 t_TAIL_12,
181567 t_TAIL_13,
181568 t_TAIL_14,
181569 t_TAIL_15,
181570 t_TAIL_16>& variant<t_HEAD, t_TAIL_01,
181571 t_TAIL_02,
181572 t_TAIL_03,
181573 t_TAIL_04,
181574 t_TAIL_05,
181575 t_TAIL_06,
181576 t_TAIL_07,
181577 t_TAIL_08,
181578 t_TAIL_09,
181579 t_TAIL_10,
181580 t_TAIL_11,
181581 t_TAIL_12,
181582 t_TAIL_13,
181583 t_TAIL_14,
181584 t_TAIL_15,
181585 t_TAIL_16,
181586 BSLS_COMPILERFEATURES_FILLT( 2)
181587 >::operator=(
181588 const variant& rhs)
181589{
181590 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181591 return *this;
181592}
181593#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
181594
181595#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
181596template <class t_HEAD, class t_TAIL_01,
181597 class t_TAIL_02,
181598 class t_TAIL_03,
181599 class t_TAIL_04,
181600 class t_TAIL_05,
181601 class t_TAIL_06,
181602 class t_TAIL_07,
181603 class t_TAIL_08,
181604 class t_TAIL_09,
181605 class t_TAIL_10,
181606 class t_TAIL_11,
181607 class t_TAIL_12,
181608 class t_TAIL_13,
181609 class t_TAIL_14,
181610 class t_TAIL_15,
181611 class t_TAIL_16,
181612 class t_TAIL_17>
181613inline
181614variant<t_HEAD, t_TAIL_01,
181615 t_TAIL_02,
181616 t_TAIL_03,
181617 t_TAIL_04,
181618 t_TAIL_05,
181619 t_TAIL_06,
181620 t_TAIL_07,
181621 t_TAIL_08,
181622 t_TAIL_09,
181623 t_TAIL_10,
181624 t_TAIL_11,
181625 t_TAIL_12,
181626 t_TAIL_13,
181627 t_TAIL_14,
181628 t_TAIL_15,
181629 t_TAIL_16,
181630 t_TAIL_17>& variant<t_HEAD, t_TAIL_01,
181631 t_TAIL_02,
181632 t_TAIL_03,
181633 t_TAIL_04,
181634 t_TAIL_05,
181635 t_TAIL_06,
181636 t_TAIL_07,
181637 t_TAIL_08,
181638 t_TAIL_09,
181639 t_TAIL_10,
181640 t_TAIL_11,
181641 t_TAIL_12,
181642 t_TAIL_13,
181643 t_TAIL_14,
181644 t_TAIL_15,
181645 t_TAIL_16,
181646 t_TAIL_17,
181647 BSLS_COMPILERFEATURES_FILLT( 1)
181648 >::operator=(
181649 const variant& rhs)
181650{
181651 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181652 return *this;
181653}
181654#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
181655
181656#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
181657template <class t_HEAD, class t_TAIL_01,
181658 class t_TAIL_02,
181659 class t_TAIL_03,
181660 class t_TAIL_04,
181661 class t_TAIL_05,
181662 class t_TAIL_06,
181663 class t_TAIL_07,
181664 class t_TAIL_08,
181665 class t_TAIL_09,
181666 class t_TAIL_10,
181667 class t_TAIL_11,
181668 class t_TAIL_12,
181669 class t_TAIL_13,
181670 class t_TAIL_14,
181671 class t_TAIL_15,
181672 class t_TAIL_16,
181673 class t_TAIL_17,
181674 class t_TAIL_18>
181675inline
181676variant<t_HEAD, t_TAIL_01,
181677 t_TAIL_02,
181678 t_TAIL_03,
181679 t_TAIL_04,
181680 t_TAIL_05,
181681 t_TAIL_06,
181682 t_TAIL_07,
181683 t_TAIL_08,
181684 t_TAIL_09,
181685 t_TAIL_10,
181686 t_TAIL_11,
181687 t_TAIL_12,
181688 t_TAIL_13,
181689 t_TAIL_14,
181690 t_TAIL_15,
181691 t_TAIL_16,
181692 t_TAIL_17,
181693 t_TAIL_18>& variant<t_HEAD, t_TAIL_01,
181694 t_TAIL_02,
181695 t_TAIL_03,
181696 t_TAIL_04,
181697 t_TAIL_05,
181698 t_TAIL_06,
181699 t_TAIL_07,
181700 t_TAIL_08,
181701 t_TAIL_09,
181702 t_TAIL_10,
181703 t_TAIL_11,
181704 t_TAIL_12,
181705 t_TAIL_13,
181706 t_TAIL_14,
181707 t_TAIL_15,
181708 t_TAIL_16,
181709 t_TAIL_17,
181710 t_TAIL_18,
181711 BSLS_COMPILERFEATURES_FILLT( 0)
181712 >::operator=(
181713 const variant& rhs)
181714{
181715 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
181716 return *this;
181717}
181718#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
181719
181720
181721#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
181722template <class t_HEAD>
181723inline
181724variant<t_HEAD>& variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::operator=(
181725 BloombergLP::bslmf::MovableRef<variant> rhs)
181726{
181727 variant<t_HEAD>& lvalue = rhs;
181728 Variant_Base::operator=(
181729 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181730 return *this;
181731}
181732#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
181733
181734#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
181735template <class t_HEAD, class t_TAIL_01>
181736inline
181737variant<t_HEAD, t_TAIL_01>& variant<t_HEAD, t_TAIL_01,
181738 BSLS_COMPILERFEATURES_FILLT(17)
181739 >::operator=(
181740 BloombergLP::bslmf::MovableRef<variant> rhs)
181741{
181742 variant<t_HEAD, t_TAIL_01>& lvalue = rhs;
181743 Variant_Base::operator=(
181744 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181745 return *this;
181746}
181747#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
181748
181749#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
181750template <class t_HEAD, class t_TAIL_01,
181751 class t_TAIL_02>
181752inline
181753variant<t_HEAD, t_TAIL_01,
181754 t_TAIL_02>& variant<t_HEAD, t_TAIL_01,
181755 t_TAIL_02,
181756 BSLS_COMPILERFEATURES_FILLT(16)
181757 >::operator=(
181758 BloombergLP::bslmf::MovableRef<variant> rhs)
181759{
181760 variant<t_HEAD, t_TAIL_01,
181761 t_TAIL_02>& lvalue = rhs;
181762 Variant_Base::operator=(
181763 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181764 return *this;
181765}
181766#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
181767
181768#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
181769template <class t_HEAD, class t_TAIL_01,
181770 class t_TAIL_02,
181771 class t_TAIL_03>
181772inline
181773variant<t_HEAD, t_TAIL_01,
181774 t_TAIL_02,
181775 t_TAIL_03>& variant<t_HEAD, t_TAIL_01,
181776 t_TAIL_02,
181777 t_TAIL_03,
181778 BSLS_COMPILERFEATURES_FILLT(15)
181779 >::operator=(
181780 BloombergLP::bslmf::MovableRef<variant> rhs)
181781{
181782 variant<t_HEAD, t_TAIL_01,
181783 t_TAIL_02,
181784 t_TAIL_03>& lvalue = rhs;
181785 Variant_Base::operator=(
181786 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181787 return *this;
181788}
181789#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
181790
181791#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
181792template <class t_HEAD, class t_TAIL_01,
181793 class t_TAIL_02,
181794 class t_TAIL_03,
181795 class t_TAIL_04>
181796inline
181797variant<t_HEAD, t_TAIL_01,
181798 t_TAIL_02,
181799 t_TAIL_03,
181800 t_TAIL_04>& variant<t_HEAD, t_TAIL_01,
181801 t_TAIL_02,
181802 t_TAIL_03,
181803 t_TAIL_04,
181804 BSLS_COMPILERFEATURES_FILLT(14)
181805 >::operator=(
181806 BloombergLP::bslmf::MovableRef<variant> rhs)
181807{
181808 variant<t_HEAD, t_TAIL_01,
181809 t_TAIL_02,
181810 t_TAIL_03,
181811 t_TAIL_04>& lvalue = rhs;
181812 Variant_Base::operator=(
181813 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181814 return *this;
181815}
181816#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
181817
181818#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
181819template <class t_HEAD, class t_TAIL_01,
181820 class t_TAIL_02,
181821 class t_TAIL_03,
181822 class t_TAIL_04,
181823 class t_TAIL_05>
181824inline
181825variant<t_HEAD, t_TAIL_01,
181826 t_TAIL_02,
181827 t_TAIL_03,
181828 t_TAIL_04,
181829 t_TAIL_05>& variant<t_HEAD, t_TAIL_01,
181830 t_TAIL_02,
181831 t_TAIL_03,
181832 t_TAIL_04,
181833 t_TAIL_05,
181834 BSLS_COMPILERFEATURES_FILLT(13)
181835 >::operator=(
181836 BloombergLP::bslmf::MovableRef<variant> rhs)
181837{
181838 variant<t_HEAD, t_TAIL_01,
181839 t_TAIL_02,
181840 t_TAIL_03,
181841 t_TAIL_04,
181842 t_TAIL_05>& lvalue = rhs;
181843 Variant_Base::operator=(
181844 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181845 return *this;
181846}
181847#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
181848
181849#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
181850template <class t_HEAD, class t_TAIL_01,
181851 class t_TAIL_02,
181852 class t_TAIL_03,
181853 class t_TAIL_04,
181854 class t_TAIL_05,
181855 class t_TAIL_06>
181856inline
181857variant<t_HEAD, t_TAIL_01,
181858 t_TAIL_02,
181859 t_TAIL_03,
181860 t_TAIL_04,
181861 t_TAIL_05,
181862 t_TAIL_06>& variant<t_HEAD, t_TAIL_01,
181863 t_TAIL_02,
181864 t_TAIL_03,
181865 t_TAIL_04,
181866 t_TAIL_05,
181867 t_TAIL_06,
181868 BSLS_COMPILERFEATURES_FILLT(12)
181869 >::operator=(
181870 BloombergLP::bslmf::MovableRef<variant> rhs)
181871{
181872 variant<t_HEAD, t_TAIL_01,
181873 t_TAIL_02,
181874 t_TAIL_03,
181875 t_TAIL_04,
181876 t_TAIL_05,
181877 t_TAIL_06>& lvalue = rhs;
181878 Variant_Base::operator=(
181879 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181880 return *this;
181881}
181882#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
181883
181884#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
181885template <class t_HEAD, class t_TAIL_01,
181886 class t_TAIL_02,
181887 class t_TAIL_03,
181888 class t_TAIL_04,
181889 class t_TAIL_05,
181890 class t_TAIL_06,
181891 class t_TAIL_07>
181892inline
181893variant<t_HEAD, t_TAIL_01,
181894 t_TAIL_02,
181895 t_TAIL_03,
181896 t_TAIL_04,
181897 t_TAIL_05,
181898 t_TAIL_06,
181899 t_TAIL_07>& variant<t_HEAD, t_TAIL_01,
181900 t_TAIL_02,
181901 t_TAIL_03,
181902 t_TAIL_04,
181903 t_TAIL_05,
181904 t_TAIL_06,
181905 t_TAIL_07,
181906 BSLS_COMPILERFEATURES_FILLT(11)
181907 >::operator=(
181908 BloombergLP::bslmf::MovableRef<variant> rhs)
181909{
181910 variant<t_HEAD, t_TAIL_01,
181911 t_TAIL_02,
181912 t_TAIL_03,
181913 t_TAIL_04,
181914 t_TAIL_05,
181915 t_TAIL_06,
181916 t_TAIL_07>& lvalue = rhs;
181917 Variant_Base::operator=(
181918 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181919 return *this;
181920}
181921#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
181922
181923#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
181924template <class t_HEAD, class t_TAIL_01,
181925 class t_TAIL_02,
181926 class t_TAIL_03,
181927 class t_TAIL_04,
181928 class t_TAIL_05,
181929 class t_TAIL_06,
181930 class t_TAIL_07,
181931 class t_TAIL_08>
181932inline
181933variant<t_HEAD, t_TAIL_01,
181934 t_TAIL_02,
181935 t_TAIL_03,
181936 t_TAIL_04,
181937 t_TAIL_05,
181938 t_TAIL_06,
181939 t_TAIL_07,
181940 t_TAIL_08>& variant<t_HEAD, t_TAIL_01,
181941 t_TAIL_02,
181942 t_TAIL_03,
181943 t_TAIL_04,
181944 t_TAIL_05,
181945 t_TAIL_06,
181946 t_TAIL_07,
181947 t_TAIL_08,
181948 BSLS_COMPILERFEATURES_FILLT(10)
181949 >::operator=(
181950 BloombergLP::bslmf::MovableRef<variant> rhs)
181951{
181952 variant<t_HEAD, t_TAIL_01,
181953 t_TAIL_02,
181954 t_TAIL_03,
181955 t_TAIL_04,
181956 t_TAIL_05,
181957 t_TAIL_06,
181958 t_TAIL_07,
181959 t_TAIL_08>& lvalue = rhs;
181960 Variant_Base::operator=(
181961 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
181962 return *this;
181963}
181964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
181965
181966#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
181967template <class t_HEAD, class t_TAIL_01,
181968 class t_TAIL_02,
181969 class t_TAIL_03,
181970 class t_TAIL_04,
181971 class t_TAIL_05,
181972 class t_TAIL_06,
181973 class t_TAIL_07,
181974 class t_TAIL_08,
181975 class t_TAIL_09>
181976inline
181977variant<t_HEAD, t_TAIL_01,
181978 t_TAIL_02,
181979 t_TAIL_03,
181980 t_TAIL_04,
181981 t_TAIL_05,
181982 t_TAIL_06,
181983 t_TAIL_07,
181984 t_TAIL_08,
181985 t_TAIL_09>& variant<t_HEAD, t_TAIL_01,
181986 t_TAIL_02,
181987 t_TAIL_03,
181988 t_TAIL_04,
181989 t_TAIL_05,
181990 t_TAIL_06,
181991 t_TAIL_07,
181992 t_TAIL_08,
181993 t_TAIL_09,
181994 BSLS_COMPILERFEATURES_FILLT( 9)
181995 >::operator=(
181996 BloombergLP::bslmf::MovableRef<variant> rhs)
181997{
181998 variant<t_HEAD, t_TAIL_01,
181999 t_TAIL_02,
182000 t_TAIL_03,
182001 t_TAIL_04,
182002 t_TAIL_05,
182003 t_TAIL_06,
182004 t_TAIL_07,
182005 t_TAIL_08,
182006 t_TAIL_09>& lvalue = rhs;
182007 Variant_Base::operator=(
182008 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182009 return *this;
182010}
182011#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
182012
182013#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
182014template <class t_HEAD, class t_TAIL_01,
182015 class t_TAIL_02,
182016 class t_TAIL_03,
182017 class t_TAIL_04,
182018 class t_TAIL_05,
182019 class t_TAIL_06,
182020 class t_TAIL_07,
182021 class t_TAIL_08,
182022 class t_TAIL_09,
182023 class t_TAIL_10>
182024inline
182025variant<t_HEAD, t_TAIL_01,
182026 t_TAIL_02,
182027 t_TAIL_03,
182028 t_TAIL_04,
182029 t_TAIL_05,
182030 t_TAIL_06,
182031 t_TAIL_07,
182032 t_TAIL_08,
182033 t_TAIL_09,
182034 t_TAIL_10>& variant<t_HEAD, t_TAIL_01,
182035 t_TAIL_02,
182036 t_TAIL_03,
182037 t_TAIL_04,
182038 t_TAIL_05,
182039 t_TAIL_06,
182040 t_TAIL_07,
182041 t_TAIL_08,
182042 t_TAIL_09,
182043 t_TAIL_10,
182044 BSLS_COMPILERFEATURES_FILLT( 8)
182045 >::operator=(
182046 BloombergLP::bslmf::MovableRef<variant> rhs)
182047{
182048 variant<t_HEAD, t_TAIL_01,
182049 t_TAIL_02,
182050 t_TAIL_03,
182051 t_TAIL_04,
182052 t_TAIL_05,
182053 t_TAIL_06,
182054 t_TAIL_07,
182055 t_TAIL_08,
182056 t_TAIL_09,
182057 t_TAIL_10>& lvalue = rhs;
182058 Variant_Base::operator=(
182059 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182060 return *this;
182061}
182062#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
182063
182064#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
182065template <class t_HEAD, class t_TAIL_01,
182066 class t_TAIL_02,
182067 class t_TAIL_03,
182068 class t_TAIL_04,
182069 class t_TAIL_05,
182070 class t_TAIL_06,
182071 class t_TAIL_07,
182072 class t_TAIL_08,
182073 class t_TAIL_09,
182074 class t_TAIL_10,
182075 class t_TAIL_11>
182076inline
182077variant<t_HEAD, t_TAIL_01,
182078 t_TAIL_02,
182079 t_TAIL_03,
182080 t_TAIL_04,
182081 t_TAIL_05,
182082 t_TAIL_06,
182083 t_TAIL_07,
182084 t_TAIL_08,
182085 t_TAIL_09,
182086 t_TAIL_10,
182087 t_TAIL_11>& variant<t_HEAD, t_TAIL_01,
182088 t_TAIL_02,
182089 t_TAIL_03,
182090 t_TAIL_04,
182091 t_TAIL_05,
182092 t_TAIL_06,
182093 t_TAIL_07,
182094 t_TAIL_08,
182095 t_TAIL_09,
182096 t_TAIL_10,
182097 t_TAIL_11,
182098 BSLS_COMPILERFEATURES_FILLT( 7)
182099 >::operator=(
182100 BloombergLP::bslmf::MovableRef<variant> rhs)
182101{
182102 variant<t_HEAD, t_TAIL_01,
182103 t_TAIL_02,
182104 t_TAIL_03,
182105 t_TAIL_04,
182106 t_TAIL_05,
182107 t_TAIL_06,
182108 t_TAIL_07,
182109 t_TAIL_08,
182110 t_TAIL_09,
182111 t_TAIL_10,
182112 t_TAIL_11>& lvalue = rhs;
182113 Variant_Base::operator=(
182114 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182115 return *this;
182116}
182117#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
182118
182119#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
182120template <class t_HEAD, class t_TAIL_01,
182121 class t_TAIL_02,
182122 class t_TAIL_03,
182123 class t_TAIL_04,
182124 class t_TAIL_05,
182125 class t_TAIL_06,
182126 class t_TAIL_07,
182127 class t_TAIL_08,
182128 class t_TAIL_09,
182129 class t_TAIL_10,
182130 class t_TAIL_11,
182131 class t_TAIL_12>
182132inline
182133variant<t_HEAD, t_TAIL_01,
182134 t_TAIL_02,
182135 t_TAIL_03,
182136 t_TAIL_04,
182137 t_TAIL_05,
182138 t_TAIL_06,
182139 t_TAIL_07,
182140 t_TAIL_08,
182141 t_TAIL_09,
182142 t_TAIL_10,
182143 t_TAIL_11,
182144 t_TAIL_12>& variant<t_HEAD, t_TAIL_01,
182145 t_TAIL_02,
182146 t_TAIL_03,
182147 t_TAIL_04,
182148 t_TAIL_05,
182149 t_TAIL_06,
182150 t_TAIL_07,
182151 t_TAIL_08,
182152 t_TAIL_09,
182153 t_TAIL_10,
182154 t_TAIL_11,
182155 t_TAIL_12,
182156 BSLS_COMPILERFEATURES_FILLT( 6)
182157 >::operator=(
182158 BloombergLP::bslmf::MovableRef<variant> rhs)
182159{
182160 variant<t_HEAD, t_TAIL_01,
182161 t_TAIL_02,
182162 t_TAIL_03,
182163 t_TAIL_04,
182164 t_TAIL_05,
182165 t_TAIL_06,
182166 t_TAIL_07,
182167 t_TAIL_08,
182168 t_TAIL_09,
182169 t_TAIL_10,
182170 t_TAIL_11,
182171 t_TAIL_12>& lvalue = rhs;
182172 Variant_Base::operator=(
182173 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182174 return *this;
182175}
182176#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
182177
182178#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
182179template <class t_HEAD, class t_TAIL_01,
182180 class t_TAIL_02,
182181 class t_TAIL_03,
182182 class t_TAIL_04,
182183 class t_TAIL_05,
182184 class t_TAIL_06,
182185 class t_TAIL_07,
182186 class t_TAIL_08,
182187 class t_TAIL_09,
182188 class t_TAIL_10,
182189 class t_TAIL_11,
182190 class t_TAIL_12,
182191 class t_TAIL_13>
182192inline
182193variant<t_HEAD, t_TAIL_01,
182194 t_TAIL_02,
182195 t_TAIL_03,
182196 t_TAIL_04,
182197 t_TAIL_05,
182198 t_TAIL_06,
182199 t_TAIL_07,
182200 t_TAIL_08,
182201 t_TAIL_09,
182202 t_TAIL_10,
182203 t_TAIL_11,
182204 t_TAIL_12,
182205 t_TAIL_13>& variant<t_HEAD, t_TAIL_01,
182206 t_TAIL_02,
182207 t_TAIL_03,
182208 t_TAIL_04,
182209 t_TAIL_05,
182210 t_TAIL_06,
182211 t_TAIL_07,
182212 t_TAIL_08,
182213 t_TAIL_09,
182214 t_TAIL_10,
182215 t_TAIL_11,
182216 t_TAIL_12,
182217 t_TAIL_13,
182218 BSLS_COMPILERFEATURES_FILLT( 5)
182219 >::operator=(
182220 BloombergLP::bslmf::MovableRef<variant> rhs)
182221{
182222 variant<t_HEAD, t_TAIL_01,
182223 t_TAIL_02,
182224 t_TAIL_03,
182225 t_TAIL_04,
182226 t_TAIL_05,
182227 t_TAIL_06,
182228 t_TAIL_07,
182229 t_TAIL_08,
182230 t_TAIL_09,
182231 t_TAIL_10,
182232 t_TAIL_11,
182233 t_TAIL_12,
182234 t_TAIL_13>& lvalue = rhs;
182235 Variant_Base::operator=(
182236 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182237 return *this;
182238}
182239#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
182240
182241#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
182242template <class t_HEAD, class t_TAIL_01,
182243 class t_TAIL_02,
182244 class t_TAIL_03,
182245 class t_TAIL_04,
182246 class t_TAIL_05,
182247 class t_TAIL_06,
182248 class t_TAIL_07,
182249 class t_TAIL_08,
182250 class t_TAIL_09,
182251 class t_TAIL_10,
182252 class t_TAIL_11,
182253 class t_TAIL_12,
182254 class t_TAIL_13,
182255 class t_TAIL_14>
182256inline
182257variant<t_HEAD, t_TAIL_01,
182258 t_TAIL_02,
182259 t_TAIL_03,
182260 t_TAIL_04,
182261 t_TAIL_05,
182262 t_TAIL_06,
182263 t_TAIL_07,
182264 t_TAIL_08,
182265 t_TAIL_09,
182266 t_TAIL_10,
182267 t_TAIL_11,
182268 t_TAIL_12,
182269 t_TAIL_13,
182270 t_TAIL_14>& variant<t_HEAD, t_TAIL_01,
182271 t_TAIL_02,
182272 t_TAIL_03,
182273 t_TAIL_04,
182274 t_TAIL_05,
182275 t_TAIL_06,
182276 t_TAIL_07,
182277 t_TAIL_08,
182278 t_TAIL_09,
182279 t_TAIL_10,
182280 t_TAIL_11,
182281 t_TAIL_12,
182282 t_TAIL_13,
182283 t_TAIL_14,
182284 BSLS_COMPILERFEATURES_FILLT( 4)
182285 >::operator=(
182286 BloombergLP::bslmf::MovableRef<variant> rhs)
182287{
182288 variant<t_HEAD, t_TAIL_01,
182289 t_TAIL_02,
182290 t_TAIL_03,
182291 t_TAIL_04,
182292 t_TAIL_05,
182293 t_TAIL_06,
182294 t_TAIL_07,
182295 t_TAIL_08,
182296 t_TAIL_09,
182297 t_TAIL_10,
182298 t_TAIL_11,
182299 t_TAIL_12,
182300 t_TAIL_13,
182301 t_TAIL_14>& lvalue = rhs;
182302 Variant_Base::operator=(
182303 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182304 return *this;
182305}
182306#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
182307
182308#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
182309template <class t_HEAD, class t_TAIL_01,
182310 class t_TAIL_02,
182311 class t_TAIL_03,
182312 class t_TAIL_04,
182313 class t_TAIL_05,
182314 class t_TAIL_06,
182315 class t_TAIL_07,
182316 class t_TAIL_08,
182317 class t_TAIL_09,
182318 class t_TAIL_10,
182319 class t_TAIL_11,
182320 class t_TAIL_12,
182321 class t_TAIL_13,
182322 class t_TAIL_14,
182323 class t_TAIL_15>
182324inline
182325variant<t_HEAD, t_TAIL_01,
182326 t_TAIL_02,
182327 t_TAIL_03,
182328 t_TAIL_04,
182329 t_TAIL_05,
182330 t_TAIL_06,
182331 t_TAIL_07,
182332 t_TAIL_08,
182333 t_TAIL_09,
182334 t_TAIL_10,
182335 t_TAIL_11,
182336 t_TAIL_12,
182337 t_TAIL_13,
182338 t_TAIL_14,
182339 t_TAIL_15>& variant<t_HEAD, t_TAIL_01,
182340 t_TAIL_02,
182341 t_TAIL_03,
182342 t_TAIL_04,
182343 t_TAIL_05,
182344 t_TAIL_06,
182345 t_TAIL_07,
182346 t_TAIL_08,
182347 t_TAIL_09,
182348 t_TAIL_10,
182349 t_TAIL_11,
182350 t_TAIL_12,
182351 t_TAIL_13,
182352 t_TAIL_14,
182353 t_TAIL_15,
182354 BSLS_COMPILERFEATURES_FILLT( 3)
182355 >::operator=(
182356 BloombergLP::bslmf::MovableRef<variant> rhs)
182357{
182358 variant<t_HEAD, t_TAIL_01,
182359 t_TAIL_02,
182360 t_TAIL_03,
182361 t_TAIL_04,
182362 t_TAIL_05,
182363 t_TAIL_06,
182364 t_TAIL_07,
182365 t_TAIL_08,
182366 t_TAIL_09,
182367 t_TAIL_10,
182368 t_TAIL_11,
182369 t_TAIL_12,
182370 t_TAIL_13,
182371 t_TAIL_14,
182372 t_TAIL_15>& lvalue = rhs;
182373 Variant_Base::operator=(
182374 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182375 return *this;
182376}
182377#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
182378
182379#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
182380template <class t_HEAD, class t_TAIL_01,
182381 class t_TAIL_02,
182382 class t_TAIL_03,
182383 class t_TAIL_04,
182384 class t_TAIL_05,
182385 class t_TAIL_06,
182386 class t_TAIL_07,
182387 class t_TAIL_08,
182388 class t_TAIL_09,
182389 class t_TAIL_10,
182390 class t_TAIL_11,
182391 class t_TAIL_12,
182392 class t_TAIL_13,
182393 class t_TAIL_14,
182394 class t_TAIL_15,
182395 class t_TAIL_16>
182396inline
182397variant<t_HEAD, t_TAIL_01,
182398 t_TAIL_02,
182399 t_TAIL_03,
182400 t_TAIL_04,
182401 t_TAIL_05,
182402 t_TAIL_06,
182403 t_TAIL_07,
182404 t_TAIL_08,
182405 t_TAIL_09,
182406 t_TAIL_10,
182407 t_TAIL_11,
182408 t_TAIL_12,
182409 t_TAIL_13,
182410 t_TAIL_14,
182411 t_TAIL_15,
182412 t_TAIL_16>& variant<t_HEAD, t_TAIL_01,
182413 t_TAIL_02,
182414 t_TAIL_03,
182415 t_TAIL_04,
182416 t_TAIL_05,
182417 t_TAIL_06,
182418 t_TAIL_07,
182419 t_TAIL_08,
182420 t_TAIL_09,
182421 t_TAIL_10,
182422 t_TAIL_11,
182423 t_TAIL_12,
182424 t_TAIL_13,
182425 t_TAIL_14,
182426 t_TAIL_15,
182427 t_TAIL_16,
182428 BSLS_COMPILERFEATURES_FILLT( 2)
182429 >::operator=(
182430 BloombergLP::bslmf::MovableRef<variant> rhs)
182431{
182432 variant<t_HEAD, t_TAIL_01,
182433 t_TAIL_02,
182434 t_TAIL_03,
182435 t_TAIL_04,
182436 t_TAIL_05,
182437 t_TAIL_06,
182438 t_TAIL_07,
182439 t_TAIL_08,
182440 t_TAIL_09,
182441 t_TAIL_10,
182442 t_TAIL_11,
182443 t_TAIL_12,
182444 t_TAIL_13,
182445 t_TAIL_14,
182446 t_TAIL_15,
182447 t_TAIL_16>& lvalue = rhs;
182448 Variant_Base::operator=(
182449 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182450 return *this;
182451}
182452#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
182453
182454#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
182455template <class t_HEAD, class t_TAIL_01,
182456 class t_TAIL_02,
182457 class t_TAIL_03,
182458 class t_TAIL_04,
182459 class t_TAIL_05,
182460 class t_TAIL_06,
182461 class t_TAIL_07,
182462 class t_TAIL_08,
182463 class t_TAIL_09,
182464 class t_TAIL_10,
182465 class t_TAIL_11,
182466 class t_TAIL_12,
182467 class t_TAIL_13,
182468 class t_TAIL_14,
182469 class t_TAIL_15,
182470 class t_TAIL_16,
182471 class t_TAIL_17>
182472inline
182473variant<t_HEAD, t_TAIL_01,
182474 t_TAIL_02,
182475 t_TAIL_03,
182476 t_TAIL_04,
182477 t_TAIL_05,
182478 t_TAIL_06,
182479 t_TAIL_07,
182480 t_TAIL_08,
182481 t_TAIL_09,
182482 t_TAIL_10,
182483 t_TAIL_11,
182484 t_TAIL_12,
182485 t_TAIL_13,
182486 t_TAIL_14,
182487 t_TAIL_15,
182488 t_TAIL_16,
182489 t_TAIL_17>& variant<t_HEAD, t_TAIL_01,
182490 t_TAIL_02,
182491 t_TAIL_03,
182492 t_TAIL_04,
182493 t_TAIL_05,
182494 t_TAIL_06,
182495 t_TAIL_07,
182496 t_TAIL_08,
182497 t_TAIL_09,
182498 t_TAIL_10,
182499 t_TAIL_11,
182500 t_TAIL_12,
182501 t_TAIL_13,
182502 t_TAIL_14,
182503 t_TAIL_15,
182504 t_TAIL_16,
182505 t_TAIL_17,
182506 BSLS_COMPILERFEATURES_FILLT( 1)
182507 >::operator=(
182508 BloombergLP::bslmf::MovableRef<variant> rhs)
182509{
182510 variant<t_HEAD, t_TAIL_01,
182511 t_TAIL_02,
182512 t_TAIL_03,
182513 t_TAIL_04,
182514 t_TAIL_05,
182515 t_TAIL_06,
182516 t_TAIL_07,
182517 t_TAIL_08,
182518 t_TAIL_09,
182519 t_TAIL_10,
182520 t_TAIL_11,
182521 t_TAIL_12,
182522 t_TAIL_13,
182523 t_TAIL_14,
182524 t_TAIL_15,
182525 t_TAIL_16,
182526 t_TAIL_17>& lvalue = rhs;
182527 Variant_Base::operator=(
182528 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182529 return *this;
182530}
182531#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
182532
182533#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
182534template <class t_HEAD, class t_TAIL_01,
182535 class t_TAIL_02,
182536 class t_TAIL_03,
182537 class t_TAIL_04,
182538 class t_TAIL_05,
182539 class t_TAIL_06,
182540 class t_TAIL_07,
182541 class t_TAIL_08,
182542 class t_TAIL_09,
182543 class t_TAIL_10,
182544 class t_TAIL_11,
182545 class t_TAIL_12,
182546 class t_TAIL_13,
182547 class t_TAIL_14,
182548 class t_TAIL_15,
182549 class t_TAIL_16,
182550 class t_TAIL_17,
182551 class t_TAIL_18>
182552inline
182553variant<t_HEAD, t_TAIL_01,
182554 t_TAIL_02,
182555 t_TAIL_03,
182556 t_TAIL_04,
182557 t_TAIL_05,
182558 t_TAIL_06,
182559 t_TAIL_07,
182560 t_TAIL_08,
182561 t_TAIL_09,
182562 t_TAIL_10,
182563 t_TAIL_11,
182564 t_TAIL_12,
182565 t_TAIL_13,
182566 t_TAIL_14,
182567 t_TAIL_15,
182568 t_TAIL_16,
182569 t_TAIL_17,
182570 t_TAIL_18>& variant<t_HEAD, t_TAIL_01,
182571 t_TAIL_02,
182572 t_TAIL_03,
182573 t_TAIL_04,
182574 t_TAIL_05,
182575 t_TAIL_06,
182576 t_TAIL_07,
182577 t_TAIL_08,
182578 t_TAIL_09,
182579 t_TAIL_10,
182580 t_TAIL_11,
182581 t_TAIL_12,
182582 t_TAIL_13,
182583 t_TAIL_14,
182584 t_TAIL_15,
182585 t_TAIL_16,
182586 t_TAIL_17,
182587 t_TAIL_18,
182588 BSLS_COMPILERFEATURES_FILLT( 0)
182589 >::operator=(
182590 BloombergLP::bslmf::MovableRef<variant> rhs)
182591{
182592 variant<t_HEAD, t_TAIL_01,
182593 t_TAIL_02,
182594 t_TAIL_03,
182595 t_TAIL_04,
182596 t_TAIL_05,
182597 t_TAIL_06,
182598 t_TAIL_07,
182599 t_TAIL_08,
182600 t_TAIL_09,
182601 t_TAIL_10,
182602 t_TAIL_11,
182603 t_TAIL_12,
182604 t_TAIL_13,
182605 t_TAIL_14,
182606 t_TAIL_15,
182607 t_TAIL_16,
182608 t_TAIL_17,
182609 t_TAIL_18>& lvalue = rhs;
182610 Variant_Base::operator=(
182611 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
182612 return *this;
182613}
182614#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
182615
182616#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
182617template <class t_HEAD>
182618template <class t_TYPE>
182619inline
182620typename bsl::enable_if<
182621 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD>,
182622 t_TYPE>::value,
182623 variant<t_HEAD>&>::type
182624variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::operator=(const t_TYPE& rhs)
182625{
182626 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182627
182628 if (index() == altIndex) {
182629 bsl::get<altIndex>(*this) = rhs;
182630 }
182631 else {
182632 emplace<altIndex>(rhs);
182633 }
182634
182635 return *this;
182636}
182637#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 0
182638
182639#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
182640template <class t_HEAD, class t_TAIL_01>
182641template <class t_TYPE>
182642inline
182643typename bsl::enable_if<
182644 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01>,
182645 t_TYPE>::value,
182646 variant<t_HEAD, t_TAIL_01>&>::type
182647variant<t_HEAD, t_TAIL_01,
182648 BSLS_COMPILERFEATURES_FILLT(17)>::operator=(const t_TYPE& rhs)
182649{
182650 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182651
182652 if (index() == altIndex) {
182653 bsl::get<altIndex>(*this) = rhs;
182654 }
182655 else {
182656 emplace<altIndex>(rhs);
182657 }
182658
182659 return *this;
182660}
182661#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 1
182662
182663#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
182664template <class t_HEAD, class t_TAIL_01,
182665 class t_TAIL_02>
182666template <class t_TYPE>
182667inline
182668typename bsl::enable_if<
182669 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182670 t_TAIL_02>,
182671 t_TYPE>::value,
182672 variant<t_HEAD, t_TAIL_01,
182673 t_TAIL_02>&>::type
182674variant<t_HEAD, t_TAIL_01,
182675 t_TAIL_02,
182676 BSLS_COMPILERFEATURES_FILLT(16)>::operator=(const t_TYPE& rhs)
182677{
182678 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182679
182680 if (index() == altIndex) {
182681 bsl::get<altIndex>(*this) = rhs;
182682 }
182683 else {
182684 emplace<altIndex>(rhs);
182685 }
182686
182687 return *this;
182688}
182689#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 2
182690
182691#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
182692template <class t_HEAD, class t_TAIL_01,
182693 class t_TAIL_02,
182694 class t_TAIL_03>
182695template <class t_TYPE>
182696inline
182697typename bsl::enable_if<
182698 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182699 t_TAIL_02,
182700 t_TAIL_03>,
182701 t_TYPE>::value,
182702 variant<t_HEAD, t_TAIL_01,
182703 t_TAIL_02,
182704 t_TAIL_03>&>::type
182705variant<t_HEAD, t_TAIL_01,
182706 t_TAIL_02,
182707 t_TAIL_03,
182708 BSLS_COMPILERFEATURES_FILLT(15)>::operator=(const t_TYPE& rhs)
182709{
182710 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182711
182712 if (index() == altIndex) {
182713 bsl::get<altIndex>(*this) = rhs;
182714 }
182715 else {
182716 emplace<altIndex>(rhs);
182717 }
182718
182719 return *this;
182720}
182721#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 3
182722
182723#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
182724template <class t_HEAD, class t_TAIL_01,
182725 class t_TAIL_02,
182726 class t_TAIL_03,
182727 class t_TAIL_04>
182728template <class t_TYPE>
182729inline
182730typename bsl::enable_if<
182731 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182732 t_TAIL_02,
182733 t_TAIL_03,
182734 t_TAIL_04>,
182735 t_TYPE>::value,
182736 variant<t_HEAD, t_TAIL_01,
182737 t_TAIL_02,
182738 t_TAIL_03,
182739 t_TAIL_04>&>::type
182740variant<t_HEAD, t_TAIL_01,
182741 t_TAIL_02,
182742 t_TAIL_03,
182743 t_TAIL_04,
182744 BSLS_COMPILERFEATURES_FILLT(14)>::operator=(const t_TYPE& rhs)
182745{
182746 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182747
182748 if (index() == altIndex) {
182749 bsl::get<altIndex>(*this) = rhs;
182750 }
182751 else {
182752 emplace<altIndex>(rhs);
182753 }
182754
182755 return *this;
182756}
182757#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 4
182758
182759#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
182760template <class t_HEAD, class t_TAIL_01,
182761 class t_TAIL_02,
182762 class t_TAIL_03,
182763 class t_TAIL_04,
182764 class t_TAIL_05>
182765template <class t_TYPE>
182766inline
182767typename bsl::enable_if<
182768 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182769 t_TAIL_02,
182770 t_TAIL_03,
182771 t_TAIL_04,
182772 t_TAIL_05>,
182773 t_TYPE>::value,
182774 variant<t_HEAD, t_TAIL_01,
182775 t_TAIL_02,
182776 t_TAIL_03,
182777 t_TAIL_04,
182778 t_TAIL_05>&>::type
182779variant<t_HEAD, t_TAIL_01,
182780 t_TAIL_02,
182781 t_TAIL_03,
182782 t_TAIL_04,
182783 t_TAIL_05,
182784 BSLS_COMPILERFEATURES_FILLT(13)>::operator=(const t_TYPE& rhs)
182785{
182786 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182787
182788 if (index() == altIndex) {
182789 bsl::get<altIndex>(*this) = rhs;
182790 }
182791 else {
182792 emplace<altIndex>(rhs);
182793 }
182794
182795 return *this;
182796}
182797#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 5
182798
182799#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
182800template <class t_HEAD, class t_TAIL_01,
182801 class t_TAIL_02,
182802 class t_TAIL_03,
182803 class t_TAIL_04,
182804 class t_TAIL_05,
182805 class t_TAIL_06>
182806template <class t_TYPE>
182807inline
182808typename bsl::enable_if<
182809 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182810 t_TAIL_02,
182811 t_TAIL_03,
182812 t_TAIL_04,
182813 t_TAIL_05,
182814 t_TAIL_06>,
182815 t_TYPE>::value,
182816 variant<t_HEAD, t_TAIL_01,
182817 t_TAIL_02,
182818 t_TAIL_03,
182819 t_TAIL_04,
182820 t_TAIL_05,
182821 t_TAIL_06>&>::type
182822variant<t_HEAD, t_TAIL_01,
182823 t_TAIL_02,
182824 t_TAIL_03,
182825 t_TAIL_04,
182826 t_TAIL_05,
182827 t_TAIL_06,
182828 BSLS_COMPILERFEATURES_FILLT(12)>::operator=(const t_TYPE& rhs)
182829{
182830 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182831
182832 if (index() == altIndex) {
182833 bsl::get<altIndex>(*this) = rhs;
182834 }
182835 else {
182836 emplace<altIndex>(rhs);
182837 }
182838
182839 return *this;
182840}
182841#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 6
182842
182843#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
182844template <class t_HEAD, class t_TAIL_01,
182845 class t_TAIL_02,
182846 class t_TAIL_03,
182847 class t_TAIL_04,
182848 class t_TAIL_05,
182849 class t_TAIL_06,
182850 class t_TAIL_07>
182851template <class t_TYPE>
182852inline
182853typename bsl::enable_if<
182854 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182855 t_TAIL_02,
182856 t_TAIL_03,
182857 t_TAIL_04,
182858 t_TAIL_05,
182859 t_TAIL_06,
182860 t_TAIL_07>,
182861 t_TYPE>::value,
182862 variant<t_HEAD, t_TAIL_01,
182863 t_TAIL_02,
182864 t_TAIL_03,
182865 t_TAIL_04,
182866 t_TAIL_05,
182867 t_TAIL_06,
182868 t_TAIL_07>&>::type
182869variant<t_HEAD, t_TAIL_01,
182870 t_TAIL_02,
182871 t_TAIL_03,
182872 t_TAIL_04,
182873 t_TAIL_05,
182874 t_TAIL_06,
182875 t_TAIL_07,
182876 BSLS_COMPILERFEATURES_FILLT(11)>::operator=(const t_TYPE& rhs)
182877{
182878 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182879
182880 if (index() == altIndex) {
182881 bsl::get<altIndex>(*this) = rhs;
182882 }
182883 else {
182884 emplace<altIndex>(rhs);
182885 }
182886
182887 return *this;
182888}
182889#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 7
182890
182891#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
182892template <class t_HEAD, class t_TAIL_01,
182893 class t_TAIL_02,
182894 class t_TAIL_03,
182895 class t_TAIL_04,
182896 class t_TAIL_05,
182897 class t_TAIL_06,
182898 class t_TAIL_07,
182899 class t_TAIL_08>
182900template <class t_TYPE>
182901inline
182902typename bsl::enable_if<
182903 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182904 t_TAIL_02,
182905 t_TAIL_03,
182906 t_TAIL_04,
182907 t_TAIL_05,
182908 t_TAIL_06,
182909 t_TAIL_07,
182910 t_TAIL_08>,
182911 t_TYPE>::value,
182912 variant<t_HEAD, t_TAIL_01,
182913 t_TAIL_02,
182914 t_TAIL_03,
182915 t_TAIL_04,
182916 t_TAIL_05,
182917 t_TAIL_06,
182918 t_TAIL_07,
182919 t_TAIL_08>&>::type
182920variant<t_HEAD, t_TAIL_01,
182921 t_TAIL_02,
182922 t_TAIL_03,
182923 t_TAIL_04,
182924 t_TAIL_05,
182925 t_TAIL_06,
182926 t_TAIL_07,
182927 t_TAIL_08,
182928 BSLS_COMPILERFEATURES_FILLT(10)>::operator=(const t_TYPE& rhs)
182929{
182930 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182931
182932 if (index() == altIndex) {
182933 bsl::get<altIndex>(*this) = rhs;
182934 }
182935 else {
182936 emplace<altIndex>(rhs);
182937 }
182938
182939 return *this;
182940}
182941#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 8
182942
182943#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
182944template <class t_HEAD, class t_TAIL_01,
182945 class t_TAIL_02,
182946 class t_TAIL_03,
182947 class t_TAIL_04,
182948 class t_TAIL_05,
182949 class t_TAIL_06,
182950 class t_TAIL_07,
182951 class t_TAIL_08,
182952 class t_TAIL_09>
182953template <class t_TYPE>
182954inline
182955typename bsl::enable_if<
182956 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
182957 t_TAIL_02,
182958 t_TAIL_03,
182959 t_TAIL_04,
182960 t_TAIL_05,
182961 t_TAIL_06,
182962 t_TAIL_07,
182963 t_TAIL_08,
182964 t_TAIL_09>,
182965 t_TYPE>::value,
182966 variant<t_HEAD, t_TAIL_01,
182967 t_TAIL_02,
182968 t_TAIL_03,
182969 t_TAIL_04,
182970 t_TAIL_05,
182971 t_TAIL_06,
182972 t_TAIL_07,
182973 t_TAIL_08,
182974 t_TAIL_09>&>::type
182975variant<t_HEAD, t_TAIL_01,
182976 t_TAIL_02,
182977 t_TAIL_03,
182978 t_TAIL_04,
182979 t_TAIL_05,
182980 t_TAIL_06,
182981 t_TAIL_07,
182982 t_TAIL_08,
182983 t_TAIL_09,
182984 BSLS_COMPILERFEATURES_FILLT( 9)>::operator=(const t_TYPE& rhs)
182985{
182986 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
182987
182988 if (index() == altIndex) {
182989 bsl::get<altIndex>(*this) = rhs;
182990 }
182991 else {
182992 emplace<altIndex>(rhs);
182993 }
182994
182995 return *this;
182996}
182997#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 9
182998
182999#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
183000template <class t_HEAD, class t_TAIL_01,
183001 class t_TAIL_02,
183002 class t_TAIL_03,
183003 class t_TAIL_04,
183004 class t_TAIL_05,
183005 class t_TAIL_06,
183006 class t_TAIL_07,
183007 class t_TAIL_08,
183008 class t_TAIL_09,
183009 class t_TAIL_10>
183010template <class t_TYPE>
183011inline
183012typename bsl::enable_if<
183013 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183014 t_TAIL_02,
183015 t_TAIL_03,
183016 t_TAIL_04,
183017 t_TAIL_05,
183018 t_TAIL_06,
183019 t_TAIL_07,
183020 t_TAIL_08,
183021 t_TAIL_09,
183022 t_TAIL_10>,
183023 t_TYPE>::value,
183024 variant<t_HEAD, t_TAIL_01,
183025 t_TAIL_02,
183026 t_TAIL_03,
183027 t_TAIL_04,
183028 t_TAIL_05,
183029 t_TAIL_06,
183030 t_TAIL_07,
183031 t_TAIL_08,
183032 t_TAIL_09,
183033 t_TAIL_10>&>::type
183034variant<t_HEAD, t_TAIL_01,
183035 t_TAIL_02,
183036 t_TAIL_03,
183037 t_TAIL_04,
183038 t_TAIL_05,
183039 t_TAIL_06,
183040 t_TAIL_07,
183041 t_TAIL_08,
183042 t_TAIL_09,
183043 t_TAIL_10,
183044 BSLS_COMPILERFEATURES_FILLT( 8)>::operator=(const t_TYPE& rhs)
183045{
183046 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183047
183048 if (index() == altIndex) {
183049 bsl::get<altIndex>(*this) = rhs;
183050 }
183051 else {
183052 emplace<altIndex>(rhs);
183053 }
183054
183055 return *this;
183056}
183057#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 10
183058
183059#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
183060template <class t_HEAD, class t_TAIL_01,
183061 class t_TAIL_02,
183062 class t_TAIL_03,
183063 class t_TAIL_04,
183064 class t_TAIL_05,
183065 class t_TAIL_06,
183066 class t_TAIL_07,
183067 class t_TAIL_08,
183068 class t_TAIL_09,
183069 class t_TAIL_10,
183070 class t_TAIL_11>
183071template <class t_TYPE>
183072inline
183073typename bsl::enable_if<
183074 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183075 t_TAIL_02,
183076 t_TAIL_03,
183077 t_TAIL_04,
183078 t_TAIL_05,
183079 t_TAIL_06,
183080 t_TAIL_07,
183081 t_TAIL_08,
183082 t_TAIL_09,
183083 t_TAIL_10,
183084 t_TAIL_11>,
183085 t_TYPE>::value,
183086 variant<t_HEAD, t_TAIL_01,
183087 t_TAIL_02,
183088 t_TAIL_03,
183089 t_TAIL_04,
183090 t_TAIL_05,
183091 t_TAIL_06,
183092 t_TAIL_07,
183093 t_TAIL_08,
183094 t_TAIL_09,
183095 t_TAIL_10,
183096 t_TAIL_11>&>::type
183097variant<t_HEAD, t_TAIL_01,
183098 t_TAIL_02,
183099 t_TAIL_03,
183100 t_TAIL_04,
183101 t_TAIL_05,
183102 t_TAIL_06,
183103 t_TAIL_07,
183104 t_TAIL_08,
183105 t_TAIL_09,
183106 t_TAIL_10,
183107 t_TAIL_11,
183108 BSLS_COMPILERFEATURES_FILLT( 7)>::operator=(const t_TYPE& rhs)
183109{
183110 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183111
183112 if (index() == altIndex) {
183113 bsl::get<altIndex>(*this) = rhs;
183114 }
183115 else {
183116 emplace<altIndex>(rhs);
183117 }
183118
183119 return *this;
183120}
183121#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 11
183122
183123#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
183124template <class t_HEAD, class t_TAIL_01,
183125 class t_TAIL_02,
183126 class t_TAIL_03,
183127 class t_TAIL_04,
183128 class t_TAIL_05,
183129 class t_TAIL_06,
183130 class t_TAIL_07,
183131 class t_TAIL_08,
183132 class t_TAIL_09,
183133 class t_TAIL_10,
183134 class t_TAIL_11,
183135 class t_TAIL_12>
183136template <class t_TYPE>
183137inline
183138typename bsl::enable_if<
183139 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183140 t_TAIL_02,
183141 t_TAIL_03,
183142 t_TAIL_04,
183143 t_TAIL_05,
183144 t_TAIL_06,
183145 t_TAIL_07,
183146 t_TAIL_08,
183147 t_TAIL_09,
183148 t_TAIL_10,
183149 t_TAIL_11,
183150 t_TAIL_12>,
183151 t_TYPE>::value,
183152 variant<t_HEAD, t_TAIL_01,
183153 t_TAIL_02,
183154 t_TAIL_03,
183155 t_TAIL_04,
183156 t_TAIL_05,
183157 t_TAIL_06,
183158 t_TAIL_07,
183159 t_TAIL_08,
183160 t_TAIL_09,
183161 t_TAIL_10,
183162 t_TAIL_11,
183163 t_TAIL_12>&>::type
183164variant<t_HEAD, t_TAIL_01,
183165 t_TAIL_02,
183166 t_TAIL_03,
183167 t_TAIL_04,
183168 t_TAIL_05,
183169 t_TAIL_06,
183170 t_TAIL_07,
183171 t_TAIL_08,
183172 t_TAIL_09,
183173 t_TAIL_10,
183174 t_TAIL_11,
183175 t_TAIL_12,
183176 BSLS_COMPILERFEATURES_FILLT( 6)>::operator=(const t_TYPE& rhs)
183177{
183178 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183179
183180 if (index() == altIndex) {
183181 bsl::get<altIndex>(*this) = rhs;
183182 }
183183 else {
183184 emplace<altIndex>(rhs);
183185 }
183186
183187 return *this;
183188}
183189#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 12
183190
183191#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
183192template <class t_HEAD, class t_TAIL_01,
183193 class t_TAIL_02,
183194 class t_TAIL_03,
183195 class t_TAIL_04,
183196 class t_TAIL_05,
183197 class t_TAIL_06,
183198 class t_TAIL_07,
183199 class t_TAIL_08,
183200 class t_TAIL_09,
183201 class t_TAIL_10,
183202 class t_TAIL_11,
183203 class t_TAIL_12,
183204 class t_TAIL_13>
183205template <class t_TYPE>
183206inline
183207typename bsl::enable_if<
183208 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183209 t_TAIL_02,
183210 t_TAIL_03,
183211 t_TAIL_04,
183212 t_TAIL_05,
183213 t_TAIL_06,
183214 t_TAIL_07,
183215 t_TAIL_08,
183216 t_TAIL_09,
183217 t_TAIL_10,
183218 t_TAIL_11,
183219 t_TAIL_12,
183220 t_TAIL_13>,
183221 t_TYPE>::value,
183222 variant<t_HEAD, t_TAIL_01,
183223 t_TAIL_02,
183224 t_TAIL_03,
183225 t_TAIL_04,
183226 t_TAIL_05,
183227 t_TAIL_06,
183228 t_TAIL_07,
183229 t_TAIL_08,
183230 t_TAIL_09,
183231 t_TAIL_10,
183232 t_TAIL_11,
183233 t_TAIL_12,
183234 t_TAIL_13>&>::type
183235variant<t_HEAD, t_TAIL_01,
183236 t_TAIL_02,
183237 t_TAIL_03,
183238 t_TAIL_04,
183239 t_TAIL_05,
183240 t_TAIL_06,
183241 t_TAIL_07,
183242 t_TAIL_08,
183243 t_TAIL_09,
183244 t_TAIL_10,
183245 t_TAIL_11,
183246 t_TAIL_12,
183247 t_TAIL_13,
183248 BSLS_COMPILERFEATURES_FILLT( 5)>::operator=(const t_TYPE& rhs)
183249{
183250 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183251
183252 if (index() == altIndex) {
183253 bsl::get<altIndex>(*this) = rhs;
183254 }
183255 else {
183256 emplace<altIndex>(rhs);
183257 }
183258
183259 return *this;
183260}
183261#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 13
183262
183263#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
183264template <class t_HEAD, class t_TAIL_01,
183265 class t_TAIL_02,
183266 class t_TAIL_03,
183267 class t_TAIL_04,
183268 class t_TAIL_05,
183269 class t_TAIL_06,
183270 class t_TAIL_07,
183271 class t_TAIL_08,
183272 class t_TAIL_09,
183273 class t_TAIL_10,
183274 class t_TAIL_11,
183275 class t_TAIL_12,
183276 class t_TAIL_13,
183277 class t_TAIL_14>
183278template <class t_TYPE>
183279inline
183280typename bsl::enable_if<
183281 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183282 t_TAIL_02,
183283 t_TAIL_03,
183284 t_TAIL_04,
183285 t_TAIL_05,
183286 t_TAIL_06,
183287 t_TAIL_07,
183288 t_TAIL_08,
183289 t_TAIL_09,
183290 t_TAIL_10,
183291 t_TAIL_11,
183292 t_TAIL_12,
183293 t_TAIL_13,
183294 t_TAIL_14>,
183295 t_TYPE>::value,
183296 variant<t_HEAD, t_TAIL_01,
183297 t_TAIL_02,
183298 t_TAIL_03,
183299 t_TAIL_04,
183300 t_TAIL_05,
183301 t_TAIL_06,
183302 t_TAIL_07,
183303 t_TAIL_08,
183304 t_TAIL_09,
183305 t_TAIL_10,
183306 t_TAIL_11,
183307 t_TAIL_12,
183308 t_TAIL_13,
183309 t_TAIL_14>&>::type
183310variant<t_HEAD, t_TAIL_01,
183311 t_TAIL_02,
183312 t_TAIL_03,
183313 t_TAIL_04,
183314 t_TAIL_05,
183315 t_TAIL_06,
183316 t_TAIL_07,
183317 t_TAIL_08,
183318 t_TAIL_09,
183319 t_TAIL_10,
183320 t_TAIL_11,
183321 t_TAIL_12,
183322 t_TAIL_13,
183323 t_TAIL_14,
183324 BSLS_COMPILERFEATURES_FILLT( 4)>::operator=(const t_TYPE& rhs)
183325{
183326 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183327
183328 if (index() == altIndex) {
183329 bsl::get<altIndex>(*this) = rhs;
183330 }
183331 else {
183332 emplace<altIndex>(rhs);
183333 }
183334
183335 return *this;
183336}
183337#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 14
183338
183339#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
183340template <class t_HEAD, class t_TAIL_01,
183341 class t_TAIL_02,
183342 class t_TAIL_03,
183343 class t_TAIL_04,
183344 class t_TAIL_05,
183345 class t_TAIL_06,
183346 class t_TAIL_07,
183347 class t_TAIL_08,
183348 class t_TAIL_09,
183349 class t_TAIL_10,
183350 class t_TAIL_11,
183351 class t_TAIL_12,
183352 class t_TAIL_13,
183353 class t_TAIL_14,
183354 class t_TAIL_15>
183355template <class t_TYPE>
183356inline
183357typename bsl::enable_if<
183358 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183359 t_TAIL_02,
183360 t_TAIL_03,
183361 t_TAIL_04,
183362 t_TAIL_05,
183363 t_TAIL_06,
183364 t_TAIL_07,
183365 t_TAIL_08,
183366 t_TAIL_09,
183367 t_TAIL_10,
183368 t_TAIL_11,
183369 t_TAIL_12,
183370 t_TAIL_13,
183371 t_TAIL_14,
183372 t_TAIL_15>,
183373 t_TYPE>::value,
183374 variant<t_HEAD, t_TAIL_01,
183375 t_TAIL_02,
183376 t_TAIL_03,
183377 t_TAIL_04,
183378 t_TAIL_05,
183379 t_TAIL_06,
183380 t_TAIL_07,
183381 t_TAIL_08,
183382 t_TAIL_09,
183383 t_TAIL_10,
183384 t_TAIL_11,
183385 t_TAIL_12,
183386 t_TAIL_13,
183387 t_TAIL_14,
183388 t_TAIL_15>&>::type
183389variant<t_HEAD, t_TAIL_01,
183390 t_TAIL_02,
183391 t_TAIL_03,
183392 t_TAIL_04,
183393 t_TAIL_05,
183394 t_TAIL_06,
183395 t_TAIL_07,
183396 t_TAIL_08,
183397 t_TAIL_09,
183398 t_TAIL_10,
183399 t_TAIL_11,
183400 t_TAIL_12,
183401 t_TAIL_13,
183402 t_TAIL_14,
183403 t_TAIL_15,
183404 BSLS_COMPILERFEATURES_FILLT( 3)>::operator=(const t_TYPE& rhs)
183405{
183406 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183407
183408 if (index() == altIndex) {
183409 bsl::get<altIndex>(*this) = rhs;
183410 }
183411 else {
183412 emplace<altIndex>(rhs);
183413 }
183414
183415 return *this;
183416}
183417#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 15
183418
183419#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
183420template <class t_HEAD, class t_TAIL_01,
183421 class t_TAIL_02,
183422 class t_TAIL_03,
183423 class t_TAIL_04,
183424 class t_TAIL_05,
183425 class t_TAIL_06,
183426 class t_TAIL_07,
183427 class t_TAIL_08,
183428 class t_TAIL_09,
183429 class t_TAIL_10,
183430 class t_TAIL_11,
183431 class t_TAIL_12,
183432 class t_TAIL_13,
183433 class t_TAIL_14,
183434 class t_TAIL_15,
183435 class t_TAIL_16>
183436template <class t_TYPE>
183437inline
183438typename bsl::enable_if<
183439 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183440 t_TAIL_02,
183441 t_TAIL_03,
183442 t_TAIL_04,
183443 t_TAIL_05,
183444 t_TAIL_06,
183445 t_TAIL_07,
183446 t_TAIL_08,
183447 t_TAIL_09,
183448 t_TAIL_10,
183449 t_TAIL_11,
183450 t_TAIL_12,
183451 t_TAIL_13,
183452 t_TAIL_14,
183453 t_TAIL_15,
183454 t_TAIL_16>,
183455 t_TYPE>::value,
183456 variant<t_HEAD, t_TAIL_01,
183457 t_TAIL_02,
183458 t_TAIL_03,
183459 t_TAIL_04,
183460 t_TAIL_05,
183461 t_TAIL_06,
183462 t_TAIL_07,
183463 t_TAIL_08,
183464 t_TAIL_09,
183465 t_TAIL_10,
183466 t_TAIL_11,
183467 t_TAIL_12,
183468 t_TAIL_13,
183469 t_TAIL_14,
183470 t_TAIL_15,
183471 t_TAIL_16>&>::type
183472variant<t_HEAD, t_TAIL_01,
183473 t_TAIL_02,
183474 t_TAIL_03,
183475 t_TAIL_04,
183476 t_TAIL_05,
183477 t_TAIL_06,
183478 t_TAIL_07,
183479 t_TAIL_08,
183480 t_TAIL_09,
183481 t_TAIL_10,
183482 t_TAIL_11,
183483 t_TAIL_12,
183484 t_TAIL_13,
183485 t_TAIL_14,
183486 t_TAIL_15,
183487 t_TAIL_16,
183488 BSLS_COMPILERFEATURES_FILLT( 2)>::operator=(const t_TYPE& rhs)
183489{
183490 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183491
183492 if (index() == altIndex) {
183493 bsl::get<altIndex>(*this) = rhs;
183494 }
183495 else {
183496 emplace<altIndex>(rhs);
183497 }
183498
183499 return *this;
183500}
183501#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 16
183502
183503#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
183504template <class t_HEAD, class t_TAIL_01,
183505 class t_TAIL_02,
183506 class t_TAIL_03,
183507 class t_TAIL_04,
183508 class t_TAIL_05,
183509 class t_TAIL_06,
183510 class t_TAIL_07,
183511 class t_TAIL_08,
183512 class t_TAIL_09,
183513 class t_TAIL_10,
183514 class t_TAIL_11,
183515 class t_TAIL_12,
183516 class t_TAIL_13,
183517 class t_TAIL_14,
183518 class t_TAIL_15,
183519 class t_TAIL_16,
183520 class t_TAIL_17>
183521template <class t_TYPE>
183522inline
183523typename bsl::enable_if<
183524 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183525 t_TAIL_02,
183526 t_TAIL_03,
183527 t_TAIL_04,
183528 t_TAIL_05,
183529 t_TAIL_06,
183530 t_TAIL_07,
183531 t_TAIL_08,
183532 t_TAIL_09,
183533 t_TAIL_10,
183534 t_TAIL_11,
183535 t_TAIL_12,
183536 t_TAIL_13,
183537 t_TAIL_14,
183538 t_TAIL_15,
183539 t_TAIL_16,
183540 t_TAIL_17>,
183541 t_TYPE>::value,
183542 variant<t_HEAD, t_TAIL_01,
183543 t_TAIL_02,
183544 t_TAIL_03,
183545 t_TAIL_04,
183546 t_TAIL_05,
183547 t_TAIL_06,
183548 t_TAIL_07,
183549 t_TAIL_08,
183550 t_TAIL_09,
183551 t_TAIL_10,
183552 t_TAIL_11,
183553 t_TAIL_12,
183554 t_TAIL_13,
183555 t_TAIL_14,
183556 t_TAIL_15,
183557 t_TAIL_16,
183558 t_TAIL_17>&>::type
183559variant<t_HEAD, t_TAIL_01,
183560 t_TAIL_02,
183561 t_TAIL_03,
183562 t_TAIL_04,
183563 t_TAIL_05,
183564 t_TAIL_06,
183565 t_TAIL_07,
183566 t_TAIL_08,
183567 t_TAIL_09,
183568 t_TAIL_10,
183569 t_TAIL_11,
183570 t_TAIL_12,
183571 t_TAIL_13,
183572 t_TAIL_14,
183573 t_TAIL_15,
183574 t_TAIL_16,
183575 t_TAIL_17,
183576 BSLS_COMPILERFEATURES_FILLT( 1)>::operator=(const t_TYPE& rhs)
183577{
183578 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183579
183580 if (index() == altIndex) {
183581 bsl::get<altIndex>(*this) = rhs;
183582 }
183583 else {
183584 emplace<altIndex>(rhs);
183585 }
183586
183587 return *this;
183588}
183589#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 17
183590
183591#if BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
183592template <class t_HEAD, class t_TAIL_01,
183593 class t_TAIL_02,
183594 class t_TAIL_03,
183595 class t_TAIL_04,
183596 class t_TAIL_05,
183597 class t_TAIL_06,
183598 class t_TAIL_07,
183599 class t_TAIL_08,
183600 class t_TAIL_09,
183601 class t_TAIL_10,
183602 class t_TAIL_11,
183603 class t_TAIL_12,
183604 class t_TAIL_13,
183605 class t_TAIL_14,
183606 class t_TAIL_15,
183607 class t_TAIL_16,
183608 class t_TAIL_17,
183609 class t_TAIL_18>
183610template <class t_TYPE>
183611inline
183612typename bsl::enable_if<
183613 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL_01,
183614 t_TAIL_02,
183615 t_TAIL_03,
183616 t_TAIL_04,
183617 t_TAIL_05,
183618 t_TAIL_06,
183619 t_TAIL_07,
183620 t_TAIL_08,
183621 t_TAIL_09,
183622 t_TAIL_10,
183623 t_TAIL_11,
183624 t_TAIL_12,
183625 t_TAIL_13,
183626 t_TAIL_14,
183627 t_TAIL_15,
183628 t_TAIL_16,
183629 t_TAIL_17,
183630 t_TAIL_18>,
183631 t_TYPE>::value,
183632 variant<t_HEAD, t_TAIL_01,
183633 t_TAIL_02,
183634 t_TAIL_03,
183635 t_TAIL_04,
183636 t_TAIL_05,
183637 t_TAIL_06,
183638 t_TAIL_07,
183639 t_TAIL_08,
183640 t_TAIL_09,
183641 t_TAIL_10,
183642 t_TAIL_11,
183643 t_TAIL_12,
183644 t_TAIL_13,
183645 t_TAIL_14,
183646 t_TAIL_15,
183647 t_TAIL_16,
183648 t_TAIL_17,
183649 t_TAIL_18>&>::type
183650variant<t_HEAD, t_TAIL_01,
183651 t_TAIL_02,
183652 t_TAIL_03,
183653 t_TAIL_04,
183654 t_TAIL_05,
183655 t_TAIL_06,
183656 t_TAIL_07,
183657 t_TAIL_08,
183658 t_TAIL_09,
183659 t_TAIL_10,
183660 t_TAIL_11,
183661 t_TAIL_12,
183662 t_TAIL_13,
183663 t_TAIL_14,
183664 t_TAIL_15,
183665 t_TAIL_16,
183666 t_TAIL_17,
183667 t_TAIL_18,
183668 BSLS_COMPILERFEATURES_FILLT( 0)>::operator=(const t_TYPE& rhs)
183669{
183670 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
183671
183672 if (index() == altIndex) {
183673 bsl::get<altIndex>(*this) = rhs;
183674 }
183675 else {
183676 emplace<altIndex>(rhs);
183677 }
183678
183679 return *this;
183680}
183681#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_P >= 18
183682
183683#else
183684// The generated code below is a workaround for the absence of perfect
183685// forwarding in some compilers.
183686template <class t_HEAD, class... t_TAIL>
183687inline
183688variant<t_HEAD, t_TAIL...>::variant()
183689: Variant_Base()
183690{
183691}
183692
183693template <class t_HEAD, class... t_TAIL>
183694inline
183695variant<t_HEAD, t_TAIL...>::variant(const variant& original)
183696: Variant_Base(original)
183697{
183698}
183699
183700template <class t_HEAD, class... t_TAIL>
183701inline
183702variant<t_HEAD, t_TAIL...>::variant(
183703 BloombergLP::bslmf::MovableRef<variant> original)
183704: Variant_Base(original)
183705{
183706}
183707
183708template <class t_HEAD, class... t_TAIL>
183709template <class t_TYPE>
183710inline
183711variant<t_HEAD, t_TAIL...>::variant(
183712 const t_TYPE& value,
183714: Variant_Base(
183715 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
183716 variant)>(),
183717 value)
183718{
183719}
183720
183721template <class t_HEAD, class... t_TAIL>
183722template <class t_TYPE>
183723inline
183724variant<t_HEAD, t_TAIL...>::variant(
183727: Variant_Base(
183728 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
183729{
183730}
183731
183732template <class t_HEAD, class... t_TAIL>
183733template <class t_TYPE, class t_ARG_01>
183734inline
183735variant<t_HEAD, t_TAIL...>::variant(
183737 const t_ARG_01& arg_01,
183739: Variant_Base(
183740 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183741 arg_01)
183742{
183743}
183744
183745template <class t_HEAD, class... t_TAIL>
183746template <class t_TYPE, class t_ARG_01, class t_ARG_02>
183747inline
183748variant<t_HEAD, t_TAIL...>::variant(
183750 const t_ARG_01& arg_01,
183751 const t_ARG_02& arg_02,
183753: Variant_Base(
183754 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183755 arg_01,
183756 arg_02)
183757{
183758}
183759
183760template <class t_HEAD, class... t_TAIL>
183761template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
183762inline
183763variant<t_HEAD, t_TAIL...>::variant(
183765 const t_ARG_01& arg_01,
183766 const t_ARG_02& arg_02,
183767 const t_ARG_03& arg_03,
183769: Variant_Base(
183770 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183771 arg_01,
183772 arg_02,
183773 arg_03)
183774{
183775}
183776
183777template <class t_HEAD, class... t_TAIL>
183778template <class t_TYPE,
183779 class t_ARG_01,
183780 class t_ARG_02,
183781 class t_ARG_03,
183782 class t_ARG_04>
183783inline
183784variant<t_HEAD, t_TAIL...>::variant(
183786 const t_ARG_01& arg_01,
183787 const t_ARG_02& arg_02,
183788 const t_ARG_03& arg_03,
183789 const t_ARG_04& arg_04,
183791: Variant_Base(
183792 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183793 arg_01,
183794 arg_02,
183795 arg_03,
183796 arg_04)
183797{
183798}
183799
183800template <class t_HEAD, class... t_TAIL>
183801template <class t_TYPE,
183802 class t_ARG_01,
183803 class t_ARG_02,
183804 class t_ARG_03,
183805 class t_ARG_04,
183806 class t_ARG_05>
183807inline
183808variant<t_HEAD, t_TAIL...>::variant(
183810 const t_ARG_01& arg_01,
183811 const t_ARG_02& arg_02,
183812 const t_ARG_03& arg_03,
183813 const t_ARG_04& arg_04,
183814 const t_ARG_05& arg_05,
183816: Variant_Base(
183817 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183818 arg_01,
183819 arg_02,
183820 arg_03,
183821 arg_04,
183822 arg_05)
183823{
183824}
183825
183826template <class t_HEAD, class... t_TAIL>
183827template <class t_TYPE,
183828 class t_ARG_01,
183829 class t_ARG_02,
183830 class t_ARG_03,
183831 class t_ARG_04,
183832 class t_ARG_05,
183833 class t_ARG_06>
183834inline
183835variant<t_HEAD, t_TAIL...>::variant(
183837 const t_ARG_01& arg_01,
183838 const t_ARG_02& arg_02,
183839 const t_ARG_03& arg_03,
183840 const t_ARG_04& arg_04,
183841 const t_ARG_05& arg_05,
183842 const t_ARG_06& arg_06,
183844: Variant_Base(
183845 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183846 arg_01,
183847 arg_02,
183848 arg_03,
183849 arg_04,
183850 arg_05,
183851 arg_06)
183852{
183853}
183854
183855template <class t_HEAD, class... t_TAIL>
183856template <class t_TYPE,
183857 class t_ARG_01,
183858 class t_ARG_02,
183859 class t_ARG_03,
183860 class t_ARG_04,
183861 class t_ARG_05,
183862 class t_ARG_06,
183863 class t_ARG_07>
183864inline
183865variant<t_HEAD, t_TAIL...>::variant(
183867 const t_ARG_01& arg_01,
183868 const t_ARG_02& arg_02,
183869 const t_ARG_03& arg_03,
183870 const t_ARG_04& arg_04,
183871 const t_ARG_05& arg_05,
183872 const t_ARG_06& arg_06,
183873 const t_ARG_07& arg_07,
183875: Variant_Base(
183876 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183877 arg_01,
183878 arg_02,
183879 arg_03,
183880 arg_04,
183881 arg_05,
183882 arg_06,
183883 arg_07)
183884{
183885}
183886
183887template <class t_HEAD, class... t_TAIL>
183888template <class t_TYPE,
183889 class t_ARG_01,
183890 class t_ARG_02,
183891 class t_ARG_03,
183892 class t_ARG_04,
183893 class t_ARG_05,
183894 class t_ARG_06,
183895 class t_ARG_07,
183896 class t_ARG_08>
183897inline
183898variant<t_HEAD, t_TAIL...>::variant(
183900 const t_ARG_01& arg_01,
183901 const t_ARG_02& arg_02,
183902 const t_ARG_03& arg_03,
183903 const t_ARG_04& arg_04,
183904 const t_ARG_05& arg_05,
183905 const t_ARG_06& arg_06,
183906 const t_ARG_07& arg_07,
183907 const t_ARG_08& arg_08,
183909: Variant_Base(
183910 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183911 arg_01,
183912 arg_02,
183913 arg_03,
183914 arg_04,
183915 arg_05,
183916 arg_06,
183917 arg_07,
183918 arg_08)
183919{
183920}
183921
183922template <class t_HEAD, class... t_TAIL>
183923template <class t_TYPE,
183924 class t_ARG_01,
183925 class t_ARG_02,
183926 class t_ARG_03,
183927 class t_ARG_04,
183928 class t_ARG_05,
183929 class t_ARG_06,
183930 class t_ARG_07,
183931 class t_ARG_08,
183932 class t_ARG_09>
183933inline
183934variant<t_HEAD, t_TAIL...>::variant(
183936 const t_ARG_01& arg_01,
183937 const t_ARG_02& arg_02,
183938 const t_ARG_03& arg_03,
183939 const t_ARG_04& arg_04,
183940 const t_ARG_05& arg_05,
183941 const t_ARG_06& arg_06,
183942 const t_ARG_07& arg_07,
183943 const t_ARG_08& arg_08,
183944 const t_ARG_09& arg_09,
183946: Variant_Base(
183947 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183948 arg_01,
183949 arg_02,
183950 arg_03,
183951 arg_04,
183952 arg_05,
183953 arg_06,
183954 arg_07,
183955 arg_08,
183956 arg_09)
183957{
183958}
183959
183960template <class t_HEAD, class... t_TAIL>
183961template <class t_TYPE,
183962 class t_ARG_01,
183963 class t_ARG_02,
183964 class t_ARG_03,
183965 class t_ARG_04,
183966 class t_ARG_05,
183967 class t_ARG_06,
183968 class t_ARG_07,
183969 class t_ARG_08,
183970 class t_ARG_09,
183971 class t_ARG_10>
183972inline
183973variant<t_HEAD, t_TAIL...>::variant(
183975 const t_ARG_01& arg_01,
183976 const t_ARG_02& arg_02,
183977 const t_ARG_03& arg_03,
183978 const t_ARG_04& arg_04,
183979 const t_ARG_05& arg_05,
183980 const t_ARG_06& arg_06,
183981 const t_ARG_07& arg_07,
183982 const t_ARG_08& arg_08,
183983 const t_ARG_09& arg_09,
183984 const t_ARG_10& arg_10,
183986: Variant_Base(
183987 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
183988 arg_01,
183989 arg_02,
183990 arg_03,
183991 arg_04,
183992 arg_05,
183993 arg_06,
183994 arg_07,
183995 arg_08,
183996 arg_09,
183997 arg_10)
183998{
183999}
184000
184001template <class t_HEAD, class... t_TAIL>
184002template <size_t t_INDEX>
184003inline
184004variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>)
184005: Variant_Base(bsl::in_place_index_t<t_INDEX>())
184006{
184007}
184008
184009template <class t_HEAD, class... t_TAIL>
184010template <size_t t_INDEX, class t_ARG_01>
184011inline
184012variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184013 const t_ARG_01& arg_01)
184014: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01)
184015{
184016}
184017
184018template <class t_HEAD, class... t_TAIL>
184019template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
184020inline
184021variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184022 const t_ARG_01& arg_01,
184023 const t_ARG_02& arg_02)
184024: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02)
184025{
184026}
184027
184028template <class t_HEAD, class... t_TAIL>
184029template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
184030inline
184031variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184032 const t_ARG_01& arg_01,
184033 const t_ARG_02& arg_02,
184034 const t_ARG_03& arg_03)
184035: Variant_Base(bsl::in_place_index_t<t_INDEX>(), arg_01, arg_02, arg_03)
184036{
184037}
184038
184039template <class t_HEAD, class... t_TAIL>
184040template <size_t t_INDEX,
184041 class t_ARG_01,
184042 class t_ARG_02,
184043 class t_ARG_03,
184044 class t_ARG_04>
184045inline
184046variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184047 const t_ARG_01& arg_01,
184048 const t_ARG_02& arg_02,
184049 const t_ARG_03& arg_03,
184050 const t_ARG_04& arg_04)
184051: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
184052 arg_01,
184053 arg_02,
184054 arg_03,
184055 arg_04)
184056{
184057}
184058
184059template <class t_HEAD, class... t_TAIL>
184060template <size_t t_INDEX,
184061 class t_ARG_01,
184062 class t_ARG_02,
184063 class t_ARG_03,
184064 class t_ARG_04,
184065 class t_ARG_05>
184066inline
184067variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184068 const t_ARG_01& arg_01,
184069 const t_ARG_02& arg_02,
184070 const t_ARG_03& arg_03,
184071 const t_ARG_04& arg_04,
184072 const t_ARG_05& arg_05)
184073: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
184074 arg_01,
184075 arg_02,
184076 arg_03,
184077 arg_04,
184078 arg_05)
184079{
184080}
184081
184082template <class t_HEAD, class... t_TAIL>
184083template <size_t t_INDEX,
184084 class t_ARG_01,
184085 class t_ARG_02,
184086 class t_ARG_03,
184087 class t_ARG_04,
184088 class t_ARG_05,
184089 class t_ARG_06>
184090inline
184091variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184092 const t_ARG_01& arg_01,
184093 const t_ARG_02& arg_02,
184094 const t_ARG_03& arg_03,
184095 const t_ARG_04& arg_04,
184096 const t_ARG_05& arg_05,
184097 const t_ARG_06& arg_06)
184098: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
184099 arg_01,
184100 arg_02,
184101 arg_03,
184102 arg_04,
184103 arg_05,
184104 arg_06)
184105{
184106}
184107
184108template <class t_HEAD, class... t_TAIL>
184109template <size_t t_INDEX,
184110 class t_ARG_01,
184111 class t_ARG_02,
184112 class t_ARG_03,
184113 class t_ARG_04,
184114 class t_ARG_05,
184115 class t_ARG_06,
184116 class t_ARG_07>
184117inline
184118variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184119 const t_ARG_01& arg_01,
184120 const t_ARG_02& arg_02,
184121 const t_ARG_03& arg_03,
184122 const t_ARG_04& arg_04,
184123 const t_ARG_05& arg_05,
184124 const t_ARG_06& arg_06,
184125 const t_ARG_07& arg_07)
184126: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
184127 arg_01,
184128 arg_02,
184129 arg_03,
184130 arg_04,
184131 arg_05,
184132 arg_06,
184133 arg_07)
184134{
184135}
184136
184137template <class t_HEAD, class... t_TAIL>
184138template <size_t t_INDEX,
184139 class t_ARG_01,
184140 class t_ARG_02,
184141 class t_ARG_03,
184142 class t_ARG_04,
184143 class t_ARG_05,
184144 class t_ARG_06,
184145 class t_ARG_07,
184146 class t_ARG_08>
184147inline
184148variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184149 const t_ARG_01& arg_01,
184150 const t_ARG_02& arg_02,
184151 const t_ARG_03& arg_03,
184152 const t_ARG_04& arg_04,
184153 const t_ARG_05& arg_05,
184154 const t_ARG_06& arg_06,
184155 const t_ARG_07& arg_07,
184156 const t_ARG_08& arg_08)
184157: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
184158 arg_01,
184159 arg_02,
184160 arg_03,
184161 arg_04,
184162 arg_05,
184163 arg_06,
184164 arg_07,
184165 arg_08)
184166{
184167}
184168
184169template <class t_HEAD, class... t_TAIL>
184170template <size_t t_INDEX,
184171 class t_ARG_01,
184172 class t_ARG_02,
184173 class t_ARG_03,
184174 class t_ARG_04,
184175 class t_ARG_05,
184176 class t_ARG_06,
184177 class t_ARG_07,
184178 class t_ARG_08,
184179 class t_ARG_09>
184180inline
184181variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184182 const t_ARG_01& arg_01,
184183 const t_ARG_02& arg_02,
184184 const t_ARG_03& arg_03,
184185 const t_ARG_04& arg_04,
184186 const t_ARG_05& arg_05,
184187 const t_ARG_06& arg_06,
184188 const t_ARG_07& arg_07,
184189 const t_ARG_08& arg_08,
184190 const t_ARG_09& arg_09)
184191: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
184192 arg_01,
184193 arg_02,
184194 arg_03,
184195 arg_04,
184196 arg_05,
184197 arg_06,
184198 arg_07,
184199 arg_08,
184200 arg_09)
184201{
184202}
184203
184204template <class t_HEAD, class... t_TAIL>
184205template <size_t t_INDEX,
184206 class t_ARG_01,
184207 class t_ARG_02,
184208 class t_ARG_03,
184209 class t_ARG_04,
184210 class t_ARG_05,
184211 class t_ARG_06,
184212 class t_ARG_07,
184213 class t_ARG_08,
184214 class t_ARG_09,
184215 class t_ARG_10>
184216inline
184217variant<t_HEAD, t_TAIL...>::variant(bsl::in_place_index_t<t_INDEX>,
184218 const t_ARG_01& arg_01,
184219 const t_ARG_02& arg_02,
184220 const t_ARG_03& arg_03,
184221 const t_ARG_04& arg_04,
184222 const t_ARG_05& arg_05,
184223 const t_ARG_06& arg_06,
184224 const t_ARG_07& arg_07,
184225 const t_ARG_08& arg_08,
184226 const t_ARG_09& arg_09,
184227 const t_ARG_10& arg_10)
184228: Variant_Base(bsl::in_place_index_t<t_INDEX>(),
184229 arg_01,
184230 arg_02,
184231 arg_03,
184232 arg_04,
184233 arg_05,
184234 arg_06,
184235 arg_07,
184236 arg_08,
184237 arg_09,
184238 arg_10)
184239{
184240}
184241
184242template <class t_HEAD, class... t_TAIL>
184243inline
184244variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184245 allocator_type allocator)
184246: Variant_Base(bsl::allocator_arg_t(), allocator)
184247{
184248}
184249
184250template <class t_HEAD, class... t_TAIL>
184251inline
184252variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184253 allocator_type allocator,
184254 const variant& original)
184255: Variant_Base(bsl::allocator_arg_t(), allocator, original)
184256{
184257}
184258
184259template <class t_HEAD, class... t_TAIL>
184260inline
184261variant<t_HEAD, t_TAIL...>::variant(
184262 bsl::allocator_arg_t,
184263 allocator_type allocator,
184264 BloombergLP::bslmf::MovableRef<variant> original)
184265: Variant_Base(bsl::allocator_arg_t(), allocator, original)
184266{
184267}
184268
184269template <class t_HEAD, class... t_TAIL>
184270template <class t_TYPE>
184271inline
184272variant<t_HEAD, t_TAIL...>::variant(
184273 bsl::allocator_arg_t,
184274 allocator_type allocator,
184275 const t_TYPE& value,
184277: Variant_Base(
184278 bsl::allocator_arg_t(),
184279 allocator,
184280 bsl::in_place_index_t<BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE,
184281 variant)>(),
184282 value)
184283{
184284}
184285
184286template <class t_HEAD, class... t_TAIL>
184287template <class t_TYPE>
184288inline
184289variant<t_HEAD, t_TAIL...>::variant(
184290 bsl::allocator_arg_t,
184291 allocator_type allocator,
184294: Variant_Base(
184295 bsl::allocator_arg_t(),
184296 allocator,
184297 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>())
184298{
184299}
184300
184301template <class t_HEAD, class... t_TAIL>
184302template <class t_TYPE, class t_ARG_01>
184303inline
184304variant<t_HEAD, t_TAIL...>::variant(
184305 bsl::allocator_arg_t,
184306 allocator_type allocator,
184308 const t_ARG_01& arg_01,
184310: Variant_Base(
184311 bsl::allocator_arg_t(),
184312 allocator,
184313 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184314 arg_01)
184315{
184316}
184317
184318template <class t_HEAD, class... t_TAIL>
184319template <class t_TYPE, class t_ARG_01, class t_ARG_02>
184320inline
184321variant<t_HEAD, t_TAIL...>::variant(
184322 bsl::allocator_arg_t,
184323 allocator_type allocator,
184325 const t_ARG_01& arg_01,
184326 const t_ARG_02& arg_02,
184328: Variant_Base(
184329 bsl::allocator_arg_t(),
184330 allocator,
184331 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184332 arg_01,
184333 arg_02)
184334{
184335}
184336
184337template <class t_HEAD, class... t_TAIL>
184338template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
184339inline
184340variant<t_HEAD, t_TAIL...>::variant(
184341 bsl::allocator_arg_t,
184342 allocator_type allocator,
184344 const t_ARG_01& arg_01,
184345 const t_ARG_02& arg_02,
184346 const t_ARG_03& arg_03,
184348: Variant_Base(
184349 bsl::allocator_arg_t(),
184350 allocator,
184351 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184352 arg_01,
184353 arg_02,
184354 arg_03)
184355{
184356}
184357
184358template <class t_HEAD, class... t_TAIL>
184359template <class t_TYPE,
184360 class t_ARG_01,
184361 class t_ARG_02,
184362 class t_ARG_03,
184363 class t_ARG_04>
184364inline
184365variant<t_HEAD, t_TAIL...>::variant(
184366 bsl::allocator_arg_t,
184367 allocator_type allocator,
184369 const t_ARG_01& arg_01,
184370 const t_ARG_02& arg_02,
184371 const t_ARG_03& arg_03,
184372 const t_ARG_04& arg_04,
184374: Variant_Base(
184375 bsl::allocator_arg_t(),
184376 allocator,
184377 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184378 arg_01,
184379 arg_02,
184380 arg_03,
184381 arg_04)
184382{
184383}
184384
184385template <class t_HEAD, class... t_TAIL>
184386template <class t_TYPE,
184387 class t_ARG_01,
184388 class t_ARG_02,
184389 class t_ARG_03,
184390 class t_ARG_04,
184391 class t_ARG_05>
184392inline
184393variant<t_HEAD, t_TAIL...>::variant(
184394 bsl::allocator_arg_t,
184395 allocator_type allocator,
184397 const t_ARG_01& arg_01,
184398 const t_ARG_02& arg_02,
184399 const t_ARG_03& arg_03,
184400 const t_ARG_04& arg_04,
184401 const t_ARG_05& arg_05,
184403: Variant_Base(
184404 bsl::allocator_arg_t(),
184405 allocator,
184406 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184407 arg_01,
184408 arg_02,
184409 arg_03,
184410 arg_04,
184411 arg_05)
184412{
184413}
184414
184415template <class t_HEAD, class... t_TAIL>
184416template <class t_TYPE,
184417 class t_ARG_01,
184418 class t_ARG_02,
184419 class t_ARG_03,
184420 class t_ARG_04,
184421 class t_ARG_05,
184422 class t_ARG_06>
184423inline
184424variant<t_HEAD, t_TAIL...>::variant(
184425 bsl::allocator_arg_t,
184426 allocator_type allocator,
184428 const t_ARG_01& arg_01,
184429 const t_ARG_02& arg_02,
184430 const t_ARG_03& arg_03,
184431 const t_ARG_04& arg_04,
184432 const t_ARG_05& arg_05,
184433 const t_ARG_06& arg_06,
184435: Variant_Base(
184436 bsl::allocator_arg_t(),
184437 allocator,
184438 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184439 arg_01,
184440 arg_02,
184441 arg_03,
184442 arg_04,
184443 arg_05,
184444 arg_06)
184445{
184446}
184447
184448template <class t_HEAD, class... t_TAIL>
184449template <class t_TYPE,
184450 class t_ARG_01,
184451 class t_ARG_02,
184452 class t_ARG_03,
184453 class t_ARG_04,
184454 class t_ARG_05,
184455 class t_ARG_06,
184456 class t_ARG_07>
184457inline
184458variant<t_HEAD, t_TAIL...>::variant(
184459 bsl::allocator_arg_t,
184460 allocator_type allocator,
184462 const t_ARG_01& arg_01,
184463 const t_ARG_02& arg_02,
184464 const t_ARG_03& arg_03,
184465 const t_ARG_04& arg_04,
184466 const t_ARG_05& arg_05,
184467 const t_ARG_06& arg_06,
184468 const t_ARG_07& arg_07,
184470: Variant_Base(
184471 bsl::allocator_arg_t(),
184472 allocator,
184473 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184474 arg_01,
184475 arg_02,
184476 arg_03,
184477 arg_04,
184478 arg_05,
184479 arg_06,
184480 arg_07)
184481{
184482}
184483
184484template <class t_HEAD, class... t_TAIL>
184485template <class t_TYPE,
184486 class t_ARG_01,
184487 class t_ARG_02,
184488 class t_ARG_03,
184489 class t_ARG_04,
184490 class t_ARG_05,
184491 class t_ARG_06,
184492 class t_ARG_07,
184493 class t_ARG_08>
184494inline
184495variant<t_HEAD, t_TAIL...>::variant(
184496 bsl::allocator_arg_t,
184497 allocator_type allocator,
184499 const t_ARG_01& arg_01,
184500 const t_ARG_02& arg_02,
184501 const t_ARG_03& arg_03,
184502 const t_ARG_04& arg_04,
184503 const t_ARG_05& arg_05,
184504 const t_ARG_06& arg_06,
184505 const t_ARG_07& arg_07,
184506 const t_ARG_08& arg_08,
184508: Variant_Base(
184509 bsl::allocator_arg_t(),
184510 allocator,
184511 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184512 arg_01,
184513 arg_02,
184514 arg_03,
184515 arg_04,
184516 arg_05,
184517 arg_06,
184518 arg_07,
184519 arg_08)
184520{
184521}
184522
184523template <class t_HEAD, class... t_TAIL>
184524template <class t_TYPE,
184525 class t_ARG_01,
184526 class t_ARG_02,
184527 class t_ARG_03,
184528 class t_ARG_04,
184529 class t_ARG_05,
184530 class t_ARG_06,
184531 class t_ARG_07,
184532 class t_ARG_08,
184533 class t_ARG_09>
184534inline
184535variant<t_HEAD, t_TAIL...>::variant(
184536 bsl::allocator_arg_t,
184537 allocator_type allocator,
184539 const t_ARG_01& arg_01,
184540 const t_ARG_02& arg_02,
184541 const t_ARG_03& arg_03,
184542 const t_ARG_04& arg_04,
184543 const t_ARG_05& arg_05,
184544 const t_ARG_06& arg_06,
184545 const t_ARG_07& arg_07,
184546 const t_ARG_08& arg_08,
184547 const t_ARG_09& arg_09,
184549: Variant_Base(
184550 bsl::allocator_arg_t(),
184551 allocator,
184552 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184553 arg_01,
184554 arg_02,
184555 arg_03,
184556 arg_04,
184557 arg_05,
184558 arg_06,
184559 arg_07,
184560 arg_08,
184561 arg_09)
184562{
184563}
184564
184565template <class t_HEAD, class... t_TAIL>
184566template <class t_TYPE,
184567 class t_ARG_01,
184568 class t_ARG_02,
184569 class t_ARG_03,
184570 class t_ARG_04,
184571 class t_ARG_05,
184572 class t_ARG_06,
184573 class t_ARG_07,
184574 class t_ARG_08,
184575 class t_ARG_09,
184576 class t_ARG_10>
184577inline
184578variant<t_HEAD, t_TAIL...>::variant(
184579 bsl::allocator_arg_t,
184580 allocator_type allocator,
184582 const t_ARG_01& arg_01,
184583 const t_ARG_02& arg_02,
184584 const t_ARG_03& arg_03,
184585 const t_ARG_04& arg_04,
184586 const t_ARG_05& arg_05,
184587 const t_ARG_06& arg_06,
184588 const t_ARG_07& arg_07,
184589 const t_ARG_08& arg_08,
184590 const t_ARG_09& arg_09,
184591 const t_ARG_10& arg_10,
184593: Variant_Base(
184594 bsl::allocator_arg_t(),
184595 allocator,
184596 bsl::in_place_index_t<BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant)>(),
184597 arg_01,
184598 arg_02,
184599 arg_03,
184600 arg_04,
184601 arg_05,
184602 arg_06,
184603 arg_07,
184604 arg_08,
184605 arg_09,
184606 arg_10)
184607{
184608}
184609
184610template <class t_HEAD, class... t_TAIL>
184611template <size_t t_INDEX>
184612inline
184613variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184614 allocator_type allocator,
184616: Variant_Base(bsl::allocator_arg_t(),
184617 allocator,
184618 bsl::in_place_index_t<t_INDEX>())
184619{
184620}
184621
184622template <class t_HEAD, class... t_TAIL>
184623template <size_t t_INDEX, class t_ARG_01>
184624inline
184625variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184626 allocator_type allocator,
184628 const t_ARG_01& arg_01)
184629: Variant_Base(bsl::allocator_arg_t(),
184630 allocator,
184631 bsl::in_place_index_t<t_INDEX>(),
184632 arg_01)
184633{
184634}
184635
184636template <class t_HEAD, class... t_TAIL>
184637template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
184638inline
184639variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184640 allocator_type allocator,
184642 const t_ARG_01& arg_01,
184643 const t_ARG_02& arg_02)
184644: Variant_Base(bsl::allocator_arg_t(),
184645 allocator,
184646 bsl::in_place_index_t<t_INDEX>(),
184647 arg_01,
184648 arg_02)
184649{
184650}
184651
184652template <class t_HEAD, class... t_TAIL>
184653template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
184654inline
184655variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184656 allocator_type allocator,
184658 const t_ARG_01& arg_01,
184659 const t_ARG_02& arg_02,
184660 const t_ARG_03& arg_03)
184661: Variant_Base(bsl::allocator_arg_t(),
184662 allocator,
184663 bsl::in_place_index_t<t_INDEX>(),
184664 arg_01,
184665 arg_02,
184666 arg_03)
184667{
184668}
184669
184670template <class t_HEAD, class... t_TAIL>
184671template <size_t t_INDEX,
184672 class t_ARG_01,
184673 class t_ARG_02,
184674 class t_ARG_03,
184675 class t_ARG_04>
184676inline
184677variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184678 allocator_type allocator,
184680 const t_ARG_01& arg_01,
184681 const t_ARG_02& arg_02,
184682 const t_ARG_03& arg_03,
184683 const t_ARG_04& arg_04)
184684: Variant_Base(bsl::allocator_arg_t(),
184685 allocator,
184686 bsl::in_place_index_t<t_INDEX>(),
184687 arg_01,
184688 arg_02,
184689 arg_03,
184690 arg_04)
184691{
184692}
184693
184694template <class t_HEAD, class... t_TAIL>
184695template <size_t t_INDEX,
184696 class t_ARG_01,
184697 class t_ARG_02,
184698 class t_ARG_03,
184699 class t_ARG_04,
184700 class t_ARG_05>
184701inline
184702variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184703 allocator_type allocator,
184705 const t_ARG_01& arg_01,
184706 const t_ARG_02& arg_02,
184707 const t_ARG_03& arg_03,
184708 const t_ARG_04& arg_04,
184709 const t_ARG_05& arg_05)
184710: Variant_Base(bsl::allocator_arg_t(),
184711 allocator,
184712 bsl::in_place_index_t<t_INDEX>(),
184713 arg_01,
184714 arg_02,
184715 arg_03,
184716 arg_04,
184717 arg_05)
184718{
184719}
184720
184721template <class t_HEAD, class... t_TAIL>
184722template <size_t t_INDEX,
184723 class t_ARG_01,
184724 class t_ARG_02,
184725 class t_ARG_03,
184726 class t_ARG_04,
184727 class t_ARG_05,
184728 class t_ARG_06>
184729inline
184730variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184731 allocator_type allocator,
184733 const t_ARG_01& arg_01,
184734 const t_ARG_02& arg_02,
184735 const t_ARG_03& arg_03,
184736 const t_ARG_04& arg_04,
184737 const t_ARG_05& arg_05,
184738 const t_ARG_06& arg_06)
184739: Variant_Base(bsl::allocator_arg_t(),
184740 allocator,
184741 bsl::in_place_index_t<t_INDEX>(),
184742 arg_01,
184743 arg_02,
184744 arg_03,
184745 arg_04,
184746 arg_05,
184747 arg_06)
184748{
184749}
184750
184751template <class t_HEAD, class... t_TAIL>
184752template <size_t t_INDEX,
184753 class t_ARG_01,
184754 class t_ARG_02,
184755 class t_ARG_03,
184756 class t_ARG_04,
184757 class t_ARG_05,
184758 class t_ARG_06,
184759 class t_ARG_07>
184760inline
184761variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184762 allocator_type allocator,
184764 const t_ARG_01& arg_01,
184765 const t_ARG_02& arg_02,
184766 const t_ARG_03& arg_03,
184767 const t_ARG_04& arg_04,
184768 const t_ARG_05& arg_05,
184769 const t_ARG_06& arg_06,
184770 const t_ARG_07& arg_07)
184771: Variant_Base(bsl::allocator_arg_t(),
184772 allocator,
184773 bsl::in_place_index_t<t_INDEX>(),
184774 arg_01,
184775 arg_02,
184776 arg_03,
184777 arg_04,
184778 arg_05,
184779 arg_06,
184780 arg_07)
184781{
184782}
184783
184784template <class t_HEAD, class... t_TAIL>
184785template <size_t t_INDEX,
184786 class t_ARG_01,
184787 class t_ARG_02,
184788 class t_ARG_03,
184789 class t_ARG_04,
184790 class t_ARG_05,
184791 class t_ARG_06,
184792 class t_ARG_07,
184793 class t_ARG_08>
184794inline
184795variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184796 allocator_type allocator,
184798 const t_ARG_01& arg_01,
184799 const t_ARG_02& arg_02,
184800 const t_ARG_03& arg_03,
184801 const t_ARG_04& arg_04,
184802 const t_ARG_05& arg_05,
184803 const t_ARG_06& arg_06,
184804 const t_ARG_07& arg_07,
184805 const t_ARG_08& arg_08)
184806: Variant_Base(bsl::allocator_arg_t(),
184807 allocator,
184808 bsl::in_place_index_t<t_INDEX>(),
184809 arg_01,
184810 arg_02,
184811 arg_03,
184812 arg_04,
184813 arg_05,
184814 arg_06,
184815 arg_07,
184816 arg_08)
184817{
184818}
184819
184820template <class t_HEAD, class... t_TAIL>
184821template <size_t t_INDEX,
184822 class t_ARG_01,
184823 class t_ARG_02,
184824 class t_ARG_03,
184825 class t_ARG_04,
184826 class t_ARG_05,
184827 class t_ARG_06,
184828 class t_ARG_07,
184829 class t_ARG_08,
184830 class t_ARG_09>
184831inline
184832variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184833 allocator_type allocator,
184835 const t_ARG_01& arg_01,
184836 const t_ARG_02& arg_02,
184837 const t_ARG_03& arg_03,
184838 const t_ARG_04& arg_04,
184839 const t_ARG_05& arg_05,
184840 const t_ARG_06& arg_06,
184841 const t_ARG_07& arg_07,
184842 const t_ARG_08& arg_08,
184843 const t_ARG_09& arg_09)
184844: Variant_Base(bsl::allocator_arg_t(),
184845 allocator,
184846 bsl::in_place_index_t<t_INDEX>(),
184847 arg_01,
184848 arg_02,
184849 arg_03,
184850 arg_04,
184851 arg_05,
184852 arg_06,
184853 arg_07,
184854 arg_08,
184855 arg_09)
184856{
184857}
184858
184859template <class t_HEAD, class... t_TAIL>
184860template <size_t t_INDEX,
184861 class t_ARG_01,
184862 class t_ARG_02,
184863 class t_ARG_03,
184864 class t_ARG_04,
184865 class t_ARG_05,
184866 class t_ARG_06,
184867 class t_ARG_07,
184868 class t_ARG_08,
184869 class t_ARG_09,
184870 class t_ARG_10>
184871inline
184872variant<t_HEAD, t_TAIL...>::variant(bsl::allocator_arg_t,
184873 allocator_type allocator,
184875 const t_ARG_01& arg_01,
184876 const t_ARG_02& arg_02,
184877 const t_ARG_03& arg_03,
184878 const t_ARG_04& arg_04,
184879 const t_ARG_05& arg_05,
184880 const t_ARG_06& arg_06,
184881 const t_ARG_07& arg_07,
184882 const t_ARG_08& arg_08,
184883 const t_ARG_09& arg_09,
184884 const t_ARG_10& arg_10)
184885: Variant_Base(bsl::allocator_arg_t(),
184886 allocator,
184887 bsl::in_place_index_t<t_INDEX>(),
184888 arg_01,
184889 arg_02,
184890 arg_03,
184891 arg_04,
184892 arg_05,
184893 arg_06,
184894 arg_07,
184895 arg_08,
184896 arg_09,
184897 arg_10)
184898{
184899}
184900
184901template <class t_HEAD, class... t_TAIL>
184902template <class t_TYPE>
184903typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
184904 t_TYPE,
184905 variant<t_HEAD, t_TAIL...> >::value,
184906 t_TYPE&>::type
184907variant<t_HEAD, t_TAIL...>::emplace()
184908{
184909 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
184910
184911 Variant_Base::template baseEmplace<index>();
184912
184913 return bsl::get<index>(*this);
184914}
184915
184916template <class t_HEAD, class... t_TAIL>
184917template <class t_TYPE, class t_ARG_01>
184918typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
184919 t_TYPE,
184920 variant<t_HEAD, t_TAIL...> >::value,
184921 t_TYPE&>::type
184922variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01)
184923{
184924 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
184925
184926 Variant_Base::template baseEmplace<index>(arg_01);
184927
184928 return bsl::get<index>(*this);
184929}
184930
184931template <class t_HEAD, class... t_TAIL>
184932template <class t_TYPE, class t_ARG_01, class t_ARG_02>
184933typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
184934 t_TYPE,
184935 variant<t_HEAD, t_TAIL...> >::value,
184936 t_TYPE&>::type
184937variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
184938 const t_ARG_02& arg_02)
184939{
184940 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
184941
184942 Variant_Base::template baseEmplace<index>(arg_01, arg_02);
184943
184944 return bsl::get<index>(*this);
184945}
184946
184947template <class t_HEAD, class... t_TAIL>
184948template <class t_TYPE, class t_ARG_01, class t_ARG_02, class t_ARG_03>
184949typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
184950 t_TYPE,
184951 variant<t_HEAD, t_TAIL...> >::value,
184952 t_TYPE&>::type
184953variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
184954 const t_ARG_02& arg_02,
184955 const t_ARG_03& arg_03)
184956{
184957 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
184958
184959 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03);
184960
184961 return bsl::get<index>(*this);
184962}
184963
184964template <class t_HEAD, class... t_TAIL>
184965template <class t_TYPE,
184966 class t_ARG_01,
184967 class t_ARG_02,
184968 class t_ARG_03,
184969 class t_ARG_04>
184970typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
184971 t_TYPE,
184972 variant<t_HEAD, t_TAIL...> >::value,
184973 t_TYPE&>::type
184974variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
184975 const t_ARG_02& arg_02,
184976 const t_ARG_03& arg_03,
184977 const t_ARG_04& arg_04)
184978{
184979 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
184980
184981 Variant_Base::template baseEmplace<index>(arg_01, arg_02, arg_03, arg_04);
184982
184983 return bsl::get<index>(*this);
184984}
184985
184986template <class t_HEAD, class... t_TAIL>
184987template <class t_TYPE,
184988 class t_ARG_01,
184989 class t_ARG_02,
184990 class t_ARG_03,
184991 class t_ARG_04,
184992 class t_ARG_05>
184993typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
184994 t_TYPE,
184995 variant<t_HEAD, t_TAIL...> >::value,
184996 t_TYPE&>::type
184997variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
184998 const t_ARG_02& arg_02,
184999 const t_ARG_03& arg_03,
185000 const t_ARG_04& arg_04,
185001 const t_ARG_05& arg_05)
185002{
185003 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
185004
185005 Variant_Base::template baseEmplace<index>(
185006 arg_01, arg_02, arg_03, arg_04, arg_05);
185007
185008 return bsl::get<index>(*this);
185009}
185010
185011template <class t_HEAD, class... t_TAIL>
185012template <class t_TYPE,
185013 class t_ARG_01,
185014 class t_ARG_02,
185015 class t_ARG_03,
185016 class t_ARG_04,
185017 class t_ARG_05,
185018 class t_ARG_06>
185019typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
185020 t_TYPE,
185021 variant<t_HEAD, t_TAIL...> >::value,
185022 t_TYPE&>::type
185023variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185024 const t_ARG_02& arg_02,
185025 const t_ARG_03& arg_03,
185026 const t_ARG_04& arg_04,
185027 const t_ARG_05& arg_05,
185028 const t_ARG_06& arg_06)
185029{
185030 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
185031
185032 Variant_Base::template baseEmplace<index>(
185033 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
185034
185035 return bsl::get<index>(*this);
185036}
185037
185038template <class t_HEAD, class... t_TAIL>
185039template <class t_TYPE,
185040 class t_ARG_01,
185041 class t_ARG_02,
185042 class t_ARG_03,
185043 class t_ARG_04,
185044 class t_ARG_05,
185045 class t_ARG_06,
185046 class t_ARG_07>
185047typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
185048 t_TYPE,
185049 variant<t_HEAD, t_TAIL...> >::value,
185050 t_TYPE&>::type
185051variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185052 const t_ARG_02& arg_02,
185053 const t_ARG_03& arg_03,
185054 const t_ARG_04& arg_04,
185055 const t_ARG_05& arg_05,
185056 const t_ARG_06& arg_06,
185057 const t_ARG_07& arg_07)
185058{
185059 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
185060
185061 Variant_Base::template baseEmplace<index>(
185062 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
185063
185064 return bsl::get<index>(*this);
185065}
185066
185067template <class t_HEAD, class... t_TAIL>
185068template <class t_TYPE,
185069 class t_ARG_01,
185070 class t_ARG_02,
185071 class t_ARG_03,
185072 class t_ARG_04,
185073 class t_ARG_05,
185074 class t_ARG_06,
185075 class t_ARG_07,
185076 class t_ARG_08>
185077typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
185078 t_TYPE,
185079 variant<t_HEAD, t_TAIL...> >::value,
185080 t_TYPE&>::type
185081variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185082 const t_ARG_02& arg_02,
185083 const t_ARG_03& arg_03,
185084 const t_ARG_04& arg_04,
185085 const t_ARG_05& arg_05,
185086 const t_ARG_06& arg_06,
185087 const t_ARG_07& arg_07,
185088 const t_ARG_08& arg_08)
185089{
185090 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
185091
185092 Variant_Base::template baseEmplace<index>(
185093 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
185094
185095 return bsl::get<index>(*this);
185096}
185097
185098template <class t_HEAD, class... t_TAIL>
185099template <class t_TYPE,
185100 class t_ARG_01,
185101 class t_ARG_02,
185102 class t_ARG_03,
185103 class t_ARG_04,
185104 class t_ARG_05,
185105 class t_ARG_06,
185106 class t_ARG_07,
185107 class t_ARG_08,
185108 class t_ARG_09>
185109typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
185110 t_TYPE,
185111 variant<t_HEAD, t_TAIL...> >::value,
185112 t_TYPE&>::type
185113variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185114 const t_ARG_02& arg_02,
185115 const t_ARG_03& arg_03,
185116 const t_ARG_04& arg_04,
185117 const t_ARG_05& arg_05,
185118 const t_ARG_06& arg_06,
185119 const t_ARG_07& arg_07,
185120 const t_ARG_08& arg_08,
185121 const t_ARG_09& arg_09)
185122{
185123 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
185124
185125 Variant_Base::template baseEmplace<index>(arg_01,
185126 arg_02,
185127 arg_03,
185128 arg_04,
185129 arg_05,
185130 arg_06,
185131 arg_07,
185132 arg_08,
185133 arg_09);
185134
185135 return bsl::get<index>(*this);
185136}
185137
185138template <class t_HEAD, class... t_TAIL>
185139template <class t_TYPE,
185140 class t_ARG_01,
185141 class t_ARG_02,
185142 class t_ARG_03,
185143 class t_ARG_04,
185144 class t_ARG_05,
185145 class t_ARG_06,
185146 class t_ARG_07,
185147 class t_ARG_08,
185148 class t_ARG_09,
185149 class t_ARG_10>
185150typename bsl::enable_if<BloombergLP::bslstl::Variant_HasUniqueType<
185151 t_TYPE,
185152 variant<t_HEAD, t_TAIL...> >::value,
185153 t_TYPE&>::type
185154variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185155 const t_ARG_02& arg_02,
185156 const t_ARG_03& arg_03,
185157 const t_ARG_04& arg_04,
185158 const t_ARG_05& arg_05,
185159 const t_ARG_06& arg_06,
185160 const t_ARG_07& arg_07,
185161 const t_ARG_08& arg_08,
185162 const t_ARG_09& arg_09,
185163 const t_ARG_10& arg_10)
185164{
185165 const size_t index = BSLSTL_VARIANT_INDEX_OF(t_TYPE, variant);
185166
185167 Variant_Base::template baseEmplace<index>(arg_01,
185168 arg_02,
185169 arg_03,
185170 arg_04,
185171 arg_05,
185172 arg_06,
185173 arg_07,
185174 arg_08,
185175 arg_09,
185176 arg_10);
185177
185178 return bsl::get<index>(*this);
185179}
185180
185181template <class t_HEAD, class... t_TAIL>
185182template <size_t t_INDEX>
185183typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185184variant<t_HEAD, t_TAIL...>::emplace()
185185{
185186 Variant_Base::template baseEmplace<t_INDEX>();
185187
185188 return bsl::get<t_INDEX>(*this);
185189}
185190
185191template <class t_HEAD, class... t_TAIL>
185192template <size_t t_INDEX, class t_ARG_01>
185193typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185194variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01)
185195{
185196 Variant_Base::template baseEmplace<t_INDEX>(arg_01);
185197
185198 return bsl::get<t_INDEX>(*this);
185199}
185200
185201template <class t_HEAD, class... t_TAIL>
185202template <size_t t_INDEX, class t_ARG_01, class t_ARG_02>
185203typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185204variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185205 const t_ARG_02& arg_02)
185206{
185207 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02);
185208
185209 return bsl::get<t_INDEX>(*this);
185210}
185211
185212template <class t_HEAD, class... t_TAIL>
185213template <size_t t_INDEX, class t_ARG_01, class t_ARG_02, class t_ARG_03>
185214typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185215variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185216 const t_ARG_02& arg_02,
185217 const t_ARG_03& arg_03)
185218{
185219 Variant_Base::template baseEmplace<t_INDEX>(arg_01, arg_02, arg_03);
185220
185221 return bsl::get<t_INDEX>(*this);
185222}
185223
185224template <class t_HEAD, class... t_TAIL>
185225template <size_t t_INDEX,
185226 class t_ARG_01,
185227 class t_ARG_02,
185228 class t_ARG_03,
185229 class t_ARG_04>
185230typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185231variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185232 const t_ARG_02& arg_02,
185233 const t_ARG_03& arg_03,
185234 const t_ARG_04& arg_04)
185235{
185236 Variant_Base::template baseEmplace<t_INDEX>(
185237 arg_01, arg_02, arg_03, arg_04);
185238
185239 return bsl::get<t_INDEX>(*this);
185240}
185241
185242template <class t_HEAD, class... t_TAIL>
185243template <size_t t_INDEX,
185244 class t_ARG_01,
185245 class t_ARG_02,
185246 class t_ARG_03,
185247 class t_ARG_04,
185248 class t_ARG_05>
185249typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185250variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185251 const t_ARG_02& arg_02,
185252 const t_ARG_03& arg_03,
185253 const t_ARG_04& arg_04,
185254 const t_ARG_05& arg_05)
185255{
185256 Variant_Base::template baseEmplace<t_INDEX>(
185257 arg_01, arg_02, arg_03, arg_04, arg_05);
185258
185259 return bsl::get<t_INDEX>(*this);
185260}
185261
185262template <class t_HEAD, class... t_TAIL>
185263template <size_t t_INDEX,
185264 class t_ARG_01,
185265 class t_ARG_02,
185266 class t_ARG_03,
185267 class t_ARG_04,
185268 class t_ARG_05,
185269 class t_ARG_06>
185270typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185271variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185272 const t_ARG_02& arg_02,
185273 const t_ARG_03& arg_03,
185274 const t_ARG_04& arg_04,
185275 const t_ARG_05& arg_05,
185276 const t_ARG_06& arg_06)
185277{
185278 Variant_Base::template baseEmplace<t_INDEX>(
185279 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06);
185280
185281 return bsl::get<t_INDEX>(*this);
185282}
185283
185284template <class t_HEAD, class... t_TAIL>
185285template <size_t t_INDEX,
185286 class t_ARG_01,
185287 class t_ARG_02,
185288 class t_ARG_03,
185289 class t_ARG_04,
185290 class t_ARG_05,
185291 class t_ARG_06,
185292 class t_ARG_07>
185293typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185294variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185295 const t_ARG_02& arg_02,
185296 const t_ARG_03& arg_03,
185297 const t_ARG_04& arg_04,
185298 const t_ARG_05& arg_05,
185299 const t_ARG_06& arg_06,
185300 const t_ARG_07& arg_07)
185301{
185302 Variant_Base::template baseEmplace<t_INDEX>(
185303 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07);
185304
185305 return bsl::get<t_INDEX>(*this);
185306}
185307
185308template <class t_HEAD, class... t_TAIL>
185309template <size_t t_INDEX,
185310 class t_ARG_01,
185311 class t_ARG_02,
185312 class t_ARG_03,
185313 class t_ARG_04,
185314 class t_ARG_05,
185315 class t_ARG_06,
185316 class t_ARG_07,
185317 class t_ARG_08>
185318typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185319variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185320 const t_ARG_02& arg_02,
185321 const t_ARG_03& arg_03,
185322 const t_ARG_04& arg_04,
185323 const t_ARG_05& arg_05,
185324 const t_ARG_06& arg_06,
185325 const t_ARG_07& arg_07,
185326 const t_ARG_08& arg_08)
185327{
185328 Variant_Base::template baseEmplace<t_INDEX>(
185329 arg_01, arg_02, arg_03, arg_04, arg_05, arg_06, arg_07, arg_08);
185330
185331 return bsl::get<t_INDEX>(*this);
185332}
185333
185334template <class t_HEAD, class... t_TAIL>
185335template <size_t t_INDEX,
185336 class t_ARG_01,
185337 class t_ARG_02,
185338 class t_ARG_03,
185339 class t_ARG_04,
185340 class t_ARG_05,
185341 class t_ARG_06,
185342 class t_ARG_07,
185343 class t_ARG_08,
185344 class t_ARG_09>
185345typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185346variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185347 const t_ARG_02& arg_02,
185348 const t_ARG_03& arg_03,
185349 const t_ARG_04& arg_04,
185350 const t_ARG_05& arg_05,
185351 const t_ARG_06& arg_06,
185352 const t_ARG_07& arg_07,
185353 const t_ARG_08& arg_08,
185354 const t_ARG_09& arg_09)
185355{
185356 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
185357 arg_02,
185358 arg_03,
185359 arg_04,
185360 arg_05,
185361 arg_06,
185362 arg_07,
185363 arg_08,
185364 arg_09);
185365
185366 return bsl::get<t_INDEX>(*this);
185367}
185368
185369template <class t_HEAD, class... t_TAIL>
185370template <size_t t_INDEX,
185371 class t_ARG_01,
185372 class t_ARG_02,
185373 class t_ARG_03,
185374 class t_ARG_04,
185375 class t_ARG_05,
185376 class t_ARG_06,
185377 class t_ARG_07,
185378 class t_ARG_08,
185379 class t_ARG_09,
185380 class t_ARG_10>
185381typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
185382variant<t_HEAD, t_TAIL...>::emplace(const t_ARG_01& arg_01,
185383 const t_ARG_02& arg_02,
185384 const t_ARG_03& arg_03,
185385 const t_ARG_04& arg_04,
185386 const t_ARG_05& arg_05,
185387 const t_ARG_06& arg_06,
185388 const t_ARG_07& arg_07,
185389 const t_ARG_08& arg_08,
185390 const t_ARG_09& arg_09,
185391 const t_ARG_10& arg_10)
185392{
185393 Variant_Base::template baseEmplace<t_INDEX>(arg_01,
185394 arg_02,
185395 arg_03,
185396 arg_04,
185397 arg_05,
185398 arg_06,
185399 arg_07,
185400 arg_08,
185401 arg_09,
185402 arg_10);
185403
185404 return bsl::get<t_INDEX>(*this);
185405}
185406
185407template <class t_HEAD, class... t_TAIL>
185408inline
185409variant<t_HEAD, t_TAIL...>& variant<t_HEAD, t_TAIL...>::operator=(
185410 const variant& rhs)
185411{
185412 Variant_Base::operator=(static_cast<const Variant_Base&>(rhs));
185413 return *this;
185414}
185415
185416template <class t_HEAD, class... t_TAIL>
185417inline
185418variant<t_HEAD, t_TAIL...>& variant<t_HEAD, t_TAIL...>::operator=(
185419 BloombergLP::bslmf::MovableRef<variant> rhs)
185420{
185421 variant<t_HEAD, t_TAIL...>& lvalue = rhs;
185422 Variant_Base::operator=(
185423 MoveUtil::move(static_cast<Variant_Base&>(lvalue)));
185424 return *this;
185425}
185426template <class t_HEAD, class... t_TAIL>
185427template <class t_TYPE>
185428inline
185429typename bsl::enable_if<
185430 BloombergLP::bslstl::Variant_AssignsFromType<variant<t_HEAD, t_TAIL...>,
185431 t_TYPE>::value,
185432 variant<t_HEAD, t_TAIL...>&>::type
185433variant<t_HEAD, t_TAIL...>::operator=(const t_TYPE& rhs)
185434{
185435 const size_t altIndex = BSLSTL_VARIANT_CONVERT_INDEX_OF(t_TYPE, variant);
185436
185437 if (index() == altIndex) {
185438 bsl::get<altIndex>(*this) = rhs;
185439 }
185440 else {
185441 emplace<altIndex>(rhs);
185442 }
185443
185444 return *this;
185445}
185446// }}} END GENERATED CODE
185447#endif
185448#endif // BSL_VARIANT_FULL_IMPLEMENTATION
185449
185450#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
185451// {{{ BEGIN GENERATED CODE
185452// Command line: sim_cpp11_features.pl bslstl_variant.h
185453#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
185454#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
185455#endif
185456#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_Q
185457#define BSLSTL_VARIANT_VARIADIC_LIMIT_Q BSLSTL_VARIANT_VARIADIC_LIMIT
185458#endif
185459#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 0
185460template <class t_HEAD>
185461inline
185462void variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::swap(variant& other)
185463{
185464 if (!valueless_by_exception()) {
185465 if (index() == other.index()) {
185466 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185467 BSLSTL_VARIANT_VISITID(void, swapper, other);
185468 }
185469 else {
185470 variant tmpThis(MoveUtil::move(*this));
185471 this->reset();
185472 if (!other.valueless_by_exception()) {
185473 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185474 moveConstructor(this);
185475 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185476 }
185477#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185478 this->d_type = other.index();
185479#endif
185480 other.reset();
185481 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185482 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185483 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185484#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185485 other.d_type = tmpThis.index();
185486#endif
185487 }
185488 }
185489 else {
185490 if (!other.valueless_by_exception()) {
185491 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185492 moveConstructor(this);
185493 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185494#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185495 this->d_type = other.index();
185496#endif
185497 other.reset();
185498 }
185499 }
185500}
185501#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 0
185502
185503#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 1
185504template <class t_HEAD, class t_TAIL_01>
185505inline
185506void variant<t_HEAD, t_TAIL_01,
185507 BSLS_COMPILERFEATURES_FILLT(17)>::swap(variant& other)
185508{
185509 if (!valueless_by_exception()) {
185510 if (index() == other.index()) {
185511 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185512 BSLSTL_VARIANT_VISITID(void, swapper, other);
185513 }
185514 else {
185515 variant tmpThis(MoveUtil::move(*this));
185516 this->reset();
185517 if (!other.valueless_by_exception()) {
185518 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185519 moveConstructor(this);
185520 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185521 }
185522#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185523 this->d_type = other.index();
185524#endif
185525 other.reset();
185526 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185527 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185528 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185529#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185530 other.d_type = tmpThis.index();
185531#endif
185532 }
185533 }
185534 else {
185535 if (!other.valueless_by_exception()) {
185536 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185537 moveConstructor(this);
185538 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185539#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185540 this->d_type = other.index();
185541#endif
185542 other.reset();
185543 }
185544 }
185545}
185546#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 1
185547
185548#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 2
185549template <class t_HEAD, class t_TAIL_01,
185550 class t_TAIL_02>
185551inline
185552void variant<t_HEAD, t_TAIL_01,
185553 t_TAIL_02,
185554 BSLS_COMPILERFEATURES_FILLT(16)>::swap(variant& other)
185555{
185556 if (!valueless_by_exception()) {
185557 if (index() == other.index()) {
185558 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185559 BSLSTL_VARIANT_VISITID(void, swapper, other);
185560 }
185561 else {
185562 variant tmpThis(MoveUtil::move(*this));
185563 this->reset();
185564 if (!other.valueless_by_exception()) {
185565 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185566 moveConstructor(this);
185567 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185568 }
185569#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185570 this->d_type = other.index();
185571#endif
185572 other.reset();
185573 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185574 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185575 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185576#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185577 other.d_type = tmpThis.index();
185578#endif
185579 }
185580 }
185581 else {
185582 if (!other.valueless_by_exception()) {
185583 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185584 moveConstructor(this);
185585 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185586#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185587 this->d_type = other.index();
185588#endif
185589 other.reset();
185590 }
185591 }
185592}
185593#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 2
185594
185595#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 3
185596template <class t_HEAD, class t_TAIL_01,
185597 class t_TAIL_02,
185598 class t_TAIL_03>
185599inline
185600void variant<t_HEAD, t_TAIL_01,
185601 t_TAIL_02,
185602 t_TAIL_03,
185603 BSLS_COMPILERFEATURES_FILLT(15)>::swap(variant& other)
185604{
185605 if (!valueless_by_exception()) {
185606 if (index() == other.index()) {
185607 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185608 BSLSTL_VARIANT_VISITID(void, swapper, other);
185609 }
185610 else {
185611 variant tmpThis(MoveUtil::move(*this));
185612 this->reset();
185613 if (!other.valueless_by_exception()) {
185614 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185615 moveConstructor(this);
185616 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185617 }
185618#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185619 this->d_type = other.index();
185620#endif
185621 other.reset();
185622 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185623 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185624 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185625#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185626 other.d_type = tmpThis.index();
185627#endif
185628 }
185629 }
185630 else {
185631 if (!other.valueless_by_exception()) {
185632 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185633 moveConstructor(this);
185634 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185635#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185636 this->d_type = other.index();
185637#endif
185638 other.reset();
185639 }
185640 }
185641}
185642#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 3
185643
185644#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 4
185645template <class t_HEAD, class t_TAIL_01,
185646 class t_TAIL_02,
185647 class t_TAIL_03,
185648 class t_TAIL_04>
185649inline
185650void variant<t_HEAD, t_TAIL_01,
185651 t_TAIL_02,
185652 t_TAIL_03,
185653 t_TAIL_04,
185654 BSLS_COMPILERFEATURES_FILLT(14)>::swap(variant& other)
185655{
185656 if (!valueless_by_exception()) {
185657 if (index() == other.index()) {
185658 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185659 BSLSTL_VARIANT_VISITID(void, swapper, other);
185660 }
185661 else {
185662 variant tmpThis(MoveUtil::move(*this));
185663 this->reset();
185664 if (!other.valueless_by_exception()) {
185665 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185666 moveConstructor(this);
185667 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185668 }
185669#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185670 this->d_type = other.index();
185671#endif
185672 other.reset();
185673 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185674 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185675 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185676#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185677 other.d_type = tmpThis.index();
185678#endif
185679 }
185680 }
185681 else {
185682 if (!other.valueless_by_exception()) {
185683 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185684 moveConstructor(this);
185685 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185686#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185687 this->d_type = other.index();
185688#endif
185689 other.reset();
185690 }
185691 }
185692}
185693#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 4
185694
185695#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 5
185696template <class t_HEAD, class t_TAIL_01,
185697 class t_TAIL_02,
185698 class t_TAIL_03,
185699 class t_TAIL_04,
185700 class t_TAIL_05>
185701inline
185702void variant<t_HEAD, t_TAIL_01,
185703 t_TAIL_02,
185704 t_TAIL_03,
185705 t_TAIL_04,
185706 t_TAIL_05,
185707 BSLS_COMPILERFEATURES_FILLT(13)>::swap(variant& other)
185708{
185709 if (!valueless_by_exception()) {
185710 if (index() == other.index()) {
185711 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185712 BSLSTL_VARIANT_VISITID(void, swapper, other);
185713 }
185714 else {
185715 variant tmpThis(MoveUtil::move(*this));
185716 this->reset();
185717 if (!other.valueless_by_exception()) {
185718 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185719 moveConstructor(this);
185720 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185721 }
185722#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185723 this->d_type = other.index();
185724#endif
185725 other.reset();
185726 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185727 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185728 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185729#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185730 other.d_type = tmpThis.index();
185731#endif
185732 }
185733 }
185734 else {
185735 if (!other.valueless_by_exception()) {
185736 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185737 moveConstructor(this);
185738 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185739#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185740 this->d_type = other.index();
185741#endif
185742 other.reset();
185743 }
185744 }
185745}
185746#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 5
185747
185748#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 6
185749template <class t_HEAD, class t_TAIL_01,
185750 class t_TAIL_02,
185751 class t_TAIL_03,
185752 class t_TAIL_04,
185753 class t_TAIL_05,
185754 class t_TAIL_06>
185755inline
185756void variant<t_HEAD, t_TAIL_01,
185757 t_TAIL_02,
185758 t_TAIL_03,
185759 t_TAIL_04,
185760 t_TAIL_05,
185761 t_TAIL_06,
185762 BSLS_COMPILERFEATURES_FILLT(12)>::swap(variant& other)
185763{
185764 if (!valueless_by_exception()) {
185765 if (index() == other.index()) {
185766 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185767 BSLSTL_VARIANT_VISITID(void, swapper, other);
185768 }
185769 else {
185770 variant tmpThis(MoveUtil::move(*this));
185771 this->reset();
185772 if (!other.valueless_by_exception()) {
185773 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185774 moveConstructor(this);
185775 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185776 }
185777#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185778 this->d_type = other.index();
185779#endif
185780 other.reset();
185781 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185782 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185783 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185784#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185785 other.d_type = tmpThis.index();
185786#endif
185787 }
185788 }
185789 else {
185790 if (!other.valueless_by_exception()) {
185791 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185792 moveConstructor(this);
185793 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185794#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185795 this->d_type = other.index();
185796#endif
185797 other.reset();
185798 }
185799 }
185800}
185801#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 6
185802
185803#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 7
185804template <class t_HEAD, class t_TAIL_01,
185805 class t_TAIL_02,
185806 class t_TAIL_03,
185807 class t_TAIL_04,
185808 class t_TAIL_05,
185809 class t_TAIL_06,
185810 class t_TAIL_07>
185811inline
185812void variant<t_HEAD, t_TAIL_01,
185813 t_TAIL_02,
185814 t_TAIL_03,
185815 t_TAIL_04,
185816 t_TAIL_05,
185817 t_TAIL_06,
185818 t_TAIL_07,
185819 BSLS_COMPILERFEATURES_FILLT(11)>::swap(variant& other)
185820{
185821 if (!valueless_by_exception()) {
185822 if (index() == other.index()) {
185823 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185824 BSLSTL_VARIANT_VISITID(void, swapper, other);
185825 }
185826 else {
185827 variant tmpThis(MoveUtil::move(*this));
185828 this->reset();
185829 if (!other.valueless_by_exception()) {
185830 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185831 moveConstructor(this);
185832 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185833 }
185834#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185835 this->d_type = other.index();
185836#endif
185837 other.reset();
185838 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185839 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185840 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185841#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185842 other.d_type = tmpThis.index();
185843#endif
185844 }
185845 }
185846 else {
185847 if (!other.valueless_by_exception()) {
185848 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185849 moveConstructor(this);
185850 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185851#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185852 this->d_type = other.index();
185853#endif
185854 other.reset();
185855 }
185856 }
185857}
185858#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 7
185859
185860#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 8
185861template <class t_HEAD, class t_TAIL_01,
185862 class t_TAIL_02,
185863 class t_TAIL_03,
185864 class t_TAIL_04,
185865 class t_TAIL_05,
185866 class t_TAIL_06,
185867 class t_TAIL_07,
185868 class t_TAIL_08>
185869inline
185870void variant<t_HEAD, t_TAIL_01,
185871 t_TAIL_02,
185872 t_TAIL_03,
185873 t_TAIL_04,
185874 t_TAIL_05,
185875 t_TAIL_06,
185876 t_TAIL_07,
185877 t_TAIL_08,
185878 BSLS_COMPILERFEATURES_FILLT(10)>::swap(variant& other)
185879{
185880 if (!valueless_by_exception()) {
185881 if (index() == other.index()) {
185882 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185883 BSLSTL_VARIANT_VISITID(void, swapper, other);
185884 }
185885 else {
185886 variant tmpThis(MoveUtil::move(*this));
185887 this->reset();
185888 if (!other.valueless_by_exception()) {
185889 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185890 moveConstructor(this);
185891 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185892 }
185893#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185894 this->d_type = other.index();
185895#endif
185896 other.reset();
185897 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185898 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185899 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185900#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185901 other.d_type = tmpThis.index();
185902#endif
185903 }
185904 }
185905 else {
185906 if (!other.valueless_by_exception()) {
185907 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185908 moveConstructor(this);
185909 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185910#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185911 this->d_type = other.index();
185912#endif
185913 other.reset();
185914 }
185915 }
185916}
185917#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 8
185918
185919#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 9
185920template <class t_HEAD, class t_TAIL_01,
185921 class t_TAIL_02,
185922 class t_TAIL_03,
185923 class t_TAIL_04,
185924 class t_TAIL_05,
185925 class t_TAIL_06,
185926 class t_TAIL_07,
185927 class t_TAIL_08,
185928 class t_TAIL_09>
185929inline
185930void variant<t_HEAD, t_TAIL_01,
185931 t_TAIL_02,
185932 t_TAIL_03,
185933 t_TAIL_04,
185934 t_TAIL_05,
185935 t_TAIL_06,
185936 t_TAIL_07,
185937 t_TAIL_08,
185938 t_TAIL_09,
185939 BSLS_COMPILERFEATURES_FILLT( 9)>::swap(variant& other)
185940{
185941 if (!valueless_by_exception()) {
185942 if (index() == other.index()) {
185943 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
185944 BSLSTL_VARIANT_VISITID(void, swapper, other);
185945 }
185946 else {
185947 variant tmpThis(MoveUtil::move(*this));
185948 this->reset();
185949 if (!other.valueless_by_exception()) {
185950 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185951 moveConstructor(this);
185952 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185953 }
185954#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185955 this->d_type = other.index();
185956#endif
185957 other.reset();
185958 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185959 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
185960 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
185961#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185962 other.d_type = tmpThis.index();
185963#endif
185964 }
185965 }
185966 else {
185967 if (!other.valueless_by_exception()) {
185968 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
185969 moveConstructor(this);
185970 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
185971#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
185972 this->d_type = other.index();
185973#endif
185974 other.reset();
185975 }
185976 }
185977}
185978#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 9
185979
185980#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 10
185981template <class t_HEAD, class t_TAIL_01,
185982 class t_TAIL_02,
185983 class t_TAIL_03,
185984 class t_TAIL_04,
185985 class t_TAIL_05,
185986 class t_TAIL_06,
185987 class t_TAIL_07,
185988 class t_TAIL_08,
185989 class t_TAIL_09,
185990 class t_TAIL_10>
185991inline
185992void variant<t_HEAD, t_TAIL_01,
185993 t_TAIL_02,
185994 t_TAIL_03,
185995 t_TAIL_04,
185996 t_TAIL_05,
185997 t_TAIL_06,
185998 t_TAIL_07,
185999 t_TAIL_08,
186000 t_TAIL_09,
186001 t_TAIL_10,
186002 BSLS_COMPILERFEATURES_FILLT( 8)>::swap(variant& other)
186003{
186004 if (!valueless_by_exception()) {
186005 if (index() == other.index()) {
186006 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186007 BSLSTL_VARIANT_VISITID(void, swapper, other);
186008 }
186009 else {
186010 variant tmpThis(MoveUtil::move(*this));
186011 this->reset();
186012 if (!other.valueless_by_exception()) {
186013 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186014 moveConstructor(this);
186015 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186016 }
186017#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186018 this->d_type = other.index();
186019#endif
186020 other.reset();
186021 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186022 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186023 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186024#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186025 other.d_type = tmpThis.index();
186026#endif
186027 }
186028 }
186029 else {
186030 if (!other.valueless_by_exception()) {
186031 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186032 moveConstructor(this);
186033 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186034#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186035 this->d_type = other.index();
186036#endif
186037 other.reset();
186038 }
186039 }
186040}
186041#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 10
186042
186043#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 11
186044template <class t_HEAD, class t_TAIL_01,
186045 class t_TAIL_02,
186046 class t_TAIL_03,
186047 class t_TAIL_04,
186048 class t_TAIL_05,
186049 class t_TAIL_06,
186050 class t_TAIL_07,
186051 class t_TAIL_08,
186052 class t_TAIL_09,
186053 class t_TAIL_10,
186054 class t_TAIL_11>
186055inline
186056void variant<t_HEAD, t_TAIL_01,
186057 t_TAIL_02,
186058 t_TAIL_03,
186059 t_TAIL_04,
186060 t_TAIL_05,
186061 t_TAIL_06,
186062 t_TAIL_07,
186063 t_TAIL_08,
186064 t_TAIL_09,
186065 t_TAIL_10,
186066 t_TAIL_11,
186067 BSLS_COMPILERFEATURES_FILLT( 7)>::swap(variant& other)
186068{
186069 if (!valueless_by_exception()) {
186070 if (index() == other.index()) {
186071 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186072 BSLSTL_VARIANT_VISITID(void, swapper, other);
186073 }
186074 else {
186075 variant tmpThis(MoveUtil::move(*this));
186076 this->reset();
186077 if (!other.valueless_by_exception()) {
186078 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186079 moveConstructor(this);
186080 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186081 }
186082#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186083 this->d_type = other.index();
186084#endif
186085 other.reset();
186086 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186087 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186088 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186089#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186090 other.d_type = tmpThis.index();
186091#endif
186092 }
186093 }
186094 else {
186095 if (!other.valueless_by_exception()) {
186096 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186097 moveConstructor(this);
186098 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186099#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186100 this->d_type = other.index();
186101#endif
186102 other.reset();
186103 }
186104 }
186105}
186106#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 11
186107
186108#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 12
186109template <class t_HEAD, class t_TAIL_01,
186110 class t_TAIL_02,
186111 class t_TAIL_03,
186112 class t_TAIL_04,
186113 class t_TAIL_05,
186114 class t_TAIL_06,
186115 class t_TAIL_07,
186116 class t_TAIL_08,
186117 class t_TAIL_09,
186118 class t_TAIL_10,
186119 class t_TAIL_11,
186120 class t_TAIL_12>
186121inline
186122void variant<t_HEAD, t_TAIL_01,
186123 t_TAIL_02,
186124 t_TAIL_03,
186125 t_TAIL_04,
186126 t_TAIL_05,
186127 t_TAIL_06,
186128 t_TAIL_07,
186129 t_TAIL_08,
186130 t_TAIL_09,
186131 t_TAIL_10,
186132 t_TAIL_11,
186133 t_TAIL_12,
186134 BSLS_COMPILERFEATURES_FILLT( 6)>::swap(variant& other)
186135{
186136 if (!valueless_by_exception()) {
186137 if (index() == other.index()) {
186138 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186139 BSLSTL_VARIANT_VISITID(void, swapper, other);
186140 }
186141 else {
186142 variant tmpThis(MoveUtil::move(*this));
186143 this->reset();
186144 if (!other.valueless_by_exception()) {
186145 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186146 moveConstructor(this);
186147 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186148 }
186149#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186150 this->d_type = other.index();
186151#endif
186152 other.reset();
186153 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186154 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186155 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186156#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186157 other.d_type = tmpThis.index();
186158#endif
186159 }
186160 }
186161 else {
186162 if (!other.valueless_by_exception()) {
186163 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186164 moveConstructor(this);
186165 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186166#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186167 this->d_type = other.index();
186168#endif
186169 other.reset();
186170 }
186171 }
186172}
186173#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 12
186174
186175#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 13
186176template <class t_HEAD, class t_TAIL_01,
186177 class t_TAIL_02,
186178 class t_TAIL_03,
186179 class t_TAIL_04,
186180 class t_TAIL_05,
186181 class t_TAIL_06,
186182 class t_TAIL_07,
186183 class t_TAIL_08,
186184 class t_TAIL_09,
186185 class t_TAIL_10,
186186 class t_TAIL_11,
186187 class t_TAIL_12,
186188 class t_TAIL_13>
186189inline
186190void variant<t_HEAD, t_TAIL_01,
186191 t_TAIL_02,
186192 t_TAIL_03,
186193 t_TAIL_04,
186194 t_TAIL_05,
186195 t_TAIL_06,
186196 t_TAIL_07,
186197 t_TAIL_08,
186198 t_TAIL_09,
186199 t_TAIL_10,
186200 t_TAIL_11,
186201 t_TAIL_12,
186202 t_TAIL_13,
186203 BSLS_COMPILERFEATURES_FILLT( 5)>::swap(variant& other)
186204{
186205 if (!valueless_by_exception()) {
186206 if (index() == other.index()) {
186207 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186208 BSLSTL_VARIANT_VISITID(void, swapper, other);
186209 }
186210 else {
186211 variant tmpThis(MoveUtil::move(*this));
186212 this->reset();
186213 if (!other.valueless_by_exception()) {
186214 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186215 moveConstructor(this);
186216 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186217 }
186218#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186219 this->d_type = other.index();
186220#endif
186221 other.reset();
186222 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186223 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186224 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186225#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186226 other.d_type = tmpThis.index();
186227#endif
186228 }
186229 }
186230 else {
186231 if (!other.valueless_by_exception()) {
186232 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186233 moveConstructor(this);
186234 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186235#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186236 this->d_type = other.index();
186237#endif
186238 other.reset();
186239 }
186240 }
186241}
186242#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 13
186243
186244#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 14
186245template <class t_HEAD, class t_TAIL_01,
186246 class t_TAIL_02,
186247 class t_TAIL_03,
186248 class t_TAIL_04,
186249 class t_TAIL_05,
186250 class t_TAIL_06,
186251 class t_TAIL_07,
186252 class t_TAIL_08,
186253 class t_TAIL_09,
186254 class t_TAIL_10,
186255 class t_TAIL_11,
186256 class t_TAIL_12,
186257 class t_TAIL_13,
186258 class t_TAIL_14>
186259inline
186260void variant<t_HEAD, t_TAIL_01,
186261 t_TAIL_02,
186262 t_TAIL_03,
186263 t_TAIL_04,
186264 t_TAIL_05,
186265 t_TAIL_06,
186266 t_TAIL_07,
186267 t_TAIL_08,
186268 t_TAIL_09,
186269 t_TAIL_10,
186270 t_TAIL_11,
186271 t_TAIL_12,
186272 t_TAIL_13,
186273 t_TAIL_14,
186274 BSLS_COMPILERFEATURES_FILLT( 4)>::swap(variant& other)
186275{
186276 if (!valueless_by_exception()) {
186277 if (index() == other.index()) {
186278 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186279 BSLSTL_VARIANT_VISITID(void, swapper, other);
186280 }
186281 else {
186282 variant tmpThis(MoveUtil::move(*this));
186283 this->reset();
186284 if (!other.valueless_by_exception()) {
186285 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186286 moveConstructor(this);
186287 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186288 }
186289#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186290 this->d_type = other.index();
186291#endif
186292 other.reset();
186293 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186294 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186295 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186296#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186297 other.d_type = tmpThis.index();
186298#endif
186299 }
186300 }
186301 else {
186302 if (!other.valueless_by_exception()) {
186303 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186304 moveConstructor(this);
186305 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186306#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186307 this->d_type = other.index();
186308#endif
186309 other.reset();
186310 }
186311 }
186312}
186313#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 14
186314
186315#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 15
186316template <class t_HEAD, class t_TAIL_01,
186317 class t_TAIL_02,
186318 class t_TAIL_03,
186319 class t_TAIL_04,
186320 class t_TAIL_05,
186321 class t_TAIL_06,
186322 class t_TAIL_07,
186323 class t_TAIL_08,
186324 class t_TAIL_09,
186325 class t_TAIL_10,
186326 class t_TAIL_11,
186327 class t_TAIL_12,
186328 class t_TAIL_13,
186329 class t_TAIL_14,
186330 class t_TAIL_15>
186331inline
186332void variant<t_HEAD, t_TAIL_01,
186333 t_TAIL_02,
186334 t_TAIL_03,
186335 t_TAIL_04,
186336 t_TAIL_05,
186337 t_TAIL_06,
186338 t_TAIL_07,
186339 t_TAIL_08,
186340 t_TAIL_09,
186341 t_TAIL_10,
186342 t_TAIL_11,
186343 t_TAIL_12,
186344 t_TAIL_13,
186345 t_TAIL_14,
186346 t_TAIL_15,
186347 BSLS_COMPILERFEATURES_FILLT( 3)>::swap(variant& other)
186348{
186349 if (!valueless_by_exception()) {
186350 if (index() == other.index()) {
186351 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186352 BSLSTL_VARIANT_VISITID(void, swapper, other);
186353 }
186354 else {
186355 variant tmpThis(MoveUtil::move(*this));
186356 this->reset();
186357 if (!other.valueless_by_exception()) {
186358 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186359 moveConstructor(this);
186360 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186361 }
186362#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186363 this->d_type = other.index();
186364#endif
186365 other.reset();
186366 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186367 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186368 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186369#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186370 other.d_type = tmpThis.index();
186371#endif
186372 }
186373 }
186374 else {
186375 if (!other.valueless_by_exception()) {
186376 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186377 moveConstructor(this);
186378 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186379#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186380 this->d_type = other.index();
186381#endif
186382 other.reset();
186383 }
186384 }
186385}
186386#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 15
186387
186388#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 16
186389template <class t_HEAD, class t_TAIL_01,
186390 class t_TAIL_02,
186391 class t_TAIL_03,
186392 class t_TAIL_04,
186393 class t_TAIL_05,
186394 class t_TAIL_06,
186395 class t_TAIL_07,
186396 class t_TAIL_08,
186397 class t_TAIL_09,
186398 class t_TAIL_10,
186399 class t_TAIL_11,
186400 class t_TAIL_12,
186401 class t_TAIL_13,
186402 class t_TAIL_14,
186403 class t_TAIL_15,
186404 class t_TAIL_16>
186405inline
186406void variant<t_HEAD, t_TAIL_01,
186407 t_TAIL_02,
186408 t_TAIL_03,
186409 t_TAIL_04,
186410 t_TAIL_05,
186411 t_TAIL_06,
186412 t_TAIL_07,
186413 t_TAIL_08,
186414 t_TAIL_09,
186415 t_TAIL_10,
186416 t_TAIL_11,
186417 t_TAIL_12,
186418 t_TAIL_13,
186419 t_TAIL_14,
186420 t_TAIL_15,
186421 t_TAIL_16,
186422 BSLS_COMPILERFEATURES_FILLT( 2)>::swap(variant& other)
186423{
186424 if (!valueless_by_exception()) {
186425 if (index() == other.index()) {
186426 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186427 BSLSTL_VARIANT_VISITID(void, swapper, other);
186428 }
186429 else {
186430 variant tmpThis(MoveUtil::move(*this));
186431 this->reset();
186432 if (!other.valueless_by_exception()) {
186433 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186434 moveConstructor(this);
186435 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186436 }
186437#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186438 this->d_type = other.index();
186439#endif
186440 other.reset();
186441 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186442 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186443 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186444#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186445 other.d_type = tmpThis.index();
186446#endif
186447 }
186448 }
186449 else {
186450 if (!other.valueless_by_exception()) {
186451 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186452 moveConstructor(this);
186453 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186454#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186455 this->d_type = other.index();
186456#endif
186457 other.reset();
186458 }
186459 }
186460}
186461#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 16
186462
186463#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 17
186464template <class t_HEAD, class t_TAIL_01,
186465 class t_TAIL_02,
186466 class t_TAIL_03,
186467 class t_TAIL_04,
186468 class t_TAIL_05,
186469 class t_TAIL_06,
186470 class t_TAIL_07,
186471 class t_TAIL_08,
186472 class t_TAIL_09,
186473 class t_TAIL_10,
186474 class t_TAIL_11,
186475 class t_TAIL_12,
186476 class t_TAIL_13,
186477 class t_TAIL_14,
186478 class t_TAIL_15,
186479 class t_TAIL_16,
186480 class t_TAIL_17>
186481inline
186482void variant<t_HEAD, t_TAIL_01,
186483 t_TAIL_02,
186484 t_TAIL_03,
186485 t_TAIL_04,
186486 t_TAIL_05,
186487 t_TAIL_06,
186488 t_TAIL_07,
186489 t_TAIL_08,
186490 t_TAIL_09,
186491 t_TAIL_10,
186492 t_TAIL_11,
186493 t_TAIL_12,
186494 t_TAIL_13,
186495 t_TAIL_14,
186496 t_TAIL_15,
186497 t_TAIL_16,
186498 t_TAIL_17,
186499 BSLS_COMPILERFEATURES_FILLT( 1)>::swap(variant& other)
186500{
186501 if (!valueless_by_exception()) {
186502 if (index() == other.index()) {
186503 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186504 BSLSTL_VARIANT_VISITID(void, swapper, other);
186505 }
186506 else {
186507 variant tmpThis(MoveUtil::move(*this));
186508 this->reset();
186509 if (!other.valueless_by_exception()) {
186510 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186511 moveConstructor(this);
186512 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186513 }
186514#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186515 this->d_type = other.index();
186516#endif
186517 other.reset();
186518 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186519 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186520 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186521#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186522 other.d_type = tmpThis.index();
186523#endif
186524 }
186525 }
186526 else {
186527 if (!other.valueless_by_exception()) {
186528 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186529 moveConstructor(this);
186530 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186531#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186532 this->d_type = other.index();
186533#endif
186534 other.reset();
186535 }
186536 }
186537}
186538#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 17
186539
186540#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 18
186541template <class t_HEAD, class t_TAIL_01,
186542 class t_TAIL_02,
186543 class t_TAIL_03,
186544 class t_TAIL_04,
186545 class t_TAIL_05,
186546 class t_TAIL_06,
186547 class t_TAIL_07,
186548 class t_TAIL_08,
186549 class t_TAIL_09,
186550 class t_TAIL_10,
186551 class t_TAIL_11,
186552 class t_TAIL_12,
186553 class t_TAIL_13,
186554 class t_TAIL_14,
186555 class t_TAIL_15,
186556 class t_TAIL_16,
186557 class t_TAIL_17,
186558 class t_TAIL_18>
186559inline
186560void variant<t_HEAD, t_TAIL_01,
186561 t_TAIL_02,
186562 t_TAIL_03,
186563 t_TAIL_04,
186564 t_TAIL_05,
186565 t_TAIL_06,
186566 t_TAIL_07,
186567 t_TAIL_08,
186568 t_TAIL_09,
186569 t_TAIL_10,
186570 t_TAIL_11,
186571 t_TAIL_12,
186572 t_TAIL_13,
186573 t_TAIL_14,
186574 t_TAIL_15,
186575 t_TAIL_16,
186576 t_TAIL_17,
186577 t_TAIL_18,
186578 BSLS_COMPILERFEATURES_FILLT( 0)>::swap(variant& other)
186579{
186580 if (!valueless_by_exception()) {
186581 if (index() == other.index()) {
186582 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
186583 BSLSTL_VARIANT_VISITID(void, swapper, other);
186584 }
186585 else {
186586 variant tmpThis(MoveUtil::move(*this));
186587 this->reset();
186588 if (!other.valueless_by_exception()) {
186589 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186590 moveConstructor(this);
186591 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186592 }
186593#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186594 this->d_type = other.index();
186595#endif
186596 other.reset();
186597 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186598 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
186599 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
186600#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186601 other.d_type = tmpThis.index();
186602#endif
186603 }
186604 }
186605 else {
186606 if (!other.valueless_by_exception()) {
186607 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
186608 moveConstructor(this);
186609 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
186610#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
186611 this->d_type = other.index();
186612#endif
186613 other.reset();
186614 }
186615 }
186616}
186617#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 18
186618
186619
186620#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 0
186621template <class t_HEAD>
186622inline
186623size_t variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)
186624 >::index() const BSLS_KEYWORD_NOEXCEPT
186625{
186626 return this->d_type;
186627}
186628#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 0
186629
186630#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 1
186631template <class t_HEAD, class t_TAIL_01>
186632inline
186633size_t variant<t_HEAD, t_TAIL_01,
186634 BSLS_COMPILERFEATURES_FILLT(17)
186635 >::index() const BSLS_KEYWORD_NOEXCEPT
186636{
186637 return this->d_type;
186638}
186639#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 1
186640
186641#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 2
186642template <class t_HEAD, class t_TAIL_01,
186643 class t_TAIL_02>
186644inline
186645size_t variant<t_HEAD, t_TAIL_01,
186646 t_TAIL_02,
186647 BSLS_COMPILERFEATURES_FILLT(16)
186648 >::index() const BSLS_KEYWORD_NOEXCEPT
186649{
186650 return this->d_type;
186651}
186652#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 2
186653
186654#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 3
186655template <class t_HEAD, class t_TAIL_01,
186656 class t_TAIL_02,
186657 class t_TAIL_03>
186658inline
186659size_t variant<t_HEAD, t_TAIL_01,
186660 t_TAIL_02,
186661 t_TAIL_03,
186662 BSLS_COMPILERFEATURES_FILLT(15)
186663 >::index() const BSLS_KEYWORD_NOEXCEPT
186664{
186665 return this->d_type;
186666}
186667#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 3
186668
186669#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 4
186670template <class t_HEAD, class t_TAIL_01,
186671 class t_TAIL_02,
186672 class t_TAIL_03,
186673 class t_TAIL_04>
186674inline
186675size_t variant<t_HEAD, t_TAIL_01,
186676 t_TAIL_02,
186677 t_TAIL_03,
186678 t_TAIL_04,
186679 BSLS_COMPILERFEATURES_FILLT(14)
186680 >::index() const BSLS_KEYWORD_NOEXCEPT
186681{
186682 return this->d_type;
186683}
186684#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 4
186685
186686#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 5
186687template <class t_HEAD, class t_TAIL_01,
186688 class t_TAIL_02,
186689 class t_TAIL_03,
186690 class t_TAIL_04,
186691 class t_TAIL_05>
186692inline
186693size_t variant<t_HEAD, t_TAIL_01,
186694 t_TAIL_02,
186695 t_TAIL_03,
186696 t_TAIL_04,
186697 t_TAIL_05,
186698 BSLS_COMPILERFEATURES_FILLT(13)
186699 >::index() const BSLS_KEYWORD_NOEXCEPT
186700{
186701 return this->d_type;
186702}
186703#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 5
186704
186705#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 6
186706template <class t_HEAD, class t_TAIL_01,
186707 class t_TAIL_02,
186708 class t_TAIL_03,
186709 class t_TAIL_04,
186710 class t_TAIL_05,
186711 class t_TAIL_06>
186712inline
186713size_t variant<t_HEAD, t_TAIL_01,
186714 t_TAIL_02,
186715 t_TAIL_03,
186716 t_TAIL_04,
186717 t_TAIL_05,
186718 t_TAIL_06,
186719 BSLS_COMPILERFEATURES_FILLT(12)
186720 >::index() const BSLS_KEYWORD_NOEXCEPT
186721{
186722 return this->d_type;
186723}
186724#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 6
186725
186726#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 7
186727template <class t_HEAD, class t_TAIL_01,
186728 class t_TAIL_02,
186729 class t_TAIL_03,
186730 class t_TAIL_04,
186731 class t_TAIL_05,
186732 class t_TAIL_06,
186733 class t_TAIL_07>
186734inline
186735size_t variant<t_HEAD, t_TAIL_01,
186736 t_TAIL_02,
186737 t_TAIL_03,
186738 t_TAIL_04,
186739 t_TAIL_05,
186740 t_TAIL_06,
186741 t_TAIL_07,
186742 BSLS_COMPILERFEATURES_FILLT(11)
186743 >::index() const BSLS_KEYWORD_NOEXCEPT
186744{
186745 return this->d_type;
186746}
186747#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 7
186748
186749#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 8
186750template <class t_HEAD, class t_TAIL_01,
186751 class t_TAIL_02,
186752 class t_TAIL_03,
186753 class t_TAIL_04,
186754 class t_TAIL_05,
186755 class t_TAIL_06,
186756 class t_TAIL_07,
186757 class t_TAIL_08>
186758inline
186759size_t variant<t_HEAD, t_TAIL_01,
186760 t_TAIL_02,
186761 t_TAIL_03,
186762 t_TAIL_04,
186763 t_TAIL_05,
186764 t_TAIL_06,
186765 t_TAIL_07,
186766 t_TAIL_08,
186767 BSLS_COMPILERFEATURES_FILLT(10)
186768 >::index() const BSLS_KEYWORD_NOEXCEPT
186769{
186770 return this->d_type;
186771}
186772#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 8
186773
186774#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 9
186775template <class t_HEAD, class t_TAIL_01,
186776 class t_TAIL_02,
186777 class t_TAIL_03,
186778 class t_TAIL_04,
186779 class t_TAIL_05,
186780 class t_TAIL_06,
186781 class t_TAIL_07,
186782 class t_TAIL_08,
186783 class t_TAIL_09>
186784inline
186785size_t variant<t_HEAD, t_TAIL_01,
186786 t_TAIL_02,
186787 t_TAIL_03,
186788 t_TAIL_04,
186789 t_TAIL_05,
186790 t_TAIL_06,
186791 t_TAIL_07,
186792 t_TAIL_08,
186793 t_TAIL_09,
186794 BSLS_COMPILERFEATURES_FILLT( 9)
186795 >::index() const BSLS_KEYWORD_NOEXCEPT
186796{
186797 return this->d_type;
186798}
186799#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 9
186800
186801#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 10
186802template <class t_HEAD, class t_TAIL_01,
186803 class t_TAIL_02,
186804 class t_TAIL_03,
186805 class t_TAIL_04,
186806 class t_TAIL_05,
186807 class t_TAIL_06,
186808 class t_TAIL_07,
186809 class t_TAIL_08,
186810 class t_TAIL_09,
186811 class t_TAIL_10>
186812inline
186813size_t variant<t_HEAD, t_TAIL_01,
186814 t_TAIL_02,
186815 t_TAIL_03,
186816 t_TAIL_04,
186817 t_TAIL_05,
186818 t_TAIL_06,
186819 t_TAIL_07,
186820 t_TAIL_08,
186821 t_TAIL_09,
186822 t_TAIL_10,
186823 BSLS_COMPILERFEATURES_FILLT( 8)
186824 >::index() const BSLS_KEYWORD_NOEXCEPT
186825{
186826 return this->d_type;
186827}
186828#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 10
186829
186830#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 11
186831template <class t_HEAD, class t_TAIL_01,
186832 class t_TAIL_02,
186833 class t_TAIL_03,
186834 class t_TAIL_04,
186835 class t_TAIL_05,
186836 class t_TAIL_06,
186837 class t_TAIL_07,
186838 class t_TAIL_08,
186839 class t_TAIL_09,
186840 class t_TAIL_10,
186841 class t_TAIL_11>
186842inline
186843size_t variant<t_HEAD, t_TAIL_01,
186844 t_TAIL_02,
186845 t_TAIL_03,
186846 t_TAIL_04,
186847 t_TAIL_05,
186848 t_TAIL_06,
186849 t_TAIL_07,
186850 t_TAIL_08,
186851 t_TAIL_09,
186852 t_TAIL_10,
186853 t_TAIL_11,
186854 BSLS_COMPILERFEATURES_FILLT( 7)
186855 >::index() const BSLS_KEYWORD_NOEXCEPT
186856{
186857 return this->d_type;
186858}
186859#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 11
186860
186861#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 12
186862template <class t_HEAD, class t_TAIL_01,
186863 class t_TAIL_02,
186864 class t_TAIL_03,
186865 class t_TAIL_04,
186866 class t_TAIL_05,
186867 class t_TAIL_06,
186868 class t_TAIL_07,
186869 class t_TAIL_08,
186870 class t_TAIL_09,
186871 class t_TAIL_10,
186872 class t_TAIL_11,
186873 class t_TAIL_12>
186874inline
186875size_t variant<t_HEAD, t_TAIL_01,
186876 t_TAIL_02,
186877 t_TAIL_03,
186878 t_TAIL_04,
186879 t_TAIL_05,
186880 t_TAIL_06,
186881 t_TAIL_07,
186882 t_TAIL_08,
186883 t_TAIL_09,
186884 t_TAIL_10,
186885 t_TAIL_11,
186886 t_TAIL_12,
186887 BSLS_COMPILERFEATURES_FILLT( 6)
186888 >::index() const BSLS_KEYWORD_NOEXCEPT
186889{
186890 return this->d_type;
186891}
186892#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 12
186893
186894#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 13
186895template <class t_HEAD, class t_TAIL_01,
186896 class t_TAIL_02,
186897 class t_TAIL_03,
186898 class t_TAIL_04,
186899 class t_TAIL_05,
186900 class t_TAIL_06,
186901 class t_TAIL_07,
186902 class t_TAIL_08,
186903 class t_TAIL_09,
186904 class t_TAIL_10,
186905 class t_TAIL_11,
186906 class t_TAIL_12,
186907 class t_TAIL_13>
186908inline
186909size_t variant<t_HEAD, t_TAIL_01,
186910 t_TAIL_02,
186911 t_TAIL_03,
186912 t_TAIL_04,
186913 t_TAIL_05,
186914 t_TAIL_06,
186915 t_TAIL_07,
186916 t_TAIL_08,
186917 t_TAIL_09,
186918 t_TAIL_10,
186919 t_TAIL_11,
186920 t_TAIL_12,
186921 t_TAIL_13,
186922 BSLS_COMPILERFEATURES_FILLT( 5)
186923 >::index() const BSLS_KEYWORD_NOEXCEPT
186924{
186925 return this->d_type;
186926}
186927#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 13
186928
186929#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 14
186930template <class t_HEAD, class t_TAIL_01,
186931 class t_TAIL_02,
186932 class t_TAIL_03,
186933 class t_TAIL_04,
186934 class t_TAIL_05,
186935 class t_TAIL_06,
186936 class t_TAIL_07,
186937 class t_TAIL_08,
186938 class t_TAIL_09,
186939 class t_TAIL_10,
186940 class t_TAIL_11,
186941 class t_TAIL_12,
186942 class t_TAIL_13,
186943 class t_TAIL_14>
186944inline
186945size_t variant<t_HEAD, t_TAIL_01,
186946 t_TAIL_02,
186947 t_TAIL_03,
186948 t_TAIL_04,
186949 t_TAIL_05,
186950 t_TAIL_06,
186951 t_TAIL_07,
186952 t_TAIL_08,
186953 t_TAIL_09,
186954 t_TAIL_10,
186955 t_TAIL_11,
186956 t_TAIL_12,
186957 t_TAIL_13,
186958 t_TAIL_14,
186959 BSLS_COMPILERFEATURES_FILLT( 4)
186960 >::index() const BSLS_KEYWORD_NOEXCEPT
186961{
186962 return this->d_type;
186963}
186964#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 14
186965
186966#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 15
186967template <class t_HEAD, class t_TAIL_01,
186968 class t_TAIL_02,
186969 class t_TAIL_03,
186970 class t_TAIL_04,
186971 class t_TAIL_05,
186972 class t_TAIL_06,
186973 class t_TAIL_07,
186974 class t_TAIL_08,
186975 class t_TAIL_09,
186976 class t_TAIL_10,
186977 class t_TAIL_11,
186978 class t_TAIL_12,
186979 class t_TAIL_13,
186980 class t_TAIL_14,
186981 class t_TAIL_15>
186982inline
186983size_t variant<t_HEAD, t_TAIL_01,
186984 t_TAIL_02,
186985 t_TAIL_03,
186986 t_TAIL_04,
186987 t_TAIL_05,
186988 t_TAIL_06,
186989 t_TAIL_07,
186990 t_TAIL_08,
186991 t_TAIL_09,
186992 t_TAIL_10,
186993 t_TAIL_11,
186994 t_TAIL_12,
186995 t_TAIL_13,
186996 t_TAIL_14,
186997 t_TAIL_15,
186998 BSLS_COMPILERFEATURES_FILLT( 3)
186999 >::index() const BSLS_KEYWORD_NOEXCEPT
187000{
187001 return this->d_type;
187002}
187003#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 15
187004
187005#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 16
187006template <class t_HEAD, class t_TAIL_01,
187007 class t_TAIL_02,
187008 class t_TAIL_03,
187009 class t_TAIL_04,
187010 class t_TAIL_05,
187011 class t_TAIL_06,
187012 class t_TAIL_07,
187013 class t_TAIL_08,
187014 class t_TAIL_09,
187015 class t_TAIL_10,
187016 class t_TAIL_11,
187017 class t_TAIL_12,
187018 class t_TAIL_13,
187019 class t_TAIL_14,
187020 class t_TAIL_15,
187021 class t_TAIL_16>
187022inline
187023size_t variant<t_HEAD, t_TAIL_01,
187024 t_TAIL_02,
187025 t_TAIL_03,
187026 t_TAIL_04,
187027 t_TAIL_05,
187028 t_TAIL_06,
187029 t_TAIL_07,
187030 t_TAIL_08,
187031 t_TAIL_09,
187032 t_TAIL_10,
187033 t_TAIL_11,
187034 t_TAIL_12,
187035 t_TAIL_13,
187036 t_TAIL_14,
187037 t_TAIL_15,
187038 t_TAIL_16,
187039 BSLS_COMPILERFEATURES_FILLT( 2)
187040 >::index() const BSLS_KEYWORD_NOEXCEPT
187041{
187042 return this->d_type;
187043}
187044#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 16
187045
187046#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 17
187047template <class t_HEAD, class t_TAIL_01,
187048 class t_TAIL_02,
187049 class t_TAIL_03,
187050 class t_TAIL_04,
187051 class t_TAIL_05,
187052 class t_TAIL_06,
187053 class t_TAIL_07,
187054 class t_TAIL_08,
187055 class t_TAIL_09,
187056 class t_TAIL_10,
187057 class t_TAIL_11,
187058 class t_TAIL_12,
187059 class t_TAIL_13,
187060 class t_TAIL_14,
187061 class t_TAIL_15,
187062 class t_TAIL_16,
187063 class t_TAIL_17>
187064inline
187065size_t variant<t_HEAD, t_TAIL_01,
187066 t_TAIL_02,
187067 t_TAIL_03,
187068 t_TAIL_04,
187069 t_TAIL_05,
187070 t_TAIL_06,
187071 t_TAIL_07,
187072 t_TAIL_08,
187073 t_TAIL_09,
187074 t_TAIL_10,
187075 t_TAIL_11,
187076 t_TAIL_12,
187077 t_TAIL_13,
187078 t_TAIL_14,
187079 t_TAIL_15,
187080 t_TAIL_16,
187081 t_TAIL_17,
187082 BSLS_COMPILERFEATURES_FILLT( 1)
187083 >::index() const BSLS_KEYWORD_NOEXCEPT
187084{
187085 return this->d_type;
187086}
187087#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 17
187088
187089#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 18
187090template <class t_HEAD, class t_TAIL_01,
187091 class t_TAIL_02,
187092 class t_TAIL_03,
187093 class t_TAIL_04,
187094 class t_TAIL_05,
187095 class t_TAIL_06,
187096 class t_TAIL_07,
187097 class t_TAIL_08,
187098 class t_TAIL_09,
187099 class t_TAIL_10,
187100 class t_TAIL_11,
187101 class t_TAIL_12,
187102 class t_TAIL_13,
187103 class t_TAIL_14,
187104 class t_TAIL_15,
187105 class t_TAIL_16,
187106 class t_TAIL_17,
187107 class t_TAIL_18>
187108inline
187109size_t variant<t_HEAD, t_TAIL_01,
187110 t_TAIL_02,
187111 t_TAIL_03,
187112 t_TAIL_04,
187113 t_TAIL_05,
187114 t_TAIL_06,
187115 t_TAIL_07,
187116 t_TAIL_08,
187117 t_TAIL_09,
187118 t_TAIL_10,
187119 t_TAIL_11,
187120 t_TAIL_12,
187121 t_TAIL_13,
187122 t_TAIL_14,
187123 t_TAIL_15,
187124 t_TAIL_16,
187125 t_TAIL_17,
187126 t_TAIL_18,
187127 BSLS_COMPILERFEATURES_FILLT( 0)
187128 >::index() const BSLS_KEYWORD_NOEXCEPT
187129{
187130 return this->d_type;
187131}
187132#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 18
187133
187134
187135#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 0
187136template <class t_HEAD>
187137inline
187138bool variant<t_HEAD, BSLS_COMPILERFEATURES_FILLT(18)>::valueless_by_exception()
187140{
187141 return this->d_type == bsl::variant_npos;
187142}
187143#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 0
187144
187145#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 1
187146template <class t_HEAD, class t_TAIL_01>
187147inline
187148bool variant<t_HEAD, t_TAIL_01,
187149 BSLS_COMPILERFEATURES_FILLT(17)>::valueless_by_exception()
187151{
187152 return this->d_type == bsl::variant_npos;
187153}
187154#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 1
187155
187156#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 2
187157template <class t_HEAD, class t_TAIL_01,
187158 class t_TAIL_02>
187159inline
187160bool variant<t_HEAD, t_TAIL_01,
187161 t_TAIL_02,
187162 BSLS_COMPILERFEATURES_FILLT(16)>::valueless_by_exception()
187164{
187165 return this->d_type == bsl::variant_npos;
187166}
187167#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 2
187168
187169#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 3
187170template <class t_HEAD, class t_TAIL_01,
187171 class t_TAIL_02,
187172 class t_TAIL_03>
187173inline
187174bool variant<t_HEAD, t_TAIL_01,
187175 t_TAIL_02,
187176 t_TAIL_03,
187177 BSLS_COMPILERFEATURES_FILLT(15)>::valueless_by_exception()
187179{
187180 return this->d_type == bsl::variant_npos;
187181}
187182#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 3
187183
187184#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 4
187185template <class t_HEAD, class t_TAIL_01,
187186 class t_TAIL_02,
187187 class t_TAIL_03,
187188 class t_TAIL_04>
187189inline
187190bool variant<t_HEAD, t_TAIL_01,
187191 t_TAIL_02,
187192 t_TAIL_03,
187193 t_TAIL_04,
187194 BSLS_COMPILERFEATURES_FILLT(14)>::valueless_by_exception()
187196{
187197 return this->d_type == bsl::variant_npos;
187198}
187199#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 4
187200
187201#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 5
187202template <class t_HEAD, class t_TAIL_01,
187203 class t_TAIL_02,
187204 class t_TAIL_03,
187205 class t_TAIL_04,
187206 class t_TAIL_05>
187207inline
187208bool variant<t_HEAD, t_TAIL_01,
187209 t_TAIL_02,
187210 t_TAIL_03,
187211 t_TAIL_04,
187212 t_TAIL_05,
187213 BSLS_COMPILERFEATURES_FILLT(13)>::valueless_by_exception()
187215{
187216 return this->d_type == bsl::variant_npos;
187217}
187218#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 5
187219
187220#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 6
187221template <class t_HEAD, class t_TAIL_01,
187222 class t_TAIL_02,
187223 class t_TAIL_03,
187224 class t_TAIL_04,
187225 class t_TAIL_05,
187226 class t_TAIL_06>
187227inline
187228bool variant<t_HEAD, t_TAIL_01,
187229 t_TAIL_02,
187230 t_TAIL_03,
187231 t_TAIL_04,
187232 t_TAIL_05,
187233 t_TAIL_06,
187234 BSLS_COMPILERFEATURES_FILLT(12)>::valueless_by_exception()
187236{
187237 return this->d_type == bsl::variant_npos;
187238}
187239#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 6
187240
187241#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 7
187242template <class t_HEAD, class t_TAIL_01,
187243 class t_TAIL_02,
187244 class t_TAIL_03,
187245 class t_TAIL_04,
187246 class t_TAIL_05,
187247 class t_TAIL_06,
187248 class t_TAIL_07>
187249inline
187250bool variant<t_HEAD, t_TAIL_01,
187251 t_TAIL_02,
187252 t_TAIL_03,
187253 t_TAIL_04,
187254 t_TAIL_05,
187255 t_TAIL_06,
187256 t_TAIL_07,
187257 BSLS_COMPILERFEATURES_FILLT(11)>::valueless_by_exception()
187259{
187260 return this->d_type == bsl::variant_npos;
187261}
187262#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 7
187263
187264#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 8
187265template <class t_HEAD, class t_TAIL_01,
187266 class t_TAIL_02,
187267 class t_TAIL_03,
187268 class t_TAIL_04,
187269 class t_TAIL_05,
187270 class t_TAIL_06,
187271 class t_TAIL_07,
187272 class t_TAIL_08>
187273inline
187274bool variant<t_HEAD, t_TAIL_01,
187275 t_TAIL_02,
187276 t_TAIL_03,
187277 t_TAIL_04,
187278 t_TAIL_05,
187279 t_TAIL_06,
187280 t_TAIL_07,
187281 t_TAIL_08,
187282 BSLS_COMPILERFEATURES_FILLT(10)>::valueless_by_exception()
187284{
187285 return this->d_type == bsl::variant_npos;
187286}
187287#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 8
187288
187289#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 9
187290template <class t_HEAD, class t_TAIL_01,
187291 class t_TAIL_02,
187292 class t_TAIL_03,
187293 class t_TAIL_04,
187294 class t_TAIL_05,
187295 class t_TAIL_06,
187296 class t_TAIL_07,
187297 class t_TAIL_08,
187298 class t_TAIL_09>
187299inline
187300bool variant<t_HEAD, t_TAIL_01,
187301 t_TAIL_02,
187302 t_TAIL_03,
187303 t_TAIL_04,
187304 t_TAIL_05,
187305 t_TAIL_06,
187306 t_TAIL_07,
187307 t_TAIL_08,
187308 t_TAIL_09,
187309 BSLS_COMPILERFEATURES_FILLT( 9)>::valueless_by_exception()
187311{
187312 return this->d_type == bsl::variant_npos;
187313}
187314#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 9
187315
187316#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 10
187317template <class t_HEAD, class t_TAIL_01,
187318 class t_TAIL_02,
187319 class t_TAIL_03,
187320 class t_TAIL_04,
187321 class t_TAIL_05,
187322 class t_TAIL_06,
187323 class t_TAIL_07,
187324 class t_TAIL_08,
187325 class t_TAIL_09,
187326 class t_TAIL_10>
187327inline
187328bool variant<t_HEAD, t_TAIL_01,
187329 t_TAIL_02,
187330 t_TAIL_03,
187331 t_TAIL_04,
187332 t_TAIL_05,
187333 t_TAIL_06,
187334 t_TAIL_07,
187335 t_TAIL_08,
187336 t_TAIL_09,
187337 t_TAIL_10,
187338 BSLS_COMPILERFEATURES_FILLT( 8)>::valueless_by_exception()
187340{
187341 return this->d_type == bsl::variant_npos;
187342}
187343#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 10
187344
187345#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 11
187346template <class t_HEAD, class t_TAIL_01,
187347 class t_TAIL_02,
187348 class t_TAIL_03,
187349 class t_TAIL_04,
187350 class t_TAIL_05,
187351 class t_TAIL_06,
187352 class t_TAIL_07,
187353 class t_TAIL_08,
187354 class t_TAIL_09,
187355 class t_TAIL_10,
187356 class t_TAIL_11>
187357inline
187358bool variant<t_HEAD, t_TAIL_01,
187359 t_TAIL_02,
187360 t_TAIL_03,
187361 t_TAIL_04,
187362 t_TAIL_05,
187363 t_TAIL_06,
187364 t_TAIL_07,
187365 t_TAIL_08,
187366 t_TAIL_09,
187367 t_TAIL_10,
187368 t_TAIL_11,
187369 BSLS_COMPILERFEATURES_FILLT( 7)>::valueless_by_exception()
187371{
187372 return this->d_type == bsl::variant_npos;
187373}
187374#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 11
187375
187376#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 12
187377template <class t_HEAD, class t_TAIL_01,
187378 class t_TAIL_02,
187379 class t_TAIL_03,
187380 class t_TAIL_04,
187381 class t_TAIL_05,
187382 class t_TAIL_06,
187383 class t_TAIL_07,
187384 class t_TAIL_08,
187385 class t_TAIL_09,
187386 class t_TAIL_10,
187387 class t_TAIL_11,
187388 class t_TAIL_12>
187389inline
187390bool variant<t_HEAD, t_TAIL_01,
187391 t_TAIL_02,
187392 t_TAIL_03,
187393 t_TAIL_04,
187394 t_TAIL_05,
187395 t_TAIL_06,
187396 t_TAIL_07,
187397 t_TAIL_08,
187398 t_TAIL_09,
187399 t_TAIL_10,
187400 t_TAIL_11,
187401 t_TAIL_12,
187402 BSLS_COMPILERFEATURES_FILLT( 6)>::valueless_by_exception()
187404{
187405 return this->d_type == bsl::variant_npos;
187406}
187407#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 12
187408
187409#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 13
187410template <class t_HEAD, class t_TAIL_01,
187411 class t_TAIL_02,
187412 class t_TAIL_03,
187413 class t_TAIL_04,
187414 class t_TAIL_05,
187415 class t_TAIL_06,
187416 class t_TAIL_07,
187417 class t_TAIL_08,
187418 class t_TAIL_09,
187419 class t_TAIL_10,
187420 class t_TAIL_11,
187421 class t_TAIL_12,
187422 class t_TAIL_13>
187423inline
187424bool variant<t_HEAD, t_TAIL_01,
187425 t_TAIL_02,
187426 t_TAIL_03,
187427 t_TAIL_04,
187428 t_TAIL_05,
187429 t_TAIL_06,
187430 t_TAIL_07,
187431 t_TAIL_08,
187432 t_TAIL_09,
187433 t_TAIL_10,
187434 t_TAIL_11,
187435 t_TAIL_12,
187436 t_TAIL_13,
187437 BSLS_COMPILERFEATURES_FILLT( 5)>::valueless_by_exception()
187439{
187440 return this->d_type == bsl::variant_npos;
187441}
187442#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 13
187443
187444#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 14
187445template <class t_HEAD, class t_TAIL_01,
187446 class t_TAIL_02,
187447 class t_TAIL_03,
187448 class t_TAIL_04,
187449 class t_TAIL_05,
187450 class t_TAIL_06,
187451 class t_TAIL_07,
187452 class t_TAIL_08,
187453 class t_TAIL_09,
187454 class t_TAIL_10,
187455 class t_TAIL_11,
187456 class t_TAIL_12,
187457 class t_TAIL_13,
187458 class t_TAIL_14>
187459inline
187460bool variant<t_HEAD, t_TAIL_01,
187461 t_TAIL_02,
187462 t_TAIL_03,
187463 t_TAIL_04,
187464 t_TAIL_05,
187465 t_TAIL_06,
187466 t_TAIL_07,
187467 t_TAIL_08,
187468 t_TAIL_09,
187469 t_TAIL_10,
187470 t_TAIL_11,
187471 t_TAIL_12,
187472 t_TAIL_13,
187473 t_TAIL_14,
187474 BSLS_COMPILERFEATURES_FILLT( 4)>::valueless_by_exception()
187476{
187477 return this->d_type == bsl::variant_npos;
187478}
187479#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 14
187480
187481#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 15
187482template <class t_HEAD, class t_TAIL_01,
187483 class t_TAIL_02,
187484 class t_TAIL_03,
187485 class t_TAIL_04,
187486 class t_TAIL_05,
187487 class t_TAIL_06,
187488 class t_TAIL_07,
187489 class t_TAIL_08,
187490 class t_TAIL_09,
187491 class t_TAIL_10,
187492 class t_TAIL_11,
187493 class t_TAIL_12,
187494 class t_TAIL_13,
187495 class t_TAIL_14,
187496 class t_TAIL_15>
187497inline
187498bool variant<t_HEAD, t_TAIL_01,
187499 t_TAIL_02,
187500 t_TAIL_03,
187501 t_TAIL_04,
187502 t_TAIL_05,
187503 t_TAIL_06,
187504 t_TAIL_07,
187505 t_TAIL_08,
187506 t_TAIL_09,
187507 t_TAIL_10,
187508 t_TAIL_11,
187509 t_TAIL_12,
187510 t_TAIL_13,
187511 t_TAIL_14,
187512 t_TAIL_15,
187513 BSLS_COMPILERFEATURES_FILLT( 3)>::valueless_by_exception()
187515{
187516 return this->d_type == bsl::variant_npos;
187517}
187518#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 15
187519
187520#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 16
187521template <class t_HEAD, class t_TAIL_01,
187522 class t_TAIL_02,
187523 class t_TAIL_03,
187524 class t_TAIL_04,
187525 class t_TAIL_05,
187526 class t_TAIL_06,
187527 class t_TAIL_07,
187528 class t_TAIL_08,
187529 class t_TAIL_09,
187530 class t_TAIL_10,
187531 class t_TAIL_11,
187532 class t_TAIL_12,
187533 class t_TAIL_13,
187534 class t_TAIL_14,
187535 class t_TAIL_15,
187536 class t_TAIL_16>
187537inline
187538bool variant<t_HEAD, t_TAIL_01,
187539 t_TAIL_02,
187540 t_TAIL_03,
187541 t_TAIL_04,
187542 t_TAIL_05,
187543 t_TAIL_06,
187544 t_TAIL_07,
187545 t_TAIL_08,
187546 t_TAIL_09,
187547 t_TAIL_10,
187548 t_TAIL_11,
187549 t_TAIL_12,
187550 t_TAIL_13,
187551 t_TAIL_14,
187552 t_TAIL_15,
187553 t_TAIL_16,
187554 BSLS_COMPILERFEATURES_FILLT( 2)>::valueless_by_exception()
187556{
187557 return this->d_type == bsl::variant_npos;
187558}
187559#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 16
187560
187561#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 17
187562template <class t_HEAD, class t_TAIL_01,
187563 class t_TAIL_02,
187564 class t_TAIL_03,
187565 class t_TAIL_04,
187566 class t_TAIL_05,
187567 class t_TAIL_06,
187568 class t_TAIL_07,
187569 class t_TAIL_08,
187570 class t_TAIL_09,
187571 class t_TAIL_10,
187572 class t_TAIL_11,
187573 class t_TAIL_12,
187574 class t_TAIL_13,
187575 class t_TAIL_14,
187576 class t_TAIL_15,
187577 class t_TAIL_16,
187578 class t_TAIL_17>
187579inline
187580bool variant<t_HEAD, t_TAIL_01,
187581 t_TAIL_02,
187582 t_TAIL_03,
187583 t_TAIL_04,
187584 t_TAIL_05,
187585 t_TAIL_06,
187586 t_TAIL_07,
187587 t_TAIL_08,
187588 t_TAIL_09,
187589 t_TAIL_10,
187590 t_TAIL_11,
187591 t_TAIL_12,
187592 t_TAIL_13,
187593 t_TAIL_14,
187594 t_TAIL_15,
187595 t_TAIL_16,
187596 t_TAIL_17,
187597 BSLS_COMPILERFEATURES_FILLT( 1)>::valueless_by_exception()
187599{
187600 return this->d_type == bsl::variant_npos;
187601}
187602#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 17
187603
187604#if BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 18
187605template <class t_HEAD, class t_TAIL_01,
187606 class t_TAIL_02,
187607 class t_TAIL_03,
187608 class t_TAIL_04,
187609 class t_TAIL_05,
187610 class t_TAIL_06,
187611 class t_TAIL_07,
187612 class t_TAIL_08,
187613 class t_TAIL_09,
187614 class t_TAIL_10,
187615 class t_TAIL_11,
187616 class t_TAIL_12,
187617 class t_TAIL_13,
187618 class t_TAIL_14,
187619 class t_TAIL_15,
187620 class t_TAIL_16,
187621 class t_TAIL_17,
187622 class t_TAIL_18>
187623inline
187624bool variant<t_HEAD, t_TAIL_01,
187625 t_TAIL_02,
187626 t_TAIL_03,
187627 t_TAIL_04,
187628 t_TAIL_05,
187629 t_TAIL_06,
187630 t_TAIL_07,
187631 t_TAIL_08,
187632 t_TAIL_09,
187633 t_TAIL_10,
187634 t_TAIL_11,
187635 t_TAIL_12,
187636 t_TAIL_13,
187637 t_TAIL_14,
187638 t_TAIL_15,
187639 t_TAIL_16,
187640 t_TAIL_17,
187641 t_TAIL_18,
187642 BSLS_COMPILERFEATURES_FILLT( 0)>::valueless_by_exception()
187644{
187645 return this->d_type == bsl::variant_npos;
187646}
187647#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_Q >= 18
187648
187649#else
187650// The generated code below is a workaround for the absence of perfect
187651// forwarding in some compilers.
187652template <class t_HEAD, class... t_TAIL>
187653inline
187654void variant<t_HEAD, t_TAIL...>::swap(variant& other)
187655{
187656 if (!valueless_by_exception()) {
187657 if (index() == other.index()) {
187658 BloombergLP::bslstl::Variant_SwapVisitor<variant> swapper(this);
187659 BSLSTL_VARIANT_VISITID(void, swapper, other);
187660 }
187661 else {
187662 variant tmpThis(MoveUtil::move(*this));
187663 this->reset();
187664 if (!other.valueless_by_exception()) {
187665 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
187666 moveConstructor(this);
187667 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
187668 }
187669#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
187670 this->d_type = other.index();
187671#endif
187672 other.reset();
187673 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
187674 moveConstructor(BSLS_UTIL_ADDRESSOF(other));
187675 BSLSTL_VARIANT_VISITID(void, moveConstructor, tmpThis);
187676#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
187677 other.d_type = tmpThis.index();
187678#endif
187679 }
187680 }
187681 else {
187682 if (!other.valueless_by_exception()) {
187683 BloombergLP::bslstl::Variant_MoveConstructVisitor<Variant_Base>
187684 moveConstructor(this);
187685 BSLSTL_VARIANT_VISITID(void, moveConstructor, other);
187686#ifndef BSL_VARIANT_FULL_IMPLEMENTATION
187687 this->d_type = other.index();
187688#endif
187689 other.reset();
187690 }
187691 }
187692}
187693
187694template <class t_HEAD, class... t_TAIL>
187695inline
187696size_t variant<t_HEAD, t_TAIL...>::index() const BSLS_KEYWORD_NOEXCEPT
187697{
187698 return this->d_type;
187699}
187700
187701template <class t_HEAD, class... t_TAIL>
187702inline
187703bool variant<t_HEAD, t_TAIL...>::valueless_by_exception()
187705{
187706 return this->d_type == bsl::variant_npos;
187707}
187708
187709// }}} END GENERATED CODE
187710#endif
187711
187712// FREE FUNCTIONS
187713#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
187714template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
187715typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type& get(
187716 variant<t_HEAD, t_TAIL...>& obj)
187717{
187718 BSLMF_ASSERT((t_INDEX < variant_size<variant<t_HEAD, t_TAIL...> >::value));
187719
187720 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187721 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187723
187724 return ImpUtil::get<Ret, t_INDEX>(obj);
187725}
187726
187727template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
187728const typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&
187729get(const variant<t_HEAD, t_TAIL...>& obj)
187730{
187731 BSLMF_ASSERT((t_INDEX < variant_size<variant<t_HEAD, t_TAIL...> >::value));
187732
187733 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187734 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187736
187737 return ImpUtil::get<const Ret, t_INDEX>(obj);
187738}
187739
187740template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
187741typename variant_alternative<t_INDEX, variant<t_HEAD, t_TAIL...> >::type&& get(
187742 variant<t_HEAD, t_TAIL...>&& obj)
187743{
187744 BSLMF_ASSERT((t_INDEX < variant_size<variant<t_HEAD, t_TAIL...> >::value));
187745
187746 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187747 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187749
187750 return std::move(ImpUtil::get<Ret, t_INDEX>(obj));
187751}
187752
187753template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
187754const typename variant_alternative<t_INDEX,
187755 variant<t_HEAD, t_TAIL...> >::type&&
187756get(const variant<t_HEAD, t_TAIL...>&& obj)
187757{
187758 BSLMF_ASSERT((t_INDEX < variant_size<variant<t_HEAD, t_TAIL...> >::value));
187759
187760 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187761 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187763
187764 return std::move(ImpUtil::get<const Ret, t_INDEX>(obj));
187765}
187766#else // BSL_VARIANT_FULL_IMPLEMENTATION
187767// {{{ BEGIN GENERATED CODE
187768// The generated code below is a workaround for the absence of perfect
187769// forwarding in some compilers.
187770template <size_t t_INDEX, class t_VARIANT>
187771typename Variant_GetIndexReturnType<t_INDEX, t_VARIANT>::type
187772get(t_VARIANT& obj)
187773{
187774 BSLMF_ASSERT((t_INDEX < variant_size<t_VARIANT>::value));
187775
187776 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187778
187779 return ImpUtil::get<Ret, t_INDEX>(obj);
187780}
187781
187782template <size_t t_INDEX, class t_VARIANT>
187783typename Variant_GetIndexReturnType<
187784 t_INDEX,
187785 BloombergLP::bslmf::MovableRef<t_VARIANT> >::type
187786get(BloombergLP::bslmf::MovableRef<t_VARIANT> obj)
187787{
187788 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
187789 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187791
187792 t_VARIANT& lvalue = obj;
187793
187794 return MoveUtil::move(ImpUtil::get<Ret, t_INDEX>(lvalue));
187795}
187796// }}} END GENERATED CODE
187797#endif // BSL_VARIANT_FULL_IMPLEMENTATION
187798
187799#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
187800template <class t_TYPE, class t_HEAD, class... t_TAIL>
187801t_TYPE& get(variant<t_HEAD, t_TAIL...>& obj)
187802{
187803 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
187804 t_TYPE,
187805 variant<t_HEAD, t_TAIL...> >::value));
187806
187807 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187808 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187809
187810 return ImpUtil::get<t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)>(obj);
187811}
187812
187813template <class t_TYPE, class t_HEAD, class... t_TAIL>
187814const t_TYPE& get(const variant<t_HEAD, t_TAIL...>& obj)
187815{
187816 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
187817 t_TYPE,
187818 variant<t_HEAD, t_TAIL...> >::value));
187819
187820 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187821 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187822
187823 return ImpUtil::get<const t_TYPE,
187824 BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)>(obj);
187825}
187826
187827template <class t_TYPE, class t_HEAD, class... t_TAIL>
187828t_TYPE&& get(variant<t_HEAD, t_TAIL...>&& obj)
187829{
187830 static_assert(
187831 BloombergLP::bslstl::
187832 Variant_HasUniqueType<t_TYPE, variant<t_HEAD, t_TAIL...> >::value,
187833 "Type is not unique in variant");
187834
187835 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187836 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187837
187838 return std::move(
187839 ImpUtil::get<t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)>(obj));
187840}
187841
187842template <class t_TYPE, class t_HEAD, class... t_TAIL>
187843const t_TYPE&& get(const variant<t_HEAD, t_TAIL...>&& obj)
187844{
187845 static_assert(
187846 BloombergLP::bslstl::
187847 Variant_HasUniqueType<t_TYPE, variant<t_HEAD, t_TAIL...> >::value,
187848 "Type is not unique in variant");
187849
187850 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187851 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187852
187853 return std::move(
187854 ImpUtil::get<const t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)>(
187855 obj));
187856}
187857#else // BSL_VARIANT_FULL_IMPLEMENTATION
187858// {{{ BEGIN GENERATED CODE
187859// The generated code below is a workaround for the absence of perfect
187860// forwarding in some compilers.
187861template <class t_TYPE, class t_VARIANT>
187862typename Variant_GetTypeReturnType<t_TYPE&, t_VARIANT>::type
187863get(t_VARIANT& obj)
187864{
187865 BSLMF_ASSERT((
187866 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, t_VARIANT>::value));
187867
187868 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187869
187870 return ImpUtil::get<t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)>(
187871 obj);
187872}
187873
187874template <class t_TYPE, class t_VARIANT>
187875typename Variant_GetTypeReturnType<const t_TYPE&, t_VARIANT>::type
187876get(const t_VARIANT& obj)
187877{
187878 BSLMF_ASSERT((
187879 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, t_VARIANT>::value));
187880
187881 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187882
187883 return ImpUtil::get<const t_TYPE,
187884 BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)>(obj);
187885}
187886
187887template <class t_TYPE, class t_VARIANT>
187888typename Variant_GetTypeReturnType<BloombergLP::bslmf::MovableRef<t_TYPE>,
187889 t_VARIANT>::type
187890get(BloombergLP::bslmf::MovableRef<t_VARIANT> obj)
187891{
187892 BSLMF_ASSERT((
187893 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, t_VARIANT>::value));
187894
187895 typedef BloombergLP::bslmf::MovableRefUtil MoveUtil;
187896 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187897
187898 t_VARIANT& lvalue = obj;
187899 return MoveUtil::move(
187900 ImpUtil::get<t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)>(
187901 lvalue));
187902}
187903// }}} END GENERATED CODE
187904#endif // BSL_VARIANT_FULL_IMPLEMENTATION
187905
187906#ifdef BSL_VARIANT_FULL_IMPLEMENTATION
187907template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
187908typename add_pointer<
187909 typename variant_alternative<t_INDEX,
187910 variant<t_HEAD, t_TAIL...> >::type>::type
187911get_if(variant<t_HEAD, t_TAIL...> *ptr) BSLS_KEYWORD_NOEXCEPT
187912{
187913 BSLMF_ASSERT((t_INDEX < variant_size<variant<t_HEAD, t_TAIL...> >::value));
187914
187915 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187916 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187918
187919 if (ptr == 0 || ptr->index() != t_INDEX) {
187920 return NULL; // RETURN
187921 }
187922
187923 return BSLS_UTIL_ADDRESSOF((ImpUtil::get<Ret, t_INDEX>(*ptr)));
187924}
187925
187926template <size_t t_INDEX, class t_HEAD, class... t_TAIL>
187927typename add_pointer<const typename variant_alternative<
187928 t_INDEX,
187929 variant<t_HEAD, t_TAIL...> >::type>::type
187930get_if(const variant<t_HEAD, t_TAIL...> *ptr) BSLS_KEYWORD_NOEXCEPT
187931{
187932 BSLMF_ASSERT((t_INDEX < variant_size<variant<t_HEAD, t_TAIL...> >::value));
187933
187934 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187935 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187937
187938 if (ptr == 0 || ptr->index() != t_INDEX) {
187939 return NULL; // RETURN
187940 }
187941 return BSLS_UTIL_ADDRESSOF((ImpUtil::get<const Ret, t_INDEX>(*ptr)));
187942}
187943
187944template <class t_TYPE, class t_HEAD, class... t_TAIL>
187945typename add_pointer<t_TYPE>::type get_if(
187946 variant<t_HEAD, t_TAIL...> *ptr) BSLS_KEYWORD_NOEXCEPT
187947{
187948 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
187949 t_TYPE,
187950 variant<t_HEAD, t_TAIL...> >::value));
187951
187952 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187953 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187954
187955 if (ptr == 0 || ptr->index() != BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)) {
187956 return NULL; // RETURN
187957 }
187958 return BSLS_UTIL_ADDRESSOF((
187959 ImpUtil::get<t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)>(*ptr)));
187960}
187961
187962template <class t_TYPE, class t_HEAD, class... t_TAIL>
187963typename add_pointer<const t_TYPE>::type get_if(
187964 const variant<t_HEAD, t_TAIL...> *ptr) BSLS_KEYWORD_NOEXCEPT
187965{
187966 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
187967 t_TYPE,
187968 variant<t_HEAD, t_TAIL...> >::value));
187969
187970 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
187971 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187972
187973 if (ptr == 0 || ptr->index() != BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)) {
187974 return NULL; // RETURN
187975 }
187976 return BSLS_UTIL_ADDRESSOF(
187977 (ImpUtil::get<const t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant)>(
187978 *ptr)));
187979}
187980#else
187981// {{{ BEGIN GENERATED CODE
187982// The generated code below is a workaround for the absence of perfect
187983// forwarding in some compilers.
187984template <size_t t_INDEX, class t_VARIANT>
187985typename Variant_GetIndexReturnType<t_INDEX, t_VARIANT>::pointer
187986get_if(t_VARIANT *ptr) BSLS_KEYWORD_NOEXCEPT
187987{
187988 BSLMF_ASSERT((t_INDEX < variant_size<t_VARIANT>::value));
187989
187990 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
187992
187993 if (ptr == 0 || ptr->index() != t_INDEX) {
187994 return NULL;
187995 }
187996
187997 return BSLS_UTIL_ADDRESSOF((ImpUtil::get<Ret, t_INDEX>(*ptr)));
187998}
187999
188000template <class t_TYPE, class t_VARIANT>
188001typename Variant_GetTypeReturnType<t_TYPE, t_VARIANT>::pointer
188002get_if(t_VARIANT *ptr) BSLS_KEYWORD_NOEXCEPT
188003{
188004 BSLMF_ASSERT((
188005 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, t_VARIANT>::value));
188006
188007 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
188008
188009 if (ptr == 0 ||
188010 ptr->index() != BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)) {
188011 return NULL;
188012 }
188013 return BSLS_UTIL_ADDRESSOF(
188014 (ImpUtil::get<t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)>(
188015 *ptr)));
188016}
188017
188018template <class t_TYPE, class t_VARIANT>
188019typename Variant_GetTypeReturnType<const t_TYPE, t_VARIANT>::pointer
188020get_if(const t_VARIANT *ptr) BSLS_KEYWORD_NOEXCEPT
188021{
188022 BSLMF_ASSERT((
188023 BloombergLP::bslstl::Variant_HasUniqueType<t_TYPE, t_VARIANT>::value));
188024
188025 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
188026
188027 if (ptr == 0 ||
188028 ptr->index() != BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)) {
188029 return NULL;
188030 }
188031 return BSLS_UTIL_ADDRESSOF((
188032 ImpUtil::get<const t_TYPE, BSLSTL_VARIANT_INDEX_OF(t_TYPE, t_VARIANT)>(
188033 *ptr)));
188034}
188035// }}} END GENERATED CODE
188036#endif // BSL_VARIANT_FULL_IMPLEMENTATION
188037
188038#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
188039// {{{ BEGIN GENERATED CODE
188040// Command line: sim_cpp11_features.pl bslstl_variant.h
188041#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT
188042#define BSLSTL_VARIANT_VARIADIC_LIMIT 18
188043#endif
188044#ifndef BSLSTL_VARIANT_VARIADIC_LIMIT_U
188045#define BSLSTL_VARIANT_VARIADIC_LIMIT_U BSLSTL_VARIANT_VARIADIC_LIMIT
188046#endif
188047#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
188048template <class t_HASHALG, class t_HEAD>
188049void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD>& input)
188050{
188051 if (!input.valueless_by_exception()) {
188052 hashAppend(hashAlg, input.index());
188053 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188054 hashAlg);
188055 visit(hashVisitor, input);
188056 }
188057 else {
188058 hashAppend(hashAlg, false);
188059 }
188060}
188061#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
188062
188063#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
188064template <class t_HASHALG, class t_HEAD, class t_TAIL_01>
188065void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01>& input)
188066{
188067 if (!input.valueless_by_exception()) {
188068 hashAppend(hashAlg, input.index());
188069 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188070 hashAlg);
188071 visit(hashVisitor, input);
188072 }
188073 else {
188074 hashAppend(hashAlg, false);
188075 }
188076}
188077#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
188078
188079#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
188080template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188081 class t_TAIL_02>
188082void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188083 t_TAIL_02>& input)
188084{
188085 if (!input.valueless_by_exception()) {
188086 hashAppend(hashAlg, input.index());
188087 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188088 hashAlg);
188089 visit(hashVisitor, input);
188090 }
188091 else {
188092 hashAppend(hashAlg, false);
188093 }
188094}
188095#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
188096
188097#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
188098template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188099 class t_TAIL_02,
188100 class t_TAIL_03>
188101void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188102 t_TAIL_02,
188103 t_TAIL_03>& input)
188104{
188105 if (!input.valueless_by_exception()) {
188106 hashAppend(hashAlg, input.index());
188107 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188108 hashAlg);
188109 visit(hashVisitor, input);
188110 }
188111 else {
188112 hashAppend(hashAlg, false);
188113 }
188114}
188115#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
188116
188117#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
188118template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188119 class t_TAIL_02,
188120 class t_TAIL_03,
188121 class t_TAIL_04>
188122void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188123 t_TAIL_02,
188124 t_TAIL_03,
188125 t_TAIL_04>& input)
188126{
188127 if (!input.valueless_by_exception()) {
188128 hashAppend(hashAlg, input.index());
188129 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188130 hashAlg);
188131 visit(hashVisitor, input);
188132 }
188133 else {
188134 hashAppend(hashAlg, false);
188135 }
188136}
188137#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
188138
188139#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
188140template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188141 class t_TAIL_02,
188142 class t_TAIL_03,
188143 class t_TAIL_04,
188144 class t_TAIL_05>
188145void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188146 t_TAIL_02,
188147 t_TAIL_03,
188148 t_TAIL_04,
188149 t_TAIL_05>& input)
188150{
188151 if (!input.valueless_by_exception()) {
188152 hashAppend(hashAlg, input.index());
188153 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188154 hashAlg);
188155 visit(hashVisitor, input);
188156 }
188157 else {
188158 hashAppend(hashAlg, false);
188159 }
188160}
188161#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
188162
188163#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
188164template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188165 class t_TAIL_02,
188166 class t_TAIL_03,
188167 class t_TAIL_04,
188168 class t_TAIL_05,
188169 class t_TAIL_06>
188170void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188171 t_TAIL_02,
188172 t_TAIL_03,
188173 t_TAIL_04,
188174 t_TAIL_05,
188175 t_TAIL_06>& input)
188176{
188177 if (!input.valueless_by_exception()) {
188178 hashAppend(hashAlg, input.index());
188179 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188180 hashAlg);
188181 visit(hashVisitor, input);
188182 }
188183 else {
188184 hashAppend(hashAlg, false);
188185 }
188186}
188187#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
188188
188189#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
188190template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188191 class t_TAIL_02,
188192 class t_TAIL_03,
188193 class t_TAIL_04,
188194 class t_TAIL_05,
188195 class t_TAIL_06,
188196 class t_TAIL_07>
188197void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188198 t_TAIL_02,
188199 t_TAIL_03,
188200 t_TAIL_04,
188201 t_TAIL_05,
188202 t_TAIL_06,
188203 t_TAIL_07>& input)
188204{
188205 if (!input.valueless_by_exception()) {
188206 hashAppend(hashAlg, input.index());
188207 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188208 hashAlg);
188209 visit(hashVisitor, input);
188210 }
188211 else {
188212 hashAppend(hashAlg, false);
188213 }
188214}
188215#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
188216
188217#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
188218template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188219 class t_TAIL_02,
188220 class t_TAIL_03,
188221 class t_TAIL_04,
188222 class t_TAIL_05,
188223 class t_TAIL_06,
188224 class t_TAIL_07,
188225 class t_TAIL_08>
188226void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188227 t_TAIL_02,
188228 t_TAIL_03,
188229 t_TAIL_04,
188230 t_TAIL_05,
188231 t_TAIL_06,
188232 t_TAIL_07,
188233 t_TAIL_08>& input)
188234{
188235 if (!input.valueless_by_exception()) {
188236 hashAppend(hashAlg, input.index());
188237 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188238 hashAlg);
188239 visit(hashVisitor, input);
188240 }
188241 else {
188242 hashAppend(hashAlg, false);
188243 }
188244}
188245#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
188246
188247#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
188248template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188249 class t_TAIL_02,
188250 class t_TAIL_03,
188251 class t_TAIL_04,
188252 class t_TAIL_05,
188253 class t_TAIL_06,
188254 class t_TAIL_07,
188255 class t_TAIL_08,
188256 class t_TAIL_09>
188257void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188258 t_TAIL_02,
188259 t_TAIL_03,
188260 t_TAIL_04,
188261 t_TAIL_05,
188262 t_TAIL_06,
188263 t_TAIL_07,
188264 t_TAIL_08,
188265 t_TAIL_09>& input)
188266{
188267 if (!input.valueless_by_exception()) {
188268 hashAppend(hashAlg, input.index());
188269 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188270 hashAlg);
188271 visit(hashVisitor, input);
188272 }
188273 else {
188274 hashAppend(hashAlg, false);
188275 }
188276}
188277#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
188278
188279#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
188280template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188281 class t_TAIL_02,
188282 class t_TAIL_03,
188283 class t_TAIL_04,
188284 class t_TAIL_05,
188285 class t_TAIL_06,
188286 class t_TAIL_07,
188287 class t_TAIL_08,
188288 class t_TAIL_09,
188289 class t_TAIL_10>
188290void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188291 t_TAIL_02,
188292 t_TAIL_03,
188293 t_TAIL_04,
188294 t_TAIL_05,
188295 t_TAIL_06,
188296 t_TAIL_07,
188297 t_TAIL_08,
188298 t_TAIL_09,
188299 t_TAIL_10>& input)
188300{
188301 if (!input.valueless_by_exception()) {
188302 hashAppend(hashAlg, input.index());
188303 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188304 hashAlg);
188305 visit(hashVisitor, input);
188306 }
188307 else {
188308 hashAppend(hashAlg, false);
188309 }
188310}
188311#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
188312
188313#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
188314template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188315 class t_TAIL_02,
188316 class t_TAIL_03,
188317 class t_TAIL_04,
188318 class t_TAIL_05,
188319 class t_TAIL_06,
188320 class t_TAIL_07,
188321 class t_TAIL_08,
188322 class t_TAIL_09,
188323 class t_TAIL_10,
188324 class t_TAIL_11>
188325void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188326 t_TAIL_02,
188327 t_TAIL_03,
188328 t_TAIL_04,
188329 t_TAIL_05,
188330 t_TAIL_06,
188331 t_TAIL_07,
188332 t_TAIL_08,
188333 t_TAIL_09,
188334 t_TAIL_10,
188335 t_TAIL_11>& input)
188336{
188337 if (!input.valueless_by_exception()) {
188338 hashAppend(hashAlg, input.index());
188339 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188340 hashAlg);
188341 visit(hashVisitor, input);
188342 }
188343 else {
188344 hashAppend(hashAlg, false);
188345 }
188346}
188347#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
188348
188349#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
188350template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188351 class t_TAIL_02,
188352 class t_TAIL_03,
188353 class t_TAIL_04,
188354 class t_TAIL_05,
188355 class t_TAIL_06,
188356 class t_TAIL_07,
188357 class t_TAIL_08,
188358 class t_TAIL_09,
188359 class t_TAIL_10,
188360 class t_TAIL_11,
188361 class t_TAIL_12>
188362void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188363 t_TAIL_02,
188364 t_TAIL_03,
188365 t_TAIL_04,
188366 t_TAIL_05,
188367 t_TAIL_06,
188368 t_TAIL_07,
188369 t_TAIL_08,
188370 t_TAIL_09,
188371 t_TAIL_10,
188372 t_TAIL_11,
188373 t_TAIL_12>& input)
188374{
188375 if (!input.valueless_by_exception()) {
188376 hashAppend(hashAlg, input.index());
188377 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188378 hashAlg);
188379 visit(hashVisitor, input);
188380 }
188381 else {
188382 hashAppend(hashAlg, false);
188383 }
188384}
188385#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
188386
188387#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
188388template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188389 class t_TAIL_02,
188390 class t_TAIL_03,
188391 class t_TAIL_04,
188392 class t_TAIL_05,
188393 class t_TAIL_06,
188394 class t_TAIL_07,
188395 class t_TAIL_08,
188396 class t_TAIL_09,
188397 class t_TAIL_10,
188398 class t_TAIL_11,
188399 class t_TAIL_12,
188400 class t_TAIL_13>
188401void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188402 t_TAIL_02,
188403 t_TAIL_03,
188404 t_TAIL_04,
188405 t_TAIL_05,
188406 t_TAIL_06,
188407 t_TAIL_07,
188408 t_TAIL_08,
188409 t_TAIL_09,
188410 t_TAIL_10,
188411 t_TAIL_11,
188412 t_TAIL_12,
188413 t_TAIL_13>& input)
188414{
188415 if (!input.valueless_by_exception()) {
188416 hashAppend(hashAlg, input.index());
188417 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188418 hashAlg);
188419 visit(hashVisitor, input);
188420 }
188421 else {
188422 hashAppend(hashAlg, false);
188423 }
188424}
188425#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
188426
188427#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
188428template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188429 class t_TAIL_02,
188430 class t_TAIL_03,
188431 class t_TAIL_04,
188432 class t_TAIL_05,
188433 class t_TAIL_06,
188434 class t_TAIL_07,
188435 class t_TAIL_08,
188436 class t_TAIL_09,
188437 class t_TAIL_10,
188438 class t_TAIL_11,
188439 class t_TAIL_12,
188440 class t_TAIL_13,
188441 class t_TAIL_14>
188442void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188443 t_TAIL_02,
188444 t_TAIL_03,
188445 t_TAIL_04,
188446 t_TAIL_05,
188447 t_TAIL_06,
188448 t_TAIL_07,
188449 t_TAIL_08,
188450 t_TAIL_09,
188451 t_TAIL_10,
188452 t_TAIL_11,
188453 t_TAIL_12,
188454 t_TAIL_13,
188455 t_TAIL_14>& input)
188456{
188457 if (!input.valueless_by_exception()) {
188458 hashAppend(hashAlg, input.index());
188459 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188460 hashAlg);
188461 visit(hashVisitor, input);
188462 }
188463 else {
188464 hashAppend(hashAlg, false);
188465 }
188466}
188467#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
188468
188469#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
188470template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188471 class t_TAIL_02,
188472 class t_TAIL_03,
188473 class t_TAIL_04,
188474 class t_TAIL_05,
188475 class t_TAIL_06,
188476 class t_TAIL_07,
188477 class t_TAIL_08,
188478 class t_TAIL_09,
188479 class t_TAIL_10,
188480 class t_TAIL_11,
188481 class t_TAIL_12,
188482 class t_TAIL_13,
188483 class t_TAIL_14,
188484 class t_TAIL_15>
188485void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188486 t_TAIL_02,
188487 t_TAIL_03,
188488 t_TAIL_04,
188489 t_TAIL_05,
188490 t_TAIL_06,
188491 t_TAIL_07,
188492 t_TAIL_08,
188493 t_TAIL_09,
188494 t_TAIL_10,
188495 t_TAIL_11,
188496 t_TAIL_12,
188497 t_TAIL_13,
188498 t_TAIL_14,
188499 t_TAIL_15>& input)
188500{
188501 if (!input.valueless_by_exception()) {
188502 hashAppend(hashAlg, input.index());
188503 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188504 hashAlg);
188505 visit(hashVisitor, input);
188506 }
188507 else {
188508 hashAppend(hashAlg, false);
188509 }
188510}
188511#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
188512
188513#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
188514template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188515 class t_TAIL_02,
188516 class t_TAIL_03,
188517 class t_TAIL_04,
188518 class t_TAIL_05,
188519 class t_TAIL_06,
188520 class t_TAIL_07,
188521 class t_TAIL_08,
188522 class t_TAIL_09,
188523 class t_TAIL_10,
188524 class t_TAIL_11,
188525 class t_TAIL_12,
188526 class t_TAIL_13,
188527 class t_TAIL_14,
188528 class t_TAIL_15,
188529 class t_TAIL_16>
188530void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188531 t_TAIL_02,
188532 t_TAIL_03,
188533 t_TAIL_04,
188534 t_TAIL_05,
188535 t_TAIL_06,
188536 t_TAIL_07,
188537 t_TAIL_08,
188538 t_TAIL_09,
188539 t_TAIL_10,
188540 t_TAIL_11,
188541 t_TAIL_12,
188542 t_TAIL_13,
188543 t_TAIL_14,
188544 t_TAIL_15,
188545 t_TAIL_16>& input)
188546{
188547 if (!input.valueless_by_exception()) {
188548 hashAppend(hashAlg, input.index());
188549 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188550 hashAlg);
188551 visit(hashVisitor, input);
188552 }
188553 else {
188554 hashAppend(hashAlg, false);
188555 }
188556}
188557#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
188558
188559#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
188560template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188561 class t_TAIL_02,
188562 class t_TAIL_03,
188563 class t_TAIL_04,
188564 class t_TAIL_05,
188565 class t_TAIL_06,
188566 class t_TAIL_07,
188567 class t_TAIL_08,
188568 class t_TAIL_09,
188569 class t_TAIL_10,
188570 class t_TAIL_11,
188571 class t_TAIL_12,
188572 class t_TAIL_13,
188573 class t_TAIL_14,
188574 class t_TAIL_15,
188575 class t_TAIL_16,
188576 class t_TAIL_17>
188577void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188578 t_TAIL_02,
188579 t_TAIL_03,
188580 t_TAIL_04,
188581 t_TAIL_05,
188582 t_TAIL_06,
188583 t_TAIL_07,
188584 t_TAIL_08,
188585 t_TAIL_09,
188586 t_TAIL_10,
188587 t_TAIL_11,
188588 t_TAIL_12,
188589 t_TAIL_13,
188590 t_TAIL_14,
188591 t_TAIL_15,
188592 t_TAIL_16,
188593 t_TAIL_17>& input)
188594{
188595 if (!input.valueless_by_exception()) {
188596 hashAppend(hashAlg, input.index());
188597 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188598 hashAlg);
188599 visit(hashVisitor, input);
188600 }
188601 else {
188602 hashAppend(hashAlg, false);
188603 }
188604}
188605#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
188606
188607#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
188608template <class t_HASHALG, class t_HEAD, class t_TAIL_01,
188609 class t_TAIL_02,
188610 class t_TAIL_03,
188611 class t_TAIL_04,
188612 class t_TAIL_05,
188613 class t_TAIL_06,
188614 class t_TAIL_07,
188615 class t_TAIL_08,
188616 class t_TAIL_09,
188617 class t_TAIL_10,
188618 class t_TAIL_11,
188619 class t_TAIL_12,
188620 class t_TAIL_13,
188621 class t_TAIL_14,
188622 class t_TAIL_15,
188623 class t_TAIL_16,
188624 class t_TAIL_17,
188625 class t_TAIL_18>
188626void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL_01,
188627 t_TAIL_02,
188628 t_TAIL_03,
188629 t_TAIL_04,
188630 t_TAIL_05,
188631 t_TAIL_06,
188632 t_TAIL_07,
188633 t_TAIL_08,
188634 t_TAIL_09,
188635 t_TAIL_10,
188636 t_TAIL_11,
188637 t_TAIL_12,
188638 t_TAIL_13,
188639 t_TAIL_14,
188640 t_TAIL_15,
188641 t_TAIL_16,
188642 t_TAIL_17,
188643 t_TAIL_18>& input)
188644{
188645 if (!input.valueless_by_exception()) {
188646 hashAppend(hashAlg, input.index());
188647 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
188648 hashAlg);
188649 visit(hashVisitor, input);
188650 }
188651 else {
188652 hashAppend(hashAlg, false);
188653 }
188654}
188655#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
188656
188657
188658#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
188659template <class t_TYPE, class t_HEAD>
188660bool holds_alternative(
188661 const variant<t_HEAD>& obj) BSLS_KEYWORD_NOEXCEPT
188662{
188663 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188664 t_TYPE,
188665 variant<t_HEAD> >::value));
188666 typedef typename bsl::variant<t_HEAD> Variant;
188667 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188668}
188669#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
188670
188671#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
188672template <class t_TYPE, class t_HEAD, class t_TAIL_01>
188673bool holds_alternative(
188674 const variant<t_HEAD, t_TAIL_01>& obj) BSLS_KEYWORD_NOEXCEPT
188675{
188676 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188677 t_TYPE,
188678 variant<t_HEAD, t_TAIL_01> >::value));
188679 typedef typename bsl::variant<t_HEAD, t_TAIL_01> Variant;
188680 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188681}
188682#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
188683
188684#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
188685template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188686 class t_TAIL_02>
188687bool holds_alternative(
188688 const variant<t_HEAD, t_TAIL_01,
188689 t_TAIL_02>& obj) BSLS_KEYWORD_NOEXCEPT
188690{
188691 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188692 t_TYPE,
188693 variant<t_HEAD, t_TAIL_01,
188694 t_TAIL_02> >::value));
188695 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188696 t_TAIL_02> Variant;
188697 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188698}
188699#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
188700
188701#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
188702template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188703 class t_TAIL_02,
188704 class t_TAIL_03>
188705bool holds_alternative(
188706 const variant<t_HEAD, t_TAIL_01,
188707 t_TAIL_02,
188708 t_TAIL_03>& obj) BSLS_KEYWORD_NOEXCEPT
188709{
188710 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188711 t_TYPE,
188712 variant<t_HEAD, t_TAIL_01,
188713 t_TAIL_02,
188714 t_TAIL_03> >::value));
188715 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188716 t_TAIL_02,
188717 t_TAIL_03> Variant;
188718 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188719}
188720#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
188721
188722#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
188723template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188724 class t_TAIL_02,
188725 class t_TAIL_03,
188726 class t_TAIL_04>
188727bool holds_alternative(
188728 const variant<t_HEAD, t_TAIL_01,
188729 t_TAIL_02,
188730 t_TAIL_03,
188731 t_TAIL_04>& obj) BSLS_KEYWORD_NOEXCEPT
188732{
188733 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188734 t_TYPE,
188735 variant<t_HEAD, t_TAIL_01,
188736 t_TAIL_02,
188737 t_TAIL_03,
188738 t_TAIL_04> >::value));
188739 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188740 t_TAIL_02,
188741 t_TAIL_03,
188742 t_TAIL_04> Variant;
188743 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188744}
188745#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
188746
188747#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
188748template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188749 class t_TAIL_02,
188750 class t_TAIL_03,
188751 class t_TAIL_04,
188752 class t_TAIL_05>
188753bool holds_alternative(
188754 const variant<t_HEAD, t_TAIL_01,
188755 t_TAIL_02,
188756 t_TAIL_03,
188757 t_TAIL_04,
188758 t_TAIL_05>& obj) BSLS_KEYWORD_NOEXCEPT
188759{
188760 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188761 t_TYPE,
188762 variant<t_HEAD, t_TAIL_01,
188763 t_TAIL_02,
188764 t_TAIL_03,
188765 t_TAIL_04,
188766 t_TAIL_05> >::value));
188767 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188768 t_TAIL_02,
188769 t_TAIL_03,
188770 t_TAIL_04,
188771 t_TAIL_05> Variant;
188772 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188773}
188774#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
188775
188776#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
188777template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188778 class t_TAIL_02,
188779 class t_TAIL_03,
188780 class t_TAIL_04,
188781 class t_TAIL_05,
188782 class t_TAIL_06>
188783bool holds_alternative(
188784 const variant<t_HEAD, t_TAIL_01,
188785 t_TAIL_02,
188786 t_TAIL_03,
188787 t_TAIL_04,
188788 t_TAIL_05,
188789 t_TAIL_06>& obj) BSLS_KEYWORD_NOEXCEPT
188790{
188791 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188792 t_TYPE,
188793 variant<t_HEAD, t_TAIL_01,
188794 t_TAIL_02,
188795 t_TAIL_03,
188796 t_TAIL_04,
188797 t_TAIL_05,
188798 t_TAIL_06> >::value));
188799 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188800 t_TAIL_02,
188801 t_TAIL_03,
188802 t_TAIL_04,
188803 t_TAIL_05,
188804 t_TAIL_06> Variant;
188805 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188806}
188807#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
188808
188809#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
188810template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188811 class t_TAIL_02,
188812 class t_TAIL_03,
188813 class t_TAIL_04,
188814 class t_TAIL_05,
188815 class t_TAIL_06,
188816 class t_TAIL_07>
188817bool holds_alternative(
188818 const variant<t_HEAD, t_TAIL_01,
188819 t_TAIL_02,
188820 t_TAIL_03,
188821 t_TAIL_04,
188822 t_TAIL_05,
188823 t_TAIL_06,
188824 t_TAIL_07>& obj) BSLS_KEYWORD_NOEXCEPT
188825{
188826 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188827 t_TYPE,
188828 variant<t_HEAD, t_TAIL_01,
188829 t_TAIL_02,
188830 t_TAIL_03,
188831 t_TAIL_04,
188832 t_TAIL_05,
188833 t_TAIL_06,
188834 t_TAIL_07> >::value));
188835 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188836 t_TAIL_02,
188837 t_TAIL_03,
188838 t_TAIL_04,
188839 t_TAIL_05,
188840 t_TAIL_06,
188841 t_TAIL_07> Variant;
188842 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188843}
188844#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
188845
188846#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
188847template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188848 class t_TAIL_02,
188849 class t_TAIL_03,
188850 class t_TAIL_04,
188851 class t_TAIL_05,
188852 class t_TAIL_06,
188853 class t_TAIL_07,
188854 class t_TAIL_08>
188855bool holds_alternative(
188856 const variant<t_HEAD, t_TAIL_01,
188857 t_TAIL_02,
188858 t_TAIL_03,
188859 t_TAIL_04,
188860 t_TAIL_05,
188861 t_TAIL_06,
188862 t_TAIL_07,
188863 t_TAIL_08>& obj) BSLS_KEYWORD_NOEXCEPT
188864{
188865 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188866 t_TYPE,
188867 variant<t_HEAD, t_TAIL_01,
188868 t_TAIL_02,
188869 t_TAIL_03,
188870 t_TAIL_04,
188871 t_TAIL_05,
188872 t_TAIL_06,
188873 t_TAIL_07,
188874 t_TAIL_08> >::value));
188875 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188876 t_TAIL_02,
188877 t_TAIL_03,
188878 t_TAIL_04,
188879 t_TAIL_05,
188880 t_TAIL_06,
188881 t_TAIL_07,
188882 t_TAIL_08> Variant;
188883 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188884}
188885#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
188886
188887#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
188888template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188889 class t_TAIL_02,
188890 class t_TAIL_03,
188891 class t_TAIL_04,
188892 class t_TAIL_05,
188893 class t_TAIL_06,
188894 class t_TAIL_07,
188895 class t_TAIL_08,
188896 class t_TAIL_09>
188897bool holds_alternative(
188898 const variant<t_HEAD, t_TAIL_01,
188899 t_TAIL_02,
188900 t_TAIL_03,
188901 t_TAIL_04,
188902 t_TAIL_05,
188903 t_TAIL_06,
188904 t_TAIL_07,
188905 t_TAIL_08,
188906 t_TAIL_09>& obj) BSLS_KEYWORD_NOEXCEPT
188907{
188908 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188909 t_TYPE,
188910 variant<t_HEAD, t_TAIL_01,
188911 t_TAIL_02,
188912 t_TAIL_03,
188913 t_TAIL_04,
188914 t_TAIL_05,
188915 t_TAIL_06,
188916 t_TAIL_07,
188917 t_TAIL_08,
188918 t_TAIL_09> >::value));
188919 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188920 t_TAIL_02,
188921 t_TAIL_03,
188922 t_TAIL_04,
188923 t_TAIL_05,
188924 t_TAIL_06,
188925 t_TAIL_07,
188926 t_TAIL_08,
188927 t_TAIL_09> Variant;
188928 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188929}
188930#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
188931
188932#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
188933template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188934 class t_TAIL_02,
188935 class t_TAIL_03,
188936 class t_TAIL_04,
188937 class t_TAIL_05,
188938 class t_TAIL_06,
188939 class t_TAIL_07,
188940 class t_TAIL_08,
188941 class t_TAIL_09,
188942 class t_TAIL_10>
188943bool holds_alternative(
188944 const variant<t_HEAD, t_TAIL_01,
188945 t_TAIL_02,
188946 t_TAIL_03,
188947 t_TAIL_04,
188948 t_TAIL_05,
188949 t_TAIL_06,
188950 t_TAIL_07,
188951 t_TAIL_08,
188952 t_TAIL_09,
188953 t_TAIL_10>& obj) BSLS_KEYWORD_NOEXCEPT
188954{
188955 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
188956 t_TYPE,
188957 variant<t_HEAD, t_TAIL_01,
188958 t_TAIL_02,
188959 t_TAIL_03,
188960 t_TAIL_04,
188961 t_TAIL_05,
188962 t_TAIL_06,
188963 t_TAIL_07,
188964 t_TAIL_08,
188965 t_TAIL_09,
188966 t_TAIL_10> >::value));
188967 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
188968 t_TAIL_02,
188969 t_TAIL_03,
188970 t_TAIL_04,
188971 t_TAIL_05,
188972 t_TAIL_06,
188973 t_TAIL_07,
188974 t_TAIL_08,
188975 t_TAIL_09,
188976 t_TAIL_10> Variant;
188977 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
188978}
188979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
188980
188981#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
188982template <class t_TYPE, class t_HEAD, class t_TAIL_01,
188983 class t_TAIL_02,
188984 class t_TAIL_03,
188985 class t_TAIL_04,
188986 class t_TAIL_05,
188987 class t_TAIL_06,
188988 class t_TAIL_07,
188989 class t_TAIL_08,
188990 class t_TAIL_09,
188991 class t_TAIL_10,
188992 class t_TAIL_11>
188993bool holds_alternative(
188994 const variant<t_HEAD, t_TAIL_01,
188995 t_TAIL_02,
188996 t_TAIL_03,
188997 t_TAIL_04,
188998 t_TAIL_05,
188999 t_TAIL_06,
189000 t_TAIL_07,
189001 t_TAIL_08,
189002 t_TAIL_09,
189003 t_TAIL_10,
189004 t_TAIL_11>& obj) BSLS_KEYWORD_NOEXCEPT
189005{
189006 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189007 t_TYPE,
189008 variant<t_HEAD, t_TAIL_01,
189009 t_TAIL_02,
189010 t_TAIL_03,
189011 t_TAIL_04,
189012 t_TAIL_05,
189013 t_TAIL_06,
189014 t_TAIL_07,
189015 t_TAIL_08,
189016 t_TAIL_09,
189017 t_TAIL_10,
189018 t_TAIL_11> >::value));
189019 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189020 t_TAIL_02,
189021 t_TAIL_03,
189022 t_TAIL_04,
189023 t_TAIL_05,
189024 t_TAIL_06,
189025 t_TAIL_07,
189026 t_TAIL_08,
189027 t_TAIL_09,
189028 t_TAIL_10,
189029 t_TAIL_11> Variant;
189030 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189031}
189032#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
189033
189034#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
189035template <class t_TYPE, class t_HEAD, class t_TAIL_01,
189036 class t_TAIL_02,
189037 class t_TAIL_03,
189038 class t_TAIL_04,
189039 class t_TAIL_05,
189040 class t_TAIL_06,
189041 class t_TAIL_07,
189042 class t_TAIL_08,
189043 class t_TAIL_09,
189044 class t_TAIL_10,
189045 class t_TAIL_11,
189046 class t_TAIL_12>
189047bool holds_alternative(
189048 const variant<t_HEAD, t_TAIL_01,
189049 t_TAIL_02,
189050 t_TAIL_03,
189051 t_TAIL_04,
189052 t_TAIL_05,
189053 t_TAIL_06,
189054 t_TAIL_07,
189055 t_TAIL_08,
189056 t_TAIL_09,
189057 t_TAIL_10,
189058 t_TAIL_11,
189059 t_TAIL_12>& obj) BSLS_KEYWORD_NOEXCEPT
189060{
189061 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189062 t_TYPE,
189063 variant<t_HEAD, t_TAIL_01,
189064 t_TAIL_02,
189065 t_TAIL_03,
189066 t_TAIL_04,
189067 t_TAIL_05,
189068 t_TAIL_06,
189069 t_TAIL_07,
189070 t_TAIL_08,
189071 t_TAIL_09,
189072 t_TAIL_10,
189073 t_TAIL_11,
189074 t_TAIL_12> >::value));
189075 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189076 t_TAIL_02,
189077 t_TAIL_03,
189078 t_TAIL_04,
189079 t_TAIL_05,
189080 t_TAIL_06,
189081 t_TAIL_07,
189082 t_TAIL_08,
189083 t_TAIL_09,
189084 t_TAIL_10,
189085 t_TAIL_11,
189086 t_TAIL_12> Variant;
189087 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189088}
189089#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
189090
189091#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
189092template <class t_TYPE, class t_HEAD, class t_TAIL_01,
189093 class t_TAIL_02,
189094 class t_TAIL_03,
189095 class t_TAIL_04,
189096 class t_TAIL_05,
189097 class t_TAIL_06,
189098 class t_TAIL_07,
189099 class t_TAIL_08,
189100 class t_TAIL_09,
189101 class t_TAIL_10,
189102 class t_TAIL_11,
189103 class t_TAIL_12,
189104 class t_TAIL_13>
189105bool holds_alternative(
189106 const variant<t_HEAD, t_TAIL_01,
189107 t_TAIL_02,
189108 t_TAIL_03,
189109 t_TAIL_04,
189110 t_TAIL_05,
189111 t_TAIL_06,
189112 t_TAIL_07,
189113 t_TAIL_08,
189114 t_TAIL_09,
189115 t_TAIL_10,
189116 t_TAIL_11,
189117 t_TAIL_12,
189118 t_TAIL_13>& obj) BSLS_KEYWORD_NOEXCEPT
189119{
189120 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189121 t_TYPE,
189122 variant<t_HEAD, t_TAIL_01,
189123 t_TAIL_02,
189124 t_TAIL_03,
189125 t_TAIL_04,
189126 t_TAIL_05,
189127 t_TAIL_06,
189128 t_TAIL_07,
189129 t_TAIL_08,
189130 t_TAIL_09,
189131 t_TAIL_10,
189132 t_TAIL_11,
189133 t_TAIL_12,
189134 t_TAIL_13> >::value));
189135 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189136 t_TAIL_02,
189137 t_TAIL_03,
189138 t_TAIL_04,
189139 t_TAIL_05,
189140 t_TAIL_06,
189141 t_TAIL_07,
189142 t_TAIL_08,
189143 t_TAIL_09,
189144 t_TAIL_10,
189145 t_TAIL_11,
189146 t_TAIL_12,
189147 t_TAIL_13> Variant;
189148 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189149}
189150#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
189151
189152#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
189153template <class t_TYPE, class t_HEAD, class t_TAIL_01,
189154 class t_TAIL_02,
189155 class t_TAIL_03,
189156 class t_TAIL_04,
189157 class t_TAIL_05,
189158 class t_TAIL_06,
189159 class t_TAIL_07,
189160 class t_TAIL_08,
189161 class t_TAIL_09,
189162 class t_TAIL_10,
189163 class t_TAIL_11,
189164 class t_TAIL_12,
189165 class t_TAIL_13,
189166 class t_TAIL_14>
189167bool holds_alternative(
189168 const variant<t_HEAD, t_TAIL_01,
189169 t_TAIL_02,
189170 t_TAIL_03,
189171 t_TAIL_04,
189172 t_TAIL_05,
189173 t_TAIL_06,
189174 t_TAIL_07,
189175 t_TAIL_08,
189176 t_TAIL_09,
189177 t_TAIL_10,
189178 t_TAIL_11,
189179 t_TAIL_12,
189180 t_TAIL_13,
189181 t_TAIL_14>& obj) BSLS_KEYWORD_NOEXCEPT
189182{
189183 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189184 t_TYPE,
189185 variant<t_HEAD, t_TAIL_01,
189186 t_TAIL_02,
189187 t_TAIL_03,
189188 t_TAIL_04,
189189 t_TAIL_05,
189190 t_TAIL_06,
189191 t_TAIL_07,
189192 t_TAIL_08,
189193 t_TAIL_09,
189194 t_TAIL_10,
189195 t_TAIL_11,
189196 t_TAIL_12,
189197 t_TAIL_13,
189198 t_TAIL_14> >::value));
189199 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189200 t_TAIL_02,
189201 t_TAIL_03,
189202 t_TAIL_04,
189203 t_TAIL_05,
189204 t_TAIL_06,
189205 t_TAIL_07,
189206 t_TAIL_08,
189207 t_TAIL_09,
189208 t_TAIL_10,
189209 t_TAIL_11,
189210 t_TAIL_12,
189211 t_TAIL_13,
189212 t_TAIL_14> Variant;
189213 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189214}
189215#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
189216
189217#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
189218template <class t_TYPE, class t_HEAD, class t_TAIL_01,
189219 class t_TAIL_02,
189220 class t_TAIL_03,
189221 class t_TAIL_04,
189222 class t_TAIL_05,
189223 class t_TAIL_06,
189224 class t_TAIL_07,
189225 class t_TAIL_08,
189226 class t_TAIL_09,
189227 class t_TAIL_10,
189228 class t_TAIL_11,
189229 class t_TAIL_12,
189230 class t_TAIL_13,
189231 class t_TAIL_14,
189232 class t_TAIL_15>
189233bool holds_alternative(
189234 const variant<t_HEAD, t_TAIL_01,
189235 t_TAIL_02,
189236 t_TAIL_03,
189237 t_TAIL_04,
189238 t_TAIL_05,
189239 t_TAIL_06,
189240 t_TAIL_07,
189241 t_TAIL_08,
189242 t_TAIL_09,
189243 t_TAIL_10,
189244 t_TAIL_11,
189245 t_TAIL_12,
189246 t_TAIL_13,
189247 t_TAIL_14,
189248 t_TAIL_15>& obj) BSLS_KEYWORD_NOEXCEPT
189249{
189250 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189251 t_TYPE,
189252 variant<t_HEAD, t_TAIL_01,
189253 t_TAIL_02,
189254 t_TAIL_03,
189255 t_TAIL_04,
189256 t_TAIL_05,
189257 t_TAIL_06,
189258 t_TAIL_07,
189259 t_TAIL_08,
189260 t_TAIL_09,
189261 t_TAIL_10,
189262 t_TAIL_11,
189263 t_TAIL_12,
189264 t_TAIL_13,
189265 t_TAIL_14,
189266 t_TAIL_15> >::value));
189267 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189268 t_TAIL_02,
189269 t_TAIL_03,
189270 t_TAIL_04,
189271 t_TAIL_05,
189272 t_TAIL_06,
189273 t_TAIL_07,
189274 t_TAIL_08,
189275 t_TAIL_09,
189276 t_TAIL_10,
189277 t_TAIL_11,
189278 t_TAIL_12,
189279 t_TAIL_13,
189280 t_TAIL_14,
189281 t_TAIL_15> Variant;
189282 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189283}
189284#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
189285
189286#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
189287template <class t_TYPE, class t_HEAD, class t_TAIL_01,
189288 class t_TAIL_02,
189289 class t_TAIL_03,
189290 class t_TAIL_04,
189291 class t_TAIL_05,
189292 class t_TAIL_06,
189293 class t_TAIL_07,
189294 class t_TAIL_08,
189295 class t_TAIL_09,
189296 class t_TAIL_10,
189297 class t_TAIL_11,
189298 class t_TAIL_12,
189299 class t_TAIL_13,
189300 class t_TAIL_14,
189301 class t_TAIL_15,
189302 class t_TAIL_16>
189303bool holds_alternative(
189304 const variant<t_HEAD, t_TAIL_01,
189305 t_TAIL_02,
189306 t_TAIL_03,
189307 t_TAIL_04,
189308 t_TAIL_05,
189309 t_TAIL_06,
189310 t_TAIL_07,
189311 t_TAIL_08,
189312 t_TAIL_09,
189313 t_TAIL_10,
189314 t_TAIL_11,
189315 t_TAIL_12,
189316 t_TAIL_13,
189317 t_TAIL_14,
189318 t_TAIL_15,
189319 t_TAIL_16>& obj) BSLS_KEYWORD_NOEXCEPT
189320{
189321 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189322 t_TYPE,
189323 variant<t_HEAD, t_TAIL_01,
189324 t_TAIL_02,
189325 t_TAIL_03,
189326 t_TAIL_04,
189327 t_TAIL_05,
189328 t_TAIL_06,
189329 t_TAIL_07,
189330 t_TAIL_08,
189331 t_TAIL_09,
189332 t_TAIL_10,
189333 t_TAIL_11,
189334 t_TAIL_12,
189335 t_TAIL_13,
189336 t_TAIL_14,
189337 t_TAIL_15,
189338 t_TAIL_16> >::value));
189339 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189340 t_TAIL_02,
189341 t_TAIL_03,
189342 t_TAIL_04,
189343 t_TAIL_05,
189344 t_TAIL_06,
189345 t_TAIL_07,
189346 t_TAIL_08,
189347 t_TAIL_09,
189348 t_TAIL_10,
189349 t_TAIL_11,
189350 t_TAIL_12,
189351 t_TAIL_13,
189352 t_TAIL_14,
189353 t_TAIL_15,
189354 t_TAIL_16> Variant;
189355 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189356}
189357#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
189358
189359#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
189360template <class t_TYPE, class t_HEAD, class t_TAIL_01,
189361 class t_TAIL_02,
189362 class t_TAIL_03,
189363 class t_TAIL_04,
189364 class t_TAIL_05,
189365 class t_TAIL_06,
189366 class t_TAIL_07,
189367 class t_TAIL_08,
189368 class t_TAIL_09,
189369 class t_TAIL_10,
189370 class t_TAIL_11,
189371 class t_TAIL_12,
189372 class t_TAIL_13,
189373 class t_TAIL_14,
189374 class t_TAIL_15,
189375 class t_TAIL_16,
189376 class t_TAIL_17>
189377bool holds_alternative(
189378 const variant<t_HEAD, t_TAIL_01,
189379 t_TAIL_02,
189380 t_TAIL_03,
189381 t_TAIL_04,
189382 t_TAIL_05,
189383 t_TAIL_06,
189384 t_TAIL_07,
189385 t_TAIL_08,
189386 t_TAIL_09,
189387 t_TAIL_10,
189388 t_TAIL_11,
189389 t_TAIL_12,
189390 t_TAIL_13,
189391 t_TAIL_14,
189392 t_TAIL_15,
189393 t_TAIL_16,
189394 t_TAIL_17>& obj) BSLS_KEYWORD_NOEXCEPT
189395{
189396 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189397 t_TYPE,
189398 variant<t_HEAD, t_TAIL_01,
189399 t_TAIL_02,
189400 t_TAIL_03,
189401 t_TAIL_04,
189402 t_TAIL_05,
189403 t_TAIL_06,
189404 t_TAIL_07,
189405 t_TAIL_08,
189406 t_TAIL_09,
189407 t_TAIL_10,
189408 t_TAIL_11,
189409 t_TAIL_12,
189410 t_TAIL_13,
189411 t_TAIL_14,
189412 t_TAIL_15,
189413 t_TAIL_16,
189414 t_TAIL_17> >::value));
189415 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189416 t_TAIL_02,
189417 t_TAIL_03,
189418 t_TAIL_04,
189419 t_TAIL_05,
189420 t_TAIL_06,
189421 t_TAIL_07,
189422 t_TAIL_08,
189423 t_TAIL_09,
189424 t_TAIL_10,
189425 t_TAIL_11,
189426 t_TAIL_12,
189427 t_TAIL_13,
189428 t_TAIL_14,
189429 t_TAIL_15,
189430 t_TAIL_16,
189431 t_TAIL_17> Variant;
189432 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189433}
189434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
189435
189436#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
189437template <class t_TYPE, class t_HEAD, class t_TAIL_01,
189438 class t_TAIL_02,
189439 class t_TAIL_03,
189440 class t_TAIL_04,
189441 class t_TAIL_05,
189442 class t_TAIL_06,
189443 class t_TAIL_07,
189444 class t_TAIL_08,
189445 class t_TAIL_09,
189446 class t_TAIL_10,
189447 class t_TAIL_11,
189448 class t_TAIL_12,
189449 class t_TAIL_13,
189450 class t_TAIL_14,
189451 class t_TAIL_15,
189452 class t_TAIL_16,
189453 class t_TAIL_17,
189454 class t_TAIL_18>
189455bool holds_alternative(
189456 const variant<t_HEAD, t_TAIL_01,
189457 t_TAIL_02,
189458 t_TAIL_03,
189459 t_TAIL_04,
189460 t_TAIL_05,
189461 t_TAIL_06,
189462 t_TAIL_07,
189463 t_TAIL_08,
189464 t_TAIL_09,
189465 t_TAIL_10,
189466 t_TAIL_11,
189467 t_TAIL_12,
189468 t_TAIL_13,
189469 t_TAIL_14,
189470 t_TAIL_15,
189471 t_TAIL_16,
189472 t_TAIL_17,
189473 t_TAIL_18>& obj) BSLS_KEYWORD_NOEXCEPT
189474{
189475 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
189476 t_TYPE,
189477 variant<t_HEAD, t_TAIL_01,
189478 t_TAIL_02,
189479 t_TAIL_03,
189480 t_TAIL_04,
189481 t_TAIL_05,
189482 t_TAIL_06,
189483 t_TAIL_07,
189484 t_TAIL_08,
189485 t_TAIL_09,
189486 t_TAIL_10,
189487 t_TAIL_11,
189488 t_TAIL_12,
189489 t_TAIL_13,
189490 t_TAIL_14,
189491 t_TAIL_15,
189492 t_TAIL_16,
189493 t_TAIL_17,
189494 t_TAIL_18> >::value));
189495 typedef typename bsl::variant<t_HEAD, t_TAIL_01,
189496 t_TAIL_02,
189497 t_TAIL_03,
189498 t_TAIL_04,
189499 t_TAIL_05,
189500 t_TAIL_06,
189501 t_TAIL_07,
189502 t_TAIL_08,
189503 t_TAIL_09,
189504 t_TAIL_10,
189505 t_TAIL_11,
189506 t_TAIL_12,
189507 t_TAIL_13,
189508 t_TAIL_14,
189509 t_TAIL_15,
189510 t_TAIL_16,
189511 t_TAIL_17,
189512 t_TAIL_18> Variant;
189513 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
189514}
189515#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
189516
189517
189518#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
189519template <class t_HEAD>
189520void swap(bsl::variant<t_HEAD>& lhs,
189522{
189523 BloombergLP::bslstl::variant_swapImpl(
189525 bool,
189526 BloombergLP::bslstl::
189527 Variant_UsesBslmaAllocatorAny<t_HEAD>::value>(),
189528 lhs,
189529 rhs);
189530}
189531#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
189532
189533#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
189534template <class t_HEAD, class t_TAIL_01>
189537{
189538 BloombergLP::bslstl::variant_swapImpl(
189540 bool,
189541 BloombergLP::bslstl::
189542 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01>::value>(),
189543 lhs,
189544 rhs);
189545}
189546#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
189547
189548#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
189549template <class t_HEAD, class t_TAIL_01,
189550 class t_TAIL_02>
189551void swap(bsl::variant<t_HEAD, t_TAIL_01,
189552 t_TAIL_02>& lhs,
189553 bsl::variant<t_HEAD, t_TAIL_01,
189554 t_TAIL_02>& rhs)
189555{
189556 BloombergLP::bslstl::variant_swapImpl(
189558 bool,
189559 BloombergLP::bslstl::
189560 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189561 t_TAIL_02>::value>(),
189562 lhs,
189563 rhs);
189564}
189565#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
189566
189567#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
189568template <class t_HEAD, class t_TAIL_01,
189569 class t_TAIL_02,
189570 class t_TAIL_03>
189571void swap(bsl::variant<t_HEAD, t_TAIL_01,
189572 t_TAIL_02,
189573 t_TAIL_03>& lhs,
189574 bsl::variant<t_HEAD, t_TAIL_01,
189575 t_TAIL_02,
189576 t_TAIL_03>& rhs)
189577{
189578 BloombergLP::bslstl::variant_swapImpl(
189580 bool,
189581 BloombergLP::bslstl::
189582 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189583 t_TAIL_02,
189584 t_TAIL_03>::value>(),
189585 lhs,
189586 rhs);
189587}
189588#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
189589
189590#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
189591template <class t_HEAD, class t_TAIL_01,
189592 class t_TAIL_02,
189593 class t_TAIL_03,
189594 class t_TAIL_04>
189595void swap(bsl::variant<t_HEAD, t_TAIL_01,
189596 t_TAIL_02,
189597 t_TAIL_03,
189598 t_TAIL_04>& lhs,
189599 bsl::variant<t_HEAD, t_TAIL_01,
189600 t_TAIL_02,
189601 t_TAIL_03,
189602 t_TAIL_04>& rhs)
189603{
189604 BloombergLP::bslstl::variant_swapImpl(
189606 bool,
189607 BloombergLP::bslstl::
189608 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189609 t_TAIL_02,
189610 t_TAIL_03,
189611 t_TAIL_04>::value>(),
189612 lhs,
189613 rhs);
189614}
189615#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
189616
189617#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
189618template <class t_HEAD, class t_TAIL_01,
189619 class t_TAIL_02,
189620 class t_TAIL_03,
189621 class t_TAIL_04,
189622 class t_TAIL_05>
189623void swap(bsl::variant<t_HEAD, t_TAIL_01,
189624 t_TAIL_02,
189625 t_TAIL_03,
189626 t_TAIL_04,
189627 t_TAIL_05>& lhs,
189628 bsl::variant<t_HEAD, t_TAIL_01,
189629 t_TAIL_02,
189630 t_TAIL_03,
189631 t_TAIL_04,
189632 t_TAIL_05>& rhs)
189633{
189634 BloombergLP::bslstl::variant_swapImpl(
189636 bool,
189637 BloombergLP::bslstl::
189638 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189639 t_TAIL_02,
189640 t_TAIL_03,
189641 t_TAIL_04,
189642 t_TAIL_05>::value>(),
189643 lhs,
189644 rhs);
189645}
189646#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
189647
189648#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
189649template <class t_HEAD, class t_TAIL_01,
189650 class t_TAIL_02,
189651 class t_TAIL_03,
189652 class t_TAIL_04,
189653 class t_TAIL_05,
189654 class t_TAIL_06>
189655void swap(bsl::variant<t_HEAD, t_TAIL_01,
189656 t_TAIL_02,
189657 t_TAIL_03,
189658 t_TAIL_04,
189659 t_TAIL_05,
189660 t_TAIL_06>& lhs,
189661 bsl::variant<t_HEAD, t_TAIL_01,
189662 t_TAIL_02,
189663 t_TAIL_03,
189664 t_TAIL_04,
189665 t_TAIL_05,
189666 t_TAIL_06>& rhs)
189667{
189668 BloombergLP::bslstl::variant_swapImpl(
189670 bool,
189671 BloombergLP::bslstl::
189672 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189673 t_TAIL_02,
189674 t_TAIL_03,
189675 t_TAIL_04,
189676 t_TAIL_05,
189677 t_TAIL_06>::value>(),
189678 lhs,
189679 rhs);
189680}
189681#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
189682
189683#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
189684template <class t_HEAD, class t_TAIL_01,
189685 class t_TAIL_02,
189686 class t_TAIL_03,
189687 class t_TAIL_04,
189688 class t_TAIL_05,
189689 class t_TAIL_06,
189690 class t_TAIL_07>
189691void swap(bsl::variant<t_HEAD, t_TAIL_01,
189692 t_TAIL_02,
189693 t_TAIL_03,
189694 t_TAIL_04,
189695 t_TAIL_05,
189696 t_TAIL_06,
189697 t_TAIL_07>& lhs,
189698 bsl::variant<t_HEAD, t_TAIL_01,
189699 t_TAIL_02,
189700 t_TAIL_03,
189701 t_TAIL_04,
189702 t_TAIL_05,
189703 t_TAIL_06,
189704 t_TAIL_07>& rhs)
189705{
189706 BloombergLP::bslstl::variant_swapImpl(
189708 bool,
189709 BloombergLP::bslstl::
189710 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189711 t_TAIL_02,
189712 t_TAIL_03,
189713 t_TAIL_04,
189714 t_TAIL_05,
189715 t_TAIL_06,
189716 t_TAIL_07>::value>(),
189717 lhs,
189718 rhs);
189719}
189720#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
189721
189722#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
189723template <class t_HEAD, class t_TAIL_01,
189724 class t_TAIL_02,
189725 class t_TAIL_03,
189726 class t_TAIL_04,
189727 class t_TAIL_05,
189728 class t_TAIL_06,
189729 class t_TAIL_07,
189730 class t_TAIL_08>
189731void swap(bsl::variant<t_HEAD, t_TAIL_01,
189732 t_TAIL_02,
189733 t_TAIL_03,
189734 t_TAIL_04,
189735 t_TAIL_05,
189736 t_TAIL_06,
189737 t_TAIL_07,
189738 t_TAIL_08>& lhs,
189739 bsl::variant<t_HEAD, t_TAIL_01,
189740 t_TAIL_02,
189741 t_TAIL_03,
189742 t_TAIL_04,
189743 t_TAIL_05,
189744 t_TAIL_06,
189745 t_TAIL_07,
189746 t_TAIL_08>& rhs)
189747{
189748 BloombergLP::bslstl::variant_swapImpl(
189750 bool,
189751 BloombergLP::bslstl::
189752 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189753 t_TAIL_02,
189754 t_TAIL_03,
189755 t_TAIL_04,
189756 t_TAIL_05,
189757 t_TAIL_06,
189758 t_TAIL_07,
189759 t_TAIL_08>::value>(),
189760 lhs,
189761 rhs);
189762}
189763#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
189764
189765#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
189766template <class t_HEAD, class t_TAIL_01,
189767 class t_TAIL_02,
189768 class t_TAIL_03,
189769 class t_TAIL_04,
189770 class t_TAIL_05,
189771 class t_TAIL_06,
189772 class t_TAIL_07,
189773 class t_TAIL_08,
189774 class t_TAIL_09>
189775void swap(bsl::variant<t_HEAD, t_TAIL_01,
189776 t_TAIL_02,
189777 t_TAIL_03,
189778 t_TAIL_04,
189779 t_TAIL_05,
189780 t_TAIL_06,
189781 t_TAIL_07,
189782 t_TAIL_08,
189783 t_TAIL_09>& lhs,
189784 bsl::variant<t_HEAD, t_TAIL_01,
189785 t_TAIL_02,
189786 t_TAIL_03,
189787 t_TAIL_04,
189788 t_TAIL_05,
189789 t_TAIL_06,
189790 t_TAIL_07,
189791 t_TAIL_08,
189792 t_TAIL_09>& rhs)
189793{
189794 BloombergLP::bslstl::variant_swapImpl(
189796 bool,
189797 BloombergLP::bslstl::
189798 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189799 t_TAIL_02,
189800 t_TAIL_03,
189801 t_TAIL_04,
189802 t_TAIL_05,
189803 t_TAIL_06,
189804 t_TAIL_07,
189805 t_TAIL_08,
189806 t_TAIL_09>::value>(),
189807 lhs,
189808 rhs);
189809}
189810#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
189811
189812#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
189813template <class t_HEAD, class t_TAIL_01,
189814 class t_TAIL_02,
189815 class t_TAIL_03,
189816 class t_TAIL_04,
189817 class t_TAIL_05,
189818 class t_TAIL_06,
189819 class t_TAIL_07,
189820 class t_TAIL_08,
189821 class t_TAIL_09,
189822 class t_TAIL_10>
189823void swap(bsl::variant<t_HEAD, t_TAIL_01,
189824 t_TAIL_02,
189825 t_TAIL_03,
189826 t_TAIL_04,
189827 t_TAIL_05,
189828 t_TAIL_06,
189829 t_TAIL_07,
189830 t_TAIL_08,
189831 t_TAIL_09,
189832 t_TAIL_10>& lhs,
189833 bsl::variant<t_HEAD, t_TAIL_01,
189834 t_TAIL_02,
189835 t_TAIL_03,
189836 t_TAIL_04,
189837 t_TAIL_05,
189838 t_TAIL_06,
189839 t_TAIL_07,
189840 t_TAIL_08,
189841 t_TAIL_09,
189842 t_TAIL_10>& rhs)
189843{
189844 BloombergLP::bslstl::variant_swapImpl(
189846 bool,
189847 BloombergLP::bslstl::
189848 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189849 t_TAIL_02,
189850 t_TAIL_03,
189851 t_TAIL_04,
189852 t_TAIL_05,
189853 t_TAIL_06,
189854 t_TAIL_07,
189855 t_TAIL_08,
189856 t_TAIL_09,
189857 t_TAIL_10>::value>(),
189858 lhs,
189859 rhs);
189860}
189861#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
189862
189863#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
189864template <class t_HEAD, class t_TAIL_01,
189865 class t_TAIL_02,
189866 class t_TAIL_03,
189867 class t_TAIL_04,
189868 class t_TAIL_05,
189869 class t_TAIL_06,
189870 class t_TAIL_07,
189871 class t_TAIL_08,
189872 class t_TAIL_09,
189873 class t_TAIL_10,
189874 class t_TAIL_11>
189875void swap(bsl::variant<t_HEAD, t_TAIL_01,
189876 t_TAIL_02,
189877 t_TAIL_03,
189878 t_TAIL_04,
189879 t_TAIL_05,
189880 t_TAIL_06,
189881 t_TAIL_07,
189882 t_TAIL_08,
189883 t_TAIL_09,
189884 t_TAIL_10,
189885 t_TAIL_11>& lhs,
189886 bsl::variant<t_HEAD, t_TAIL_01,
189887 t_TAIL_02,
189888 t_TAIL_03,
189889 t_TAIL_04,
189890 t_TAIL_05,
189891 t_TAIL_06,
189892 t_TAIL_07,
189893 t_TAIL_08,
189894 t_TAIL_09,
189895 t_TAIL_10,
189896 t_TAIL_11>& rhs)
189897{
189898 BloombergLP::bslstl::variant_swapImpl(
189900 bool,
189901 BloombergLP::bslstl::
189902 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189903 t_TAIL_02,
189904 t_TAIL_03,
189905 t_TAIL_04,
189906 t_TAIL_05,
189907 t_TAIL_06,
189908 t_TAIL_07,
189909 t_TAIL_08,
189910 t_TAIL_09,
189911 t_TAIL_10,
189912 t_TAIL_11>::value>(),
189913 lhs,
189914 rhs);
189915}
189916#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
189917
189918#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
189919template <class t_HEAD, class t_TAIL_01,
189920 class t_TAIL_02,
189921 class t_TAIL_03,
189922 class t_TAIL_04,
189923 class t_TAIL_05,
189924 class t_TAIL_06,
189925 class t_TAIL_07,
189926 class t_TAIL_08,
189927 class t_TAIL_09,
189928 class t_TAIL_10,
189929 class t_TAIL_11,
189930 class t_TAIL_12>
189931void swap(bsl::variant<t_HEAD, t_TAIL_01,
189932 t_TAIL_02,
189933 t_TAIL_03,
189934 t_TAIL_04,
189935 t_TAIL_05,
189936 t_TAIL_06,
189937 t_TAIL_07,
189938 t_TAIL_08,
189939 t_TAIL_09,
189940 t_TAIL_10,
189941 t_TAIL_11,
189942 t_TAIL_12>& lhs,
189943 bsl::variant<t_HEAD, t_TAIL_01,
189944 t_TAIL_02,
189945 t_TAIL_03,
189946 t_TAIL_04,
189947 t_TAIL_05,
189948 t_TAIL_06,
189949 t_TAIL_07,
189950 t_TAIL_08,
189951 t_TAIL_09,
189952 t_TAIL_10,
189953 t_TAIL_11,
189954 t_TAIL_12>& rhs)
189955{
189956 BloombergLP::bslstl::variant_swapImpl(
189958 bool,
189959 BloombergLP::bslstl::
189960 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
189961 t_TAIL_02,
189962 t_TAIL_03,
189963 t_TAIL_04,
189964 t_TAIL_05,
189965 t_TAIL_06,
189966 t_TAIL_07,
189967 t_TAIL_08,
189968 t_TAIL_09,
189969 t_TAIL_10,
189970 t_TAIL_11,
189971 t_TAIL_12>::value>(),
189972 lhs,
189973 rhs);
189974}
189975#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
189976
189977#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
189978template <class t_HEAD, class t_TAIL_01,
189979 class t_TAIL_02,
189980 class t_TAIL_03,
189981 class t_TAIL_04,
189982 class t_TAIL_05,
189983 class t_TAIL_06,
189984 class t_TAIL_07,
189985 class t_TAIL_08,
189986 class t_TAIL_09,
189987 class t_TAIL_10,
189988 class t_TAIL_11,
189989 class t_TAIL_12,
189990 class t_TAIL_13>
189991void swap(bsl::variant<t_HEAD, t_TAIL_01,
189992 t_TAIL_02,
189993 t_TAIL_03,
189994 t_TAIL_04,
189995 t_TAIL_05,
189996 t_TAIL_06,
189997 t_TAIL_07,
189998 t_TAIL_08,
189999 t_TAIL_09,
190000 t_TAIL_10,
190001 t_TAIL_11,
190002 t_TAIL_12,
190003 t_TAIL_13>& lhs,
190004 bsl::variant<t_HEAD, t_TAIL_01,
190005 t_TAIL_02,
190006 t_TAIL_03,
190007 t_TAIL_04,
190008 t_TAIL_05,
190009 t_TAIL_06,
190010 t_TAIL_07,
190011 t_TAIL_08,
190012 t_TAIL_09,
190013 t_TAIL_10,
190014 t_TAIL_11,
190015 t_TAIL_12,
190016 t_TAIL_13>& rhs)
190017{
190018 BloombergLP::bslstl::variant_swapImpl(
190020 bool,
190021 BloombergLP::bslstl::
190022 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
190023 t_TAIL_02,
190024 t_TAIL_03,
190025 t_TAIL_04,
190026 t_TAIL_05,
190027 t_TAIL_06,
190028 t_TAIL_07,
190029 t_TAIL_08,
190030 t_TAIL_09,
190031 t_TAIL_10,
190032 t_TAIL_11,
190033 t_TAIL_12,
190034 t_TAIL_13>::value>(),
190035 lhs,
190036 rhs);
190037}
190038#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
190039
190040#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
190041template <class t_HEAD, class t_TAIL_01,
190042 class t_TAIL_02,
190043 class t_TAIL_03,
190044 class t_TAIL_04,
190045 class t_TAIL_05,
190046 class t_TAIL_06,
190047 class t_TAIL_07,
190048 class t_TAIL_08,
190049 class t_TAIL_09,
190050 class t_TAIL_10,
190051 class t_TAIL_11,
190052 class t_TAIL_12,
190053 class t_TAIL_13,
190054 class t_TAIL_14>
190055void swap(bsl::variant<t_HEAD, t_TAIL_01,
190056 t_TAIL_02,
190057 t_TAIL_03,
190058 t_TAIL_04,
190059 t_TAIL_05,
190060 t_TAIL_06,
190061 t_TAIL_07,
190062 t_TAIL_08,
190063 t_TAIL_09,
190064 t_TAIL_10,
190065 t_TAIL_11,
190066 t_TAIL_12,
190067 t_TAIL_13,
190068 t_TAIL_14>& lhs,
190069 bsl::variant<t_HEAD, t_TAIL_01,
190070 t_TAIL_02,
190071 t_TAIL_03,
190072 t_TAIL_04,
190073 t_TAIL_05,
190074 t_TAIL_06,
190075 t_TAIL_07,
190076 t_TAIL_08,
190077 t_TAIL_09,
190078 t_TAIL_10,
190079 t_TAIL_11,
190080 t_TAIL_12,
190081 t_TAIL_13,
190082 t_TAIL_14>& rhs)
190083{
190084 BloombergLP::bslstl::variant_swapImpl(
190086 bool,
190087 BloombergLP::bslstl::
190088 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
190089 t_TAIL_02,
190090 t_TAIL_03,
190091 t_TAIL_04,
190092 t_TAIL_05,
190093 t_TAIL_06,
190094 t_TAIL_07,
190095 t_TAIL_08,
190096 t_TAIL_09,
190097 t_TAIL_10,
190098 t_TAIL_11,
190099 t_TAIL_12,
190100 t_TAIL_13,
190101 t_TAIL_14>::value>(),
190102 lhs,
190103 rhs);
190104}
190105#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
190106
190107#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
190108template <class t_HEAD, class t_TAIL_01,
190109 class t_TAIL_02,
190110 class t_TAIL_03,
190111 class t_TAIL_04,
190112 class t_TAIL_05,
190113 class t_TAIL_06,
190114 class t_TAIL_07,
190115 class t_TAIL_08,
190116 class t_TAIL_09,
190117 class t_TAIL_10,
190118 class t_TAIL_11,
190119 class t_TAIL_12,
190120 class t_TAIL_13,
190121 class t_TAIL_14,
190122 class t_TAIL_15>
190123void swap(bsl::variant<t_HEAD, t_TAIL_01,
190124 t_TAIL_02,
190125 t_TAIL_03,
190126 t_TAIL_04,
190127 t_TAIL_05,
190128 t_TAIL_06,
190129 t_TAIL_07,
190130 t_TAIL_08,
190131 t_TAIL_09,
190132 t_TAIL_10,
190133 t_TAIL_11,
190134 t_TAIL_12,
190135 t_TAIL_13,
190136 t_TAIL_14,
190137 t_TAIL_15>& lhs,
190138 bsl::variant<t_HEAD, t_TAIL_01,
190139 t_TAIL_02,
190140 t_TAIL_03,
190141 t_TAIL_04,
190142 t_TAIL_05,
190143 t_TAIL_06,
190144 t_TAIL_07,
190145 t_TAIL_08,
190146 t_TAIL_09,
190147 t_TAIL_10,
190148 t_TAIL_11,
190149 t_TAIL_12,
190150 t_TAIL_13,
190151 t_TAIL_14,
190152 t_TAIL_15>& rhs)
190153{
190154 BloombergLP::bslstl::variant_swapImpl(
190156 bool,
190157 BloombergLP::bslstl::
190158 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
190159 t_TAIL_02,
190160 t_TAIL_03,
190161 t_TAIL_04,
190162 t_TAIL_05,
190163 t_TAIL_06,
190164 t_TAIL_07,
190165 t_TAIL_08,
190166 t_TAIL_09,
190167 t_TAIL_10,
190168 t_TAIL_11,
190169 t_TAIL_12,
190170 t_TAIL_13,
190171 t_TAIL_14,
190172 t_TAIL_15>::value>(),
190173 lhs,
190174 rhs);
190175}
190176#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
190177
190178#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
190179template <class t_HEAD, class t_TAIL_01,
190180 class t_TAIL_02,
190181 class t_TAIL_03,
190182 class t_TAIL_04,
190183 class t_TAIL_05,
190184 class t_TAIL_06,
190185 class t_TAIL_07,
190186 class t_TAIL_08,
190187 class t_TAIL_09,
190188 class t_TAIL_10,
190189 class t_TAIL_11,
190190 class t_TAIL_12,
190191 class t_TAIL_13,
190192 class t_TAIL_14,
190193 class t_TAIL_15,
190194 class t_TAIL_16>
190195void swap(bsl::variant<t_HEAD, t_TAIL_01,
190196 t_TAIL_02,
190197 t_TAIL_03,
190198 t_TAIL_04,
190199 t_TAIL_05,
190200 t_TAIL_06,
190201 t_TAIL_07,
190202 t_TAIL_08,
190203 t_TAIL_09,
190204 t_TAIL_10,
190205 t_TAIL_11,
190206 t_TAIL_12,
190207 t_TAIL_13,
190208 t_TAIL_14,
190209 t_TAIL_15,
190210 t_TAIL_16>& lhs,
190211 bsl::variant<t_HEAD, t_TAIL_01,
190212 t_TAIL_02,
190213 t_TAIL_03,
190214 t_TAIL_04,
190215 t_TAIL_05,
190216 t_TAIL_06,
190217 t_TAIL_07,
190218 t_TAIL_08,
190219 t_TAIL_09,
190220 t_TAIL_10,
190221 t_TAIL_11,
190222 t_TAIL_12,
190223 t_TAIL_13,
190224 t_TAIL_14,
190225 t_TAIL_15,
190226 t_TAIL_16>& rhs)
190227{
190228 BloombergLP::bslstl::variant_swapImpl(
190230 bool,
190231 BloombergLP::bslstl::
190232 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
190233 t_TAIL_02,
190234 t_TAIL_03,
190235 t_TAIL_04,
190236 t_TAIL_05,
190237 t_TAIL_06,
190238 t_TAIL_07,
190239 t_TAIL_08,
190240 t_TAIL_09,
190241 t_TAIL_10,
190242 t_TAIL_11,
190243 t_TAIL_12,
190244 t_TAIL_13,
190245 t_TAIL_14,
190246 t_TAIL_15,
190247 t_TAIL_16>::value>(),
190248 lhs,
190249 rhs);
190250}
190251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
190252
190253#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
190254template <class t_HEAD, class t_TAIL_01,
190255 class t_TAIL_02,
190256 class t_TAIL_03,
190257 class t_TAIL_04,
190258 class t_TAIL_05,
190259 class t_TAIL_06,
190260 class t_TAIL_07,
190261 class t_TAIL_08,
190262 class t_TAIL_09,
190263 class t_TAIL_10,
190264 class t_TAIL_11,
190265 class t_TAIL_12,
190266 class t_TAIL_13,
190267 class t_TAIL_14,
190268 class t_TAIL_15,
190269 class t_TAIL_16,
190270 class t_TAIL_17>
190271void swap(bsl::variant<t_HEAD, t_TAIL_01,
190272 t_TAIL_02,
190273 t_TAIL_03,
190274 t_TAIL_04,
190275 t_TAIL_05,
190276 t_TAIL_06,
190277 t_TAIL_07,
190278 t_TAIL_08,
190279 t_TAIL_09,
190280 t_TAIL_10,
190281 t_TAIL_11,
190282 t_TAIL_12,
190283 t_TAIL_13,
190284 t_TAIL_14,
190285 t_TAIL_15,
190286 t_TAIL_16,
190287 t_TAIL_17>& lhs,
190288 bsl::variant<t_HEAD, t_TAIL_01,
190289 t_TAIL_02,
190290 t_TAIL_03,
190291 t_TAIL_04,
190292 t_TAIL_05,
190293 t_TAIL_06,
190294 t_TAIL_07,
190295 t_TAIL_08,
190296 t_TAIL_09,
190297 t_TAIL_10,
190298 t_TAIL_11,
190299 t_TAIL_12,
190300 t_TAIL_13,
190301 t_TAIL_14,
190302 t_TAIL_15,
190303 t_TAIL_16,
190304 t_TAIL_17>& rhs)
190305{
190306 BloombergLP::bslstl::variant_swapImpl(
190308 bool,
190309 BloombergLP::bslstl::
190310 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
190311 t_TAIL_02,
190312 t_TAIL_03,
190313 t_TAIL_04,
190314 t_TAIL_05,
190315 t_TAIL_06,
190316 t_TAIL_07,
190317 t_TAIL_08,
190318 t_TAIL_09,
190319 t_TAIL_10,
190320 t_TAIL_11,
190321 t_TAIL_12,
190322 t_TAIL_13,
190323 t_TAIL_14,
190324 t_TAIL_15,
190325 t_TAIL_16,
190326 t_TAIL_17>::value>(),
190327 lhs,
190328 rhs);
190329}
190330#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
190331
190332#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
190333template <class t_HEAD, class t_TAIL_01,
190334 class t_TAIL_02,
190335 class t_TAIL_03,
190336 class t_TAIL_04,
190337 class t_TAIL_05,
190338 class t_TAIL_06,
190339 class t_TAIL_07,
190340 class t_TAIL_08,
190341 class t_TAIL_09,
190342 class t_TAIL_10,
190343 class t_TAIL_11,
190344 class t_TAIL_12,
190345 class t_TAIL_13,
190346 class t_TAIL_14,
190347 class t_TAIL_15,
190348 class t_TAIL_16,
190349 class t_TAIL_17,
190350 class t_TAIL_18>
190351void swap(bsl::variant<t_HEAD, t_TAIL_01,
190352 t_TAIL_02,
190353 t_TAIL_03,
190354 t_TAIL_04,
190355 t_TAIL_05,
190356 t_TAIL_06,
190357 t_TAIL_07,
190358 t_TAIL_08,
190359 t_TAIL_09,
190360 t_TAIL_10,
190361 t_TAIL_11,
190362 t_TAIL_12,
190363 t_TAIL_13,
190364 t_TAIL_14,
190365 t_TAIL_15,
190366 t_TAIL_16,
190367 t_TAIL_17,
190368 t_TAIL_18>& lhs,
190369 bsl::variant<t_HEAD, t_TAIL_01,
190370 t_TAIL_02,
190371 t_TAIL_03,
190372 t_TAIL_04,
190373 t_TAIL_05,
190374 t_TAIL_06,
190375 t_TAIL_07,
190376 t_TAIL_08,
190377 t_TAIL_09,
190378 t_TAIL_10,
190379 t_TAIL_11,
190380 t_TAIL_12,
190381 t_TAIL_13,
190382 t_TAIL_14,
190383 t_TAIL_15,
190384 t_TAIL_16,
190385 t_TAIL_17,
190386 t_TAIL_18>& rhs)
190387{
190388 BloombergLP::bslstl::variant_swapImpl(
190390 bool,
190391 BloombergLP::bslstl::
190392 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL_01,
190393 t_TAIL_02,
190394 t_TAIL_03,
190395 t_TAIL_04,
190396 t_TAIL_05,
190397 t_TAIL_06,
190398 t_TAIL_07,
190399 t_TAIL_08,
190400 t_TAIL_09,
190401 t_TAIL_10,
190402 t_TAIL_11,
190403 t_TAIL_12,
190404 t_TAIL_13,
190405 t_TAIL_14,
190406 t_TAIL_15,
190407 t_TAIL_16,
190408 t_TAIL_17,
190409 t_TAIL_18>::value>(),
190410 lhs,
190411 rhs);
190412}
190413#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
190414
190415
190416#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
190417template <class t_HEAD>
190418bool operator==(const variant<t_HEAD>& lhs,
190419 const variant<t_HEAD>& rhs)
190420{
190421 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190422
190423 if (lhs.index() != rhs.index()) {
190424 return false;
190425 }
190426 else if (lhs.valueless_by_exception()) {
190427 return true;
190428 }
190429 return ImpUtil::Equal(lhs, rhs);
190430}
190431#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
190432
190433#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
190434template <class t_HEAD, class t_TAIL_01>
190435bool operator==(const variant<t_HEAD, t_TAIL_01>& lhs,
190436 const variant<t_HEAD, t_TAIL_01>& rhs)
190437{
190438 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190439
190440 if (lhs.index() != rhs.index()) {
190441 return false;
190442 }
190443 else if (lhs.valueless_by_exception()) {
190444 return true;
190445 }
190446 return ImpUtil::Equal(lhs, rhs);
190447}
190448#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
190449
190450#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
190451template <class t_HEAD, class t_TAIL_01,
190452 class t_TAIL_02>
190453bool operator==(const variant<t_HEAD, t_TAIL_01,
190454 t_TAIL_02>& lhs,
190455 const variant<t_HEAD, t_TAIL_01,
190456 t_TAIL_02>& rhs)
190457{
190458 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190459
190460 if (lhs.index() != rhs.index()) {
190461 return false;
190462 }
190463 else if (lhs.valueless_by_exception()) {
190464 return true;
190465 }
190466 return ImpUtil::Equal(lhs, rhs);
190467}
190468#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
190469
190470#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
190471template <class t_HEAD, class t_TAIL_01,
190472 class t_TAIL_02,
190473 class t_TAIL_03>
190474bool operator==(const variant<t_HEAD, t_TAIL_01,
190475 t_TAIL_02,
190476 t_TAIL_03>& lhs,
190477 const variant<t_HEAD, t_TAIL_01,
190478 t_TAIL_02,
190479 t_TAIL_03>& rhs)
190480{
190481 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190482
190483 if (lhs.index() != rhs.index()) {
190484 return false;
190485 }
190486 else if (lhs.valueless_by_exception()) {
190487 return true;
190488 }
190489 return ImpUtil::Equal(lhs, rhs);
190490}
190491#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
190492
190493#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
190494template <class t_HEAD, class t_TAIL_01,
190495 class t_TAIL_02,
190496 class t_TAIL_03,
190497 class t_TAIL_04>
190498bool operator==(const variant<t_HEAD, t_TAIL_01,
190499 t_TAIL_02,
190500 t_TAIL_03,
190501 t_TAIL_04>& lhs,
190502 const variant<t_HEAD, t_TAIL_01,
190503 t_TAIL_02,
190504 t_TAIL_03,
190505 t_TAIL_04>& rhs)
190506{
190507 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190508
190509 if (lhs.index() != rhs.index()) {
190510 return false;
190511 }
190512 else if (lhs.valueless_by_exception()) {
190513 return true;
190514 }
190515 return ImpUtil::Equal(lhs, rhs);
190516}
190517#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
190518
190519#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
190520template <class t_HEAD, class t_TAIL_01,
190521 class t_TAIL_02,
190522 class t_TAIL_03,
190523 class t_TAIL_04,
190524 class t_TAIL_05>
190525bool operator==(const variant<t_HEAD, t_TAIL_01,
190526 t_TAIL_02,
190527 t_TAIL_03,
190528 t_TAIL_04,
190529 t_TAIL_05>& lhs,
190530 const variant<t_HEAD, t_TAIL_01,
190531 t_TAIL_02,
190532 t_TAIL_03,
190533 t_TAIL_04,
190534 t_TAIL_05>& rhs)
190535{
190536 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190537
190538 if (lhs.index() != rhs.index()) {
190539 return false;
190540 }
190541 else if (lhs.valueless_by_exception()) {
190542 return true;
190543 }
190544 return ImpUtil::Equal(lhs, rhs);
190545}
190546#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
190547
190548#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
190549template <class t_HEAD, class t_TAIL_01,
190550 class t_TAIL_02,
190551 class t_TAIL_03,
190552 class t_TAIL_04,
190553 class t_TAIL_05,
190554 class t_TAIL_06>
190555bool operator==(const variant<t_HEAD, t_TAIL_01,
190556 t_TAIL_02,
190557 t_TAIL_03,
190558 t_TAIL_04,
190559 t_TAIL_05,
190560 t_TAIL_06>& lhs,
190561 const variant<t_HEAD, t_TAIL_01,
190562 t_TAIL_02,
190563 t_TAIL_03,
190564 t_TAIL_04,
190565 t_TAIL_05,
190566 t_TAIL_06>& rhs)
190567{
190568 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190569
190570 if (lhs.index() != rhs.index()) {
190571 return false;
190572 }
190573 else if (lhs.valueless_by_exception()) {
190574 return true;
190575 }
190576 return ImpUtil::Equal(lhs, rhs);
190577}
190578#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
190579
190580#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
190581template <class t_HEAD, class t_TAIL_01,
190582 class t_TAIL_02,
190583 class t_TAIL_03,
190584 class t_TAIL_04,
190585 class t_TAIL_05,
190586 class t_TAIL_06,
190587 class t_TAIL_07>
190588bool operator==(const variant<t_HEAD, t_TAIL_01,
190589 t_TAIL_02,
190590 t_TAIL_03,
190591 t_TAIL_04,
190592 t_TAIL_05,
190593 t_TAIL_06,
190594 t_TAIL_07>& lhs,
190595 const variant<t_HEAD, t_TAIL_01,
190596 t_TAIL_02,
190597 t_TAIL_03,
190598 t_TAIL_04,
190599 t_TAIL_05,
190600 t_TAIL_06,
190601 t_TAIL_07>& rhs)
190602{
190603 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190604
190605 if (lhs.index() != rhs.index()) {
190606 return false;
190607 }
190608 else if (lhs.valueless_by_exception()) {
190609 return true;
190610 }
190611 return ImpUtil::Equal(lhs, rhs);
190612}
190613#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
190614
190615#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
190616template <class t_HEAD, class t_TAIL_01,
190617 class t_TAIL_02,
190618 class t_TAIL_03,
190619 class t_TAIL_04,
190620 class t_TAIL_05,
190621 class t_TAIL_06,
190622 class t_TAIL_07,
190623 class t_TAIL_08>
190624bool operator==(const variant<t_HEAD, t_TAIL_01,
190625 t_TAIL_02,
190626 t_TAIL_03,
190627 t_TAIL_04,
190628 t_TAIL_05,
190629 t_TAIL_06,
190630 t_TAIL_07,
190631 t_TAIL_08>& lhs,
190632 const variant<t_HEAD, t_TAIL_01,
190633 t_TAIL_02,
190634 t_TAIL_03,
190635 t_TAIL_04,
190636 t_TAIL_05,
190637 t_TAIL_06,
190638 t_TAIL_07,
190639 t_TAIL_08>& rhs)
190640{
190641 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190642
190643 if (lhs.index() != rhs.index()) {
190644 return false;
190645 }
190646 else if (lhs.valueless_by_exception()) {
190647 return true;
190648 }
190649 return ImpUtil::Equal(lhs, rhs);
190650}
190651#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
190652
190653#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
190654template <class t_HEAD, class t_TAIL_01,
190655 class t_TAIL_02,
190656 class t_TAIL_03,
190657 class t_TAIL_04,
190658 class t_TAIL_05,
190659 class t_TAIL_06,
190660 class t_TAIL_07,
190661 class t_TAIL_08,
190662 class t_TAIL_09>
190663bool operator==(const variant<t_HEAD, t_TAIL_01,
190664 t_TAIL_02,
190665 t_TAIL_03,
190666 t_TAIL_04,
190667 t_TAIL_05,
190668 t_TAIL_06,
190669 t_TAIL_07,
190670 t_TAIL_08,
190671 t_TAIL_09>& lhs,
190672 const variant<t_HEAD, t_TAIL_01,
190673 t_TAIL_02,
190674 t_TAIL_03,
190675 t_TAIL_04,
190676 t_TAIL_05,
190677 t_TAIL_06,
190678 t_TAIL_07,
190679 t_TAIL_08,
190680 t_TAIL_09>& rhs)
190681{
190682 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190683
190684 if (lhs.index() != rhs.index()) {
190685 return false;
190686 }
190687 else if (lhs.valueless_by_exception()) {
190688 return true;
190689 }
190690 return ImpUtil::Equal(lhs, rhs);
190691}
190692#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
190693
190694#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
190695template <class t_HEAD, class t_TAIL_01,
190696 class t_TAIL_02,
190697 class t_TAIL_03,
190698 class t_TAIL_04,
190699 class t_TAIL_05,
190700 class t_TAIL_06,
190701 class t_TAIL_07,
190702 class t_TAIL_08,
190703 class t_TAIL_09,
190704 class t_TAIL_10>
190705bool operator==(const variant<t_HEAD, t_TAIL_01,
190706 t_TAIL_02,
190707 t_TAIL_03,
190708 t_TAIL_04,
190709 t_TAIL_05,
190710 t_TAIL_06,
190711 t_TAIL_07,
190712 t_TAIL_08,
190713 t_TAIL_09,
190714 t_TAIL_10>& lhs,
190715 const variant<t_HEAD, t_TAIL_01,
190716 t_TAIL_02,
190717 t_TAIL_03,
190718 t_TAIL_04,
190719 t_TAIL_05,
190720 t_TAIL_06,
190721 t_TAIL_07,
190722 t_TAIL_08,
190723 t_TAIL_09,
190724 t_TAIL_10>& rhs)
190725{
190726 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190727
190728 if (lhs.index() != rhs.index()) {
190729 return false;
190730 }
190731 else if (lhs.valueless_by_exception()) {
190732 return true;
190733 }
190734 return ImpUtil::Equal(lhs, rhs);
190735}
190736#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
190737
190738#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
190739template <class t_HEAD, class t_TAIL_01,
190740 class t_TAIL_02,
190741 class t_TAIL_03,
190742 class t_TAIL_04,
190743 class t_TAIL_05,
190744 class t_TAIL_06,
190745 class t_TAIL_07,
190746 class t_TAIL_08,
190747 class t_TAIL_09,
190748 class t_TAIL_10,
190749 class t_TAIL_11>
190750bool operator==(const variant<t_HEAD, t_TAIL_01,
190751 t_TAIL_02,
190752 t_TAIL_03,
190753 t_TAIL_04,
190754 t_TAIL_05,
190755 t_TAIL_06,
190756 t_TAIL_07,
190757 t_TAIL_08,
190758 t_TAIL_09,
190759 t_TAIL_10,
190760 t_TAIL_11>& lhs,
190761 const variant<t_HEAD, t_TAIL_01,
190762 t_TAIL_02,
190763 t_TAIL_03,
190764 t_TAIL_04,
190765 t_TAIL_05,
190766 t_TAIL_06,
190767 t_TAIL_07,
190768 t_TAIL_08,
190769 t_TAIL_09,
190770 t_TAIL_10,
190771 t_TAIL_11>& rhs)
190772{
190773 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190774
190775 if (lhs.index() != rhs.index()) {
190776 return false;
190777 }
190778 else if (lhs.valueless_by_exception()) {
190779 return true;
190780 }
190781 return ImpUtil::Equal(lhs, rhs);
190782}
190783#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
190784
190785#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
190786template <class t_HEAD, class t_TAIL_01,
190787 class t_TAIL_02,
190788 class t_TAIL_03,
190789 class t_TAIL_04,
190790 class t_TAIL_05,
190791 class t_TAIL_06,
190792 class t_TAIL_07,
190793 class t_TAIL_08,
190794 class t_TAIL_09,
190795 class t_TAIL_10,
190796 class t_TAIL_11,
190797 class t_TAIL_12>
190798bool operator==(const variant<t_HEAD, t_TAIL_01,
190799 t_TAIL_02,
190800 t_TAIL_03,
190801 t_TAIL_04,
190802 t_TAIL_05,
190803 t_TAIL_06,
190804 t_TAIL_07,
190805 t_TAIL_08,
190806 t_TAIL_09,
190807 t_TAIL_10,
190808 t_TAIL_11,
190809 t_TAIL_12>& lhs,
190810 const variant<t_HEAD, t_TAIL_01,
190811 t_TAIL_02,
190812 t_TAIL_03,
190813 t_TAIL_04,
190814 t_TAIL_05,
190815 t_TAIL_06,
190816 t_TAIL_07,
190817 t_TAIL_08,
190818 t_TAIL_09,
190819 t_TAIL_10,
190820 t_TAIL_11,
190821 t_TAIL_12>& rhs)
190822{
190823 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190824
190825 if (lhs.index() != rhs.index()) {
190826 return false;
190827 }
190828 else if (lhs.valueless_by_exception()) {
190829 return true;
190830 }
190831 return ImpUtil::Equal(lhs, rhs);
190832}
190833#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
190834
190835#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
190836template <class t_HEAD, class t_TAIL_01,
190837 class t_TAIL_02,
190838 class t_TAIL_03,
190839 class t_TAIL_04,
190840 class t_TAIL_05,
190841 class t_TAIL_06,
190842 class t_TAIL_07,
190843 class t_TAIL_08,
190844 class t_TAIL_09,
190845 class t_TAIL_10,
190846 class t_TAIL_11,
190847 class t_TAIL_12,
190848 class t_TAIL_13>
190849bool operator==(const variant<t_HEAD, t_TAIL_01,
190850 t_TAIL_02,
190851 t_TAIL_03,
190852 t_TAIL_04,
190853 t_TAIL_05,
190854 t_TAIL_06,
190855 t_TAIL_07,
190856 t_TAIL_08,
190857 t_TAIL_09,
190858 t_TAIL_10,
190859 t_TAIL_11,
190860 t_TAIL_12,
190861 t_TAIL_13>& lhs,
190862 const variant<t_HEAD, t_TAIL_01,
190863 t_TAIL_02,
190864 t_TAIL_03,
190865 t_TAIL_04,
190866 t_TAIL_05,
190867 t_TAIL_06,
190868 t_TAIL_07,
190869 t_TAIL_08,
190870 t_TAIL_09,
190871 t_TAIL_10,
190872 t_TAIL_11,
190873 t_TAIL_12,
190874 t_TAIL_13>& rhs)
190875{
190876 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190877
190878 if (lhs.index() != rhs.index()) {
190879 return false;
190880 }
190881 else if (lhs.valueless_by_exception()) {
190882 return true;
190883 }
190884 return ImpUtil::Equal(lhs, rhs);
190885}
190886#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
190887
190888#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
190889template <class t_HEAD, class t_TAIL_01,
190890 class t_TAIL_02,
190891 class t_TAIL_03,
190892 class t_TAIL_04,
190893 class t_TAIL_05,
190894 class t_TAIL_06,
190895 class t_TAIL_07,
190896 class t_TAIL_08,
190897 class t_TAIL_09,
190898 class t_TAIL_10,
190899 class t_TAIL_11,
190900 class t_TAIL_12,
190901 class t_TAIL_13,
190902 class t_TAIL_14>
190903bool operator==(const variant<t_HEAD, t_TAIL_01,
190904 t_TAIL_02,
190905 t_TAIL_03,
190906 t_TAIL_04,
190907 t_TAIL_05,
190908 t_TAIL_06,
190909 t_TAIL_07,
190910 t_TAIL_08,
190911 t_TAIL_09,
190912 t_TAIL_10,
190913 t_TAIL_11,
190914 t_TAIL_12,
190915 t_TAIL_13,
190916 t_TAIL_14>& lhs,
190917 const variant<t_HEAD, t_TAIL_01,
190918 t_TAIL_02,
190919 t_TAIL_03,
190920 t_TAIL_04,
190921 t_TAIL_05,
190922 t_TAIL_06,
190923 t_TAIL_07,
190924 t_TAIL_08,
190925 t_TAIL_09,
190926 t_TAIL_10,
190927 t_TAIL_11,
190928 t_TAIL_12,
190929 t_TAIL_13,
190930 t_TAIL_14>& rhs)
190931{
190932 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190933
190934 if (lhs.index() != rhs.index()) {
190935 return false;
190936 }
190937 else if (lhs.valueless_by_exception()) {
190938 return true;
190939 }
190940 return ImpUtil::Equal(lhs, rhs);
190941}
190942#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
190943
190944#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
190945template <class t_HEAD, class t_TAIL_01,
190946 class t_TAIL_02,
190947 class t_TAIL_03,
190948 class t_TAIL_04,
190949 class t_TAIL_05,
190950 class t_TAIL_06,
190951 class t_TAIL_07,
190952 class t_TAIL_08,
190953 class t_TAIL_09,
190954 class t_TAIL_10,
190955 class t_TAIL_11,
190956 class t_TAIL_12,
190957 class t_TAIL_13,
190958 class t_TAIL_14,
190959 class t_TAIL_15>
190960bool operator==(const variant<t_HEAD, t_TAIL_01,
190961 t_TAIL_02,
190962 t_TAIL_03,
190963 t_TAIL_04,
190964 t_TAIL_05,
190965 t_TAIL_06,
190966 t_TAIL_07,
190967 t_TAIL_08,
190968 t_TAIL_09,
190969 t_TAIL_10,
190970 t_TAIL_11,
190971 t_TAIL_12,
190972 t_TAIL_13,
190973 t_TAIL_14,
190974 t_TAIL_15>& lhs,
190975 const variant<t_HEAD, t_TAIL_01,
190976 t_TAIL_02,
190977 t_TAIL_03,
190978 t_TAIL_04,
190979 t_TAIL_05,
190980 t_TAIL_06,
190981 t_TAIL_07,
190982 t_TAIL_08,
190983 t_TAIL_09,
190984 t_TAIL_10,
190985 t_TAIL_11,
190986 t_TAIL_12,
190987 t_TAIL_13,
190988 t_TAIL_14,
190989 t_TAIL_15>& rhs)
190990{
190991 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
190992
190993 if (lhs.index() != rhs.index()) {
190994 return false;
190995 }
190996 else if (lhs.valueless_by_exception()) {
190997 return true;
190998 }
190999 return ImpUtil::Equal(lhs, rhs);
191000}
191001#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
191002
191003#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
191004template <class t_HEAD, class t_TAIL_01,
191005 class t_TAIL_02,
191006 class t_TAIL_03,
191007 class t_TAIL_04,
191008 class t_TAIL_05,
191009 class t_TAIL_06,
191010 class t_TAIL_07,
191011 class t_TAIL_08,
191012 class t_TAIL_09,
191013 class t_TAIL_10,
191014 class t_TAIL_11,
191015 class t_TAIL_12,
191016 class t_TAIL_13,
191017 class t_TAIL_14,
191018 class t_TAIL_15,
191019 class t_TAIL_16>
191020bool operator==(const variant<t_HEAD, t_TAIL_01,
191021 t_TAIL_02,
191022 t_TAIL_03,
191023 t_TAIL_04,
191024 t_TAIL_05,
191025 t_TAIL_06,
191026 t_TAIL_07,
191027 t_TAIL_08,
191028 t_TAIL_09,
191029 t_TAIL_10,
191030 t_TAIL_11,
191031 t_TAIL_12,
191032 t_TAIL_13,
191033 t_TAIL_14,
191034 t_TAIL_15,
191035 t_TAIL_16>& lhs,
191036 const variant<t_HEAD, t_TAIL_01,
191037 t_TAIL_02,
191038 t_TAIL_03,
191039 t_TAIL_04,
191040 t_TAIL_05,
191041 t_TAIL_06,
191042 t_TAIL_07,
191043 t_TAIL_08,
191044 t_TAIL_09,
191045 t_TAIL_10,
191046 t_TAIL_11,
191047 t_TAIL_12,
191048 t_TAIL_13,
191049 t_TAIL_14,
191050 t_TAIL_15,
191051 t_TAIL_16>& rhs)
191052{
191053 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191054
191055 if (lhs.index() != rhs.index()) {
191056 return false;
191057 }
191058 else if (lhs.valueless_by_exception()) {
191059 return true;
191060 }
191061 return ImpUtil::Equal(lhs, rhs);
191062}
191063#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
191064
191065#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
191066template <class t_HEAD, class t_TAIL_01,
191067 class t_TAIL_02,
191068 class t_TAIL_03,
191069 class t_TAIL_04,
191070 class t_TAIL_05,
191071 class t_TAIL_06,
191072 class t_TAIL_07,
191073 class t_TAIL_08,
191074 class t_TAIL_09,
191075 class t_TAIL_10,
191076 class t_TAIL_11,
191077 class t_TAIL_12,
191078 class t_TAIL_13,
191079 class t_TAIL_14,
191080 class t_TAIL_15,
191081 class t_TAIL_16,
191082 class t_TAIL_17>
191083bool operator==(const variant<t_HEAD, t_TAIL_01,
191084 t_TAIL_02,
191085 t_TAIL_03,
191086 t_TAIL_04,
191087 t_TAIL_05,
191088 t_TAIL_06,
191089 t_TAIL_07,
191090 t_TAIL_08,
191091 t_TAIL_09,
191092 t_TAIL_10,
191093 t_TAIL_11,
191094 t_TAIL_12,
191095 t_TAIL_13,
191096 t_TAIL_14,
191097 t_TAIL_15,
191098 t_TAIL_16,
191099 t_TAIL_17>& lhs,
191100 const variant<t_HEAD, t_TAIL_01,
191101 t_TAIL_02,
191102 t_TAIL_03,
191103 t_TAIL_04,
191104 t_TAIL_05,
191105 t_TAIL_06,
191106 t_TAIL_07,
191107 t_TAIL_08,
191108 t_TAIL_09,
191109 t_TAIL_10,
191110 t_TAIL_11,
191111 t_TAIL_12,
191112 t_TAIL_13,
191113 t_TAIL_14,
191114 t_TAIL_15,
191115 t_TAIL_16,
191116 t_TAIL_17>& rhs)
191117{
191118 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191119
191120 if (lhs.index() != rhs.index()) {
191121 return false;
191122 }
191123 else if (lhs.valueless_by_exception()) {
191124 return true;
191125 }
191126 return ImpUtil::Equal(lhs, rhs);
191127}
191128#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
191129
191130#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
191131template <class t_HEAD, class t_TAIL_01,
191132 class t_TAIL_02,
191133 class t_TAIL_03,
191134 class t_TAIL_04,
191135 class t_TAIL_05,
191136 class t_TAIL_06,
191137 class t_TAIL_07,
191138 class t_TAIL_08,
191139 class t_TAIL_09,
191140 class t_TAIL_10,
191141 class t_TAIL_11,
191142 class t_TAIL_12,
191143 class t_TAIL_13,
191144 class t_TAIL_14,
191145 class t_TAIL_15,
191146 class t_TAIL_16,
191147 class t_TAIL_17,
191148 class t_TAIL_18>
191149bool operator==(const variant<t_HEAD, t_TAIL_01,
191150 t_TAIL_02,
191151 t_TAIL_03,
191152 t_TAIL_04,
191153 t_TAIL_05,
191154 t_TAIL_06,
191155 t_TAIL_07,
191156 t_TAIL_08,
191157 t_TAIL_09,
191158 t_TAIL_10,
191159 t_TAIL_11,
191160 t_TAIL_12,
191161 t_TAIL_13,
191162 t_TAIL_14,
191163 t_TAIL_15,
191164 t_TAIL_16,
191165 t_TAIL_17,
191166 t_TAIL_18>& lhs,
191167 const variant<t_HEAD, t_TAIL_01,
191168 t_TAIL_02,
191169 t_TAIL_03,
191170 t_TAIL_04,
191171 t_TAIL_05,
191172 t_TAIL_06,
191173 t_TAIL_07,
191174 t_TAIL_08,
191175 t_TAIL_09,
191176 t_TAIL_10,
191177 t_TAIL_11,
191178 t_TAIL_12,
191179 t_TAIL_13,
191180 t_TAIL_14,
191181 t_TAIL_15,
191182 t_TAIL_16,
191183 t_TAIL_17,
191184 t_TAIL_18>& rhs)
191185{
191186 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191187
191188 if (lhs.index() != rhs.index()) {
191189 return false;
191190 }
191191 else if (lhs.valueless_by_exception()) {
191192 return true;
191193 }
191194 return ImpUtil::Equal(lhs, rhs);
191195}
191196#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
191197
191198
191199#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
191200template <class t_HEAD>
191201bool operator!=(const variant<t_HEAD>& lhs,
191202 const variant<t_HEAD>& rhs)
191203{
191204 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191205
191206 if (lhs.index() != rhs.index()) {
191207 return true;
191208 }
191209 else if (lhs.valueless_by_exception()) {
191210 return false;
191211 }
191212 return ImpUtil::NotEqual(lhs, rhs);
191213}
191214#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
191215
191216#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
191217template <class t_HEAD, class t_TAIL_01>
191218bool operator!=(const variant<t_HEAD, t_TAIL_01>& lhs,
191219 const variant<t_HEAD, t_TAIL_01>& rhs)
191220{
191221 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191222
191223 if (lhs.index() != rhs.index()) {
191224 return true;
191225 }
191226 else if (lhs.valueless_by_exception()) {
191227 return false;
191228 }
191229 return ImpUtil::NotEqual(lhs, rhs);
191230}
191231#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
191232
191233#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
191234template <class t_HEAD, class t_TAIL_01,
191235 class t_TAIL_02>
191236bool operator!=(const variant<t_HEAD, t_TAIL_01,
191237 t_TAIL_02>& lhs,
191238 const variant<t_HEAD, t_TAIL_01,
191239 t_TAIL_02>& rhs)
191240{
191241 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191242
191243 if (lhs.index() != rhs.index()) {
191244 return true;
191245 }
191246 else if (lhs.valueless_by_exception()) {
191247 return false;
191248 }
191249 return ImpUtil::NotEqual(lhs, rhs);
191250}
191251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
191252
191253#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
191254template <class t_HEAD, class t_TAIL_01,
191255 class t_TAIL_02,
191256 class t_TAIL_03>
191257bool operator!=(const variant<t_HEAD, t_TAIL_01,
191258 t_TAIL_02,
191259 t_TAIL_03>& lhs,
191260 const variant<t_HEAD, t_TAIL_01,
191261 t_TAIL_02,
191262 t_TAIL_03>& rhs)
191263{
191264 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191265
191266 if (lhs.index() != rhs.index()) {
191267 return true;
191268 }
191269 else if (lhs.valueless_by_exception()) {
191270 return false;
191271 }
191272 return ImpUtil::NotEqual(lhs, rhs);
191273}
191274#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
191275
191276#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
191277template <class t_HEAD, class t_TAIL_01,
191278 class t_TAIL_02,
191279 class t_TAIL_03,
191280 class t_TAIL_04>
191281bool operator!=(const variant<t_HEAD, t_TAIL_01,
191282 t_TAIL_02,
191283 t_TAIL_03,
191284 t_TAIL_04>& lhs,
191285 const variant<t_HEAD, t_TAIL_01,
191286 t_TAIL_02,
191287 t_TAIL_03,
191288 t_TAIL_04>& rhs)
191289{
191290 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191291
191292 if (lhs.index() != rhs.index()) {
191293 return true;
191294 }
191295 else if (lhs.valueless_by_exception()) {
191296 return false;
191297 }
191298 return ImpUtil::NotEqual(lhs, rhs);
191299}
191300#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
191301
191302#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
191303template <class t_HEAD, class t_TAIL_01,
191304 class t_TAIL_02,
191305 class t_TAIL_03,
191306 class t_TAIL_04,
191307 class t_TAIL_05>
191308bool operator!=(const variant<t_HEAD, t_TAIL_01,
191309 t_TAIL_02,
191310 t_TAIL_03,
191311 t_TAIL_04,
191312 t_TAIL_05>& lhs,
191313 const variant<t_HEAD, t_TAIL_01,
191314 t_TAIL_02,
191315 t_TAIL_03,
191316 t_TAIL_04,
191317 t_TAIL_05>& rhs)
191318{
191319 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191320
191321 if (lhs.index() != rhs.index()) {
191322 return true;
191323 }
191324 else if (lhs.valueless_by_exception()) {
191325 return false;
191326 }
191327 return ImpUtil::NotEqual(lhs, rhs);
191328}
191329#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
191330
191331#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
191332template <class t_HEAD, class t_TAIL_01,
191333 class t_TAIL_02,
191334 class t_TAIL_03,
191335 class t_TAIL_04,
191336 class t_TAIL_05,
191337 class t_TAIL_06>
191338bool operator!=(const variant<t_HEAD, t_TAIL_01,
191339 t_TAIL_02,
191340 t_TAIL_03,
191341 t_TAIL_04,
191342 t_TAIL_05,
191343 t_TAIL_06>& lhs,
191344 const variant<t_HEAD, t_TAIL_01,
191345 t_TAIL_02,
191346 t_TAIL_03,
191347 t_TAIL_04,
191348 t_TAIL_05,
191349 t_TAIL_06>& rhs)
191350{
191351 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191352
191353 if (lhs.index() != rhs.index()) {
191354 return true;
191355 }
191356 else if (lhs.valueless_by_exception()) {
191357 return false;
191358 }
191359 return ImpUtil::NotEqual(lhs, rhs);
191360}
191361#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
191362
191363#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
191364template <class t_HEAD, class t_TAIL_01,
191365 class t_TAIL_02,
191366 class t_TAIL_03,
191367 class t_TAIL_04,
191368 class t_TAIL_05,
191369 class t_TAIL_06,
191370 class t_TAIL_07>
191371bool operator!=(const variant<t_HEAD, t_TAIL_01,
191372 t_TAIL_02,
191373 t_TAIL_03,
191374 t_TAIL_04,
191375 t_TAIL_05,
191376 t_TAIL_06,
191377 t_TAIL_07>& lhs,
191378 const variant<t_HEAD, t_TAIL_01,
191379 t_TAIL_02,
191380 t_TAIL_03,
191381 t_TAIL_04,
191382 t_TAIL_05,
191383 t_TAIL_06,
191384 t_TAIL_07>& rhs)
191385{
191386 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191387
191388 if (lhs.index() != rhs.index()) {
191389 return true;
191390 }
191391 else if (lhs.valueless_by_exception()) {
191392 return false;
191393 }
191394 return ImpUtil::NotEqual(lhs, rhs);
191395}
191396#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
191397
191398#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
191399template <class t_HEAD, class t_TAIL_01,
191400 class t_TAIL_02,
191401 class t_TAIL_03,
191402 class t_TAIL_04,
191403 class t_TAIL_05,
191404 class t_TAIL_06,
191405 class t_TAIL_07,
191406 class t_TAIL_08>
191407bool operator!=(const variant<t_HEAD, t_TAIL_01,
191408 t_TAIL_02,
191409 t_TAIL_03,
191410 t_TAIL_04,
191411 t_TAIL_05,
191412 t_TAIL_06,
191413 t_TAIL_07,
191414 t_TAIL_08>& lhs,
191415 const variant<t_HEAD, t_TAIL_01,
191416 t_TAIL_02,
191417 t_TAIL_03,
191418 t_TAIL_04,
191419 t_TAIL_05,
191420 t_TAIL_06,
191421 t_TAIL_07,
191422 t_TAIL_08>& rhs)
191423{
191424 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191425
191426 if (lhs.index() != rhs.index()) {
191427 return true;
191428 }
191429 else if (lhs.valueless_by_exception()) {
191430 return false;
191431 }
191432 return ImpUtil::NotEqual(lhs, rhs);
191433}
191434#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
191435
191436#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
191437template <class t_HEAD, class t_TAIL_01,
191438 class t_TAIL_02,
191439 class t_TAIL_03,
191440 class t_TAIL_04,
191441 class t_TAIL_05,
191442 class t_TAIL_06,
191443 class t_TAIL_07,
191444 class t_TAIL_08,
191445 class t_TAIL_09>
191446bool operator!=(const variant<t_HEAD, t_TAIL_01,
191447 t_TAIL_02,
191448 t_TAIL_03,
191449 t_TAIL_04,
191450 t_TAIL_05,
191451 t_TAIL_06,
191452 t_TAIL_07,
191453 t_TAIL_08,
191454 t_TAIL_09>& lhs,
191455 const variant<t_HEAD, t_TAIL_01,
191456 t_TAIL_02,
191457 t_TAIL_03,
191458 t_TAIL_04,
191459 t_TAIL_05,
191460 t_TAIL_06,
191461 t_TAIL_07,
191462 t_TAIL_08,
191463 t_TAIL_09>& rhs)
191464{
191465 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191466
191467 if (lhs.index() != rhs.index()) {
191468 return true;
191469 }
191470 else if (lhs.valueless_by_exception()) {
191471 return false;
191472 }
191473 return ImpUtil::NotEqual(lhs, rhs);
191474}
191475#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
191476
191477#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
191478template <class t_HEAD, class t_TAIL_01,
191479 class t_TAIL_02,
191480 class t_TAIL_03,
191481 class t_TAIL_04,
191482 class t_TAIL_05,
191483 class t_TAIL_06,
191484 class t_TAIL_07,
191485 class t_TAIL_08,
191486 class t_TAIL_09,
191487 class t_TAIL_10>
191488bool operator!=(const variant<t_HEAD, t_TAIL_01,
191489 t_TAIL_02,
191490 t_TAIL_03,
191491 t_TAIL_04,
191492 t_TAIL_05,
191493 t_TAIL_06,
191494 t_TAIL_07,
191495 t_TAIL_08,
191496 t_TAIL_09,
191497 t_TAIL_10>& lhs,
191498 const variant<t_HEAD, t_TAIL_01,
191499 t_TAIL_02,
191500 t_TAIL_03,
191501 t_TAIL_04,
191502 t_TAIL_05,
191503 t_TAIL_06,
191504 t_TAIL_07,
191505 t_TAIL_08,
191506 t_TAIL_09,
191507 t_TAIL_10>& rhs)
191508{
191509 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191510
191511 if (lhs.index() != rhs.index()) {
191512 return true;
191513 }
191514 else if (lhs.valueless_by_exception()) {
191515 return false;
191516 }
191517 return ImpUtil::NotEqual(lhs, rhs);
191518}
191519#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
191520
191521#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
191522template <class t_HEAD, class t_TAIL_01,
191523 class t_TAIL_02,
191524 class t_TAIL_03,
191525 class t_TAIL_04,
191526 class t_TAIL_05,
191527 class t_TAIL_06,
191528 class t_TAIL_07,
191529 class t_TAIL_08,
191530 class t_TAIL_09,
191531 class t_TAIL_10,
191532 class t_TAIL_11>
191533bool operator!=(const variant<t_HEAD, t_TAIL_01,
191534 t_TAIL_02,
191535 t_TAIL_03,
191536 t_TAIL_04,
191537 t_TAIL_05,
191538 t_TAIL_06,
191539 t_TAIL_07,
191540 t_TAIL_08,
191541 t_TAIL_09,
191542 t_TAIL_10,
191543 t_TAIL_11>& lhs,
191544 const variant<t_HEAD, t_TAIL_01,
191545 t_TAIL_02,
191546 t_TAIL_03,
191547 t_TAIL_04,
191548 t_TAIL_05,
191549 t_TAIL_06,
191550 t_TAIL_07,
191551 t_TAIL_08,
191552 t_TAIL_09,
191553 t_TAIL_10,
191554 t_TAIL_11>& rhs)
191555{
191556 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191557
191558 if (lhs.index() != rhs.index()) {
191559 return true;
191560 }
191561 else if (lhs.valueless_by_exception()) {
191562 return false;
191563 }
191564 return ImpUtil::NotEqual(lhs, rhs);
191565}
191566#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
191567
191568#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
191569template <class t_HEAD, class t_TAIL_01,
191570 class t_TAIL_02,
191571 class t_TAIL_03,
191572 class t_TAIL_04,
191573 class t_TAIL_05,
191574 class t_TAIL_06,
191575 class t_TAIL_07,
191576 class t_TAIL_08,
191577 class t_TAIL_09,
191578 class t_TAIL_10,
191579 class t_TAIL_11,
191580 class t_TAIL_12>
191581bool operator!=(const variant<t_HEAD, t_TAIL_01,
191582 t_TAIL_02,
191583 t_TAIL_03,
191584 t_TAIL_04,
191585 t_TAIL_05,
191586 t_TAIL_06,
191587 t_TAIL_07,
191588 t_TAIL_08,
191589 t_TAIL_09,
191590 t_TAIL_10,
191591 t_TAIL_11,
191592 t_TAIL_12>& lhs,
191593 const variant<t_HEAD, t_TAIL_01,
191594 t_TAIL_02,
191595 t_TAIL_03,
191596 t_TAIL_04,
191597 t_TAIL_05,
191598 t_TAIL_06,
191599 t_TAIL_07,
191600 t_TAIL_08,
191601 t_TAIL_09,
191602 t_TAIL_10,
191603 t_TAIL_11,
191604 t_TAIL_12>& rhs)
191605{
191606 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191607
191608 if (lhs.index() != rhs.index()) {
191609 return true;
191610 }
191611 else if (lhs.valueless_by_exception()) {
191612 return false;
191613 }
191614 return ImpUtil::NotEqual(lhs, rhs);
191615}
191616#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
191617
191618#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
191619template <class t_HEAD, class t_TAIL_01,
191620 class t_TAIL_02,
191621 class t_TAIL_03,
191622 class t_TAIL_04,
191623 class t_TAIL_05,
191624 class t_TAIL_06,
191625 class t_TAIL_07,
191626 class t_TAIL_08,
191627 class t_TAIL_09,
191628 class t_TAIL_10,
191629 class t_TAIL_11,
191630 class t_TAIL_12,
191631 class t_TAIL_13>
191632bool operator!=(const variant<t_HEAD, t_TAIL_01,
191633 t_TAIL_02,
191634 t_TAIL_03,
191635 t_TAIL_04,
191636 t_TAIL_05,
191637 t_TAIL_06,
191638 t_TAIL_07,
191639 t_TAIL_08,
191640 t_TAIL_09,
191641 t_TAIL_10,
191642 t_TAIL_11,
191643 t_TAIL_12,
191644 t_TAIL_13>& lhs,
191645 const variant<t_HEAD, t_TAIL_01,
191646 t_TAIL_02,
191647 t_TAIL_03,
191648 t_TAIL_04,
191649 t_TAIL_05,
191650 t_TAIL_06,
191651 t_TAIL_07,
191652 t_TAIL_08,
191653 t_TAIL_09,
191654 t_TAIL_10,
191655 t_TAIL_11,
191656 t_TAIL_12,
191657 t_TAIL_13>& rhs)
191658{
191659 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191660
191661 if (lhs.index() != rhs.index()) {
191662 return true;
191663 }
191664 else if (lhs.valueless_by_exception()) {
191665 return false;
191666 }
191667 return ImpUtil::NotEqual(lhs, rhs);
191668}
191669#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
191670
191671#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
191672template <class t_HEAD, class t_TAIL_01,
191673 class t_TAIL_02,
191674 class t_TAIL_03,
191675 class t_TAIL_04,
191676 class t_TAIL_05,
191677 class t_TAIL_06,
191678 class t_TAIL_07,
191679 class t_TAIL_08,
191680 class t_TAIL_09,
191681 class t_TAIL_10,
191682 class t_TAIL_11,
191683 class t_TAIL_12,
191684 class t_TAIL_13,
191685 class t_TAIL_14>
191686bool operator!=(const variant<t_HEAD, t_TAIL_01,
191687 t_TAIL_02,
191688 t_TAIL_03,
191689 t_TAIL_04,
191690 t_TAIL_05,
191691 t_TAIL_06,
191692 t_TAIL_07,
191693 t_TAIL_08,
191694 t_TAIL_09,
191695 t_TAIL_10,
191696 t_TAIL_11,
191697 t_TAIL_12,
191698 t_TAIL_13,
191699 t_TAIL_14>& lhs,
191700 const variant<t_HEAD, t_TAIL_01,
191701 t_TAIL_02,
191702 t_TAIL_03,
191703 t_TAIL_04,
191704 t_TAIL_05,
191705 t_TAIL_06,
191706 t_TAIL_07,
191707 t_TAIL_08,
191708 t_TAIL_09,
191709 t_TAIL_10,
191710 t_TAIL_11,
191711 t_TAIL_12,
191712 t_TAIL_13,
191713 t_TAIL_14>& rhs)
191714{
191715 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191716
191717 if (lhs.index() != rhs.index()) {
191718 return true;
191719 }
191720 else if (lhs.valueless_by_exception()) {
191721 return false;
191722 }
191723 return ImpUtil::NotEqual(lhs, rhs);
191724}
191725#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
191726
191727#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
191728template <class t_HEAD, class t_TAIL_01,
191729 class t_TAIL_02,
191730 class t_TAIL_03,
191731 class t_TAIL_04,
191732 class t_TAIL_05,
191733 class t_TAIL_06,
191734 class t_TAIL_07,
191735 class t_TAIL_08,
191736 class t_TAIL_09,
191737 class t_TAIL_10,
191738 class t_TAIL_11,
191739 class t_TAIL_12,
191740 class t_TAIL_13,
191741 class t_TAIL_14,
191742 class t_TAIL_15>
191743bool operator!=(const variant<t_HEAD, t_TAIL_01,
191744 t_TAIL_02,
191745 t_TAIL_03,
191746 t_TAIL_04,
191747 t_TAIL_05,
191748 t_TAIL_06,
191749 t_TAIL_07,
191750 t_TAIL_08,
191751 t_TAIL_09,
191752 t_TAIL_10,
191753 t_TAIL_11,
191754 t_TAIL_12,
191755 t_TAIL_13,
191756 t_TAIL_14,
191757 t_TAIL_15>& lhs,
191758 const variant<t_HEAD, t_TAIL_01,
191759 t_TAIL_02,
191760 t_TAIL_03,
191761 t_TAIL_04,
191762 t_TAIL_05,
191763 t_TAIL_06,
191764 t_TAIL_07,
191765 t_TAIL_08,
191766 t_TAIL_09,
191767 t_TAIL_10,
191768 t_TAIL_11,
191769 t_TAIL_12,
191770 t_TAIL_13,
191771 t_TAIL_14,
191772 t_TAIL_15>& rhs)
191773{
191774 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191775
191776 if (lhs.index() != rhs.index()) {
191777 return true;
191778 }
191779 else if (lhs.valueless_by_exception()) {
191780 return false;
191781 }
191782 return ImpUtil::NotEqual(lhs, rhs);
191783}
191784#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
191785
191786#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
191787template <class t_HEAD, class t_TAIL_01,
191788 class t_TAIL_02,
191789 class t_TAIL_03,
191790 class t_TAIL_04,
191791 class t_TAIL_05,
191792 class t_TAIL_06,
191793 class t_TAIL_07,
191794 class t_TAIL_08,
191795 class t_TAIL_09,
191796 class t_TAIL_10,
191797 class t_TAIL_11,
191798 class t_TAIL_12,
191799 class t_TAIL_13,
191800 class t_TAIL_14,
191801 class t_TAIL_15,
191802 class t_TAIL_16>
191803bool operator!=(const variant<t_HEAD, t_TAIL_01,
191804 t_TAIL_02,
191805 t_TAIL_03,
191806 t_TAIL_04,
191807 t_TAIL_05,
191808 t_TAIL_06,
191809 t_TAIL_07,
191810 t_TAIL_08,
191811 t_TAIL_09,
191812 t_TAIL_10,
191813 t_TAIL_11,
191814 t_TAIL_12,
191815 t_TAIL_13,
191816 t_TAIL_14,
191817 t_TAIL_15,
191818 t_TAIL_16>& lhs,
191819 const variant<t_HEAD, t_TAIL_01,
191820 t_TAIL_02,
191821 t_TAIL_03,
191822 t_TAIL_04,
191823 t_TAIL_05,
191824 t_TAIL_06,
191825 t_TAIL_07,
191826 t_TAIL_08,
191827 t_TAIL_09,
191828 t_TAIL_10,
191829 t_TAIL_11,
191830 t_TAIL_12,
191831 t_TAIL_13,
191832 t_TAIL_14,
191833 t_TAIL_15,
191834 t_TAIL_16>& rhs)
191835{
191836 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191837
191838 if (lhs.index() != rhs.index()) {
191839 return true;
191840 }
191841 else if (lhs.valueless_by_exception()) {
191842 return false;
191843 }
191844 return ImpUtil::NotEqual(lhs, rhs);
191845}
191846#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
191847
191848#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
191849template <class t_HEAD, class t_TAIL_01,
191850 class t_TAIL_02,
191851 class t_TAIL_03,
191852 class t_TAIL_04,
191853 class t_TAIL_05,
191854 class t_TAIL_06,
191855 class t_TAIL_07,
191856 class t_TAIL_08,
191857 class t_TAIL_09,
191858 class t_TAIL_10,
191859 class t_TAIL_11,
191860 class t_TAIL_12,
191861 class t_TAIL_13,
191862 class t_TAIL_14,
191863 class t_TAIL_15,
191864 class t_TAIL_16,
191865 class t_TAIL_17>
191866bool operator!=(const variant<t_HEAD, t_TAIL_01,
191867 t_TAIL_02,
191868 t_TAIL_03,
191869 t_TAIL_04,
191870 t_TAIL_05,
191871 t_TAIL_06,
191872 t_TAIL_07,
191873 t_TAIL_08,
191874 t_TAIL_09,
191875 t_TAIL_10,
191876 t_TAIL_11,
191877 t_TAIL_12,
191878 t_TAIL_13,
191879 t_TAIL_14,
191880 t_TAIL_15,
191881 t_TAIL_16,
191882 t_TAIL_17>& lhs,
191883 const variant<t_HEAD, t_TAIL_01,
191884 t_TAIL_02,
191885 t_TAIL_03,
191886 t_TAIL_04,
191887 t_TAIL_05,
191888 t_TAIL_06,
191889 t_TAIL_07,
191890 t_TAIL_08,
191891 t_TAIL_09,
191892 t_TAIL_10,
191893 t_TAIL_11,
191894 t_TAIL_12,
191895 t_TAIL_13,
191896 t_TAIL_14,
191897 t_TAIL_15,
191898 t_TAIL_16,
191899 t_TAIL_17>& rhs)
191900{
191901 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191902
191903 if (lhs.index() != rhs.index()) {
191904 return true;
191905 }
191906 else if (lhs.valueless_by_exception()) {
191907 return false;
191908 }
191909 return ImpUtil::NotEqual(lhs, rhs);
191910}
191911#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
191912
191913#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
191914template <class t_HEAD, class t_TAIL_01,
191915 class t_TAIL_02,
191916 class t_TAIL_03,
191917 class t_TAIL_04,
191918 class t_TAIL_05,
191919 class t_TAIL_06,
191920 class t_TAIL_07,
191921 class t_TAIL_08,
191922 class t_TAIL_09,
191923 class t_TAIL_10,
191924 class t_TAIL_11,
191925 class t_TAIL_12,
191926 class t_TAIL_13,
191927 class t_TAIL_14,
191928 class t_TAIL_15,
191929 class t_TAIL_16,
191930 class t_TAIL_17,
191931 class t_TAIL_18>
191932bool operator!=(const variant<t_HEAD, t_TAIL_01,
191933 t_TAIL_02,
191934 t_TAIL_03,
191935 t_TAIL_04,
191936 t_TAIL_05,
191937 t_TAIL_06,
191938 t_TAIL_07,
191939 t_TAIL_08,
191940 t_TAIL_09,
191941 t_TAIL_10,
191942 t_TAIL_11,
191943 t_TAIL_12,
191944 t_TAIL_13,
191945 t_TAIL_14,
191946 t_TAIL_15,
191947 t_TAIL_16,
191948 t_TAIL_17,
191949 t_TAIL_18>& lhs,
191950 const variant<t_HEAD, t_TAIL_01,
191951 t_TAIL_02,
191952 t_TAIL_03,
191953 t_TAIL_04,
191954 t_TAIL_05,
191955 t_TAIL_06,
191956 t_TAIL_07,
191957 t_TAIL_08,
191958 t_TAIL_09,
191959 t_TAIL_10,
191960 t_TAIL_11,
191961 t_TAIL_12,
191962 t_TAIL_13,
191963 t_TAIL_14,
191964 t_TAIL_15,
191965 t_TAIL_16,
191966 t_TAIL_17,
191967 t_TAIL_18>& rhs)
191968{
191969 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191970
191971 if (lhs.index() != rhs.index()) {
191972 return true;
191973 }
191974 else if (lhs.valueless_by_exception()) {
191975 return false;
191976 }
191977 return ImpUtil::NotEqual(lhs, rhs);
191978}
191979#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
191980
191981
191982#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
191983template <class t_HEAD>
191984bool operator<(const variant<t_HEAD>& lhs,
191985 const variant<t_HEAD>& rhs)
191986{
191987 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
191988
191989 if (rhs.valueless_by_exception()) {
191990 return false;
191991 }
191992 else if (lhs.valueless_by_exception()) {
191993 return true;
191994 }
191995 else if (lhs.index() != rhs.index()) {
191996 return lhs.index() < rhs.index();
191997 }
191998 return ImpUtil::LessThan(lhs, rhs);
191999}
192000#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
192001
192002#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
192003template <class t_HEAD, class t_TAIL_01>
192004bool operator<(const variant<t_HEAD, t_TAIL_01>& lhs,
192005 const variant<t_HEAD, t_TAIL_01>& rhs)
192006{
192007 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192008
192009 if (rhs.valueless_by_exception()) {
192010 return false;
192011 }
192012 else if (lhs.valueless_by_exception()) {
192013 return true;
192014 }
192015 else if (lhs.index() != rhs.index()) {
192016 return lhs.index() < rhs.index();
192017 }
192018 return ImpUtil::LessThan(lhs, rhs);
192019}
192020#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
192021
192022#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
192023template <class t_HEAD, class t_TAIL_01,
192024 class t_TAIL_02>
192025bool operator<(const variant<t_HEAD, t_TAIL_01,
192026 t_TAIL_02>& lhs,
192027 const variant<t_HEAD, t_TAIL_01,
192028 t_TAIL_02>& rhs)
192029{
192030 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192031
192032 if (rhs.valueless_by_exception()) {
192033 return false;
192034 }
192035 else if (lhs.valueless_by_exception()) {
192036 return true;
192037 }
192038 else if (lhs.index() != rhs.index()) {
192039 return lhs.index() < rhs.index();
192040 }
192041 return ImpUtil::LessThan(lhs, rhs);
192042}
192043#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
192044
192045#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
192046template <class t_HEAD, class t_TAIL_01,
192047 class t_TAIL_02,
192048 class t_TAIL_03>
192049bool operator<(const variant<t_HEAD, t_TAIL_01,
192050 t_TAIL_02,
192051 t_TAIL_03>& lhs,
192052 const variant<t_HEAD, t_TAIL_01,
192053 t_TAIL_02,
192054 t_TAIL_03>& rhs)
192055{
192056 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192057
192058 if (rhs.valueless_by_exception()) {
192059 return false;
192060 }
192061 else if (lhs.valueless_by_exception()) {
192062 return true;
192063 }
192064 else if (lhs.index() != rhs.index()) {
192065 return lhs.index() < rhs.index();
192066 }
192067 return ImpUtil::LessThan(lhs, rhs);
192068}
192069#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
192070
192071#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
192072template <class t_HEAD, class t_TAIL_01,
192073 class t_TAIL_02,
192074 class t_TAIL_03,
192075 class t_TAIL_04>
192076bool operator<(const variant<t_HEAD, t_TAIL_01,
192077 t_TAIL_02,
192078 t_TAIL_03,
192079 t_TAIL_04>& lhs,
192080 const variant<t_HEAD, t_TAIL_01,
192081 t_TAIL_02,
192082 t_TAIL_03,
192083 t_TAIL_04>& rhs)
192084{
192085 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192086
192087 if (rhs.valueless_by_exception()) {
192088 return false;
192089 }
192090 else if (lhs.valueless_by_exception()) {
192091 return true;
192092 }
192093 else if (lhs.index() != rhs.index()) {
192094 return lhs.index() < rhs.index();
192095 }
192096 return ImpUtil::LessThan(lhs, rhs);
192097}
192098#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
192099
192100#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
192101template <class t_HEAD, class t_TAIL_01,
192102 class t_TAIL_02,
192103 class t_TAIL_03,
192104 class t_TAIL_04,
192105 class t_TAIL_05>
192106bool operator<(const variant<t_HEAD, t_TAIL_01,
192107 t_TAIL_02,
192108 t_TAIL_03,
192109 t_TAIL_04,
192110 t_TAIL_05>& lhs,
192111 const variant<t_HEAD, t_TAIL_01,
192112 t_TAIL_02,
192113 t_TAIL_03,
192114 t_TAIL_04,
192115 t_TAIL_05>& rhs)
192116{
192117 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192118
192119 if (rhs.valueless_by_exception()) {
192120 return false;
192121 }
192122 else if (lhs.valueless_by_exception()) {
192123 return true;
192124 }
192125 else if (lhs.index() != rhs.index()) {
192126 return lhs.index() < rhs.index();
192127 }
192128 return ImpUtil::LessThan(lhs, rhs);
192129}
192130#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
192131
192132#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
192133template <class t_HEAD, class t_TAIL_01,
192134 class t_TAIL_02,
192135 class t_TAIL_03,
192136 class t_TAIL_04,
192137 class t_TAIL_05,
192138 class t_TAIL_06>
192139bool operator<(const variant<t_HEAD, t_TAIL_01,
192140 t_TAIL_02,
192141 t_TAIL_03,
192142 t_TAIL_04,
192143 t_TAIL_05,
192144 t_TAIL_06>& lhs,
192145 const variant<t_HEAD, t_TAIL_01,
192146 t_TAIL_02,
192147 t_TAIL_03,
192148 t_TAIL_04,
192149 t_TAIL_05,
192150 t_TAIL_06>& rhs)
192151{
192152 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192153
192154 if (rhs.valueless_by_exception()) {
192155 return false;
192156 }
192157 else if (lhs.valueless_by_exception()) {
192158 return true;
192159 }
192160 else if (lhs.index() != rhs.index()) {
192161 return lhs.index() < rhs.index();
192162 }
192163 return ImpUtil::LessThan(lhs, rhs);
192164}
192165#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
192166
192167#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
192168template <class t_HEAD, class t_TAIL_01,
192169 class t_TAIL_02,
192170 class t_TAIL_03,
192171 class t_TAIL_04,
192172 class t_TAIL_05,
192173 class t_TAIL_06,
192174 class t_TAIL_07>
192175bool operator<(const variant<t_HEAD, t_TAIL_01,
192176 t_TAIL_02,
192177 t_TAIL_03,
192178 t_TAIL_04,
192179 t_TAIL_05,
192180 t_TAIL_06,
192181 t_TAIL_07>& lhs,
192182 const variant<t_HEAD, t_TAIL_01,
192183 t_TAIL_02,
192184 t_TAIL_03,
192185 t_TAIL_04,
192186 t_TAIL_05,
192187 t_TAIL_06,
192188 t_TAIL_07>& rhs)
192189{
192190 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192191
192192 if (rhs.valueless_by_exception()) {
192193 return false;
192194 }
192195 else if (lhs.valueless_by_exception()) {
192196 return true;
192197 }
192198 else if (lhs.index() != rhs.index()) {
192199 return lhs.index() < rhs.index();
192200 }
192201 return ImpUtil::LessThan(lhs, rhs);
192202}
192203#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
192204
192205#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
192206template <class t_HEAD, class t_TAIL_01,
192207 class t_TAIL_02,
192208 class t_TAIL_03,
192209 class t_TAIL_04,
192210 class t_TAIL_05,
192211 class t_TAIL_06,
192212 class t_TAIL_07,
192213 class t_TAIL_08>
192214bool operator<(const variant<t_HEAD, t_TAIL_01,
192215 t_TAIL_02,
192216 t_TAIL_03,
192217 t_TAIL_04,
192218 t_TAIL_05,
192219 t_TAIL_06,
192220 t_TAIL_07,
192221 t_TAIL_08>& lhs,
192222 const variant<t_HEAD, t_TAIL_01,
192223 t_TAIL_02,
192224 t_TAIL_03,
192225 t_TAIL_04,
192226 t_TAIL_05,
192227 t_TAIL_06,
192228 t_TAIL_07,
192229 t_TAIL_08>& rhs)
192230{
192231 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192232
192233 if (rhs.valueless_by_exception()) {
192234 return false;
192235 }
192236 else if (lhs.valueless_by_exception()) {
192237 return true;
192238 }
192239 else if (lhs.index() != rhs.index()) {
192240 return lhs.index() < rhs.index();
192241 }
192242 return ImpUtil::LessThan(lhs, rhs);
192243}
192244#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
192245
192246#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
192247template <class t_HEAD, class t_TAIL_01,
192248 class t_TAIL_02,
192249 class t_TAIL_03,
192250 class t_TAIL_04,
192251 class t_TAIL_05,
192252 class t_TAIL_06,
192253 class t_TAIL_07,
192254 class t_TAIL_08,
192255 class t_TAIL_09>
192256bool operator<(const variant<t_HEAD, t_TAIL_01,
192257 t_TAIL_02,
192258 t_TAIL_03,
192259 t_TAIL_04,
192260 t_TAIL_05,
192261 t_TAIL_06,
192262 t_TAIL_07,
192263 t_TAIL_08,
192264 t_TAIL_09>& lhs,
192265 const variant<t_HEAD, t_TAIL_01,
192266 t_TAIL_02,
192267 t_TAIL_03,
192268 t_TAIL_04,
192269 t_TAIL_05,
192270 t_TAIL_06,
192271 t_TAIL_07,
192272 t_TAIL_08,
192273 t_TAIL_09>& rhs)
192274{
192275 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192276
192277 if (rhs.valueless_by_exception()) {
192278 return false;
192279 }
192280 else if (lhs.valueless_by_exception()) {
192281 return true;
192282 }
192283 else if (lhs.index() != rhs.index()) {
192284 return lhs.index() < rhs.index();
192285 }
192286 return ImpUtil::LessThan(lhs, rhs);
192287}
192288#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
192289
192290#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
192291template <class t_HEAD, class t_TAIL_01,
192292 class t_TAIL_02,
192293 class t_TAIL_03,
192294 class t_TAIL_04,
192295 class t_TAIL_05,
192296 class t_TAIL_06,
192297 class t_TAIL_07,
192298 class t_TAIL_08,
192299 class t_TAIL_09,
192300 class t_TAIL_10>
192301bool operator<(const variant<t_HEAD, t_TAIL_01,
192302 t_TAIL_02,
192303 t_TAIL_03,
192304 t_TAIL_04,
192305 t_TAIL_05,
192306 t_TAIL_06,
192307 t_TAIL_07,
192308 t_TAIL_08,
192309 t_TAIL_09,
192310 t_TAIL_10>& lhs,
192311 const variant<t_HEAD, t_TAIL_01,
192312 t_TAIL_02,
192313 t_TAIL_03,
192314 t_TAIL_04,
192315 t_TAIL_05,
192316 t_TAIL_06,
192317 t_TAIL_07,
192318 t_TAIL_08,
192319 t_TAIL_09,
192320 t_TAIL_10>& rhs)
192321{
192322 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192323
192324 if (rhs.valueless_by_exception()) {
192325 return false;
192326 }
192327 else if (lhs.valueless_by_exception()) {
192328 return true;
192329 }
192330 else if (lhs.index() != rhs.index()) {
192331 return lhs.index() < rhs.index();
192332 }
192333 return ImpUtil::LessThan(lhs, rhs);
192334}
192335#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
192336
192337#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
192338template <class t_HEAD, class t_TAIL_01,
192339 class t_TAIL_02,
192340 class t_TAIL_03,
192341 class t_TAIL_04,
192342 class t_TAIL_05,
192343 class t_TAIL_06,
192344 class t_TAIL_07,
192345 class t_TAIL_08,
192346 class t_TAIL_09,
192347 class t_TAIL_10,
192348 class t_TAIL_11>
192349bool operator<(const variant<t_HEAD, t_TAIL_01,
192350 t_TAIL_02,
192351 t_TAIL_03,
192352 t_TAIL_04,
192353 t_TAIL_05,
192354 t_TAIL_06,
192355 t_TAIL_07,
192356 t_TAIL_08,
192357 t_TAIL_09,
192358 t_TAIL_10,
192359 t_TAIL_11>& lhs,
192360 const variant<t_HEAD, t_TAIL_01,
192361 t_TAIL_02,
192362 t_TAIL_03,
192363 t_TAIL_04,
192364 t_TAIL_05,
192365 t_TAIL_06,
192366 t_TAIL_07,
192367 t_TAIL_08,
192368 t_TAIL_09,
192369 t_TAIL_10,
192370 t_TAIL_11>& rhs)
192371{
192372 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192373
192374 if (rhs.valueless_by_exception()) {
192375 return false;
192376 }
192377 else if (lhs.valueless_by_exception()) {
192378 return true;
192379 }
192380 else if (lhs.index() != rhs.index()) {
192381 return lhs.index() < rhs.index();
192382 }
192383 return ImpUtil::LessThan(lhs, rhs);
192384}
192385#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
192386
192387#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
192388template <class t_HEAD, class t_TAIL_01,
192389 class t_TAIL_02,
192390 class t_TAIL_03,
192391 class t_TAIL_04,
192392 class t_TAIL_05,
192393 class t_TAIL_06,
192394 class t_TAIL_07,
192395 class t_TAIL_08,
192396 class t_TAIL_09,
192397 class t_TAIL_10,
192398 class t_TAIL_11,
192399 class t_TAIL_12>
192400bool operator<(const variant<t_HEAD, t_TAIL_01,
192401 t_TAIL_02,
192402 t_TAIL_03,
192403 t_TAIL_04,
192404 t_TAIL_05,
192405 t_TAIL_06,
192406 t_TAIL_07,
192407 t_TAIL_08,
192408 t_TAIL_09,
192409 t_TAIL_10,
192410 t_TAIL_11,
192411 t_TAIL_12>& lhs,
192412 const variant<t_HEAD, t_TAIL_01,
192413 t_TAIL_02,
192414 t_TAIL_03,
192415 t_TAIL_04,
192416 t_TAIL_05,
192417 t_TAIL_06,
192418 t_TAIL_07,
192419 t_TAIL_08,
192420 t_TAIL_09,
192421 t_TAIL_10,
192422 t_TAIL_11,
192423 t_TAIL_12>& rhs)
192424{
192425 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192426
192427 if (rhs.valueless_by_exception()) {
192428 return false;
192429 }
192430 else if (lhs.valueless_by_exception()) {
192431 return true;
192432 }
192433 else if (lhs.index() != rhs.index()) {
192434 return lhs.index() < rhs.index();
192435 }
192436 return ImpUtil::LessThan(lhs, rhs);
192437}
192438#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
192439
192440#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
192441template <class t_HEAD, class t_TAIL_01,
192442 class t_TAIL_02,
192443 class t_TAIL_03,
192444 class t_TAIL_04,
192445 class t_TAIL_05,
192446 class t_TAIL_06,
192447 class t_TAIL_07,
192448 class t_TAIL_08,
192449 class t_TAIL_09,
192450 class t_TAIL_10,
192451 class t_TAIL_11,
192452 class t_TAIL_12,
192453 class t_TAIL_13>
192454bool operator<(const variant<t_HEAD, t_TAIL_01,
192455 t_TAIL_02,
192456 t_TAIL_03,
192457 t_TAIL_04,
192458 t_TAIL_05,
192459 t_TAIL_06,
192460 t_TAIL_07,
192461 t_TAIL_08,
192462 t_TAIL_09,
192463 t_TAIL_10,
192464 t_TAIL_11,
192465 t_TAIL_12,
192466 t_TAIL_13>& lhs,
192467 const variant<t_HEAD, t_TAIL_01,
192468 t_TAIL_02,
192469 t_TAIL_03,
192470 t_TAIL_04,
192471 t_TAIL_05,
192472 t_TAIL_06,
192473 t_TAIL_07,
192474 t_TAIL_08,
192475 t_TAIL_09,
192476 t_TAIL_10,
192477 t_TAIL_11,
192478 t_TAIL_12,
192479 t_TAIL_13>& rhs)
192480{
192481 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192482
192483 if (rhs.valueless_by_exception()) {
192484 return false;
192485 }
192486 else if (lhs.valueless_by_exception()) {
192487 return true;
192488 }
192489 else if (lhs.index() != rhs.index()) {
192490 return lhs.index() < rhs.index();
192491 }
192492 return ImpUtil::LessThan(lhs, rhs);
192493}
192494#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
192495
192496#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
192497template <class t_HEAD, class t_TAIL_01,
192498 class t_TAIL_02,
192499 class t_TAIL_03,
192500 class t_TAIL_04,
192501 class t_TAIL_05,
192502 class t_TAIL_06,
192503 class t_TAIL_07,
192504 class t_TAIL_08,
192505 class t_TAIL_09,
192506 class t_TAIL_10,
192507 class t_TAIL_11,
192508 class t_TAIL_12,
192509 class t_TAIL_13,
192510 class t_TAIL_14>
192511bool operator<(const variant<t_HEAD, t_TAIL_01,
192512 t_TAIL_02,
192513 t_TAIL_03,
192514 t_TAIL_04,
192515 t_TAIL_05,
192516 t_TAIL_06,
192517 t_TAIL_07,
192518 t_TAIL_08,
192519 t_TAIL_09,
192520 t_TAIL_10,
192521 t_TAIL_11,
192522 t_TAIL_12,
192523 t_TAIL_13,
192524 t_TAIL_14>& lhs,
192525 const variant<t_HEAD, t_TAIL_01,
192526 t_TAIL_02,
192527 t_TAIL_03,
192528 t_TAIL_04,
192529 t_TAIL_05,
192530 t_TAIL_06,
192531 t_TAIL_07,
192532 t_TAIL_08,
192533 t_TAIL_09,
192534 t_TAIL_10,
192535 t_TAIL_11,
192536 t_TAIL_12,
192537 t_TAIL_13,
192538 t_TAIL_14>& rhs)
192539{
192540 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192541
192542 if (rhs.valueless_by_exception()) {
192543 return false;
192544 }
192545 else if (lhs.valueless_by_exception()) {
192546 return true;
192547 }
192548 else if (lhs.index() != rhs.index()) {
192549 return lhs.index() < rhs.index();
192550 }
192551 return ImpUtil::LessThan(lhs, rhs);
192552}
192553#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
192554
192555#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
192556template <class t_HEAD, class t_TAIL_01,
192557 class t_TAIL_02,
192558 class t_TAIL_03,
192559 class t_TAIL_04,
192560 class t_TAIL_05,
192561 class t_TAIL_06,
192562 class t_TAIL_07,
192563 class t_TAIL_08,
192564 class t_TAIL_09,
192565 class t_TAIL_10,
192566 class t_TAIL_11,
192567 class t_TAIL_12,
192568 class t_TAIL_13,
192569 class t_TAIL_14,
192570 class t_TAIL_15>
192571bool operator<(const variant<t_HEAD, t_TAIL_01,
192572 t_TAIL_02,
192573 t_TAIL_03,
192574 t_TAIL_04,
192575 t_TAIL_05,
192576 t_TAIL_06,
192577 t_TAIL_07,
192578 t_TAIL_08,
192579 t_TAIL_09,
192580 t_TAIL_10,
192581 t_TAIL_11,
192582 t_TAIL_12,
192583 t_TAIL_13,
192584 t_TAIL_14,
192585 t_TAIL_15>& lhs,
192586 const variant<t_HEAD, t_TAIL_01,
192587 t_TAIL_02,
192588 t_TAIL_03,
192589 t_TAIL_04,
192590 t_TAIL_05,
192591 t_TAIL_06,
192592 t_TAIL_07,
192593 t_TAIL_08,
192594 t_TAIL_09,
192595 t_TAIL_10,
192596 t_TAIL_11,
192597 t_TAIL_12,
192598 t_TAIL_13,
192599 t_TAIL_14,
192600 t_TAIL_15>& rhs)
192601{
192602 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192603
192604 if (rhs.valueless_by_exception()) {
192605 return false;
192606 }
192607 else if (lhs.valueless_by_exception()) {
192608 return true;
192609 }
192610 else if (lhs.index() != rhs.index()) {
192611 return lhs.index() < rhs.index();
192612 }
192613 return ImpUtil::LessThan(lhs, rhs);
192614}
192615#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
192616
192617#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
192618template <class t_HEAD, class t_TAIL_01,
192619 class t_TAIL_02,
192620 class t_TAIL_03,
192621 class t_TAIL_04,
192622 class t_TAIL_05,
192623 class t_TAIL_06,
192624 class t_TAIL_07,
192625 class t_TAIL_08,
192626 class t_TAIL_09,
192627 class t_TAIL_10,
192628 class t_TAIL_11,
192629 class t_TAIL_12,
192630 class t_TAIL_13,
192631 class t_TAIL_14,
192632 class t_TAIL_15,
192633 class t_TAIL_16>
192634bool operator<(const variant<t_HEAD, t_TAIL_01,
192635 t_TAIL_02,
192636 t_TAIL_03,
192637 t_TAIL_04,
192638 t_TAIL_05,
192639 t_TAIL_06,
192640 t_TAIL_07,
192641 t_TAIL_08,
192642 t_TAIL_09,
192643 t_TAIL_10,
192644 t_TAIL_11,
192645 t_TAIL_12,
192646 t_TAIL_13,
192647 t_TAIL_14,
192648 t_TAIL_15,
192649 t_TAIL_16>& lhs,
192650 const variant<t_HEAD, t_TAIL_01,
192651 t_TAIL_02,
192652 t_TAIL_03,
192653 t_TAIL_04,
192654 t_TAIL_05,
192655 t_TAIL_06,
192656 t_TAIL_07,
192657 t_TAIL_08,
192658 t_TAIL_09,
192659 t_TAIL_10,
192660 t_TAIL_11,
192661 t_TAIL_12,
192662 t_TAIL_13,
192663 t_TAIL_14,
192664 t_TAIL_15,
192665 t_TAIL_16>& rhs)
192666{
192667 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192668
192669 if (rhs.valueless_by_exception()) {
192670 return false;
192671 }
192672 else if (lhs.valueless_by_exception()) {
192673 return true;
192674 }
192675 else if (lhs.index() != rhs.index()) {
192676 return lhs.index() < rhs.index();
192677 }
192678 return ImpUtil::LessThan(lhs, rhs);
192679}
192680#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
192681
192682#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
192683template <class t_HEAD, class t_TAIL_01,
192684 class t_TAIL_02,
192685 class t_TAIL_03,
192686 class t_TAIL_04,
192687 class t_TAIL_05,
192688 class t_TAIL_06,
192689 class t_TAIL_07,
192690 class t_TAIL_08,
192691 class t_TAIL_09,
192692 class t_TAIL_10,
192693 class t_TAIL_11,
192694 class t_TAIL_12,
192695 class t_TAIL_13,
192696 class t_TAIL_14,
192697 class t_TAIL_15,
192698 class t_TAIL_16,
192699 class t_TAIL_17>
192700bool operator<(const variant<t_HEAD, t_TAIL_01,
192701 t_TAIL_02,
192702 t_TAIL_03,
192703 t_TAIL_04,
192704 t_TAIL_05,
192705 t_TAIL_06,
192706 t_TAIL_07,
192707 t_TAIL_08,
192708 t_TAIL_09,
192709 t_TAIL_10,
192710 t_TAIL_11,
192711 t_TAIL_12,
192712 t_TAIL_13,
192713 t_TAIL_14,
192714 t_TAIL_15,
192715 t_TAIL_16,
192716 t_TAIL_17>& lhs,
192717 const variant<t_HEAD, t_TAIL_01,
192718 t_TAIL_02,
192719 t_TAIL_03,
192720 t_TAIL_04,
192721 t_TAIL_05,
192722 t_TAIL_06,
192723 t_TAIL_07,
192724 t_TAIL_08,
192725 t_TAIL_09,
192726 t_TAIL_10,
192727 t_TAIL_11,
192728 t_TAIL_12,
192729 t_TAIL_13,
192730 t_TAIL_14,
192731 t_TAIL_15,
192732 t_TAIL_16,
192733 t_TAIL_17>& rhs)
192734{
192735 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192736
192737 if (rhs.valueless_by_exception()) {
192738 return false;
192739 }
192740 else if (lhs.valueless_by_exception()) {
192741 return true;
192742 }
192743 else if (lhs.index() != rhs.index()) {
192744 return lhs.index() < rhs.index();
192745 }
192746 return ImpUtil::LessThan(lhs, rhs);
192747}
192748#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
192749
192750#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
192751template <class t_HEAD, class t_TAIL_01,
192752 class t_TAIL_02,
192753 class t_TAIL_03,
192754 class t_TAIL_04,
192755 class t_TAIL_05,
192756 class t_TAIL_06,
192757 class t_TAIL_07,
192758 class t_TAIL_08,
192759 class t_TAIL_09,
192760 class t_TAIL_10,
192761 class t_TAIL_11,
192762 class t_TAIL_12,
192763 class t_TAIL_13,
192764 class t_TAIL_14,
192765 class t_TAIL_15,
192766 class t_TAIL_16,
192767 class t_TAIL_17,
192768 class t_TAIL_18>
192769bool operator<(const variant<t_HEAD, t_TAIL_01,
192770 t_TAIL_02,
192771 t_TAIL_03,
192772 t_TAIL_04,
192773 t_TAIL_05,
192774 t_TAIL_06,
192775 t_TAIL_07,
192776 t_TAIL_08,
192777 t_TAIL_09,
192778 t_TAIL_10,
192779 t_TAIL_11,
192780 t_TAIL_12,
192781 t_TAIL_13,
192782 t_TAIL_14,
192783 t_TAIL_15,
192784 t_TAIL_16,
192785 t_TAIL_17,
192786 t_TAIL_18>& lhs,
192787 const variant<t_HEAD, t_TAIL_01,
192788 t_TAIL_02,
192789 t_TAIL_03,
192790 t_TAIL_04,
192791 t_TAIL_05,
192792 t_TAIL_06,
192793 t_TAIL_07,
192794 t_TAIL_08,
192795 t_TAIL_09,
192796 t_TAIL_10,
192797 t_TAIL_11,
192798 t_TAIL_12,
192799 t_TAIL_13,
192800 t_TAIL_14,
192801 t_TAIL_15,
192802 t_TAIL_16,
192803 t_TAIL_17,
192804 t_TAIL_18>& rhs)
192805{
192806 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192807
192808 if (rhs.valueless_by_exception()) {
192809 return false;
192810 }
192811 else if (lhs.valueless_by_exception()) {
192812 return true;
192813 }
192814 else if (lhs.index() != rhs.index()) {
192815 return lhs.index() < rhs.index();
192816 }
192817 return ImpUtil::LessThan(lhs, rhs);
192818}
192819#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
192820
192821
192822#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
192823template <class t_HEAD>
192824bool operator>(const variant<t_HEAD>& lhs,
192825 const variant<t_HEAD>& rhs)
192826{
192827 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192828
192829 if (lhs.valueless_by_exception()) {
192830 return false;
192831 }
192832 else if (rhs.valueless_by_exception()) {
192833 return true;
192834 }
192835 else if (lhs.index() != rhs.index()) {
192836 return lhs.index() > rhs.index();
192837 }
192838 return ImpUtil::GreaterThan(lhs, rhs);
192839}
192840#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
192841
192842#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
192843template <class t_HEAD, class t_TAIL_01>
192844bool operator>(const variant<t_HEAD, t_TAIL_01>& lhs,
192845 const variant<t_HEAD, t_TAIL_01>& rhs)
192846{
192847 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192848
192849 if (lhs.valueless_by_exception()) {
192850 return false;
192851 }
192852 else if (rhs.valueless_by_exception()) {
192853 return true;
192854 }
192855 else if (lhs.index() != rhs.index()) {
192856 return lhs.index() > rhs.index();
192857 }
192858 return ImpUtil::GreaterThan(lhs, rhs);
192859}
192860#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
192861
192862#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
192863template <class t_HEAD, class t_TAIL_01,
192864 class t_TAIL_02>
192865bool operator>(const variant<t_HEAD, t_TAIL_01,
192866 t_TAIL_02>& lhs,
192867 const variant<t_HEAD, t_TAIL_01,
192868 t_TAIL_02>& rhs)
192869{
192870 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192871
192872 if (lhs.valueless_by_exception()) {
192873 return false;
192874 }
192875 else if (rhs.valueless_by_exception()) {
192876 return true;
192877 }
192878 else if (lhs.index() != rhs.index()) {
192879 return lhs.index() > rhs.index();
192880 }
192881 return ImpUtil::GreaterThan(lhs, rhs);
192882}
192883#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
192884
192885#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
192886template <class t_HEAD, class t_TAIL_01,
192887 class t_TAIL_02,
192888 class t_TAIL_03>
192889bool operator>(const variant<t_HEAD, t_TAIL_01,
192890 t_TAIL_02,
192891 t_TAIL_03>& lhs,
192892 const variant<t_HEAD, t_TAIL_01,
192893 t_TAIL_02,
192894 t_TAIL_03>& rhs)
192895{
192896 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192897
192898 if (lhs.valueless_by_exception()) {
192899 return false;
192900 }
192901 else if (rhs.valueless_by_exception()) {
192902 return true;
192903 }
192904 else if (lhs.index() != rhs.index()) {
192905 return lhs.index() > rhs.index();
192906 }
192907 return ImpUtil::GreaterThan(lhs, rhs);
192908}
192909#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
192910
192911#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
192912template <class t_HEAD, class t_TAIL_01,
192913 class t_TAIL_02,
192914 class t_TAIL_03,
192915 class t_TAIL_04>
192916bool operator>(const variant<t_HEAD, t_TAIL_01,
192917 t_TAIL_02,
192918 t_TAIL_03,
192919 t_TAIL_04>& lhs,
192920 const variant<t_HEAD, t_TAIL_01,
192921 t_TAIL_02,
192922 t_TAIL_03,
192923 t_TAIL_04>& rhs)
192924{
192925 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192926
192927 if (lhs.valueless_by_exception()) {
192928 return false;
192929 }
192930 else if (rhs.valueless_by_exception()) {
192931 return true;
192932 }
192933 else if (lhs.index() != rhs.index()) {
192934 return lhs.index() > rhs.index();
192935 }
192936 return ImpUtil::GreaterThan(lhs, rhs);
192937}
192938#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
192939
192940#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
192941template <class t_HEAD, class t_TAIL_01,
192942 class t_TAIL_02,
192943 class t_TAIL_03,
192944 class t_TAIL_04,
192945 class t_TAIL_05>
192946bool operator>(const variant<t_HEAD, t_TAIL_01,
192947 t_TAIL_02,
192948 t_TAIL_03,
192949 t_TAIL_04,
192950 t_TAIL_05>& lhs,
192951 const variant<t_HEAD, t_TAIL_01,
192952 t_TAIL_02,
192953 t_TAIL_03,
192954 t_TAIL_04,
192955 t_TAIL_05>& rhs)
192956{
192957 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192958
192959 if (lhs.valueless_by_exception()) {
192960 return false;
192961 }
192962 else if (rhs.valueless_by_exception()) {
192963 return true;
192964 }
192965 else if (lhs.index() != rhs.index()) {
192966 return lhs.index() > rhs.index();
192967 }
192968 return ImpUtil::GreaterThan(lhs, rhs);
192969}
192970#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
192971
192972#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
192973template <class t_HEAD, class t_TAIL_01,
192974 class t_TAIL_02,
192975 class t_TAIL_03,
192976 class t_TAIL_04,
192977 class t_TAIL_05,
192978 class t_TAIL_06>
192979bool operator>(const variant<t_HEAD, t_TAIL_01,
192980 t_TAIL_02,
192981 t_TAIL_03,
192982 t_TAIL_04,
192983 t_TAIL_05,
192984 t_TAIL_06>& lhs,
192985 const variant<t_HEAD, t_TAIL_01,
192986 t_TAIL_02,
192987 t_TAIL_03,
192988 t_TAIL_04,
192989 t_TAIL_05,
192990 t_TAIL_06>& rhs)
192991{
192992 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
192993
192994 if (lhs.valueless_by_exception()) {
192995 return false;
192996 }
192997 else if (rhs.valueless_by_exception()) {
192998 return true;
192999 }
193000 else if (lhs.index() != rhs.index()) {
193001 return lhs.index() > rhs.index();
193002 }
193003 return ImpUtil::GreaterThan(lhs, rhs);
193004}
193005#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
193006
193007#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
193008template <class t_HEAD, class t_TAIL_01,
193009 class t_TAIL_02,
193010 class t_TAIL_03,
193011 class t_TAIL_04,
193012 class t_TAIL_05,
193013 class t_TAIL_06,
193014 class t_TAIL_07>
193015bool operator>(const variant<t_HEAD, t_TAIL_01,
193016 t_TAIL_02,
193017 t_TAIL_03,
193018 t_TAIL_04,
193019 t_TAIL_05,
193020 t_TAIL_06,
193021 t_TAIL_07>& lhs,
193022 const variant<t_HEAD, t_TAIL_01,
193023 t_TAIL_02,
193024 t_TAIL_03,
193025 t_TAIL_04,
193026 t_TAIL_05,
193027 t_TAIL_06,
193028 t_TAIL_07>& rhs)
193029{
193030 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193031
193032 if (lhs.valueless_by_exception()) {
193033 return false;
193034 }
193035 else if (rhs.valueless_by_exception()) {
193036 return true;
193037 }
193038 else if (lhs.index() != rhs.index()) {
193039 return lhs.index() > rhs.index();
193040 }
193041 return ImpUtil::GreaterThan(lhs, rhs);
193042}
193043#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
193044
193045#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
193046template <class t_HEAD, class t_TAIL_01,
193047 class t_TAIL_02,
193048 class t_TAIL_03,
193049 class t_TAIL_04,
193050 class t_TAIL_05,
193051 class t_TAIL_06,
193052 class t_TAIL_07,
193053 class t_TAIL_08>
193054bool operator>(const variant<t_HEAD, t_TAIL_01,
193055 t_TAIL_02,
193056 t_TAIL_03,
193057 t_TAIL_04,
193058 t_TAIL_05,
193059 t_TAIL_06,
193060 t_TAIL_07,
193061 t_TAIL_08>& lhs,
193062 const variant<t_HEAD, t_TAIL_01,
193063 t_TAIL_02,
193064 t_TAIL_03,
193065 t_TAIL_04,
193066 t_TAIL_05,
193067 t_TAIL_06,
193068 t_TAIL_07,
193069 t_TAIL_08>& rhs)
193070{
193071 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193072
193073 if (lhs.valueless_by_exception()) {
193074 return false;
193075 }
193076 else if (rhs.valueless_by_exception()) {
193077 return true;
193078 }
193079 else if (lhs.index() != rhs.index()) {
193080 return lhs.index() > rhs.index();
193081 }
193082 return ImpUtil::GreaterThan(lhs, rhs);
193083}
193084#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
193085
193086#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
193087template <class t_HEAD, class t_TAIL_01,
193088 class t_TAIL_02,
193089 class t_TAIL_03,
193090 class t_TAIL_04,
193091 class t_TAIL_05,
193092 class t_TAIL_06,
193093 class t_TAIL_07,
193094 class t_TAIL_08,
193095 class t_TAIL_09>
193096bool operator>(const variant<t_HEAD, t_TAIL_01,
193097 t_TAIL_02,
193098 t_TAIL_03,
193099 t_TAIL_04,
193100 t_TAIL_05,
193101 t_TAIL_06,
193102 t_TAIL_07,
193103 t_TAIL_08,
193104 t_TAIL_09>& lhs,
193105 const variant<t_HEAD, t_TAIL_01,
193106 t_TAIL_02,
193107 t_TAIL_03,
193108 t_TAIL_04,
193109 t_TAIL_05,
193110 t_TAIL_06,
193111 t_TAIL_07,
193112 t_TAIL_08,
193113 t_TAIL_09>& rhs)
193114{
193115 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193116
193117 if (lhs.valueless_by_exception()) {
193118 return false;
193119 }
193120 else if (rhs.valueless_by_exception()) {
193121 return true;
193122 }
193123 else if (lhs.index() != rhs.index()) {
193124 return lhs.index() > rhs.index();
193125 }
193126 return ImpUtil::GreaterThan(lhs, rhs);
193127}
193128#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
193129
193130#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
193131template <class t_HEAD, class t_TAIL_01,
193132 class t_TAIL_02,
193133 class t_TAIL_03,
193134 class t_TAIL_04,
193135 class t_TAIL_05,
193136 class t_TAIL_06,
193137 class t_TAIL_07,
193138 class t_TAIL_08,
193139 class t_TAIL_09,
193140 class t_TAIL_10>
193141bool operator>(const variant<t_HEAD, t_TAIL_01,
193142 t_TAIL_02,
193143 t_TAIL_03,
193144 t_TAIL_04,
193145 t_TAIL_05,
193146 t_TAIL_06,
193147 t_TAIL_07,
193148 t_TAIL_08,
193149 t_TAIL_09,
193150 t_TAIL_10>& lhs,
193151 const variant<t_HEAD, t_TAIL_01,
193152 t_TAIL_02,
193153 t_TAIL_03,
193154 t_TAIL_04,
193155 t_TAIL_05,
193156 t_TAIL_06,
193157 t_TAIL_07,
193158 t_TAIL_08,
193159 t_TAIL_09,
193160 t_TAIL_10>& rhs)
193161{
193162 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193163
193164 if (lhs.valueless_by_exception()) {
193165 return false;
193166 }
193167 else if (rhs.valueless_by_exception()) {
193168 return true;
193169 }
193170 else if (lhs.index() != rhs.index()) {
193171 return lhs.index() > rhs.index();
193172 }
193173 return ImpUtil::GreaterThan(lhs, rhs);
193174}
193175#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
193176
193177#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
193178template <class t_HEAD, class t_TAIL_01,
193179 class t_TAIL_02,
193180 class t_TAIL_03,
193181 class t_TAIL_04,
193182 class t_TAIL_05,
193183 class t_TAIL_06,
193184 class t_TAIL_07,
193185 class t_TAIL_08,
193186 class t_TAIL_09,
193187 class t_TAIL_10,
193188 class t_TAIL_11>
193189bool operator>(const variant<t_HEAD, t_TAIL_01,
193190 t_TAIL_02,
193191 t_TAIL_03,
193192 t_TAIL_04,
193193 t_TAIL_05,
193194 t_TAIL_06,
193195 t_TAIL_07,
193196 t_TAIL_08,
193197 t_TAIL_09,
193198 t_TAIL_10,
193199 t_TAIL_11>& lhs,
193200 const variant<t_HEAD, t_TAIL_01,
193201 t_TAIL_02,
193202 t_TAIL_03,
193203 t_TAIL_04,
193204 t_TAIL_05,
193205 t_TAIL_06,
193206 t_TAIL_07,
193207 t_TAIL_08,
193208 t_TAIL_09,
193209 t_TAIL_10,
193210 t_TAIL_11>& rhs)
193211{
193212 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193213
193214 if (lhs.valueless_by_exception()) {
193215 return false;
193216 }
193217 else if (rhs.valueless_by_exception()) {
193218 return true;
193219 }
193220 else if (lhs.index() != rhs.index()) {
193221 return lhs.index() > rhs.index();
193222 }
193223 return ImpUtil::GreaterThan(lhs, rhs);
193224}
193225#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
193226
193227#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
193228template <class t_HEAD, class t_TAIL_01,
193229 class t_TAIL_02,
193230 class t_TAIL_03,
193231 class t_TAIL_04,
193232 class t_TAIL_05,
193233 class t_TAIL_06,
193234 class t_TAIL_07,
193235 class t_TAIL_08,
193236 class t_TAIL_09,
193237 class t_TAIL_10,
193238 class t_TAIL_11,
193239 class t_TAIL_12>
193240bool operator>(const variant<t_HEAD, t_TAIL_01,
193241 t_TAIL_02,
193242 t_TAIL_03,
193243 t_TAIL_04,
193244 t_TAIL_05,
193245 t_TAIL_06,
193246 t_TAIL_07,
193247 t_TAIL_08,
193248 t_TAIL_09,
193249 t_TAIL_10,
193250 t_TAIL_11,
193251 t_TAIL_12>& lhs,
193252 const variant<t_HEAD, t_TAIL_01,
193253 t_TAIL_02,
193254 t_TAIL_03,
193255 t_TAIL_04,
193256 t_TAIL_05,
193257 t_TAIL_06,
193258 t_TAIL_07,
193259 t_TAIL_08,
193260 t_TAIL_09,
193261 t_TAIL_10,
193262 t_TAIL_11,
193263 t_TAIL_12>& rhs)
193264{
193265 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193266
193267 if (lhs.valueless_by_exception()) {
193268 return false;
193269 }
193270 else if (rhs.valueless_by_exception()) {
193271 return true;
193272 }
193273 else if (lhs.index() != rhs.index()) {
193274 return lhs.index() > rhs.index();
193275 }
193276 return ImpUtil::GreaterThan(lhs, rhs);
193277}
193278#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
193279
193280#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
193281template <class t_HEAD, class t_TAIL_01,
193282 class t_TAIL_02,
193283 class t_TAIL_03,
193284 class t_TAIL_04,
193285 class t_TAIL_05,
193286 class t_TAIL_06,
193287 class t_TAIL_07,
193288 class t_TAIL_08,
193289 class t_TAIL_09,
193290 class t_TAIL_10,
193291 class t_TAIL_11,
193292 class t_TAIL_12,
193293 class t_TAIL_13>
193294bool operator>(const variant<t_HEAD, t_TAIL_01,
193295 t_TAIL_02,
193296 t_TAIL_03,
193297 t_TAIL_04,
193298 t_TAIL_05,
193299 t_TAIL_06,
193300 t_TAIL_07,
193301 t_TAIL_08,
193302 t_TAIL_09,
193303 t_TAIL_10,
193304 t_TAIL_11,
193305 t_TAIL_12,
193306 t_TAIL_13>& lhs,
193307 const variant<t_HEAD, t_TAIL_01,
193308 t_TAIL_02,
193309 t_TAIL_03,
193310 t_TAIL_04,
193311 t_TAIL_05,
193312 t_TAIL_06,
193313 t_TAIL_07,
193314 t_TAIL_08,
193315 t_TAIL_09,
193316 t_TAIL_10,
193317 t_TAIL_11,
193318 t_TAIL_12,
193319 t_TAIL_13>& rhs)
193320{
193321 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193322
193323 if (lhs.valueless_by_exception()) {
193324 return false;
193325 }
193326 else if (rhs.valueless_by_exception()) {
193327 return true;
193328 }
193329 else if (lhs.index() != rhs.index()) {
193330 return lhs.index() > rhs.index();
193331 }
193332 return ImpUtil::GreaterThan(lhs, rhs);
193333}
193334#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
193335
193336#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
193337template <class t_HEAD, class t_TAIL_01,
193338 class t_TAIL_02,
193339 class t_TAIL_03,
193340 class t_TAIL_04,
193341 class t_TAIL_05,
193342 class t_TAIL_06,
193343 class t_TAIL_07,
193344 class t_TAIL_08,
193345 class t_TAIL_09,
193346 class t_TAIL_10,
193347 class t_TAIL_11,
193348 class t_TAIL_12,
193349 class t_TAIL_13,
193350 class t_TAIL_14>
193351bool operator>(const variant<t_HEAD, t_TAIL_01,
193352 t_TAIL_02,
193353 t_TAIL_03,
193354 t_TAIL_04,
193355 t_TAIL_05,
193356 t_TAIL_06,
193357 t_TAIL_07,
193358 t_TAIL_08,
193359 t_TAIL_09,
193360 t_TAIL_10,
193361 t_TAIL_11,
193362 t_TAIL_12,
193363 t_TAIL_13,
193364 t_TAIL_14>& lhs,
193365 const variant<t_HEAD, t_TAIL_01,
193366 t_TAIL_02,
193367 t_TAIL_03,
193368 t_TAIL_04,
193369 t_TAIL_05,
193370 t_TAIL_06,
193371 t_TAIL_07,
193372 t_TAIL_08,
193373 t_TAIL_09,
193374 t_TAIL_10,
193375 t_TAIL_11,
193376 t_TAIL_12,
193377 t_TAIL_13,
193378 t_TAIL_14>& rhs)
193379{
193380 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193381
193382 if (lhs.valueless_by_exception()) {
193383 return false;
193384 }
193385 else if (rhs.valueless_by_exception()) {
193386 return true;
193387 }
193388 else if (lhs.index() != rhs.index()) {
193389 return lhs.index() > rhs.index();
193390 }
193391 return ImpUtil::GreaterThan(lhs, rhs);
193392}
193393#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
193394
193395#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
193396template <class t_HEAD, class t_TAIL_01,
193397 class t_TAIL_02,
193398 class t_TAIL_03,
193399 class t_TAIL_04,
193400 class t_TAIL_05,
193401 class t_TAIL_06,
193402 class t_TAIL_07,
193403 class t_TAIL_08,
193404 class t_TAIL_09,
193405 class t_TAIL_10,
193406 class t_TAIL_11,
193407 class t_TAIL_12,
193408 class t_TAIL_13,
193409 class t_TAIL_14,
193410 class t_TAIL_15>
193411bool operator>(const variant<t_HEAD, t_TAIL_01,
193412 t_TAIL_02,
193413 t_TAIL_03,
193414 t_TAIL_04,
193415 t_TAIL_05,
193416 t_TAIL_06,
193417 t_TAIL_07,
193418 t_TAIL_08,
193419 t_TAIL_09,
193420 t_TAIL_10,
193421 t_TAIL_11,
193422 t_TAIL_12,
193423 t_TAIL_13,
193424 t_TAIL_14,
193425 t_TAIL_15>& lhs,
193426 const variant<t_HEAD, t_TAIL_01,
193427 t_TAIL_02,
193428 t_TAIL_03,
193429 t_TAIL_04,
193430 t_TAIL_05,
193431 t_TAIL_06,
193432 t_TAIL_07,
193433 t_TAIL_08,
193434 t_TAIL_09,
193435 t_TAIL_10,
193436 t_TAIL_11,
193437 t_TAIL_12,
193438 t_TAIL_13,
193439 t_TAIL_14,
193440 t_TAIL_15>& rhs)
193441{
193442 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193443
193444 if (lhs.valueless_by_exception()) {
193445 return false;
193446 }
193447 else if (rhs.valueless_by_exception()) {
193448 return true;
193449 }
193450 else if (lhs.index() != rhs.index()) {
193451 return lhs.index() > rhs.index();
193452 }
193453 return ImpUtil::GreaterThan(lhs, rhs);
193454}
193455#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
193456
193457#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
193458template <class t_HEAD, class t_TAIL_01,
193459 class t_TAIL_02,
193460 class t_TAIL_03,
193461 class t_TAIL_04,
193462 class t_TAIL_05,
193463 class t_TAIL_06,
193464 class t_TAIL_07,
193465 class t_TAIL_08,
193466 class t_TAIL_09,
193467 class t_TAIL_10,
193468 class t_TAIL_11,
193469 class t_TAIL_12,
193470 class t_TAIL_13,
193471 class t_TAIL_14,
193472 class t_TAIL_15,
193473 class t_TAIL_16>
193474bool operator>(const variant<t_HEAD, t_TAIL_01,
193475 t_TAIL_02,
193476 t_TAIL_03,
193477 t_TAIL_04,
193478 t_TAIL_05,
193479 t_TAIL_06,
193480 t_TAIL_07,
193481 t_TAIL_08,
193482 t_TAIL_09,
193483 t_TAIL_10,
193484 t_TAIL_11,
193485 t_TAIL_12,
193486 t_TAIL_13,
193487 t_TAIL_14,
193488 t_TAIL_15,
193489 t_TAIL_16>& lhs,
193490 const variant<t_HEAD, t_TAIL_01,
193491 t_TAIL_02,
193492 t_TAIL_03,
193493 t_TAIL_04,
193494 t_TAIL_05,
193495 t_TAIL_06,
193496 t_TAIL_07,
193497 t_TAIL_08,
193498 t_TAIL_09,
193499 t_TAIL_10,
193500 t_TAIL_11,
193501 t_TAIL_12,
193502 t_TAIL_13,
193503 t_TAIL_14,
193504 t_TAIL_15,
193505 t_TAIL_16>& rhs)
193506{
193507 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193508
193509 if (lhs.valueless_by_exception()) {
193510 return false;
193511 }
193512 else if (rhs.valueless_by_exception()) {
193513 return true;
193514 }
193515 else if (lhs.index() != rhs.index()) {
193516 return lhs.index() > rhs.index();
193517 }
193518 return ImpUtil::GreaterThan(lhs, rhs);
193519}
193520#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
193521
193522#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
193523template <class t_HEAD, class t_TAIL_01,
193524 class t_TAIL_02,
193525 class t_TAIL_03,
193526 class t_TAIL_04,
193527 class t_TAIL_05,
193528 class t_TAIL_06,
193529 class t_TAIL_07,
193530 class t_TAIL_08,
193531 class t_TAIL_09,
193532 class t_TAIL_10,
193533 class t_TAIL_11,
193534 class t_TAIL_12,
193535 class t_TAIL_13,
193536 class t_TAIL_14,
193537 class t_TAIL_15,
193538 class t_TAIL_16,
193539 class t_TAIL_17>
193540bool operator>(const variant<t_HEAD, t_TAIL_01,
193541 t_TAIL_02,
193542 t_TAIL_03,
193543 t_TAIL_04,
193544 t_TAIL_05,
193545 t_TAIL_06,
193546 t_TAIL_07,
193547 t_TAIL_08,
193548 t_TAIL_09,
193549 t_TAIL_10,
193550 t_TAIL_11,
193551 t_TAIL_12,
193552 t_TAIL_13,
193553 t_TAIL_14,
193554 t_TAIL_15,
193555 t_TAIL_16,
193556 t_TAIL_17>& lhs,
193557 const variant<t_HEAD, t_TAIL_01,
193558 t_TAIL_02,
193559 t_TAIL_03,
193560 t_TAIL_04,
193561 t_TAIL_05,
193562 t_TAIL_06,
193563 t_TAIL_07,
193564 t_TAIL_08,
193565 t_TAIL_09,
193566 t_TAIL_10,
193567 t_TAIL_11,
193568 t_TAIL_12,
193569 t_TAIL_13,
193570 t_TAIL_14,
193571 t_TAIL_15,
193572 t_TAIL_16,
193573 t_TAIL_17>& rhs)
193574{
193575 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193576
193577 if (lhs.valueless_by_exception()) {
193578 return false;
193579 }
193580 else if (rhs.valueless_by_exception()) {
193581 return true;
193582 }
193583 else if (lhs.index() != rhs.index()) {
193584 return lhs.index() > rhs.index();
193585 }
193586 return ImpUtil::GreaterThan(lhs, rhs);
193587}
193588#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
193589
193590#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
193591template <class t_HEAD, class t_TAIL_01,
193592 class t_TAIL_02,
193593 class t_TAIL_03,
193594 class t_TAIL_04,
193595 class t_TAIL_05,
193596 class t_TAIL_06,
193597 class t_TAIL_07,
193598 class t_TAIL_08,
193599 class t_TAIL_09,
193600 class t_TAIL_10,
193601 class t_TAIL_11,
193602 class t_TAIL_12,
193603 class t_TAIL_13,
193604 class t_TAIL_14,
193605 class t_TAIL_15,
193606 class t_TAIL_16,
193607 class t_TAIL_17,
193608 class t_TAIL_18>
193609bool operator>(const variant<t_HEAD, t_TAIL_01,
193610 t_TAIL_02,
193611 t_TAIL_03,
193612 t_TAIL_04,
193613 t_TAIL_05,
193614 t_TAIL_06,
193615 t_TAIL_07,
193616 t_TAIL_08,
193617 t_TAIL_09,
193618 t_TAIL_10,
193619 t_TAIL_11,
193620 t_TAIL_12,
193621 t_TAIL_13,
193622 t_TAIL_14,
193623 t_TAIL_15,
193624 t_TAIL_16,
193625 t_TAIL_17,
193626 t_TAIL_18>& lhs,
193627 const variant<t_HEAD, t_TAIL_01,
193628 t_TAIL_02,
193629 t_TAIL_03,
193630 t_TAIL_04,
193631 t_TAIL_05,
193632 t_TAIL_06,
193633 t_TAIL_07,
193634 t_TAIL_08,
193635 t_TAIL_09,
193636 t_TAIL_10,
193637 t_TAIL_11,
193638 t_TAIL_12,
193639 t_TAIL_13,
193640 t_TAIL_14,
193641 t_TAIL_15,
193642 t_TAIL_16,
193643 t_TAIL_17,
193644 t_TAIL_18>& rhs)
193645{
193646 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193647
193648 if (lhs.valueless_by_exception()) {
193649 return false;
193650 }
193651 else if (rhs.valueless_by_exception()) {
193652 return true;
193653 }
193654 else if (lhs.index() != rhs.index()) {
193655 return lhs.index() > rhs.index();
193656 }
193657 return ImpUtil::GreaterThan(lhs, rhs);
193658}
193659#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
193660
193661
193662#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
193663template <class t_HEAD>
193664bool operator<=(const variant<t_HEAD>& lhs,
193665 const variant<t_HEAD>& rhs)
193666{
193667 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193668
193669 if (lhs.valueless_by_exception()) {
193670 return true;
193671 }
193672 else if (rhs.valueless_by_exception()) {
193673 return false;
193674 }
193675 else if (lhs.index() != rhs.index()) {
193676 return lhs.index() < rhs.index();
193677 }
193678 return ImpUtil::LessOrEqual(lhs, rhs);
193679}
193680#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
193681
193682#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
193683template <class t_HEAD, class t_TAIL_01>
193684bool operator<=(const variant<t_HEAD, t_TAIL_01>& lhs,
193685 const variant<t_HEAD, t_TAIL_01>& rhs)
193686{
193687 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193688
193689 if (lhs.valueless_by_exception()) {
193690 return true;
193691 }
193692 else if (rhs.valueless_by_exception()) {
193693 return false;
193694 }
193695 else if (lhs.index() != rhs.index()) {
193696 return lhs.index() < rhs.index();
193697 }
193698 return ImpUtil::LessOrEqual(lhs, rhs);
193699}
193700#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
193701
193702#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
193703template <class t_HEAD, class t_TAIL_01,
193704 class t_TAIL_02>
193705bool operator<=(const variant<t_HEAD, t_TAIL_01,
193706 t_TAIL_02>& lhs,
193707 const variant<t_HEAD, t_TAIL_01,
193708 t_TAIL_02>& rhs)
193709{
193710 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193711
193712 if (lhs.valueless_by_exception()) {
193713 return true;
193714 }
193715 else if (rhs.valueless_by_exception()) {
193716 return false;
193717 }
193718 else if (lhs.index() != rhs.index()) {
193719 return lhs.index() < rhs.index();
193720 }
193721 return ImpUtil::LessOrEqual(lhs, rhs);
193722}
193723#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
193724
193725#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
193726template <class t_HEAD, class t_TAIL_01,
193727 class t_TAIL_02,
193728 class t_TAIL_03>
193729bool operator<=(const variant<t_HEAD, t_TAIL_01,
193730 t_TAIL_02,
193731 t_TAIL_03>& lhs,
193732 const variant<t_HEAD, t_TAIL_01,
193733 t_TAIL_02,
193734 t_TAIL_03>& rhs)
193735{
193736 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193737
193738 if (lhs.valueless_by_exception()) {
193739 return true;
193740 }
193741 else if (rhs.valueless_by_exception()) {
193742 return false;
193743 }
193744 else if (lhs.index() != rhs.index()) {
193745 return lhs.index() < rhs.index();
193746 }
193747 return ImpUtil::LessOrEqual(lhs, rhs);
193748}
193749#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
193750
193751#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
193752template <class t_HEAD, class t_TAIL_01,
193753 class t_TAIL_02,
193754 class t_TAIL_03,
193755 class t_TAIL_04>
193756bool operator<=(const variant<t_HEAD, t_TAIL_01,
193757 t_TAIL_02,
193758 t_TAIL_03,
193759 t_TAIL_04>& lhs,
193760 const variant<t_HEAD, t_TAIL_01,
193761 t_TAIL_02,
193762 t_TAIL_03,
193763 t_TAIL_04>& rhs)
193764{
193765 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193766
193767 if (lhs.valueless_by_exception()) {
193768 return true;
193769 }
193770 else if (rhs.valueless_by_exception()) {
193771 return false;
193772 }
193773 else if (lhs.index() != rhs.index()) {
193774 return lhs.index() < rhs.index();
193775 }
193776 return ImpUtil::LessOrEqual(lhs, rhs);
193777}
193778#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
193779
193780#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
193781template <class t_HEAD, class t_TAIL_01,
193782 class t_TAIL_02,
193783 class t_TAIL_03,
193784 class t_TAIL_04,
193785 class t_TAIL_05>
193786bool operator<=(const variant<t_HEAD, t_TAIL_01,
193787 t_TAIL_02,
193788 t_TAIL_03,
193789 t_TAIL_04,
193790 t_TAIL_05>& lhs,
193791 const variant<t_HEAD, t_TAIL_01,
193792 t_TAIL_02,
193793 t_TAIL_03,
193794 t_TAIL_04,
193795 t_TAIL_05>& rhs)
193796{
193797 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193798
193799 if (lhs.valueless_by_exception()) {
193800 return true;
193801 }
193802 else if (rhs.valueless_by_exception()) {
193803 return false;
193804 }
193805 else if (lhs.index() != rhs.index()) {
193806 return lhs.index() < rhs.index();
193807 }
193808 return ImpUtil::LessOrEqual(lhs, rhs);
193809}
193810#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
193811
193812#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
193813template <class t_HEAD, class t_TAIL_01,
193814 class t_TAIL_02,
193815 class t_TAIL_03,
193816 class t_TAIL_04,
193817 class t_TAIL_05,
193818 class t_TAIL_06>
193819bool operator<=(const variant<t_HEAD, t_TAIL_01,
193820 t_TAIL_02,
193821 t_TAIL_03,
193822 t_TAIL_04,
193823 t_TAIL_05,
193824 t_TAIL_06>& lhs,
193825 const variant<t_HEAD, t_TAIL_01,
193826 t_TAIL_02,
193827 t_TAIL_03,
193828 t_TAIL_04,
193829 t_TAIL_05,
193830 t_TAIL_06>& rhs)
193831{
193832 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193833
193834 if (lhs.valueless_by_exception()) {
193835 return true;
193836 }
193837 else if (rhs.valueless_by_exception()) {
193838 return false;
193839 }
193840 else if (lhs.index() != rhs.index()) {
193841 return lhs.index() < rhs.index();
193842 }
193843 return ImpUtil::LessOrEqual(lhs, rhs);
193844}
193845#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
193846
193847#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
193848template <class t_HEAD, class t_TAIL_01,
193849 class t_TAIL_02,
193850 class t_TAIL_03,
193851 class t_TAIL_04,
193852 class t_TAIL_05,
193853 class t_TAIL_06,
193854 class t_TAIL_07>
193855bool operator<=(const variant<t_HEAD, t_TAIL_01,
193856 t_TAIL_02,
193857 t_TAIL_03,
193858 t_TAIL_04,
193859 t_TAIL_05,
193860 t_TAIL_06,
193861 t_TAIL_07>& lhs,
193862 const variant<t_HEAD, t_TAIL_01,
193863 t_TAIL_02,
193864 t_TAIL_03,
193865 t_TAIL_04,
193866 t_TAIL_05,
193867 t_TAIL_06,
193868 t_TAIL_07>& rhs)
193869{
193870 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193871
193872 if (lhs.valueless_by_exception()) {
193873 return true;
193874 }
193875 else if (rhs.valueless_by_exception()) {
193876 return false;
193877 }
193878 else if (lhs.index() != rhs.index()) {
193879 return lhs.index() < rhs.index();
193880 }
193881 return ImpUtil::LessOrEqual(lhs, rhs);
193882}
193883#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
193884
193885#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
193886template <class t_HEAD, class t_TAIL_01,
193887 class t_TAIL_02,
193888 class t_TAIL_03,
193889 class t_TAIL_04,
193890 class t_TAIL_05,
193891 class t_TAIL_06,
193892 class t_TAIL_07,
193893 class t_TAIL_08>
193894bool operator<=(const variant<t_HEAD, t_TAIL_01,
193895 t_TAIL_02,
193896 t_TAIL_03,
193897 t_TAIL_04,
193898 t_TAIL_05,
193899 t_TAIL_06,
193900 t_TAIL_07,
193901 t_TAIL_08>& lhs,
193902 const variant<t_HEAD, t_TAIL_01,
193903 t_TAIL_02,
193904 t_TAIL_03,
193905 t_TAIL_04,
193906 t_TAIL_05,
193907 t_TAIL_06,
193908 t_TAIL_07,
193909 t_TAIL_08>& rhs)
193910{
193911 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193912
193913 if (lhs.valueless_by_exception()) {
193914 return true;
193915 }
193916 else if (rhs.valueless_by_exception()) {
193917 return false;
193918 }
193919 else if (lhs.index() != rhs.index()) {
193920 return lhs.index() < rhs.index();
193921 }
193922 return ImpUtil::LessOrEqual(lhs, rhs);
193923}
193924#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
193925
193926#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
193927template <class t_HEAD, class t_TAIL_01,
193928 class t_TAIL_02,
193929 class t_TAIL_03,
193930 class t_TAIL_04,
193931 class t_TAIL_05,
193932 class t_TAIL_06,
193933 class t_TAIL_07,
193934 class t_TAIL_08,
193935 class t_TAIL_09>
193936bool operator<=(const variant<t_HEAD, t_TAIL_01,
193937 t_TAIL_02,
193938 t_TAIL_03,
193939 t_TAIL_04,
193940 t_TAIL_05,
193941 t_TAIL_06,
193942 t_TAIL_07,
193943 t_TAIL_08,
193944 t_TAIL_09>& lhs,
193945 const variant<t_HEAD, t_TAIL_01,
193946 t_TAIL_02,
193947 t_TAIL_03,
193948 t_TAIL_04,
193949 t_TAIL_05,
193950 t_TAIL_06,
193951 t_TAIL_07,
193952 t_TAIL_08,
193953 t_TAIL_09>& rhs)
193954{
193955 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
193956
193957 if (lhs.valueless_by_exception()) {
193958 return true;
193959 }
193960 else if (rhs.valueless_by_exception()) {
193961 return false;
193962 }
193963 else if (lhs.index() != rhs.index()) {
193964 return lhs.index() < rhs.index();
193965 }
193966 return ImpUtil::LessOrEqual(lhs, rhs);
193967}
193968#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
193969
193970#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
193971template <class t_HEAD, class t_TAIL_01,
193972 class t_TAIL_02,
193973 class t_TAIL_03,
193974 class t_TAIL_04,
193975 class t_TAIL_05,
193976 class t_TAIL_06,
193977 class t_TAIL_07,
193978 class t_TAIL_08,
193979 class t_TAIL_09,
193980 class t_TAIL_10>
193981bool operator<=(const variant<t_HEAD, t_TAIL_01,
193982 t_TAIL_02,
193983 t_TAIL_03,
193984 t_TAIL_04,
193985 t_TAIL_05,
193986 t_TAIL_06,
193987 t_TAIL_07,
193988 t_TAIL_08,
193989 t_TAIL_09,
193990 t_TAIL_10>& lhs,
193991 const variant<t_HEAD, t_TAIL_01,
193992 t_TAIL_02,
193993 t_TAIL_03,
193994 t_TAIL_04,
193995 t_TAIL_05,
193996 t_TAIL_06,
193997 t_TAIL_07,
193998 t_TAIL_08,
193999 t_TAIL_09,
194000 t_TAIL_10>& rhs)
194001{
194002 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194003
194004 if (lhs.valueless_by_exception()) {
194005 return true;
194006 }
194007 else if (rhs.valueless_by_exception()) {
194008 return false;
194009 }
194010 else if (lhs.index() != rhs.index()) {
194011 return lhs.index() < rhs.index();
194012 }
194013 return ImpUtil::LessOrEqual(lhs, rhs);
194014}
194015#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
194016
194017#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
194018template <class t_HEAD, class t_TAIL_01,
194019 class t_TAIL_02,
194020 class t_TAIL_03,
194021 class t_TAIL_04,
194022 class t_TAIL_05,
194023 class t_TAIL_06,
194024 class t_TAIL_07,
194025 class t_TAIL_08,
194026 class t_TAIL_09,
194027 class t_TAIL_10,
194028 class t_TAIL_11>
194029bool operator<=(const variant<t_HEAD, t_TAIL_01,
194030 t_TAIL_02,
194031 t_TAIL_03,
194032 t_TAIL_04,
194033 t_TAIL_05,
194034 t_TAIL_06,
194035 t_TAIL_07,
194036 t_TAIL_08,
194037 t_TAIL_09,
194038 t_TAIL_10,
194039 t_TAIL_11>& lhs,
194040 const variant<t_HEAD, t_TAIL_01,
194041 t_TAIL_02,
194042 t_TAIL_03,
194043 t_TAIL_04,
194044 t_TAIL_05,
194045 t_TAIL_06,
194046 t_TAIL_07,
194047 t_TAIL_08,
194048 t_TAIL_09,
194049 t_TAIL_10,
194050 t_TAIL_11>& rhs)
194051{
194052 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194053
194054 if (lhs.valueless_by_exception()) {
194055 return true;
194056 }
194057 else if (rhs.valueless_by_exception()) {
194058 return false;
194059 }
194060 else if (lhs.index() != rhs.index()) {
194061 return lhs.index() < rhs.index();
194062 }
194063 return ImpUtil::LessOrEqual(lhs, rhs);
194064}
194065#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
194066
194067#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
194068template <class t_HEAD, class t_TAIL_01,
194069 class t_TAIL_02,
194070 class t_TAIL_03,
194071 class t_TAIL_04,
194072 class t_TAIL_05,
194073 class t_TAIL_06,
194074 class t_TAIL_07,
194075 class t_TAIL_08,
194076 class t_TAIL_09,
194077 class t_TAIL_10,
194078 class t_TAIL_11,
194079 class t_TAIL_12>
194080bool operator<=(const variant<t_HEAD, t_TAIL_01,
194081 t_TAIL_02,
194082 t_TAIL_03,
194083 t_TAIL_04,
194084 t_TAIL_05,
194085 t_TAIL_06,
194086 t_TAIL_07,
194087 t_TAIL_08,
194088 t_TAIL_09,
194089 t_TAIL_10,
194090 t_TAIL_11,
194091 t_TAIL_12>& lhs,
194092 const variant<t_HEAD, t_TAIL_01,
194093 t_TAIL_02,
194094 t_TAIL_03,
194095 t_TAIL_04,
194096 t_TAIL_05,
194097 t_TAIL_06,
194098 t_TAIL_07,
194099 t_TAIL_08,
194100 t_TAIL_09,
194101 t_TAIL_10,
194102 t_TAIL_11,
194103 t_TAIL_12>& rhs)
194104{
194105 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194106
194107 if (lhs.valueless_by_exception()) {
194108 return true;
194109 }
194110 else if (rhs.valueless_by_exception()) {
194111 return false;
194112 }
194113 else if (lhs.index() != rhs.index()) {
194114 return lhs.index() < rhs.index();
194115 }
194116 return ImpUtil::LessOrEqual(lhs, rhs);
194117}
194118#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
194119
194120#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
194121template <class t_HEAD, class t_TAIL_01,
194122 class t_TAIL_02,
194123 class t_TAIL_03,
194124 class t_TAIL_04,
194125 class t_TAIL_05,
194126 class t_TAIL_06,
194127 class t_TAIL_07,
194128 class t_TAIL_08,
194129 class t_TAIL_09,
194130 class t_TAIL_10,
194131 class t_TAIL_11,
194132 class t_TAIL_12,
194133 class t_TAIL_13>
194134bool operator<=(const variant<t_HEAD, t_TAIL_01,
194135 t_TAIL_02,
194136 t_TAIL_03,
194137 t_TAIL_04,
194138 t_TAIL_05,
194139 t_TAIL_06,
194140 t_TAIL_07,
194141 t_TAIL_08,
194142 t_TAIL_09,
194143 t_TAIL_10,
194144 t_TAIL_11,
194145 t_TAIL_12,
194146 t_TAIL_13>& lhs,
194147 const variant<t_HEAD, t_TAIL_01,
194148 t_TAIL_02,
194149 t_TAIL_03,
194150 t_TAIL_04,
194151 t_TAIL_05,
194152 t_TAIL_06,
194153 t_TAIL_07,
194154 t_TAIL_08,
194155 t_TAIL_09,
194156 t_TAIL_10,
194157 t_TAIL_11,
194158 t_TAIL_12,
194159 t_TAIL_13>& rhs)
194160{
194161 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194162
194163 if (lhs.valueless_by_exception()) {
194164 return true;
194165 }
194166 else if (rhs.valueless_by_exception()) {
194167 return false;
194168 }
194169 else if (lhs.index() != rhs.index()) {
194170 return lhs.index() < rhs.index();
194171 }
194172 return ImpUtil::LessOrEqual(lhs, rhs);
194173}
194174#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
194175
194176#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
194177template <class t_HEAD, class t_TAIL_01,
194178 class t_TAIL_02,
194179 class t_TAIL_03,
194180 class t_TAIL_04,
194181 class t_TAIL_05,
194182 class t_TAIL_06,
194183 class t_TAIL_07,
194184 class t_TAIL_08,
194185 class t_TAIL_09,
194186 class t_TAIL_10,
194187 class t_TAIL_11,
194188 class t_TAIL_12,
194189 class t_TAIL_13,
194190 class t_TAIL_14>
194191bool operator<=(const variant<t_HEAD, t_TAIL_01,
194192 t_TAIL_02,
194193 t_TAIL_03,
194194 t_TAIL_04,
194195 t_TAIL_05,
194196 t_TAIL_06,
194197 t_TAIL_07,
194198 t_TAIL_08,
194199 t_TAIL_09,
194200 t_TAIL_10,
194201 t_TAIL_11,
194202 t_TAIL_12,
194203 t_TAIL_13,
194204 t_TAIL_14>& lhs,
194205 const variant<t_HEAD, t_TAIL_01,
194206 t_TAIL_02,
194207 t_TAIL_03,
194208 t_TAIL_04,
194209 t_TAIL_05,
194210 t_TAIL_06,
194211 t_TAIL_07,
194212 t_TAIL_08,
194213 t_TAIL_09,
194214 t_TAIL_10,
194215 t_TAIL_11,
194216 t_TAIL_12,
194217 t_TAIL_13,
194218 t_TAIL_14>& rhs)
194219{
194220 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194221
194222 if (lhs.valueless_by_exception()) {
194223 return true;
194224 }
194225 else if (rhs.valueless_by_exception()) {
194226 return false;
194227 }
194228 else if (lhs.index() != rhs.index()) {
194229 return lhs.index() < rhs.index();
194230 }
194231 return ImpUtil::LessOrEqual(lhs, rhs);
194232}
194233#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
194234
194235#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
194236template <class t_HEAD, class t_TAIL_01,
194237 class t_TAIL_02,
194238 class t_TAIL_03,
194239 class t_TAIL_04,
194240 class t_TAIL_05,
194241 class t_TAIL_06,
194242 class t_TAIL_07,
194243 class t_TAIL_08,
194244 class t_TAIL_09,
194245 class t_TAIL_10,
194246 class t_TAIL_11,
194247 class t_TAIL_12,
194248 class t_TAIL_13,
194249 class t_TAIL_14,
194250 class t_TAIL_15>
194251bool operator<=(const variant<t_HEAD, t_TAIL_01,
194252 t_TAIL_02,
194253 t_TAIL_03,
194254 t_TAIL_04,
194255 t_TAIL_05,
194256 t_TAIL_06,
194257 t_TAIL_07,
194258 t_TAIL_08,
194259 t_TAIL_09,
194260 t_TAIL_10,
194261 t_TAIL_11,
194262 t_TAIL_12,
194263 t_TAIL_13,
194264 t_TAIL_14,
194265 t_TAIL_15>& lhs,
194266 const variant<t_HEAD, t_TAIL_01,
194267 t_TAIL_02,
194268 t_TAIL_03,
194269 t_TAIL_04,
194270 t_TAIL_05,
194271 t_TAIL_06,
194272 t_TAIL_07,
194273 t_TAIL_08,
194274 t_TAIL_09,
194275 t_TAIL_10,
194276 t_TAIL_11,
194277 t_TAIL_12,
194278 t_TAIL_13,
194279 t_TAIL_14,
194280 t_TAIL_15>& rhs)
194281{
194282 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194283
194284 if (lhs.valueless_by_exception()) {
194285 return true;
194286 }
194287 else if (rhs.valueless_by_exception()) {
194288 return false;
194289 }
194290 else if (lhs.index() != rhs.index()) {
194291 return lhs.index() < rhs.index();
194292 }
194293 return ImpUtil::LessOrEqual(lhs, rhs);
194294}
194295#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
194296
194297#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
194298template <class t_HEAD, class t_TAIL_01,
194299 class t_TAIL_02,
194300 class t_TAIL_03,
194301 class t_TAIL_04,
194302 class t_TAIL_05,
194303 class t_TAIL_06,
194304 class t_TAIL_07,
194305 class t_TAIL_08,
194306 class t_TAIL_09,
194307 class t_TAIL_10,
194308 class t_TAIL_11,
194309 class t_TAIL_12,
194310 class t_TAIL_13,
194311 class t_TAIL_14,
194312 class t_TAIL_15,
194313 class t_TAIL_16>
194314bool operator<=(const variant<t_HEAD, t_TAIL_01,
194315 t_TAIL_02,
194316 t_TAIL_03,
194317 t_TAIL_04,
194318 t_TAIL_05,
194319 t_TAIL_06,
194320 t_TAIL_07,
194321 t_TAIL_08,
194322 t_TAIL_09,
194323 t_TAIL_10,
194324 t_TAIL_11,
194325 t_TAIL_12,
194326 t_TAIL_13,
194327 t_TAIL_14,
194328 t_TAIL_15,
194329 t_TAIL_16>& lhs,
194330 const variant<t_HEAD, t_TAIL_01,
194331 t_TAIL_02,
194332 t_TAIL_03,
194333 t_TAIL_04,
194334 t_TAIL_05,
194335 t_TAIL_06,
194336 t_TAIL_07,
194337 t_TAIL_08,
194338 t_TAIL_09,
194339 t_TAIL_10,
194340 t_TAIL_11,
194341 t_TAIL_12,
194342 t_TAIL_13,
194343 t_TAIL_14,
194344 t_TAIL_15,
194345 t_TAIL_16>& rhs)
194346{
194347 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194348
194349 if (lhs.valueless_by_exception()) {
194350 return true;
194351 }
194352 else if (rhs.valueless_by_exception()) {
194353 return false;
194354 }
194355 else if (lhs.index() != rhs.index()) {
194356 return lhs.index() < rhs.index();
194357 }
194358 return ImpUtil::LessOrEqual(lhs, rhs);
194359}
194360#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
194361
194362#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
194363template <class t_HEAD, class t_TAIL_01,
194364 class t_TAIL_02,
194365 class t_TAIL_03,
194366 class t_TAIL_04,
194367 class t_TAIL_05,
194368 class t_TAIL_06,
194369 class t_TAIL_07,
194370 class t_TAIL_08,
194371 class t_TAIL_09,
194372 class t_TAIL_10,
194373 class t_TAIL_11,
194374 class t_TAIL_12,
194375 class t_TAIL_13,
194376 class t_TAIL_14,
194377 class t_TAIL_15,
194378 class t_TAIL_16,
194379 class t_TAIL_17>
194380bool operator<=(const variant<t_HEAD, t_TAIL_01,
194381 t_TAIL_02,
194382 t_TAIL_03,
194383 t_TAIL_04,
194384 t_TAIL_05,
194385 t_TAIL_06,
194386 t_TAIL_07,
194387 t_TAIL_08,
194388 t_TAIL_09,
194389 t_TAIL_10,
194390 t_TAIL_11,
194391 t_TAIL_12,
194392 t_TAIL_13,
194393 t_TAIL_14,
194394 t_TAIL_15,
194395 t_TAIL_16,
194396 t_TAIL_17>& lhs,
194397 const variant<t_HEAD, t_TAIL_01,
194398 t_TAIL_02,
194399 t_TAIL_03,
194400 t_TAIL_04,
194401 t_TAIL_05,
194402 t_TAIL_06,
194403 t_TAIL_07,
194404 t_TAIL_08,
194405 t_TAIL_09,
194406 t_TAIL_10,
194407 t_TAIL_11,
194408 t_TAIL_12,
194409 t_TAIL_13,
194410 t_TAIL_14,
194411 t_TAIL_15,
194412 t_TAIL_16,
194413 t_TAIL_17>& rhs)
194414{
194415 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194416
194417 if (lhs.valueless_by_exception()) {
194418 return true;
194419 }
194420 else if (rhs.valueless_by_exception()) {
194421 return false;
194422 }
194423 else if (lhs.index() != rhs.index()) {
194424 return lhs.index() < rhs.index();
194425 }
194426 return ImpUtil::LessOrEqual(lhs, rhs);
194427}
194428#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
194429
194430#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
194431template <class t_HEAD, class t_TAIL_01,
194432 class t_TAIL_02,
194433 class t_TAIL_03,
194434 class t_TAIL_04,
194435 class t_TAIL_05,
194436 class t_TAIL_06,
194437 class t_TAIL_07,
194438 class t_TAIL_08,
194439 class t_TAIL_09,
194440 class t_TAIL_10,
194441 class t_TAIL_11,
194442 class t_TAIL_12,
194443 class t_TAIL_13,
194444 class t_TAIL_14,
194445 class t_TAIL_15,
194446 class t_TAIL_16,
194447 class t_TAIL_17,
194448 class t_TAIL_18>
194449bool operator<=(const variant<t_HEAD, t_TAIL_01,
194450 t_TAIL_02,
194451 t_TAIL_03,
194452 t_TAIL_04,
194453 t_TAIL_05,
194454 t_TAIL_06,
194455 t_TAIL_07,
194456 t_TAIL_08,
194457 t_TAIL_09,
194458 t_TAIL_10,
194459 t_TAIL_11,
194460 t_TAIL_12,
194461 t_TAIL_13,
194462 t_TAIL_14,
194463 t_TAIL_15,
194464 t_TAIL_16,
194465 t_TAIL_17,
194466 t_TAIL_18>& lhs,
194467 const variant<t_HEAD, t_TAIL_01,
194468 t_TAIL_02,
194469 t_TAIL_03,
194470 t_TAIL_04,
194471 t_TAIL_05,
194472 t_TAIL_06,
194473 t_TAIL_07,
194474 t_TAIL_08,
194475 t_TAIL_09,
194476 t_TAIL_10,
194477 t_TAIL_11,
194478 t_TAIL_12,
194479 t_TAIL_13,
194480 t_TAIL_14,
194481 t_TAIL_15,
194482 t_TAIL_16,
194483 t_TAIL_17,
194484 t_TAIL_18>& rhs)
194485{
194486 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194487
194488 if (lhs.valueless_by_exception()) {
194489 return true;
194490 }
194491 else if (rhs.valueless_by_exception()) {
194492 return false;
194493 }
194494 else if (lhs.index() != rhs.index()) {
194495 return lhs.index() < rhs.index();
194496 }
194497 return ImpUtil::LessOrEqual(lhs, rhs);
194498}
194499#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
194500
194501
194502#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
194503template <class t_HEAD>
194504bool operator>=(const variant<t_HEAD>& lhs,
194505 const variant<t_HEAD>& rhs)
194506{
194507 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194508
194509 if (rhs.valueless_by_exception()) {
194510 return true;
194511 }
194512 else if (lhs.valueless_by_exception()) {
194513 return false;
194514 }
194515 else if (lhs.index() != rhs.index()) {
194516 return lhs.index() > rhs.index();
194517 }
194518
194519 return ImpUtil::GreaterOrEqual(lhs, rhs);
194520}
194521#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
194522
194523#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
194524template <class t_HEAD, class t_TAIL_01>
194525bool operator>=(const variant<t_HEAD, t_TAIL_01>& lhs,
194526 const variant<t_HEAD, t_TAIL_01>& rhs)
194527{
194528 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194529
194530 if (rhs.valueless_by_exception()) {
194531 return true;
194532 }
194533 else if (lhs.valueless_by_exception()) {
194534 return false;
194535 }
194536 else if (lhs.index() != rhs.index()) {
194537 return lhs.index() > rhs.index();
194538 }
194539
194540 return ImpUtil::GreaterOrEqual(lhs, rhs);
194541}
194542#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
194543
194544#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
194545template <class t_HEAD, class t_TAIL_01,
194546 class t_TAIL_02>
194547bool operator>=(const variant<t_HEAD, t_TAIL_01,
194548 t_TAIL_02>& lhs,
194549 const variant<t_HEAD, t_TAIL_01,
194550 t_TAIL_02>& rhs)
194551{
194552 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194553
194554 if (rhs.valueless_by_exception()) {
194555 return true;
194556 }
194557 else if (lhs.valueless_by_exception()) {
194558 return false;
194559 }
194560 else if (lhs.index() != rhs.index()) {
194561 return lhs.index() > rhs.index();
194562 }
194563
194564 return ImpUtil::GreaterOrEqual(lhs, rhs);
194565}
194566#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
194567
194568#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
194569template <class t_HEAD, class t_TAIL_01,
194570 class t_TAIL_02,
194571 class t_TAIL_03>
194572bool operator>=(const variant<t_HEAD, t_TAIL_01,
194573 t_TAIL_02,
194574 t_TAIL_03>& lhs,
194575 const variant<t_HEAD, t_TAIL_01,
194576 t_TAIL_02,
194577 t_TAIL_03>& rhs)
194578{
194579 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194580
194581 if (rhs.valueless_by_exception()) {
194582 return true;
194583 }
194584 else if (lhs.valueless_by_exception()) {
194585 return false;
194586 }
194587 else if (lhs.index() != rhs.index()) {
194588 return lhs.index() > rhs.index();
194589 }
194590
194591 return ImpUtil::GreaterOrEqual(lhs, rhs);
194592}
194593#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
194594
194595#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
194596template <class t_HEAD, class t_TAIL_01,
194597 class t_TAIL_02,
194598 class t_TAIL_03,
194599 class t_TAIL_04>
194600bool operator>=(const variant<t_HEAD, t_TAIL_01,
194601 t_TAIL_02,
194602 t_TAIL_03,
194603 t_TAIL_04>& lhs,
194604 const variant<t_HEAD, t_TAIL_01,
194605 t_TAIL_02,
194606 t_TAIL_03,
194607 t_TAIL_04>& rhs)
194608{
194609 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194610
194611 if (rhs.valueless_by_exception()) {
194612 return true;
194613 }
194614 else if (lhs.valueless_by_exception()) {
194615 return false;
194616 }
194617 else if (lhs.index() != rhs.index()) {
194618 return lhs.index() > rhs.index();
194619 }
194620
194621 return ImpUtil::GreaterOrEqual(lhs, rhs);
194622}
194623#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
194624
194625#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
194626template <class t_HEAD, class t_TAIL_01,
194627 class t_TAIL_02,
194628 class t_TAIL_03,
194629 class t_TAIL_04,
194630 class t_TAIL_05>
194631bool operator>=(const variant<t_HEAD, t_TAIL_01,
194632 t_TAIL_02,
194633 t_TAIL_03,
194634 t_TAIL_04,
194635 t_TAIL_05>& lhs,
194636 const variant<t_HEAD, t_TAIL_01,
194637 t_TAIL_02,
194638 t_TAIL_03,
194639 t_TAIL_04,
194640 t_TAIL_05>& rhs)
194641{
194642 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194643
194644 if (rhs.valueless_by_exception()) {
194645 return true;
194646 }
194647 else if (lhs.valueless_by_exception()) {
194648 return false;
194649 }
194650 else if (lhs.index() != rhs.index()) {
194651 return lhs.index() > rhs.index();
194652 }
194653
194654 return ImpUtil::GreaterOrEqual(lhs, rhs);
194655}
194656#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
194657
194658#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
194659template <class t_HEAD, class t_TAIL_01,
194660 class t_TAIL_02,
194661 class t_TAIL_03,
194662 class t_TAIL_04,
194663 class t_TAIL_05,
194664 class t_TAIL_06>
194665bool operator>=(const variant<t_HEAD, t_TAIL_01,
194666 t_TAIL_02,
194667 t_TAIL_03,
194668 t_TAIL_04,
194669 t_TAIL_05,
194670 t_TAIL_06>& lhs,
194671 const variant<t_HEAD, t_TAIL_01,
194672 t_TAIL_02,
194673 t_TAIL_03,
194674 t_TAIL_04,
194675 t_TAIL_05,
194676 t_TAIL_06>& rhs)
194677{
194678 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194679
194680 if (rhs.valueless_by_exception()) {
194681 return true;
194682 }
194683 else if (lhs.valueless_by_exception()) {
194684 return false;
194685 }
194686 else if (lhs.index() != rhs.index()) {
194687 return lhs.index() > rhs.index();
194688 }
194689
194690 return ImpUtil::GreaterOrEqual(lhs, rhs);
194691}
194692#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
194693
194694#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
194695template <class t_HEAD, class t_TAIL_01,
194696 class t_TAIL_02,
194697 class t_TAIL_03,
194698 class t_TAIL_04,
194699 class t_TAIL_05,
194700 class t_TAIL_06,
194701 class t_TAIL_07>
194702bool operator>=(const variant<t_HEAD, t_TAIL_01,
194703 t_TAIL_02,
194704 t_TAIL_03,
194705 t_TAIL_04,
194706 t_TAIL_05,
194707 t_TAIL_06,
194708 t_TAIL_07>& lhs,
194709 const variant<t_HEAD, t_TAIL_01,
194710 t_TAIL_02,
194711 t_TAIL_03,
194712 t_TAIL_04,
194713 t_TAIL_05,
194714 t_TAIL_06,
194715 t_TAIL_07>& rhs)
194716{
194717 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194718
194719 if (rhs.valueless_by_exception()) {
194720 return true;
194721 }
194722 else if (lhs.valueless_by_exception()) {
194723 return false;
194724 }
194725 else if (lhs.index() != rhs.index()) {
194726 return lhs.index() > rhs.index();
194727 }
194728
194729 return ImpUtil::GreaterOrEqual(lhs, rhs);
194730}
194731#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
194732
194733#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
194734template <class t_HEAD, class t_TAIL_01,
194735 class t_TAIL_02,
194736 class t_TAIL_03,
194737 class t_TAIL_04,
194738 class t_TAIL_05,
194739 class t_TAIL_06,
194740 class t_TAIL_07,
194741 class t_TAIL_08>
194742bool operator>=(const variant<t_HEAD, t_TAIL_01,
194743 t_TAIL_02,
194744 t_TAIL_03,
194745 t_TAIL_04,
194746 t_TAIL_05,
194747 t_TAIL_06,
194748 t_TAIL_07,
194749 t_TAIL_08>& lhs,
194750 const variant<t_HEAD, t_TAIL_01,
194751 t_TAIL_02,
194752 t_TAIL_03,
194753 t_TAIL_04,
194754 t_TAIL_05,
194755 t_TAIL_06,
194756 t_TAIL_07,
194757 t_TAIL_08>& rhs)
194758{
194759 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194760
194761 if (rhs.valueless_by_exception()) {
194762 return true;
194763 }
194764 else if (lhs.valueless_by_exception()) {
194765 return false;
194766 }
194767 else if (lhs.index() != rhs.index()) {
194768 return lhs.index() > rhs.index();
194769 }
194770
194771 return ImpUtil::GreaterOrEqual(lhs, rhs);
194772}
194773#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
194774
194775#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
194776template <class t_HEAD, class t_TAIL_01,
194777 class t_TAIL_02,
194778 class t_TAIL_03,
194779 class t_TAIL_04,
194780 class t_TAIL_05,
194781 class t_TAIL_06,
194782 class t_TAIL_07,
194783 class t_TAIL_08,
194784 class t_TAIL_09>
194785bool operator>=(const variant<t_HEAD, t_TAIL_01,
194786 t_TAIL_02,
194787 t_TAIL_03,
194788 t_TAIL_04,
194789 t_TAIL_05,
194790 t_TAIL_06,
194791 t_TAIL_07,
194792 t_TAIL_08,
194793 t_TAIL_09>& lhs,
194794 const variant<t_HEAD, t_TAIL_01,
194795 t_TAIL_02,
194796 t_TAIL_03,
194797 t_TAIL_04,
194798 t_TAIL_05,
194799 t_TAIL_06,
194800 t_TAIL_07,
194801 t_TAIL_08,
194802 t_TAIL_09>& rhs)
194803{
194804 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194805
194806 if (rhs.valueless_by_exception()) {
194807 return true;
194808 }
194809 else if (lhs.valueless_by_exception()) {
194810 return false;
194811 }
194812 else if (lhs.index() != rhs.index()) {
194813 return lhs.index() > rhs.index();
194814 }
194815
194816 return ImpUtil::GreaterOrEqual(lhs, rhs);
194817}
194818#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
194819
194820#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
194821template <class t_HEAD, class t_TAIL_01,
194822 class t_TAIL_02,
194823 class t_TAIL_03,
194824 class t_TAIL_04,
194825 class t_TAIL_05,
194826 class t_TAIL_06,
194827 class t_TAIL_07,
194828 class t_TAIL_08,
194829 class t_TAIL_09,
194830 class t_TAIL_10>
194831bool operator>=(const variant<t_HEAD, t_TAIL_01,
194832 t_TAIL_02,
194833 t_TAIL_03,
194834 t_TAIL_04,
194835 t_TAIL_05,
194836 t_TAIL_06,
194837 t_TAIL_07,
194838 t_TAIL_08,
194839 t_TAIL_09,
194840 t_TAIL_10>& lhs,
194841 const variant<t_HEAD, t_TAIL_01,
194842 t_TAIL_02,
194843 t_TAIL_03,
194844 t_TAIL_04,
194845 t_TAIL_05,
194846 t_TAIL_06,
194847 t_TAIL_07,
194848 t_TAIL_08,
194849 t_TAIL_09,
194850 t_TAIL_10>& rhs)
194851{
194852 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194853
194854 if (rhs.valueless_by_exception()) {
194855 return true;
194856 }
194857 else if (lhs.valueless_by_exception()) {
194858 return false;
194859 }
194860 else if (lhs.index() != rhs.index()) {
194861 return lhs.index() > rhs.index();
194862 }
194863
194864 return ImpUtil::GreaterOrEqual(lhs, rhs);
194865}
194866#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
194867
194868#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
194869template <class t_HEAD, class t_TAIL_01,
194870 class t_TAIL_02,
194871 class t_TAIL_03,
194872 class t_TAIL_04,
194873 class t_TAIL_05,
194874 class t_TAIL_06,
194875 class t_TAIL_07,
194876 class t_TAIL_08,
194877 class t_TAIL_09,
194878 class t_TAIL_10,
194879 class t_TAIL_11>
194880bool operator>=(const variant<t_HEAD, t_TAIL_01,
194881 t_TAIL_02,
194882 t_TAIL_03,
194883 t_TAIL_04,
194884 t_TAIL_05,
194885 t_TAIL_06,
194886 t_TAIL_07,
194887 t_TAIL_08,
194888 t_TAIL_09,
194889 t_TAIL_10,
194890 t_TAIL_11>& lhs,
194891 const variant<t_HEAD, t_TAIL_01,
194892 t_TAIL_02,
194893 t_TAIL_03,
194894 t_TAIL_04,
194895 t_TAIL_05,
194896 t_TAIL_06,
194897 t_TAIL_07,
194898 t_TAIL_08,
194899 t_TAIL_09,
194900 t_TAIL_10,
194901 t_TAIL_11>& rhs)
194902{
194903 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194904
194905 if (rhs.valueless_by_exception()) {
194906 return true;
194907 }
194908 else if (lhs.valueless_by_exception()) {
194909 return false;
194910 }
194911 else if (lhs.index() != rhs.index()) {
194912 return lhs.index() > rhs.index();
194913 }
194914
194915 return ImpUtil::GreaterOrEqual(lhs, rhs);
194916}
194917#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
194918
194919#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
194920template <class t_HEAD, class t_TAIL_01,
194921 class t_TAIL_02,
194922 class t_TAIL_03,
194923 class t_TAIL_04,
194924 class t_TAIL_05,
194925 class t_TAIL_06,
194926 class t_TAIL_07,
194927 class t_TAIL_08,
194928 class t_TAIL_09,
194929 class t_TAIL_10,
194930 class t_TAIL_11,
194931 class t_TAIL_12>
194932bool operator>=(const variant<t_HEAD, t_TAIL_01,
194933 t_TAIL_02,
194934 t_TAIL_03,
194935 t_TAIL_04,
194936 t_TAIL_05,
194937 t_TAIL_06,
194938 t_TAIL_07,
194939 t_TAIL_08,
194940 t_TAIL_09,
194941 t_TAIL_10,
194942 t_TAIL_11,
194943 t_TAIL_12>& lhs,
194944 const variant<t_HEAD, t_TAIL_01,
194945 t_TAIL_02,
194946 t_TAIL_03,
194947 t_TAIL_04,
194948 t_TAIL_05,
194949 t_TAIL_06,
194950 t_TAIL_07,
194951 t_TAIL_08,
194952 t_TAIL_09,
194953 t_TAIL_10,
194954 t_TAIL_11,
194955 t_TAIL_12>& rhs)
194956{
194957 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
194958
194959 if (rhs.valueless_by_exception()) {
194960 return true;
194961 }
194962 else if (lhs.valueless_by_exception()) {
194963 return false;
194964 }
194965 else if (lhs.index() != rhs.index()) {
194966 return lhs.index() > rhs.index();
194967 }
194968
194969 return ImpUtil::GreaterOrEqual(lhs, rhs);
194970}
194971#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
194972
194973#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
194974template <class t_HEAD, class t_TAIL_01,
194975 class t_TAIL_02,
194976 class t_TAIL_03,
194977 class t_TAIL_04,
194978 class t_TAIL_05,
194979 class t_TAIL_06,
194980 class t_TAIL_07,
194981 class t_TAIL_08,
194982 class t_TAIL_09,
194983 class t_TAIL_10,
194984 class t_TAIL_11,
194985 class t_TAIL_12,
194986 class t_TAIL_13>
194987bool operator>=(const variant<t_HEAD, t_TAIL_01,
194988 t_TAIL_02,
194989 t_TAIL_03,
194990 t_TAIL_04,
194991 t_TAIL_05,
194992 t_TAIL_06,
194993 t_TAIL_07,
194994 t_TAIL_08,
194995 t_TAIL_09,
194996 t_TAIL_10,
194997 t_TAIL_11,
194998 t_TAIL_12,
194999 t_TAIL_13>& lhs,
195000 const variant<t_HEAD, t_TAIL_01,
195001 t_TAIL_02,
195002 t_TAIL_03,
195003 t_TAIL_04,
195004 t_TAIL_05,
195005 t_TAIL_06,
195006 t_TAIL_07,
195007 t_TAIL_08,
195008 t_TAIL_09,
195009 t_TAIL_10,
195010 t_TAIL_11,
195011 t_TAIL_12,
195012 t_TAIL_13>& rhs)
195013{
195014 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
195015
195016 if (rhs.valueless_by_exception()) {
195017 return true;
195018 }
195019 else if (lhs.valueless_by_exception()) {
195020 return false;
195021 }
195022 else if (lhs.index() != rhs.index()) {
195023 return lhs.index() > rhs.index();
195024 }
195025
195026 return ImpUtil::GreaterOrEqual(lhs, rhs);
195027}
195028#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
195029
195030#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
195031template <class t_HEAD, class t_TAIL_01,
195032 class t_TAIL_02,
195033 class t_TAIL_03,
195034 class t_TAIL_04,
195035 class t_TAIL_05,
195036 class t_TAIL_06,
195037 class t_TAIL_07,
195038 class t_TAIL_08,
195039 class t_TAIL_09,
195040 class t_TAIL_10,
195041 class t_TAIL_11,
195042 class t_TAIL_12,
195043 class t_TAIL_13,
195044 class t_TAIL_14>
195045bool operator>=(const variant<t_HEAD, t_TAIL_01,
195046 t_TAIL_02,
195047 t_TAIL_03,
195048 t_TAIL_04,
195049 t_TAIL_05,
195050 t_TAIL_06,
195051 t_TAIL_07,
195052 t_TAIL_08,
195053 t_TAIL_09,
195054 t_TAIL_10,
195055 t_TAIL_11,
195056 t_TAIL_12,
195057 t_TAIL_13,
195058 t_TAIL_14>& lhs,
195059 const variant<t_HEAD, t_TAIL_01,
195060 t_TAIL_02,
195061 t_TAIL_03,
195062 t_TAIL_04,
195063 t_TAIL_05,
195064 t_TAIL_06,
195065 t_TAIL_07,
195066 t_TAIL_08,
195067 t_TAIL_09,
195068 t_TAIL_10,
195069 t_TAIL_11,
195070 t_TAIL_12,
195071 t_TAIL_13,
195072 t_TAIL_14>& rhs)
195073{
195074 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
195075
195076 if (rhs.valueless_by_exception()) {
195077 return true;
195078 }
195079 else if (lhs.valueless_by_exception()) {
195080 return false;
195081 }
195082 else if (lhs.index() != rhs.index()) {
195083 return lhs.index() > rhs.index();
195084 }
195085
195086 return ImpUtil::GreaterOrEqual(lhs, rhs);
195087}
195088#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
195089
195090#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
195091template <class t_HEAD, class t_TAIL_01,
195092 class t_TAIL_02,
195093 class t_TAIL_03,
195094 class t_TAIL_04,
195095 class t_TAIL_05,
195096 class t_TAIL_06,
195097 class t_TAIL_07,
195098 class t_TAIL_08,
195099 class t_TAIL_09,
195100 class t_TAIL_10,
195101 class t_TAIL_11,
195102 class t_TAIL_12,
195103 class t_TAIL_13,
195104 class t_TAIL_14,
195105 class t_TAIL_15>
195106bool operator>=(const variant<t_HEAD, t_TAIL_01,
195107 t_TAIL_02,
195108 t_TAIL_03,
195109 t_TAIL_04,
195110 t_TAIL_05,
195111 t_TAIL_06,
195112 t_TAIL_07,
195113 t_TAIL_08,
195114 t_TAIL_09,
195115 t_TAIL_10,
195116 t_TAIL_11,
195117 t_TAIL_12,
195118 t_TAIL_13,
195119 t_TAIL_14,
195120 t_TAIL_15>& lhs,
195121 const variant<t_HEAD, t_TAIL_01,
195122 t_TAIL_02,
195123 t_TAIL_03,
195124 t_TAIL_04,
195125 t_TAIL_05,
195126 t_TAIL_06,
195127 t_TAIL_07,
195128 t_TAIL_08,
195129 t_TAIL_09,
195130 t_TAIL_10,
195131 t_TAIL_11,
195132 t_TAIL_12,
195133 t_TAIL_13,
195134 t_TAIL_14,
195135 t_TAIL_15>& rhs)
195136{
195137 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
195138
195139 if (rhs.valueless_by_exception()) {
195140 return true;
195141 }
195142 else if (lhs.valueless_by_exception()) {
195143 return false;
195144 }
195145 else if (lhs.index() != rhs.index()) {
195146 return lhs.index() > rhs.index();
195147 }
195148
195149 return ImpUtil::GreaterOrEqual(lhs, rhs);
195150}
195151#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
195152
195153#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
195154template <class t_HEAD, class t_TAIL_01,
195155 class t_TAIL_02,
195156 class t_TAIL_03,
195157 class t_TAIL_04,
195158 class t_TAIL_05,
195159 class t_TAIL_06,
195160 class t_TAIL_07,
195161 class t_TAIL_08,
195162 class t_TAIL_09,
195163 class t_TAIL_10,
195164 class t_TAIL_11,
195165 class t_TAIL_12,
195166 class t_TAIL_13,
195167 class t_TAIL_14,
195168 class t_TAIL_15,
195169 class t_TAIL_16>
195170bool operator>=(const variant<t_HEAD, t_TAIL_01,
195171 t_TAIL_02,
195172 t_TAIL_03,
195173 t_TAIL_04,
195174 t_TAIL_05,
195175 t_TAIL_06,
195176 t_TAIL_07,
195177 t_TAIL_08,
195178 t_TAIL_09,
195179 t_TAIL_10,
195180 t_TAIL_11,
195181 t_TAIL_12,
195182 t_TAIL_13,
195183 t_TAIL_14,
195184 t_TAIL_15,
195185 t_TAIL_16>& lhs,
195186 const variant<t_HEAD, t_TAIL_01,
195187 t_TAIL_02,
195188 t_TAIL_03,
195189 t_TAIL_04,
195190 t_TAIL_05,
195191 t_TAIL_06,
195192 t_TAIL_07,
195193 t_TAIL_08,
195194 t_TAIL_09,
195195 t_TAIL_10,
195196 t_TAIL_11,
195197 t_TAIL_12,
195198 t_TAIL_13,
195199 t_TAIL_14,
195200 t_TAIL_15,
195201 t_TAIL_16>& rhs)
195202{
195203 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
195204
195205 if (rhs.valueless_by_exception()) {
195206 return true;
195207 }
195208 else if (lhs.valueless_by_exception()) {
195209 return false;
195210 }
195211 else if (lhs.index() != rhs.index()) {
195212 return lhs.index() > rhs.index();
195213 }
195214
195215 return ImpUtil::GreaterOrEqual(lhs, rhs);
195216}
195217#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
195218
195219#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
195220template <class t_HEAD, class t_TAIL_01,
195221 class t_TAIL_02,
195222 class t_TAIL_03,
195223 class t_TAIL_04,
195224 class t_TAIL_05,
195225 class t_TAIL_06,
195226 class t_TAIL_07,
195227 class t_TAIL_08,
195228 class t_TAIL_09,
195229 class t_TAIL_10,
195230 class t_TAIL_11,
195231 class t_TAIL_12,
195232 class t_TAIL_13,
195233 class t_TAIL_14,
195234 class t_TAIL_15,
195235 class t_TAIL_16,
195236 class t_TAIL_17>
195237bool operator>=(const variant<t_HEAD, t_TAIL_01,
195238 t_TAIL_02,
195239 t_TAIL_03,
195240 t_TAIL_04,
195241 t_TAIL_05,
195242 t_TAIL_06,
195243 t_TAIL_07,
195244 t_TAIL_08,
195245 t_TAIL_09,
195246 t_TAIL_10,
195247 t_TAIL_11,
195248 t_TAIL_12,
195249 t_TAIL_13,
195250 t_TAIL_14,
195251 t_TAIL_15,
195252 t_TAIL_16,
195253 t_TAIL_17>& lhs,
195254 const variant<t_HEAD, t_TAIL_01,
195255 t_TAIL_02,
195256 t_TAIL_03,
195257 t_TAIL_04,
195258 t_TAIL_05,
195259 t_TAIL_06,
195260 t_TAIL_07,
195261 t_TAIL_08,
195262 t_TAIL_09,
195263 t_TAIL_10,
195264 t_TAIL_11,
195265 t_TAIL_12,
195266 t_TAIL_13,
195267 t_TAIL_14,
195268 t_TAIL_15,
195269 t_TAIL_16,
195270 t_TAIL_17>& rhs)
195271{
195272 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
195273
195274 if (rhs.valueless_by_exception()) {
195275 return true;
195276 }
195277 else if (lhs.valueless_by_exception()) {
195278 return false;
195279 }
195280 else if (lhs.index() != rhs.index()) {
195281 return lhs.index() > rhs.index();
195282 }
195283
195284 return ImpUtil::GreaterOrEqual(lhs, rhs);
195285}
195286#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
195287
195288#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
195289template <class t_HEAD, class t_TAIL_01,
195290 class t_TAIL_02,
195291 class t_TAIL_03,
195292 class t_TAIL_04,
195293 class t_TAIL_05,
195294 class t_TAIL_06,
195295 class t_TAIL_07,
195296 class t_TAIL_08,
195297 class t_TAIL_09,
195298 class t_TAIL_10,
195299 class t_TAIL_11,
195300 class t_TAIL_12,
195301 class t_TAIL_13,
195302 class t_TAIL_14,
195303 class t_TAIL_15,
195304 class t_TAIL_16,
195305 class t_TAIL_17,
195306 class t_TAIL_18>
195307bool operator>=(const variant<t_HEAD, t_TAIL_01,
195308 t_TAIL_02,
195309 t_TAIL_03,
195310 t_TAIL_04,
195311 t_TAIL_05,
195312 t_TAIL_06,
195313 t_TAIL_07,
195314 t_TAIL_08,
195315 t_TAIL_09,
195316 t_TAIL_10,
195317 t_TAIL_11,
195318 t_TAIL_12,
195319 t_TAIL_13,
195320 t_TAIL_14,
195321 t_TAIL_15,
195322 t_TAIL_16,
195323 t_TAIL_17,
195324 t_TAIL_18>& lhs,
195325 const variant<t_HEAD, t_TAIL_01,
195326 t_TAIL_02,
195327 t_TAIL_03,
195328 t_TAIL_04,
195329 t_TAIL_05,
195330 t_TAIL_06,
195331 t_TAIL_07,
195332 t_TAIL_08,
195333 t_TAIL_09,
195334 t_TAIL_10,
195335 t_TAIL_11,
195336 t_TAIL_12,
195337 t_TAIL_13,
195338 t_TAIL_14,
195339 t_TAIL_15,
195340 t_TAIL_16,
195341 t_TAIL_17,
195342 t_TAIL_18>& rhs)
195343{
195344 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
195345
195346 if (rhs.valueless_by_exception()) {
195347 return true;
195348 }
195349 else if (lhs.valueless_by_exception()) {
195350 return false;
195351 }
195352 else if (lhs.index() != rhs.index()) {
195353 return lhs.index() > rhs.index();
195354 }
195355
195356 return ImpUtil::GreaterOrEqual(lhs, rhs);
195357}
195358#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
195359
195360
195361#if defined BSLS_COMPILERFEATURES_SUPPORT_THREE_WAY_COMPARISON && \
195362 defined BSLS_LIBRARYFEATURES_HAS_CPP20_CONCEPTS
195363
195364#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
195365requires()
195366constexpr std::common_comparison_category_t<
195367 >
195368operator<=>(const variant<>& lhs, const variant<>& rhs)
195369{
195370 using RET = std::common_comparison_category_t<
195371 >;
195372
195373 const size_t lhs_index = lhs.index();
195374 const size_t rhs_index = rhs.index();
195375 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195376 if (lhs_index == rhs_index) {
195377 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195378 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195379 auto&& rhs_value) {
195380 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195381 },
195382 rhs);
195383 }
195384 else {
195385 return lhs_index <=> rhs_index;
195386 }
195387 }
195388 else {
195389 if (lhs_index == variant_npos) {
195390 if (rhs_index == variant_npos)
195391 return std::strong_ordering::equal;
195392 else
195393 return std::strong_ordering::less;
195394 }
195395 else
195396 return std::strong_ordering::greater;
195397 }
195398}
195399#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 0
195400
195401#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
195402template <class t_ALTS_01>
195403 requires(std::three_way_comparable<t_ALTS_01> && )
195404constexpr std::common_comparison_category_t<
195405 std::compare_three_way_result_t<t_ALTS_01>>
195406operator<=>(const variant<t_ALTS_01>& lhs, const variant<t_ALTS_01>& rhs)
195407{
195408 using RET = std::common_comparison_category_t<
195409 std::compare_three_way_result_t<t_ALTS_01>>;
195410
195411 const size_t lhs_index = lhs.index();
195412 const size_t rhs_index = rhs.index();
195413 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195414 if (lhs_index == rhs_index) {
195415 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195416 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195417 auto&& rhs_value) {
195418 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195419 },
195420 rhs);
195421 }
195422 else {
195423 return lhs_index <=> rhs_index;
195424 }
195425 }
195426 else {
195427 if (lhs_index == variant_npos) {
195428 if (rhs_index == variant_npos)
195429 return std::strong_ordering::equal;
195430 else
195431 return std::strong_ordering::less;
195432 }
195433 else
195434 return std::strong_ordering::greater;
195435 }
195436}
195437#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 1
195438
195439#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
195440template <class t_ALTS_01,
195441 class t_ALTS_02>
195442 requires(std::three_way_comparable<t_ALTS_01> && ,
195443 std::three_way_comparable<t_ALTS_02> && )
195444constexpr std::common_comparison_category_t<
195445 std::compare_three_way_result_t<t_ALTS_01>,
195446 std::compare_three_way_result_t<t_ALTS_02>>
195447operator<=>(const variant<t_ALTS_01,
195448 t_ALTS_02>& lhs, const variant<t_ALTS_01,
195449 t_ALTS_02>& rhs)
195450{
195451 using RET = std::common_comparison_category_t<
195452 std::compare_three_way_result_t<t_ALTS_01>,
195453 std::compare_three_way_result_t<t_ALTS_02>>;
195454
195455 const size_t lhs_index = lhs.index();
195456 const size_t rhs_index = rhs.index();
195457 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195458 if (lhs_index == rhs_index) {
195459 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195460 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195461 auto&& rhs_value) {
195462 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195463 },
195464 rhs);
195465 }
195466 else {
195467 return lhs_index <=> rhs_index;
195468 }
195469 }
195470 else {
195471 if (lhs_index == variant_npos) {
195472 if (rhs_index == variant_npos)
195473 return std::strong_ordering::equal;
195474 else
195475 return std::strong_ordering::less;
195476 }
195477 else
195478 return std::strong_ordering::greater;
195479 }
195480}
195481#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 2
195482
195483#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
195484template <class t_ALTS_01,
195485 class t_ALTS_02,
195486 class t_ALTS_03>
195487 requires(std::three_way_comparable<t_ALTS_01> && ,
195488 std::three_way_comparable<t_ALTS_02> && ,
195489 std::three_way_comparable<t_ALTS_03> && )
195490constexpr std::common_comparison_category_t<
195491 std::compare_three_way_result_t<t_ALTS_01>,
195492 std::compare_three_way_result_t<t_ALTS_02>,
195493 std::compare_three_way_result_t<t_ALTS_03>>
195494operator<=>(const variant<t_ALTS_01,
195495 t_ALTS_02,
195496 t_ALTS_03>& lhs, const variant<t_ALTS_01,
195497 t_ALTS_02,
195498 t_ALTS_03>& rhs)
195499{
195500 using RET = std::common_comparison_category_t<
195501 std::compare_three_way_result_t<t_ALTS_01>,
195502 std::compare_three_way_result_t<t_ALTS_02>,
195503 std::compare_three_way_result_t<t_ALTS_03>>;
195504
195505 const size_t lhs_index = lhs.index();
195506 const size_t rhs_index = rhs.index();
195507 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195508 if (lhs_index == rhs_index) {
195509 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195510 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195511 auto&& rhs_value) {
195512 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195513 },
195514 rhs);
195515 }
195516 else {
195517 return lhs_index <=> rhs_index;
195518 }
195519 }
195520 else {
195521 if (lhs_index == variant_npos) {
195522 if (rhs_index == variant_npos)
195523 return std::strong_ordering::equal;
195524 else
195525 return std::strong_ordering::less;
195526 }
195527 else
195528 return std::strong_ordering::greater;
195529 }
195530}
195531#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 3
195532
195533#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
195534template <class t_ALTS_01,
195535 class t_ALTS_02,
195536 class t_ALTS_03,
195537 class t_ALTS_04>
195538 requires(std::three_way_comparable<t_ALTS_01> && ,
195539 std::three_way_comparable<t_ALTS_02> && ,
195540 std::three_way_comparable<t_ALTS_03> && ,
195541 std::three_way_comparable<t_ALTS_04> && )
195542constexpr std::common_comparison_category_t<
195543 std::compare_three_way_result_t<t_ALTS_01>,
195544 std::compare_three_way_result_t<t_ALTS_02>,
195545 std::compare_three_way_result_t<t_ALTS_03>,
195546 std::compare_three_way_result_t<t_ALTS_04>>
195547operator<=>(const variant<t_ALTS_01,
195548 t_ALTS_02,
195549 t_ALTS_03,
195550 t_ALTS_04>& lhs, const variant<t_ALTS_01,
195551 t_ALTS_02,
195552 t_ALTS_03,
195553 t_ALTS_04>& rhs)
195554{
195555 using RET = std::common_comparison_category_t<
195556 std::compare_three_way_result_t<t_ALTS_01>,
195557 std::compare_three_way_result_t<t_ALTS_02>,
195558 std::compare_three_way_result_t<t_ALTS_03>,
195559 std::compare_three_way_result_t<t_ALTS_04>>;
195560
195561 const size_t lhs_index = lhs.index();
195562 const size_t rhs_index = rhs.index();
195563 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195564 if (lhs_index == rhs_index) {
195565 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195566 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195567 auto&& rhs_value) {
195568 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195569 },
195570 rhs);
195571 }
195572 else {
195573 return lhs_index <=> rhs_index;
195574 }
195575 }
195576 else {
195577 if (lhs_index == variant_npos) {
195578 if (rhs_index == variant_npos)
195579 return std::strong_ordering::equal;
195580 else
195581 return std::strong_ordering::less;
195582 }
195583 else
195584 return std::strong_ordering::greater;
195585 }
195586}
195587#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 4
195588
195589#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
195590template <class t_ALTS_01,
195591 class t_ALTS_02,
195592 class t_ALTS_03,
195593 class t_ALTS_04,
195594 class t_ALTS_05>
195595 requires(std::three_way_comparable<t_ALTS_01> && ,
195596 std::three_way_comparable<t_ALTS_02> && ,
195597 std::three_way_comparable<t_ALTS_03> && ,
195598 std::three_way_comparable<t_ALTS_04> && ,
195599 std::three_way_comparable<t_ALTS_05> && )
195600constexpr std::common_comparison_category_t<
195601 std::compare_three_way_result_t<t_ALTS_01>,
195602 std::compare_three_way_result_t<t_ALTS_02>,
195603 std::compare_three_way_result_t<t_ALTS_03>,
195604 std::compare_three_way_result_t<t_ALTS_04>,
195605 std::compare_three_way_result_t<t_ALTS_05>>
195606operator<=>(const variant<t_ALTS_01,
195607 t_ALTS_02,
195608 t_ALTS_03,
195609 t_ALTS_04,
195610 t_ALTS_05>& lhs, const variant<t_ALTS_01,
195611 t_ALTS_02,
195612 t_ALTS_03,
195613 t_ALTS_04,
195614 t_ALTS_05>& rhs)
195615{
195616 using RET = std::common_comparison_category_t<
195617 std::compare_three_way_result_t<t_ALTS_01>,
195618 std::compare_three_way_result_t<t_ALTS_02>,
195619 std::compare_three_way_result_t<t_ALTS_03>,
195620 std::compare_three_way_result_t<t_ALTS_04>,
195621 std::compare_three_way_result_t<t_ALTS_05>>;
195622
195623 const size_t lhs_index = lhs.index();
195624 const size_t rhs_index = rhs.index();
195625 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195626 if (lhs_index == rhs_index) {
195627 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195628 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195629 auto&& rhs_value) {
195630 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195631 },
195632 rhs);
195633 }
195634 else {
195635 return lhs_index <=> rhs_index;
195636 }
195637 }
195638 else {
195639 if (lhs_index == variant_npos) {
195640 if (rhs_index == variant_npos)
195641 return std::strong_ordering::equal;
195642 else
195643 return std::strong_ordering::less;
195644 }
195645 else
195646 return std::strong_ordering::greater;
195647 }
195648}
195649#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 5
195650
195651#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
195652template <class t_ALTS_01,
195653 class t_ALTS_02,
195654 class t_ALTS_03,
195655 class t_ALTS_04,
195656 class t_ALTS_05,
195657 class t_ALTS_06>
195658 requires(std::three_way_comparable<t_ALTS_01> && ,
195659 std::three_way_comparable<t_ALTS_02> && ,
195660 std::three_way_comparable<t_ALTS_03> && ,
195661 std::three_way_comparable<t_ALTS_04> && ,
195662 std::three_way_comparable<t_ALTS_05> && ,
195663 std::three_way_comparable<t_ALTS_06> && )
195664constexpr std::common_comparison_category_t<
195665 std::compare_three_way_result_t<t_ALTS_01>,
195666 std::compare_three_way_result_t<t_ALTS_02>,
195667 std::compare_three_way_result_t<t_ALTS_03>,
195668 std::compare_three_way_result_t<t_ALTS_04>,
195669 std::compare_three_way_result_t<t_ALTS_05>,
195670 std::compare_three_way_result_t<t_ALTS_06>>
195671operator<=>(const variant<t_ALTS_01,
195672 t_ALTS_02,
195673 t_ALTS_03,
195674 t_ALTS_04,
195675 t_ALTS_05,
195676 t_ALTS_06>& lhs, const variant<t_ALTS_01,
195677 t_ALTS_02,
195678 t_ALTS_03,
195679 t_ALTS_04,
195680 t_ALTS_05,
195681 t_ALTS_06>& rhs)
195682{
195683 using RET = std::common_comparison_category_t<
195684 std::compare_three_way_result_t<t_ALTS_01>,
195685 std::compare_three_way_result_t<t_ALTS_02>,
195686 std::compare_three_way_result_t<t_ALTS_03>,
195687 std::compare_three_way_result_t<t_ALTS_04>,
195688 std::compare_three_way_result_t<t_ALTS_05>,
195689 std::compare_three_way_result_t<t_ALTS_06>>;
195690
195691 const size_t lhs_index = lhs.index();
195692 const size_t rhs_index = rhs.index();
195693 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195694 if (lhs_index == rhs_index) {
195695 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195696 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195697 auto&& rhs_value) {
195698 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195699 },
195700 rhs);
195701 }
195702 else {
195703 return lhs_index <=> rhs_index;
195704 }
195705 }
195706 else {
195707 if (lhs_index == variant_npos) {
195708 if (rhs_index == variant_npos)
195709 return std::strong_ordering::equal;
195710 else
195711 return std::strong_ordering::less;
195712 }
195713 else
195714 return std::strong_ordering::greater;
195715 }
195716}
195717#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 6
195718
195719#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
195720template <class t_ALTS_01,
195721 class t_ALTS_02,
195722 class t_ALTS_03,
195723 class t_ALTS_04,
195724 class t_ALTS_05,
195725 class t_ALTS_06,
195726 class t_ALTS_07>
195727 requires(std::three_way_comparable<t_ALTS_01> && ,
195728 std::three_way_comparable<t_ALTS_02> && ,
195729 std::three_way_comparable<t_ALTS_03> && ,
195730 std::three_way_comparable<t_ALTS_04> && ,
195731 std::three_way_comparable<t_ALTS_05> && ,
195732 std::three_way_comparable<t_ALTS_06> && ,
195733 std::three_way_comparable<t_ALTS_07> && )
195734constexpr std::common_comparison_category_t<
195735 std::compare_three_way_result_t<t_ALTS_01>,
195736 std::compare_three_way_result_t<t_ALTS_02>,
195737 std::compare_three_way_result_t<t_ALTS_03>,
195738 std::compare_three_way_result_t<t_ALTS_04>,
195739 std::compare_three_way_result_t<t_ALTS_05>,
195740 std::compare_three_way_result_t<t_ALTS_06>,
195741 std::compare_three_way_result_t<t_ALTS_07>>
195742operator<=>(const variant<t_ALTS_01,
195743 t_ALTS_02,
195744 t_ALTS_03,
195745 t_ALTS_04,
195746 t_ALTS_05,
195747 t_ALTS_06,
195748 t_ALTS_07>& lhs, const variant<t_ALTS_01,
195749 t_ALTS_02,
195750 t_ALTS_03,
195751 t_ALTS_04,
195752 t_ALTS_05,
195753 t_ALTS_06,
195754 t_ALTS_07>& rhs)
195755{
195756 using RET = std::common_comparison_category_t<
195757 std::compare_three_way_result_t<t_ALTS_01>,
195758 std::compare_three_way_result_t<t_ALTS_02>,
195759 std::compare_three_way_result_t<t_ALTS_03>,
195760 std::compare_three_way_result_t<t_ALTS_04>,
195761 std::compare_three_way_result_t<t_ALTS_05>,
195762 std::compare_three_way_result_t<t_ALTS_06>,
195763 std::compare_three_way_result_t<t_ALTS_07>>;
195764
195765 const size_t lhs_index = lhs.index();
195766 const size_t rhs_index = rhs.index();
195767 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195768 if (lhs_index == rhs_index) {
195769 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195770 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195771 auto&& rhs_value) {
195772 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195773 },
195774 rhs);
195775 }
195776 else {
195777 return lhs_index <=> rhs_index;
195778 }
195779 }
195780 else {
195781 if (lhs_index == variant_npos) {
195782 if (rhs_index == variant_npos)
195783 return std::strong_ordering::equal;
195784 else
195785 return std::strong_ordering::less;
195786 }
195787 else
195788 return std::strong_ordering::greater;
195789 }
195790}
195791#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 7
195792
195793#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
195794template <class t_ALTS_01,
195795 class t_ALTS_02,
195796 class t_ALTS_03,
195797 class t_ALTS_04,
195798 class t_ALTS_05,
195799 class t_ALTS_06,
195800 class t_ALTS_07,
195801 class t_ALTS_08>
195802 requires(std::three_way_comparable<t_ALTS_01> && ,
195803 std::three_way_comparable<t_ALTS_02> && ,
195804 std::three_way_comparable<t_ALTS_03> && ,
195805 std::three_way_comparable<t_ALTS_04> && ,
195806 std::three_way_comparable<t_ALTS_05> && ,
195807 std::three_way_comparable<t_ALTS_06> && ,
195808 std::three_way_comparable<t_ALTS_07> && ,
195809 std::three_way_comparable<t_ALTS_08> && )
195810constexpr std::common_comparison_category_t<
195811 std::compare_three_way_result_t<t_ALTS_01>,
195812 std::compare_three_way_result_t<t_ALTS_02>,
195813 std::compare_three_way_result_t<t_ALTS_03>,
195814 std::compare_three_way_result_t<t_ALTS_04>,
195815 std::compare_three_way_result_t<t_ALTS_05>,
195816 std::compare_three_way_result_t<t_ALTS_06>,
195817 std::compare_three_way_result_t<t_ALTS_07>,
195818 std::compare_three_way_result_t<t_ALTS_08>>
195819operator<=>(const variant<t_ALTS_01,
195820 t_ALTS_02,
195821 t_ALTS_03,
195822 t_ALTS_04,
195823 t_ALTS_05,
195824 t_ALTS_06,
195825 t_ALTS_07,
195826 t_ALTS_08>& lhs, const variant<t_ALTS_01,
195827 t_ALTS_02,
195828 t_ALTS_03,
195829 t_ALTS_04,
195830 t_ALTS_05,
195831 t_ALTS_06,
195832 t_ALTS_07,
195833 t_ALTS_08>& rhs)
195834{
195835 using RET = std::common_comparison_category_t<
195836 std::compare_three_way_result_t<t_ALTS_01>,
195837 std::compare_three_way_result_t<t_ALTS_02>,
195838 std::compare_three_way_result_t<t_ALTS_03>,
195839 std::compare_three_way_result_t<t_ALTS_04>,
195840 std::compare_three_way_result_t<t_ALTS_05>,
195841 std::compare_three_way_result_t<t_ALTS_06>,
195842 std::compare_three_way_result_t<t_ALTS_07>,
195843 std::compare_three_way_result_t<t_ALTS_08>>;
195844
195845 const size_t lhs_index = lhs.index();
195846 const size_t rhs_index = rhs.index();
195847 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195848 if (lhs_index == rhs_index) {
195849 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195850 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195851 auto&& rhs_value) {
195852 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195853 },
195854 rhs);
195855 }
195856 else {
195857 return lhs_index <=> rhs_index;
195858 }
195859 }
195860 else {
195861 if (lhs_index == variant_npos) {
195862 if (rhs_index == variant_npos)
195863 return std::strong_ordering::equal;
195864 else
195865 return std::strong_ordering::less;
195866 }
195867 else
195868 return std::strong_ordering::greater;
195869 }
195870}
195871#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 8
195872
195873#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
195874template <class t_ALTS_01,
195875 class t_ALTS_02,
195876 class t_ALTS_03,
195877 class t_ALTS_04,
195878 class t_ALTS_05,
195879 class t_ALTS_06,
195880 class t_ALTS_07,
195881 class t_ALTS_08,
195882 class t_ALTS_09>
195883 requires(std::three_way_comparable<t_ALTS_01> && ,
195884 std::three_way_comparable<t_ALTS_02> && ,
195885 std::three_way_comparable<t_ALTS_03> && ,
195886 std::three_way_comparable<t_ALTS_04> && ,
195887 std::three_way_comparable<t_ALTS_05> && ,
195888 std::three_way_comparable<t_ALTS_06> && ,
195889 std::three_way_comparable<t_ALTS_07> && ,
195890 std::three_way_comparable<t_ALTS_08> && ,
195891 std::three_way_comparable<t_ALTS_09> && )
195892constexpr std::common_comparison_category_t<
195893 std::compare_three_way_result_t<t_ALTS_01>,
195894 std::compare_three_way_result_t<t_ALTS_02>,
195895 std::compare_three_way_result_t<t_ALTS_03>,
195896 std::compare_three_way_result_t<t_ALTS_04>,
195897 std::compare_three_way_result_t<t_ALTS_05>,
195898 std::compare_three_way_result_t<t_ALTS_06>,
195899 std::compare_three_way_result_t<t_ALTS_07>,
195900 std::compare_three_way_result_t<t_ALTS_08>,
195901 std::compare_three_way_result_t<t_ALTS_09>>
195902operator<=>(const variant<t_ALTS_01,
195903 t_ALTS_02,
195904 t_ALTS_03,
195905 t_ALTS_04,
195906 t_ALTS_05,
195907 t_ALTS_06,
195908 t_ALTS_07,
195909 t_ALTS_08,
195910 t_ALTS_09>& lhs, const variant<t_ALTS_01,
195911 t_ALTS_02,
195912 t_ALTS_03,
195913 t_ALTS_04,
195914 t_ALTS_05,
195915 t_ALTS_06,
195916 t_ALTS_07,
195917 t_ALTS_08,
195918 t_ALTS_09>& rhs)
195919{
195920 using RET = std::common_comparison_category_t<
195921 std::compare_three_way_result_t<t_ALTS_01>,
195922 std::compare_three_way_result_t<t_ALTS_02>,
195923 std::compare_three_way_result_t<t_ALTS_03>,
195924 std::compare_three_way_result_t<t_ALTS_04>,
195925 std::compare_three_way_result_t<t_ALTS_05>,
195926 std::compare_three_way_result_t<t_ALTS_06>,
195927 std::compare_three_way_result_t<t_ALTS_07>,
195928 std::compare_three_way_result_t<t_ALTS_08>,
195929 std::compare_three_way_result_t<t_ALTS_09>>;
195930
195931 const size_t lhs_index = lhs.index();
195932 const size_t rhs_index = rhs.index();
195933 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
195934 if (lhs_index == rhs_index) {
195935 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
195936 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
195937 auto&& rhs_value) {
195938 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
195939 },
195940 rhs);
195941 }
195942 else {
195943 return lhs_index <=> rhs_index;
195944 }
195945 }
195946 else {
195947 if (lhs_index == variant_npos) {
195948 if (rhs_index == variant_npos)
195949 return std::strong_ordering::equal;
195950 else
195951 return std::strong_ordering::less;
195952 }
195953 else
195954 return std::strong_ordering::greater;
195955 }
195956}
195957#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 9
195958
195959#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
195960template <class t_ALTS_01,
195961 class t_ALTS_02,
195962 class t_ALTS_03,
195963 class t_ALTS_04,
195964 class t_ALTS_05,
195965 class t_ALTS_06,
195966 class t_ALTS_07,
195967 class t_ALTS_08,
195968 class t_ALTS_09,
195969 class t_ALTS_10>
195970 requires(std::three_way_comparable<t_ALTS_01> && ,
195971 std::three_way_comparable<t_ALTS_02> && ,
195972 std::three_way_comparable<t_ALTS_03> && ,
195973 std::three_way_comparable<t_ALTS_04> && ,
195974 std::three_way_comparable<t_ALTS_05> && ,
195975 std::three_way_comparable<t_ALTS_06> && ,
195976 std::three_way_comparable<t_ALTS_07> && ,
195977 std::three_way_comparable<t_ALTS_08> && ,
195978 std::three_way_comparable<t_ALTS_09> && ,
195979 std::three_way_comparable<t_ALTS_10> && )
195980constexpr std::common_comparison_category_t<
195981 std::compare_three_way_result_t<t_ALTS_01>,
195982 std::compare_three_way_result_t<t_ALTS_02>,
195983 std::compare_three_way_result_t<t_ALTS_03>,
195984 std::compare_three_way_result_t<t_ALTS_04>,
195985 std::compare_three_way_result_t<t_ALTS_05>,
195986 std::compare_three_way_result_t<t_ALTS_06>,
195987 std::compare_three_way_result_t<t_ALTS_07>,
195988 std::compare_three_way_result_t<t_ALTS_08>,
195989 std::compare_three_way_result_t<t_ALTS_09>,
195990 std::compare_three_way_result_t<t_ALTS_10>>
195991operator<=>(const variant<t_ALTS_01,
195992 t_ALTS_02,
195993 t_ALTS_03,
195994 t_ALTS_04,
195995 t_ALTS_05,
195996 t_ALTS_06,
195997 t_ALTS_07,
195998 t_ALTS_08,
195999 t_ALTS_09,
196000 t_ALTS_10>& lhs, const variant<t_ALTS_01,
196001 t_ALTS_02,
196002 t_ALTS_03,
196003 t_ALTS_04,
196004 t_ALTS_05,
196005 t_ALTS_06,
196006 t_ALTS_07,
196007 t_ALTS_08,
196008 t_ALTS_09,
196009 t_ALTS_10>& rhs)
196010{
196011 using RET = std::common_comparison_category_t<
196012 std::compare_three_way_result_t<t_ALTS_01>,
196013 std::compare_three_way_result_t<t_ALTS_02>,
196014 std::compare_three_way_result_t<t_ALTS_03>,
196015 std::compare_three_way_result_t<t_ALTS_04>,
196016 std::compare_three_way_result_t<t_ALTS_05>,
196017 std::compare_three_way_result_t<t_ALTS_06>,
196018 std::compare_three_way_result_t<t_ALTS_07>,
196019 std::compare_three_way_result_t<t_ALTS_08>,
196020 std::compare_three_way_result_t<t_ALTS_09>,
196021 std::compare_three_way_result_t<t_ALTS_10>>;
196022
196023 const size_t lhs_index = lhs.index();
196024 const size_t rhs_index = rhs.index();
196025 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196026 if (lhs_index == rhs_index) {
196027 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196028 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196029 auto&& rhs_value) {
196030 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196031 },
196032 rhs);
196033 }
196034 else {
196035 return lhs_index <=> rhs_index;
196036 }
196037 }
196038 else {
196039 if (lhs_index == variant_npos) {
196040 if (rhs_index == variant_npos)
196041 return std::strong_ordering::equal;
196042 else
196043 return std::strong_ordering::less;
196044 }
196045 else
196046 return std::strong_ordering::greater;
196047 }
196048}
196049#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 10
196050
196051#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
196052template <class t_ALTS_01,
196053 class t_ALTS_02,
196054 class t_ALTS_03,
196055 class t_ALTS_04,
196056 class t_ALTS_05,
196057 class t_ALTS_06,
196058 class t_ALTS_07,
196059 class t_ALTS_08,
196060 class t_ALTS_09,
196061 class t_ALTS_10,
196062 class t_ALTS_11>
196063 requires(std::three_way_comparable<t_ALTS_01> && ,
196064 std::three_way_comparable<t_ALTS_02> && ,
196065 std::three_way_comparable<t_ALTS_03> && ,
196066 std::three_way_comparable<t_ALTS_04> && ,
196067 std::three_way_comparable<t_ALTS_05> && ,
196068 std::three_way_comparable<t_ALTS_06> && ,
196069 std::three_way_comparable<t_ALTS_07> && ,
196070 std::three_way_comparable<t_ALTS_08> && ,
196071 std::three_way_comparable<t_ALTS_09> && ,
196072 std::three_way_comparable<t_ALTS_10> && ,
196073 std::three_way_comparable<t_ALTS_11> && )
196074constexpr std::common_comparison_category_t<
196075 std::compare_three_way_result_t<t_ALTS_01>,
196076 std::compare_three_way_result_t<t_ALTS_02>,
196077 std::compare_three_way_result_t<t_ALTS_03>,
196078 std::compare_three_way_result_t<t_ALTS_04>,
196079 std::compare_three_way_result_t<t_ALTS_05>,
196080 std::compare_three_way_result_t<t_ALTS_06>,
196081 std::compare_three_way_result_t<t_ALTS_07>,
196082 std::compare_three_way_result_t<t_ALTS_08>,
196083 std::compare_three_way_result_t<t_ALTS_09>,
196084 std::compare_three_way_result_t<t_ALTS_10>,
196085 std::compare_three_way_result_t<t_ALTS_11>>
196086operator<=>(const variant<t_ALTS_01,
196087 t_ALTS_02,
196088 t_ALTS_03,
196089 t_ALTS_04,
196090 t_ALTS_05,
196091 t_ALTS_06,
196092 t_ALTS_07,
196093 t_ALTS_08,
196094 t_ALTS_09,
196095 t_ALTS_10,
196096 t_ALTS_11>& lhs, const variant<t_ALTS_01,
196097 t_ALTS_02,
196098 t_ALTS_03,
196099 t_ALTS_04,
196100 t_ALTS_05,
196101 t_ALTS_06,
196102 t_ALTS_07,
196103 t_ALTS_08,
196104 t_ALTS_09,
196105 t_ALTS_10,
196106 t_ALTS_11>& rhs)
196107{
196108 using RET = std::common_comparison_category_t<
196109 std::compare_three_way_result_t<t_ALTS_01>,
196110 std::compare_three_way_result_t<t_ALTS_02>,
196111 std::compare_three_way_result_t<t_ALTS_03>,
196112 std::compare_three_way_result_t<t_ALTS_04>,
196113 std::compare_three_way_result_t<t_ALTS_05>,
196114 std::compare_three_way_result_t<t_ALTS_06>,
196115 std::compare_three_way_result_t<t_ALTS_07>,
196116 std::compare_three_way_result_t<t_ALTS_08>,
196117 std::compare_three_way_result_t<t_ALTS_09>,
196118 std::compare_three_way_result_t<t_ALTS_10>,
196119 std::compare_three_way_result_t<t_ALTS_11>>;
196120
196121 const size_t lhs_index = lhs.index();
196122 const size_t rhs_index = rhs.index();
196123 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196124 if (lhs_index == rhs_index) {
196125 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196126 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196127 auto&& rhs_value) {
196128 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196129 },
196130 rhs);
196131 }
196132 else {
196133 return lhs_index <=> rhs_index;
196134 }
196135 }
196136 else {
196137 if (lhs_index == variant_npos) {
196138 if (rhs_index == variant_npos)
196139 return std::strong_ordering::equal;
196140 else
196141 return std::strong_ordering::less;
196142 }
196143 else
196144 return std::strong_ordering::greater;
196145 }
196146}
196147#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 11
196148
196149#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
196150template <class t_ALTS_01,
196151 class t_ALTS_02,
196152 class t_ALTS_03,
196153 class t_ALTS_04,
196154 class t_ALTS_05,
196155 class t_ALTS_06,
196156 class t_ALTS_07,
196157 class t_ALTS_08,
196158 class t_ALTS_09,
196159 class t_ALTS_10,
196160 class t_ALTS_11,
196161 class t_ALTS_12>
196162 requires(std::three_way_comparable<t_ALTS_01> && ,
196163 std::three_way_comparable<t_ALTS_02> && ,
196164 std::three_way_comparable<t_ALTS_03> && ,
196165 std::three_way_comparable<t_ALTS_04> && ,
196166 std::three_way_comparable<t_ALTS_05> && ,
196167 std::three_way_comparable<t_ALTS_06> && ,
196168 std::three_way_comparable<t_ALTS_07> && ,
196169 std::three_way_comparable<t_ALTS_08> && ,
196170 std::three_way_comparable<t_ALTS_09> && ,
196171 std::three_way_comparable<t_ALTS_10> && ,
196172 std::three_way_comparable<t_ALTS_11> && ,
196173 std::three_way_comparable<t_ALTS_12> && )
196174constexpr std::common_comparison_category_t<
196175 std::compare_three_way_result_t<t_ALTS_01>,
196176 std::compare_three_way_result_t<t_ALTS_02>,
196177 std::compare_three_way_result_t<t_ALTS_03>,
196178 std::compare_three_way_result_t<t_ALTS_04>,
196179 std::compare_three_way_result_t<t_ALTS_05>,
196180 std::compare_three_way_result_t<t_ALTS_06>,
196181 std::compare_three_way_result_t<t_ALTS_07>,
196182 std::compare_three_way_result_t<t_ALTS_08>,
196183 std::compare_three_way_result_t<t_ALTS_09>,
196184 std::compare_three_way_result_t<t_ALTS_10>,
196185 std::compare_three_way_result_t<t_ALTS_11>,
196186 std::compare_three_way_result_t<t_ALTS_12>>
196187operator<=>(const variant<t_ALTS_01,
196188 t_ALTS_02,
196189 t_ALTS_03,
196190 t_ALTS_04,
196191 t_ALTS_05,
196192 t_ALTS_06,
196193 t_ALTS_07,
196194 t_ALTS_08,
196195 t_ALTS_09,
196196 t_ALTS_10,
196197 t_ALTS_11,
196198 t_ALTS_12>& lhs, const variant<t_ALTS_01,
196199 t_ALTS_02,
196200 t_ALTS_03,
196201 t_ALTS_04,
196202 t_ALTS_05,
196203 t_ALTS_06,
196204 t_ALTS_07,
196205 t_ALTS_08,
196206 t_ALTS_09,
196207 t_ALTS_10,
196208 t_ALTS_11,
196209 t_ALTS_12>& rhs)
196210{
196211 using RET = std::common_comparison_category_t<
196212 std::compare_three_way_result_t<t_ALTS_01>,
196213 std::compare_three_way_result_t<t_ALTS_02>,
196214 std::compare_three_way_result_t<t_ALTS_03>,
196215 std::compare_three_way_result_t<t_ALTS_04>,
196216 std::compare_three_way_result_t<t_ALTS_05>,
196217 std::compare_three_way_result_t<t_ALTS_06>,
196218 std::compare_three_way_result_t<t_ALTS_07>,
196219 std::compare_three_way_result_t<t_ALTS_08>,
196220 std::compare_three_way_result_t<t_ALTS_09>,
196221 std::compare_three_way_result_t<t_ALTS_10>,
196222 std::compare_three_way_result_t<t_ALTS_11>,
196223 std::compare_three_way_result_t<t_ALTS_12>>;
196224
196225 const size_t lhs_index = lhs.index();
196226 const size_t rhs_index = rhs.index();
196227 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196228 if (lhs_index == rhs_index) {
196229 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196230 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196231 auto&& rhs_value) {
196232 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196233 },
196234 rhs);
196235 }
196236 else {
196237 return lhs_index <=> rhs_index;
196238 }
196239 }
196240 else {
196241 if (lhs_index == variant_npos) {
196242 if (rhs_index == variant_npos)
196243 return std::strong_ordering::equal;
196244 else
196245 return std::strong_ordering::less;
196246 }
196247 else
196248 return std::strong_ordering::greater;
196249 }
196250}
196251#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 12
196252
196253#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
196254template <class t_ALTS_01,
196255 class t_ALTS_02,
196256 class t_ALTS_03,
196257 class t_ALTS_04,
196258 class t_ALTS_05,
196259 class t_ALTS_06,
196260 class t_ALTS_07,
196261 class t_ALTS_08,
196262 class t_ALTS_09,
196263 class t_ALTS_10,
196264 class t_ALTS_11,
196265 class t_ALTS_12,
196266 class t_ALTS_13>
196267 requires(std::three_way_comparable<t_ALTS_01> && ,
196268 std::three_way_comparable<t_ALTS_02> && ,
196269 std::three_way_comparable<t_ALTS_03> && ,
196270 std::three_way_comparable<t_ALTS_04> && ,
196271 std::three_way_comparable<t_ALTS_05> && ,
196272 std::three_way_comparable<t_ALTS_06> && ,
196273 std::three_way_comparable<t_ALTS_07> && ,
196274 std::three_way_comparable<t_ALTS_08> && ,
196275 std::three_way_comparable<t_ALTS_09> && ,
196276 std::three_way_comparable<t_ALTS_10> && ,
196277 std::three_way_comparable<t_ALTS_11> && ,
196278 std::three_way_comparable<t_ALTS_12> && ,
196279 std::three_way_comparable<t_ALTS_13> && )
196280constexpr std::common_comparison_category_t<
196281 std::compare_three_way_result_t<t_ALTS_01>,
196282 std::compare_three_way_result_t<t_ALTS_02>,
196283 std::compare_three_way_result_t<t_ALTS_03>,
196284 std::compare_three_way_result_t<t_ALTS_04>,
196285 std::compare_three_way_result_t<t_ALTS_05>,
196286 std::compare_three_way_result_t<t_ALTS_06>,
196287 std::compare_three_way_result_t<t_ALTS_07>,
196288 std::compare_three_way_result_t<t_ALTS_08>,
196289 std::compare_three_way_result_t<t_ALTS_09>,
196290 std::compare_three_way_result_t<t_ALTS_10>,
196291 std::compare_three_way_result_t<t_ALTS_11>,
196292 std::compare_three_way_result_t<t_ALTS_12>,
196293 std::compare_three_way_result_t<t_ALTS_13>>
196294operator<=>(const variant<t_ALTS_01,
196295 t_ALTS_02,
196296 t_ALTS_03,
196297 t_ALTS_04,
196298 t_ALTS_05,
196299 t_ALTS_06,
196300 t_ALTS_07,
196301 t_ALTS_08,
196302 t_ALTS_09,
196303 t_ALTS_10,
196304 t_ALTS_11,
196305 t_ALTS_12,
196306 t_ALTS_13>& lhs, const variant<t_ALTS_01,
196307 t_ALTS_02,
196308 t_ALTS_03,
196309 t_ALTS_04,
196310 t_ALTS_05,
196311 t_ALTS_06,
196312 t_ALTS_07,
196313 t_ALTS_08,
196314 t_ALTS_09,
196315 t_ALTS_10,
196316 t_ALTS_11,
196317 t_ALTS_12,
196318 t_ALTS_13>& rhs)
196319{
196320 using RET = std::common_comparison_category_t<
196321 std::compare_three_way_result_t<t_ALTS_01>,
196322 std::compare_three_way_result_t<t_ALTS_02>,
196323 std::compare_three_way_result_t<t_ALTS_03>,
196324 std::compare_three_way_result_t<t_ALTS_04>,
196325 std::compare_three_way_result_t<t_ALTS_05>,
196326 std::compare_three_way_result_t<t_ALTS_06>,
196327 std::compare_three_way_result_t<t_ALTS_07>,
196328 std::compare_three_way_result_t<t_ALTS_08>,
196329 std::compare_three_way_result_t<t_ALTS_09>,
196330 std::compare_three_way_result_t<t_ALTS_10>,
196331 std::compare_three_way_result_t<t_ALTS_11>,
196332 std::compare_three_way_result_t<t_ALTS_12>,
196333 std::compare_three_way_result_t<t_ALTS_13>>;
196334
196335 const size_t lhs_index = lhs.index();
196336 const size_t rhs_index = rhs.index();
196337 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196338 if (lhs_index == rhs_index) {
196339 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196340 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196341 auto&& rhs_value) {
196342 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196343 },
196344 rhs);
196345 }
196346 else {
196347 return lhs_index <=> rhs_index;
196348 }
196349 }
196350 else {
196351 if (lhs_index == variant_npos) {
196352 if (rhs_index == variant_npos)
196353 return std::strong_ordering::equal;
196354 else
196355 return std::strong_ordering::less;
196356 }
196357 else
196358 return std::strong_ordering::greater;
196359 }
196360}
196361#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 13
196362
196363#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
196364template <class t_ALTS_01,
196365 class t_ALTS_02,
196366 class t_ALTS_03,
196367 class t_ALTS_04,
196368 class t_ALTS_05,
196369 class t_ALTS_06,
196370 class t_ALTS_07,
196371 class t_ALTS_08,
196372 class t_ALTS_09,
196373 class t_ALTS_10,
196374 class t_ALTS_11,
196375 class t_ALTS_12,
196376 class t_ALTS_13,
196377 class t_ALTS_14>
196378 requires(std::three_way_comparable<t_ALTS_01> && ,
196379 std::three_way_comparable<t_ALTS_02> && ,
196380 std::three_way_comparable<t_ALTS_03> && ,
196381 std::three_way_comparable<t_ALTS_04> && ,
196382 std::three_way_comparable<t_ALTS_05> && ,
196383 std::three_way_comparable<t_ALTS_06> && ,
196384 std::three_way_comparable<t_ALTS_07> && ,
196385 std::three_way_comparable<t_ALTS_08> && ,
196386 std::three_way_comparable<t_ALTS_09> && ,
196387 std::three_way_comparable<t_ALTS_10> && ,
196388 std::three_way_comparable<t_ALTS_11> && ,
196389 std::three_way_comparable<t_ALTS_12> && ,
196390 std::three_way_comparable<t_ALTS_13> && ,
196391 std::three_way_comparable<t_ALTS_14> && )
196392constexpr std::common_comparison_category_t<
196393 std::compare_three_way_result_t<t_ALTS_01>,
196394 std::compare_three_way_result_t<t_ALTS_02>,
196395 std::compare_three_way_result_t<t_ALTS_03>,
196396 std::compare_three_way_result_t<t_ALTS_04>,
196397 std::compare_three_way_result_t<t_ALTS_05>,
196398 std::compare_three_way_result_t<t_ALTS_06>,
196399 std::compare_three_way_result_t<t_ALTS_07>,
196400 std::compare_three_way_result_t<t_ALTS_08>,
196401 std::compare_three_way_result_t<t_ALTS_09>,
196402 std::compare_three_way_result_t<t_ALTS_10>,
196403 std::compare_three_way_result_t<t_ALTS_11>,
196404 std::compare_three_way_result_t<t_ALTS_12>,
196405 std::compare_three_way_result_t<t_ALTS_13>,
196406 std::compare_three_way_result_t<t_ALTS_14>>
196407operator<=>(const variant<t_ALTS_01,
196408 t_ALTS_02,
196409 t_ALTS_03,
196410 t_ALTS_04,
196411 t_ALTS_05,
196412 t_ALTS_06,
196413 t_ALTS_07,
196414 t_ALTS_08,
196415 t_ALTS_09,
196416 t_ALTS_10,
196417 t_ALTS_11,
196418 t_ALTS_12,
196419 t_ALTS_13,
196420 t_ALTS_14>& lhs, const variant<t_ALTS_01,
196421 t_ALTS_02,
196422 t_ALTS_03,
196423 t_ALTS_04,
196424 t_ALTS_05,
196425 t_ALTS_06,
196426 t_ALTS_07,
196427 t_ALTS_08,
196428 t_ALTS_09,
196429 t_ALTS_10,
196430 t_ALTS_11,
196431 t_ALTS_12,
196432 t_ALTS_13,
196433 t_ALTS_14>& rhs)
196434{
196435 using RET = std::common_comparison_category_t<
196436 std::compare_three_way_result_t<t_ALTS_01>,
196437 std::compare_three_way_result_t<t_ALTS_02>,
196438 std::compare_three_way_result_t<t_ALTS_03>,
196439 std::compare_three_way_result_t<t_ALTS_04>,
196440 std::compare_three_way_result_t<t_ALTS_05>,
196441 std::compare_three_way_result_t<t_ALTS_06>,
196442 std::compare_three_way_result_t<t_ALTS_07>,
196443 std::compare_three_way_result_t<t_ALTS_08>,
196444 std::compare_three_way_result_t<t_ALTS_09>,
196445 std::compare_three_way_result_t<t_ALTS_10>,
196446 std::compare_three_way_result_t<t_ALTS_11>,
196447 std::compare_three_way_result_t<t_ALTS_12>,
196448 std::compare_three_way_result_t<t_ALTS_13>,
196449 std::compare_three_way_result_t<t_ALTS_14>>;
196450
196451 const size_t lhs_index = lhs.index();
196452 const size_t rhs_index = rhs.index();
196453 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196454 if (lhs_index == rhs_index) {
196455 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196456 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196457 auto&& rhs_value) {
196458 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196459 },
196460 rhs);
196461 }
196462 else {
196463 return lhs_index <=> rhs_index;
196464 }
196465 }
196466 else {
196467 if (lhs_index == variant_npos) {
196468 if (rhs_index == variant_npos)
196469 return std::strong_ordering::equal;
196470 else
196471 return std::strong_ordering::less;
196472 }
196473 else
196474 return std::strong_ordering::greater;
196475 }
196476}
196477#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 14
196478
196479#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
196480template <class t_ALTS_01,
196481 class t_ALTS_02,
196482 class t_ALTS_03,
196483 class t_ALTS_04,
196484 class t_ALTS_05,
196485 class t_ALTS_06,
196486 class t_ALTS_07,
196487 class t_ALTS_08,
196488 class t_ALTS_09,
196489 class t_ALTS_10,
196490 class t_ALTS_11,
196491 class t_ALTS_12,
196492 class t_ALTS_13,
196493 class t_ALTS_14,
196494 class t_ALTS_15>
196495 requires(std::three_way_comparable<t_ALTS_01> && ,
196496 std::three_way_comparable<t_ALTS_02> && ,
196497 std::three_way_comparable<t_ALTS_03> && ,
196498 std::three_way_comparable<t_ALTS_04> && ,
196499 std::three_way_comparable<t_ALTS_05> && ,
196500 std::three_way_comparable<t_ALTS_06> && ,
196501 std::three_way_comparable<t_ALTS_07> && ,
196502 std::three_way_comparable<t_ALTS_08> && ,
196503 std::three_way_comparable<t_ALTS_09> && ,
196504 std::three_way_comparable<t_ALTS_10> && ,
196505 std::three_way_comparable<t_ALTS_11> && ,
196506 std::three_way_comparable<t_ALTS_12> && ,
196507 std::three_way_comparable<t_ALTS_13> && ,
196508 std::three_way_comparable<t_ALTS_14> && ,
196509 std::three_way_comparable<t_ALTS_15> && )
196510constexpr std::common_comparison_category_t<
196511 std::compare_three_way_result_t<t_ALTS_01>,
196512 std::compare_three_way_result_t<t_ALTS_02>,
196513 std::compare_three_way_result_t<t_ALTS_03>,
196514 std::compare_three_way_result_t<t_ALTS_04>,
196515 std::compare_three_way_result_t<t_ALTS_05>,
196516 std::compare_three_way_result_t<t_ALTS_06>,
196517 std::compare_three_way_result_t<t_ALTS_07>,
196518 std::compare_three_way_result_t<t_ALTS_08>,
196519 std::compare_three_way_result_t<t_ALTS_09>,
196520 std::compare_three_way_result_t<t_ALTS_10>,
196521 std::compare_three_way_result_t<t_ALTS_11>,
196522 std::compare_three_way_result_t<t_ALTS_12>,
196523 std::compare_three_way_result_t<t_ALTS_13>,
196524 std::compare_three_way_result_t<t_ALTS_14>,
196525 std::compare_three_way_result_t<t_ALTS_15>>
196526operator<=>(const variant<t_ALTS_01,
196527 t_ALTS_02,
196528 t_ALTS_03,
196529 t_ALTS_04,
196530 t_ALTS_05,
196531 t_ALTS_06,
196532 t_ALTS_07,
196533 t_ALTS_08,
196534 t_ALTS_09,
196535 t_ALTS_10,
196536 t_ALTS_11,
196537 t_ALTS_12,
196538 t_ALTS_13,
196539 t_ALTS_14,
196540 t_ALTS_15>& lhs, const variant<t_ALTS_01,
196541 t_ALTS_02,
196542 t_ALTS_03,
196543 t_ALTS_04,
196544 t_ALTS_05,
196545 t_ALTS_06,
196546 t_ALTS_07,
196547 t_ALTS_08,
196548 t_ALTS_09,
196549 t_ALTS_10,
196550 t_ALTS_11,
196551 t_ALTS_12,
196552 t_ALTS_13,
196553 t_ALTS_14,
196554 t_ALTS_15>& rhs)
196555{
196556 using RET = std::common_comparison_category_t<
196557 std::compare_three_way_result_t<t_ALTS_01>,
196558 std::compare_three_way_result_t<t_ALTS_02>,
196559 std::compare_three_way_result_t<t_ALTS_03>,
196560 std::compare_three_way_result_t<t_ALTS_04>,
196561 std::compare_three_way_result_t<t_ALTS_05>,
196562 std::compare_three_way_result_t<t_ALTS_06>,
196563 std::compare_three_way_result_t<t_ALTS_07>,
196564 std::compare_three_way_result_t<t_ALTS_08>,
196565 std::compare_three_way_result_t<t_ALTS_09>,
196566 std::compare_three_way_result_t<t_ALTS_10>,
196567 std::compare_three_way_result_t<t_ALTS_11>,
196568 std::compare_three_way_result_t<t_ALTS_12>,
196569 std::compare_three_way_result_t<t_ALTS_13>,
196570 std::compare_three_way_result_t<t_ALTS_14>,
196571 std::compare_three_way_result_t<t_ALTS_15>>;
196572
196573 const size_t lhs_index = lhs.index();
196574 const size_t rhs_index = rhs.index();
196575 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196576 if (lhs_index == rhs_index) {
196577 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196578 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196579 auto&& rhs_value) {
196580 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196581 },
196582 rhs);
196583 }
196584 else {
196585 return lhs_index <=> rhs_index;
196586 }
196587 }
196588 else {
196589 if (lhs_index == variant_npos) {
196590 if (rhs_index == variant_npos)
196591 return std::strong_ordering::equal;
196592 else
196593 return std::strong_ordering::less;
196594 }
196595 else
196596 return std::strong_ordering::greater;
196597 }
196598}
196599#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 15
196600
196601#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
196602template <class t_ALTS_01,
196603 class t_ALTS_02,
196604 class t_ALTS_03,
196605 class t_ALTS_04,
196606 class t_ALTS_05,
196607 class t_ALTS_06,
196608 class t_ALTS_07,
196609 class t_ALTS_08,
196610 class t_ALTS_09,
196611 class t_ALTS_10,
196612 class t_ALTS_11,
196613 class t_ALTS_12,
196614 class t_ALTS_13,
196615 class t_ALTS_14,
196616 class t_ALTS_15,
196617 class t_ALTS_16>
196618 requires(std::three_way_comparable<t_ALTS_01> && ,
196619 std::three_way_comparable<t_ALTS_02> && ,
196620 std::three_way_comparable<t_ALTS_03> && ,
196621 std::three_way_comparable<t_ALTS_04> && ,
196622 std::three_way_comparable<t_ALTS_05> && ,
196623 std::three_way_comparable<t_ALTS_06> && ,
196624 std::three_way_comparable<t_ALTS_07> && ,
196625 std::three_way_comparable<t_ALTS_08> && ,
196626 std::three_way_comparable<t_ALTS_09> && ,
196627 std::three_way_comparable<t_ALTS_10> && ,
196628 std::three_way_comparable<t_ALTS_11> && ,
196629 std::three_way_comparable<t_ALTS_12> && ,
196630 std::three_way_comparable<t_ALTS_13> && ,
196631 std::three_way_comparable<t_ALTS_14> && ,
196632 std::three_way_comparable<t_ALTS_15> && ,
196633 std::three_way_comparable<t_ALTS_16> && )
196634constexpr std::common_comparison_category_t<
196635 std::compare_three_way_result_t<t_ALTS_01>,
196636 std::compare_three_way_result_t<t_ALTS_02>,
196637 std::compare_three_way_result_t<t_ALTS_03>,
196638 std::compare_three_way_result_t<t_ALTS_04>,
196639 std::compare_three_way_result_t<t_ALTS_05>,
196640 std::compare_three_way_result_t<t_ALTS_06>,
196641 std::compare_three_way_result_t<t_ALTS_07>,
196642 std::compare_three_way_result_t<t_ALTS_08>,
196643 std::compare_three_way_result_t<t_ALTS_09>,
196644 std::compare_three_way_result_t<t_ALTS_10>,
196645 std::compare_three_way_result_t<t_ALTS_11>,
196646 std::compare_three_way_result_t<t_ALTS_12>,
196647 std::compare_three_way_result_t<t_ALTS_13>,
196648 std::compare_three_way_result_t<t_ALTS_14>,
196649 std::compare_three_way_result_t<t_ALTS_15>,
196650 std::compare_three_way_result_t<t_ALTS_16>>
196651operator<=>(const variant<t_ALTS_01,
196652 t_ALTS_02,
196653 t_ALTS_03,
196654 t_ALTS_04,
196655 t_ALTS_05,
196656 t_ALTS_06,
196657 t_ALTS_07,
196658 t_ALTS_08,
196659 t_ALTS_09,
196660 t_ALTS_10,
196661 t_ALTS_11,
196662 t_ALTS_12,
196663 t_ALTS_13,
196664 t_ALTS_14,
196665 t_ALTS_15,
196666 t_ALTS_16>& lhs, const variant<t_ALTS_01,
196667 t_ALTS_02,
196668 t_ALTS_03,
196669 t_ALTS_04,
196670 t_ALTS_05,
196671 t_ALTS_06,
196672 t_ALTS_07,
196673 t_ALTS_08,
196674 t_ALTS_09,
196675 t_ALTS_10,
196676 t_ALTS_11,
196677 t_ALTS_12,
196678 t_ALTS_13,
196679 t_ALTS_14,
196680 t_ALTS_15,
196681 t_ALTS_16>& rhs)
196682{
196683 using RET = std::common_comparison_category_t<
196684 std::compare_three_way_result_t<t_ALTS_01>,
196685 std::compare_three_way_result_t<t_ALTS_02>,
196686 std::compare_three_way_result_t<t_ALTS_03>,
196687 std::compare_three_way_result_t<t_ALTS_04>,
196688 std::compare_three_way_result_t<t_ALTS_05>,
196689 std::compare_three_way_result_t<t_ALTS_06>,
196690 std::compare_three_way_result_t<t_ALTS_07>,
196691 std::compare_three_way_result_t<t_ALTS_08>,
196692 std::compare_three_way_result_t<t_ALTS_09>,
196693 std::compare_three_way_result_t<t_ALTS_10>,
196694 std::compare_three_way_result_t<t_ALTS_11>,
196695 std::compare_three_way_result_t<t_ALTS_12>,
196696 std::compare_three_way_result_t<t_ALTS_13>,
196697 std::compare_three_way_result_t<t_ALTS_14>,
196698 std::compare_three_way_result_t<t_ALTS_15>,
196699 std::compare_three_way_result_t<t_ALTS_16>>;
196700
196701 const size_t lhs_index = lhs.index();
196702 const size_t rhs_index = rhs.index();
196703 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196704 if (lhs_index == rhs_index) {
196705 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196706 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196707 auto&& rhs_value) {
196708 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196709 },
196710 rhs);
196711 }
196712 else {
196713 return lhs_index <=> rhs_index;
196714 }
196715 }
196716 else {
196717 if (lhs_index == variant_npos) {
196718 if (rhs_index == variant_npos)
196719 return std::strong_ordering::equal;
196720 else
196721 return std::strong_ordering::less;
196722 }
196723 else
196724 return std::strong_ordering::greater;
196725 }
196726}
196727#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 16
196728
196729#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
196730template <class t_ALTS_01,
196731 class t_ALTS_02,
196732 class t_ALTS_03,
196733 class t_ALTS_04,
196734 class t_ALTS_05,
196735 class t_ALTS_06,
196736 class t_ALTS_07,
196737 class t_ALTS_08,
196738 class t_ALTS_09,
196739 class t_ALTS_10,
196740 class t_ALTS_11,
196741 class t_ALTS_12,
196742 class t_ALTS_13,
196743 class t_ALTS_14,
196744 class t_ALTS_15,
196745 class t_ALTS_16,
196746 class t_ALTS_17>
196747 requires(std::three_way_comparable<t_ALTS_01> && ,
196748 std::three_way_comparable<t_ALTS_02> && ,
196749 std::three_way_comparable<t_ALTS_03> && ,
196750 std::three_way_comparable<t_ALTS_04> && ,
196751 std::three_way_comparable<t_ALTS_05> && ,
196752 std::three_way_comparable<t_ALTS_06> && ,
196753 std::three_way_comparable<t_ALTS_07> && ,
196754 std::three_way_comparable<t_ALTS_08> && ,
196755 std::three_way_comparable<t_ALTS_09> && ,
196756 std::three_way_comparable<t_ALTS_10> && ,
196757 std::three_way_comparable<t_ALTS_11> && ,
196758 std::three_way_comparable<t_ALTS_12> && ,
196759 std::three_way_comparable<t_ALTS_13> && ,
196760 std::three_way_comparable<t_ALTS_14> && ,
196761 std::three_way_comparable<t_ALTS_15> && ,
196762 std::three_way_comparable<t_ALTS_16> && ,
196763 std::three_way_comparable<t_ALTS_17> && )
196764constexpr std::common_comparison_category_t<
196765 std::compare_three_way_result_t<t_ALTS_01>,
196766 std::compare_three_way_result_t<t_ALTS_02>,
196767 std::compare_three_way_result_t<t_ALTS_03>,
196768 std::compare_three_way_result_t<t_ALTS_04>,
196769 std::compare_three_way_result_t<t_ALTS_05>,
196770 std::compare_three_way_result_t<t_ALTS_06>,
196771 std::compare_three_way_result_t<t_ALTS_07>,
196772 std::compare_three_way_result_t<t_ALTS_08>,
196773 std::compare_three_way_result_t<t_ALTS_09>,
196774 std::compare_three_way_result_t<t_ALTS_10>,
196775 std::compare_three_way_result_t<t_ALTS_11>,
196776 std::compare_three_way_result_t<t_ALTS_12>,
196777 std::compare_three_way_result_t<t_ALTS_13>,
196778 std::compare_three_way_result_t<t_ALTS_14>,
196779 std::compare_three_way_result_t<t_ALTS_15>,
196780 std::compare_three_way_result_t<t_ALTS_16>,
196781 std::compare_three_way_result_t<t_ALTS_17>>
196782operator<=>(const variant<t_ALTS_01,
196783 t_ALTS_02,
196784 t_ALTS_03,
196785 t_ALTS_04,
196786 t_ALTS_05,
196787 t_ALTS_06,
196788 t_ALTS_07,
196789 t_ALTS_08,
196790 t_ALTS_09,
196791 t_ALTS_10,
196792 t_ALTS_11,
196793 t_ALTS_12,
196794 t_ALTS_13,
196795 t_ALTS_14,
196796 t_ALTS_15,
196797 t_ALTS_16,
196798 t_ALTS_17>& lhs, const variant<t_ALTS_01,
196799 t_ALTS_02,
196800 t_ALTS_03,
196801 t_ALTS_04,
196802 t_ALTS_05,
196803 t_ALTS_06,
196804 t_ALTS_07,
196805 t_ALTS_08,
196806 t_ALTS_09,
196807 t_ALTS_10,
196808 t_ALTS_11,
196809 t_ALTS_12,
196810 t_ALTS_13,
196811 t_ALTS_14,
196812 t_ALTS_15,
196813 t_ALTS_16,
196814 t_ALTS_17>& rhs)
196815{
196816 using RET = std::common_comparison_category_t<
196817 std::compare_three_way_result_t<t_ALTS_01>,
196818 std::compare_three_way_result_t<t_ALTS_02>,
196819 std::compare_three_way_result_t<t_ALTS_03>,
196820 std::compare_three_way_result_t<t_ALTS_04>,
196821 std::compare_three_way_result_t<t_ALTS_05>,
196822 std::compare_three_way_result_t<t_ALTS_06>,
196823 std::compare_three_way_result_t<t_ALTS_07>,
196824 std::compare_three_way_result_t<t_ALTS_08>,
196825 std::compare_three_way_result_t<t_ALTS_09>,
196826 std::compare_three_way_result_t<t_ALTS_10>,
196827 std::compare_three_way_result_t<t_ALTS_11>,
196828 std::compare_three_way_result_t<t_ALTS_12>,
196829 std::compare_three_way_result_t<t_ALTS_13>,
196830 std::compare_three_way_result_t<t_ALTS_14>,
196831 std::compare_three_way_result_t<t_ALTS_15>,
196832 std::compare_three_way_result_t<t_ALTS_16>,
196833 std::compare_three_way_result_t<t_ALTS_17>>;
196834
196835 const size_t lhs_index = lhs.index();
196836 const size_t rhs_index = rhs.index();
196837 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196838 if (lhs_index == rhs_index) {
196839 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196840 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196841 auto&& rhs_value) {
196842 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196843 },
196844 rhs);
196845 }
196846 else {
196847 return lhs_index <=> rhs_index;
196848 }
196849 }
196850 else {
196851 if (lhs_index == variant_npos) {
196852 if (rhs_index == variant_npos)
196853 return std::strong_ordering::equal;
196854 else
196855 return std::strong_ordering::less;
196856 }
196857 else
196858 return std::strong_ordering::greater;
196859 }
196860}
196861#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 17
196862
196863#if BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
196864template <class t_ALTS_01,
196865 class t_ALTS_02,
196866 class t_ALTS_03,
196867 class t_ALTS_04,
196868 class t_ALTS_05,
196869 class t_ALTS_06,
196870 class t_ALTS_07,
196871 class t_ALTS_08,
196872 class t_ALTS_09,
196873 class t_ALTS_10,
196874 class t_ALTS_11,
196875 class t_ALTS_12,
196876 class t_ALTS_13,
196877 class t_ALTS_14,
196878 class t_ALTS_15,
196879 class t_ALTS_16,
196880 class t_ALTS_17,
196881 class t_ALTS_18>
196882 requires(std::three_way_comparable<t_ALTS_01> && ,
196883 std::three_way_comparable<t_ALTS_02> && ,
196884 std::three_way_comparable<t_ALTS_03> && ,
196885 std::three_way_comparable<t_ALTS_04> && ,
196886 std::three_way_comparable<t_ALTS_05> && ,
196887 std::three_way_comparable<t_ALTS_06> && ,
196888 std::three_way_comparable<t_ALTS_07> && ,
196889 std::three_way_comparable<t_ALTS_08> && ,
196890 std::three_way_comparable<t_ALTS_09> && ,
196891 std::three_way_comparable<t_ALTS_10> && ,
196892 std::three_way_comparable<t_ALTS_11> && ,
196893 std::three_way_comparable<t_ALTS_12> && ,
196894 std::three_way_comparable<t_ALTS_13> && ,
196895 std::three_way_comparable<t_ALTS_14> && ,
196896 std::three_way_comparable<t_ALTS_15> && ,
196897 std::three_way_comparable<t_ALTS_16> && ,
196898 std::three_way_comparable<t_ALTS_17> && ,
196899 std::three_way_comparable<t_ALTS_18> && )
196900constexpr std::common_comparison_category_t<
196901 std::compare_three_way_result_t<t_ALTS_01>,
196902 std::compare_three_way_result_t<t_ALTS_02>,
196903 std::compare_three_way_result_t<t_ALTS_03>,
196904 std::compare_three_way_result_t<t_ALTS_04>,
196905 std::compare_three_way_result_t<t_ALTS_05>,
196906 std::compare_three_way_result_t<t_ALTS_06>,
196907 std::compare_three_way_result_t<t_ALTS_07>,
196908 std::compare_three_way_result_t<t_ALTS_08>,
196909 std::compare_three_way_result_t<t_ALTS_09>,
196910 std::compare_three_way_result_t<t_ALTS_10>,
196911 std::compare_three_way_result_t<t_ALTS_11>,
196912 std::compare_three_way_result_t<t_ALTS_12>,
196913 std::compare_three_way_result_t<t_ALTS_13>,
196914 std::compare_three_way_result_t<t_ALTS_14>,
196915 std::compare_three_way_result_t<t_ALTS_15>,
196916 std::compare_three_way_result_t<t_ALTS_16>,
196917 std::compare_three_way_result_t<t_ALTS_17>,
196918 std::compare_three_way_result_t<t_ALTS_18>>
196919operator<=>(const variant<t_ALTS_01,
196920 t_ALTS_02,
196921 t_ALTS_03,
196922 t_ALTS_04,
196923 t_ALTS_05,
196924 t_ALTS_06,
196925 t_ALTS_07,
196926 t_ALTS_08,
196927 t_ALTS_09,
196928 t_ALTS_10,
196929 t_ALTS_11,
196930 t_ALTS_12,
196931 t_ALTS_13,
196932 t_ALTS_14,
196933 t_ALTS_15,
196934 t_ALTS_16,
196935 t_ALTS_17,
196936 t_ALTS_18>& lhs, const variant<t_ALTS_01,
196937 t_ALTS_02,
196938 t_ALTS_03,
196939 t_ALTS_04,
196940 t_ALTS_05,
196941 t_ALTS_06,
196942 t_ALTS_07,
196943 t_ALTS_08,
196944 t_ALTS_09,
196945 t_ALTS_10,
196946 t_ALTS_11,
196947 t_ALTS_12,
196948 t_ALTS_13,
196949 t_ALTS_14,
196950 t_ALTS_15,
196951 t_ALTS_16,
196952 t_ALTS_17,
196953 t_ALTS_18>& rhs)
196954{
196955 using RET = std::common_comparison_category_t<
196956 std::compare_three_way_result_t<t_ALTS_01>,
196957 std::compare_three_way_result_t<t_ALTS_02>,
196958 std::compare_three_way_result_t<t_ALTS_03>,
196959 std::compare_three_way_result_t<t_ALTS_04>,
196960 std::compare_three_way_result_t<t_ALTS_05>,
196961 std::compare_three_way_result_t<t_ALTS_06>,
196962 std::compare_three_way_result_t<t_ALTS_07>,
196963 std::compare_three_way_result_t<t_ALTS_08>,
196964 std::compare_three_way_result_t<t_ALTS_09>,
196965 std::compare_three_way_result_t<t_ALTS_10>,
196966 std::compare_three_way_result_t<t_ALTS_11>,
196967 std::compare_three_way_result_t<t_ALTS_12>,
196968 std::compare_three_way_result_t<t_ALTS_13>,
196969 std::compare_three_way_result_t<t_ALTS_14>,
196970 std::compare_three_way_result_t<t_ALTS_15>,
196971 std::compare_three_way_result_t<t_ALTS_16>,
196972 std::compare_three_way_result_t<t_ALTS_17>,
196973 std::compare_three_way_result_t<t_ALTS_18>>;
196974
196975 const size_t lhs_index = lhs.index();
196976 const size_t rhs_index = rhs.index();
196977 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
196978 if (lhs_index == rhs_index) {
196979 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
196980 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
196981 auto&& rhs_value) {
196982 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
196983 },
196984 rhs);
196985 }
196986 else {
196987 return lhs_index <=> rhs_index;
196988 }
196989 }
196990 else {
196991 if (lhs_index == variant_npos) {
196992 if (rhs_index == variant_npos)
196993 return std::strong_ordering::equal;
196994 else
196995 return std::strong_ordering::less;
196996 }
196997 else
196998 return std::strong_ordering::greater;
196999 }
197000}
197001#endif // BSLSTL_VARIANT_VARIADIC_LIMIT_U >= 18
197002
197003#endif
197004#else
197005// The generated code below is a workaround for the absence of perfect
197006// forwarding in some compilers.
197007template <class t_HASHALG, class t_HEAD, class... t_TAIL>
197008void hashAppend(t_HASHALG& hashAlg, const variant<t_HEAD, t_TAIL...>& input)
197009{
197010 if (!input.valueless_by_exception()) {
197011 hashAppend(hashAlg, input.index());
197012 BloombergLP::bslstl::Variant_HashVisitor<t_HASHALG> hashVisitor(
197013 hashAlg);
197014 visit(hashVisitor, input);
197015 }
197016 else {
197017 hashAppend(hashAlg, false);
197018 }
197019}
197020
197021template <class t_TYPE, class t_HEAD, class... t_TAIL>
197022bool holds_alternative(
197023 const variant<t_HEAD, t_TAIL...>& obj) BSLS_KEYWORD_NOEXCEPT
197024{
197025 BSLMF_ASSERT((BloombergLP::bslstl::Variant_HasUniqueType<
197026 t_TYPE,
197027 variant<t_HEAD, t_TAIL...> >::value));
197028 typedef typename bsl::variant<t_HEAD, t_TAIL...> Variant;
197029 return obj.index() == BSLSTL_VARIANT_INDEX_OF(t_TYPE, Variant);
197030}
197031
197032template <class t_HEAD, class... t_TAIL>
197035{
197036 BloombergLP::bslstl::variant_swapImpl(
197038 bool,
197039 BloombergLP::bslstl::
197040 Variant_UsesBslmaAllocatorAny<t_HEAD, t_TAIL...>::value>(),
197041 lhs,
197042 rhs);
197043}
197044
197045template <class t_HEAD, class... t_TAIL>
197046bool operator==(const variant<t_HEAD, t_TAIL...>& lhs,
197047 const variant<t_HEAD, t_TAIL...>& rhs)
197048{
197049 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
197050
197051 if (lhs.index() != rhs.index()) {
197052 return false;
197053 }
197054 else if (lhs.valueless_by_exception()) {
197055 return true;
197056 }
197057 return ImpUtil::Equal(lhs, rhs);
197058}
197059
197060template <class t_HEAD, class... t_TAIL>
197061bool operator!=(const variant<t_HEAD, t_TAIL...>& lhs,
197062 const variant<t_HEAD, t_TAIL...>& rhs)
197063{
197064 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
197065
197066 if (lhs.index() != rhs.index()) {
197067 return true;
197068 }
197069 else if (lhs.valueless_by_exception()) {
197070 return false;
197071 }
197072 return ImpUtil::NotEqual(lhs, rhs);
197073}
197074
197075template <class t_HEAD, class... t_TAIL>
197076bool operator<(const variant<t_HEAD, t_TAIL...>& lhs,
197077 const variant<t_HEAD, t_TAIL...>& rhs)
197078{
197079 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
197080
197081 if (rhs.valueless_by_exception()) {
197082 return false;
197083 }
197084 else if (lhs.valueless_by_exception()) {
197085 return true;
197086 }
197087 else if (lhs.index() != rhs.index()) {
197088 return lhs.index() < rhs.index();
197089 }
197090 return ImpUtil::LessThan(lhs, rhs);
197091}
197092
197093template <class t_HEAD, class... t_TAIL>
197094bool operator>(const variant<t_HEAD, t_TAIL...>& lhs,
197095 const variant<t_HEAD, t_TAIL...>& rhs)
197096{
197097 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
197098
197099 if (lhs.valueless_by_exception()) {
197100 return false;
197101 }
197102 else if (rhs.valueless_by_exception()) {
197103 return true;
197104 }
197105 else if (lhs.index() != rhs.index()) {
197106 return lhs.index() > rhs.index();
197107 }
197108 return ImpUtil::GreaterThan(lhs, rhs);
197109}
197110
197111template <class t_HEAD, class... t_TAIL>
197112bool operator<=(const variant<t_HEAD, t_TAIL...>& lhs,
197113 const variant<t_HEAD, t_TAIL...>& rhs)
197114{
197115 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
197116
197117 if (lhs.valueless_by_exception()) {
197118 return true;
197119 }
197120 else if (rhs.valueless_by_exception()) {
197121 return false;
197122 }
197123 else if (lhs.index() != rhs.index()) {
197124 return lhs.index() < rhs.index();
197125 }
197126 return ImpUtil::LessOrEqual(lhs, rhs);
197127}
197128
197129template <class t_HEAD, class... t_TAIL>
197130bool operator>=(const variant<t_HEAD, t_TAIL...>& lhs,
197131 const variant<t_HEAD, t_TAIL...>& rhs)
197132{
197133 typedef BloombergLP::bslstl::Variant_ImpUtil ImpUtil;
197134
197135 if (rhs.valueless_by_exception()) {
197136 return true;
197137 }
197138 else if (lhs.valueless_by_exception()) {
197139 return false;
197140 }
197141 else if (lhs.index() != rhs.index()) {
197142 return lhs.index() > rhs.index();
197143 }
197144
197145 return ImpUtil::GreaterOrEqual(lhs, rhs);
197146}
197147
197148#if defined BSLS_COMPILERFEATURES_SUPPORT_THREE_WAY_COMPARISON && \
197149 defined BSLS_LIBRARYFEATURES_HAS_CPP20_CONCEPTS
197150
197151template <class... t_ALTS>
197152 requires(std::three_way_comparable<t_ALTS> && ...)
197153constexpr std::common_comparison_category_t<
197154 std::compare_three_way_result_t<t_ALTS>...>
197155operator<=>(const variant<t_ALTS...>& lhs, const variant<t_ALTS...>& rhs)
197156{
197157 using RET = std::common_comparison_category_t<
197158 std::compare_three_way_result_t<t_ALTS>...>;
197159
197160 const size_t lhs_index = lhs.index();
197161 const size_t rhs_index = rhs.index();
197162 if ((lhs_index != variant_npos) && (rhs_index != variant_npos)) {
197163 if (lhs_index == rhs_index) {
197164 return BloombergLP::bslstl::Variant_ImpUtil::visitId<RET>(
197165 [&lhs]<size_t t_INDEX>(bsl::in_place_index_t<t_INDEX>,
197166 auto&& rhs_value) {
197167 return bsl::get<t_INDEX>(lhs) <=> rhs_value;
197168 },
197169 rhs);
197170 }
197171 else {
197172 return lhs_index <=> rhs_index;
197173 }
197174 }
197175 else {
197176 if (lhs_index == variant_npos) {
197177 if (rhs_index == variant_npos)
197178 return std::strong_ordering::equal;
197179 else
197180 return std::strong_ordering::less;
197181 }
197182 else
197183 return std::strong_ordering::greater;
197184 }
197185}
197186#endif
197187
197188// }}} END GENERATED CODE
197189#endif
197190} // close namespace bsl
197191
197192#else // if ! defined(DEFINED_BSLSTL_VARIANT_H)
197193# error Not valid except when included from bslstl_variant.h
197194#endif // ! defined(COMPILING_BSLSTL_VARIANT_H)
197195
197196#endif // ! defined(INCLUDED_BSLSTL_VARIANT_CPP03)
197197
197198// ----------------------------------------------------------------------------
197199// Copyright 2023 Bloomberg Finance L.P.
197200//
197201// Licensed under the Apache License, Version 2.0 (the "License");
197202// you may not use this file except in compliance with the License.
197203// You may obtain a copy of the License at
197204//
197205// http://www.apache.org/licenses/LICENSE-2.0
197206//
197207// Unless required by applicable law or agreed to in writing, software
197208// distributed under the License is distributed on an "AS IS" BASIS,
197209// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
197210// See the License for the specific language governing permissions and
197211// limitations under the License.
197212// ----------------------------- END-OF-FILE ----------------------------------
197213
197214/** @} */
197215/** @} */
197216/** @} */
#define BSLMF_NESTED_TRAIT_DECLARATION_IF(t_TYPE, t_TRAIT, t_COND)
Definition bslmf_nestedtraitdeclaration.h:243
#define BSLSTL_VARIANT_DEFINE_IF_HAS_UNIQUE_TYPE(TYPE)
Definition bslstl_variant.h:890
#define BSLSTL_VARIANT_DEFINE_IF_CONSTRUCTS_FROM(VARIANT, TYPE)
Definition bslstl_variant.h:857
#define BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM_STD(STD_VARIANT)
Definition bslstl_variant.h:880
#define BSLSTL_VARIANT_HAS_UNIQUE_TYPE(TYPE)
Definition bslstl_variant.h:906
#define BSLSTL_VARIANT_DECLARE_IF_CONSTRUCTS_FROM(VARIANT, TYPE)
Definition bslstl_variant.h:866
#define BSLSTL_VARIANT_INDEX_OF(TYPE, VARIANT)
Definition bslstl_variant.h:920
#define BSLSTL_VARIANT_TYPE_AT_INDEX(INDEX)
Definition bslstl_variant.h:913
#define BSLSTL_VARIANT_RELOP_VISITOR_DEFINITON(NAME, OP)
Definition bslstl_variant.h:2754
#define BSLSTL_VARIANT_DECLARE_IF_HAS_UNIQUE_TYPE(TYPE)
Definition bslstl_variant.h:898
#define BSLSTL_VARIANT_VISITID(RET, VISITOR, VAROBJ)
Definition bslstl_variant.h:943
#define BSLSTL_VARIANT_CONVERT_INDEX_OF(TYPE, VARIANT)
Definition bslstl_variant.h:927
Definition bslma_bslallocator.h:580
Definition bslmf_invokeresult.h:358
Definition bslstl_variant.h:3685
size_t index() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_variant.h:9132
variant()
Definition bslstl_variant.h:7320
Definition bslmf_movableref.h:751
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:229
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_COMPILERFEATURES_FORWARD_REF(T)
Definition bsls_compilerfeatures.h:2012
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2018
#define BSLS_THROW(X)
Definition bsls_exceptionutil.h:374
#define BSLS_KEYWORD_CONSTEXPR_CPP14
Definition bsls_keyword.h:595
#define BSLS_KEYWORD_CONSTEXPR
Definition bsls_keyword.h:588
#define BSLS_KEYWORD_INLINE_CONSTEXPR
Definition bsls_keyword.h:617
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:632
#define BSLS_KEYWORD_INLINE_VARIABLE
Definition bsls_keyword.h:623
#define BSLS_UTIL_ADDRESSOF(OBJ)
Definition bsls_util.h:289
void BSLSTL_VARIANT_NOT_A_TYPE
Definition bslstl_variant.h:322
bool operator!=(const FileCleanerConfiguration &lhs, const FileCleanerConfiguration &rhs)
bool operator==(const FileCleanerConfiguration &lhs, const FileCleanerConfiguration &rhs)
void swap(OptionValue &a, OptionValue &b)
void hashAppend(HASH_ALGORITHM &hashAlg, const baljsn::EncoderTestAddress &object)
Definition baljsn_encoder_testtypes.h:9236
bool operator<(const MetricId &lhs, const MetricId &rhs)
void reset(TYPE *object)
Reset the value of the specified object to its default value.
bool operator>=(const Guid &lhs, const Guid &rhs)
bool operator<=(const Guid &lhs, const Guid &rhs)
bool operator>(const Guid &lhs, const Guid &rhs)
Definition bdlb_printmethods.h:283
bool holds_alternative(const variant< t_HEAD, t_TAIL... > &obj) BSLS_KEYWORD_NOEXCEPT
Definition bslstl_variant.h:9484
void hashAppend(HASH_ALGORITHM &hashAlgorithm, const array< TYPE, SIZE > &input)
Pass the specified input to the specified hashAlgorithm
Definition bslstl_array.h:950
Variant_GetIndexReturnType< t_INDEX, t_VARIANT >::pointer get_if(t_VARIANT *obj) BSLS_KEYWORD_NOEXCEPT
Definition bslstl_variant.h:9415
BSLS_KEYWORD_CONSTEXPR_CPP14 TYPE & get(array< TYPE, SIZE > &a) BSLS_KEYWORD_NOEXCEPT
BSLS_KEYWORD_INLINE_CONSTEXPR size_t variant_npos
Definition bslstl_variant.h:373
bsl::invoke_result< t_VISITOR &, typenamebsl::variant_alternative< 0, t_VARIANT >::type & >::type visit(t_VISITOR &visitor, t_VARIANT &variant)
Definition bslstl_variant.h:2262
t_RET visitR(t_VISITOR &visitor, t_VARIANT &variant)
Definition bslstl_variant.h:2207
Definition bdlbb_blob.h:576
Definition bslstl_algorithm.h:82
void variant_swapImpl(bsl::true_type, t_VARIANT &lhs, t_VARIANT &rhs)
Definition bslstl_variant.h:5884
Definition bdldfp_decimal.h:5188
BloombergLP::bslmf::AddPointer_Impl< t_TYPE >::type type
Definition bslmf_addpointer.h:175
Definition bslmf_conditional.h:120
Definition bslmf_enableif.h:525
Definition bslstl_inplace.h:175
Definition bslstl_inplace.h:137
Definition bslmf_integralconstant.h:244
Definition bslmf_isreference.h:137
Definition bslmf_issame.h:146
t_TYPE type
This typedef is an alias to the (template parameter) t_TYPE.
Definition bslmf_removeconst.h:161
Definition bslmf_removecv.h:118
remove_const< typenameremove_volatile< t_TYPE >::type >::type type
Definition bslmf_removecv.h:126
Definition bslstl_variant.h:384
Definition bslstl_variant.h:341
Definition bslmf_movableref.h:809
Definition bslmf_movableref.h:817
t_TYPE & type
Definition bslmf_movableref.h:1273
t_TYPE type
Definition bslmf_movableref.h:1177
Definition bsls_objectbuffer.h:276
TYPE * address()
Definition bsls_objectbuffer.h:334
TYPE & object()
Definition bsls_objectbuffer.h:351