BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bdld_datummaker.h
Go to the documentation of this file.
1/// @file bdld_datummaker.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bdld_datummaker.h -*-C++-*-
8#ifndef INCLUDED_BDLD_DATUMMAKER
9#define INCLUDED_BDLD_DATUMMAKER
10
11/// @defgroup bdld_datummaker bdld_datummaker
12/// @brief Provide a mechanism for easily creating `bdld::Datum` objects.
13/// @addtogroup bdl
14/// @{
15/// @addtogroup bdld
16/// @{
17/// @addtogroup bdld_datummaker
18/// @{
19///
20/// <h1> Outline </h1>
21/// * <a href="#bdld_datummaker-purpose"> Purpose</a>
22/// * <a href="#bdld_datummaker-classes"> Classes </a>
23/// * <a href="#bdld_datummaker-description"> Description </a>
24/// * <a href="#bdld_datummaker-usage"> Usage </a>
25/// * <a href="#bdld_datummaker-example-1-testing-of-a-function"> Example 1: Testing of a function </a>
26///
27/// # Purpose {#bdld_datummaker-purpose}
28/// Provide a mechanism for easily creating `bdld::Datum` objects.
29///
30/// # Classes {#bdld_datummaker-classes}
31///
32/// - bdld::DatumMaker: a mechanism for easily creating `bdld::Datum` objects
33///
34/// @see bdld_datum
35///
36/// # Description {#bdld_datummaker-description}
37/// This component defines a concrete mechanism, `DatumMaker` that
38/// allows `bdld::Datum` objects to be created with minimal syntax.
39///
40/// ## Usage {#bdld_datummaker-usage}
41///
42///
43/// This section illustrates intended use of this component.
44///
45/// ### Example 1: Testing of a function {#bdld_datummaker-example-1-testing-of-a-function}
46///
47///
48/// Suppose we want to test a function, `numCount`, that returns the number of
49/// numeric elements in a `bdld::Datum` array.
50///
51/// First we implement the function:
52/// @code
53/// bdld::Datum numCount(const bdld::Datum arrray)
54/// {
55/// bdld::DatumArrayRef aRef = arrray.theArray();
56///
57/// int count = 0;
58///
59/// for (bdld::DatumArrayRef::SizeType i = 0; i < aRef.length(); ++i) {
60/// if (aRef[i].isInteger() ||
61/// aRef[i].isInteger64() ||
62/// aRef[i].isDouble()) {
63/// ++count;
64/// }
65/// }
66///
67/// return bdld::Datum::createInteger(count);
68/// }
69/// @endcode
70/// Then, within the test driver for `numCount`, we define a `bdld::DatumMaker`,
71/// and use it to initialize an array to test `numCount`:
72/// @code
73/// bdld::DatumMaker m(&sa);
74/// @endcode
75/// Here, we create the array we want to use as an argument to `numCount`:
76/// @code
77/// bdld::Datum array = m.a(
78/// m(),
79/// m(bdld::DatumError(-1)),
80/// m.a(
81/// m(true),
82/// m(false)),
83/// m(42.0),
84/// m(false),
85/// m(0),
86/// m(true),
87/// m(bsls::Types::Int64(424242)),
88/// m.m(
89/// "firstName", "Bart",
90/// "lastName", "Simpson",
91/// "age", 10
92/// ),
93/// m(bdlt::Date(2016, 10, 14)),
94/// m(bdlt::Time(13, 00, 00, 000)),
95/// m(bdlt::Datetime(2016, 10, 14, 13, 01, 30, 87)),
96/// m(bdlt::DatetimeInterval(280, 13, 41, 12, 321)),
97/// m("foobar")
98/// );
99/// @endcode
100/// Next we call the function with the array-`Datum` as its first argument:
101/// @code
102/// bdld::Datum retVal = numCount(array);
103/// @endcode
104/// Finally we verify the return value:
105/// @code
106/// assert(retVal.theInteger() == 3);
107/// @endcode
108/// @}
109/** @} */
110/** @} */
111
112/** @addtogroup bdl
113 * @{
114 */
115/** @addtogroup bdld
116 * @{
117 */
118/** @addtogroup bdld_datummaker
119 * @{
120 */
121
122#include <bdlscm_version.h>
123
124#include <bdld_datum.h>
126#include <bdld_datummapbuilder.h>
129
130#include <bdldfp_decimal.h>
131
132#include <bslma_allocator.h>
133#include <bslma_allocatorutil.h>
134#include <bslma_bslallocator.h>
136
137#include <bdlb_nullablevalue.h>
138
139#include <bslmf_assert.h>
140
141#include <bsls_review.h>
142
143#include <bsls_assert.h>
145#include <bsls_types.h>
146
147
148namespace bdld {
149
150 // ================
151 // class DatumMaker
152 // ================
153
154/// This concrete mechanism class provides "sugar" for easily creating
155/// `bdld::Datum` objects for testing.
156///
157/// See @ref bdld_datummaker
159
160 public:
161 // TYPES
163
164 private:
165 // DATA
166 AllocatorType d_allocator; // allocator of dynamic memory
167
168private:
169 // NOT IMPLEMENTED
170 DatumMaker(const DatumMaker&);
171 DatumMaker& operator=(const DatumMaker&);
172
173 // PRIVATE ACCESSORS
174
175 /// This overload precludes an implicit (and unintended) conversion to
176 /// `bool`. This (unimplemented) function template should not be
177 /// instantiated unless `operator()` is called with an unsupported type.
178 template <class T> void operator()(T *) const;
179
180 // PRIVATE ACCESSORS
181
182 /// Do nothing, ends template recursion.
183 void pushBackHelper(bdld::DatumArrayBuilder *) const;
184
185 /// Do nothing, ends template recursion.
186 void pushBackHelper(bdld::DatumMapBuilder *) const;
187
188 /// Do nothing, ends template recursion.
189 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *) const;
190
191 /// Do nothing, ends template recursion.
192 void pushBackHelper(bdld::DatumIntMapBuilder *) const;
193
194#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES // $var-args=32
195
196 /// `push_back` the specified `element` into the specified `builder`.
197 template <typename TYPE>
198 void pushBackHelper(bdld::DatumArrayBuilder *builder,
199 const TYPE& element) const;
200
201 /// `push_back` the specified `element` into the specified `builder`,
202 /// then call `pushBackHelper` with the specified (variadic) `elements`.
203 template <typename TYPE, typename... ELEMENTS>
204 void pushBackHelper(bdld::DatumArrayBuilder *builder,
205 const TYPE& element,
206 const ELEMENTS&... elements) const;
207
208 /// `push_back` the specified `key` and `value` pair (forming a
209 /// property) into the specified `builder`.
210 template <typename TYPE>
211 void pushBackHelper(bdld::DatumMapBuilder *builder,
212 const bslstl::StringRef& key,
213 const TYPE& value) const;
214
215 /// `push_back` the specified `key` and `value` pair (forming a
216 /// property) into the specified `builder`, then call `pushBackHelper`
217 /// with the specified (variadic) entries.
218 template <typename TYPE, typename... ENTRIES>
219 void pushBackHelper(bdld::DatumMapBuilder *builder,
220 const bslstl::StringRef& key,
221 const TYPE& value,
222 const ENTRIES&... entries) const;
223
224 /// `push_back` the specified `key` and `value` pair (forming a
225 /// property) into the specified `builder`.
226 template <typename TYPE>
227 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
228 const bslstl::StringRef& key,
229 const TYPE& value) const;
230
231 /// `push_back` the specified `key` and `value` pair (forming a
232 /// property) into the specified `builder`, then call `pushBackHelper`
233 /// with the specified (variadic) entries.
234 template <typename TYPE, typename... ENTRIES>
235 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
236 const bslstl::StringRef& key,
237 const TYPE& value,
238 const ENTRIES&... entries) const;
239
240 /// `push_back` the specified `key` and `value` pair (forming a
241 /// property) into the specified `builder`.
242 template <typename TYPE>
243 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
244 int key,
245 const TYPE& value) const;
246
247 /// `push_back` the specified `key` and `value` pair (forming a
248 /// property) into the specified `builder`, then call `pushBackHelper`
249 /// with the specified (variadic) entries.
250 template <typename TYPE, typename... ENTRIES>
251 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
252 int key,
253 const TYPE& value,
254 const ENTRIES&... entries) const;
255
256// IMPORTANT NOTE: The section below was manually modified to reduce the
257// maximum number of parameters for the array builder to 16.
258#else
259 template <typename TYPE>
260 void pushBackHelper(bdld::DatumArrayBuilder *builder,
261 const TYPE& element
262 ) const;
263
264 template <typename TYPE, typename ELEMENTS_01>
265 void pushBackHelper(bdld::DatumArrayBuilder *builder,
266 const TYPE& element,
267 const ELEMENTS_01& elements_01
268 ) const;
269
270 template <typename TYPE, typename ELEMENTS_01,
271 typename ELEMENTS_02>
272 void pushBackHelper(bdld::DatumArrayBuilder *builder,
273 const TYPE& element,
274 const ELEMENTS_01& elements_01,
275 const ELEMENTS_02& elements_02
276 ) const;
277
278 template <typename TYPE, typename ELEMENTS_01,
279 typename ELEMENTS_02,
280 typename ELEMENTS_03>
281 void pushBackHelper(bdld::DatumArrayBuilder *builder,
282 const TYPE& element,
283 const ELEMENTS_01& elements_01,
284 const ELEMENTS_02& elements_02,
285 const ELEMENTS_03& elements_03
286 ) const;
287
288 template <typename TYPE, typename ELEMENTS_01,
289 typename ELEMENTS_02,
290 typename ELEMENTS_03,
291 typename ELEMENTS_04>
292 void pushBackHelper(bdld::DatumArrayBuilder *builder,
293 const TYPE& element,
294 const ELEMENTS_01& elements_01,
295 const ELEMENTS_02& elements_02,
296 const ELEMENTS_03& elements_03,
297 const ELEMENTS_04& elements_04
298 ) const;
299
300 template <typename TYPE, typename ELEMENTS_01,
301 typename ELEMENTS_02,
302 typename ELEMENTS_03,
303 typename ELEMENTS_04,
304 typename ELEMENTS_05>
305 void pushBackHelper(bdld::DatumArrayBuilder *builder,
306 const TYPE& element,
307 const ELEMENTS_01& elements_01,
308 const ELEMENTS_02& elements_02,
309 const ELEMENTS_03& elements_03,
310 const ELEMENTS_04& elements_04,
311 const ELEMENTS_05& elements_05
312 ) const;
313
314 template <typename TYPE, typename ELEMENTS_01,
315 typename ELEMENTS_02,
316 typename ELEMENTS_03,
317 typename ELEMENTS_04,
318 typename ELEMENTS_05,
319 typename ELEMENTS_06>
320 void pushBackHelper(bdld::DatumArrayBuilder *builder,
321 const TYPE& element,
322 const ELEMENTS_01& elements_01,
323 const ELEMENTS_02& elements_02,
324 const ELEMENTS_03& elements_03,
325 const ELEMENTS_04& elements_04,
326 const ELEMENTS_05& elements_05,
327 const ELEMENTS_06& elements_06
328 ) const;
329
330 template <typename TYPE, typename ELEMENTS_01,
331 typename ELEMENTS_02,
332 typename ELEMENTS_03,
333 typename ELEMENTS_04,
334 typename ELEMENTS_05,
335 typename ELEMENTS_06,
336 typename ELEMENTS_07>
337 void pushBackHelper(bdld::DatumArrayBuilder *builder,
338 const TYPE& element,
339 const ELEMENTS_01& elements_01,
340 const ELEMENTS_02& elements_02,
341 const ELEMENTS_03& elements_03,
342 const ELEMENTS_04& elements_04,
343 const ELEMENTS_05& elements_05,
344 const ELEMENTS_06& elements_06,
345 const ELEMENTS_07& elements_07
346 ) const;
347
348 template <typename TYPE, typename ELEMENTS_01,
349 typename ELEMENTS_02,
350 typename ELEMENTS_03,
351 typename ELEMENTS_04,
352 typename ELEMENTS_05,
353 typename ELEMENTS_06,
354 typename ELEMENTS_07,
355 typename ELEMENTS_08>
356 void pushBackHelper(bdld::DatumArrayBuilder *builder,
357 const TYPE& element,
358 const ELEMENTS_01& elements_01,
359 const ELEMENTS_02& elements_02,
360 const ELEMENTS_03& elements_03,
361 const ELEMENTS_04& elements_04,
362 const ELEMENTS_05& elements_05,
363 const ELEMENTS_06& elements_06,
364 const ELEMENTS_07& elements_07,
365 const ELEMENTS_08& elements_08
366 ) const;
367
368 template <typename TYPE, typename ELEMENTS_01,
369 typename ELEMENTS_02,
370 typename ELEMENTS_03,
371 typename ELEMENTS_04,
372 typename ELEMENTS_05,
373 typename ELEMENTS_06,
374 typename ELEMENTS_07,
375 typename ELEMENTS_08,
376 typename ELEMENTS_09>
377 void pushBackHelper(bdld::DatumArrayBuilder *builder,
378 const TYPE& element,
379 const ELEMENTS_01& elements_01,
380 const ELEMENTS_02& elements_02,
381 const ELEMENTS_03& elements_03,
382 const ELEMENTS_04& elements_04,
383 const ELEMENTS_05& elements_05,
384 const ELEMENTS_06& elements_06,
385 const ELEMENTS_07& elements_07,
386 const ELEMENTS_08& elements_08,
387 const ELEMENTS_09& elements_09
388 ) const;
389
390 template <typename TYPE, typename ELEMENTS_01,
391 typename ELEMENTS_02,
392 typename ELEMENTS_03,
393 typename ELEMENTS_04,
394 typename ELEMENTS_05,
395 typename ELEMENTS_06,
396 typename ELEMENTS_07,
397 typename ELEMENTS_08,
398 typename ELEMENTS_09,
399 typename ELEMENTS_10>
400 void pushBackHelper(bdld::DatumArrayBuilder *builder,
401 const TYPE& element,
402 const ELEMENTS_01& elements_01,
403 const ELEMENTS_02& elements_02,
404 const ELEMENTS_03& elements_03,
405 const ELEMENTS_04& elements_04,
406 const ELEMENTS_05& elements_05,
407 const ELEMENTS_06& elements_06,
408 const ELEMENTS_07& elements_07,
409 const ELEMENTS_08& elements_08,
410 const ELEMENTS_09& elements_09,
411 const ELEMENTS_10& elements_10
412 ) const;
413
414 template <typename TYPE, typename ELEMENTS_01,
415 typename ELEMENTS_02,
416 typename ELEMENTS_03,
417 typename ELEMENTS_04,
418 typename ELEMENTS_05,
419 typename ELEMENTS_06,
420 typename ELEMENTS_07,
421 typename ELEMENTS_08,
422 typename ELEMENTS_09,
423 typename ELEMENTS_10,
424 typename ELEMENTS_11>
425 void pushBackHelper(bdld::DatumArrayBuilder *builder,
426 const TYPE& element,
427 const ELEMENTS_01& elements_01,
428 const ELEMENTS_02& elements_02,
429 const ELEMENTS_03& elements_03,
430 const ELEMENTS_04& elements_04,
431 const ELEMENTS_05& elements_05,
432 const ELEMENTS_06& elements_06,
433 const ELEMENTS_07& elements_07,
434 const ELEMENTS_08& elements_08,
435 const ELEMENTS_09& elements_09,
436 const ELEMENTS_10& elements_10,
437 const ELEMENTS_11& elements_11
438 ) const;
439
440 template <typename TYPE, typename ELEMENTS_01,
441 typename ELEMENTS_02,
442 typename ELEMENTS_03,
443 typename ELEMENTS_04,
444 typename ELEMENTS_05,
445 typename ELEMENTS_06,
446 typename ELEMENTS_07,
447 typename ELEMENTS_08,
448 typename ELEMENTS_09,
449 typename ELEMENTS_10,
450 typename ELEMENTS_11,
451 typename ELEMENTS_12>
452 void pushBackHelper(bdld::DatumArrayBuilder *builder,
453 const TYPE& element,
454 const ELEMENTS_01& elements_01,
455 const ELEMENTS_02& elements_02,
456 const ELEMENTS_03& elements_03,
457 const ELEMENTS_04& elements_04,
458 const ELEMENTS_05& elements_05,
459 const ELEMENTS_06& elements_06,
460 const ELEMENTS_07& elements_07,
461 const ELEMENTS_08& elements_08,
462 const ELEMENTS_09& elements_09,
463 const ELEMENTS_10& elements_10,
464 const ELEMENTS_11& elements_11,
465 const ELEMENTS_12& elements_12
466 ) const;
467
468 template <typename TYPE, typename ELEMENTS_01,
469 typename ELEMENTS_02,
470 typename ELEMENTS_03,
471 typename ELEMENTS_04,
472 typename ELEMENTS_05,
473 typename ELEMENTS_06,
474 typename ELEMENTS_07,
475 typename ELEMENTS_08,
476 typename ELEMENTS_09,
477 typename ELEMENTS_10,
478 typename ELEMENTS_11,
479 typename ELEMENTS_12,
480 typename ELEMENTS_13>
481 void pushBackHelper(bdld::DatumArrayBuilder *builder,
482 const TYPE& element,
483 const ELEMENTS_01& elements_01,
484 const ELEMENTS_02& elements_02,
485 const ELEMENTS_03& elements_03,
486 const ELEMENTS_04& elements_04,
487 const ELEMENTS_05& elements_05,
488 const ELEMENTS_06& elements_06,
489 const ELEMENTS_07& elements_07,
490 const ELEMENTS_08& elements_08,
491 const ELEMENTS_09& elements_09,
492 const ELEMENTS_10& elements_10,
493 const ELEMENTS_11& elements_11,
494 const ELEMENTS_12& elements_12,
495 const ELEMENTS_13& elements_13
496 ) const;
497
498 template <typename TYPE, typename ELEMENTS_01,
499 typename ELEMENTS_02,
500 typename ELEMENTS_03,
501 typename ELEMENTS_04,
502 typename ELEMENTS_05,
503 typename ELEMENTS_06,
504 typename ELEMENTS_07,
505 typename ELEMENTS_08,
506 typename ELEMENTS_09,
507 typename ELEMENTS_10,
508 typename ELEMENTS_11,
509 typename ELEMENTS_12,
510 typename ELEMENTS_13,
511 typename ELEMENTS_14>
512 void pushBackHelper(bdld::DatumArrayBuilder *builder,
513 const TYPE& element,
514 const ELEMENTS_01& elements_01,
515 const ELEMENTS_02& elements_02,
516 const ELEMENTS_03& elements_03,
517 const ELEMENTS_04& elements_04,
518 const ELEMENTS_05& elements_05,
519 const ELEMENTS_06& elements_06,
520 const ELEMENTS_07& elements_07,
521 const ELEMENTS_08& elements_08,
522 const ELEMENTS_09& elements_09,
523 const ELEMENTS_10& elements_10,
524 const ELEMENTS_11& elements_11,
525 const ELEMENTS_12& elements_12,
526 const ELEMENTS_13& elements_13,
527 const ELEMENTS_14& elements_14
528 ) const;
529
530 template <typename TYPE, typename ELEMENTS_01,
531 typename ELEMENTS_02,
532 typename ELEMENTS_03,
533 typename ELEMENTS_04,
534 typename ELEMENTS_05,
535 typename ELEMENTS_06,
536 typename ELEMENTS_07,
537 typename ELEMENTS_08,
538 typename ELEMENTS_09,
539 typename ELEMENTS_10,
540 typename ELEMENTS_11,
541 typename ELEMENTS_12,
542 typename ELEMENTS_13,
543 typename ELEMENTS_14,
544 typename ELEMENTS_15>
545 void pushBackHelper(bdld::DatumArrayBuilder *builder,
546 const TYPE& element,
547 const ELEMENTS_01& elements_01,
548 const ELEMENTS_02& elements_02,
549 const ELEMENTS_03& elements_03,
550 const ELEMENTS_04& elements_04,
551 const ELEMENTS_05& elements_05,
552 const ELEMENTS_06& elements_06,
553 const ELEMENTS_07& elements_07,
554 const ELEMENTS_08& elements_08,
555 const ELEMENTS_09& elements_09,
556 const ELEMENTS_10& elements_10,
557 const ELEMENTS_11& elements_11,
558 const ELEMENTS_12& elements_12,
559 const ELEMENTS_13& elements_13,
560 const ELEMENTS_14& elements_14,
561 const ELEMENTS_15& elements_15
562 ) const;
563
564 template <typename TYPE, typename ELEMENTS_01,
565 typename ELEMENTS_02,
566 typename ELEMENTS_03,
567 typename ELEMENTS_04,
568 typename ELEMENTS_05,
569 typename ELEMENTS_06,
570 typename ELEMENTS_07,
571 typename ELEMENTS_08,
572 typename ELEMENTS_09,
573 typename ELEMENTS_10,
574 typename ELEMENTS_11,
575 typename ELEMENTS_12,
576 typename ELEMENTS_13,
577 typename ELEMENTS_14,
578 typename ELEMENTS_15,
579 typename ELEMENTS_16>
580 void pushBackHelper(bdld::DatumArrayBuilder *builder,
581 const TYPE& element,
582 const ELEMENTS_01& elements_01,
583 const ELEMENTS_02& elements_02,
584 const ELEMENTS_03& elements_03,
585 const ELEMENTS_04& elements_04,
586 const ELEMENTS_05& elements_05,
587 const ELEMENTS_06& elements_06,
588 const ELEMENTS_07& elements_07,
589 const ELEMENTS_08& elements_08,
590 const ELEMENTS_09& elements_09,
591 const ELEMENTS_10& elements_10,
592 const ELEMENTS_11& elements_11,
593 const ELEMENTS_12& elements_12,
594 const ELEMENTS_13& elements_13,
595 const ELEMENTS_14& elements_14,
596 const ELEMENTS_15& elements_15,
597 const ELEMENTS_16& elements_16
598 ) const;
599
600 template <typename TYPE>
601 void pushBackHelper(bdld::DatumMapBuilder *builder,
602 const bslstl::StringRef& key,
603 const TYPE& value
604 ) const;
605
606 template <typename TYPE, typename ENTRIES_01,
607 typename ENTRIES_02>
608 void pushBackHelper(bdld::DatumMapBuilder *builder,
609 const bslstl::StringRef& key,
610 const TYPE& value,
611 const ENTRIES_01& entries_01,
612 const ENTRIES_02& entries_02
613 ) const;
614
615 template <typename TYPE, typename ENTRIES_01,
616 typename ENTRIES_02,
617 typename ENTRIES_03,
618 typename ENTRIES_04>
619 void pushBackHelper(bdld::DatumMapBuilder *builder,
620 const bslstl::StringRef& key,
621 const TYPE& value,
622 const ENTRIES_01& entries_01,
623 const ENTRIES_02& entries_02,
624 const ENTRIES_03& entries_03,
625 const ENTRIES_04& entries_04
626 ) const;
627
628 template <typename TYPE, typename ENTRIES_01,
629 typename ENTRIES_02,
630 typename ENTRIES_03,
631 typename ENTRIES_04,
632 typename ENTRIES_05,
633 typename ENTRIES_06>
634 void pushBackHelper(bdld::DatumMapBuilder *builder,
635 const bslstl::StringRef& key,
636 const TYPE& value,
637 const ENTRIES_01& entries_01,
638 const ENTRIES_02& entries_02,
639 const ENTRIES_03& entries_03,
640 const ENTRIES_04& entries_04,
641 const ENTRIES_05& entries_05,
642 const ENTRIES_06& entries_06
643 ) const;
644
645 template <typename TYPE, typename ENTRIES_01,
646 typename ENTRIES_02,
647 typename ENTRIES_03,
648 typename ENTRIES_04,
649 typename ENTRIES_05,
650 typename ENTRIES_06,
651 typename ENTRIES_07,
652 typename ENTRIES_08>
653 void pushBackHelper(bdld::DatumMapBuilder *builder,
654 const bslstl::StringRef& key,
655 const TYPE& value,
656 const ENTRIES_01& entries_01,
657 const ENTRIES_02& entries_02,
658 const ENTRIES_03& entries_03,
659 const ENTRIES_04& entries_04,
660 const ENTRIES_05& entries_05,
661 const ENTRIES_06& entries_06,
662 const ENTRIES_07& entries_07,
663 const ENTRIES_08& entries_08
664 ) const;
665
666 template <typename TYPE, typename ENTRIES_01,
667 typename ENTRIES_02,
668 typename ENTRIES_03,
669 typename ENTRIES_04,
670 typename ENTRIES_05,
671 typename ENTRIES_06,
672 typename ENTRIES_07,
673 typename ENTRIES_08,
674 typename ENTRIES_09,
675 typename ENTRIES_10>
676 void pushBackHelper(bdld::DatumMapBuilder *builder,
677 const bslstl::StringRef& key,
678 const TYPE& value,
679 const ENTRIES_01& entries_01,
680 const ENTRIES_02& entries_02,
681 const ENTRIES_03& entries_03,
682 const ENTRIES_04& entries_04,
683 const ENTRIES_05& entries_05,
684 const ENTRIES_06& entries_06,
685 const ENTRIES_07& entries_07,
686 const ENTRIES_08& entries_08,
687 const ENTRIES_09& entries_09,
688 const ENTRIES_10& entries_10
689 ) const;
690
691 template <typename TYPE, typename ENTRIES_01,
692 typename ENTRIES_02,
693 typename ENTRIES_03,
694 typename ENTRIES_04,
695 typename ENTRIES_05,
696 typename ENTRIES_06,
697 typename ENTRIES_07,
698 typename ENTRIES_08,
699 typename ENTRIES_09,
700 typename ENTRIES_10,
701 typename ENTRIES_11,
702 typename ENTRIES_12>
703 void pushBackHelper(bdld::DatumMapBuilder *builder,
704 const bslstl::StringRef& key,
705 const TYPE& value,
706 const ENTRIES_01& entries_01,
707 const ENTRIES_02& entries_02,
708 const ENTRIES_03& entries_03,
709 const ENTRIES_04& entries_04,
710 const ENTRIES_05& entries_05,
711 const ENTRIES_06& entries_06,
712 const ENTRIES_07& entries_07,
713 const ENTRIES_08& entries_08,
714 const ENTRIES_09& entries_09,
715 const ENTRIES_10& entries_10,
716 const ENTRIES_11& entries_11,
717 const ENTRIES_12& entries_12
718 ) const;
719
720 template <typename TYPE, typename ENTRIES_01,
721 typename ENTRIES_02,
722 typename ENTRIES_03,
723 typename ENTRIES_04,
724 typename ENTRIES_05,
725 typename ENTRIES_06,
726 typename ENTRIES_07,
727 typename ENTRIES_08,
728 typename ENTRIES_09,
729 typename ENTRIES_10,
730 typename ENTRIES_11,
731 typename ENTRIES_12,
732 typename ENTRIES_13,
733 typename ENTRIES_14>
734 void pushBackHelper(bdld::DatumMapBuilder *builder,
735 const bslstl::StringRef& key,
736 const TYPE& value,
737 const ENTRIES_01& entries_01,
738 const ENTRIES_02& entries_02,
739 const ENTRIES_03& entries_03,
740 const ENTRIES_04& entries_04,
741 const ENTRIES_05& entries_05,
742 const ENTRIES_06& entries_06,
743 const ENTRIES_07& entries_07,
744 const ENTRIES_08& entries_08,
745 const ENTRIES_09& entries_09,
746 const ENTRIES_10& entries_10,
747 const ENTRIES_11& entries_11,
748 const ENTRIES_12& entries_12,
749 const ENTRIES_13& entries_13,
750 const ENTRIES_14& entries_14
751 ) const;
752
753 template <typename TYPE, typename ENTRIES_01,
754 typename ENTRIES_02,
755 typename ENTRIES_03,
756 typename ENTRIES_04,
757 typename ENTRIES_05,
758 typename ENTRIES_06,
759 typename ENTRIES_07,
760 typename ENTRIES_08,
761 typename ENTRIES_09,
762 typename ENTRIES_10,
763 typename ENTRIES_11,
764 typename ENTRIES_12,
765 typename ENTRIES_13,
766 typename ENTRIES_14,
767 typename ENTRIES_15,
768 typename ENTRIES_16>
769 void pushBackHelper(bdld::DatumMapBuilder *builder,
770 const bslstl::StringRef& key,
771 const TYPE& value,
772 const ENTRIES_01& entries_01,
773 const ENTRIES_02& entries_02,
774 const ENTRIES_03& entries_03,
775 const ENTRIES_04& entries_04,
776 const ENTRIES_05& entries_05,
777 const ENTRIES_06& entries_06,
778 const ENTRIES_07& entries_07,
779 const ENTRIES_08& entries_08,
780 const ENTRIES_09& entries_09,
781 const ENTRIES_10& entries_10,
782 const ENTRIES_11& entries_11,
783 const ENTRIES_12& entries_12,
784 const ENTRIES_13& entries_13,
785 const ENTRIES_14& entries_14,
786 const ENTRIES_15& entries_15,
787 const ENTRIES_16& entries_16
788 ) const;
789
790 template <typename TYPE, typename ENTRIES_01,
791 typename ENTRIES_02,
792 typename ENTRIES_03,
793 typename ENTRIES_04,
794 typename ENTRIES_05,
795 typename ENTRIES_06,
796 typename ENTRIES_07,
797 typename ENTRIES_08,
798 typename ENTRIES_09,
799 typename ENTRIES_10,
800 typename ENTRIES_11,
801 typename ENTRIES_12,
802 typename ENTRIES_13,
803 typename ENTRIES_14,
804 typename ENTRIES_15,
805 typename ENTRIES_16,
806 typename ENTRIES_17,
807 typename ENTRIES_18>
808 void pushBackHelper(bdld::DatumMapBuilder *builder,
809 const bslstl::StringRef& key,
810 const TYPE& value,
811 const ENTRIES_01& entries_01,
812 const ENTRIES_02& entries_02,
813 const ENTRIES_03& entries_03,
814 const ENTRIES_04& entries_04,
815 const ENTRIES_05& entries_05,
816 const ENTRIES_06& entries_06,
817 const ENTRIES_07& entries_07,
818 const ENTRIES_08& entries_08,
819 const ENTRIES_09& entries_09,
820 const ENTRIES_10& entries_10,
821 const ENTRIES_11& entries_11,
822 const ENTRIES_12& entries_12,
823 const ENTRIES_13& entries_13,
824 const ENTRIES_14& entries_14,
825 const ENTRIES_15& entries_15,
826 const ENTRIES_16& entries_16,
827 const ENTRIES_17& entries_17,
828 const ENTRIES_18& entries_18
829 ) const;
830
831 template <typename TYPE, typename ENTRIES_01,
832 typename ENTRIES_02,
833 typename ENTRIES_03,
834 typename ENTRIES_04,
835 typename ENTRIES_05,
836 typename ENTRIES_06,
837 typename ENTRIES_07,
838 typename ENTRIES_08,
839 typename ENTRIES_09,
840 typename ENTRIES_10,
841 typename ENTRIES_11,
842 typename ENTRIES_12,
843 typename ENTRIES_13,
844 typename ENTRIES_14,
845 typename ENTRIES_15,
846 typename ENTRIES_16,
847 typename ENTRIES_17,
848 typename ENTRIES_18,
849 typename ENTRIES_19,
850 typename ENTRIES_20>
851 void pushBackHelper(bdld::DatumMapBuilder *builder,
852 const bslstl::StringRef& key,
853 const TYPE& value,
854 const ENTRIES_01& entries_01,
855 const ENTRIES_02& entries_02,
856 const ENTRIES_03& entries_03,
857 const ENTRIES_04& entries_04,
858 const ENTRIES_05& entries_05,
859 const ENTRIES_06& entries_06,
860 const ENTRIES_07& entries_07,
861 const ENTRIES_08& entries_08,
862 const ENTRIES_09& entries_09,
863 const ENTRIES_10& entries_10,
864 const ENTRIES_11& entries_11,
865 const ENTRIES_12& entries_12,
866 const ENTRIES_13& entries_13,
867 const ENTRIES_14& entries_14,
868 const ENTRIES_15& entries_15,
869 const ENTRIES_16& entries_16,
870 const ENTRIES_17& entries_17,
871 const ENTRIES_18& entries_18,
872 const ENTRIES_19& entries_19,
873 const ENTRIES_20& entries_20
874 ) const;
875
876 template <typename TYPE, typename ENTRIES_01,
877 typename ENTRIES_02,
878 typename ENTRIES_03,
879 typename ENTRIES_04,
880 typename ENTRIES_05,
881 typename ENTRIES_06,
882 typename ENTRIES_07,
883 typename ENTRIES_08,
884 typename ENTRIES_09,
885 typename ENTRIES_10,
886 typename ENTRIES_11,
887 typename ENTRIES_12,
888 typename ENTRIES_13,
889 typename ENTRIES_14,
890 typename ENTRIES_15,
891 typename ENTRIES_16,
892 typename ENTRIES_17,
893 typename ENTRIES_18,
894 typename ENTRIES_19,
895 typename ENTRIES_20,
896 typename ENTRIES_21,
897 typename ENTRIES_22>
898 void pushBackHelper(bdld::DatumMapBuilder *builder,
899 const bslstl::StringRef& key,
900 const TYPE& value,
901 const ENTRIES_01& entries_01,
902 const ENTRIES_02& entries_02,
903 const ENTRIES_03& entries_03,
904 const ENTRIES_04& entries_04,
905 const ENTRIES_05& entries_05,
906 const ENTRIES_06& entries_06,
907 const ENTRIES_07& entries_07,
908 const ENTRIES_08& entries_08,
909 const ENTRIES_09& entries_09,
910 const ENTRIES_10& entries_10,
911 const ENTRIES_11& entries_11,
912 const ENTRIES_12& entries_12,
913 const ENTRIES_13& entries_13,
914 const ENTRIES_14& entries_14,
915 const ENTRIES_15& entries_15,
916 const ENTRIES_16& entries_16,
917 const ENTRIES_17& entries_17,
918 const ENTRIES_18& entries_18,
919 const ENTRIES_19& entries_19,
920 const ENTRIES_20& entries_20,
921 const ENTRIES_21& entries_21,
922 const ENTRIES_22& entries_22
923 ) const;
924
925 template <typename TYPE, typename ENTRIES_01,
926 typename ENTRIES_02,
927 typename ENTRIES_03,
928 typename ENTRIES_04,
929 typename ENTRIES_05,
930 typename ENTRIES_06,
931 typename ENTRIES_07,
932 typename ENTRIES_08,
933 typename ENTRIES_09,
934 typename ENTRIES_10,
935 typename ENTRIES_11,
936 typename ENTRIES_12,
937 typename ENTRIES_13,
938 typename ENTRIES_14,
939 typename ENTRIES_15,
940 typename ENTRIES_16,
941 typename ENTRIES_17,
942 typename ENTRIES_18,
943 typename ENTRIES_19,
944 typename ENTRIES_20,
945 typename ENTRIES_21,
946 typename ENTRIES_22,
947 typename ENTRIES_23,
948 typename ENTRIES_24>
949 void pushBackHelper(bdld::DatumMapBuilder *builder,
950 const bslstl::StringRef& key,
951 const TYPE& value,
952 const ENTRIES_01& entries_01,
953 const ENTRIES_02& entries_02,
954 const ENTRIES_03& entries_03,
955 const ENTRIES_04& entries_04,
956 const ENTRIES_05& entries_05,
957 const ENTRIES_06& entries_06,
958 const ENTRIES_07& entries_07,
959 const ENTRIES_08& entries_08,
960 const ENTRIES_09& entries_09,
961 const ENTRIES_10& entries_10,
962 const ENTRIES_11& entries_11,
963 const ENTRIES_12& entries_12,
964 const ENTRIES_13& entries_13,
965 const ENTRIES_14& entries_14,
966 const ENTRIES_15& entries_15,
967 const ENTRIES_16& entries_16,
968 const ENTRIES_17& entries_17,
969 const ENTRIES_18& entries_18,
970 const ENTRIES_19& entries_19,
971 const ENTRIES_20& entries_20,
972 const ENTRIES_21& entries_21,
973 const ENTRIES_22& entries_22,
974 const ENTRIES_23& entries_23,
975 const ENTRIES_24& entries_24
976 ) const;
977
978 template <typename TYPE, typename ENTRIES_01,
979 typename ENTRIES_02,
980 typename ENTRIES_03,
981 typename ENTRIES_04,
982 typename ENTRIES_05,
983 typename ENTRIES_06,
984 typename ENTRIES_07,
985 typename ENTRIES_08,
986 typename ENTRIES_09,
987 typename ENTRIES_10,
988 typename ENTRIES_11,
989 typename ENTRIES_12,
990 typename ENTRIES_13,
991 typename ENTRIES_14,
992 typename ENTRIES_15,
993 typename ENTRIES_16,
994 typename ENTRIES_17,
995 typename ENTRIES_18,
996 typename ENTRIES_19,
997 typename ENTRIES_20,
998 typename ENTRIES_21,
999 typename ENTRIES_22,
1000 typename ENTRIES_23,
1001 typename ENTRIES_24,
1002 typename ENTRIES_25,
1003 typename ENTRIES_26>
1004 void pushBackHelper(bdld::DatumMapBuilder *builder,
1005 const bslstl::StringRef& key,
1006 const TYPE& value,
1007 const ENTRIES_01& entries_01,
1008 const ENTRIES_02& entries_02,
1009 const ENTRIES_03& entries_03,
1010 const ENTRIES_04& entries_04,
1011 const ENTRIES_05& entries_05,
1012 const ENTRIES_06& entries_06,
1013 const ENTRIES_07& entries_07,
1014 const ENTRIES_08& entries_08,
1015 const ENTRIES_09& entries_09,
1016 const ENTRIES_10& entries_10,
1017 const ENTRIES_11& entries_11,
1018 const ENTRIES_12& entries_12,
1019 const ENTRIES_13& entries_13,
1020 const ENTRIES_14& entries_14,
1021 const ENTRIES_15& entries_15,
1022 const ENTRIES_16& entries_16,
1023 const ENTRIES_17& entries_17,
1024 const ENTRIES_18& entries_18,
1025 const ENTRIES_19& entries_19,
1026 const ENTRIES_20& entries_20,
1027 const ENTRIES_21& entries_21,
1028 const ENTRIES_22& entries_22,
1029 const ENTRIES_23& entries_23,
1030 const ENTRIES_24& entries_24,
1031 const ENTRIES_25& entries_25,
1032 const ENTRIES_26& entries_26
1033 ) const;
1034
1035 template <typename TYPE, typename ENTRIES_01,
1036 typename ENTRIES_02,
1037 typename ENTRIES_03,
1038 typename ENTRIES_04,
1039 typename ENTRIES_05,
1040 typename ENTRIES_06,
1041 typename ENTRIES_07,
1042 typename ENTRIES_08,
1043 typename ENTRIES_09,
1044 typename ENTRIES_10,
1045 typename ENTRIES_11,
1046 typename ENTRIES_12,
1047 typename ENTRIES_13,
1048 typename ENTRIES_14,
1049 typename ENTRIES_15,
1050 typename ENTRIES_16,
1051 typename ENTRIES_17,
1052 typename ENTRIES_18,
1053 typename ENTRIES_19,
1054 typename ENTRIES_20,
1055 typename ENTRIES_21,
1056 typename ENTRIES_22,
1057 typename ENTRIES_23,
1058 typename ENTRIES_24,
1059 typename ENTRIES_25,
1060 typename ENTRIES_26,
1061 typename ENTRIES_27,
1062 typename ENTRIES_28>
1063 void pushBackHelper(bdld::DatumMapBuilder *builder,
1064 const bslstl::StringRef& key,
1065 const TYPE& value,
1066 const ENTRIES_01& entries_01,
1067 const ENTRIES_02& entries_02,
1068 const ENTRIES_03& entries_03,
1069 const ENTRIES_04& entries_04,
1070 const ENTRIES_05& entries_05,
1071 const ENTRIES_06& entries_06,
1072 const ENTRIES_07& entries_07,
1073 const ENTRIES_08& entries_08,
1074 const ENTRIES_09& entries_09,
1075 const ENTRIES_10& entries_10,
1076 const ENTRIES_11& entries_11,
1077 const ENTRIES_12& entries_12,
1078 const ENTRIES_13& entries_13,
1079 const ENTRIES_14& entries_14,
1080 const ENTRIES_15& entries_15,
1081 const ENTRIES_16& entries_16,
1082 const ENTRIES_17& entries_17,
1083 const ENTRIES_18& entries_18,
1084 const ENTRIES_19& entries_19,
1085 const ENTRIES_20& entries_20,
1086 const ENTRIES_21& entries_21,
1087 const ENTRIES_22& entries_22,
1088 const ENTRIES_23& entries_23,
1089 const ENTRIES_24& entries_24,
1090 const ENTRIES_25& entries_25,
1091 const ENTRIES_26& entries_26,
1092 const ENTRIES_27& entries_27,
1093 const ENTRIES_28& entries_28
1094 ) const;
1095
1096 template <typename TYPE, typename ENTRIES_01,
1097 typename ENTRIES_02,
1098 typename ENTRIES_03,
1099 typename ENTRIES_04,
1100 typename ENTRIES_05,
1101 typename ENTRIES_06,
1102 typename ENTRIES_07,
1103 typename ENTRIES_08,
1104 typename ENTRIES_09,
1105 typename ENTRIES_10,
1106 typename ENTRIES_11,
1107 typename ENTRIES_12,
1108 typename ENTRIES_13,
1109 typename ENTRIES_14,
1110 typename ENTRIES_15,
1111 typename ENTRIES_16,
1112 typename ENTRIES_17,
1113 typename ENTRIES_18,
1114 typename ENTRIES_19,
1115 typename ENTRIES_20,
1116 typename ENTRIES_21,
1117 typename ENTRIES_22,
1118 typename ENTRIES_23,
1119 typename ENTRIES_24,
1120 typename ENTRIES_25,
1121 typename ENTRIES_26,
1122 typename ENTRIES_27,
1123 typename ENTRIES_28,
1124 typename ENTRIES_29,
1125 typename ENTRIES_30>
1126 void pushBackHelper(bdld::DatumMapBuilder *builder,
1127 const bslstl::StringRef& key,
1128 const TYPE& value,
1129 const ENTRIES_01& entries_01,
1130 const ENTRIES_02& entries_02,
1131 const ENTRIES_03& entries_03,
1132 const ENTRIES_04& entries_04,
1133 const ENTRIES_05& entries_05,
1134 const ENTRIES_06& entries_06,
1135 const ENTRIES_07& entries_07,
1136 const ENTRIES_08& entries_08,
1137 const ENTRIES_09& entries_09,
1138 const ENTRIES_10& entries_10,
1139 const ENTRIES_11& entries_11,
1140 const ENTRIES_12& entries_12,
1141 const ENTRIES_13& entries_13,
1142 const ENTRIES_14& entries_14,
1143 const ENTRIES_15& entries_15,
1144 const ENTRIES_16& entries_16,
1145 const ENTRIES_17& entries_17,
1146 const ENTRIES_18& entries_18,
1147 const ENTRIES_19& entries_19,
1148 const ENTRIES_20& entries_20,
1149 const ENTRIES_21& entries_21,
1150 const ENTRIES_22& entries_22,
1151 const ENTRIES_23& entries_23,
1152 const ENTRIES_24& entries_24,
1153 const ENTRIES_25& entries_25,
1154 const ENTRIES_26& entries_26,
1155 const ENTRIES_27& entries_27,
1156 const ENTRIES_28& entries_28,
1157 const ENTRIES_29& entries_29,
1158 const ENTRIES_30& entries_30
1159 ) const;
1160
1161 template <typename TYPE, typename ENTRIES_01,
1162 typename ENTRIES_02,
1163 typename ENTRIES_03,
1164 typename ENTRIES_04,
1165 typename ENTRIES_05,
1166 typename ENTRIES_06,
1167 typename ENTRIES_07,
1168 typename ENTRIES_08,
1169 typename ENTRIES_09,
1170 typename ENTRIES_10,
1171 typename ENTRIES_11,
1172 typename ENTRIES_12,
1173 typename ENTRIES_13,
1174 typename ENTRIES_14,
1175 typename ENTRIES_15,
1176 typename ENTRIES_16,
1177 typename ENTRIES_17,
1178 typename ENTRIES_18,
1179 typename ENTRIES_19,
1180 typename ENTRIES_20,
1181 typename ENTRIES_21,
1182 typename ENTRIES_22,
1183 typename ENTRIES_23,
1184 typename ENTRIES_24,
1185 typename ENTRIES_25,
1186 typename ENTRIES_26,
1187 typename ENTRIES_27,
1188 typename ENTRIES_28,
1189 typename ENTRIES_29,
1190 typename ENTRIES_30,
1191 typename ENTRIES_31,
1192 typename ENTRIES_32>
1193 void pushBackHelper(bdld::DatumMapBuilder *builder,
1194 const bslstl::StringRef& key,
1195 const TYPE& value,
1196 const ENTRIES_01& entries_01,
1197 const ENTRIES_02& entries_02,
1198 const ENTRIES_03& entries_03,
1199 const ENTRIES_04& entries_04,
1200 const ENTRIES_05& entries_05,
1201 const ENTRIES_06& entries_06,
1202 const ENTRIES_07& entries_07,
1203 const ENTRIES_08& entries_08,
1204 const ENTRIES_09& entries_09,
1205 const ENTRIES_10& entries_10,
1206 const ENTRIES_11& entries_11,
1207 const ENTRIES_12& entries_12,
1208 const ENTRIES_13& entries_13,
1209 const ENTRIES_14& entries_14,
1210 const ENTRIES_15& entries_15,
1211 const ENTRIES_16& entries_16,
1212 const ENTRIES_17& entries_17,
1213 const ENTRIES_18& entries_18,
1214 const ENTRIES_19& entries_19,
1215 const ENTRIES_20& entries_20,
1216 const ENTRIES_21& entries_21,
1217 const ENTRIES_22& entries_22,
1218 const ENTRIES_23& entries_23,
1219 const ENTRIES_24& entries_24,
1220 const ENTRIES_25& entries_25,
1221 const ENTRIES_26& entries_26,
1222 const ENTRIES_27& entries_27,
1223 const ENTRIES_28& entries_28,
1224 const ENTRIES_29& entries_29,
1225 const ENTRIES_30& entries_30,
1226 const ENTRIES_31& entries_31,
1227 const ENTRIES_32& entries_32
1228 ) const;
1229
1230 template <typename TYPE>
1231 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1232 const bslstl::StringRef& key,
1233 const TYPE& value
1234 ) const;
1235
1236 template <typename TYPE, typename ENTRIES_01,
1237 typename ENTRIES_02>
1238 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1239 const bslstl::StringRef& key,
1240 const TYPE& value,
1241 const ENTRIES_01& entries_01,
1242 const ENTRIES_02& entries_02
1243 ) const;
1244
1245 template <typename TYPE, typename ENTRIES_01,
1246 typename ENTRIES_02,
1247 typename ENTRIES_03,
1248 typename ENTRIES_04>
1249 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1250 const bslstl::StringRef& key,
1251 const TYPE& value,
1252 const ENTRIES_01& entries_01,
1253 const ENTRIES_02& entries_02,
1254 const ENTRIES_03& entries_03,
1255 const ENTRIES_04& entries_04
1256 ) const;
1257
1258 template <typename TYPE, typename ENTRIES_01,
1259 typename ENTRIES_02,
1260 typename ENTRIES_03,
1261 typename ENTRIES_04,
1262 typename ENTRIES_05,
1263 typename ENTRIES_06>
1264 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1265 const bslstl::StringRef& key,
1266 const TYPE& value,
1267 const ENTRIES_01& entries_01,
1268 const ENTRIES_02& entries_02,
1269 const ENTRIES_03& entries_03,
1270 const ENTRIES_04& entries_04,
1271 const ENTRIES_05& entries_05,
1272 const ENTRIES_06& entries_06
1273 ) const;
1274
1275 template <typename TYPE, typename ENTRIES_01,
1276 typename ENTRIES_02,
1277 typename ENTRIES_03,
1278 typename ENTRIES_04,
1279 typename ENTRIES_05,
1280 typename ENTRIES_06,
1281 typename ENTRIES_07,
1282 typename ENTRIES_08>
1283 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1284 const bslstl::StringRef& key,
1285 const TYPE& value,
1286 const ENTRIES_01& entries_01,
1287 const ENTRIES_02& entries_02,
1288 const ENTRIES_03& entries_03,
1289 const ENTRIES_04& entries_04,
1290 const ENTRIES_05& entries_05,
1291 const ENTRIES_06& entries_06,
1292 const ENTRIES_07& entries_07,
1293 const ENTRIES_08& entries_08
1294 ) const;
1295
1296 template <typename TYPE, typename ENTRIES_01,
1297 typename ENTRIES_02,
1298 typename ENTRIES_03,
1299 typename ENTRIES_04,
1300 typename ENTRIES_05,
1301 typename ENTRIES_06,
1302 typename ENTRIES_07,
1303 typename ENTRIES_08,
1304 typename ENTRIES_09,
1305 typename ENTRIES_10>
1306 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1307 const bslstl::StringRef& key,
1308 const TYPE& value,
1309 const ENTRIES_01& entries_01,
1310 const ENTRIES_02& entries_02,
1311 const ENTRIES_03& entries_03,
1312 const ENTRIES_04& entries_04,
1313 const ENTRIES_05& entries_05,
1314 const ENTRIES_06& entries_06,
1315 const ENTRIES_07& entries_07,
1316 const ENTRIES_08& entries_08,
1317 const ENTRIES_09& entries_09,
1318 const ENTRIES_10& entries_10
1319 ) const;
1320
1321 template <typename TYPE, typename ENTRIES_01,
1322 typename ENTRIES_02,
1323 typename ENTRIES_03,
1324 typename ENTRIES_04,
1325 typename ENTRIES_05,
1326 typename ENTRIES_06,
1327 typename ENTRIES_07,
1328 typename ENTRIES_08,
1329 typename ENTRIES_09,
1330 typename ENTRIES_10,
1331 typename ENTRIES_11,
1332 typename ENTRIES_12>
1333 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1334 const bslstl::StringRef& key,
1335 const TYPE& value,
1336 const ENTRIES_01& entries_01,
1337 const ENTRIES_02& entries_02,
1338 const ENTRIES_03& entries_03,
1339 const ENTRIES_04& entries_04,
1340 const ENTRIES_05& entries_05,
1341 const ENTRIES_06& entries_06,
1342 const ENTRIES_07& entries_07,
1343 const ENTRIES_08& entries_08,
1344 const ENTRIES_09& entries_09,
1345 const ENTRIES_10& entries_10,
1346 const ENTRIES_11& entries_11,
1347 const ENTRIES_12& entries_12
1348 ) const;
1349
1350 template <typename TYPE, typename ENTRIES_01,
1351 typename ENTRIES_02,
1352 typename ENTRIES_03,
1353 typename ENTRIES_04,
1354 typename ENTRIES_05,
1355 typename ENTRIES_06,
1356 typename ENTRIES_07,
1357 typename ENTRIES_08,
1358 typename ENTRIES_09,
1359 typename ENTRIES_10,
1360 typename ENTRIES_11,
1361 typename ENTRIES_12,
1362 typename ENTRIES_13,
1363 typename ENTRIES_14>
1364 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1365 const bslstl::StringRef& key,
1366 const TYPE& value,
1367 const ENTRIES_01& entries_01,
1368 const ENTRIES_02& entries_02,
1369 const ENTRIES_03& entries_03,
1370 const ENTRIES_04& entries_04,
1371 const ENTRIES_05& entries_05,
1372 const ENTRIES_06& entries_06,
1373 const ENTRIES_07& entries_07,
1374 const ENTRIES_08& entries_08,
1375 const ENTRIES_09& entries_09,
1376 const ENTRIES_10& entries_10,
1377 const ENTRIES_11& entries_11,
1378 const ENTRIES_12& entries_12,
1379 const ENTRIES_13& entries_13,
1380 const ENTRIES_14& entries_14
1381 ) const;
1382
1383 template <typename TYPE, typename ENTRIES_01,
1384 typename ENTRIES_02,
1385 typename ENTRIES_03,
1386 typename ENTRIES_04,
1387 typename ENTRIES_05,
1388 typename ENTRIES_06,
1389 typename ENTRIES_07,
1390 typename ENTRIES_08,
1391 typename ENTRIES_09,
1392 typename ENTRIES_10,
1393 typename ENTRIES_11,
1394 typename ENTRIES_12,
1395 typename ENTRIES_13,
1396 typename ENTRIES_14,
1397 typename ENTRIES_15,
1398 typename ENTRIES_16>
1399 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1400 const bslstl::StringRef& key,
1401 const TYPE& value,
1402 const ENTRIES_01& entries_01,
1403 const ENTRIES_02& entries_02,
1404 const ENTRIES_03& entries_03,
1405 const ENTRIES_04& entries_04,
1406 const ENTRIES_05& entries_05,
1407 const ENTRIES_06& entries_06,
1408 const ENTRIES_07& entries_07,
1409 const ENTRIES_08& entries_08,
1410 const ENTRIES_09& entries_09,
1411 const ENTRIES_10& entries_10,
1412 const ENTRIES_11& entries_11,
1413 const ENTRIES_12& entries_12,
1414 const ENTRIES_13& entries_13,
1415 const ENTRIES_14& entries_14,
1416 const ENTRIES_15& entries_15,
1417 const ENTRIES_16& entries_16
1418 ) const;
1419
1420 template <typename TYPE, typename ENTRIES_01,
1421 typename ENTRIES_02,
1422 typename ENTRIES_03,
1423 typename ENTRIES_04,
1424 typename ENTRIES_05,
1425 typename ENTRIES_06,
1426 typename ENTRIES_07,
1427 typename ENTRIES_08,
1428 typename ENTRIES_09,
1429 typename ENTRIES_10,
1430 typename ENTRIES_11,
1431 typename ENTRIES_12,
1432 typename ENTRIES_13,
1433 typename ENTRIES_14,
1434 typename ENTRIES_15,
1435 typename ENTRIES_16,
1436 typename ENTRIES_17,
1437 typename ENTRIES_18>
1438 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1439 const bslstl::StringRef& key,
1440 const TYPE& value,
1441 const ENTRIES_01& entries_01,
1442 const ENTRIES_02& entries_02,
1443 const ENTRIES_03& entries_03,
1444 const ENTRIES_04& entries_04,
1445 const ENTRIES_05& entries_05,
1446 const ENTRIES_06& entries_06,
1447 const ENTRIES_07& entries_07,
1448 const ENTRIES_08& entries_08,
1449 const ENTRIES_09& entries_09,
1450 const ENTRIES_10& entries_10,
1451 const ENTRIES_11& entries_11,
1452 const ENTRIES_12& entries_12,
1453 const ENTRIES_13& entries_13,
1454 const ENTRIES_14& entries_14,
1455 const ENTRIES_15& entries_15,
1456 const ENTRIES_16& entries_16,
1457 const ENTRIES_17& entries_17,
1458 const ENTRIES_18& entries_18
1459 ) const;
1460
1461 template <typename TYPE, typename ENTRIES_01,
1462 typename ENTRIES_02,
1463 typename ENTRIES_03,
1464 typename ENTRIES_04,
1465 typename ENTRIES_05,
1466 typename ENTRIES_06,
1467 typename ENTRIES_07,
1468 typename ENTRIES_08,
1469 typename ENTRIES_09,
1470 typename ENTRIES_10,
1471 typename ENTRIES_11,
1472 typename ENTRIES_12,
1473 typename ENTRIES_13,
1474 typename ENTRIES_14,
1475 typename ENTRIES_15,
1476 typename ENTRIES_16,
1477 typename ENTRIES_17,
1478 typename ENTRIES_18,
1479 typename ENTRIES_19,
1480 typename ENTRIES_20>
1481 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1482 const bslstl::StringRef& key,
1483 const TYPE& value,
1484 const ENTRIES_01& entries_01,
1485 const ENTRIES_02& entries_02,
1486 const ENTRIES_03& entries_03,
1487 const ENTRIES_04& entries_04,
1488 const ENTRIES_05& entries_05,
1489 const ENTRIES_06& entries_06,
1490 const ENTRIES_07& entries_07,
1491 const ENTRIES_08& entries_08,
1492 const ENTRIES_09& entries_09,
1493 const ENTRIES_10& entries_10,
1494 const ENTRIES_11& entries_11,
1495 const ENTRIES_12& entries_12,
1496 const ENTRIES_13& entries_13,
1497 const ENTRIES_14& entries_14,
1498 const ENTRIES_15& entries_15,
1499 const ENTRIES_16& entries_16,
1500 const ENTRIES_17& entries_17,
1501 const ENTRIES_18& entries_18,
1502 const ENTRIES_19& entries_19,
1503 const ENTRIES_20& entries_20
1504 ) const;
1505
1506 template <typename TYPE, typename ENTRIES_01,
1507 typename ENTRIES_02,
1508 typename ENTRIES_03,
1509 typename ENTRIES_04,
1510 typename ENTRIES_05,
1511 typename ENTRIES_06,
1512 typename ENTRIES_07,
1513 typename ENTRIES_08,
1514 typename ENTRIES_09,
1515 typename ENTRIES_10,
1516 typename ENTRIES_11,
1517 typename ENTRIES_12,
1518 typename ENTRIES_13,
1519 typename ENTRIES_14,
1520 typename ENTRIES_15,
1521 typename ENTRIES_16,
1522 typename ENTRIES_17,
1523 typename ENTRIES_18,
1524 typename ENTRIES_19,
1525 typename ENTRIES_20,
1526 typename ENTRIES_21,
1527 typename ENTRIES_22>
1528 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1529 const bslstl::StringRef& key,
1530 const TYPE& value,
1531 const ENTRIES_01& entries_01,
1532 const ENTRIES_02& entries_02,
1533 const ENTRIES_03& entries_03,
1534 const ENTRIES_04& entries_04,
1535 const ENTRIES_05& entries_05,
1536 const ENTRIES_06& entries_06,
1537 const ENTRIES_07& entries_07,
1538 const ENTRIES_08& entries_08,
1539 const ENTRIES_09& entries_09,
1540 const ENTRIES_10& entries_10,
1541 const ENTRIES_11& entries_11,
1542 const ENTRIES_12& entries_12,
1543 const ENTRIES_13& entries_13,
1544 const ENTRIES_14& entries_14,
1545 const ENTRIES_15& entries_15,
1546 const ENTRIES_16& entries_16,
1547 const ENTRIES_17& entries_17,
1548 const ENTRIES_18& entries_18,
1549 const ENTRIES_19& entries_19,
1550 const ENTRIES_20& entries_20,
1551 const ENTRIES_21& entries_21,
1552 const ENTRIES_22& entries_22
1553 ) const;
1554
1555 template <typename TYPE, typename ENTRIES_01,
1556 typename ENTRIES_02,
1557 typename ENTRIES_03,
1558 typename ENTRIES_04,
1559 typename ENTRIES_05,
1560 typename ENTRIES_06,
1561 typename ENTRIES_07,
1562 typename ENTRIES_08,
1563 typename ENTRIES_09,
1564 typename ENTRIES_10,
1565 typename ENTRIES_11,
1566 typename ENTRIES_12,
1567 typename ENTRIES_13,
1568 typename ENTRIES_14,
1569 typename ENTRIES_15,
1570 typename ENTRIES_16,
1571 typename ENTRIES_17,
1572 typename ENTRIES_18,
1573 typename ENTRIES_19,
1574 typename ENTRIES_20,
1575 typename ENTRIES_21,
1576 typename ENTRIES_22,
1577 typename ENTRIES_23,
1578 typename ENTRIES_24>
1579 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1580 const bslstl::StringRef& key,
1581 const TYPE& value,
1582 const ENTRIES_01& entries_01,
1583 const ENTRIES_02& entries_02,
1584 const ENTRIES_03& entries_03,
1585 const ENTRIES_04& entries_04,
1586 const ENTRIES_05& entries_05,
1587 const ENTRIES_06& entries_06,
1588 const ENTRIES_07& entries_07,
1589 const ENTRIES_08& entries_08,
1590 const ENTRIES_09& entries_09,
1591 const ENTRIES_10& entries_10,
1592 const ENTRIES_11& entries_11,
1593 const ENTRIES_12& entries_12,
1594 const ENTRIES_13& entries_13,
1595 const ENTRIES_14& entries_14,
1596 const ENTRIES_15& entries_15,
1597 const ENTRIES_16& entries_16,
1598 const ENTRIES_17& entries_17,
1599 const ENTRIES_18& entries_18,
1600 const ENTRIES_19& entries_19,
1601 const ENTRIES_20& entries_20,
1602 const ENTRIES_21& entries_21,
1603 const ENTRIES_22& entries_22,
1604 const ENTRIES_23& entries_23,
1605 const ENTRIES_24& entries_24
1606 ) const;
1607
1608 template <typename TYPE, typename ENTRIES_01,
1609 typename ENTRIES_02,
1610 typename ENTRIES_03,
1611 typename ENTRIES_04,
1612 typename ENTRIES_05,
1613 typename ENTRIES_06,
1614 typename ENTRIES_07,
1615 typename ENTRIES_08,
1616 typename ENTRIES_09,
1617 typename ENTRIES_10,
1618 typename ENTRIES_11,
1619 typename ENTRIES_12,
1620 typename ENTRIES_13,
1621 typename ENTRIES_14,
1622 typename ENTRIES_15,
1623 typename ENTRIES_16,
1624 typename ENTRIES_17,
1625 typename ENTRIES_18,
1626 typename ENTRIES_19,
1627 typename ENTRIES_20,
1628 typename ENTRIES_21,
1629 typename ENTRIES_22,
1630 typename ENTRIES_23,
1631 typename ENTRIES_24,
1632 typename ENTRIES_25,
1633 typename ENTRIES_26>
1634 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1635 const bslstl::StringRef& key,
1636 const TYPE& value,
1637 const ENTRIES_01& entries_01,
1638 const ENTRIES_02& entries_02,
1639 const ENTRIES_03& entries_03,
1640 const ENTRIES_04& entries_04,
1641 const ENTRIES_05& entries_05,
1642 const ENTRIES_06& entries_06,
1643 const ENTRIES_07& entries_07,
1644 const ENTRIES_08& entries_08,
1645 const ENTRIES_09& entries_09,
1646 const ENTRIES_10& entries_10,
1647 const ENTRIES_11& entries_11,
1648 const ENTRIES_12& entries_12,
1649 const ENTRIES_13& entries_13,
1650 const ENTRIES_14& entries_14,
1651 const ENTRIES_15& entries_15,
1652 const ENTRIES_16& entries_16,
1653 const ENTRIES_17& entries_17,
1654 const ENTRIES_18& entries_18,
1655 const ENTRIES_19& entries_19,
1656 const ENTRIES_20& entries_20,
1657 const ENTRIES_21& entries_21,
1658 const ENTRIES_22& entries_22,
1659 const ENTRIES_23& entries_23,
1660 const ENTRIES_24& entries_24,
1661 const ENTRIES_25& entries_25,
1662 const ENTRIES_26& entries_26
1663 ) const;
1664
1665 template <typename TYPE, typename ENTRIES_01,
1666 typename ENTRIES_02,
1667 typename ENTRIES_03,
1668 typename ENTRIES_04,
1669 typename ENTRIES_05,
1670 typename ENTRIES_06,
1671 typename ENTRIES_07,
1672 typename ENTRIES_08,
1673 typename ENTRIES_09,
1674 typename ENTRIES_10,
1675 typename ENTRIES_11,
1676 typename ENTRIES_12,
1677 typename ENTRIES_13,
1678 typename ENTRIES_14,
1679 typename ENTRIES_15,
1680 typename ENTRIES_16,
1681 typename ENTRIES_17,
1682 typename ENTRIES_18,
1683 typename ENTRIES_19,
1684 typename ENTRIES_20,
1685 typename ENTRIES_21,
1686 typename ENTRIES_22,
1687 typename ENTRIES_23,
1688 typename ENTRIES_24,
1689 typename ENTRIES_25,
1690 typename ENTRIES_26,
1691 typename ENTRIES_27,
1692 typename ENTRIES_28>
1693 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1694 const bslstl::StringRef& key,
1695 const TYPE& value,
1696 const ENTRIES_01& entries_01,
1697 const ENTRIES_02& entries_02,
1698 const ENTRIES_03& entries_03,
1699 const ENTRIES_04& entries_04,
1700 const ENTRIES_05& entries_05,
1701 const ENTRIES_06& entries_06,
1702 const ENTRIES_07& entries_07,
1703 const ENTRIES_08& entries_08,
1704 const ENTRIES_09& entries_09,
1705 const ENTRIES_10& entries_10,
1706 const ENTRIES_11& entries_11,
1707 const ENTRIES_12& entries_12,
1708 const ENTRIES_13& entries_13,
1709 const ENTRIES_14& entries_14,
1710 const ENTRIES_15& entries_15,
1711 const ENTRIES_16& entries_16,
1712 const ENTRIES_17& entries_17,
1713 const ENTRIES_18& entries_18,
1714 const ENTRIES_19& entries_19,
1715 const ENTRIES_20& entries_20,
1716 const ENTRIES_21& entries_21,
1717 const ENTRIES_22& entries_22,
1718 const ENTRIES_23& entries_23,
1719 const ENTRIES_24& entries_24,
1720 const ENTRIES_25& entries_25,
1721 const ENTRIES_26& entries_26,
1722 const ENTRIES_27& entries_27,
1723 const ENTRIES_28& entries_28
1724 ) const;
1725
1726 template <typename TYPE, typename ENTRIES_01,
1727 typename ENTRIES_02,
1728 typename ENTRIES_03,
1729 typename ENTRIES_04,
1730 typename ENTRIES_05,
1731 typename ENTRIES_06,
1732 typename ENTRIES_07,
1733 typename ENTRIES_08,
1734 typename ENTRIES_09,
1735 typename ENTRIES_10,
1736 typename ENTRIES_11,
1737 typename ENTRIES_12,
1738 typename ENTRIES_13,
1739 typename ENTRIES_14,
1740 typename ENTRIES_15,
1741 typename ENTRIES_16,
1742 typename ENTRIES_17,
1743 typename ENTRIES_18,
1744 typename ENTRIES_19,
1745 typename ENTRIES_20,
1746 typename ENTRIES_21,
1747 typename ENTRIES_22,
1748 typename ENTRIES_23,
1749 typename ENTRIES_24,
1750 typename ENTRIES_25,
1751 typename ENTRIES_26,
1752 typename ENTRIES_27,
1753 typename ENTRIES_28,
1754 typename ENTRIES_29,
1755 typename ENTRIES_30>
1756 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1757 const bslstl::StringRef& key,
1758 const TYPE& value,
1759 const ENTRIES_01& entries_01,
1760 const ENTRIES_02& entries_02,
1761 const ENTRIES_03& entries_03,
1762 const ENTRIES_04& entries_04,
1763 const ENTRIES_05& entries_05,
1764 const ENTRIES_06& entries_06,
1765 const ENTRIES_07& entries_07,
1766 const ENTRIES_08& entries_08,
1767 const ENTRIES_09& entries_09,
1768 const ENTRIES_10& entries_10,
1769 const ENTRIES_11& entries_11,
1770 const ENTRIES_12& entries_12,
1771 const ENTRIES_13& entries_13,
1772 const ENTRIES_14& entries_14,
1773 const ENTRIES_15& entries_15,
1774 const ENTRIES_16& entries_16,
1775 const ENTRIES_17& entries_17,
1776 const ENTRIES_18& entries_18,
1777 const ENTRIES_19& entries_19,
1778 const ENTRIES_20& entries_20,
1779 const ENTRIES_21& entries_21,
1780 const ENTRIES_22& entries_22,
1781 const ENTRIES_23& entries_23,
1782 const ENTRIES_24& entries_24,
1783 const ENTRIES_25& entries_25,
1784 const ENTRIES_26& entries_26,
1785 const ENTRIES_27& entries_27,
1786 const ENTRIES_28& entries_28,
1787 const ENTRIES_29& entries_29,
1788 const ENTRIES_30& entries_30
1789 ) const;
1790
1791 template <typename TYPE, typename ENTRIES_01,
1792 typename ENTRIES_02,
1793 typename ENTRIES_03,
1794 typename ENTRIES_04,
1795 typename ENTRIES_05,
1796 typename ENTRIES_06,
1797 typename ENTRIES_07,
1798 typename ENTRIES_08,
1799 typename ENTRIES_09,
1800 typename ENTRIES_10,
1801 typename ENTRIES_11,
1802 typename ENTRIES_12,
1803 typename ENTRIES_13,
1804 typename ENTRIES_14,
1805 typename ENTRIES_15,
1806 typename ENTRIES_16,
1807 typename ENTRIES_17,
1808 typename ENTRIES_18,
1809 typename ENTRIES_19,
1810 typename ENTRIES_20,
1811 typename ENTRIES_21,
1812 typename ENTRIES_22,
1813 typename ENTRIES_23,
1814 typename ENTRIES_24,
1815 typename ENTRIES_25,
1816 typename ENTRIES_26,
1817 typename ENTRIES_27,
1818 typename ENTRIES_28,
1819 typename ENTRIES_29,
1820 typename ENTRIES_30,
1821 typename ENTRIES_31,
1822 typename ENTRIES_32>
1823 void pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
1824 const bslstl::StringRef& key,
1825 const TYPE& value,
1826 const ENTRIES_01& entries_01,
1827 const ENTRIES_02& entries_02,
1828 const ENTRIES_03& entries_03,
1829 const ENTRIES_04& entries_04,
1830 const ENTRIES_05& entries_05,
1831 const ENTRIES_06& entries_06,
1832 const ENTRIES_07& entries_07,
1833 const ENTRIES_08& entries_08,
1834 const ENTRIES_09& entries_09,
1835 const ENTRIES_10& entries_10,
1836 const ENTRIES_11& entries_11,
1837 const ENTRIES_12& entries_12,
1838 const ENTRIES_13& entries_13,
1839 const ENTRIES_14& entries_14,
1840 const ENTRIES_15& entries_15,
1841 const ENTRIES_16& entries_16,
1842 const ENTRIES_17& entries_17,
1843 const ENTRIES_18& entries_18,
1844 const ENTRIES_19& entries_19,
1845 const ENTRIES_20& entries_20,
1846 const ENTRIES_21& entries_21,
1847 const ENTRIES_22& entries_22,
1848 const ENTRIES_23& entries_23,
1849 const ENTRIES_24& entries_24,
1850 const ENTRIES_25& entries_25,
1851 const ENTRIES_26& entries_26,
1852 const ENTRIES_27& entries_27,
1853 const ENTRIES_28& entries_28,
1854 const ENTRIES_29& entries_29,
1855 const ENTRIES_30& entries_30,
1856 const ENTRIES_31& entries_31,
1857 const ENTRIES_32& entries_32
1858 ) const;
1859
1860
1861 template <typename TYPE>
1862 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1863 int key,
1864 const TYPE& value
1865 ) const;
1866
1867 template <typename TYPE, typename ENTRY_01>
1868 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1869 int key,
1870 const TYPE& value,
1871 int key_01,
1872 const ENTRY_01& entry_01
1873 ) const;
1874
1875 template <typename TYPE, typename ENTRY_01,
1876 typename ENTRY_02>
1877 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1878 int key,
1879 const TYPE& value,
1880 int key_01,
1881 const ENTRY_01& entry_01,
1882 int key_02,
1883 const ENTRY_02& entry_02
1884 ) const;
1885
1886 template <typename TYPE, typename ENTRY_01,
1887 typename ENTRY_02,
1888 typename ENTRY_03>
1889 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1890 int key,
1891 const TYPE& value,
1892 int key_01,
1893 const ENTRY_01& entry_01,
1894 int key_02,
1895 const ENTRY_02& entry_02,
1896 int key_03,
1897 const ENTRY_03& entry_03
1898 ) const;
1899
1900 template <typename TYPE, typename ENTRY_01,
1901 typename ENTRY_02,
1902 typename ENTRY_03,
1903 typename ENTRY_04>
1904 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1905 int key,
1906 const TYPE& value,
1907 int key_01,
1908 const ENTRY_01& entry_01,
1909 int key_02,
1910 const ENTRY_02& entry_02,
1911 int key_03,
1912 const ENTRY_03& entry_03,
1913 int key_04,
1914 const ENTRY_04& entry_04
1915 ) const;
1916
1917 template <typename TYPE, typename ENTRY_01,
1918 typename ENTRY_02,
1919 typename ENTRY_03,
1920 typename ENTRY_04,
1921 typename ENTRY_05>
1922 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1923 int key,
1924 const TYPE& value,
1925 int key_01,
1926 const ENTRY_01& entry_01,
1927 int key_02,
1928 const ENTRY_02& entry_02,
1929 int key_03,
1930 const ENTRY_03& entry_03,
1931 int key_04,
1932 const ENTRY_04& entry_04,
1933 int key_05,
1934 const ENTRY_05& entry_05
1935 ) const;
1936
1937 template <typename TYPE, typename ENTRY_01,
1938 typename ENTRY_02,
1939 typename ENTRY_03,
1940 typename ENTRY_04,
1941 typename ENTRY_05,
1942 typename ENTRY_06>
1943 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1944 int key,
1945 const TYPE& value,
1946 int key_01,
1947 const ENTRY_01& entry_01,
1948 int key_02,
1949 const ENTRY_02& entry_02,
1950 int key_03,
1951 const ENTRY_03& entry_03,
1952 int key_04,
1953 const ENTRY_04& entry_04,
1954 int key_05,
1955 const ENTRY_05& entry_05,
1956 int key_06,
1957 const ENTRY_06& entry_06
1958 ) const;
1959
1960 template <typename TYPE, typename ENTRY_01,
1961 typename ENTRY_02,
1962 typename ENTRY_03,
1963 typename ENTRY_04,
1964 typename ENTRY_05,
1965 typename ENTRY_06,
1966 typename ENTRY_07>
1967 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1968 int key,
1969 const TYPE& value,
1970 int key_01,
1971 const ENTRY_01& entry_01,
1972 int key_02,
1973 const ENTRY_02& entry_02,
1974 int key_03,
1975 const ENTRY_03& entry_03,
1976 int key_04,
1977 const ENTRY_04& entry_04,
1978 int key_05,
1979 const ENTRY_05& entry_05,
1980 int key_06,
1981 const ENTRY_06& entry_06,
1982 int key_07,
1983 const ENTRY_07& entry_07
1984 ) const;
1985
1986 template <typename TYPE, typename ENTRY_01,
1987 typename ENTRY_02,
1988 typename ENTRY_03,
1989 typename ENTRY_04,
1990 typename ENTRY_05,
1991 typename ENTRY_06,
1992 typename ENTRY_07,
1993 typename ENTRY_08>
1994 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
1995 int key,
1996 const TYPE& value,
1997 int key_01,
1998 const ENTRY_01& entry_01,
1999 int key_02,
2000 const ENTRY_02& entry_02,
2001 int key_03,
2002 const ENTRY_03& entry_03,
2003 int key_04,
2004 const ENTRY_04& entry_04,
2005 int key_05,
2006 const ENTRY_05& entry_05,
2007 int key_06,
2008 const ENTRY_06& entry_06,
2009 int key_07,
2010 const ENTRY_07& entry_07,
2011 int key_08,
2012 const ENTRY_08& entry_08
2013 ) const;
2014
2015 template <typename TYPE, typename ENTRY_01,
2016 typename ENTRY_02,
2017 typename ENTRY_03,
2018 typename ENTRY_04,
2019 typename ENTRY_05,
2020 typename ENTRY_06,
2021 typename ENTRY_07,
2022 typename ENTRY_08,
2023 typename ENTRY_09>
2024 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2025 int key,
2026 const TYPE& value,
2027 int key_01,
2028 const ENTRY_01& entry_01,
2029 int key_02,
2030 const ENTRY_02& entry_02,
2031 int key_03,
2032 const ENTRY_03& entry_03,
2033 int key_04,
2034 const ENTRY_04& entry_04,
2035 int key_05,
2036 const ENTRY_05& entry_05,
2037 int key_06,
2038 const ENTRY_06& entry_06,
2039 int key_07,
2040 const ENTRY_07& entry_07,
2041 int key_08,
2042 const ENTRY_08& entry_08,
2043 int key_09,
2044 const ENTRY_09& entry_09
2045 ) const;
2046
2047 template <typename TYPE, typename ENTRY_01,
2048 typename ENTRY_02,
2049 typename ENTRY_03,
2050 typename ENTRY_04,
2051 typename ENTRY_05,
2052 typename ENTRY_06,
2053 typename ENTRY_07,
2054 typename ENTRY_08,
2055 typename ENTRY_09,
2056 typename ENTRY_10>
2057 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2058 int key,
2059 const TYPE& value,
2060 int key_01,
2061 const ENTRY_01& entry_01,
2062 int key_02,
2063 const ENTRY_02& entry_02,
2064 int key_03,
2065 const ENTRY_03& entry_03,
2066 int key_04,
2067 const ENTRY_04& entry_04,
2068 int key_05,
2069 const ENTRY_05& entry_05,
2070 int key_06,
2071 const ENTRY_06& entry_06,
2072 int key_07,
2073 const ENTRY_07& entry_07,
2074 int key_08,
2075 const ENTRY_08& entry_08,
2076 int key_09,
2077 const ENTRY_09& entry_09,
2078 int key_10,
2079 const ENTRY_10& entry_10
2080 ) const;
2081
2082 template <typename TYPE, typename ENTRY_01,
2083 typename ENTRY_02,
2084 typename ENTRY_03,
2085 typename ENTRY_04,
2086 typename ENTRY_05,
2087 typename ENTRY_06,
2088 typename ENTRY_07,
2089 typename ENTRY_08,
2090 typename ENTRY_09,
2091 typename ENTRY_10,
2092 typename ENTRY_11>
2093 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2094 int key,
2095 const TYPE& value,
2096 int key_01,
2097 const ENTRY_01& entry_01,
2098 int key_02,
2099 const ENTRY_02& entry_02,
2100 int key_03,
2101 const ENTRY_03& entry_03,
2102 int key_04,
2103 const ENTRY_04& entry_04,
2104 int key_05,
2105 const ENTRY_05& entry_05,
2106 int key_06,
2107 const ENTRY_06& entry_06,
2108 int key_07,
2109 const ENTRY_07& entry_07,
2110 int key_08,
2111 const ENTRY_08& entry_08,
2112 int key_09,
2113 const ENTRY_09& entry_09,
2114 int key_10,
2115 const ENTRY_10& entry_10,
2116 int key_11,
2117 const ENTRY_11& entry_11
2118 ) const;
2119
2120 template <typename TYPE, typename ENTRY_01,
2121 typename ENTRY_02,
2122 typename ENTRY_03,
2123 typename ENTRY_04,
2124 typename ENTRY_05,
2125 typename ENTRY_06,
2126 typename ENTRY_07,
2127 typename ENTRY_08,
2128 typename ENTRY_09,
2129 typename ENTRY_10,
2130 typename ENTRY_11,
2131 typename ENTRY_12>
2132 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2133 int key,
2134 const TYPE& value,
2135 int key_01,
2136 const ENTRY_01& entry_01,
2137 int key_02,
2138 const ENTRY_02& entry_02,
2139 int key_03,
2140 const ENTRY_03& entry_03,
2141 int key_04,
2142 const ENTRY_04& entry_04,
2143 int key_05,
2144 const ENTRY_05& entry_05,
2145 int key_06,
2146 const ENTRY_06& entry_06,
2147 int key_07,
2148 const ENTRY_07& entry_07,
2149 int key_08,
2150 const ENTRY_08& entry_08,
2151 int key_09,
2152 const ENTRY_09& entry_09,
2153 int key_10,
2154 const ENTRY_10& entry_10,
2155 int key_11,
2156 const ENTRY_11& entry_11,
2157 int key_12,
2158 const ENTRY_12& entry_12
2159 ) const;
2160
2161 template <typename TYPE, typename ENTRY_01,
2162 typename ENTRY_02,
2163 typename ENTRY_03,
2164 typename ENTRY_04,
2165 typename ENTRY_05,
2166 typename ENTRY_06,
2167 typename ENTRY_07,
2168 typename ENTRY_08,
2169 typename ENTRY_09,
2170 typename ENTRY_10,
2171 typename ENTRY_11,
2172 typename ENTRY_12,
2173 typename ENTRY_13>
2174 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2175 int key,
2176 const TYPE& value,
2177 int key_01,
2178 const ENTRY_01& entry_01,
2179 int key_02,
2180 const ENTRY_02& entry_02,
2181 int key_03,
2182 const ENTRY_03& entry_03,
2183 int key_04,
2184 const ENTRY_04& entry_04,
2185 int key_05,
2186 const ENTRY_05& entry_05,
2187 int key_06,
2188 const ENTRY_06& entry_06,
2189 int key_07,
2190 const ENTRY_07& entry_07,
2191 int key_08,
2192 const ENTRY_08& entry_08,
2193 int key_09,
2194 const ENTRY_09& entry_09,
2195 int key_10,
2196 const ENTRY_10& entry_10,
2197 int key_11,
2198 const ENTRY_11& entry_11,
2199 int key_12,
2200 const ENTRY_12& entry_12,
2201 int key_13,
2202 const ENTRY_13& entry_13
2203 ) const;
2204
2205 template <typename TYPE, typename ENTRY_01,
2206 typename ENTRY_02,
2207 typename ENTRY_03,
2208 typename ENTRY_04,
2209 typename ENTRY_05,
2210 typename ENTRY_06,
2211 typename ENTRY_07,
2212 typename ENTRY_08,
2213 typename ENTRY_09,
2214 typename ENTRY_10,
2215 typename ENTRY_11,
2216 typename ENTRY_12,
2217 typename ENTRY_13,
2218 typename ENTRY_14>
2219 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2220 int key,
2221 const TYPE& value,
2222 int key_01,
2223 const ENTRY_01& entry_01,
2224 int key_02,
2225 const ENTRY_02& entry_02,
2226 int key_03,
2227 const ENTRY_03& entry_03,
2228 int key_04,
2229 const ENTRY_04& entry_04,
2230 int key_05,
2231 const ENTRY_05& entry_05,
2232 int key_06,
2233 const ENTRY_06& entry_06,
2234 int key_07,
2235 const ENTRY_07& entry_07,
2236 int key_08,
2237 const ENTRY_08& entry_08,
2238 int key_09,
2239 const ENTRY_09& entry_09,
2240 int key_10,
2241 const ENTRY_10& entry_10,
2242 int key_11,
2243 const ENTRY_11& entry_11,
2244 int key_12,
2245 const ENTRY_12& entry_12,
2246 int key_13,
2247 const ENTRY_13& entry_13,
2248 int key_14,
2249 const ENTRY_14& entry_14
2250 ) const;
2251
2252 template <typename TYPE, typename ENTRY_01,
2253 typename ENTRY_02,
2254 typename ENTRY_03,
2255 typename ENTRY_04,
2256 typename ENTRY_05,
2257 typename ENTRY_06,
2258 typename ENTRY_07,
2259 typename ENTRY_08,
2260 typename ENTRY_09,
2261 typename ENTRY_10,
2262 typename ENTRY_11,
2263 typename ENTRY_12,
2264 typename ENTRY_13,
2265 typename ENTRY_14,
2266 typename ENTRY_15>
2267 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2268 int key,
2269 const TYPE& value,
2270 int key_01,
2271 const ENTRY_01& entry_01,
2272 int key_02,
2273 const ENTRY_02& entry_02,
2274 int key_03,
2275 const ENTRY_03& entry_03,
2276 int key_04,
2277 const ENTRY_04& entry_04,
2278 int key_05,
2279 const ENTRY_05& entry_05,
2280 int key_06,
2281 const ENTRY_06& entry_06,
2282 int key_07,
2283 const ENTRY_07& entry_07,
2284 int key_08,
2285 const ENTRY_08& entry_08,
2286 int key_09,
2287 const ENTRY_09& entry_09,
2288 int key_10,
2289 const ENTRY_10& entry_10,
2290 int key_11,
2291 const ENTRY_11& entry_11,
2292 int key_12,
2293 const ENTRY_12& entry_12,
2294 int key_13,
2295 const ENTRY_13& entry_13,
2296 int key_14,
2297 const ENTRY_14& entry_14,
2298 int key_15,
2299 const ENTRY_15& entry_15
2300 ) const;
2301
2302 template <typename TYPE, typename ENTRY_01,
2303 typename ENTRY_02,
2304 typename ENTRY_03,
2305 typename ENTRY_04,
2306 typename ENTRY_05,
2307 typename ENTRY_06,
2308 typename ENTRY_07,
2309 typename ENTRY_08,
2310 typename ENTRY_09,
2311 typename ENTRY_10,
2312 typename ENTRY_11,
2313 typename ENTRY_12,
2314 typename ENTRY_13,
2315 typename ENTRY_14,
2316 typename ENTRY_15,
2317 typename ENTRY_16>
2318 void pushBackHelper(bdld::DatumIntMapBuilder *builder,
2319 int key,
2320 const TYPE& value,
2321 int key_01,
2322 const ENTRY_01& entry_01,
2323 int key_02,
2324 const ENTRY_02& entry_02,
2325 int key_03,
2326 const ENTRY_03& entry_03,
2327 int key_04,
2328 const ENTRY_04& entry_04,
2329 int key_05,
2330 const ENTRY_05& entry_05,
2331 int key_06,
2332 const ENTRY_06& entry_06,
2333 int key_07,
2334 const ENTRY_07& entry_07,
2335 int key_08,
2336 const ENTRY_08& entry_08,
2337 int key_09,
2338 const ENTRY_09& entry_09,
2339 int key_10,
2340 const ENTRY_10& entry_10,
2341 int key_11,
2342 const ENTRY_11& entry_11,
2343 int key_12,
2344 const ENTRY_12& entry_12,
2345 int key_13,
2346 const ENTRY_13& entry_13,
2347 int key_14,
2348 const ENTRY_14& entry_14,
2349 int key_15,
2350 const ENTRY_15& entry_15,
2351 int key_16,
2352 const ENTRY_16& entry_16
2353 ) const;
2354
2355#endif
2356
2357 public:
2358 // CREATORS
2359
2360 /// Create a new `DatumMaker` object that uses the specified `allocator`
2361 /// (e.g., the address of a `bslma::Allocator` object) to supply memory
2362 /// for the created `bdld::Datum` objects.
2363 explicit DatumMaker(const AllocatorType& allocator);
2364
2365 // ACCESSORS
2366
2367 /// Return `get_allocator().mechanism()`.
2368 ///
2369 /// @deprecated Use @ref get_allocator() instead.
2370 bslma::Allocator *allocator() const;
2371
2372 /// Return the allocator used by this object to supply memory.
2373 ///
2374 /// \note Note that if no allocator was supplied at construction the default
2375 /// allocator in effect at construction is used.
2377
2378 /// Return a `bdld::Datum` having a null value.
2379 bdld::Datum operator()() const;
2380
2381 /// Return a `bdld::Datum` having the specified `value`.
2382 ///
2383 /// \note Note that where possible, no memory is allocated - array are returned as
2384 /// references.
2385 /// \note Note that `DatumMapRef` and `DatumIntMapRef` are not
2386 /// supported at the moment.
2387 bdld::Datum operator()(const bslmf::Nil& value) const;
2388 bdld::Datum operator()(int value) const;
2389 bdld::Datum operator()(double value) const;
2390 bdld::Datum operator()(bool value) const;
2391 bdld::Datum operator()(const bdld::DatumError& value) const;
2392 bdld::Datum operator()(const bdlt::Date& value) const;
2393 bdld::Datum operator()(const bdlt::Time& value) const;
2394 bdld::Datum operator()(const bdlt::Datetime& value) const;
2395 bdld::Datum operator()(const bdlt::DatetimeInterval& value) const;
2398 bdld::Datum operator()(const bdld::DatumUdt& value) const;
2399 bdld::Datum operator()(const bdld::Datum& value) const;
2400 bdld::Datum operator()(const bdld::DatumArrayRef& value) const;
2403
2404 /// Return a `bdld::Datum` having the specified `size` number of `elements`.
2405 ///
2406 /// \note Note that where possible, no memory is allocated -
2407 /// arrays are returned as references.
2408 /// \note Note that `DatumMapRef` and
2409 /// `DatumIntMapRef` are not supported at the moment.
2410 bdld::Datum operator()(const bdld::Datum *elements,
2411 int size) const;
2413 int size,
2414 bool sorted = false) const;
2416 const bdld::DatumIntMapEntry *elements,
2417 int size,
2418 bool sorted = false) const;
2419
2420 /// Return a `bdld::Datum` having the specified `value`. The returned
2421 /// `bdld::Datum` object will contain a deep-copy of `value`.
2422 bdld::Datum operator()(const bslstl::StringRef& value) const;
2423 bdld::Datum operator()(const char *value) const;
2424
2425 /// Return a `bdld::Datum` having the specified `value`, or null if
2426 /// `value` is unset.
2427 template <class TYPE>
2429
2430 /// Return a binary `bdld::Datum` having a value that is the copy of the
2431 /// memory area described by the specified `pointer` and `size`.
2432 bdld::Datum bin(const void *pointer, bsl::size_t size) const;
2433
2434#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
2435 /// Return a `bdld::Datum` having an array value of the specified
2436 /// `elements`.
2437 template <typename... ELEMENTS>
2438 bdld::Datum a(const ELEMENTS&... elements) const;
2439
2440// IMPORTANT NOTE: The section below was manually modified to reduce the
2441// maximum number of parameters to 16.
2442#else
2443 bdld::Datum a() const;
2444
2445 template <typename ELEMENTS_01>
2446 bdld::Datum a(const ELEMENTS_01& elements_01
2447 ) const;
2448
2449 template <typename ELEMENTS_01,
2450 typename ELEMENTS_02>
2451 bdld::Datum a(const ELEMENTS_01& elements_01,
2452 const ELEMENTS_02& elements_02
2453 ) const;
2454
2455 template <typename ELEMENTS_01,
2456 typename ELEMENTS_02,
2457 typename ELEMENTS_03>
2458 bdld::Datum a(const ELEMENTS_01& elements_01,
2459 const ELEMENTS_02& elements_02,
2460 const ELEMENTS_03& elements_03
2461 ) const;
2462
2463 template <typename ELEMENTS_01,
2464 typename ELEMENTS_02,
2465 typename ELEMENTS_03,
2466 typename ELEMENTS_04>
2467 bdld::Datum a(const ELEMENTS_01& elements_01,
2468 const ELEMENTS_02& elements_02,
2469 const ELEMENTS_03& elements_03,
2470 const ELEMENTS_04& elements_04
2471 ) const;
2472
2473 template <typename ELEMENTS_01,
2474 typename ELEMENTS_02,
2475 typename ELEMENTS_03,
2476 typename ELEMENTS_04,
2477 typename ELEMENTS_05>
2478 bdld::Datum a(const ELEMENTS_01& elements_01,
2479 const ELEMENTS_02& elements_02,
2480 const ELEMENTS_03& elements_03,
2481 const ELEMENTS_04& elements_04,
2482 const ELEMENTS_05& elements_05
2483 ) const;
2484
2485 template <typename ELEMENTS_01,
2486 typename ELEMENTS_02,
2487 typename ELEMENTS_03,
2488 typename ELEMENTS_04,
2489 typename ELEMENTS_05,
2490 typename ELEMENTS_06>
2491 bdld::Datum a(const ELEMENTS_01& elements_01,
2492 const ELEMENTS_02& elements_02,
2493 const ELEMENTS_03& elements_03,
2494 const ELEMENTS_04& elements_04,
2495 const ELEMENTS_05& elements_05,
2496 const ELEMENTS_06& elements_06
2497 ) const;
2498
2499 template <typename ELEMENTS_01,
2500 typename ELEMENTS_02,
2501 typename ELEMENTS_03,
2502 typename ELEMENTS_04,
2503 typename ELEMENTS_05,
2504 typename ELEMENTS_06,
2505 typename ELEMENTS_07>
2506 bdld::Datum a(const ELEMENTS_01& elements_01,
2507 const ELEMENTS_02& elements_02,
2508 const ELEMENTS_03& elements_03,
2509 const ELEMENTS_04& elements_04,
2510 const ELEMENTS_05& elements_05,
2511 const ELEMENTS_06& elements_06,
2512 const ELEMENTS_07& elements_07
2513 ) const;
2514
2515 template <typename ELEMENTS_01,
2516 typename ELEMENTS_02,
2517 typename ELEMENTS_03,
2518 typename ELEMENTS_04,
2519 typename ELEMENTS_05,
2520 typename ELEMENTS_06,
2521 typename ELEMENTS_07,
2522 typename ELEMENTS_08>
2523 bdld::Datum a(const ELEMENTS_01& elements_01,
2524 const ELEMENTS_02& elements_02,
2525 const ELEMENTS_03& elements_03,
2526 const ELEMENTS_04& elements_04,
2527 const ELEMENTS_05& elements_05,
2528 const ELEMENTS_06& elements_06,
2529 const ELEMENTS_07& elements_07,
2530 const ELEMENTS_08& elements_08
2531 ) const;
2532
2533 template <typename ELEMENTS_01,
2534 typename ELEMENTS_02,
2535 typename ELEMENTS_03,
2536 typename ELEMENTS_04,
2537 typename ELEMENTS_05,
2538 typename ELEMENTS_06,
2539 typename ELEMENTS_07,
2540 typename ELEMENTS_08,
2541 typename ELEMENTS_09>
2542 bdld::Datum a(const ELEMENTS_01& elements_01,
2543 const ELEMENTS_02& elements_02,
2544 const ELEMENTS_03& elements_03,
2545 const ELEMENTS_04& elements_04,
2546 const ELEMENTS_05& elements_05,
2547 const ELEMENTS_06& elements_06,
2548 const ELEMENTS_07& elements_07,
2549 const ELEMENTS_08& elements_08,
2550 const ELEMENTS_09& elements_09
2551 ) const;
2552
2553 template <typename ELEMENTS_01,
2554 typename ELEMENTS_02,
2555 typename ELEMENTS_03,
2556 typename ELEMENTS_04,
2557 typename ELEMENTS_05,
2558 typename ELEMENTS_06,
2559 typename ELEMENTS_07,
2560 typename ELEMENTS_08,
2561 typename ELEMENTS_09,
2562 typename ELEMENTS_10>
2563 bdld::Datum a(const ELEMENTS_01& elements_01,
2564 const ELEMENTS_02& elements_02,
2565 const ELEMENTS_03& elements_03,
2566 const ELEMENTS_04& elements_04,
2567 const ELEMENTS_05& elements_05,
2568 const ELEMENTS_06& elements_06,
2569 const ELEMENTS_07& elements_07,
2570 const ELEMENTS_08& elements_08,
2571 const ELEMENTS_09& elements_09,
2572 const ELEMENTS_10& elements_10
2573 ) const;
2574
2575 template <typename ELEMENTS_01,
2576 typename ELEMENTS_02,
2577 typename ELEMENTS_03,
2578 typename ELEMENTS_04,
2579 typename ELEMENTS_05,
2580 typename ELEMENTS_06,
2581 typename ELEMENTS_07,
2582 typename ELEMENTS_08,
2583 typename ELEMENTS_09,
2584 typename ELEMENTS_10,
2585 typename ELEMENTS_11>
2586 bdld::Datum a(const ELEMENTS_01& elements_01,
2587 const ELEMENTS_02& elements_02,
2588 const ELEMENTS_03& elements_03,
2589 const ELEMENTS_04& elements_04,
2590 const ELEMENTS_05& elements_05,
2591 const ELEMENTS_06& elements_06,
2592 const ELEMENTS_07& elements_07,
2593 const ELEMENTS_08& elements_08,
2594 const ELEMENTS_09& elements_09,
2595 const ELEMENTS_10& elements_10,
2596 const ELEMENTS_11& elements_11
2597 ) const;
2598
2599 template <typename ELEMENTS_01,
2600 typename ELEMENTS_02,
2601 typename ELEMENTS_03,
2602 typename ELEMENTS_04,
2603 typename ELEMENTS_05,
2604 typename ELEMENTS_06,
2605 typename ELEMENTS_07,
2606 typename ELEMENTS_08,
2607 typename ELEMENTS_09,
2608 typename ELEMENTS_10,
2609 typename ELEMENTS_11,
2610 typename ELEMENTS_12>
2611 bdld::Datum a(const ELEMENTS_01& elements_01,
2612 const ELEMENTS_02& elements_02,
2613 const ELEMENTS_03& elements_03,
2614 const ELEMENTS_04& elements_04,
2615 const ELEMENTS_05& elements_05,
2616 const ELEMENTS_06& elements_06,
2617 const ELEMENTS_07& elements_07,
2618 const ELEMENTS_08& elements_08,
2619 const ELEMENTS_09& elements_09,
2620 const ELEMENTS_10& elements_10,
2621 const ELEMENTS_11& elements_11,
2622 const ELEMENTS_12& elements_12
2623 ) const;
2624
2625 template <typename ELEMENTS_01,
2626 typename ELEMENTS_02,
2627 typename ELEMENTS_03,
2628 typename ELEMENTS_04,
2629 typename ELEMENTS_05,
2630 typename ELEMENTS_06,
2631 typename ELEMENTS_07,
2632 typename ELEMENTS_08,
2633 typename ELEMENTS_09,
2634 typename ELEMENTS_10,
2635 typename ELEMENTS_11,
2636 typename ELEMENTS_12,
2637 typename ELEMENTS_13>
2638 bdld::Datum a(const ELEMENTS_01& elements_01,
2639 const ELEMENTS_02& elements_02,
2640 const ELEMENTS_03& elements_03,
2641 const ELEMENTS_04& elements_04,
2642 const ELEMENTS_05& elements_05,
2643 const ELEMENTS_06& elements_06,
2644 const ELEMENTS_07& elements_07,
2645 const ELEMENTS_08& elements_08,
2646 const ELEMENTS_09& elements_09,
2647 const ELEMENTS_10& elements_10,
2648 const ELEMENTS_11& elements_11,
2649 const ELEMENTS_12& elements_12,
2650 const ELEMENTS_13& elements_13
2651 ) const;
2652
2653 template <typename ELEMENTS_01,
2654 typename ELEMENTS_02,
2655 typename ELEMENTS_03,
2656 typename ELEMENTS_04,
2657 typename ELEMENTS_05,
2658 typename ELEMENTS_06,
2659 typename ELEMENTS_07,
2660 typename ELEMENTS_08,
2661 typename ELEMENTS_09,
2662 typename ELEMENTS_10,
2663 typename ELEMENTS_11,
2664 typename ELEMENTS_12,
2665 typename ELEMENTS_13,
2666 typename ELEMENTS_14>
2667 bdld::Datum a(const ELEMENTS_01& elements_01,
2668 const ELEMENTS_02& elements_02,
2669 const ELEMENTS_03& elements_03,
2670 const ELEMENTS_04& elements_04,
2671 const ELEMENTS_05& elements_05,
2672 const ELEMENTS_06& elements_06,
2673 const ELEMENTS_07& elements_07,
2674 const ELEMENTS_08& elements_08,
2675 const ELEMENTS_09& elements_09,
2676 const ELEMENTS_10& elements_10,
2677 const ELEMENTS_11& elements_11,
2678 const ELEMENTS_12& elements_12,
2679 const ELEMENTS_13& elements_13,
2680 const ELEMENTS_14& elements_14
2681 ) const;
2682
2683 template <typename ELEMENTS_01,
2684 typename ELEMENTS_02,
2685 typename ELEMENTS_03,
2686 typename ELEMENTS_04,
2687 typename ELEMENTS_05,
2688 typename ELEMENTS_06,
2689 typename ELEMENTS_07,
2690 typename ELEMENTS_08,
2691 typename ELEMENTS_09,
2692 typename ELEMENTS_10,
2693 typename ELEMENTS_11,
2694 typename ELEMENTS_12,
2695 typename ELEMENTS_13,
2696 typename ELEMENTS_14,
2697 typename ELEMENTS_15>
2698 bdld::Datum a(const ELEMENTS_01& elements_01,
2699 const ELEMENTS_02& elements_02,
2700 const ELEMENTS_03& elements_03,
2701 const ELEMENTS_04& elements_04,
2702 const ELEMENTS_05& elements_05,
2703 const ELEMENTS_06& elements_06,
2704 const ELEMENTS_07& elements_07,
2705 const ELEMENTS_08& elements_08,
2706 const ELEMENTS_09& elements_09,
2707 const ELEMENTS_10& elements_10,
2708 const ELEMENTS_11& elements_11,
2709 const ELEMENTS_12& elements_12,
2710 const ELEMENTS_13& elements_13,
2711 const ELEMENTS_14& elements_14,
2712 const ELEMENTS_15& elements_15
2713 ) const;
2714
2715 template <typename ELEMENTS_01,
2716 typename ELEMENTS_02,
2717 typename ELEMENTS_03,
2718 typename ELEMENTS_04,
2719 typename ELEMENTS_05,
2720 typename ELEMENTS_06,
2721 typename ELEMENTS_07,
2722 typename ELEMENTS_08,
2723 typename ELEMENTS_09,
2724 typename ELEMENTS_10,
2725 typename ELEMENTS_11,
2726 typename ELEMENTS_12,
2727 typename ELEMENTS_13,
2728 typename ELEMENTS_14,
2729 typename ELEMENTS_15,
2730 typename ELEMENTS_16>
2731 bdld::Datum a(const ELEMENTS_01& elements_01,
2732 const ELEMENTS_02& elements_02,
2733 const ELEMENTS_03& elements_03,
2734 const ELEMENTS_04& elements_04,
2735 const ELEMENTS_05& elements_05,
2736 const ELEMENTS_06& elements_06,
2737 const ELEMENTS_07& elements_07,
2738 const ELEMENTS_08& elements_08,
2739 const ELEMENTS_09& elements_09,
2740 const ELEMENTS_10& elements_10,
2741 const ELEMENTS_11& elements_11,
2742 const ELEMENTS_12& elements_12,
2743 const ELEMENTS_13& elements_13,
2744 const ELEMENTS_14& elements_14,
2745 const ELEMENTS_15& elements_15,
2746 const ELEMENTS_16& elements_16
2747 ) const;
2748
2749#endif
2750
2751#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
2752 /// Return a `bdld::Datum` object containing a map of the specified
2753 /// `entries`. The `entries` are supplied as pairs (odd number of
2754 /// `sizeof...(entries)` being an error) where the first specified
2755 /// element is the key, and the second is its corresponding value.
2756 ///
2757 /// \pre The behavior is undefined if the same key is supplied more than once.
2758 template <typename... ENTRIES>
2759 bdld::Datum m(const ENTRIES&... entries) const;
2760#else
2761 bdld::Datum m() const;
2762
2763 template <typename ENTRIES_01,
2764 typename ENTRIES_02>
2765 bdld::Datum m(const ENTRIES_01& entrie_01,
2766 const ENTRIES_02& entrie_02
2767 ) const;
2768
2769 template <typename ENTRIES_01,
2770 typename ENTRIES_02,
2771 typename ENTRIES_03,
2772 typename ENTRIES_04>
2773 bdld::Datum m(const ENTRIES_01& entries_01,
2774 const ENTRIES_02& entries_02,
2775 const ENTRIES_03& entries_03,
2776 const ENTRIES_04& entries_04
2777 ) const;
2778
2779 template <typename ENTRIES_01,
2780 typename ENTRIES_02,
2781 typename ENTRIES_03,
2782 typename ENTRIES_04,
2783 typename ENTRIES_05,
2784 typename ENTRIES_06>
2785 bdld::Datum m(const ENTRIES_01& entries_01,
2786 const ENTRIES_02& entries_02,
2787 const ENTRIES_03& entries_03,
2788 const ENTRIES_04& entries_04,
2789 const ENTRIES_05& entries_05,
2790 const ENTRIES_06& entries_06
2791 ) const;
2792
2793 template <typename ENTRIES_01,
2794 typename ENTRIES_02,
2795 typename ENTRIES_03,
2796 typename ENTRIES_04,
2797 typename ENTRIES_05,
2798 typename ENTRIES_06,
2799 typename ENTRIES_07,
2800 typename ENTRIES_08>
2801 bdld::Datum m(const ENTRIES_01& entries_01,
2802 const ENTRIES_02& entries_02,
2803 const ENTRIES_03& entries_03,
2804 const ENTRIES_04& entries_04,
2805 const ENTRIES_05& entries_05,
2806 const ENTRIES_06& entries_06,
2807 const ENTRIES_07& entries_07,
2808 const ENTRIES_08& entries_08
2809 ) const;
2810
2811 template <typename ENTRIES_01,
2812 typename ENTRIES_02,
2813 typename ENTRIES_03,
2814 typename ENTRIES_04,
2815 typename ENTRIES_05,
2816 typename ENTRIES_06,
2817 typename ENTRIES_07,
2818 typename ENTRIES_08,
2819 typename ENTRIES_09,
2820 typename ENTRIES_10>
2821 bdld::Datum m(const ENTRIES_01& entries_01,
2822 const ENTRIES_02& entries_02,
2823 const ENTRIES_03& entries_03,
2824 const ENTRIES_04& entries_04,
2825 const ENTRIES_05& entries_05,
2826 const ENTRIES_06& entries_06,
2827 const ENTRIES_07& entries_07,
2828 const ENTRIES_08& entries_08,
2829 const ENTRIES_09& entries_09,
2830 const ENTRIES_10& entries_10
2831 ) const;
2832
2833 template <typename ENTRIES_01,
2834 typename ENTRIES_02,
2835 typename ENTRIES_03,
2836 typename ENTRIES_04,
2837 typename ENTRIES_05,
2838 typename ENTRIES_06,
2839 typename ENTRIES_07,
2840 typename ENTRIES_08,
2841 typename ENTRIES_09,
2842 typename ENTRIES_10,
2843 typename ENTRIES_11,
2844 typename ENTRIES_12>
2845 bdld::Datum m(const ENTRIES_01& entries_01,
2846 const ENTRIES_02& entries_02,
2847 const ENTRIES_03& entries_03,
2848 const ENTRIES_04& entries_04,
2849 const ENTRIES_05& entries_05,
2850 const ENTRIES_06& entries_06,
2851 const ENTRIES_07& entries_07,
2852 const ENTRIES_08& entries_08,
2853 const ENTRIES_09& entries_09,
2854 const ENTRIES_10& entries_10,
2855 const ENTRIES_11& entries_11,
2856 const ENTRIES_12& entries_12
2857 ) const;
2858
2859 template <typename ENTRIES_01,
2860 typename ENTRIES_02,
2861 typename ENTRIES_03,
2862 typename ENTRIES_04,
2863 typename ENTRIES_05,
2864 typename ENTRIES_06,
2865 typename ENTRIES_07,
2866 typename ENTRIES_08,
2867 typename ENTRIES_09,
2868 typename ENTRIES_10,
2869 typename ENTRIES_11,
2870 typename ENTRIES_12,
2871 typename ENTRIES_13,
2872 typename ENTRIES_14>
2873 bdld::Datum m(const ENTRIES_01& entries_01,
2874 const ENTRIES_02& entries_02,
2875 const ENTRIES_03& entries_03,
2876 const ENTRIES_04& entries_04,
2877 const ENTRIES_05& entries_05,
2878 const ENTRIES_06& entries_06,
2879 const ENTRIES_07& entries_07,
2880 const ENTRIES_08& entries_08,
2881 const ENTRIES_09& entries_09,
2882 const ENTRIES_10& entries_10,
2883 const ENTRIES_11& entries_11,
2884 const ENTRIES_12& entries_12,
2885 const ENTRIES_13& entries_13,
2886 const ENTRIES_14& entries_14
2887 ) const;
2888
2889 template <typename ENTRIES_01,
2890 typename ENTRIES_02,
2891 typename ENTRIES_03,
2892 typename ENTRIES_04,
2893 typename ENTRIES_05,
2894 typename ENTRIES_06,
2895 typename ENTRIES_07,
2896 typename ENTRIES_08,
2897 typename ENTRIES_09,
2898 typename ENTRIES_10,
2899 typename ENTRIES_11,
2900 typename ENTRIES_12,
2901 typename ENTRIES_13,
2902 typename ENTRIES_14,
2903 typename ENTRIES_15,
2904 typename ENTRIES_16>
2905 bdld::Datum m(const ENTRIES_01& entries_01,
2906 const ENTRIES_02& entries_02,
2907 const ENTRIES_03& entries_03,
2908 const ENTRIES_04& entries_04,
2909 const ENTRIES_05& entries_05,
2910 const ENTRIES_06& entries_06,
2911 const ENTRIES_07& entries_07,
2912 const ENTRIES_08& entries_08,
2913 const ENTRIES_09& entries_09,
2914 const ENTRIES_10& entries_10,
2915 const ENTRIES_11& entries_11,
2916 const ENTRIES_12& entries_12,
2917 const ENTRIES_13& entries_13,
2918 const ENTRIES_14& entries_14,
2919 const ENTRIES_15& entries_15,
2920 const ENTRIES_16& entries_16
2921 ) const;
2922
2923 template <typename ENTRIES_01,
2924 typename ENTRIES_02,
2925 typename ENTRIES_03,
2926 typename ENTRIES_04,
2927 typename ENTRIES_05,
2928 typename ENTRIES_06,
2929 typename ENTRIES_07,
2930 typename ENTRIES_08,
2931 typename ENTRIES_09,
2932 typename ENTRIES_10,
2933 typename ENTRIES_11,
2934 typename ENTRIES_12,
2935 typename ENTRIES_13,
2936 typename ENTRIES_14,
2937 typename ENTRIES_15,
2938 typename ENTRIES_16,
2939 typename ENTRIES_17,
2940 typename ENTRIES_18>
2941 bdld::Datum m(const ENTRIES_01& entries_01,
2942 const ENTRIES_02& entries_02,
2943 const ENTRIES_03& entries_03,
2944 const ENTRIES_04& entries_04,
2945 const ENTRIES_05& entries_05,
2946 const ENTRIES_06& entries_06,
2947 const ENTRIES_07& entries_07,
2948 const ENTRIES_08& entries_08,
2949 const ENTRIES_09& entries_09,
2950 const ENTRIES_10& entries_10,
2951 const ENTRIES_11& entries_11,
2952 const ENTRIES_12& entries_12,
2953 const ENTRIES_13& entries_13,
2954 const ENTRIES_14& entries_14,
2955 const ENTRIES_15& entries_15,
2956 const ENTRIES_16& entries_16,
2957 const ENTRIES_17& entries_17,
2958 const ENTRIES_18& entries_18
2959 ) const;
2960
2961 template <typename ENTRIES_01,
2962 typename ENTRIES_02,
2963 typename ENTRIES_03,
2964 typename ENTRIES_04,
2965 typename ENTRIES_05,
2966 typename ENTRIES_06,
2967 typename ENTRIES_07,
2968 typename ENTRIES_08,
2969 typename ENTRIES_09,
2970 typename ENTRIES_10,
2971 typename ENTRIES_11,
2972 typename ENTRIES_12,
2973 typename ENTRIES_13,
2974 typename ENTRIES_14,
2975 typename ENTRIES_15,
2976 typename ENTRIES_16,
2977 typename ENTRIES_17,
2978 typename ENTRIES_18,
2979 typename ENTRIES_19,
2980 typename ENTRIES_20>
2981 bdld::Datum m(const ENTRIES_01& entries_01,
2982 const ENTRIES_02& entries_02,
2983 const ENTRIES_03& entries_03,
2984 const ENTRIES_04& entries_04,
2985 const ENTRIES_05& entries_05,
2986 const ENTRIES_06& entries_06,
2987 const ENTRIES_07& entries_07,
2988 const ENTRIES_08& entries_08,
2989 const ENTRIES_09& entries_09,
2990 const ENTRIES_10& entries_10,
2991 const ENTRIES_11& entries_11,
2992 const ENTRIES_12& entries_12,
2993 const ENTRIES_13& entries_13,
2994 const ENTRIES_14& entries_14,
2995 const ENTRIES_15& entries_15,
2996 const ENTRIES_16& entries_16,
2997 const ENTRIES_17& entries_17,
2998 const ENTRIES_18& entries_18,
2999 const ENTRIES_19& entries_19,
3000 const ENTRIES_20& entries_20
3001 ) const;
3002
3003 template <typename ENTRIES_01,
3004 typename ENTRIES_02,
3005 typename ENTRIES_03,
3006 typename ENTRIES_04,
3007 typename ENTRIES_05,
3008 typename ENTRIES_06,
3009 typename ENTRIES_07,
3010 typename ENTRIES_08,
3011 typename ENTRIES_09,
3012 typename ENTRIES_10,
3013 typename ENTRIES_11,
3014 typename ENTRIES_12,
3015 typename ENTRIES_13,
3016 typename ENTRIES_14,
3017 typename ENTRIES_15,
3018 typename ENTRIES_16,
3019 typename ENTRIES_17,
3020 typename ENTRIES_18,
3021 typename ENTRIES_19,
3022 typename ENTRIES_20,
3023 typename ENTRIES_21,
3024 typename ENTRIES_22>
3025 bdld::Datum m(const ENTRIES_01& entries_01,
3026 const ENTRIES_02& entries_02,
3027 const ENTRIES_03& entries_03,
3028 const ENTRIES_04& entries_04,
3029 const ENTRIES_05& entries_05,
3030 const ENTRIES_06& entries_06,
3031 const ENTRIES_07& entries_07,
3032 const ENTRIES_08& entries_08,
3033 const ENTRIES_09& entries_09,
3034 const ENTRIES_10& entries_10,
3035 const ENTRIES_11& entries_11,
3036 const ENTRIES_12& entries_12,
3037 const ENTRIES_13& entries_13,
3038 const ENTRIES_14& entries_14,
3039 const ENTRIES_15& entries_15,
3040 const ENTRIES_16& entries_16,
3041 const ENTRIES_17& entries_17,
3042 const ENTRIES_18& entries_18,
3043 const ENTRIES_19& entries_19,
3044 const ENTRIES_20& entries_20,
3045 const ENTRIES_21& entries_21,
3046 const ENTRIES_22& entries_22
3047 ) const;
3048
3049 template <typename ENTRIES_01,
3050 typename ENTRIES_02,
3051 typename ENTRIES_03,
3052 typename ENTRIES_04,
3053 typename ENTRIES_05,
3054 typename ENTRIES_06,
3055 typename ENTRIES_07,
3056 typename ENTRIES_08,
3057 typename ENTRIES_09,
3058 typename ENTRIES_10,
3059 typename ENTRIES_11,
3060 typename ENTRIES_12,
3061 typename ENTRIES_13,
3062 typename ENTRIES_14,
3063 typename ENTRIES_15,
3064 typename ENTRIES_16,
3065 typename ENTRIES_17,
3066 typename ENTRIES_18,
3067 typename ENTRIES_19,
3068 typename ENTRIES_20,
3069 typename ENTRIES_21,
3070 typename ENTRIES_22,
3071 typename ENTRIES_23,
3072 typename ENTRIES_24>
3073 bdld::Datum m(const ENTRIES_01& entries_01,
3074 const ENTRIES_02& entries_02,
3075 const ENTRIES_03& entries_03,
3076 const ENTRIES_04& entries_04,
3077 const ENTRIES_05& entries_05,
3078 const ENTRIES_06& entries_06,
3079 const ENTRIES_07& entries_07,
3080 const ENTRIES_08& entries_08,
3081 const ENTRIES_09& entries_09,
3082 const ENTRIES_10& entries_10,
3083 const ENTRIES_11& entries_11,
3084 const ENTRIES_12& entries_12,
3085 const ENTRIES_13& entries_13,
3086 const ENTRIES_14& entries_14,
3087 const ENTRIES_15& entries_15,
3088 const ENTRIES_16& entries_16,
3089 const ENTRIES_17& entries_17,
3090 const ENTRIES_18& entries_18,
3091 const ENTRIES_19& entries_19,
3092 const ENTRIES_20& entries_20,
3093 const ENTRIES_21& entries_21,
3094 const ENTRIES_22& entries_22,
3095 const ENTRIES_23& entries_23,
3096 const ENTRIES_24& entries_24
3097 ) const;
3098
3099 template <typename ENTRIES_01,
3100 typename ENTRIES_02,
3101 typename ENTRIES_03,
3102 typename ENTRIES_04,
3103 typename ENTRIES_05,
3104 typename ENTRIES_06,
3105 typename ENTRIES_07,
3106 typename ENTRIES_08,
3107 typename ENTRIES_09,
3108 typename ENTRIES_10,
3109 typename ENTRIES_11,
3110 typename ENTRIES_12,
3111 typename ENTRIES_13,
3112 typename ENTRIES_14,
3113 typename ENTRIES_15,
3114 typename ENTRIES_16,
3115 typename ENTRIES_17,
3116 typename ENTRIES_18,
3117 typename ENTRIES_19,
3118 typename ENTRIES_20,
3119 typename ENTRIES_21,
3120 typename ENTRIES_22,
3121 typename ENTRIES_23,
3122 typename ENTRIES_24,
3123 typename ENTRIES_25,
3124 typename ENTRIES_26>
3125 bdld::Datum m(const ENTRIES_01& entries_01,
3126 const ENTRIES_02& entries_02,
3127 const ENTRIES_03& entries_03,
3128 const ENTRIES_04& entries_04,
3129 const ENTRIES_05& entries_05,
3130 const ENTRIES_06& entries_06,
3131 const ENTRIES_07& entries_07,
3132 const ENTRIES_08& entries_08,
3133 const ENTRIES_09& entries_09,
3134 const ENTRIES_10& entries_10,
3135 const ENTRIES_11& entries_11,
3136 const ENTRIES_12& entries_12,
3137 const ENTRIES_13& entries_13,
3138 const ENTRIES_14& entries_14,
3139 const ENTRIES_15& entries_15,
3140 const ENTRIES_16& entries_16,
3141 const ENTRIES_17& entries_17,
3142 const ENTRIES_18& entries_18,
3143 const ENTRIES_19& entries_19,
3144 const ENTRIES_20& entries_20,
3145 const ENTRIES_21& entries_21,
3146 const ENTRIES_22& entries_22,
3147 const ENTRIES_23& entries_23,
3148 const ENTRIES_24& entries_24,
3149 const ENTRIES_25& entries_25,
3150 const ENTRIES_26& entries_26
3151 ) const;
3152
3153 template <typename ENTRIES_01,
3154 typename ENTRIES_02,
3155 typename ENTRIES_03,
3156 typename ENTRIES_04,
3157 typename ENTRIES_05,
3158 typename ENTRIES_06,
3159 typename ENTRIES_07,
3160 typename ENTRIES_08,
3161 typename ENTRIES_09,
3162 typename ENTRIES_10,
3163 typename ENTRIES_11,
3164 typename ENTRIES_12,
3165 typename ENTRIES_13,
3166 typename ENTRIES_14,
3167 typename ENTRIES_15,
3168 typename ENTRIES_16,
3169 typename ENTRIES_17,
3170 typename ENTRIES_18,
3171 typename ENTRIES_19,
3172 typename ENTRIES_20,
3173 typename ENTRIES_21,
3174 typename ENTRIES_22,
3175 typename ENTRIES_23,
3176 typename ENTRIES_24,
3177 typename ENTRIES_25,
3178 typename ENTRIES_26,
3179 typename ENTRIES_27,
3180 typename ENTRIES_28>
3181 bdld::Datum m(const ENTRIES_01& entries_01,
3182 const ENTRIES_02& entries_02,
3183 const ENTRIES_03& entries_03,
3184 const ENTRIES_04& entries_04,
3185 const ENTRIES_05& entries_05,
3186 const ENTRIES_06& entries_06,
3187 const ENTRIES_07& entries_07,
3188 const ENTRIES_08& entries_08,
3189 const ENTRIES_09& entries_09,
3190 const ENTRIES_10& entries_10,
3191 const ENTRIES_11& entries_11,
3192 const ENTRIES_12& entries_12,
3193 const ENTRIES_13& entries_13,
3194 const ENTRIES_14& entries_14,
3195 const ENTRIES_15& entries_15,
3196 const ENTRIES_16& entries_16,
3197 const ENTRIES_17& entries_17,
3198 const ENTRIES_18& entries_18,
3199 const ENTRIES_19& entries_19,
3200 const ENTRIES_20& entries_20,
3201 const ENTRIES_21& entries_21,
3202 const ENTRIES_22& entries_22,
3203 const ENTRIES_23& entries_23,
3204 const ENTRIES_24& entries_24,
3205 const ENTRIES_25& entries_25,
3206 const ENTRIES_26& entries_26,
3207 const ENTRIES_27& entries_27,
3208 const ENTRIES_28& entries_28
3209 ) const;
3210
3211 template <typename ENTRIES_01,
3212 typename ENTRIES_02,
3213 typename ENTRIES_03,
3214 typename ENTRIES_04,
3215 typename ENTRIES_05,
3216 typename ENTRIES_06,
3217 typename ENTRIES_07,
3218 typename ENTRIES_08,
3219 typename ENTRIES_09,
3220 typename ENTRIES_10,
3221 typename ENTRIES_11,
3222 typename ENTRIES_12,
3223 typename ENTRIES_13,
3224 typename ENTRIES_14,
3225 typename ENTRIES_15,
3226 typename ENTRIES_16,
3227 typename ENTRIES_17,
3228 typename ENTRIES_18,
3229 typename ENTRIES_19,
3230 typename ENTRIES_20,
3231 typename ENTRIES_21,
3232 typename ENTRIES_22,
3233 typename ENTRIES_23,
3234 typename ENTRIES_24,
3235 typename ENTRIES_25,
3236 typename ENTRIES_26,
3237 typename ENTRIES_27,
3238 typename ENTRIES_28,
3239 typename ENTRIES_29,
3240 typename ENTRIES_30>
3241 bdld::Datum m(const ENTRIES_01& entries_01,
3242 const ENTRIES_02& entries_02,
3243 const ENTRIES_03& entries_03,
3244 const ENTRIES_04& entries_04,
3245 const ENTRIES_05& entries_05,
3246 const ENTRIES_06& entries_06,
3247 const ENTRIES_07& entries_07,
3248 const ENTRIES_08& entries_08,
3249 const ENTRIES_09& entries_09,
3250 const ENTRIES_10& entries_10,
3251 const ENTRIES_11& entries_11,
3252 const ENTRIES_12& entries_12,
3253 const ENTRIES_13& entries_13,
3254 const ENTRIES_14& entries_14,
3255 const ENTRIES_15& entries_15,
3256 const ENTRIES_16& entries_16,
3257 const ENTRIES_17& entries_17,
3258 const ENTRIES_18& entries_18,
3259 const ENTRIES_19& entries_19,
3260 const ENTRIES_20& entries_20,
3261 const ENTRIES_21& entries_21,
3262 const ENTRIES_22& entries_22,
3263 const ENTRIES_23& entries_23,
3264 const ENTRIES_24& entries_24,
3265 const ENTRIES_25& entries_25,
3266 const ENTRIES_26& entries_26,
3267 const ENTRIES_27& entries_27,
3268 const ENTRIES_28& entries_28,
3269 const ENTRIES_29& entries_29,
3270 const ENTRIES_30& entries_30
3271 ) const;
3272
3273 template <typename ENTRIES_01,
3274 typename ENTRIES_02,
3275 typename ENTRIES_03,
3276 typename ENTRIES_04,
3277 typename ENTRIES_05,
3278 typename ENTRIES_06,
3279 typename ENTRIES_07,
3280 typename ENTRIES_08,
3281 typename ENTRIES_09,
3282 typename ENTRIES_10,
3283 typename ENTRIES_11,
3284 typename ENTRIES_12,
3285 typename ENTRIES_13,
3286 typename ENTRIES_14,
3287 typename ENTRIES_15,
3288 typename ENTRIES_16,
3289 typename ENTRIES_17,
3290 typename ENTRIES_18,
3291 typename ENTRIES_19,
3292 typename ENTRIES_20,
3293 typename ENTRIES_21,
3294 typename ENTRIES_22,
3295 typename ENTRIES_23,
3296 typename ENTRIES_24,
3297 typename ENTRIES_25,
3298 typename ENTRIES_26,
3299 typename ENTRIES_27,
3300 typename ENTRIES_28,
3301 typename ENTRIES_29,
3302 typename ENTRIES_30,
3303 typename ENTRIES_31,
3304 typename ENTRIES_32>
3305 bdld::Datum m(const ENTRIES_01& entries_01,
3306 const ENTRIES_02& entries_02,
3307 const ENTRIES_03& entries_03,
3308 const ENTRIES_04& entries_04,
3309 const ENTRIES_05& entries_05,
3310 const ENTRIES_06& entries_06,
3311 const ENTRIES_07& entries_07,
3312 const ENTRIES_08& entries_08,
3313 const ENTRIES_09& entries_09,
3314 const ENTRIES_10& entries_10,
3315 const ENTRIES_11& entries_11,
3316 const ENTRIES_12& entries_12,
3317 const ENTRIES_13& entries_13,
3318 const ENTRIES_14& entries_14,
3319 const ENTRIES_15& entries_15,
3320 const ENTRIES_16& entries_16,
3321 const ENTRIES_17& entries_17,
3322 const ENTRIES_18& entries_18,
3323 const ENTRIES_19& entries_19,
3324 const ENTRIES_20& entries_20,
3325 const ENTRIES_21& entries_21,
3326 const ENTRIES_22& entries_22,
3327 const ENTRIES_23& entries_23,
3328 const ENTRIES_24& entries_24,
3329 const ENTRIES_25& entries_25,
3330 const ENTRIES_26& entries_26,
3331 const ENTRIES_27& entries_27,
3332 const ENTRIES_28& entries_28,
3333 const ENTRIES_29& entries_29,
3334 const ENTRIES_30& entries_30,
3335 const ENTRIES_31& entries_31,
3336 const ENTRIES_32& entries_32
3337 ) const;
3338
3339#endif
3340
3341#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
3342 /// Return a `bdld::Datum` object containing a map with owned keys
3343 /// consisting of the specified `entries`. The `entries` are supplied
3344 /// as pairs (odd number of `sizeof...(entries)` being an error) where
3345 /// the first specified element is the key, and the second is its corresponding value.
3346 ///
3347 /// \pre The behavior is undefined if the same key is
3348 /// supplied more than once.
3349 template <typename... ENTRIES>
3350 bdld::Datum mok(const ENTRIES&... entries) const;
3351#else
3352 bdld::Datum mok() const;
3353
3354 template <typename ENTRIES_01,
3355 typename ENTRIES_02>
3356 bdld::Datum mok(const ENTRIES_01& entries_01,
3357 const ENTRIES_02& entries_02
3358 ) const;
3359
3360 template <typename ENTRIES_01,
3361 typename ENTRIES_02,
3362 typename ENTRIES_03,
3363 typename ENTRIES_04>
3364 bdld::Datum mok(const ENTRIES_01& entries_01,
3365 const ENTRIES_02& entries_02,
3366 const ENTRIES_03& entries_03,
3367 const ENTRIES_04& entries_04
3368 ) const;
3369
3370 template <typename ENTRIES_01,
3371 typename ENTRIES_02,
3372 typename ENTRIES_03,
3373 typename ENTRIES_04,
3374 typename ENTRIES_05,
3375 typename ENTRIES_06>
3376 bdld::Datum mok(const ENTRIES_01& entries_01,
3377 const ENTRIES_02& entries_02,
3378 const ENTRIES_03& entries_03,
3379 const ENTRIES_04& entries_04,
3380 const ENTRIES_05& entries_05,
3381 const ENTRIES_06& entries_06
3382 ) const;
3383
3384 template <typename ENTRIES_01,
3385 typename ENTRIES_02,
3386 typename ENTRIES_03,
3387 typename ENTRIES_04,
3388 typename ENTRIES_05,
3389 typename ENTRIES_06,
3390 typename ENTRIES_07,
3391 typename ENTRIES_08>
3392 bdld::Datum mok(const ENTRIES_01& entries_01,
3393 const ENTRIES_02& entries_02,
3394 const ENTRIES_03& entries_03,
3395 const ENTRIES_04& entries_04,
3396 const ENTRIES_05& entries_05,
3397 const ENTRIES_06& entries_06,
3398 const ENTRIES_07& entries_07,
3399 const ENTRIES_08& entries_08
3400 ) const;
3401
3402 template <typename ENTRIES_01,
3403 typename ENTRIES_02,
3404 typename ENTRIES_03,
3405 typename ENTRIES_04,
3406 typename ENTRIES_05,
3407 typename ENTRIES_06,
3408 typename ENTRIES_07,
3409 typename ENTRIES_08,
3410 typename ENTRIES_09,
3411 typename ENTRIES_10>
3412 bdld::Datum mok(const ENTRIES_01& entries_01,
3413 const ENTRIES_02& entries_02,
3414 const ENTRIES_03& entries_03,
3415 const ENTRIES_04& entries_04,
3416 const ENTRIES_05& entries_05,
3417 const ENTRIES_06& entries_06,
3418 const ENTRIES_07& entries_07,
3419 const ENTRIES_08& entries_08,
3420 const ENTRIES_09& entries_09,
3421 const ENTRIES_10& entries_10
3422 ) const;
3423
3424 template <typename ENTRIES_01,
3425 typename ENTRIES_02,
3426 typename ENTRIES_03,
3427 typename ENTRIES_04,
3428 typename ENTRIES_05,
3429 typename ENTRIES_06,
3430 typename ENTRIES_07,
3431 typename ENTRIES_08,
3432 typename ENTRIES_09,
3433 typename ENTRIES_10,
3434 typename ENTRIES_11,
3435 typename ENTRIES_12>
3436 bdld::Datum mok(const ENTRIES_01& entries_01,
3437 const ENTRIES_02& entries_02,
3438 const ENTRIES_03& entries_03,
3439 const ENTRIES_04& entries_04,
3440 const ENTRIES_05& entries_05,
3441 const ENTRIES_06& entries_06,
3442 const ENTRIES_07& entries_07,
3443 const ENTRIES_08& entries_08,
3444 const ENTRIES_09& entries_09,
3445 const ENTRIES_10& entries_10,
3446 const ENTRIES_11& entries_11,
3447 const ENTRIES_12& entries_12
3448 ) const;
3449
3450 template <typename ENTRIES_01,
3451 typename ENTRIES_02,
3452 typename ENTRIES_03,
3453 typename ENTRIES_04,
3454 typename ENTRIES_05,
3455 typename ENTRIES_06,
3456 typename ENTRIES_07,
3457 typename ENTRIES_08,
3458 typename ENTRIES_09,
3459 typename ENTRIES_10,
3460 typename ENTRIES_11,
3461 typename ENTRIES_12,
3462 typename ENTRIES_13,
3463 typename ENTRIES_14>
3464 bdld::Datum mok(const ENTRIES_01& entries_01,
3465 const ENTRIES_02& entries_02,
3466 const ENTRIES_03& entries_03,
3467 const ENTRIES_04& entries_04,
3468 const ENTRIES_05& entries_05,
3469 const ENTRIES_06& entries_06,
3470 const ENTRIES_07& entries_07,
3471 const ENTRIES_08& entries_08,
3472 const ENTRIES_09& entries_09,
3473 const ENTRIES_10& entries_10,
3474 const ENTRIES_11& entries_11,
3475 const ENTRIES_12& entries_12,
3476 const ENTRIES_13& entries_13,
3477 const ENTRIES_14& entries_14
3478 ) const;
3479
3480 template <typename ENTRIES_01,
3481 typename ENTRIES_02,
3482 typename ENTRIES_03,
3483 typename ENTRIES_04,
3484 typename ENTRIES_05,
3485 typename ENTRIES_06,
3486 typename ENTRIES_07,
3487 typename ENTRIES_08,
3488 typename ENTRIES_09,
3489 typename ENTRIES_10,
3490 typename ENTRIES_11,
3491 typename ENTRIES_12,
3492 typename ENTRIES_13,
3493 typename ENTRIES_14,
3494 typename ENTRIES_15,
3495 typename ENTRIES_16>
3496 bdld::Datum mok(const ENTRIES_01& entries_01,
3497 const ENTRIES_02& entries_02,
3498 const ENTRIES_03& entries_03,
3499 const ENTRIES_04& entries_04,
3500 const ENTRIES_05& entries_05,
3501 const ENTRIES_06& entries_06,
3502 const ENTRIES_07& entries_07,
3503 const ENTRIES_08& entries_08,
3504 const ENTRIES_09& entries_09,
3505 const ENTRIES_10& entries_10,
3506 const ENTRIES_11& entries_11,
3507 const ENTRIES_12& entries_12,
3508 const ENTRIES_13& entries_13,
3509 const ENTRIES_14& entries_14,
3510 const ENTRIES_15& entries_15,
3511 const ENTRIES_16& entries_16
3512 ) const;
3513
3514 template <typename ENTRIES_01,
3515 typename ENTRIES_02,
3516 typename ENTRIES_03,
3517 typename ENTRIES_04,
3518 typename ENTRIES_05,
3519 typename ENTRIES_06,
3520 typename ENTRIES_07,
3521 typename ENTRIES_08,
3522 typename ENTRIES_09,
3523 typename ENTRIES_10,
3524 typename ENTRIES_11,
3525 typename ENTRIES_12,
3526 typename ENTRIES_13,
3527 typename ENTRIES_14,
3528 typename ENTRIES_15,
3529 typename ENTRIES_16,
3530 typename ENTRIES_17,
3531 typename ENTRIES_18>
3532 bdld::Datum mok(const ENTRIES_01& entries_01,
3533 const ENTRIES_02& entries_02,
3534 const ENTRIES_03& entries_03,
3535 const ENTRIES_04& entries_04,
3536 const ENTRIES_05& entries_05,
3537 const ENTRIES_06& entries_06,
3538 const ENTRIES_07& entries_07,
3539 const ENTRIES_08& entries_08,
3540 const ENTRIES_09& entries_09,
3541 const ENTRIES_10& entries_10,
3542 const ENTRIES_11& entries_11,
3543 const ENTRIES_12& entries_12,
3544 const ENTRIES_13& entries_13,
3545 const ENTRIES_14& entries_14,
3546 const ENTRIES_15& entries_15,
3547 const ENTRIES_16& entries_16,
3548 const ENTRIES_17& entries_17,
3549 const ENTRIES_18& entries_18
3550 ) const;
3551
3552 template <typename ENTRIES_01,
3553 typename ENTRIES_02,
3554 typename ENTRIES_03,
3555 typename ENTRIES_04,
3556 typename ENTRIES_05,
3557 typename ENTRIES_06,
3558 typename ENTRIES_07,
3559 typename ENTRIES_08,
3560 typename ENTRIES_09,
3561 typename ENTRIES_10,
3562 typename ENTRIES_11,
3563 typename ENTRIES_12,
3564 typename ENTRIES_13,
3565 typename ENTRIES_14,
3566 typename ENTRIES_15,
3567 typename ENTRIES_16,
3568 typename ENTRIES_17,
3569 typename ENTRIES_18,
3570 typename ENTRIES_19,
3571 typename ENTRIES_20>
3572 bdld::Datum mok(const ENTRIES_01& entries_01,
3573 const ENTRIES_02& entries_02,
3574 const ENTRIES_03& entries_03,
3575 const ENTRIES_04& entries_04,
3576 const ENTRIES_05& entries_05,
3577 const ENTRIES_06& entries_06,
3578 const ENTRIES_07& entries_07,
3579 const ENTRIES_08& entries_08,
3580 const ENTRIES_09& entries_09,
3581 const ENTRIES_10& entries_10,
3582 const ENTRIES_11& entries_11,
3583 const ENTRIES_12& entries_12,
3584 const ENTRIES_13& entries_13,
3585 const ENTRIES_14& entries_14,
3586 const ENTRIES_15& entries_15,
3587 const ENTRIES_16& entries_16,
3588 const ENTRIES_17& entries_17,
3589 const ENTRIES_18& entries_18,
3590 const ENTRIES_19& entries_19,
3591 const ENTRIES_20& entries_20
3592 ) const;
3593
3594 template <typename ENTRIES_01,
3595 typename ENTRIES_02,
3596 typename ENTRIES_03,
3597 typename ENTRIES_04,
3598 typename ENTRIES_05,
3599 typename ENTRIES_06,
3600 typename ENTRIES_07,
3601 typename ENTRIES_08,
3602 typename ENTRIES_09,
3603 typename ENTRIES_10,
3604 typename ENTRIES_11,
3605 typename ENTRIES_12,
3606 typename ENTRIES_13,
3607 typename ENTRIES_14,
3608 typename ENTRIES_15,
3609 typename ENTRIES_16,
3610 typename ENTRIES_17,
3611 typename ENTRIES_18,
3612 typename ENTRIES_19,
3613 typename ENTRIES_20,
3614 typename ENTRIES_21,
3615 typename ENTRIES_22>
3616 bdld::Datum mok(const ENTRIES_01& entries_01,
3617 const ENTRIES_02& entries_02,
3618 const ENTRIES_03& entries_03,
3619 const ENTRIES_04& entries_04,
3620 const ENTRIES_05& entries_05,
3621 const ENTRIES_06& entries_06,
3622 const ENTRIES_07& entries_07,
3623 const ENTRIES_08& entries_08,
3624 const ENTRIES_09& entries_09,
3625 const ENTRIES_10& entries_10,
3626 const ENTRIES_11& entries_11,
3627 const ENTRIES_12& entries_12,
3628 const ENTRIES_13& entries_13,
3629 const ENTRIES_14& entries_14,
3630 const ENTRIES_15& entries_15,
3631 const ENTRIES_16& entries_16,
3632 const ENTRIES_17& entries_17,
3633 const ENTRIES_18& entries_18,
3634 const ENTRIES_19& entries_19,
3635 const ENTRIES_20& entries_20,
3636 const ENTRIES_21& entries_21,
3637 const ENTRIES_22& entries_22
3638 ) const;
3639
3640 template <typename ENTRIES_01,
3641 typename ENTRIES_02,
3642 typename ENTRIES_03,
3643 typename ENTRIES_04,
3644 typename ENTRIES_05,
3645 typename ENTRIES_06,
3646 typename ENTRIES_07,
3647 typename ENTRIES_08,
3648 typename ENTRIES_09,
3649 typename ENTRIES_10,
3650 typename ENTRIES_11,
3651 typename ENTRIES_12,
3652 typename ENTRIES_13,
3653 typename ENTRIES_14,
3654 typename ENTRIES_15,
3655 typename ENTRIES_16,
3656 typename ENTRIES_17,
3657 typename ENTRIES_18,
3658 typename ENTRIES_19,
3659 typename ENTRIES_20,
3660 typename ENTRIES_21,
3661 typename ENTRIES_22,
3662 typename ENTRIES_23,
3663 typename ENTRIES_24>
3664 bdld::Datum mok(const ENTRIES_01& entries_01,
3665 const ENTRIES_02& entries_02,
3666 const ENTRIES_03& entries_03,
3667 const ENTRIES_04& entries_04,
3668 const ENTRIES_05& entries_05,
3669 const ENTRIES_06& entries_06,
3670 const ENTRIES_07& entries_07,
3671 const ENTRIES_08& entries_08,
3672 const ENTRIES_09& entries_09,
3673 const ENTRIES_10& entries_10,
3674 const ENTRIES_11& entries_11,
3675 const ENTRIES_12& entries_12,
3676 const ENTRIES_13& entries_13,
3677 const ENTRIES_14& entries_14,
3678 const ENTRIES_15& entries_15,
3679 const ENTRIES_16& entries_16,
3680 const ENTRIES_17& entries_17,
3681 const ENTRIES_18& entries_18,
3682 const ENTRIES_19& entries_19,
3683 const ENTRIES_20& entries_20,
3684 const ENTRIES_21& entries_21,
3685 const ENTRIES_22& entries_22,
3686 const ENTRIES_23& entries_23,
3687 const ENTRIES_24& entries_24
3688 ) const;
3689
3690 template <typename ENTRIES_01,
3691 typename ENTRIES_02,
3692 typename ENTRIES_03,
3693 typename ENTRIES_04,
3694 typename ENTRIES_05,
3695 typename ENTRIES_06,
3696 typename ENTRIES_07,
3697 typename ENTRIES_08,
3698 typename ENTRIES_09,
3699 typename ENTRIES_10,
3700 typename ENTRIES_11,
3701 typename ENTRIES_12,
3702 typename ENTRIES_13,
3703 typename ENTRIES_14,
3704 typename ENTRIES_15,
3705 typename ENTRIES_16,
3706 typename ENTRIES_17,
3707 typename ENTRIES_18,
3708 typename ENTRIES_19,
3709 typename ENTRIES_20,
3710 typename ENTRIES_21,
3711 typename ENTRIES_22,
3712 typename ENTRIES_23,
3713 typename ENTRIES_24,
3714 typename ENTRIES_25,
3715 typename ENTRIES_26>
3716 bdld::Datum mok(const ENTRIES_01& entries_01,
3717 const ENTRIES_02& entries_02,
3718 const ENTRIES_03& entries_03,
3719 const ENTRIES_04& entries_04,
3720 const ENTRIES_05& entries_05,
3721 const ENTRIES_06& entries_06,
3722 const ENTRIES_07& entries_07,
3723 const ENTRIES_08& entries_08,
3724 const ENTRIES_09& entries_09,
3725 const ENTRIES_10& entries_10,
3726 const ENTRIES_11& entries_11,
3727 const ENTRIES_12& entries_12,
3728 const ENTRIES_13& entries_13,
3729 const ENTRIES_14& entries_14,
3730 const ENTRIES_15& entries_15,
3731 const ENTRIES_16& entries_16,
3732 const ENTRIES_17& entries_17,
3733 const ENTRIES_18& entries_18,
3734 const ENTRIES_19& entries_19,
3735 const ENTRIES_20& entries_20,
3736 const ENTRIES_21& entries_21,
3737 const ENTRIES_22& entries_22,
3738 const ENTRIES_23& entries_23,
3739 const ENTRIES_24& entries_24,
3740 const ENTRIES_25& entries_25,
3741 const ENTRIES_26& entries_26
3742 ) const;
3743
3744 template <typename ENTRIES_01,
3745 typename ENTRIES_02,
3746 typename ENTRIES_03,
3747 typename ENTRIES_04,
3748 typename ENTRIES_05,
3749 typename ENTRIES_06,
3750 typename ENTRIES_07,
3751 typename ENTRIES_08,
3752 typename ENTRIES_09,
3753 typename ENTRIES_10,
3754 typename ENTRIES_11,
3755 typename ENTRIES_12,
3756 typename ENTRIES_13,
3757 typename ENTRIES_14,
3758 typename ENTRIES_15,
3759 typename ENTRIES_16,
3760 typename ENTRIES_17,
3761 typename ENTRIES_18,
3762 typename ENTRIES_19,
3763 typename ENTRIES_20,
3764 typename ENTRIES_21,
3765 typename ENTRIES_22,
3766 typename ENTRIES_23,
3767 typename ENTRIES_24,
3768 typename ENTRIES_25,
3769 typename ENTRIES_26,
3770 typename ENTRIES_27,
3771 typename ENTRIES_28>
3772 bdld::Datum mok(const ENTRIES_01& entries_01,
3773 const ENTRIES_02& entries_02,
3774 const ENTRIES_03& entries_03,
3775 const ENTRIES_04& entries_04,
3776 const ENTRIES_05& entries_05,
3777 const ENTRIES_06& entries_06,
3778 const ENTRIES_07& entries_07,
3779 const ENTRIES_08& entries_08,
3780 const ENTRIES_09& entries_09,
3781 const ENTRIES_10& entries_10,
3782 const ENTRIES_11& entries_11,
3783 const ENTRIES_12& entries_12,
3784 const ENTRIES_13& entries_13,
3785 const ENTRIES_14& entries_14,
3786 const ENTRIES_15& entries_15,
3787 const ENTRIES_16& entries_16,
3788 const ENTRIES_17& entries_17,
3789 const ENTRIES_18& entries_18,
3790 const ENTRIES_19& entries_19,
3791 const ENTRIES_20& entries_20,
3792 const ENTRIES_21& entries_21,
3793 const ENTRIES_22& entries_22,
3794 const ENTRIES_23& entries_23,
3795 const ENTRIES_24& entries_24,
3796 const ENTRIES_25& entries_25,
3797 const ENTRIES_26& entries_26,
3798 const ENTRIES_27& entries_27,
3799 const ENTRIES_28& entries_28
3800 ) const;
3801
3802 template <typename ENTRIES_01,
3803 typename ENTRIES_02,
3804 typename ENTRIES_03,
3805 typename ENTRIES_04,
3806 typename ENTRIES_05,
3807 typename ENTRIES_06,
3808 typename ENTRIES_07,
3809 typename ENTRIES_08,
3810 typename ENTRIES_09,
3811 typename ENTRIES_10,
3812 typename ENTRIES_11,
3813 typename ENTRIES_12,
3814 typename ENTRIES_13,
3815 typename ENTRIES_14,
3816 typename ENTRIES_15,
3817 typename ENTRIES_16,
3818 typename ENTRIES_17,
3819 typename ENTRIES_18,
3820 typename ENTRIES_19,
3821 typename ENTRIES_20,
3822 typename ENTRIES_21,
3823 typename ENTRIES_22,
3824 typename ENTRIES_23,
3825 typename ENTRIES_24,
3826 typename ENTRIES_25,
3827 typename ENTRIES_26,
3828 typename ENTRIES_27,
3829 typename ENTRIES_28,
3830 typename ENTRIES_29,
3831 typename ENTRIES_30>
3832 bdld::Datum mok(const ENTRIES_01& entries_01,
3833 const ENTRIES_02& entries_02,
3834 const ENTRIES_03& entries_03,
3835 const ENTRIES_04& entries_04,
3836 const ENTRIES_05& entries_05,
3837 const ENTRIES_06& entries_06,
3838 const ENTRIES_07& entries_07,
3839 const ENTRIES_08& entries_08,
3840 const ENTRIES_09& entries_09,
3841 const ENTRIES_10& entries_10,
3842 const ENTRIES_11& entries_11,
3843 const ENTRIES_12& entries_12,
3844 const ENTRIES_13& entries_13,
3845 const ENTRIES_14& entries_14,
3846 const ENTRIES_15& entries_15,
3847 const ENTRIES_16& entries_16,
3848 const ENTRIES_17& entries_17,
3849 const ENTRIES_18& entries_18,
3850 const ENTRIES_19& entries_19,
3851 const ENTRIES_20& entries_20,
3852 const ENTRIES_21& entries_21,
3853 const ENTRIES_22& entries_22,
3854 const ENTRIES_23& entries_23,
3855 const ENTRIES_24& entries_24,
3856 const ENTRIES_25& entries_25,
3857 const ENTRIES_26& entries_26,
3858 const ENTRIES_27& entries_27,
3859 const ENTRIES_28& entries_28,
3860 const ENTRIES_29& entries_29,
3861 const ENTRIES_30& entries_30
3862 ) const;
3863
3864 template <typename ENTRIES_01,
3865 typename ENTRIES_02,
3866 typename ENTRIES_03,
3867 typename ENTRIES_04,
3868 typename ENTRIES_05,
3869 typename ENTRIES_06,
3870 typename ENTRIES_07,
3871 typename ENTRIES_08,
3872 typename ENTRIES_09,
3873 typename ENTRIES_10,
3874 typename ENTRIES_11,
3875 typename ENTRIES_12,
3876 typename ENTRIES_13,
3877 typename ENTRIES_14,
3878 typename ENTRIES_15,
3879 typename ENTRIES_16,
3880 typename ENTRIES_17,
3881 typename ENTRIES_18,
3882 typename ENTRIES_19,
3883 typename ENTRIES_20,
3884 typename ENTRIES_21,
3885 typename ENTRIES_22,
3886 typename ENTRIES_23,
3887 typename ENTRIES_24,
3888 typename ENTRIES_25,
3889 typename ENTRIES_26,
3890 typename ENTRIES_27,
3891 typename ENTRIES_28,
3892 typename ENTRIES_29,
3893 typename ENTRIES_30,
3894 typename ENTRIES_31,
3895 typename ENTRIES_32>
3896 bdld::Datum mok(const ENTRIES_01& entries_01,
3897 const ENTRIES_02& entries_02,
3898 const ENTRIES_03& entries_03,
3899 const ENTRIES_04& entries_04,
3900 const ENTRIES_05& entries_05,
3901 const ENTRIES_06& entries_06,
3902 const ENTRIES_07& entries_07,
3903 const ENTRIES_08& entries_08,
3904 const ENTRIES_09& entries_09,
3905 const ENTRIES_10& entries_10,
3906 const ENTRIES_11& entries_11,
3907 const ENTRIES_12& entries_12,
3908 const ENTRIES_13& entries_13,
3909 const ENTRIES_14& entries_14,
3910 const ENTRIES_15& entries_15,
3911 const ENTRIES_16& entries_16,
3912 const ENTRIES_17& entries_17,
3913 const ENTRIES_18& entries_18,
3914 const ENTRIES_19& entries_19,
3915 const ENTRIES_20& entries_20,
3916 const ENTRIES_21& entries_21,
3917 const ENTRIES_22& entries_22,
3918 const ENTRIES_23& entries_23,
3919 const ENTRIES_24& entries_24,
3920 const ENTRIES_25& entries_25,
3921 const ENTRIES_26& entries_26,
3922 const ENTRIES_27& entries_27,
3923 const ENTRIES_28& entries_28,
3924 const ENTRIES_29& entries_29,
3925 const ENTRIES_30& entries_30,
3926 const ENTRIES_31& entries_31,
3927 const ENTRIES_32& entries_32
3928 ) const;
3929
3930#endif
3931
3932
3933#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
3934 /// Return a `bdld::Datum` object containing an integer-map of the
3935 /// specified `entries`. The `entries` are supplied in pairs
3936 /// (supplying an odd number will result in a compilation failure) where
3937 /// the first supplied argument is an integer key, and the second is its corresponding value.
3938 ///
3939 /// \pre The behavior is undefined if the same key is
3940 /// supplied more than once.
3941 template <typename... ENTRIES>
3942 bdld::Datum im(const ENTRIES&... entries) const;
3943#else
3944 bdld::Datum im() const;
3945
3946 template <typename ENTRIES_01>
3947 bdld::Datum im(int key_01,
3948 const ENTRIES_01& entries_01
3949 ) const;
3950
3951 template <typename ENTRIES_01,
3952 typename ENTRIES_02>
3953 bdld::Datum im(int key_01,
3954 const ENTRIES_01& entries_01,
3955 int key_02,
3956 const ENTRIES_02& entries_02
3957 ) const;
3958
3959 template <typename ENTRIES_01,
3960 typename ENTRIES_02,
3961 typename ENTRIES_03>
3962 bdld::Datum im(int key_01,
3963 const ENTRIES_01& entries_01,
3964 int key_02,
3965 const ENTRIES_02& entries_02,
3966 int key_03,
3967 const ENTRIES_03& entries_03
3968 ) const;
3969
3970 template <typename ENTRIES_01,
3971 typename ENTRIES_02,
3972 typename ENTRIES_03,
3973 typename ENTRIES_04>
3974 bdld::Datum im(int key_01,
3975 const ENTRIES_01& entries_01,
3976 int key_02,
3977 const ENTRIES_02& entries_02,
3978 int key_03,
3979 const ENTRIES_03& entries_03,
3980 int key_04,
3981 const ENTRIES_04& entries_04
3982 ) const;
3983
3984 template <typename ENTRIES_01,
3985 typename ENTRIES_02,
3986 typename ENTRIES_03,
3987 typename ENTRIES_04,
3988 typename ENTRIES_05>
3989 bdld::Datum im(int key_01,
3990 const ENTRIES_01& entries_01,
3991 int key_02,
3992 const ENTRIES_02& entries_02,
3993 int key_03,
3994 const ENTRIES_03& entries_03,
3995 int key_04,
3996 const ENTRIES_04& entries_04,
3997 int key_05,
3998 const ENTRIES_05& entries_05
3999 ) const;
4000
4001 template <typename ENTRIES_01,
4002 typename ENTRIES_02,
4003 typename ENTRIES_03,
4004 typename ENTRIES_04,
4005 typename ENTRIES_05,
4006 typename ENTRIES_06>
4007 bdld::Datum im(int key_01,
4008 const ENTRIES_01& entries_01,
4009 int key_02,
4010 const ENTRIES_02& entries_02,
4011 int key_03,
4012 const ENTRIES_03& entries_03,
4013 int key_04,
4014 const ENTRIES_04& entries_04,
4015 int key_05,
4016 const ENTRIES_05& entries_05,
4017 int key_06,
4018 const ENTRIES_06& entries_06
4019 ) const;
4020
4021 template <typename ENTRIES_01,
4022 typename ENTRIES_02,
4023 typename ENTRIES_03,
4024 typename ENTRIES_04,
4025 typename ENTRIES_05,
4026 typename ENTRIES_06,
4027 typename ENTRIES_07>
4028 bdld::Datum im(int key_01,
4029 const ENTRIES_01& entries_01,
4030 int key_02,
4031 const ENTRIES_02& entries_02,
4032 int key_03,
4033 const ENTRIES_03& entries_03,
4034 int key_04,
4035 const ENTRIES_04& entries_04,
4036 int key_05,
4037 const ENTRIES_05& entries_05,
4038 int key_06,
4039 const ENTRIES_06& entries_06,
4040 int key_07,
4041 const ENTRIES_07& entries_07
4042 ) const;
4043
4044 template <typename ENTRIES_01,
4045 typename ENTRIES_02,
4046 typename ENTRIES_03,
4047 typename ENTRIES_04,
4048 typename ENTRIES_05,
4049 typename ENTRIES_06,
4050 typename ENTRIES_07,
4051 typename ENTRIES_08>
4052 bdld::Datum im(int key_01,
4053 const ENTRIES_01& entries_01,
4054 int key_02,
4055 const ENTRIES_02& entries_02,
4056 int key_03,
4057 const ENTRIES_03& entries_03,
4058 int key_04,
4059 const ENTRIES_04& entries_04,
4060 int key_05,
4061 const ENTRIES_05& entries_05,
4062 int key_06,
4063 const ENTRIES_06& entries_06,
4064 int key_07,
4065 const ENTRIES_07& entries_07,
4066 int key_08,
4067 const ENTRIES_08& entries_08
4068 ) const;
4069
4070 template <typename ENTRIES_01,
4071 typename ENTRIES_02,
4072 typename ENTRIES_03,
4073 typename ENTRIES_04,
4074 typename ENTRIES_05,
4075 typename ENTRIES_06,
4076 typename ENTRIES_07,
4077 typename ENTRIES_08,
4078 typename ENTRIES_09>
4079 bdld::Datum im(int key_01,
4080 const ENTRIES_01& entries_01,
4081 int key_02,
4082 const ENTRIES_02& entries_02,
4083 int key_03,
4084 const ENTRIES_03& entries_03,
4085 int key_04,
4086 const ENTRIES_04& entries_04,
4087 int key_05,
4088 const ENTRIES_05& entries_05,
4089 int key_06,
4090 const ENTRIES_06& entries_06,
4091 int key_07,
4092 const ENTRIES_07& entries_07,
4093 int key_08,
4094 const ENTRIES_08& entries_08,
4095 int key_09,
4096 const ENTRIES_09& entries_09
4097 ) const;
4098
4099 template <typename ENTRIES_01,
4100 typename ENTRIES_02,
4101 typename ENTRIES_03,
4102 typename ENTRIES_04,
4103 typename ENTRIES_05,
4104 typename ENTRIES_06,
4105 typename ENTRIES_07,
4106 typename ENTRIES_08,
4107 typename ENTRIES_09,
4108 typename ENTRIES_10>
4109 bdld::Datum im(int key_01,
4110 const ENTRIES_01& entries_01,
4111 int key_02,
4112 const ENTRIES_02& entries_02,
4113 int key_03,
4114 const ENTRIES_03& entries_03,
4115 int key_04,
4116 const ENTRIES_04& entries_04,
4117 int key_05,
4118 const ENTRIES_05& entries_05,
4119 int key_06,
4120 const ENTRIES_06& entries_06,
4121 int key_07,
4122 const ENTRIES_07& entries_07,
4123 int key_08,
4124 const ENTRIES_08& entries_08,
4125 int key_09,
4126 const ENTRIES_09& entries_09,
4127 int key_10,
4128 const ENTRIES_10& entries_10
4129 ) const;
4130
4131 template <typename ENTRIES_01,
4132 typename ENTRIES_02,
4133 typename ENTRIES_03,
4134 typename ENTRIES_04,
4135 typename ENTRIES_05,
4136 typename ENTRIES_06,
4137 typename ENTRIES_07,
4138 typename ENTRIES_08,
4139 typename ENTRIES_09,
4140 typename ENTRIES_10,
4141 typename ENTRIES_11>
4142 bdld::Datum im(int key_01,
4143 const ENTRIES_01& entries_01,
4144 int key_02,
4145 const ENTRIES_02& entries_02,
4146 int key_03,
4147 const ENTRIES_03& entries_03,
4148 int key_04,
4149 const ENTRIES_04& entries_04,
4150 int key_05,
4151 const ENTRIES_05& entries_05,
4152 int key_06,
4153 const ENTRIES_06& entries_06,
4154 int key_07,
4155 const ENTRIES_07& entries_07,
4156 int key_08,
4157 const ENTRIES_08& entries_08,
4158 int key_09,
4159 const ENTRIES_09& entries_09,
4160 int key_10,
4161 const ENTRIES_10& entries_10,
4162 int key_11,
4163 const ENTRIES_11& entries_11
4164 ) const;
4165
4166 template <typename ENTRIES_01,
4167 typename ENTRIES_02,
4168 typename ENTRIES_03,
4169 typename ENTRIES_04,
4170 typename ENTRIES_05,
4171 typename ENTRIES_06,
4172 typename ENTRIES_07,
4173 typename ENTRIES_08,
4174 typename ENTRIES_09,
4175 typename ENTRIES_10,
4176 typename ENTRIES_11,
4177 typename ENTRIES_12>
4178 bdld::Datum im(int key_01,
4179 const ENTRIES_01& entries_01,
4180 int key_02,
4181 const ENTRIES_02& entries_02,
4182 int key_03,
4183 const ENTRIES_03& entries_03,
4184 int key_04,
4185 const ENTRIES_04& entries_04,
4186 int key_05,
4187 const ENTRIES_05& entries_05,
4188 int key_06,
4189 const ENTRIES_06& entries_06,
4190 int key_07,
4191 const ENTRIES_07& entries_07,
4192 int key_08,
4193 const ENTRIES_08& entries_08,
4194 int key_09,
4195 const ENTRIES_09& entries_09,
4196 int key_10,
4197 const ENTRIES_10& entries_10,
4198 int key_11,
4199 const ENTRIES_11& entries_11,
4200 int key_12,
4201 const ENTRIES_12& entries_12
4202 ) const;
4203
4204 template <typename ENTRIES_01,
4205 typename ENTRIES_02,
4206 typename ENTRIES_03,
4207 typename ENTRIES_04,
4208 typename ENTRIES_05,
4209 typename ENTRIES_06,
4210 typename ENTRIES_07,
4211 typename ENTRIES_08,
4212 typename ENTRIES_09,
4213 typename ENTRIES_10,
4214 typename ENTRIES_11,
4215 typename ENTRIES_12,
4216 typename ENTRIES_13>
4217 bdld::Datum im(int key_01,
4218 const ENTRIES_01& entries_01,
4219 int key_02,
4220 const ENTRIES_02& entries_02,
4221 int key_03,
4222 const ENTRIES_03& entries_03,
4223 int key_04,
4224 const ENTRIES_04& entries_04,
4225 int key_05,
4226 const ENTRIES_05& entries_05,
4227 int key_06,
4228 const ENTRIES_06& entries_06,
4229 int key_07,
4230 const ENTRIES_07& entries_07,
4231 int key_08,
4232 const ENTRIES_08& entries_08,
4233 int key_09,
4234 const ENTRIES_09& entries_09,
4235 int key_10,
4236 const ENTRIES_10& entries_10,
4237 int key_11,
4238 const ENTRIES_11& entries_11,
4239 int key_12,
4240 const ENTRIES_12& entries_12,
4241 int key_13,
4242 const ENTRIES_13& entries_13
4243 ) const;
4244
4245 template <typename ENTRIES_01,
4246 typename ENTRIES_02,
4247 typename ENTRIES_03,
4248 typename ENTRIES_04,
4249 typename ENTRIES_05,
4250 typename ENTRIES_06,
4251 typename ENTRIES_07,
4252 typename ENTRIES_08,
4253 typename ENTRIES_09,
4254 typename ENTRIES_10,
4255 typename ENTRIES_11,
4256 typename ENTRIES_12,
4257 typename ENTRIES_13,
4258 typename ENTRIES_14>
4259 bdld::Datum im(int key_01,
4260 const ENTRIES_01& entries_01,
4261 int key_02,
4262 const ENTRIES_02& entries_02,
4263 int key_03,
4264 const ENTRIES_03& entries_03,
4265 int key_04,
4266 const ENTRIES_04& entries_04,
4267 int key_05,
4268 const ENTRIES_05& entries_05,
4269 int key_06,
4270 const ENTRIES_06& entries_06,
4271 int key_07,
4272 const ENTRIES_07& entries_07,
4273 int key_08,
4274 const ENTRIES_08& entries_08,
4275 int key_09,
4276 const ENTRIES_09& entries_09,
4277 int key_10,
4278 const ENTRIES_10& entries_10,
4279 int key_11,
4280 const ENTRIES_11& entries_11,
4281 int key_12,
4282 const ENTRIES_12& entries_12,
4283 int key_13,
4284 const ENTRIES_13& entries_13,
4285 int key_14,
4286 const ENTRIES_14& entries_14
4287 ) const;
4288
4289 template <typename ENTRIES_01,
4290 typename ENTRIES_02,
4291 typename ENTRIES_03,
4292 typename ENTRIES_04,
4293 typename ENTRIES_05,
4294 typename ENTRIES_06,
4295 typename ENTRIES_07,
4296 typename ENTRIES_08,
4297 typename ENTRIES_09,
4298 typename ENTRIES_10,
4299 typename ENTRIES_11,
4300 typename ENTRIES_12,
4301 typename ENTRIES_13,
4302 typename ENTRIES_14,
4303 typename ENTRIES_15>
4304 bdld::Datum im(int key_01,
4305 const ENTRIES_01& entries_01,
4306 int key_02,
4307 const ENTRIES_02& entries_02,
4308 int key_03,
4309 const ENTRIES_03& entries_03,
4310 int key_04,
4311 const ENTRIES_04& entries_04,
4312 int key_05,
4313 const ENTRIES_05& entries_05,
4314 int key_06,
4315 const ENTRIES_06& entries_06,
4316 int key_07,
4317 const ENTRIES_07& entries_07,
4318 int key_08,
4319 const ENTRIES_08& entries_08,
4320 int key_09,
4321 const ENTRIES_09& entries_09,
4322 int key_10,
4323 const ENTRIES_10& entries_10,
4324 int key_11,
4325 const ENTRIES_11& entries_11,
4326 int key_12,
4327 const ENTRIES_12& entries_12,
4328 int key_13,
4329 const ENTRIES_13& entries_13,
4330 int key_14,
4331 const ENTRIES_14& entries_14,
4332 int key_15,
4333 const ENTRIES_15& entries_15
4334 ) const;
4335
4336 template <typename ENTRIES_01,
4337 typename ENTRIES_02,
4338 typename ENTRIES_03,
4339 typename ENTRIES_04,
4340 typename ENTRIES_05,
4341 typename ENTRIES_06,
4342 typename ENTRIES_07,
4343 typename ENTRIES_08,
4344 typename ENTRIES_09,
4345 typename ENTRIES_10,
4346 typename ENTRIES_11,
4347 typename ENTRIES_12,
4348 typename ENTRIES_13,
4349 typename ENTRIES_14,
4350 typename ENTRIES_15,
4351 typename ENTRIES_16>
4352 bdld::Datum im(int key_01,
4353 const ENTRIES_01& entries_01,
4354 int key_02,
4355 const ENTRIES_02& entries_02,
4356 int key_03,
4357 const ENTRIES_03& entries_03,
4358 int key_04,
4359 const ENTRIES_04& entries_04,
4360 int key_05,
4361 const ENTRIES_05& entries_05,
4362 int key_06,
4363 const ENTRIES_06& entries_06,
4364 int key_07,
4365 const ENTRIES_07& entries_07,
4366 int key_08,
4367 const ENTRIES_08& entries_08,
4368 int key_09,
4369 const ENTRIES_09& entries_09,
4370 int key_10,
4371 const ENTRIES_10& entries_10,
4372 int key_11,
4373 const ENTRIES_11& entries_11,
4374 int key_12,
4375 const ENTRIES_12& entries_12,
4376 int key_13,
4377 const ENTRIES_13& entries_13,
4378 int key_14,
4379 const ENTRIES_14& entries_14,
4380 int key_15,
4381 const ENTRIES_15& entries_15,
4382 int key_16,
4383 const ENTRIES_16& entries_16
4384 ) const;
4385
4386#endif
4387
4388 /// Return a `bdld::Datum` object that references, but does not own the
4389 /// specified `string`, possibly using the allocator of this object to obtain memory.
4390 ///
4391 /// \note Note that this can be used to refer to string
4392 /// literals. See `bdld::Datum::createStringRef()`.
4393 bdld::Datum ref(const bslstl::StringRef& string) const;
4394};
4395
4396// ============================================================================
4397// INLINE DEFINITIONS
4398// ============================================================================
4399
4400 // ----------------
4401 // class DatumMaker
4402 // ----------------
4403
4404// PRIVATE ACCESSORS
4405inline
4406void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *) const
4407{
4408}
4409
4410inline
4411void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *) const
4412{
4413}
4414
4415inline
4416void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *) const
4417{
4418}
4419
4420inline
4421void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *) const
4422{
4423}
4424
4425#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
4426template <typename TYPE>
4427inline
4428void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4429 const TYPE& element) const
4430{
4431 builder->pushBack((*this)(element));
4432}
4433
4434template <typename TYPE, typename... ELEMENTS>
4435inline
4436void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4437 const TYPE& element,
4438 const ELEMENTS&... elements) const
4439{
4440 builder->pushBack((*this)(element));
4441 pushBackHelper(builder, elements...);
4442}
4443
4444template <typename TYPE>
4445inline
4446void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
4447 const bslstl::StringRef& key,
4448 const TYPE& value) const
4449{
4450 builder->pushBack(key, (*this)(value));
4451}
4452
4453template <typename TYPE, typename... ENTRIES>
4454inline
4455void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
4456 const bslstl::StringRef& key,
4457 const TYPE& value,
4458 const ENTRIES&... entries) const
4459{
4460 builder->pushBack(key, (*this)(value));
4461 pushBackHelper(builder, entries...);
4462}
4463
4464template <typename TYPE>
4465inline
4466void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
4467 const bslstl::StringRef& key,
4468 const TYPE& value) const
4469{
4470 builder->pushBack(key, (*this)(value));
4471}
4472
4473template <typename TYPE, typename... ENTRIES>
4474inline
4475void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
4476 const bslstl::StringRef& key,
4477 const TYPE& value,
4478 const ENTRIES&... entries) const
4479{
4480 builder->pushBack(key, (*this)(value));
4481 pushBackHelper(builder, entries...);
4482}
4483
4484template <typename TYPE>
4485inline
4486void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
4487 int key,
4488 const TYPE& value) const
4489{
4490 builder->pushBack(key, (*this)(value));
4491}
4492
4493template <typename TYPE, typename... ENTRIES>
4494inline
4495void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
4496 int key,
4497 const TYPE& value,
4498 const ENTRIES&... entries) const
4499{
4500 builder->pushBack(key, (*this)(value));
4501 pushBackHelper(builder, entries...);
4502}
4503#else
4504template <typename TYPE>
4505inline
4506void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4507 const TYPE& element
4508 ) const
4509{
4510 builder->pushBack((*this)(element));
4511 pushBackHelper(builder);
4512}
4513
4514template <typename TYPE, typename ELEMENTS_01>
4515inline
4516void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4517 const TYPE& element,
4518 const ELEMENTS_01& elements_01
4519 ) const
4520{
4521 builder->pushBack((*this)(element));
4522 pushBackHelper(builder, elements_01);
4523}
4524
4525template <typename TYPE, typename ELEMENTS_01,
4526 typename ELEMENTS_02>
4527inline
4528void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4529 const TYPE& element,
4530 const ELEMENTS_01& elements_01,
4531 const ELEMENTS_02& elements_02
4532 ) const
4533{
4534 builder->pushBack((*this)(element));
4535 pushBackHelper(builder, elements_01,
4536 elements_02);
4537}
4538
4539template <typename TYPE, typename ELEMENTS_01,
4540 typename ELEMENTS_02,
4541 typename ELEMENTS_03>
4542inline
4543void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4544 const TYPE& element,
4545 const ELEMENTS_01& elements_01,
4546 const ELEMENTS_02& elements_02,
4547 const ELEMENTS_03& elements_03
4548 ) const
4549{
4550 builder->pushBack((*this)(element));
4551 pushBackHelper(builder, elements_01,
4552 elements_02,
4553 elements_03);
4554}
4555
4556template <typename TYPE, typename ELEMENTS_01,
4557 typename ELEMENTS_02,
4558 typename ELEMENTS_03,
4559 typename ELEMENTS_04>
4560inline
4561void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4562 const TYPE& element,
4563 const ELEMENTS_01& elements_01,
4564 const ELEMENTS_02& elements_02,
4565 const ELEMENTS_03& elements_03,
4566 const ELEMENTS_04& elements_04
4567 ) const
4568{
4569 builder->pushBack((*this)(element));
4570 pushBackHelper(builder, elements_01,
4571 elements_02,
4572 elements_03,
4573 elements_04);
4574}
4575
4576template <typename TYPE, typename ELEMENTS_01,
4577 typename ELEMENTS_02,
4578 typename ELEMENTS_03,
4579 typename ELEMENTS_04,
4580 typename ELEMENTS_05>
4581inline
4582void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4583 const TYPE& element,
4584 const ELEMENTS_01& elements_01,
4585 const ELEMENTS_02& elements_02,
4586 const ELEMENTS_03& elements_03,
4587 const ELEMENTS_04& elements_04,
4588 const ELEMENTS_05& elements_05
4589 ) const
4590{
4591 builder->pushBack((*this)(element));
4592 pushBackHelper(builder, elements_01,
4593 elements_02,
4594 elements_03,
4595 elements_04,
4596 elements_05);
4597}
4598
4599template <typename TYPE, typename ELEMENTS_01,
4600 typename ELEMENTS_02,
4601 typename ELEMENTS_03,
4602 typename ELEMENTS_04,
4603 typename ELEMENTS_05,
4604 typename ELEMENTS_06>
4605inline
4606void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4607 const TYPE& element,
4608 const ELEMENTS_01& elements_01,
4609 const ELEMENTS_02& elements_02,
4610 const ELEMENTS_03& elements_03,
4611 const ELEMENTS_04& elements_04,
4612 const ELEMENTS_05& elements_05,
4613 const ELEMENTS_06& elements_06
4614 ) const
4615{
4616 builder->pushBack((*this)(element));
4617 pushBackHelper(builder, elements_01,
4618 elements_02,
4619 elements_03,
4620 elements_04,
4621 elements_05,
4622 elements_06);
4623}
4624
4625template <typename TYPE, typename ELEMENTS_01,
4626 typename ELEMENTS_02,
4627 typename ELEMENTS_03,
4628 typename ELEMENTS_04,
4629 typename ELEMENTS_05,
4630 typename ELEMENTS_06,
4631 typename ELEMENTS_07>
4632inline
4633void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4634 const TYPE& element,
4635 const ELEMENTS_01& elements_01,
4636 const ELEMENTS_02& elements_02,
4637 const ELEMENTS_03& elements_03,
4638 const ELEMENTS_04& elements_04,
4639 const ELEMENTS_05& elements_05,
4640 const ELEMENTS_06& elements_06,
4641 const ELEMENTS_07& elements_07
4642 ) const
4643{
4644 builder->pushBack((*this)(element));
4645 pushBackHelper(builder, elements_01,
4646 elements_02,
4647 elements_03,
4648 elements_04,
4649 elements_05,
4650 elements_06,
4651 elements_07);
4652}
4653
4654template <typename TYPE, typename ELEMENTS_01,
4655 typename ELEMENTS_02,
4656 typename ELEMENTS_03,
4657 typename ELEMENTS_04,
4658 typename ELEMENTS_05,
4659 typename ELEMENTS_06,
4660 typename ELEMENTS_07,
4661 typename ELEMENTS_08>
4662inline
4663void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4664 const TYPE& element,
4665 const ELEMENTS_01& elements_01,
4666 const ELEMENTS_02& elements_02,
4667 const ELEMENTS_03& elements_03,
4668 const ELEMENTS_04& elements_04,
4669 const ELEMENTS_05& elements_05,
4670 const ELEMENTS_06& elements_06,
4671 const ELEMENTS_07& elements_07,
4672 const ELEMENTS_08& elements_08
4673 ) const
4674{
4675 builder->pushBack((*this)(element));
4676 pushBackHelper(builder, elements_01,
4677 elements_02,
4678 elements_03,
4679 elements_04,
4680 elements_05,
4681 elements_06,
4682 elements_07,
4683 elements_08);
4684}
4685
4686template <typename TYPE, typename ELEMENTS_01,
4687 typename ELEMENTS_02,
4688 typename ELEMENTS_03,
4689 typename ELEMENTS_04,
4690 typename ELEMENTS_05,
4691 typename ELEMENTS_06,
4692 typename ELEMENTS_07,
4693 typename ELEMENTS_08,
4694 typename ELEMENTS_09>
4695inline
4696void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4697 const TYPE& element,
4698 const ELEMENTS_01& elements_01,
4699 const ELEMENTS_02& elements_02,
4700 const ELEMENTS_03& elements_03,
4701 const ELEMENTS_04& elements_04,
4702 const ELEMENTS_05& elements_05,
4703 const ELEMENTS_06& elements_06,
4704 const ELEMENTS_07& elements_07,
4705 const ELEMENTS_08& elements_08,
4706 const ELEMENTS_09& elements_09
4707 ) const
4708{
4709 builder->pushBack((*this)(element));
4710 pushBackHelper(builder, elements_01,
4711 elements_02,
4712 elements_03,
4713 elements_04,
4714 elements_05,
4715 elements_06,
4716 elements_07,
4717 elements_08,
4718 elements_09);
4719}
4720
4721template <typename TYPE, typename ELEMENTS_01,
4722 typename ELEMENTS_02,
4723 typename ELEMENTS_03,
4724 typename ELEMENTS_04,
4725 typename ELEMENTS_05,
4726 typename ELEMENTS_06,
4727 typename ELEMENTS_07,
4728 typename ELEMENTS_08,
4729 typename ELEMENTS_09,
4730 typename ELEMENTS_10>
4731inline
4732void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4733 const TYPE& element,
4734 const ELEMENTS_01& elements_01,
4735 const ELEMENTS_02& elements_02,
4736 const ELEMENTS_03& elements_03,
4737 const ELEMENTS_04& elements_04,
4738 const ELEMENTS_05& elements_05,
4739 const ELEMENTS_06& elements_06,
4740 const ELEMENTS_07& elements_07,
4741 const ELEMENTS_08& elements_08,
4742 const ELEMENTS_09& elements_09,
4743 const ELEMENTS_10& elements_10
4744 ) const
4745{
4746 builder->pushBack((*this)(element));
4747 pushBackHelper(builder, elements_01,
4748 elements_02,
4749 elements_03,
4750 elements_04,
4751 elements_05,
4752 elements_06,
4753 elements_07,
4754 elements_08,
4755 elements_09,
4756 elements_10);
4757}
4758
4759template <typename TYPE, typename ELEMENTS_01,
4760 typename ELEMENTS_02,
4761 typename ELEMENTS_03,
4762 typename ELEMENTS_04,
4763 typename ELEMENTS_05,
4764 typename ELEMENTS_06,
4765 typename ELEMENTS_07,
4766 typename ELEMENTS_08,
4767 typename ELEMENTS_09,
4768 typename ELEMENTS_10,
4769 typename ELEMENTS_11>
4770inline
4771void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4772 const TYPE& element,
4773 const ELEMENTS_01& elements_01,
4774 const ELEMENTS_02& elements_02,
4775 const ELEMENTS_03& elements_03,
4776 const ELEMENTS_04& elements_04,
4777 const ELEMENTS_05& elements_05,
4778 const ELEMENTS_06& elements_06,
4779 const ELEMENTS_07& elements_07,
4780 const ELEMENTS_08& elements_08,
4781 const ELEMENTS_09& elements_09,
4782 const ELEMENTS_10& elements_10,
4783 const ELEMENTS_11& elements_11
4784 ) const
4785{
4786 builder->pushBack((*this)(element));
4787 pushBackHelper(builder, elements_01,
4788 elements_02,
4789 elements_03,
4790 elements_04,
4791 elements_05,
4792 elements_06,
4793 elements_07,
4794 elements_08,
4795 elements_09,
4796 elements_10,
4797 elements_11);
4798}
4799
4800template <typename TYPE, typename ELEMENTS_01,
4801 typename ELEMENTS_02,
4802 typename ELEMENTS_03,
4803 typename ELEMENTS_04,
4804 typename ELEMENTS_05,
4805 typename ELEMENTS_06,
4806 typename ELEMENTS_07,
4807 typename ELEMENTS_08,
4808 typename ELEMENTS_09,
4809 typename ELEMENTS_10,
4810 typename ELEMENTS_11,
4811 typename ELEMENTS_12>
4812inline
4813void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4814 const TYPE& element,
4815 const ELEMENTS_01& elements_01,
4816 const ELEMENTS_02& elements_02,
4817 const ELEMENTS_03& elements_03,
4818 const ELEMENTS_04& elements_04,
4819 const ELEMENTS_05& elements_05,
4820 const ELEMENTS_06& elements_06,
4821 const ELEMENTS_07& elements_07,
4822 const ELEMENTS_08& elements_08,
4823 const ELEMENTS_09& elements_09,
4824 const ELEMENTS_10& elements_10,
4825 const ELEMENTS_11& elements_11,
4826 const ELEMENTS_12& elements_12
4827 ) const
4828{
4829 builder->pushBack((*this)(element));
4830 pushBackHelper(builder, elements_01,
4831 elements_02,
4832 elements_03,
4833 elements_04,
4834 elements_05,
4835 elements_06,
4836 elements_07,
4837 elements_08,
4838 elements_09,
4839 elements_10,
4840 elements_11,
4841 elements_12);
4842}
4843
4844template <typename TYPE, typename ELEMENTS_01,
4845 typename ELEMENTS_02,
4846 typename ELEMENTS_03,
4847 typename ELEMENTS_04,
4848 typename ELEMENTS_05,
4849 typename ELEMENTS_06,
4850 typename ELEMENTS_07,
4851 typename ELEMENTS_08,
4852 typename ELEMENTS_09,
4853 typename ELEMENTS_10,
4854 typename ELEMENTS_11,
4855 typename ELEMENTS_12,
4856 typename ELEMENTS_13>
4857inline
4858void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4859 const TYPE& element,
4860 const ELEMENTS_01& elements_01,
4861 const ELEMENTS_02& elements_02,
4862 const ELEMENTS_03& elements_03,
4863 const ELEMENTS_04& elements_04,
4864 const ELEMENTS_05& elements_05,
4865 const ELEMENTS_06& elements_06,
4866 const ELEMENTS_07& elements_07,
4867 const ELEMENTS_08& elements_08,
4868 const ELEMENTS_09& elements_09,
4869 const ELEMENTS_10& elements_10,
4870 const ELEMENTS_11& elements_11,
4871 const ELEMENTS_12& elements_12,
4872 const ELEMENTS_13& elements_13
4873 ) const
4874{
4875 builder->pushBack((*this)(element));
4876 pushBackHelper(builder, elements_01,
4877 elements_02,
4878 elements_03,
4879 elements_04,
4880 elements_05,
4881 elements_06,
4882 elements_07,
4883 elements_08,
4884 elements_09,
4885 elements_10,
4886 elements_11,
4887 elements_12,
4888 elements_13);
4889}
4890
4891template <typename TYPE, typename ELEMENTS_01,
4892 typename ELEMENTS_02,
4893 typename ELEMENTS_03,
4894 typename ELEMENTS_04,
4895 typename ELEMENTS_05,
4896 typename ELEMENTS_06,
4897 typename ELEMENTS_07,
4898 typename ELEMENTS_08,
4899 typename ELEMENTS_09,
4900 typename ELEMENTS_10,
4901 typename ELEMENTS_11,
4902 typename ELEMENTS_12,
4903 typename ELEMENTS_13,
4904 typename ELEMENTS_14>
4905inline
4906void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4907 const TYPE& element,
4908 const ELEMENTS_01& elements_01,
4909 const ELEMENTS_02& elements_02,
4910 const ELEMENTS_03& elements_03,
4911 const ELEMENTS_04& elements_04,
4912 const ELEMENTS_05& elements_05,
4913 const ELEMENTS_06& elements_06,
4914 const ELEMENTS_07& elements_07,
4915 const ELEMENTS_08& elements_08,
4916 const ELEMENTS_09& elements_09,
4917 const ELEMENTS_10& elements_10,
4918 const ELEMENTS_11& elements_11,
4919 const ELEMENTS_12& elements_12,
4920 const ELEMENTS_13& elements_13,
4921 const ELEMENTS_14& elements_14
4922 ) const
4923{
4924 builder->pushBack((*this)(element));
4925 pushBackHelper(builder, elements_01,
4926 elements_02,
4927 elements_03,
4928 elements_04,
4929 elements_05,
4930 elements_06,
4931 elements_07,
4932 elements_08,
4933 elements_09,
4934 elements_10,
4935 elements_11,
4936 elements_12,
4937 elements_13,
4938 elements_14);
4939}
4940
4941template <typename TYPE, typename ELEMENTS_01,
4942 typename ELEMENTS_02,
4943 typename ELEMENTS_03,
4944 typename ELEMENTS_04,
4945 typename ELEMENTS_05,
4946 typename ELEMENTS_06,
4947 typename ELEMENTS_07,
4948 typename ELEMENTS_08,
4949 typename ELEMENTS_09,
4950 typename ELEMENTS_10,
4951 typename ELEMENTS_11,
4952 typename ELEMENTS_12,
4953 typename ELEMENTS_13,
4954 typename ELEMENTS_14,
4955 typename ELEMENTS_15>
4956inline
4957void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4958 const TYPE& element,
4959 const ELEMENTS_01& elements_01,
4960 const ELEMENTS_02& elements_02,
4961 const ELEMENTS_03& elements_03,
4962 const ELEMENTS_04& elements_04,
4963 const ELEMENTS_05& elements_05,
4964 const ELEMENTS_06& elements_06,
4965 const ELEMENTS_07& elements_07,
4966 const ELEMENTS_08& elements_08,
4967 const ELEMENTS_09& elements_09,
4968 const ELEMENTS_10& elements_10,
4969 const ELEMENTS_11& elements_11,
4970 const ELEMENTS_12& elements_12,
4971 const ELEMENTS_13& elements_13,
4972 const ELEMENTS_14& elements_14,
4973 const ELEMENTS_15& elements_15
4974 ) const
4975{
4976 builder->pushBack((*this)(element));
4977 pushBackHelper(builder, elements_01,
4978 elements_02,
4979 elements_03,
4980 elements_04,
4981 elements_05,
4982 elements_06,
4983 elements_07,
4984 elements_08,
4985 elements_09,
4986 elements_10,
4987 elements_11,
4988 elements_12,
4989 elements_13,
4990 elements_14,
4991 elements_15);
4992}
4993
4994template <typename TYPE, typename ELEMENTS_01,
4995 typename ELEMENTS_02,
4996 typename ELEMENTS_03,
4997 typename ELEMENTS_04,
4998 typename ELEMENTS_05,
4999 typename ELEMENTS_06,
5000 typename ELEMENTS_07,
5001 typename ELEMENTS_08,
5002 typename ELEMENTS_09,
5003 typename ELEMENTS_10,
5004 typename ELEMENTS_11,
5005 typename ELEMENTS_12,
5006 typename ELEMENTS_13,
5007 typename ELEMENTS_14,
5008 typename ELEMENTS_15,
5009 typename ELEMENTS_16>
5010inline
5011void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
5012 const TYPE& element,
5013 const ELEMENTS_01& elements_01,
5014 const ELEMENTS_02& elements_02,
5015 const ELEMENTS_03& elements_03,
5016 const ELEMENTS_04& elements_04,
5017 const ELEMENTS_05& elements_05,
5018 const ELEMENTS_06& elements_06,
5019 const ELEMENTS_07& elements_07,
5020 const ELEMENTS_08& elements_08,
5021 const ELEMENTS_09& elements_09,
5022 const ELEMENTS_10& elements_10,
5023 const ELEMENTS_11& elements_11,
5024 const ELEMENTS_12& elements_12,
5025 const ELEMENTS_13& elements_13,
5026 const ELEMENTS_14& elements_14,
5027 const ELEMENTS_15& elements_15,
5028 const ELEMENTS_16& elements_16
5029 ) const
5030{
5031 builder->pushBack((*this)(element));
5032 pushBackHelper(builder, elements_01,
5033 elements_02,
5034 elements_03,
5035 elements_04,
5036 elements_05,
5037 elements_06,
5038 elements_07,
5039 elements_08,
5040 elements_09,
5041 elements_10,
5042 elements_11,
5043 elements_12,
5044 elements_13,
5045 elements_14,
5046 elements_15,
5047 elements_16);
5048}
5049
5050template <typename TYPE>
5051inline
5052void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5053 const bslstl::StringRef& key,
5054 const TYPE& value
5055 ) const
5056{
5057 builder->pushBack(key, (*this)(value));
5058 pushBackHelper(builder);
5059}
5060
5061template <typename TYPE, typename ENTRIES_01,
5062 typename ENTRIES_02>
5063inline
5064void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5065 const bslstl::StringRef& key,
5066 const TYPE& value,
5067 const ENTRIES_01& entries_01,
5068 const ENTRIES_02& entries_02
5069 ) const
5070{
5071 builder->pushBack(key, (*this)(value));
5072 pushBackHelper(builder, entries_01,
5073 entries_02);
5074}
5075
5076template <typename TYPE, typename ENTRIES_01,
5077 typename ENTRIES_02,
5078 typename ENTRIES_03,
5079 typename ENTRIES_04>
5080inline
5081void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5082 const bslstl::StringRef& key,
5083 const TYPE& value,
5084 const ENTRIES_01& entries_01,
5085 const ENTRIES_02& entries_02,
5086 const ENTRIES_03& entries_03,
5087 const ENTRIES_04& entries_04
5088 ) const
5089{
5090 builder->pushBack(key, (*this)(value));
5091 pushBackHelper(builder, entries_01,
5092 entries_02,
5093 entries_03,
5094 entries_04);
5095}
5096
5097template <typename TYPE, typename ENTRIES_01,
5098 typename ENTRIES_02,
5099 typename ENTRIES_03,
5100 typename ENTRIES_04,
5101 typename ENTRIES_05,
5102 typename ENTRIES_06>
5103inline
5104void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5105 const bslstl::StringRef& key,
5106 const TYPE& value,
5107 const ENTRIES_01& entries_01,
5108 const ENTRIES_02& entries_02,
5109 const ENTRIES_03& entries_03,
5110 const ENTRIES_04& entries_04,
5111 const ENTRIES_05& entries_05,
5112 const ENTRIES_06& entries_06
5113 ) const
5114{
5115 builder->pushBack(key, (*this)(value));
5116 pushBackHelper(builder, entries_01,
5117 entries_02,
5118 entries_03,
5119 entries_04,
5120 entries_05,
5121 entries_06);
5122}
5123
5124template <typename TYPE, typename ENTRIES_01,
5125 typename ENTRIES_02,
5126 typename ENTRIES_03,
5127 typename ENTRIES_04,
5128 typename ENTRIES_05,
5129 typename ENTRIES_06,
5130 typename ENTRIES_07,
5131 typename ENTRIES_08>
5132inline
5133void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5134 const bslstl::StringRef& key,
5135 const TYPE& value,
5136 const ENTRIES_01& entries_01,
5137 const ENTRIES_02& entries_02,
5138 const ENTRIES_03& entries_03,
5139 const ENTRIES_04& entries_04,
5140 const ENTRIES_05& entries_05,
5141 const ENTRIES_06& entries_06,
5142 const ENTRIES_07& entries_07,
5143 const ENTRIES_08& entries_08
5144 ) const
5145{
5146 builder->pushBack(key, (*this)(value));
5147 pushBackHelper(builder, entries_01,
5148 entries_02,
5149 entries_03,
5150 entries_04,
5151 entries_05,
5152 entries_06,
5153 entries_07,
5154 entries_08);
5155}
5156
5157template <typename TYPE, typename ENTRIES_01,
5158 typename ENTRIES_02,
5159 typename ENTRIES_03,
5160 typename ENTRIES_04,
5161 typename ENTRIES_05,
5162 typename ENTRIES_06,
5163 typename ENTRIES_07,
5164 typename ENTRIES_08,
5165 typename ENTRIES_09,
5166 typename ENTRIES_10>
5167inline
5168void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5169 const bslstl::StringRef& key,
5170 const TYPE& value,
5171 const ENTRIES_01& entries_01,
5172 const ENTRIES_02& entries_02,
5173 const ENTRIES_03& entries_03,
5174 const ENTRIES_04& entries_04,
5175 const ENTRIES_05& entries_05,
5176 const ENTRIES_06& entries_06,
5177 const ENTRIES_07& entries_07,
5178 const ENTRIES_08& entries_08,
5179 const ENTRIES_09& entries_09,
5180 const ENTRIES_10& entries_10
5181 ) const
5182{
5183 builder->pushBack(key, (*this)(value));
5184 pushBackHelper(builder, entries_01,
5185 entries_02,
5186 entries_03,
5187 entries_04,
5188 entries_05,
5189 entries_06,
5190 entries_07,
5191 entries_08,
5192 entries_09,
5193 entries_10);
5194}
5195
5196template <typename TYPE, typename ENTRIES_01,
5197 typename ENTRIES_02,
5198 typename ENTRIES_03,
5199 typename ENTRIES_04,
5200 typename ENTRIES_05,
5201 typename ENTRIES_06,
5202 typename ENTRIES_07,
5203 typename ENTRIES_08,
5204 typename ENTRIES_09,
5205 typename ENTRIES_10,
5206 typename ENTRIES_11,
5207 typename ENTRIES_12>
5208inline
5209void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5210 const bslstl::StringRef& key,
5211 const TYPE& value,
5212 const ENTRIES_01& entries_01,
5213 const ENTRIES_02& entries_02,
5214 const ENTRIES_03& entries_03,
5215 const ENTRIES_04& entries_04,
5216 const ENTRIES_05& entries_05,
5217 const ENTRIES_06& entries_06,
5218 const ENTRIES_07& entries_07,
5219 const ENTRIES_08& entries_08,
5220 const ENTRIES_09& entries_09,
5221 const ENTRIES_10& entries_10,
5222 const ENTRIES_11& entries_11,
5223 const ENTRIES_12& entries_12
5224 ) const
5225{
5226 builder->pushBack(key, (*this)(value));
5227 pushBackHelper(builder, entries_01,
5228 entries_02,
5229 entries_03,
5230 entries_04,
5231 entries_05,
5232 entries_06,
5233 entries_07,
5234 entries_08,
5235 entries_09,
5236 entries_10,
5237 entries_11,
5238 entries_12);
5239}
5240
5241template <typename TYPE, typename ENTRIES_01,
5242 typename ENTRIES_02,
5243 typename ENTRIES_03,
5244 typename ENTRIES_04,
5245 typename ENTRIES_05,
5246 typename ENTRIES_06,
5247 typename ENTRIES_07,
5248 typename ENTRIES_08,
5249 typename ENTRIES_09,
5250 typename ENTRIES_10,
5251 typename ENTRIES_11,
5252 typename ENTRIES_12,
5253 typename ENTRIES_13,
5254 typename ENTRIES_14>
5255inline
5256void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5257 const bslstl::StringRef& key,
5258 const TYPE& value,
5259 const ENTRIES_01& entries_01,
5260 const ENTRIES_02& entries_02,
5261 const ENTRIES_03& entries_03,
5262 const ENTRIES_04& entries_04,
5263 const ENTRIES_05& entries_05,
5264 const ENTRIES_06& entries_06,
5265 const ENTRIES_07& entries_07,
5266 const ENTRIES_08& entries_08,
5267 const ENTRIES_09& entries_09,
5268 const ENTRIES_10& entries_10,
5269 const ENTRIES_11& entries_11,
5270 const ENTRIES_12& entries_12,
5271 const ENTRIES_13& entries_13,
5272 const ENTRIES_14& entries_14
5273 ) const
5274{
5275 builder->pushBack(key, (*this)(value));
5276 pushBackHelper(builder, entries_01,
5277 entries_02,
5278 entries_03,
5279 entries_04,
5280 entries_05,
5281 entries_06,
5282 entries_07,
5283 entries_08,
5284 entries_09,
5285 entries_10,
5286 entries_11,
5287 entries_12,
5288 entries_13,
5289 entries_14);
5290}
5291
5292template <typename TYPE, typename ENTRIES_01,
5293 typename ENTRIES_02,
5294 typename ENTRIES_03,
5295 typename ENTRIES_04,
5296 typename ENTRIES_05,
5297 typename ENTRIES_06,
5298 typename ENTRIES_07,
5299 typename ENTRIES_08,
5300 typename ENTRIES_09,
5301 typename ENTRIES_10,
5302 typename ENTRIES_11,
5303 typename ENTRIES_12,
5304 typename ENTRIES_13,
5305 typename ENTRIES_14,
5306 typename ENTRIES_15,
5307 typename ENTRIES_16>
5308inline
5309void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5310 const bslstl::StringRef& key,
5311 const TYPE& value,
5312 const ENTRIES_01& entries_01,
5313 const ENTRIES_02& entries_02,
5314 const ENTRIES_03& entries_03,
5315 const ENTRIES_04& entries_04,
5316 const ENTRIES_05& entries_05,
5317 const ENTRIES_06& entries_06,
5318 const ENTRIES_07& entries_07,
5319 const ENTRIES_08& entries_08,
5320 const ENTRIES_09& entries_09,
5321 const ENTRIES_10& entries_10,
5322 const ENTRIES_11& entries_11,
5323 const ENTRIES_12& entries_12,
5324 const ENTRIES_13& entries_13,
5325 const ENTRIES_14& entries_14,
5326 const ENTRIES_15& entries_15,
5327 const ENTRIES_16& entries_16
5328 ) const
5329{
5330 builder->pushBack(key, (*this)(value));
5331 pushBackHelper(builder, entries_01,
5332 entries_02,
5333 entries_03,
5334 entries_04,
5335 entries_05,
5336 entries_06,
5337 entries_07,
5338 entries_08,
5339 entries_09,
5340 entries_10,
5341 entries_11,
5342 entries_12,
5343 entries_13,
5344 entries_14,
5345 entries_15,
5346 entries_16);
5347}
5348
5349template <typename TYPE, typename ENTRIES_01,
5350 typename ENTRIES_02,
5351 typename ENTRIES_03,
5352 typename ENTRIES_04,
5353 typename ENTRIES_05,
5354 typename ENTRIES_06,
5355 typename ENTRIES_07,
5356 typename ENTRIES_08,
5357 typename ENTRIES_09,
5358 typename ENTRIES_10,
5359 typename ENTRIES_11,
5360 typename ENTRIES_12,
5361 typename ENTRIES_13,
5362 typename ENTRIES_14,
5363 typename ENTRIES_15,
5364 typename ENTRIES_16,
5365 typename ENTRIES_17,
5366 typename ENTRIES_18>
5367inline
5368void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5369 const bslstl::StringRef& key,
5370 const TYPE& value,
5371 const ENTRIES_01& entries_01,
5372 const ENTRIES_02& entries_02,
5373 const ENTRIES_03& entries_03,
5374 const ENTRIES_04& entries_04,
5375 const ENTRIES_05& entries_05,
5376 const ENTRIES_06& entries_06,
5377 const ENTRIES_07& entries_07,
5378 const ENTRIES_08& entries_08,
5379 const ENTRIES_09& entries_09,
5380 const ENTRIES_10& entries_10,
5381 const ENTRIES_11& entries_11,
5382 const ENTRIES_12& entries_12,
5383 const ENTRIES_13& entries_13,
5384 const ENTRIES_14& entries_14,
5385 const ENTRIES_15& entries_15,
5386 const ENTRIES_16& entries_16,
5387 const ENTRIES_17& entries_17,
5388 const ENTRIES_18& entries_18
5389 ) const
5390{
5391 builder->pushBack(key, (*this)(value));
5392 pushBackHelper(builder, entries_01,
5393 entries_02,
5394 entries_03,
5395 entries_04,
5396 entries_05,
5397 entries_06,
5398 entries_07,
5399 entries_08,
5400 entries_09,
5401 entries_10,
5402 entries_11,
5403 entries_12,
5404 entries_13,
5405 entries_14,
5406 entries_15,
5407 entries_16,
5408 entries_17,
5409 entries_18);
5410}
5411
5412template <typename TYPE, typename ENTRIES_01,
5413 typename ENTRIES_02,
5414 typename ENTRIES_03,
5415 typename ENTRIES_04,
5416 typename ENTRIES_05,
5417 typename ENTRIES_06,
5418 typename ENTRIES_07,
5419 typename ENTRIES_08,
5420 typename ENTRIES_09,
5421 typename ENTRIES_10,
5422 typename ENTRIES_11,
5423 typename ENTRIES_12,
5424 typename ENTRIES_13,
5425 typename ENTRIES_14,
5426 typename ENTRIES_15,
5427 typename ENTRIES_16,
5428 typename ENTRIES_17,
5429 typename ENTRIES_18,
5430 typename ENTRIES_19,
5431 typename ENTRIES_20>
5432inline
5433void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5434 const bslstl::StringRef& key,
5435 const TYPE& value,
5436 const ENTRIES_01& entries_01,
5437 const ENTRIES_02& entries_02,
5438 const ENTRIES_03& entries_03,
5439 const ENTRIES_04& entries_04,
5440 const ENTRIES_05& entries_05,
5441 const ENTRIES_06& entries_06,
5442 const ENTRIES_07& entries_07,
5443 const ENTRIES_08& entries_08,
5444 const ENTRIES_09& entries_09,
5445 const ENTRIES_10& entries_10,
5446 const ENTRIES_11& entries_11,
5447 const ENTRIES_12& entries_12,
5448 const ENTRIES_13& entries_13,
5449 const ENTRIES_14& entries_14,
5450 const ENTRIES_15& entries_15,
5451 const ENTRIES_16& entries_16,
5452 const ENTRIES_17& entries_17,
5453 const ENTRIES_18& entries_18,
5454 const ENTRIES_19& entries_19,
5455 const ENTRIES_20& entries_20
5456 ) const
5457{
5458 builder->pushBack(key, (*this)(value));
5459 pushBackHelper(builder, entries_01,
5460 entries_02,
5461 entries_03,
5462 entries_04,
5463 entries_05,
5464 entries_06,
5465 entries_07,
5466 entries_08,
5467 entries_09,
5468 entries_10,
5469 entries_11,
5470 entries_12,
5471 entries_13,
5472 entries_14,
5473 entries_15,
5474 entries_16,
5475 entries_17,
5476 entries_18,
5477 entries_19,
5478 entries_20);
5479}
5480
5481template <typename TYPE, typename ENTRIES_01,
5482 typename ENTRIES_02,
5483 typename ENTRIES_03,
5484 typename ENTRIES_04,
5485 typename ENTRIES_05,
5486 typename ENTRIES_06,
5487 typename ENTRIES_07,
5488 typename ENTRIES_08,
5489 typename ENTRIES_09,
5490 typename ENTRIES_10,
5491 typename ENTRIES_11,
5492 typename ENTRIES_12,
5493 typename ENTRIES_13,
5494 typename ENTRIES_14,
5495 typename ENTRIES_15,
5496 typename ENTRIES_16,
5497 typename ENTRIES_17,
5498 typename ENTRIES_18,
5499 typename ENTRIES_19,
5500 typename ENTRIES_20,
5501 typename ENTRIES_21,
5502 typename ENTRIES_22>
5503inline
5504void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5505 const bslstl::StringRef& key,
5506 const TYPE& value,
5507 const ENTRIES_01& entries_01,
5508 const ENTRIES_02& entries_02,
5509 const ENTRIES_03& entries_03,
5510 const ENTRIES_04& entries_04,
5511 const ENTRIES_05& entries_05,
5512 const ENTRIES_06& entries_06,
5513 const ENTRIES_07& entries_07,
5514 const ENTRIES_08& entries_08,
5515 const ENTRIES_09& entries_09,
5516 const ENTRIES_10& entries_10,
5517 const ENTRIES_11& entries_11,
5518 const ENTRIES_12& entries_12,
5519 const ENTRIES_13& entries_13,
5520 const ENTRIES_14& entries_14,
5521 const ENTRIES_15& entries_15,
5522 const ENTRIES_16& entries_16,
5523 const ENTRIES_17& entries_17,
5524 const ENTRIES_18& entries_18,
5525 const ENTRIES_19& entries_19,
5526 const ENTRIES_20& entries_20,
5527 const ENTRIES_21& entries_21,
5528 const ENTRIES_22& entries_22
5529 ) const
5530{
5531 builder->pushBack(key, (*this)(value));
5532 pushBackHelper(builder, entries_01,
5533 entries_02,
5534 entries_03,
5535 entries_04,
5536 entries_05,
5537 entries_06,
5538 entries_07,
5539 entries_08,
5540 entries_09,
5541 entries_10,
5542 entries_11,
5543 entries_12,
5544 entries_13,
5545 entries_14,
5546 entries_15,
5547 entries_16,
5548 entries_17,
5549 entries_18,
5550 entries_19,
5551 entries_20,
5552 entries_21,
5553 entries_22);
5554}
5555
5556template <typename TYPE, typename ENTRIES_01,
5557 typename ENTRIES_02,
5558 typename ENTRIES_03,
5559 typename ENTRIES_04,
5560 typename ENTRIES_05,
5561 typename ENTRIES_06,
5562 typename ENTRIES_07,
5563 typename ENTRIES_08,
5564 typename ENTRIES_09,
5565 typename ENTRIES_10,
5566 typename ENTRIES_11,
5567 typename ENTRIES_12,
5568 typename ENTRIES_13,
5569 typename ENTRIES_14,
5570 typename ENTRIES_15,
5571 typename ENTRIES_16,
5572 typename ENTRIES_17,
5573 typename ENTRIES_18,
5574 typename ENTRIES_19,
5575 typename ENTRIES_20,
5576 typename ENTRIES_21,
5577 typename ENTRIES_22,
5578 typename ENTRIES_23,
5579 typename ENTRIES_24>
5580inline
5581void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5582 const bslstl::StringRef& key,
5583 const TYPE& value,
5584 const ENTRIES_01& entries_01,
5585 const ENTRIES_02& entries_02,
5586 const ENTRIES_03& entries_03,
5587 const ENTRIES_04& entries_04,
5588 const ENTRIES_05& entries_05,
5589 const ENTRIES_06& entries_06,
5590 const ENTRIES_07& entries_07,
5591 const ENTRIES_08& entries_08,
5592 const ENTRIES_09& entries_09,
5593 const ENTRIES_10& entries_10,
5594 const ENTRIES_11& entries_11,
5595 const ENTRIES_12& entries_12,
5596 const ENTRIES_13& entries_13,
5597 const ENTRIES_14& entries_14,
5598 const ENTRIES_15& entries_15,
5599 const ENTRIES_16& entries_16,
5600 const ENTRIES_17& entries_17,
5601 const ENTRIES_18& entries_18,
5602 const ENTRIES_19& entries_19,
5603 const ENTRIES_20& entries_20,
5604 const ENTRIES_21& entries_21,
5605 const ENTRIES_22& entries_22,
5606 const ENTRIES_23& entries_23,
5607 const ENTRIES_24& entries_24
5608 ) const
5609{
5610 builder->pushBack(key, (*this)(value));
5611 pushBackHelper(builder, entries_01,
5612 entries_02,
5613 entries_03,
5614 entries_04,
5615 entries_05,
5616 entries_06,
5617 entries_07,
5618 entries_08,
5619 entries_09,
5620 entries_10,
5621 entries_11,
5622 entries_12,
5623 entries_13,
5624 entries_14,
5625 entries_15,
5626 entries_16,
5627 entries_17,
5628 entries_18,
5629 entries_19,
5630 entries_20,
5631 entries_21,
5632 entries_22,
5633 entries_23,
5634 entries_24);
5635}
5636
5637template <typename TYPE, typename ENTRIES_01,
5638 typename ENTRIES_02,
5639 typename ENTRIES_03,
5640 typename ENTRIES_04,
5641 typename ENTRIES_05,
5642 typename ENTRIES_06,
5643 typename ENTRIES_07,
5644 typename ENTRIES_08,
5645 typename ENTRIES_09,
5646 typename ENTRIES_10,
5647 typename ENTRIES_11,
5648 typename ENTRIES_12,
5649 typename ENTRIES_13,
5650 typename ENTRIES_14,
5651 typename ENTRIES_15,
5652 typename ENTRIES_16,
5653 typename ENTRIES_17,
5654 typename ENTRIES_18,
5655 typename ENTRIES_19,
5656 typename ENTRIES_20,
5657 typename ENTRIES_21,
5658 typename ENTRIES_22,
5659 typename ENTRIES_23,
5660 typename ENTRIES_24,
5661 typename ENTRIES_25,
5662 typename ENTRIES_26>
5663inline
5664void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5665 const bslstl::StringRef& key,
5666 const TYPE& value,
5667 const ENTRIES_01& entries_01,
5668 const ENTRIES_02& entries_02,
5669 const ENTRIES_03& entries_03,
5670 const ENTRIES_04& entries_04,
5671 const ENTRIES_05& entries_05,
5672 const ENTRIES_06& entries_06,
5673 const ENTRIES_07& entries_07,
5674 const ENTRIES_08& entries_08,
5675 const ENTRIES_09& entries_09,
5676 const ENTRIES_10& entries_10,
5677 const ENTRIES_11& entries_11,
5678 const ENTRIES_12& entries_12,
5679 const ENTRIES_13& entries_13,
5680 const ENTRIES_14& entries_14,
5681 const ENTRIES_15& entries_15,
5682 const ENTRIES_16& entries_16,
5683 const ENTRIES_17& entries_17,
5684 const ENTRIES_18& entries_18,
5685 const ENTRIES_19& entries_19,
5686 const ENTRIES_20& entries_20,
5687 const ENTRIES_21& entries_21,
5688 const ENTRIES_22& entries_22,
5689 const ENTRIES_23& entries_23,
5690 const ENTRIES_24& entries_24,
5691 const ENTRIES_25& entries_25,
5692 const ENTRIES_26& entries_26
5693 ) const
5694{
5695 builder->pushBack(key, (*this)(value));
5696 pushBackHelper(builder, entries_01,
5697 entries_02,
5698 entries_03,
5699 entries_04,
5700 entries_05,
5701 entries_06,
5702 entries_07,
5703 entries_08,
5704 entries_09,
5705 entries_10,
5706 entries_11,
5707 entries_12,
5708 entries_13,
5709 entries_14,
5710 entries_15,
5711 entries_16,
5712 entries_17,
5713 entries_18,
5714 entries_19,
5715 entries_20,
5716 entries_21,
5717 entries_22,
5718 entries_23,
5719 entries_24,
5720 entries_25,
5721 entries_26);
5722}
5723
5724template <typename TYPE, typename ENTRIES_01,
5725 typename ENTRIES_02,
5726 typename ENTRIES_03,
5727 typename ENTRIES_04,
5728 typename ENTRIES_05,
5729 typename ENTRIES_06,
5730 typename ENTRIES_07,
5731 typename ENTRIES_08,
5732 typename ENTRIES_09,
5733 typename ENTRIES_10,
5734 typename ENTRIES_11,
5735 typename ENTRIES_12,
5736 typename ENTRIES_13,
5737 typename ENTRIES_14,
5738 typename ENTRIES_15,
5739 typename ENTRIES_16,
5740 typename ENTRIES_17,
5741 typename ENTRIES_18,
5742 typename ENTRIES_19,
5743 typename ENTRIES_20,
5744 typename ENTRIES_21,
5745 typename ENTRIES_22,
5746 typename ENTRIES_23,
5747 typename ENTRIES_24,
5748 typename ENTRIES_25,
5749 typename ENTRIES_26,
5750 typename ENTRIES_27,
5751 typename ENTRIES_28>
5752inline
5753void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5754 const bslstl::StringRef& key,
5755 const TYPE& value,
5756 const ENTRIES_01& entries_01,
5757 const ENTRIES_02& entries_02,
5758 const ENTRIES_03& entries_03,
5759 const ENTRIES_04& entries_04,
5760 const ENTRIES_05& entries_05,
5761 const ENTRIES_06& entries_06,
5762 const ENTRIES_07& entries_07,
5763 const ENTRIES_08& entries_08,
5764 const ENTRIES_09& entries_09,
5765 const ENTRIES_10& entries_10,
5766 const ENTRIES_11& entries_11,
5767 const ENTRIES_12& entries_12,
5768 const ENTRIES_13& entries_13,
5769 const ENTRIES_14& entries_14,
5770 const ENTRIES_15& entries_15,
5771 const ENTRIES_16& entries_16,
5772 const ENTRIES_17& entries_17,
5773 const ENTRIES_18& entries_18,
5774 const ENTRIES_19& entries_19,
5775 const ENTRIES_20& entries_20,
5776 const ENTRIES_21& entries_21,
5777 const ENTRIES_22& entries_22,
5778 const ENTRIES_23& entries_23,
5779 const ENTRIES_24& entries_24,
5780 const ENTRIES_25& entries_25,
5781 const ENTRIES_26& entries_26,
5782 const ENTRIES_27& entries_27,
5783 const ENTRIES_28& entries_28
5784 ) const
5785{
5786 builder->pushBack(key, (*this)(value));
5787 pushBackHelper(builder, entries_01,
5788 entries_02,
5789 entries_03,
5790 entries_04,
5791 entries_05,
5792 entries_06,
5793 entries_07,
5794 entries_08,
5795 entries_09,
5796 entries_10,
5797 entries_11,
5798 entries_12,
5799 entries_13,
5800 entries_14,
5801 entries_15,
5802 entries_16,
5803 entries_17,
5804 entries_18,
5805 entries_19,
5806 entries_20,
5807 entries_21,
5808 entries_22,
5809 entries_23,
5810 entries_24,
5811 entries_25,
5812 entries_26,
5813 entries_27,
5814 entries_28);
5815}
5816
5817template <typename TYPE, typename ENTRIES_01,
5818 typename ENTRIES_02,
5819 typename ENTRIES_03,
5820 typename ENTRIES_04,
5821 typename ENTRIES_05,
5822 typename ENTRIES_06,
5823 typename ENTRIES_07,
5824 typename ENTRIES_08,
5825 typename ENTRIES_09,
5826 typename ENTRIES_10,
5827 typename ENTRIES_11,
5828 typename ENTRIES_12,
5829 typename ENTRIES_13,
5830 typename ENTRIES_14,
5831 typename ENTRIES_15,
5832 typename ENTRIES_16,
5833 typename ENTRIES_17,
5834 typename ENTRIES_18,
5835 typename ENTRIES_19,
5836 typename ENTRIES_20,
5837 typename ENTRIES_21,
5838 typename ENTRIES_22,
5839 typename ENTRIES_23,
5840 typename ENTRIES_24,
5841 typename ENTRIES_25,
5842 typename ENTRIES_26,
5843 typename ENTRIES_27,
5844 typename ENTRIES_28,
5845 typename ENTRIES_29,
5846 typename ENTRIES_30>
5847inline
5848void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5849 const bslstl::StringRef& key,
5850 const TYPE& value,
5851 const ENTRIES_01& entries_01,
5852 const ENTRIES_02& entries_02,
5853 const ENTRIES_03& entries_03,
5854 const ENTRIES_04& entries_04,
5855 const ENTRIES_05& entries_05,
5856 const ENTRIES_06& entries_06,
5857 const ENTRIES_07& entries_07,
5858 const ENTRIES_08& entries_08,
5859 const ENTRIES_09& entries_09,
5860 const ENTRIES_10& entries_10,
5861 const ENTRIES_11& entries_11,
5862 const ENTRIES_12& entries_12,
5863 const ENTRIES_13& entries_13,
5864 const ENTRIES_14& entries_14,
5865 const ENTRIES_15& entries_15,
5866 const ENTRIES_16& entries_16,
5867 const ENTRIES_17& entries_17,
5868 const ENTRIES_18& entries_18,
5869 const ENTRIES_19& entries_19,
5870 const ENTRIES_20& entries_20,
5871 const ENTRIES_21& entries_21,
5872 const ENTRIES_22& entries_22,
5873 const ENTRIES_23& entries_23,
5874 const ENTRIES_24& entries_24,
5875 const ENTRIES_25& entries_25,
5876 const ENTRIES_26& entries_26,
5877 const ENTRIES_27& entries_27,
5878 const ENTRIES_28& entries_28,
5879 const ENTRIES_29& entries_29,
5880 const ENTRIES_30& entries_30
5881 ) const
5882{
5883 builder->pushBack(key, (*this)(value));
5884 pushBackHelper(builder, entries_01,
5885 entries_02,
5886 entries_03,
5887 entries_04,
5888 entries_05,
5889 entries_06,
5890 entries_07,
5891 entries_08,
5892 entries_09,
5893 entries_10,
5894 entries_11,
5895 entries_12,
5896 entries_13,
5897 entries_14,
5898 entries_15,
5899 entries_16,
5900 entries_17,
5901 entries_18,
5902 entries_19,
5903 entries_20,
5904 entries_21,
5905 entries_22,
5906 entries_23,
5907 entries_24,
5908 entries_25,
5909 entries_26,
5910 entries_27,
5911 entries_28,
5912 entries_29,
5913 entries_30);
5914}
5915
5916template <typename TYPE, typename ENTRIES_01,
5917 typename ENTRIES_02,
5918 typename ENTRIES_03,
5919 typename ENTRIES_04,
5920 typename ENTRIES_05,
5921 typename ENTRIES_06,
5922 typename ENTRIES_07,
5923 typename ENTRIES_08,
5924 typename ENTRIES_09,
5925 typename ENTRIES_10,
5926 typename ENTRIES_11,
5927 typename ENTRIES_12,
5928 typename ENTRIES_13,
5929 typename ENTRIES_14,
5930 typename ENTRIES_15,
5931 typename ENTRIES_16,
5932 typename ENTRIES_17,
5933 typename ENTRIES_18,
5934 typename ENTRIES_19,
5935 typename ENTRIES_20,
5936 typename ENTRIES_21,
5937 typename ENTRIES_22,
5938 typename ENTRIES_23,
5939 typename ENTRIES_24,
5940 typename ENTRIES_25,
5941 typename ENTRIES_26,
5942 typename ENTRIES_27,
5943 typename ENTRIES_28,
5944 typename ENTRIES_29,
5945 typename ENTRIES_30,
5946 typename ENTRIES_31,
5947 typename ENTRIES_32>
5948inline
5949void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5950 const bslstl::StringRef& key,
5951 const TYPE& value,
5952 const ENTRIES_01& entries_01,
5953 const ENTRIES_02& entries_02,
5954 const ENTRIES_03& entries_03,
5955 const ENTRIES_04& entries_04,
5956 const ENTRIES_05& entries_05,
5957 const ENTRIES_06& entries_06,
5958 const ENTRIES_07& entries_07,
5959 const ENTRIES_08& entries_08,
5960 const ENTRIES_09& entries_09,
5961 const ENTRIES_10& entries_10,
5962 const ENTRIES_11& entries_11,
5963 const ENTRIES_12& entries_12,
5964 const ENTRIES_13& entries_13,
5965 const ENTRIES_14& entries_14,
5966 const ENTRIES_15& entries_15,
5967 const ENTRIES_16& entries_16,
5968 const ENTRIES_17& entries_17,
5969 const ENTRIES_18& entries_18,
5970 const ENTRIES_19& entries_19,
5971 const ENTRIES_20& entries_20,
5972 const ENTRIES_21& entries_21,
5973 const ENTRIES_22& entries_22,
5974 const ENTRIES_23& entries_23,
5975 const ENTRIES_24& entries_24,
5976 const ENTRIES_25& entries_25,
5977 const ENTRIES_26& entries_26,
5978 const ENTRIES_27& entries_27,
5979 const ENTRIES_28& entries_28,
5980 const ENTRIES_29& entries_29,
5981 const ENTRIES_30& entries_30,
5982 const ENTRIES_31& entries_31,
5983 const ENTRIES_32& entries_32
5984 ) const
5985{
5986 builder->pushBack(key, (*this)(value));
5987 pushBackHelper(builder, entries_01,
5988 entries_02,
5989 entries_03,
5990 entries_04,
5991 entries_05,
5992 entries_06,
5993 entries_07,
5994 entries_08,
5995 entries_09,
5996 entries_10,
5997 entries_11,
5998 entries_12,
5999 entries_13,
6000 entries_14,
6001 entries_15,
6002 entries_16,
6003 entries_17,
6004 entries_18,
6005 entries_19,
6006 entries_20,
6007 entries_21,
6008 entries_22,
6009 entries_23,
6010 entries_24,
6011 entries_25,
6012 entries_26,
6013 entries_27,
6014 entries_28,
6015 entries_29,
6016 entries_30,
6017 entries_31,
6018 entries_32);
6019}
6020
6021template <typename TYPE>
6022inline
6023void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6024 const bslstl::StringRef& key,
6025 const TYPE& value
6026 ) const
6027{
6028 builder->pushBack(key, (*this)(value));
6029 pushBackHelper(builder);
6030}
6031
6032template <typename TYPE, typename ENTRIES_01,
6033 typename ENTRIES_02>
6034inline
6035void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6036 const bslstl::StringRef& key,
6037 const TYPE& value,
6038 const ENTRIES_01& entries_01,
6039 const ENTRIES_02& entries_02
6040 ) const
6041{
6042 builder->pushBack(key, (*this)(value));
6043 pushBackHelper(builder, entries_01,
6044 entries_02);
6045}
6046
6047template <typename TYPE, typename ENTRIES_01,
6048 typename ENTRIES_02,
6049 typename ENTRIES_03,
6050 typename ENTRIES_04>
6051inline
6052void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6053 const bslstl::StringRef& key,
6054 const TYPE& value,
6055 const ENTRIES_01& entries_01,
6056 const ENTRIES_02& entries_02,
6057 const ENTRIES_03& entries_03,
6058 const ENTRIES_04& entries_04
6059 ) const
6060{
6061 builder->pushBack(key, (*this)(value));
6062 pushBackHelper(builder, entries_01,
6063 entries_02,
6064 entries_03,
6065 entries_04);
6066}
6067
6068template <typename TYPE, typename ENTRIES_01,
6069 typename ENTRIES_02,
6070 typename ENTRIES_03,
6071 typename ENTRIES_04,
6072 typename ENTRIES_05,
6073 typename ENTRIES_06>
6074inline
6075void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6076 const bslstl::StringRef& key,
6077 const TYPE& value,
6078 const ENTRIES_01& entries_01,
6079 const ENTRIES_02& entries_02,
6080 const ENTRIES_03& entries_03,
6081 const ENTRIES_04& entries_04,
6082 const ENTRIES_05& entries_05,
6083 const ENTRIES_06& entries_06
6084 ) const
6085{
6086 builder->pushBack(key, (*this)(value));
6087 pushBackHelper(builder, entries_01,
6088 entries_02,
6089 entries_03,
6090 entries_04,
6091 entries_05,
6092 entries_06);
6093}
6094
6095template <typename TYPE, typename ENTRIES_01,
6096 typename ENTRIES_02,
6097 typename ENTRIES_03,
6098 typename ENTRIES_04,
6099 typename ENTRIES_05,
6100 typename ENTRIES_06,
6101 typename ENTRIES_07,
6102 typename ENTRIES_08>
6103inline
6104void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6105 const bslstl::StringRef& key,
6106 const TYPE& value,
6107 const ENTRIES_01& entries_01,
6108 const ENTRIES_02& entries_02,
6109 const ENTRIES_03& entries_03,
6110 const ENTRIES_04& entries_04,
6111 const ENTRIES_05& entries_05,
6112 const ENTRIES_06& entries_06,
6113 const ENTRIES_07& entries_07,
6114 const ENTRIES_08& entries_08
6115 ) const
6116{
6117 builder->pushBack(key, (*this)(value));
6118 pushBackHelper(builder, entries_01,
6119 entries_02,
6120 entries_03,
6121 entries_04,
6122 entries_05,
6123 entries_06,
6124 entries_07,
6125 entries_08);
6126}
6127
6128template <typename TYPE, typename ENTRIES_01,
6129 typename ENTRIES_02,
6130 typename ENTRIES_03,
6131 typename ENTRIES_04,
6132 typename ENTRIES_05,
6133 typename ENTRIES_06,
6134 typename ENTRIES_07,
6135 typename ENTRIES_08,
6136 typename ENTRIES_09,
6137 typename ENTRIES_10>
6138inline
6139void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6140 const bslstl::StringRef& key,
6141 const TYPE& value,
6142 const ENTRIES_01& entries_01,
6143 const ENTRIES_02& entries_02,
6144 const ENTRIES_03& entries_03,
6145 const ENTRIES_04& entries_04,
6146 const ENTRIES_05& entries_05,
6147 const ENTRIES_06& entries_06,
6148 const ENTRIES_07& entries_07,
6149 const ENTRIES_08& entries_08,
6150 const ENTRIES_09& entries_09,
6151 const ENTRIES_10& entries_10
6152 ) const
6153{
6154 builder->pushBack(key, (*this)(value));
6155 pushBackHelper(builder, entries_01,
6156 entries_02,
6157 entries_03,
6158 entries_04,
6159 entries_05,
6160 entries_06,
6161 entries_07,
6162 entries_08,
6163 entries_09,
6164 entries_10);
6165}
6166
6167template <typename TYPE, typename ENTRIES_01,
6168 typename ENTRIES_02,
6169 typename ENTRIES_03,
6170 typename ENTRIES_04,
6171 typename ENTRIES_05,
6172 typename ENTRIES_06,
6173 typename ENTRIES_07,
6174 typename ENTRIES_08,
6175 typename ENTRIES_09,
6176 typename ENTRIES_10,
6177 typename ENTRIES_11,
6178 typename ENTRIES_12>
6179inline
6180void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6181 const bslstl::StringRef& key,
6182 const TYPE& value,
6183 const ENTRIES_01& entries_01,
6184 const ENTRIES_02& entries_02,
6185 const ENTRIES_03& entries_03,
6186 const ENTRIES_04& entries_04,
6187 const ENTRIES_05& entries_05,
6188 const ENTRIES_06& entries_06,
6189 const ENTRIES_07& entries_07,
6190 const ENTRIES_08& entries_08,
6191 const ENTRIES_09& entries_09,
6192 const ENTRIES_10& entries_10,
6193 const ENTRIES_11& entries_11,
6194 const ENTRIES_12& entries_12
6195 ) const
6196{
6197 builder->pushBack(key, (*this)(value));
6198 pushBackHelper(builder, entries_01,
6199 entries_02,
6200 entries_03,
6201 entries_04,
6202 entries_05,
6203 entries_06,
6204 entries_07,
6205 entries_08,
6206 entries_09,
6207 entries_10,
6208 entries_11,
6209 entries_12);
6210}
6211
6212template <typename TYPE, typename ENTRIES_01,
6213 typename ENTRIES_02,
6214 typename ENTRIES_03,
6215 typename ENTRIES_04,
6216 typename ENTRIES_05,
6217 typename ENTRIES_06,
6218 typename ENTRIES_07,
6219 typename ENTRIES_08,
6220 typename ENTRIES_09,
6221 typename ENTRIES_10,
6222 typename ENTRIES_11,
6223 typename ENTRIES_12,
6224 typename ENTRIES_13,
6225 typename ENTRIES_14>
6226inline
6227void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6228 const bslstl::StringRef& key,
6229 const TYPE& value,
6230 const ENTRIES_01& entries_01,
6231 const ENTRIES_02& entries_02,
6232 const ENTRIES_03& entries_03,
6233 const ENTRIES_04& entries_04,
6234 const ENTRIES_05& entries_05,
6235 const ENTRIES_06& entries_06,
6236 const ENTRIES_07& entries_07,
6237 const ENTRIES_08& entries_08,
6238 const ENTRIES_09& entries_09,
6239 const ENTRIES_10& entries_10,
6240 const ENTRIES_11& entries_11,
6241 const ENTRIES_12& entries_12,
6242 const ENTRIES_13& entries_13,
6243 const ENTRIES_14& entries_14
6244 ) const
6245{
6246 builder->pushBack(key, (*this)(value));
6247 pushBackHelper(builder, entries_01,
6248 entries_02,
6249 entries_03,
6250 entries_04,
6251 entries_05,
6252 entries_06,
6253 entries_07,
6254 entries_08,
6255 entries_09,
6256 entries_10,
6257 entries_11,
6258 entries_12,
6259 entries_13,
6260 entries_14);
6261}
6262
6263template <typename TYPE, typename ENTRIES_01,
6264 typename ENTRIES_02,
6265 typename ENTRIES_03,
6266 typename ENTRIES_04,
6267 typename ENTRIES_05,
6268 typename ENTRIES_06,
6269 typename ENTRIES_07,
6270 typename ENTRIES_08,
6271 typename ENTRIES_09,
6272 typename ENTRIES_10,
6273 typename ENTRIES_11,
6274 typename ENTRIES_12,
6275 typename ENTRIES_13,
6276 typename ENTRIES_14,
6277 typename ENTRIES_15,
6278 typename ENTRIES_16>
6279inline
6280void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6281 const bslstl::StringRef& key,
6282 const TYPE& value,
6283 const ENTRIES_01& entries_01,
6284 const ENTRIES_02& entries_02,
6285 const ENTRIES_03& entries_03,
6286 const ENTRIES_04& entries_04,
6287 const ENTRIES_05& entries_05,
6288 const ENTRIES_06& entries_06,
6289 const ENTRIES_07& entries_07,
6290 const ENTRIES_08& entries_08,
6291 const ENTRIES_09& entries_09,
6292 const ENTRIES_10& entries_10,
6293 const ENTRIES_11& entries_11,
6294 const ENTRIES_12& entries_12,
6295 const ENTRIES_13& entries_13,
6296 const ENTRIES_14& entries_14,
6297 const ENTRIES_15& entries_15,
6298 const ENTRIES_16& entries_16
6299 ) const
6300{
6301 builder->pushBack(key, (*this)(value));
6302 pushBackHelper(builder, entries_01,
6303 entries_02,
6304 entries_03,
6305 entries_04,
6306 entries_05,
6307 entries_06,
6308 entries_07,
6309 entries_08,
6310 entries_09,
6311 entries_10,
6312 entries_11,
6313 entries_12,
6314 entries_13,
6315 entries_14,
6316 entries_15,
6317 entries_16);
6318}
6319template <typename TYPE, typename ENTRIES_01,
6320 typename ENTRIES_02,
6321 typename ENTRIES_03,
6322 typename ENTRIES_04,
6323 typename ENTRIES_05,
6324 typename ENTRIES_06,
6325 typename ENTRIES_07,
6326 typename ENTRIES_08,
6327 typename ENTRIES_09,
6328 typename ENTRIES_10,
6329 typename ENTRIES_11,
6330 typename ENTRIES_12,
6331 typename ENTRIES_13,
6332 typename ENTRIES_14,
6333 typename ENTRIES_15,
6334 typename ENTRIES_16,
6335 typename ENTRIES_17,
6336 typename ENTRIES_18>
6337inline
6338void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6339 const bslstl::StringRef& key,
6340 const TYPE& value,
6341 const ENTRIES_01& entries_01,
6342 const ENTRIES_02& entries_02,
6343 const ENTRIES_03& entries_03,
6344 const ENTRIES_04& entries_04,
6345 const ENTRIES_05& entries_05,
6346 const ENTRIES_06& entries_06,
6347 const ENTRIES_07& entries_07,
6348 const ENTRIES_08& entries_08,
6349 const ENTRIES_09& entries_09,
6350 const ENTRIES_10& entries_10,
6351 const ENTRIES_11& entries_11,
6352 const ENTRIES_12& entries_12,
6353 const ENTRIES_13& entries_13,
6354 const ENTRIES_14& entries_14,
6355 const ENTRIES_15& entries_15,
6356 const ENTRIES_16& entries_16,
6357 const ENTRIES_17& entries_17,
6358 const ENTRIES_18& entries_18
6359 ) const
6360{
6361 builder->pushBack(key, (*this)(value));
6362 pushBackHelper(builder, entries_01,
6363 entries_02,
6364 entries_03,
6365 entries_04,
6366 entries_05,
6367 entries_06,
6368 entries_07,
6369 entries_08,
6370 entries_09,
6371 entries_10,
6372 entries_11,
6373 entries_12,
6374 entries_13,
6375 entries_14,
6376 entries_15,
6377 entries_16,
6378 entries_17,
6379 entries_18);
6380}
6381
6382template <typename TYPE, typename ENTRIES_01,
6383 typename ENTRIES_02,
6384 typename ENTRIES_03,
6385 typename ENTRIES_04,
6386 typename ENTRIES_05,
6387 typename ENTRIES_06,
6388 typename ENTRIES_07,
6389 typename ENTRIES_08,
6390 typename ENTRIES_09,
6391 typename ENTRIES_10,
6392 typename ENTRIES_11,
6393 typename ENTRIES_12,
6394 typename ENTRIES_13,
6395 typename ENTRIES_14,
6396 typename ENTRIES_15,
6397 typename ENTRIES_16,
6398 typename ENTRIES_17,
6399 typename ENTRIES_18,
6400 typename ENTRIES_19,
6401 typename ENTRIES_20>
6402inline
6403void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6404 const bslstl::StringRef& key,
6405 const TYPE& value,
6406 const ENTRIES_01& entries_01,
6407 const ENTRIES_02& entries_02,
6408 const ENTRIES_03& entries_03,
6409 const ENTRIES_04& entries_04,
6410 const ENTRIES_05& entries_05,
6411 const ENTRIES_06& entries_06,
6412 const ENTRIES_07& entries_07,
6413 const ENTRIES_08& entries_08,
6414 const ENTRIES_09& entries_09,
6415 const ENTRIES_10& entries_10,
6416 const ENTRIES_11& entries_11,
6417 const ENTRIES_12& entries_12,
6418 const ENTRIES_13& entries_13,
6419 const ENTRIES_14& entries_14,
6420 const ENTRIES_15& entries_15,
6421 const ENTRIES_16& entries_16,
6422 const ENTRIES_17& entries_17,
6423 const ENTRIES_18& entries_18,
6424 const ENTRIES_19& entries_19,
6425 const ENTRIES_20& entries_20
6426 ) const
6427{
6428 builder->pushBack(key, (*this)(value));
6429 pushBackHelper(builder, entries_01,
6430 entries_02,
6431 entries_03,
6432 entries_04,
6433 entries_05,
6434 entries_06,
6435 entries_07,
6436 entries_08,
6437 entries_09,
6438 entries_10,
6439 entries_11,
6440 entries_12,
6441 entries_13,
6442 entries_14,
6443 entries_15,
6444 entries_16,
6445 entries_17,
6446 entries_18,
6447 entries_19,
6448 entries_20);
6449}
6450
6451template <typename TYPE, typename ENTRIES_01,
6452 typename ENTRIES_02,
6453 typename ENTRIES_03,
6454 typename ENTRIES_04,
6455 typename ENTRIES_05,
6456 typename ENTRIES_06,
6457 typename ENTRIES_07,
6458 typename ENTRIES_08,
6459 typename ENTRIES_09,
6460 typename ENTRIES_10,
6461 typename ENTRIES_11,
6462 typename ENTRIES_12,
6463 typename ENTRIES_13,
6464 typename ENTRIES_14,
6465 typename ENTRIES_15,
6466 typename ENTRIES_16,
6467 typename ENTRIES_17,
6468 typename ENTRIES_18,
6469 typename ENTRIES_19,
6470 typename ENTRIES_20,
6471 typename ENTRIES_21,
6472 typename ENTRIES_22>
6473inline
6474void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6475 const bslstl::StringRef& key,
6476 const TYPE& value,
6477 const ENTRIES_01& entries_01,
6478 const ENTRIES_02& entries_02,
6479 const ENTRIES_03& entries_03,
6480 const ENTRIES_04& entries_04,
6481 const ENTRIES_05& entries_05,
6482 const ENTRIES_06& entries_06,
6483 const ENTRIES_07& entries_07,
6484 const ENTRIES_08& entries_08,
6485 const ENTRIES_09& entries_09,
6486 const ENTRIES_10& entries_10,
6487 const ENTRIES_11& entries_11,
6488 const ENTRIES_12& entries_12,
6489 const ENTRIES_13& entries_13,
6490 const ENTRIES_14& entries_14,
6491 const ENTRIES_15& entries_15,
6492 const ENTRIES_16& entries_16,
6493 const ENTRIES_17& entries_17,
6494 const ENTRIES_18& entries_18,
6495 const ENTRIES_19& entries_19,
6496 const ENTRIES_20& entries_20,
6497 const ENTRIES_21& entries_21,
6498 const ENTRIES_22& entries_22
6499 ) const
6500{
6501 builder->pushBack(key, (*this)(value));
6502 pushBackHelper(builder, entries_01,
6503 entries_02,
6504 entries_03,
6505 entries_04,
6506 entries_05,
6507 entries_06,
6508 entries_07,
6509 entries_08,
6510 entries_09,
6511 entries_10,
6512 entries_11,
6513 entries_12,
6514 entries_13,
6515 entries_14,
6516 entries_15,
6517 entries_16,
6518 entries_17,
6519 entries_18,
6520 entries_19,
6521 entries_20,
6522 entries_21,
6523 entries_22);
6524}
6525
6526template <typename TYPE, typename ENTRIES_01,
6527 typename ENTRIES_02,
6528 typename ENTRIES_03,
6529 typename ENTRIES_04,
6530 typename ENTRIES_05,
6531 typename ENTRIES_06,
6532 typename ENTRIES_07,
6533 typename ENTRIES_08,
6534 typename ENTRIES_09,
6535 typename ENTRIES_10,
6536 typename ENTRIES_11,
6537 typename ENTRIES_12,
6538 typename ENTRIES_13,
6539 typename ENTRIES_14,
6540 typename ENTRIES_15,
6541 typename ENTRIES_16,
6542 typename ENTRIES_17,
6543 typename ENTRIES_18,
6544 typename ENTRIES_19,
6545 typename ENTRIES_20,
6546 typename ENTRIES_21,
6547 typename ENTRIES_22,
6548 typename ENTRIES_23,
6549 typename ENTRIES_24>
6550inline
6551void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6552 const bslstl::StringRef& key,
6553 const TYPE& value,
6554 const ENTRIES_01& entries_01,
6555 const ENTRIES_02& entries_02,
6556 const ENTRIES_03& entries_03,
6557 const ENTRIES_04& entries_04,
6558 const ENTRIES_05& entries_05,
6559 const ENTRIES_06& entries_06,
6560 const ENTRIES_07& entries_07,
6561 const ENTRIES_08& entries_08,
6562 const ENTRIES_09& entries_09,
6563 const ENTRIES_10& entries_10,
6564 const ENTRIES_11& entries_11,
6565 const ENTRIES_12& entries_12,
6566 const ENTRIES_13& entries_13,
6567 const ENTRIES_14& entries_14,
6568 const ENTRIES_15& entries_15,
6569 const ENTRIES_16& entries_16,
6570 const ENTRIES_17& entries_17,
6571 const ENTRIES_18& entries_18,
6572 const ENTRIES_19& entries_19,
6573 const ENTRIES_20& entries_20,
6574 const ENTRIES_21& entries_21,
6575 const ENTRIES_22& entries_22,
6576 const ENTRIES_23& entries_23,
6577 const ENTRIES_24& entries_24
6578 ) const
6579{
6580 builder->pushBack(key, (*this)(value));
6581 pushBackHelper(builder, entries_01,
6582 entries_02,
6583 entries_03,
6584 entries_04,
6585 entries_05,
6586 entries_06,
6587 entries_07,
6588 entries_08,
6589 entries_09,
6590 entries_10,
6591 entries_11,
6592 entries_12,
6593 entries_13,
6594 entries_14,
6595 entries_15,
6596 entries_16,
6597 entries_17,
6598 entries_18,
6599 entries_19,
6600 entries_20,
6601 entries_21,
6602 entries_22,
6603 entries_23,
6604 entries_24);
6605}
6606
6607template <typename TYPE, typename ENTRIES_01,
6608 typename ENTRIES_02,
6609 typename ENTRIES_03,
6610 typename ENTRIES_04,
6611 typename ENTRIES_05,
6612 typename ENTRIES_06,
6613 typename ENTRIES_07,
6614 typename ENTRIES_08,
6615 typename ENTRIES_09,
6616 typename ENTRIES_10,
6617 typename ENTRIES_11,
6618 typename ENTRIES_12,
6619 typename ENTRIES_13,
6620 typename ENTRIES_14,
6621 typename ENTRIES_15,
6622 typename ENTRIES_16,
6623 typename ENTRIES_17,
6624 typename ENTRIES_18,
6625 typename ENTRIES_19,
6626 typename ENTRIES_20,
6627 typename ENTRIES_21,
6628 typename ENTRIES_22,
6629 typename ENTRIES_23,
6630 typename ENTRIES_24,
6631 typename ENTRIES_25,
6632 typename ENTRIES_26>
6633inline
6634void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6635 const bslstl::StringRef& key,
6636 const TYPE& value,
6637 const ENTRIES_01& entries_01,
6638 const ENTRIES_02& entries_02,
6639 const ENTRIES_03& entries_03,
6640 const ENTRIES_04& entries_04,
6641 const ENTRIES_05& entries_05,
6642 const ENTRIES_06& entries_06,
6643 const ENTRIES_07& entries_07,
6644 const ENTRIES_08& entries_08,
6645 const ENTRIES_09& entries_09,
6646 const ENTRIES_10& entries_10,
6647 const ENTRIES_11& entries_11,
6648 const ENTRIES_12& entries_12,
6649 const ENTRIES_13& entries_13,
6650 const ENTRIES_14& entries_14,
6651 const ENTRIES_15& entries_15,
6652 const ENTRIES_16& entries_16,
6653 const ENTRIES_17& entries_17,
6654 const ENTRIES_18& entries_18,
6655 const ENTRIES_19& entries_19,
6656 const ENTRIES_20& entries_20,
6657 const ENTRIES_21& entries_21,
6658 const ENTRIES_22& entries_22,
6659 const ENTRIES_23& entries_23,
6660 const ENTRIES_24& entries_24,
6661 const ENTRIES_25& entries_25,
6662 const ENTRIES_26& entries_26
6663 ) const
6664{
6665 builder->pushBack(key, (*this)(value));
6666 pushBackHelper(builder, entries_01,
6667 entries_02,
6668 entries_03,
6669 entries_04,
6670 entries_05,
6671 entries_06,
6672 entries_07,
6673 entries_08,
6674 entries_09,
6675 entries_10,
6676 entries_11,
6677 entries_12,
6678 entries_13,
6679 entries_14,
6680 entries_15,
6681 entries_16,
6682 entries_17,
6683 entries_18,
6684 entries_19,
6685 entries_20,
6686 entries_21,
6687 entries_22,
6688 entries_23,
6689 entries_24,
6690 entries_25,
6691 entries_26);
6692}
6693
6694template <typename TYPE, typename ENTRIES_01,
6695 typename ENTRIES_02,
6696 typename ENTRIES_03,
6697 typename ENTRIES_04,
6698 typename ENTRIES_05,
6699 typename ENTRIES_06,
6700 typename ENTRIES_07,
6701 typename ENTRIES_08,
6702 typename ENTRIES_09,
6703 typename ENTRIES_10,
6704 typename ENTRIES_11,
6705 typename ENTRIES_12,
6706 typename ENTRIES_13,
6707 typename ENTRIES_14,
6708 typename ENTRIES_15,
6709 typename ENTRIES_16,
6710 typename ENTRIES_17,
6711 typename ENTRIES_18,
6712 typename ENTRIES_19,
6713 typename ENTRIES_20,
6714 typename ENTRIES_21,
6715 typename ENTRIES_22,
6716 typename ENTRIES_23,
6717 typename ENTRIES_24,
6718 typename ENTRIES_25,
6719 typename ENTRIES_26,
6720 typename ENTRIES_27,
6721 typename ENTRIES_28>
6722inline
6723void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6724 const bslstl::StringRef& key,
6725 const TYPE& value,
6726 const ENTRIES_01& entries_01,
6727 const ENTRIES_02& entries_02,
6728 const ENTRIES_03& entries_03,
6729 const ENTRIES_04& entries_04,
6730 const ENTRIES_05& entries_05,
6731 const ENTRIES_06& entries_06,
6732 const ENTRIES_07& entries_07,
6733 const ENTRIES_08& entries_08,
6734 const ENTRIES_09& entries_09,
6735 const ENTRIES_10& entries_10,
6736 const ENTRIES_11& entries_11,
6737 const ENTRIES_12& entries_12,
6738 const ENTRIES_13& entries_13,
6739 const ENTRIES_14& entries_14,
6740 const ENTRIES_15& entries_15,
6741 const ENTRIES_16& entries_16,
6742 const ENTRIES_17& entries_17,
6743 const ENTRIES_18& entries_18,
6744 const ENTRIES_19& entries_19,
6745 const ENTRIES_20& entries_20,
6746 const ENTRIES_21& entries_21,
6747 const ENTRIES_22& entries_22,
6748 const ENTRIES_23& entries_23,
6749 const ENTRIES_24& entries_24,
6750 const ENTRIES_25& entries_25,
6751 const ENTRIES_26& entries_26,
6752 const ENTRIES_27& entries_27,
6753 const ENTRIES_28& entries_28
6754 ) const
6755{
6756 builder->pushBack(key, (*this)(value));
6757 pushBackHelper(builder, entries_01,
6758 entries_02,
6759 entries_03,
6760 entries_04,
6761 entries_05,
6762 entries_06,
6763 entries_07,
6764 entries_08,
6765 entries_09,
6766 entries_10,
6767 entries_11,
6768 entries_12,
6769 entries_13,
6770 entries_14,
6771 entries_15,
6772 entries_16,
6773 entries_17,
6774 entries_18,
6775 entries_19,
6776 entries_20,
6777 entries_21,
6778 entries_22,
6779 entries_23,
6780 entries_24,
6781 entries_25,
6782 entries_26,
6783 entries_27,
6784 entries_28);
6785}
6786
6787template <typename TYPE, typename ENTRIES_01,
6788 typename ENTRIES_02,
6789 typename ENTRIES_03,
6790 typename ENTRIES_04,
6791 typename ENTRIES_05,
6792 typename ENTRIES_06,
6793 typename ENTRIES_07,
6794 typename ENTRIES_08,
6795 typename ENTRIES_09,
6796 typename ENTRIES_10,
6797 typename ENTRIES_11,
6798 typename ENTRIES_12,
6799 typename ENTRIES_13,
6800 typename ENTRIES_14,
6801 typename ENTRIES_15,
6802 typename ENTRIES_16,
6803 typename ENTRIES_17,
6804 typename ENTRIES_18,
6805 typename ENTRIES_19,
6806 typename ENTRIES_20,
6807 typename ENTRIES_21,
6808 typename ENTRIES_22,
6809 typename ENTRIES_23,
6810 typename ENTRIES_24,
6811 typename ENTRIES_25,
6812 typename ENTRIES_26,
6813 typename ENTRIES_27,
6814 typename ENTRIES_28,
6815 typename ENTRIES_29,
6816 typename ENTRIES_30>
6817inline
6818void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6819 const bslstl::StringRef& key,
6820 const TYPE& value,
6821 const ENTRIES_01& entries_01,
6822 const ENTRIES_02& entries_02,
6823 const ENTRIES_03& entries_03,
6824 const ENTRIES_04& entries_04,
6825 const ENTRIES_05& entries_05,
6826 const ENTRIES_06& entries_06,
6827 const ENTRIES_07& entries_07,
6828 const ENTRIES_08& entries_08,
6829 const ENTRIES_09& entries_09,
6830 const ENTRIES_10& entries_10,
6831 const ENTRIES_11& entries_11,
6832 const ENTRIES_12& entries_12,
6833 const ENTRIES_13& entries_13,
6834 const ENTRIES_14& entries_14,
6835 const ENTRIES_15& entries_15,
6836 const ENTRIES_16& entries_16,
6837 const ENTRIES_17& entries_17,
6838 const ENTRIES_18& entries_18,
6839 const ENTRIES_19& entries_19,
6840 const ENTRIES_20& entries_20,
6841 const ENTRIES_21& entries_21,
6842 const ENTRIES_22& entries_22,
6843 const ENTRIES_23& entries_23,
6844 const ENTRIES_24& entries_24,
6845 const ENTRIES_25& entries_25,
6846 const ENTRIES_26& entries_26,
6847 const ENTRIES_27& entries_27,
6848 const ENTRIES_28& entries_28,
6849 const ENTRIES_29& entries_29,
6850 const ENTRIES_30& entries_30
6851 ) const
6852{
6853 builder->pushBack(key, (*this)(value));
6854 pushBackHelper(builder, entries_01,
6855 entries_02,
6856 entries_03,
6857 entries_04,
6858 entries_05,
6859 entries_06,
6860 entries_07,
6861 entries_08,
6862 entries_09,
6863 entries_10,
6864 entries_11,
6865 entries_12,
6866 entries_13,
6867 entries_14,
6868 entries_15,
6869 entries_16,
6870 entries_17,
6871 entries_18,
6872 entries_19,
6873 entries_20,
6874 entries_21,
6875 entries_22,
6876 entries_23,
6877 entries_24,
6878 entries_25,
6879 entries_26,
6880 entries_27,
6881 entries_28,
6882 entries_29,
6883 entries_30);
6884}
6885
6886template <typename TYPE, typename ENTRIES_01,
6887 typename ENTRIES_02,
6888 typename ENTRIES_03,
6889 typename ENTRIES_04,
6890 typename ENTRIES_05,
6891 typename ENTRIES_06,
6892 typename ENTRIES_07,
6893 typename ENTRIES_08,
6894 typename ENTRIES_09,
6895 typename ENTRIES_10,
6896 typename ENTRIES_11,
6897 typename ENTRIES_12,
6898 typename ENTRIES_13,
6899 typename ENTRIES_14,
6900 typename ENTRIES_15,
6901 typename ENTRIES_16,
6902 typename ENTRIES_17,
6903 typename ENTRIES_18,
6904 typename ENTRIES_19,
6905 typename ENTRIES_20,
6906 typename ENTRIES_21,
6907 typename ENTRIES_22,
6908 typename ENTRIES_23,
6909 typename ENTRIES_24,
6910 typename ENTRIES_25,
6911 typename ENTRIES_26,
6912 typename ENTRIES_27,
6913 typename ENTRIES_28,
6914 typename ENTRIES_29,
6915 typename ENTRIES_30,
6916 typename ENTRIES_31,
6917 typename ENTRIES_32>
6918inline
6919void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6920 const bslstl::StringRef& key,
6921 const TYPE& value,
6922 const ENTRIES_01& entries_01,
6923 const ENTRIES_02& entries_02,
6924 const ENTRIES_03& entries_03,
6925 const ENTRIES_04& entries_04,
6926 const ENTRIES_05& entries_05,
6927 const ENTRIES_06& entries_06,
6928 const ENTRIES_07& entries_07,
6929 const ENTRIES_08& entries_08,
6930 const ENTRIES_09& entries_09,
6931 const ENTRIES_10& entries_10,
6932 const ENTRIES_11& entries_11,
6933 const ENTRIES_12& entries_12,
6934 const ENTRIES_13& entries_13,
6935 const ENTRIES_14& entries_14,
6936 const ENTRIES_15& entries_15,
6937 const ENTRIES_16& entries_16,
6938 const ENTRIES_17& entries_17,
6939 const ENTRIES_18& entries_18,
6940 const ENTRIES_19& entries_19,
6941 const ENTRIES_20& entries_20,
6942 const ENTRIES_21& entries_21,
6943 const ENTRIES_22& entries_22,
6944 const ENTRIES_23& entries_23,
6945 const ENTRIES_24& entries_24,
6946 const ENTRIES_25& entries_25,
6947 const ENTRIES_26& entries_26,
6948 const ENTRIES_27& entries_27,
6949 const ENTRIES_28& entries_28,
6950 const ENTRIES_29& entries_29,
6951 const ENTRIES_30& entries_30,
6952 const ENTRIES_31& entries_31,
6953 const ENTRIES_32& entries_32
6954 ) const
6955{
6956 builder->pushBack(key, (*this)(value));
6957 pushBackHelper(builder, entries_01,
6958 entries_02,
6959 entries_03,
6960 entries_04,
6961 entries_05,
6962 entries_06,
6963 entries_07,
6964 entries_08,
6965 entries_09,
6966 entries_10,
6967 entries_11,
6968 entries_12,
6969 entries_13,
6970 entries_14,
6971 entries_15,
6972 entries_16,
6973 entries_17,
6974 entries_18,
6975 entries_19,
6976 entries_20,
6977 entries_21,
6978 entries_22,
6979 entries_23,
6980 entries_24,
6981 entries_25,
6982 entries_26,
6983 entries_27,
6984 entries_28,
6985 entries_29,
6986 entries_30,
6987 entries_31,
6988 entries_32);
6989}
6990
6991
6992template <typename TYPE>
6993inline
6994void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
6995 int key,
6996 const TYPE& value
6997 ) const
6998{
6999 builder->pushBack(key, (*this)(value));
7000 pushBackHelper(builder);
7001}
7002
7003template <typename TYPE, typename ENTRIES_01>
7004inline
7005void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7006 int key,
7007 const TYPE& value,
7008 int key_01,
7009 const ENTRIES_01& entries_01
7010 ) const
7011{
7012 builder->pushBack(key, (*this)(value));
7013 pushBackHelper(builder, key_01, entries_01);
7014}
7015
7016template <typename TYPE, typename ENTRIES_01,
7017 typename ENTRIES_02>
7018inline
7019void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7020 int key,
7021 const TYPE& value,
7022 int key_01,
7023 const ENTRIES_01& entries_01,
7024 int key_02,
7025 const ENTRIES_02& entries_02
7026 ) const
7027{
7028 builder->pushBack(key, (*this)(value));
7029 pushBackHelper(builder, key_01, entries_01,
7030 key_02, entries_02);
7031}
7032
7033template <typename TYPE, typename ENTRIES_01,
7034 typename ENTRIES_02,
7035 typename ENTRIES_03>
7036inline
7037void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7038 int key,
7039 const TYPE& value,
7040 int key_01,
7041 const ENTRIES_01& entries_01,
7042 int key_02,
7043 const ENTRIES_02& entries_02,
7044 int key_03,
7045 const ENTRIES_03& entries_03
7046 ) const
7047{
7048 builder->pushBack(key, (*this)(value));
7049 pushBackHelper(builder, key_01, entries_01,
7050 key_02, entries_02,
7051 key_03, entries_03);
7052}
7053
7054template <typename TYPE, typename ENTRIES_01,
7055 typename ENTRIES_02,
7056 typename ENTRIES_03,
7057 typename ENTRIES_04>
7058inline
7059void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7060 int key,
7061 const TYPE& value,
7062 int key_01,
7063 const ENTRIES_01& entries_01,
7064 int key_02,
7065 const ENTRIES_02& entries_02,
7066 int key_03,
7067 const ENTRIES_03& entries_03,
7068 int key_04,
7069 const ENTRIES_04& entries_04
7070 ) const
7071{
7072 builder->pushBack(key, (*this)(value));
7073 pushBackHelper(builder, key_01, entries_01,
7074 key_02, entries_02,
7075 key_03, entries_03,
7076 key_04, entries_04);
7077}
7078
7079template <typename TYPE, typename ENTRIES_01,
7080 typename ENTRIES_02,
7081 typename ENTRIES_03,
7082 typename ENTRIES_04,
7083 typename ENTRIES_05>
7084inline
7085void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7086 int key,
7087 const TYPE& value,
7088 int key_01,
7089 const ENTRIES_01& entries_01,
7090 int key_02,
7091 const ENTRIES_02& entries_02,
7092 int key_03,
7093 const ENTRIES_03& entries_03,
7094 int key_04,
7095 const ENTRIES_04& entries_04,
7096 int key_05,
7097 const ENTRIES_05& entries_05
7098 ) const
7099{
7100 builder->pushBack(key, (*this)(value));
7101 pushBackHelper(builder, key_01, entries_01,
7102 key_02, entries_02,
7103 key_03, entries_03,
7104 key_04, entries_04,
7105 key_05, entries_05);
7106}
7107
7108template <typename TYPE, typename ENTRIES_01,
7109 typename ENTRIES_02,
7110 typename ENTRIES_03,
7111 typename ENTRIES_04,
7112 typename ENTRIES_05,
7113 typename ENTRIES_06>
7114inline
7115void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7116 int key,
7117 const TYPE& value,
7118 int key_01,
7119 const ENTRIES_01& entries_01,
7120 int key_02,
7121 const ENTRIES_02& entries_02,
7122 int key_03,
7123 const ENTRIES_03& entries_03,
7124 int key_04,
7125 const ENTRIES_04& entries_04,
7126 int key_05,
7127 const ENTRIES_05& entries_05,
7128 int key_06,
7129 const ENTRIES_06& entries_06
7130 ) const
7131{
7132 builder->pushBack(key, (*this)(value));
7133 pushBackHelper(builder, key_01, entries_01,
7134 key_02, entries_02,
7135 key_03, entries_03,
7136 key_04, entries_04,
7137 key_05, entries_05,
7138 key_06, entries_06);
7139}
7140
7141template <typename TYPE, typename ENTRIES_01,
7142 typename ENTRIES_02,
7143 typename ENTRIES_03,
7144 typename ENTRIES_04,
7145 typename ENTRIES_05,
7146 typename ENTRIES_06,
7147 typename ENTRIES_07>
7148inline
7149void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7150 int key,
7151 const TYPE& value,
7152 int key_01,
7153 const ENTRIES_01& entries_01,
7154 int key_02,
7155 const ENTRIES_02& entries_02,
7156 int key_03,
7157 const ENTRIES_03& entries_03,
7158 int key_04,
7159 const ENTRIES_04& entries_04,
7160 int key_05,
7161 const ENTRIES_05& entries_05,
7162 int key_06,
7163 const ENTRIES_06& entries_06,
7164 int key_07,
7165 const ENTRIES_07& entries_07
7166 ) const
7167{
7168 builder->pushBack(key, (*this)(value));
7169 pushBackHelper(builder, key_01, entries_01,
7170 key_02, entries_02,
7171 key_03, entries_03,
7172 key_04, entries_04,
7173 key_05, entries_05,
7174 key_06, entries_06,
7175 key_07, entries_07);
7176}
7177
7178template <typename TYPE, typename ENTRIES_01,
7179 typename ENTRIES_02,
7180 typename ENTRIES_03,
7181 typename ENTRIES_04,
7182 typename ENTRIES_05,
7183 typename ENTRIES_06,
7184 typename ENTRIES_07,
7185 typename ENTRIES_08>
7186inline
7187void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7188 int key,
7189 const TYPE& value,
7190 int key_01,
7191 const ENTRIES_01& entries_01,
7192 int key_02,
7193 const ENTRIES_02& entries_02,
7194 int key_03,
7195 const ENTRIES_03& entries_03,
7196 int key_04,
7197 const ENTRIES_04& entries_04,
7198 int key_05,
7199 const ENTRIES_05& entries_05,
7200 int key_06,
7201 const ENTRIES_06& entries_06,
7202 int key_07,
7203 const ENTRIES_07& entries_07,
7204 int key_08,
7205 const ENTRIES_08& entries_08
7206 ) const
7207{
7208 builder->pushBack(key, (*this)(value));
7209 pushBackHelper(builder, key_01, entries_01,
7210 key_02, entries_02,
7211 key_03, entries_03,
7212 key_04, entries_04,
7213 key_05, entries_05,
7214 key_06, entries_06,
7215 key_07, entries_07,
7216 key_08, entries_08);
7217}
7218
7219template <typename TYPE, typename ENTRIES_01,
7220 typename ENTRIES_02,
7221 typename ENTRIES_03,
7222 typename ENTRIES_04,
7223 typename ENTRIES_05,
7224 typename ENTRIES_06,
7225 typename ENTRIES_07,
7226 typename ENTRIES_08,
7227 typename ENTRIES_09>
7228inline
7229void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7230 int key,
7231 const TYPE& value,
7232 int key_01,
7233 const ENTRIES_01& entries_01,
7234 int key_02,
7235 const ENTRIES_02& entries_02,
7236 int key_03,
7237 const ENTRIES_03& entries_03,
7238 int key_04,
7239 const ENTRIES_04& entries_04,
7240 int key_05,
7241 const ENTRIES_05& entries_05,
7242 int key_06,
7243 const ENTRIES_06& entries_06,
7244 int key_07,
7245 const ENTRIES_07& entries_07,
7246 int key_08,
7247 const ENTRIES_08& entries_08,
7248 int key_09,
7249 const ENTRIES_09& entries_09
7250 ) const
7251{
7252 builder->pushBack(key, (*this)(value));
7253 pushBackHelper(builder, key_01, entries_01,
7254 key_02, entries_02,
7255 key_03, entries_03,
7256 key_04, entries_04,
7257 key_05, entries_05,
7258 key_06, entries_06,
7259 key_07, entries_07,
7260 key_08, entries_08,
7261 key_09, entries_09);
7262}
7263
7264template <typename TYPE, typename ENTRIES_01,
7265 typename ENTRIES_02,
7266 typename ENTRIES_03,
7267 typename ENTRIES_04,
7268 typename ENTRIES_05,
7269 typename ENTRIES_06,
7270 typename ENTRIES_07,
7271 typename ENTRIES_08,
7272 typename ENTRIES_09,
7273 typename ENTRIES_10>
7274inline
7275void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7276 int key,
7277 const TYPE& value,
7278 int key_01,
7279 const ENTRIES_01& entries_01,
7280 int key_02,
7281 const ENTRIES_02& entries_02,
7282 int key_03,
7283 const ENTRIES_03& entries_03,
7284 int key_04,
7285 const ENTRIES_04& entries_04,
7286 int key_05,
7287 const ENTRIES_05& entries_05,
7288 int key_06,
7289 const ENTRIES_06& entries_06,
7290 int key_07,
7291 const ENTRIES_07& entries_07,
7292 int key_08,
7293 const ENTRIES_08& entries_08,
7294 int key_09,
7295 const ENTRIES_09& entries_09,
7296 int key_10,
7297 const ENTRIES_10& entries_10
7298 ) const
7299{
7300 builder->pushBack(key, (*this)(value));
7301 pushBackHelper(builder, key_01, entries_01,
7302 key_02, entries_02,
7303 key_03, entries_03,
7304 key_04, entries_04,
7305 key_05, entries_05,
7306 key_06, entries_06,
7307 key_07, entries_07,
7308 key_08, entries_08,
7309 key_09, entries_09,
7310 key_10, entries_10);
7311}
7312
7313template <typename TYPE, typename ENTRIES_01,
7314 typename ENTRIES_02,
7315 typename ENTRIES_03,
7316 typename ENTRIES_04,
7317 typename ENTRIES_05,
7318 typename ENTRIES_06,
7319 typename ENTRIES_07,
7320 typename ENTRIES_08,
7321 typename ENTRIES_09,
7322 typename ENTRIES_10,
7323 typename ENTRIES_11>
7324inline
7325void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7326 int key,
7327 const TYPE& value,
7328 int key_01,
7329 const ENTRIES_01& entries_01,
7330 int key_02,
7331 const ENTRIES_02& entries_02,
7332 int key_03,
7333 const ENTRIES_03& entries_03,
7334 int key_04,
7335 const ENTRIES_04& entries_04,
7336 int key_05,
7337 const ENTRIES_05& entries_05,
7338 int key_06,
7339 const ENTRIES_06& entries_06,
7340 int key_07,
7341 const ENTRIES_07& entries_07,
7342 int key_08,
7343 const ENTRIES_08& entries_08,
7344 int key_09,
7345 const ENTRIES_09& entries_09,
7346 int key_10,
7347 const ENTRIES_10& entries_10,
7348 int key_11,
7349 const ENTRIES_11& entries_11
7350 ) const
7351{
7352 builder->pushBack(key, (*this)(value));
7353 pushBackHelper(builder, key_01, entries_01,
7354 key_02, entries_02,
7355 key_03, entries_03,
7356 key_04, entries_04,
7357 key_05, entries_05,
7358 key_06, entries_06,
7359 key_07, entries_07,
7360 key_08, entries_08,
7361 key_09, entries_09,
7362 key_10, entries_10,
7363 key_11, entries_11);
7364}
7365
7366template <typename TYPE, typename ENTRIES_01,
7367 typename ENTRIES_02,
7368 typename ENTRIES_03,
7369 typename ENTRIES_04,
7370 typename ENTRIES_05,
7371 typename ENTRIES_06,
7372 typename ENTRIES_07,
7373 typename ENTRIES_08,
7374 typename ENTRIES_09,
7375 typename ENTRIES_10,
7376 typename ENTRIES_11,
7377 typename ENTRIES_12>
7378inline
7379void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7380 int key,
7381 const TYPE& value,
7382 int key_01,
7383 const ENTRIES_01& entries_01,
7384 int key_02,
7385 const ENTRIES_02& entries_02,
7386 int key_03,
7387 const ENTRIES_03& entries_03,
7388 int key_04,
7389 const ENTRIES_04& entries_04,
7390 int key_05,
7391 const ENTRIES_05& entries_05,
7392 int key_06,
7393 const ENTRIES_06& entries_06,
7394 int key_07,
7395 const ENTRIES_07& entries_07,
7396 int key_08,
7397 const ENTRIES_08& entries_08,
7398 int key_09,
7399 const ENTRIES_09& entries_09,
7400 int key_10,
7401 const ENTRIES_10& entries_10,
7402 int key_11,
7403 const ENTRIES_11& entries_11,
7404 int key_12,
7405 const ENTRIES_12& entries_12
7406 ) const
7407{
7408 builder->pushBack(key, (*this)(value));
7409 pushBackHelper(builder, key_01, entries_01,
7410 key_02, entries_02,
7411 key_03, entries_03,
7412 key_04, entries_04,
7413 key_05, entries_05,
7414 key_06, entries_06,
7415 key_07, entries_07,
7416 key_08, entries_08,
7417 key_09, entries_09,
7418 key_10, entries_10,
7419 key_11, entries_11,
7420 key_12, entries_12);
7421}
7422
7423template <typename TYPE, typename ENTRIES_01,
7424 typename ENTRIES_02,
7425 typename ENTRIES_03,
7426 typename ENTRIES_04,
7427 typename ENTRIES_05,
7428 typename ENTRIES_06,
7429 typename ENTRIES_07,
7430 typename ENTRIES_08,
7431 typename ENTRIES_09,
7432 typename ENTRIES_10,
7433 typename ENTRIES_11,
7434 typename ENTRIES_12,
7435 typename ENTRIES_13>
7436inline
7437void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7438 int key,
7439 const TYPE& value,
7440 int key_01,
7441 const ENTRIES_01& entries_01,
7442 int key_02,
7443 const ENTRIES_02& entries_02,
7444 int key_03,
7445 const ENTRIES_03& entries_03,
7446 int key_04,
7447 const ENTRIES_04& entries_04,
7448 int key_05,
7449 const ENTRIES_05& entries_05,
7450 int key_06,
7451 const ENTRIES_06& entries_06,
7452 int key_07,
7453 const ENTRIES_07& entries_07,
7454 int key_08,
7455 const ENTRIES_08& entries_08,
7456 int key_09,
7457 const ENTRIES_09& entries_09,
7458 int key_10,
7459 const ENTRIES_10& entries_10,
7460 int key_11,
7461 const ENTRIES_11& entries_11,
7462 int key_12,
7463 const ENTRIES_12& entries_12,
7464 int key_13,
7465 const ENTRIES_13& entries_13
7466 ) const
7467{
7468 builder->pushBack(key, (*this)(value));
7469 pushBackHelper(builder, key_01, entries_01,
7470 key_02, entries_02,
7471 key_03, entries_03,
7472 key_04, entries_04,
7473 key_05, entries_05,
7474 key_06, entries_06,
7475 key_07, entries_07,
7476 key_08, entries_08,
7477 key_09, entries_09,
7478 key_10, entries_10,
7479 key_11, entries_11,
7480 key_12, entries_12,
7481 key_13, entries_13);
7482}
7483
7484template <typename TYPE, typename ENTRIES_01,
7485 typename ENTRIES_02,
7486 typename ENTRIES_03,
7487 typename ENTRIES_04,
7488 typename ENTRIES_05,
7489 typename ENTRIES_06,
7490 typename ENTRIES_07,
7491 typename ENTRIES_08,
7492 typename ENTRIES_09,
7493 typename ENTRIES_10,
7494 typename ENTRIES_11,
7495 typename ENTRIES_12,
7496 typename ENTRIES_13,
7497 typename ENTRIES_14>
7498inline
7499void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7500 int key,
7501 const TYPE& value,
7502 int key_01,
7503 const ENTRIES_01& entries_01,
7504 int key_02,
7505 const ENTRIES_02& entries_02,
7506 int key_03,
7507 const ENTRIES_03& entries_03,
7508 int key_04,
7509 const ENTRIES_04& entries_04,
7510 int key_05,
7511 const ENTRIES_05& entries_05,
7512 int key_06,
7513 const ENTRIES_06& entries_06,
7514 int key_07,
7515 const ENTRIES_07& entries_07,
7516 int key_08,
7517 const ENTRIES_08& entries_08,
7518 int key_09,
7519 const ENTRIES_09& entries_09,
7520 int key_10,
7521 const ENTRIES_10& entries_10,
7522 int key_11,
7523 const ENTRIES_11& entries_11,
7524 int key_12,
7525 const ENTRIES_12& entries_12,
7526 int key_13,
7527 const ENTRIES_13& entries_13,
7528 int key_14,
7529 const ENTRIES_14& entries_14
7530 ) const
7531{
7532 builder->pushBack(key, (*this)(value));
7533 pushBackHelper(builder, key_01, entries_01,
7534 key_02, entries_02,
7535 key_03, entries_03,
7536 key_04, entries_04,
7537 key_05, entries_05,
7538 key_06, entries_06,
7539 key_07, entries_07,
7540 key_08, entries_08,
7541 key_09, entries_09,
7542 key_10, entries_10,
7543 key_11, entries_11,
7544 key_12, entries_12,
7545 key_13, entries_13,
7546 key_14, entries_14);
7547}
7548
7549template <typename TYPE, typename ENTRIES_01,
7550 typename ENTRIES_02,
7551 typename ENTRIES_03,
7552 typename ENTRIES_04,
7553 typename ENTRIES_05,
7554 typename ENTRIES_06,
7555 typename ENTRIES_07,
7556 typename ENTRIES_08,
7557 typename ENTRIES_09,
7558 typename ENTRIES_10,
7559 typename ENTRIES_11,
7560 typename ENTRIES_12,
7561 typename ENTRIES_13,
7562 typename ENTRIES_14,
7563 typename ENTRIES_15>
7564inline
7565void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7566 int key,
7567 const TYPE& value,
7568 int key_01,
7569 const ENTRIES_01& entries_01,
7570 int key_02,
7571 const ENTRIES_02& entries_02,
7572 int key_03,
7573 const ENTRIES_03& entries_03,
7574 int key_04,
7575 const ENTRIES_04& entries_04,
7576 int key_05,
7577 const ENTRIES_05& entries_05,
7578 int key_06,
7579 const ENTRIES_06& entries_06,
7580 int key_07,
7581 const ENTRIES_07& entries_07,
7582 int key_08,
7583 const ENTRIES_08& entries_08,
7584 int key_09,
7585 const ENTRIES_09& entries_09,
7586 int key_10,
7587 const ENTRIES_10& entries_10,
7588 int key_11,
7589 const ENTRIES_11& entries_11,
7590 int key_12,
7591 const ENTRIES_12& entries_12,
7592 int key_13,
7593 const ENTRIES_13& entries_13,
7594 int key_14,
7595 const ENTRIES_14& entries_14,
7596 int key_15,
7597 const ENTRIES_15& entries_15
7598 ) const
7599{
7600 builder->pushBack(key, (*this)(value));
7601 pushBackHelper(builder, key_01, entries_01,
7602 key_02, entries_02,
7603 key_03, entries_03,
7604 key_04, entries_04,
7605 key_05, entries_05,
7606 key_06, entries_06,
7607 key_07, entries_07,
7608 key_08, entries_08,
7609 key_09, entries_09,
7610 key_10, entries_10,
7611 key_11, entries_11,
7612 key_12, entries_12,
7613 key_13, entries_13,
7614 key_14, entries_14,
7615 key_15, entries_15);
7616}
7617
7618template <typename TYPE, typename ENTRIES_01,
7619 typename ENTRIES_02,
7620 typename ENTRIES_03,
7621 typename ENTRIES_04,
7622 typename ENTRIES_05,
7623 typename ENTRIES_06,
7624 typename ENTRIES_07,
7625 typename ENTRIES_08,
7626 typename ENTRIES_09,
7627 typename ENTRIES_10,
7628 typename ENTRIES_11,
7629 typename ENTRIES_12,
7630 typename ENTRIES_13,
7631 typename ENTRIES_14,
7632 typename ENTRIES_15,
7633 typename ENTRIES_16>
7634inline
7635void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7636 int key,
7637 const TYPE& value,
7638 int key_01,
7639 const ENTRIES_01& entries_01,
7640 int key_02,
7641 const ENTRIES_02& entries_02,
7642 int key_03,
7643 const ENTRIES_03& entries_03,
7644 int key_04,
7645 const ENTRIES_04& entries_04,
7646 int key_05,
7647 const ENTRIES_05& entries_05,
7648 int key_06,
7649 const ENTRIES_06& entries_06,
7650 int key_07,
7651 const ENTRIES_07& entries_07,
7652 int key_08,
7653 const ENTRIES_08& entries_08,
7654 int key_09,
7655 const ENTRIES_09& entries_09,
7656 int key_10,
7657 const ENTRIES_10& entries_10,
7658 int key_11,
7659 const ENTRIES_11& entries_11,
7660 int key_12,
7661 const ENTRIES_12& entries_12,
7662 int key_13,
7663 const ENTRIES_13& entries_13,
7664 int key_14,
7665 const ENTRIES_14& entries_14,
7666 int key_15,
7667 const ENTRIES_15& entries_15,
7668 int key_16,
7669 const ENTRIES_16& entries_16
7670 ) const
7671{
7672 builder->pushBack(key, (*this)(value));
7673 pushBackHelper(builder, key_01, entries_01,
7674 key_02, entries_02,
7675 key_03, entries_03,
7676 key_04, entries_04,
7677 key_05, entries_05,
7678 key_06, entries_06,
7679 key_07, entries_07,
7680 key_08, entries_08,
7681 key_09, entries_09,
7682 key_10, entries_10,
7683 key_11, entries_11,
7684 key_12, entries_12,
7685 key_13, entries_13,
7686 key_14, entries_14,
7687 key_15, entries_15,
7688 key_16, entries_16);
7689}
7690
7691#endif
7692
7693// CREATORS
7694inline
7695DatumMaker::DatumMaker(const AllocatorType& allocator)
7696: d_allocator(allocator)
7697{
7698}
7699
7700// ACCESSORS
7701inline
7706
7707inline
7709{
7710 return d_allocator;
7711}
7712
7713inline
7718
7719inline
7721{
7722 return (*this)();
7723}
7724
7725inline
7727{
7728 return bdld::Datum::createInteger(value);
7729}
7730
7731inline
7733{
7734 return bdld::Datum::createDouble(value);
7735}
7736
7737inline
7739{
7740 return bdld::Datum::copyString(value, d_allocator);
7741}
7742
7743inline
7744bdld::Datum DatumMaker::operator()(const char *value) const
7745{
7746 return (*this)(bslstl::StringRef(value));
7747}
7748
7749inline
7751{
7752 return bdld::Datum::createBoolean(value);
7753}
7754
7755inline
7757{
7758 return bdld::Datum::createError(value.code(),
7759 value.message(),
7760 d_allocator);
7761}
7762
7763inline
7765{
7766 return bdld::Datum::createDate(value);
7767}
7768
7769inline
7771{
7772 return bdld::Datum::createTime(value);
7773}
7774
7775inline
7777{
7778 return bdld::Datum::createDatetime(value, d_allocator);
7779}
7780
7781inline
7783{
7784 return bdld::Datum::createDatetimeInterval(value, d_allocator);
7785}
7786
7787inline
7789{
7790 return bdld::Datum::createDecimal64(value, d_allocator);
7791}
7792
7793inline
7795{
7796 return bdld::Datum::createInteger64(value, d_allocator);
7797}
7798
7799inline
7801{
7802 return bdld::Datum::createUdt(value.data(), value.type());
7803}
7804
7805inline
7807{
7808 return value;
7809}
7810
7811inline
7813{
7814 return bdld::Datum::createArrayReference(value, d_allocator);
7815}
7816
7817inline
7819 int size) const
7820{
7821 return (*this)(bdld::DatumArrayRef(elements, size));
7822}
7823
7824inline
7826{
7827 return bdld::Datum::adoptMap(value);
7828}
7829
7830inline
7832 const bdld::DatumMutableIntMapRef& value) const
7833{
7834 return bdld::Datum::adoptIntMap(value);
7835}
7836
7837template <class TYPE>
7838inline
7840 const bdlb::NullableValue<TYPE>& value) const
7841{
7842 return value.isNull() ? (*this)() : (*this)(value.value());
7843}
7844
7845
7846inline
7847bdld::Datum DatumMaker::bin(const void *pointer, bsl::size_t size) const
7848{
7849 return bdld::Datum::copyBinary(pointer, size, d_allocator);
7850}
7851
7852#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
7853template <typename... ELEMENTS>
7854inline
7855bdld::Datum DatumMaker::a(const ELEMENTS&... elements) const
7856{
7857 const int numElements = sizeof...(ELEMENTS);
7858 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7859 pushBackHelper(&builder, elements...);
7860 return builder.commit();
7861}
7862#else
7863inline
7865{
7866 const int numElements = 0u;
7867 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7868 pushBackHelper(&builder);
7869 return builder.commit();
7870}
7871
7872template <typename ELEMENTS_01>
7873inline
7874bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01
7875 ) const
7876{
7877 const int numElements = 1u;
7878 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7879 pushBackHelper(&builder, elements_01);
7880 return builder.commit();
7881}
7882
7883template <typename ELEMENTS_01,
7884 typename ELEMENTS_02>
7885inline
7886bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7887 const ELEMENTS_02& elements_02
7888 ) const
7889{
7890 const int numElements = 2u;
7891 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7892 pushBackHelper(&builder, elements_01,
7893 elements_02);
7894 return builder.commit();
7895}
7896
7897template <typename ELEMENTS_01,
7898 typename ELEMENTS_02,
7899 typename ELEMENTS_03>
7900inline
7901bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7902 const ELEMENTS_02& elements_02,
7903 const ELEMENTS_03& elements_03
7904 ) const
7905{
7906 const int numElements = 3u;
7907 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7908 pushBackHelper(&builder, elements_01,
7909 elements_02,
7910 elements_03);
7911 return builder.commit();
7912}
7913
7914template <typename ELEMENTS_01,
7915 typename ELEMENTS_02,
7916 typename ELEMENTS_03,
7917 typename ELEMENTS_04>
7918inline
7919bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7920 const ELEMENTS_02& elements_02,
7921 const ELEMENTS_03& elements_03,
7922 const ELEMENTS_04& elements_04
7923 ) const
7924{
7925 const int numElements = 4u;
7926 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7927 pushBackHelper(&builder, elements_01,
7928 elements_02,
7929 elements_03,
7930 elements_04);
7931 return builder.commit();
7932}
7933
7934template <typename ELEMENTS_01,
7935 typename ELEMENTS_02,
7936 typename ELEMENTS_03,
7937 typename ELEMENTS_04,
7938 typename ELEMENTS_05>
7939inline
7940bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7941 const ELEMENTS_02& elements_02,
7942 const ELEMENTS_03& elements_03,
7943 const ELEMENTS_04& elements_04,
7944 const ELEMENTS_05& elements_05
7945 ) const
7946{
7947 const int numElements = 5u;
7948 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7949 pushBackHelper(&builder, elements_01,
7950 elements_02,
7951 elements_03,
7952 elements_04,
7953 elements_05);
7954 return builder.commit();
7955}
7956
7957template <typename ELEMENTS_01,
7958 typename ELEMENTS_02,
7959 typename ELEMENTS_03,
7960 typename ELEMENTS_04,
7961 typename ELEMENTS_05,
7962 typename ELEMENTS_06>
7963inline
7964bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7965 const ELEMENTS_02& elements_02,
7966 const ELEMENTS_03& elements_03,
7967 const ELEMENTS_04& elements_04,
7968 const ELEMENTS_05& elements_05,
7969 const ELEMENTS_06& elements_06
7970 ) const
7971{
7972 const int numElements = 6u;
7973 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7974 pushBackHelper(&builder, elements_01,
7975 elements_02,
7976 elements_03,
7977 elements_04,
7978 elements_05,
7979 elements_06);
7980 return builder.commit();
7981}
7982
7983template <typename ELEMENTS_01,
7984 typename ELEMENTS_02,
7985 typename ELEMENTS_03,
7986 typename ELEMENTS_04,
7987 typename ELEMENTS_05,
7988 typename ELEMENTS_06,
7989 typename ELEMENTS_07>
7990inline
7991bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7992 const ELEMENTS_02& elements_02,
7993 const ELEMENTS_03& elements_03,
7994 const ELEMENTS_04& elements_04,
7995 const ELEMENTS_05& elements_05,
7996 const ELEMENTS_06& elements_06,
7997 const ELEMENTS_07& elements_07
7998 ) const
7999{
8000 const int numElements = 7u;
8001 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8002 pushBackHelper(&builder, elements_01,
8003 elements_02,
8004 elements_03,
8005 elements_04,
8006 elements_05,
8007 elements_06,
8008 elements_07);
8009 return builder.commit();
8010}
8011
8012template <typename ELEMENTS_01,
8013 typename ELEMENTS_02,
8014 typename ELEMENTS_03,
8015 typename ELEMENTS_04,
8016 typename ELEMENTS_05,
8017 typename ELEMENTS_06,
8018 typename ELEMENTS_07,
8019 typename ELEMENTS_08>
8020inline
8021bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8022 const ELEMENTS_02& elements_02,
8023 const ELEMENTS_03& elements_03,
8024 const ELEMENTS_04& elements_04,
8025 const ELEMENTS_05& elements_05,
8026 const ELEMENTS_06& elements_06,
8027 const ELEMENTS_07& elements_07,
8028 const ELEMENTS_08& elements_08
8029 ) const
8030{
8031 const int numElements = 8u;
8032 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8033 pushBackHelper(&builder, elements_01,
8034 elements_02,
8035 elements_03,
8036 elements_04,
8037 elements_05,
8038 elements_06,
8039 elements_07,
8040 elements_08);
8041 return builder.commit();
8042}
8043
8044template <typename ELEMENTS_01,
8045 typename ELEMENTS_02,
8046 typename ELEMENTS_03,
8047 typename ELEMENTS_04,
8048 typename ELEMENTS_05,
8049 typename ELEMENTS_06,
8050 typename ELEMENTS_07,
8051 typename ELEMENTS_08,
8052 typename ELEMENTS_09>
8053inline
8054bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8055 const ELEMENTS_02& elements_02,
8056 const ELEMENTS_03& elements_03,
8057 const ELEMENTS_04& elements_04,
8058 const ELEMENTS_05& elements_05,
8059 const ELEMENTS_06& elements_06,
8060 const ELEMENTS_07& elements_07,
8061 const ELEMENTS_08& elements_08,
8062 const ELEMENTS_09& elements_09
8063 ) const
8064{
8065 const int numElements = 9u;
8066 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8067 pushBackHelper(&builder, elements_01,
8068 elements_02,
8069 elements_03,
8070 elements_04,
8071 elements_05,
8072 elements_06,
8073 elements_07,
8074 elements_08,
8075 elements_09);
8076 return builder.commit();
8077}
8078
8079template <typename ELEMENTS_01,
8080 typename ELEMENTS_02,
8081 typename ELEMENTS_03,
8082 typename ELEMENTS_04,
8083 typename ELEMENTS_05,
8084 typename ELEMENTS_06,
8085 typename ELEMENTS_07,
8086 typename ELEMENTS_08,
8087 typename ELEMENTS_09,
8088 typename ELEMENTS_10>
8089inline
8090bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8091 const ELEMENTS_02& elements_02,
8092 const ELEMENTS_03& elements_03,
8093 const ELEMENTS_04& elements_04,
8094 const ELEMENTS_05& elements_05,
8095 const ELEMENTS_06& elements_06,
8096 const ELEMENTS_07& elements_07,
8097 const ELEMENTS_08& elements_08,
8098 const ELEMENTS_09& elements_09,
8099 const ELEMENTS_10& elements_10
8100 ) const
8101{
8102 const int numElements = 10u;
8103 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8104 pushBackHelper(&builder, elements_01,
8105 elements_02,
8106 elements_03,
8107 elements_04,
8108 elements_05,
8109 elements_06,
8110 elements_07,
8111 elements_08,
8112 elements_09,
8113 elements_10);
8114 return builder.commit();
8115}
8116
8117template <typename ELEMENTS_01,
8118 typename ELEMENTS_02,
8119 typename ELEMENTS_03,
8120 typename ELEMENTS_04,
8121 typename ELEMENTS_05,
8122 typename ELEMENTS_06,
8123 typename ELEMENTS_07,
8124 typename ELEMENTS_08,
8125 typename ELEMENTS_09,
8126 typename ELEMENTS_10,
8127 typename ELEMENTS_11>
8128inline
8129bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8130 const ELEMENTS_02& elements_02,
8131 const ELEMENTS_03& elements_03,
8132 const ELEMENTS_04& elements_04,
8133 const ELEMENTS_05& elements_05,
8134 const ELEMENTS_06& elements_06,
8135 const ELEMENTS_07& elements_07,
8136 const ELEMENTS_08& elements_08,
8137 const ELEMENTS_09& elements_09,
8138 const ELEMENTS_10& elements_10,
8139 const ELEMENTS_11& elements_11
8140 ) const
8141{
8142 const int numElements = 11u;
8143 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8144 pushBackHelper(&builder, elements_01,
8145 elements_02,
8146 elements_03,
8147 elements_04,
8148 elements_05,
8149 elements_06,
8150 elements_07,
8151 elements_08,
8152 elements_09,
8153 elements_10,
8154 elements_11);
8155 return builder.commit();
8156}
8157
8158template <typename ELEMENTS_01,
8159 typename ELEMENTS_02,
8160 typename ELEMENTS_03,
8161 typename ELEMENTS_04,
8162 typename ELEMENTS_05,
8163 typename ELEMENTS_06,
8164 typename ELEMENTS_07,
8165 typename ELEMENTS_08,
8166 typename ELEMENTS_09,
8167 typename ELEMENTS_10,
8168 typename ELEMENTS_11,
8169 typename ELEMENTS_12>
8170inline
8171bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8172 const ELEMENTS_02& elements_02,
8173 const ELEMENTS_03& elements_03,
8174 const ELEMENTS_04& elements_04,
8175 const ELEMENTS_05& elements_05,
8176 const ELEMENTS_06& elements_06,
8177 const ELEMENTS_07& elements_07,
8178 const ELEMENTS_08& elements_08,
8179 const ELEMENTS_09& elements_09,
8180 const ELEMENTS_10& elements_10,
8181 const ELEMENTS_11& elements_11,
8182 const ELEMENTS_12& elements_12
8183 ) const
8184{
8185 const int numElements = 12u;
8186 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8187 pushBackHelper(&builder, elements_01,
8188 elements_02,
8189 elements_03,
8190 elements_04,
8191 elements_05,
8192 elements_06,
8193 elements_07,
8194 elements_08,
8195 elements_09,
8196 elements_10,
8197 elements_11,
8198 elements_12);
8199 return builder.commit();
8200}
8201
8202template <typename ELEMENTS_01,
8203 typename ELEMENTS_02,
8204 typename ELEMENTS_03,
8205 typename ELEMENTS_04,
8206 typename ELEMENTS_05,
8207 typename ELEMENTS_06,
8208 typename ELEMENTS_07,
8209 typename ELEMENTS_08,
8210 typename ELEMENTS_09,
8211 typename ELEMENTS_10,
8212 typename ELEMENTS_11,
8213 typename ELEMENTS_12,
8214 typename ELEMENTS_13>
8215inline
8216bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8217 const ELEMENTS_02& elements_02,
8218 const ELEMENTS_03& elements_03,
8219 const ELEMENTS_04& elements_04,
8220 const ELEMENTS_05& elements_05,
8221 const ELEMENTS_06& elements_06,
8222 const ELEMENTS_07& elements_07,
8223 const ELEMENTS_08& elements_08,
8224 const ELEMENTS_09& elements_09,
8225 const ELEMENTS_10& elements_10,
8226 const ELEMENTS_11& elements_11,
8227 const ELEMENTS_12& elements_12,
8228 const ELEMENTS_13& elements_13
8229 ) const
8230{
8231 const int numElements = 13u;
8232 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8233 pushBackHelper(&builder, elements_01,
8234 elements_02,
8235 elements_03,
8236 elements_04,
8237 elements_05,
8238 elements_06,
8239 elements_07,
8240 elements_08,
8241 elements_09,
8242 elements_10,
8243 elements_11,
8244 elements_12,
8245 elements_13);
8246 return builder.commit();
8247}
8248
8249template <typename ELEMENTS_01,
8250 typename ELEMENTS_02,
8251 typename ELEMENTS_03,
8252 typename ELEMENTS_04,
8253 typename ELEMENTS_05,
8254 typename ELEMENTS_06,
8255 typename ELEMENTS_07,
8256 typename ELEMENTS_08,
8257 typename ELEMENTS_09,
8258 typename ELEMENTS_10,
8259 typename ELEMENTS_11,
8260 typename ELEMENTS_12,
8261 typename ELEMENTS_13,
8262 typename ELEMENTS_14>
8263inline
8264bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8265 const ELEMENTS_02& elements_02,
8266 const ELEMENTS_03& elements_03,
8267 const ELEMENTS_04& elements_04,
8268 const ELEMENTS_05& elements_05,
8269 const ELEMENTS_06& elements_06,
8270 const ELEMENTS_07& elements_07,
8271 const ELEMENTS_08& elements_08,
8272 const ELEMENTS_09& elements_09,
8273 const ELEMENTS_10& elements_10,
8274 const ELEMENTS_11& elements_11,
8275 const ELEMENTS_12& elements_12,
8276 const ELEMENTS_13& elements_13,
8277 const ELEMENTS_14& elements_14
8278 ) const
8279{
8280 const int numElements = 14u;
8281 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8282 pushBackHelper(&builder, elements_01,
8283 elements_02,
8284 elements_03,
8285 elements_04,
8286 elements_05,
8287 elements_06,
8288 elements_07,
8289 elements_08,
8290 elements_09,
8291 elements_10,
8292 elements_11,
8293 elements_12,
8294 elements_13,
8295 elements_14);
8296 return builder.commit();
8297}
8298
8299template <typename ELEMENTS_01,
8300 typename ELEMENTS_02,
8301 typename ELEMENTS_03,
8302 typename ELEMENTS_04,
8303 typename ELEMENTS_05,
8304 typename ELEMENTS_06,
8305 typename ELEMENTS_07,
8306 typename ELEMENTS_08,
8307 typename ELEMENTS_09,
8308 typename ELEMENTS_10,
8309 typename ELEMENTS_11,
8310 typename ELEMENTS_12,
8311 typename ELEMENTS_13,
8312 typename ELEMENTS_14,
8313 typename ELEMENTS_15>
8314inline
8315bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8316 const ELEMENTS_02& elements_02,
8317 const ELEMENTS_03& elements_03,
8318 const ELEMENTS_04& elements_04,
8319 const ELEMENTS_05& elements_05,
8320 const ELEMENTS_06& elements_06,
8321 const ELEMENTS_07& elements_07,
8322 const ELEMENTS_08& elements_08,
8323 const ELEMENTS_09& elements_09,
8324 const ELEMENTS_10& elements_10,
8325 const ELEMENTS_11& elements_11,
8326 const ELEMENTS_12& elements_12,
8327 const ELEMENTS_13& elements_13,
8328 const ELEMENTS_14& elements_14,
8329 const ELEMENTS_15& elements_15
8330 ) const
8331{
8332 const int numElements = 15u;
8333 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8334 pushBackHelper(&builder, elements_01,
8335 elements_02,
8336 elements_03,
8337 elements_04,
8338 elements_05,
8339 elements_06,
8340 elements_07,
8341 elements_08,
8342 elements_09,
8343 elements_10,
8344 elements_11,
8345 elements_12,
8346 elements_13,
8347 elements_14,
8348 elements_15);
8349 return builder.commit();
8350}
8351
8352template <typename ELEMENTS_01,
8353 typename ELEMENTS_02,
8354 typename ELEMENTS_03,
8355 typename ELEMENTS_04,
8356 typename ELEMENTS_05,
8357 typename ELEMENTS_06,
8358 typename ELEMENTS_07,
8359 typename ELEMENTS_08,
8360 typename ELEMENTS_09,
8361 typename ELEMENTS_10,
8362 typename ELEMENTS_11,
8363 typename ELEMENTS_12,
8364 typename ELEMENTS_13,
8365 typename ELEMENTS_14,
8366 typename ELEMENTS_15,
8367 typename ELEMENTS_16>
8368inline
8369bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8370 const ELEMENTS_02& elements_02,
8371 const ELEMENTS_03& elements_03,
8372 const ELEMENTS_04& elements_04,
8373 const ELEMENTS_05& elements_05,
8374 const ELEMENTS_06& elements_06,
8375 const ELEMENTS_07& elements_07,
8376 const ELEMENTS_08& elements_08,
8377 const ELEMENTS_09& elements_09,
8378 const ELEMENTS_10& elements_10,
8379 const ELEMENTS_11& elements_11,
8380 const ELEMENTS_12& elements_12,
8381 const ELEMENTS_13& elements_13,
8382 const ELEMENTS_14& elements_14,
8383 const ELEMENTS_15& elements_15,
8384 const ELEMENTS_16& elements_16
8385 ) const
8386{
8387 const int numElements = 16u;
8388 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8389 pushBackHelper(&builder, elements_01,
8390 elements_02,
8391 elements_03,
8392 elements_04,
8393 elements_05,
8394 elements_06,
8395 elements_07,
8396 elements_08,
8397 elements_09,
8398 elements_10,
8399 elements_11,
8400 elements_12,
8401 elements_13,
8402 elements_14,
8403 elements_15,
8404 elements_16);
8405 return builder.commit();
8406}
8407
8408#endif
8409
8410#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
8411template <typename... ENTRIES>
8412inline
8413bdld::Datum DatumMaker::m(const ENTRIES&... entries) const
8414{
8415 const int numArguments = sizeof...(ENTRIES);
8416
8417 // Due to MSVC not recognizing bitwise and of a constant expression and a
8418 // string literal as a constant expression, we don't use a meaningful error
8419 // as part of this assert.
8420 //
8421 // See: https://connect.microsoft.com/VisualStudio/feedback/details/1523001
8422 BSLMF_ASSERT(0 == numArguments % 2);
8423
8424 const int mapElements = numArguments / 2;
8425 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8426 pushBackHelper(&builder, entries...);
8427 return builder.commit();
8428}
8429#else
8430inline
8432{
8433 const int numArguments = 0u;
8434
8435 BSLMF_ASSERT(0 == numArguments % 2);
8436
8437 const int mapElements = numArguments / 2;
8438 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8439 pushBackHelper(&builder);
8440 return builder.commit();
8441}
8442
8443template <typename ENTRIES_01,
8444 typename ENTRIES_02>
8445inline
8446bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8447 const ENTRIES_02& entries_02
8448 ) const
8449{
8450 const int numArguments = 2u;
8451
8452 BSLMF_ASSERT(0 == numArguments % 2);
8453
8454 const int mapElements = numArguments / 2;
8455 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8456 pushBackHelper(&builder, entries_01,
8457 entries_02);
8458 return builder.commit();
8459}
8460
8461template <typename ENTRIES_01,
8462 typename ENTRIES_02,
8463 typename ENTRIES_03,
8464 typename ENTRIES_04>
8465inline
8466bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8467 const ENTRIES_02& entries_02,
8468 const ENTRIES_03& entries_03,
8469 const ENTRIES_04& entries_04
8470 ) const
8471{
8472 const int numArguments = 4u;
8473
8474 BSLMF_ASSERT(0 == numArguments % 2);
8475
8476 const int mapElements = numArguments / 2;
8477 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8478 pushBackHelper(&builder, entries_01,
8479 entries_02,
8480 entries_03,
8481 entries_04);
8482 return builder.commit();
8483}
8484
8485template <typename ENTRIES_01,
8486 typename ENTRIES_02,
8487 typename ENTRIES_03,
8488 typename ENTRIES_04,
8489 typename ENTRIES_05,
8490 typename ENTRIES_06>
8491inline
8492bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8493 const ENTRIES_02& entries_02,
8494 const ENTRIES_03& entries_03,
8495 const ENTRIES_04& entries_04,
8496 const ENTRIES_05& entries_05,
8497 const ENTRIES_06& entries_06
8498 ) const
8499{
8500 const int numArguments = 6u;
8501
8502 BSLMF_ASSERT(0 == numArguments % 2);
8503
8504 const int mapElements = numArguments / 2;
8505 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8506 pushBackHelper(&builder, entries_01,
8507 entries_02,
8508 entries_03,
8509 entries_04,
8510 entries_05,
8511 entries_06);
8512 return builder.commit();
8513}
8514
8515template <typename ENTRIES_01,
8516 typename ENTRIES_02,
8517 typename ENTRIES_03,
8518 typename ENTRIES_04,
8519 typename ENTRIES_05,
8520 typename ENTRIES_06,
8521 typename ENTRIES_07,
8522 typename ENTRIES_08>
8523inline
8524bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8525 const ENTRIES_02& entries_02,
8526 const ENTRIES_03& entries_03,
8527 const ENTRIES_04& entries_04,
8528 const ENTRIES_05& entries_05,
8529 const ENTRIES_06& entries_06,
8530 const ENTRIES_07& entries_07,
8531 const ENTRIES_08& entries_08
8532 ) const
8533{
8534 const int numArguments = 8u;
8535
8536 BSLMF_ASSERT(0 == numArguments % 2);
8537
8538 const int mapElements = numArguments / 2;
8539 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8540 pushBackHelper(&builder, entries_01,
8541 entries_02,
8542 entries_03,
8543 entries_04,
8544 entries_05,
8545 entries_06,
8546 entries_07,
8547 entries_08);
8548 return builder.commit();
8549}
8550
8551template <typename ENTRIES_01,
8552 typename ENTRIES_02,
8553 typename ENTRIES_03,
8554 typename ENTRIES_04,
8555 typename ENTRIES_05,
8556 typename ENTRIES_06,
8557 typename ENTRIES_07,
8558 typename ENTRIES_08,
8559 typename ENTRIES_09,
8560 typename ENTRIES_10>
8561inline
8562bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8563 const ENTRIES_02& entries_02,
8564 const ENTRIES_03& entries_03,
8565 const ENTRIES_04& entries_04,
8566 const ENTRIES_05& entries_05,
8567 const ENTRIES_06& entries_06,
8568 const ENTRIES_07& entries_07,
8569 const ENTRIES_08& entries_08,
8570 const ENTRIES_09& entries_09,
8571 const ENTRIES_10& entries_10
8572 ) const
8573{
8574 const int numArguments = 10u;
8575
8576 BSLMF_ASSERT(0 == numArguments % 2);
8577
8578 const int mapElements = numArguments / 2;
8579 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8580 pushBackHelper(&builder, entries_01,
8581 entries_02,
8582 entries_03,
8583 entries_04,
8584 entries_05,
8585 entries_06,
8586 entries_07,
8587 entries_08,
8588 entries_09,
8589 entries_10);
8590 return builder.commit();
8591}
8592
8593template <typename ENTRIES_01,
8594 typename ENTRIES_02,
8595 typename ENTRIES_03,
8596 typename ENTRIES_04,
8597 typename ENTRIES_05,
8598 typename ENTRIES_06,
8599 typename ENTRIES_07,
8600 typename ENTRIES_08,
8601 typename ENTRIES_09,
8602 typename ENTRIES_10,
8603 typename ENTRIES_11,
8604 typename ENTRIES_12>
8605inline
8606bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8607 const ENTRIES_02& entries_02,
8608 const ENTRIES_03& entries_03,
8609 const ENTRIES_04& entries_04,
8610 const ENTRIES_05& entries_05,
8611 const ENTRIES_06& entries_06,
8612 const ENTRIES_07& entries_07,
8613 const ENTRIES_08& entries_08,
8614 const ENTRIES_09& entries_09,
8615 const ENTRIES_10& entries_10,
8616 const ENTRIES_11& entries_11,
8617 const ENTRIES_12& entries_12
8618 ) const
8619{
8620 const int numArguments = 12u;
8621
8622 BSLMF_ASSERT(0 == numArguments % 2);
8623
8624 const int mapElements = numArguments / 2;
8625 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8626 pushBackHelper(&builder, entries_01,
8627 entries_02,
8628 entries_03,
8629 entries_04,
8630 entries_05,
8631 entries_06,
8632 entries_07,
8633 entries_08,
8634 entries_09,
8635 entries_10,
8636 entries_11,
8637 entries_12);
8638 return builder.commit();
8639}
8640
8641template <typename ENTRIES_01,
8642 typename ENTRIES_02,
8643 typename ENTRIES_03,
8644 typename ENTRIES_04,
8645 typename ENTRIES_05,
8646 typename ENTRIES_06,
8647 typename ENTRIES_07,
8648 typename ENTRIES_08,
8649 typename ENTRIES_09,
8650 typename ENTRIES_10,
8651 typename ENTRIES_11,
8652 typename ENTRIES_12,
8653 typename ENTRIES_13,
8654 typename ENTRIES_14>
8655inline
8656bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8657 const ENTRIES_02& entries_02,
8658 const ENTRIES_03& entries_03,
8659 const ENTRIES_04& entries_04,
8660 const ENTRIES_05& entries_05,
8661 const ENTRIES_06& entries_06,
8662 const ENTRIES_07& entries_07,
8663 const ENTRIES_08& entries_08,
8664 const ENTRIES_09& entries_09,
8665 const ENTRIES_10& entries_10,
8666 const ENTRIES_11& entries_11,
8667 const ENTRIES_12& entries_12,
8668 const ENTRIES_13& entries_13,
8669 const ENTRIES_14& entries_14
8670 ) const
8671{
8672 const int numArguments = 14u;
8673
8674 BSLMF_ASSERT(0 == numArguments % 2);
8675
8676 const int mapElements = numArguments / 2;
8677 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8678 pushBackHelper(&builder, entries_01,
8679 entries_02,
8680 entries_03,
8681 entries_04,
8682 entries_05,
8683 entries_06,
8684 entries_07,
8685 entries_08,
8686 entries_09,
8687 entries_10,
8688 entries_11,
8689 entries_12,
8690 entries_13,
8691 entries_14);
8692 return builder.commit();
8693}
8694
8695template <typename ENTRIES_01,
8696 typename ENTRIES_02,
8697 typename ENTRIES_03,
8698 typename ENTRIES_04,
8699 typename ENTRIES_05,
8700 typename ENTRIES_06,
8701 typename ENTRIES_07,
8702 typename ENTRIES_08,
8703 typename ENTRIES_09,
8704 typename ENTRIES_10,
8705 typename ENTRIES_11,
8706 typename ENTRIES_12,
8707 typename ENTRIES_13,
8708 typename ENTRIES_14,
8709 typename ENTRIES_15,
8710 typename ENTRIES_16>
8711inline
8712bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8713 const ENTRIES_02& entries_02,
8714 const ENTRIES_03& entries_03,
8715 const ENTRIES_04& entries_04,
8716 const ENTRIES_05& entries_05,
8717 const ENTRIES_06& entries_06,
8718 const ENTRIES_07& entries_07,
8719 const ENTRIES_08& entries_08,
8720 const ENTRIES_09& entries_09,
8721 const ENTRIES_10& entries_10,
8722 const ENTRIES_11& entries_11,
8723 const ENTRIES_12& entries_12,
8724 const ENTRIES_13& entries_13,
8725 const ENTRIES_14& entries_14,
8726 const ENTRIES_15& entries_15,
8727 const ENTRIES_16& entries_16
8728 ) const
8729{
8730 const int numArguments = 16u;
8731
8732 BSLMF_ASSERT(0 == numArguments % 2);
8733
8734 const int mapElements = numArguments / 2;
8735 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8736 pushBackHelper(&builder, entries_01,
8737 entries_02,
8738 entries_03,
8739 entries_04,
8740 entries_05,
8741 entries_06,
8742 entries_07,
8743 entries_08,
8744 entries_09,
8745 entries_10,
8746 entries_11,
8747 entries_12,
8748 entries_13,
8749 entries_14,
8750 entries_15,
8751 entries_16);
8752 return builder.commit();
8753}
8754
8755template <typename ENTRIES_01,
8756 typename ENTRIES_02,
8757 typename ENTRIES_03,
8758 typename ENTRIES_04,
8759 typename ENTRIES_05,
8760 typename ENTRIES_06,
8761 typename ENTRIES_07,
8762 typename ENTRIES_08,
8763 typename ENTRIES_09,
8764 typename ENTRIES_10,
8765 typename ENTRIES_11,
8766 typename ENTRIES_12,
8767 typename ENTRIES_13,
8768 typename ENTRIES_14,
8769 typename ENTRIES_15,
8770 typename ENTRIES_16,
8771 typename ENTRIES_17,
8772 typename ENTRIES_18>
8773inline
8774bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8775 const ENTRIES_02& entries_02,
8776 const ENTRIES_03& entries_03,
8777 const ENTRIES_04& entries_04,
8778 const ENTRIES_05& entries_05,
8779 const ENTRIES_06& entries_06,
8780 const ENTRIES_07& entries_07,
8781 const ENTRIES_08& entries_08,
8782 const ENTRIES_09& entries_09,
8783 const ENTRIES_10& entries_10,
8784 const ENTRIES_11& entries_11,
8785 const ENTRIES_12& entries_12,
8786 const ENTRIES_13& entries_13,
8787 const ENTRIES_14& entries_14,
8788 const ENTRIES_15& entries_15,
8789 const ENTRIES_16& entries_16,
8790 const ENTRIES_17& entries_17,
8791 const ENTRIES_18& entries_18
8792 ) const
8793{
8794 const int numArguments = 18u;
8795
8796 BSLMF_ASSERT(0 == numArguments % 2);
8797
8798 const int mapElements = numArguments / 2;
8799 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8800 pushBackHelper(&builder, entries_01,
8801 entries_02,
8802 entries_03,
8803 entries_04,
8804 entries_05,
8805 entries_06,
8806 entries_07,
8807 entries_08,
8808 entries_09,
8809 entries_10,
8810 entries_11,
8811 entries_12,
8812 entries_13,
8813 entries_14,
8814 entries_15,
8815 entries_16,
8816 entries_17,
8817 entries_18);
8818 return builder.commit();
8819}
8820
8821template <typename ENTRIES_01,
8822 typename ENTRIES_02,
8823 typename ENTRIES_03,
8824 typename ENTRIES_04,
8825 typename ENTRIES_05,
8826 typename ENTRIES_06,
8827 typename ENTRIES_07,
8828 typename ENTRIES_08,
8829 typename ENTRIES_09,
8830 typename ENTRIES_10,
8831 typename ENTRIES_11,
8832 typename ENTRIES_12,
8833 typename ENTRIES_13,
8834 typename ENTRIES_14,
8835 typename ENTRIES_15,
8836 typename ENTRIES_16,
8837 typename ENTRIES_17,
8838 typename ENTRIES_18,
8839 typename ENTRIES_19,
8840 typename ENTRIES_20>
8841inline
8842bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8843 const ENTRIES_02& entries_02,
8844 const ENTRIES_03& entries_03,
8845 const ENTRIES_04& entries_04,
8846 const ENTRIES_05& entries_05,
8847 const ENTRIES_06& entries_06,
8848 const ENTRIES_07& entries_07,
8849 const ENTRIES_08& entries_08,
8850 const ENTRIES_09& entries_09,
8851 const ENTRIES_10& entries_10,
8852 const ENTRIES_11& entries_11,
8853 const ENTRIES_12& entries_12,
8854 const ENTRIES_13& entries_13,
8855 const ENTRIES_14& entries_14,
8856 const ENTRIES_15& entries_15,
8857 const ENTRIES_16& entries_16,
8858 const ENTRIES_17& entries_17,
8859 const ENTRIES_18& entries_18,
8860 const ENTRIES_19& entries_19,
8861 const ENTRIES_20& entries_20
8862 ) const
8863{
8864 const int numArguments = 20u;
8865
8866 BSLMF_ASSERT(0 == numArguments % 2);
8867
8868 const int mapElements = numArguments / 2;
8869 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8870 pushBackHelper(&builder, entries_01,
8871 entries_02,
8872 entries_03,
8873 entries_04,
8874 entries_05,
8875 entries_06,
8876 entries_07,
8877 entries_08,
8878 entries_09,
8879 entries_10,
8880 entries_11,
8881 entries_12,
8882 entries_13,
8883 entries_14,
8884 entries_15,
8885 entries_16,
8886 entries_17,
8887 entries_18,
8888 entries_19,
8889 entries_20);
8890 return builder.commit();
8891}
8892
8893template <typename ENTRIES_01,
8894 typename ENTRIES_02,
8895 typename ENTRIES_03,
8896 typename ENTRIES_04,
8897 typename ENTRIES_05,
8898 typename ENTRIES_06,
8899 typename ENTRIES_07,
8900 typename ENTRIES_08,
8901 typename ENTRIES_09,
8902 typename ENTRIES_10,
8903 typename ENTRIES_11,
8904 typename ENTRIES_12,
8905 typename ENTRIES_13,
8906 typename ENTRIES_14,
8907 typename ENTRIES_15,
8908 typename ENTRIES_16,
8909 typename ENTRIES_17,
8910 typename ENTRIES_18,
8911 typename ENTRIES_19,
8912 typename ENTRIES_20,
8913 typename ENTRIES_21,
8914 typename ENTRIES_22>
8915inline
8916bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8917 const ENTRIES_02& entries_02,
8918 const ENTRIES_03& entries_03,
8919 const ENTRIES_04& entries_04,
8920 const ENTRIES_05& entries_05,
8921 const ENTRIES_06& entries_06,
8922 const ENTRIES_07& entries_07,
8923 const ENTRIES_08& entries_08,
8924 const ENTRIES_09& entries_09,
8925 const ENTRIES_10& entries_10,
8926 const ENTRIES_11& entries_11,
8927 const ENTRIES_12& entries_12,
8928 const ENTRIES_13& entries_13,
8929 const ENTRIES_14& entries_14,
8930 const ENTRIES_15& entries_15,
8931 const ENTRIES_16& entries_16,
8932 const ENTRIES_17& entries_17,
8933 const ENTRIES_18& entries_18,
8934 const ENTRIES_19& entries_19,
8935 const ENTRIES_20& entries_20,
8936 const ENTRIES_21& entries_21,
8937 const ENTRIES_22& entries_22
8938 ) const
8939{
8940 const int numArguments = 22u;
8941
8942 BSLMF_ASSERT(0 == numArguments % 2);
8943
8944 const int mapElements = numArguments / 2;
8945 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8946 pushBackHelper(&builder, entries_01,
8947 entries_02,
8948 entries_03,
8949 entries_04,
8950 entries_05,
8951 entries_06,
8952 entries_07,
8953 entries_08,
8954 entries_09,
8955 entries_10,
8956 entries_11,
8957 entries_12,
8958 entries_13,
8959 entries_14,
8960 entries_15,
8961 entries_16,
8962 entries_17,
8963 entries_18,
8964 entries_19,
8965 entries_20,
8966 entries_21,
8967 entries_22);
8968 return builder.commit();
8969}
8970
8971template <typename ENTRIES_01,
8972 typename ENTRIES_02,
8973 typename ENTRIES_03,
8974 typename ENTRIES_04,
8975 typename ENTRIES_05,
8976 typename ENTRIES_06,
8977 typename ENTRIES_07,
8978 typename ENTRIES_08,
8979 typename ENTRIES_09,
8980 typename ENTRIES_10,
8981 typename ENTRIES_11,
8982 typename ENTRIES_12,
8983 typename ENTRIES_13,
8984 typename ENTRIES_14,
8985 typename ENTRIES_15,
8986 typename ENTRIES_16,
8987 typename ENTRIES_17,
8988 typename ENTRIES_18,
8989 typename ENTRIES_19,
8990 typename ENTRIES_20,
8991 typename ENTRIES_21,
8992 typename ENTRIES_22,
8993 typename ENTRIES_23,
8994 typename ENTRIES_24>
8995inline
8996bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8997 const ENTRIES_02& entries_02,
8998 const ENTRIES_03& entries_03,
8999 const ENTRIES_04& entries_04,
9000 const ENTRIES_05& entries_05,
9001 const ENTRIES_06& entries_06,
9002 const ENTRIES_07& entries_07,
9003 const ENTRIES_08& entries_08,
9004 const ENTRIES_09& entries_09,
9005 const ENTRIES_10& entries_10,
9006 const ENTRIES_11& entries_11,
9007 const ENTRIES_12& entries_12,
9008 const ENTRIES_13& entries_13,
9009 const ENTRIES_14& entries_14,
9010 const ENTRIES_15& entries_15,
9011 const ENTRIES_16& entries_16,
9012 const ENTRIES_17& entries_17,
9013 const ENTRIES_18& entries_18,
9014 const ENTRIES_19& entries_19,
9015 const ENTRIES_20& entries_20,
9016 const ENTRIES_21& entries_21,
9017 const ENTRIES_22& entries_22,
9018 const ENTRIES_23& entries_23,
9019 const ENTRIES_24& entries_24
9020 ) const
9021{
9022 const int numArguments = 24u;
9023
9024 BSLMF_ASSERT(0 == numArguments % 2);
9025
9026 const int mapElements = numArguments / 2;
9027 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9028 pushBackHelper(&builder, entries_01,
9029 entries_02,
9030 entries_03,
9031 entries_04,
9032 entries_05,
9033 entries_06,
9034 entries_07,
9035 entries_08,
9036 entries_09,
9037 entries_10,
9038 entries_11,
9039 entries_12,
9040 entries_13,
9041 entries_14,
9042 entries_15,
9043 entries_16,
9044 entries_17,
9045 entries_18,
9046 entries_19,
9047 entries_20,
9048 entries_21,
9049 entries_22,
9050 entries_23,
9051 entries_24);
9052 return builder.commit();
9053}
9054
9055template <typename ENTRIES_01,
9056 typename ENTRIES_02,
9057 typename ENTRIES_03,
9058 typename ENTRIES_04,
9059 typename ENTRIES_05,
9060 typename ENTRIES_06,
9061 typename ENTRIES_07,
9062 typename ENTRIES_08,
9063 typename ENTRIES_09,
9064 typename ENTRIES_10,
9065 typename ENTRIES_11,
9066 typename ENTRIES_12,
9067 typename ENTRIES_13,
9068 typename ENTRIES_14,
9069 typename ENTRIES_15,
9070 typename ENTRIES_16,
9071 typename ENTRIES_17,
9072 typename ENTRIES_18,
9073 typename ENTRIES_19,
9074 typename ENTRIES_20,
9075 typename ENTRIES_21,
9076 typename ENTRIES_22,
9077 typename ENTRIES_23,
9078 typename ENTRIES_24,
9079 typename ENTRIES_25,
9080 typename ENTRIES_26>
9081inline
9082bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9083 const ENTRIES_02& entries_02,
9084 const ENTRIES_03& entries_03,
9085 const ENTRIES_04& entries_04,
9086 const ENTRIES_05& entries_05,
9087 const ENTRIES_06& entries_06,
9088 const ENTRIES_07& entries_07,
9089 const ENTRIES_08& entries_08,
9090 const ENTRIES_09& entries_09,
9091 const ENTRIES_10& entries_10,
9092 const ENTRIES_11& entries_11,
9093 const ENTRIES_12& entries_12,
9094 const ENTRIES_13& entries_13,
9095 const ENTRIES_14& entries_14,
9096 const ENTRIES_15& entries_15,
9097 const ENTRIES_16& entries_16,
9098 const ENTRIES_17& entries_17,
9099 const ENTRIES_18& entries_18,
9100 const ENTRIES_19& entries_19,
9101 const ENTRIES_20& entries_20,
9102 const ENTRIES_21& entries_21,
9103 const ENTRIES_22& entries_22,
9104 const ENTRIES_23& entries_23,
9105 const ENTRIES_24& entries_24,
9106 const ENTRIES_25& entries_25,
9107 const ENTRIES_26& entries_26
9108 ) const
9109{
9110 const int numArguments = 26u;
9111
9112 BSLMF_ASSERT(0 == numArguments % 2);
9113
9114 const int mapElements = numArguments / 2;
9115 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9116 pushBackHelper(&builder, entries_01,
9117 entries_02,
9118 entries_03,
9119 entries_04,
9120 entries_05,
9121 entries_06,
9122 entries_07,
9123 entries_08,
9124 entries_09,
9125 entries_10,
9126 entries_11,
9127 entries_12,
9128 entries_13,
9129 entries_14,
9130 entries_15,
9131 entries_16,
9132 entries_17,
9133 entries_18,
9134 entries_19,
9135 entries_20,
9136 entries_21,
9137 entries_22,
9138 entries_23,
9139 entries_24,
9140 entries_25,
9141 entries_26);
9142 return builder.commit();
9143}
9144
9145template <typename ENTRIES_01,
9146 typename ENTRIES_02,
9147 typename ENTRIES_03,
9148 typename ENTRIES_04,
9149 typename ENTRIES_05,
9150 typename ENTRIES_06,
9151 typename ENTRIES_07,
9152 typename ENTRIES_08,
9153 typename ENTRIES_09,
9154 typename ENTRIES_10,
9155 typename ENTRIES_11,
9156 typename ENTRIES_12,
9157 typename ENTRIES_13,
9158 typename ENTRIES_14,
9159 typename ENTRIES_15,
9160 typename ENTRIES_16,
9161 typename ENTRIES_17,
9162 typename ENTRIES_18,
9163 typename ENTRIES_19,
9164 typename ENTRIES_20,
9165 typename ENTRIES_21,
9166 typename ENTRIES_22,
9167 typename ENTRIES_23,
9168 typename ENTRIES_24,
9169 typename ENTRIES_25,
9170 typename ENTRIES_26,
9171 typename ENTRIES_27,
9172 typename ENTRIES_28>
9173inline
9174bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9175 const ENTRIES_02& entries_02,
9176 const ENTRIES_03& entries_03,
9177 const ENTRIES_04& entries_04,
9178 const ENTRIES_05& entries_05,
9179 const ENTRIES_06& entries_06,
9180 const ENTRIES_07& entries_07,
9181 const ENTRIES_08& entries_08,
9182 const ENTRIES_09& entries_09,
9183 const ENTRIES_10& entries_10,
9184 const ENTRIES_11& entries_11,
9185 const ENTRIES_12& entries_12,
9186 const ENTRIES_13& entries_13,
9187 const ENTRIES_14& entries_14,
9188 const ENTRIES_15& entries_15,
9189 const ENTRIES_16& entries_16,
9190 const ENTRIES_17& entries_17,
9191 const ENTRIES_18& entries_18,
9192 const ENTRIES_19& entries_19,
9193 const ENTRIES_20& entries_20,
9194 const ENTRIES_21& entries_21,
9195 const ENTRIES_22& entries_22,
9196 const ENTRIES_23& entries_23,
9197 const ENTRIES_24& entries_24,
9198 const ENTRIES_25& entries_25,
9199 const ENTRIES_26& entries_26,
9200 const ENTRIES_27& entries_27,
9201 const ENTRIES_28& entries_28
9202 ) const
9203{
9204 const int numArguments = 28u;
9205
9206 BSLMF_ASSERT(0 == numArguments % 2);
9207
9208 const int mapElements = numArguments / 2;
9209 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9210 pushBackHelper(&builder, entries_01,
9211 entries_02,
9212 entries_03,
9213 entries_04,
9214 entries_05,
9215 entries_06,
9216 entries_07,
9217 entries_08,
9218 entries_09,
9219 entries_10,
9220 entries_11,
9221 entries_12,
9222 entries_13,
9223 entries_14,
9224 entries_15,
9225 entries_16,
9226 entries_17,
9227 entries_18,
9228 entries_19,
9229 entries_20,
9230 entries_21,
9231 entries_22,
9232 entries_23,
9233 entries_24,
9234 entries_25,
9235 entries_26,
9236 entries_27,
9237 entries_28);
9238 return builder.commit();
9239}
9240
9241template <typename ENTRIES_01,
9242 typename ENTRIES_02,
9243 typename ENTRIES_03,
9244 typename ENTRIES_04,
9245 typename ENTRIES_05,
9246 typename ENTRIES_06,
9247 typename ENTRIES_07,
9248 typename ENTRIES_08,
9249 typename ENTRIES_09,
9250 typename ENTRIES_10,
9251 typename ENTRIES_11,
9252 typename ENTRIES_12,
9253 typename ENTRIES_13,
9254 typename ENTRIES_14,
9255 typename ENTRIES_15,
9256 typename ENTRIES_16,
9257 typename ENTRIES_17,
9258 typename ENTRIES_18,
9259 typename ENTRIES_19,
9260 typename ENTRIES_20,
9261 typename ENTRIES_21,
9262 typename ENTRIES_22,
9263 typename ENTRIES_23,
9264 typename ENTRIES_24,
9265 typename ENTRIES_25,
9266 typename ENTRIES_26,
9267 typename ENTRIES_27,
9268 typename ENTRIES_28,
9269 typename ENTRIES_29,
9270 typename ENTRIES_30>
9271inline
9272bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9273 const ENTRIES_02& entries_02,
9274 const ENTRIES_03& entries_03,
9275 const ENTRIES_04& entries_04,
9276 const ENTRIES_05& entries_05,
9277 const ENTRIES_06& entries_06,
9278 const ENTRIES_07& entries_07,
9279 const ENTRIES_08& entries_08,
9280 const ENTRIES_09& entries_09,
9281 const ENTRIES_10& entries_10,
9282 const ENTRIES_11& entries_11,
9283 const ENTRIES_12& entries_12,
9284 const ENTRIES_13& entries_13,
9285 const ENTRIES_14& entries_14,
9286 const ENTRIES_15& entries_15,
9287 const ENTRIES_16& entries_16,
9288 const ENTRIES_17& entries_17,
9289 const ENTRIES_18& entries_18,
9290 const ENTRIES_19& entries_19,
9291 const ENTRIES_20& entries_20,
9292 const ENTRIES_21& entries_21,
9293 const ENTRIES_22& entries_22,
9294 const ENTRIES_23& entries_23,
9295 const ENTRIES_24& entries_24,
9296 const ENTRIES_25& entries_25,
9297 const ENTRIES_26& entries_26,
9298 const ENTRIES_27& entries_27,
9299 const ENTRIES_28& entries_28,
9300 const ENTRIES_29& entries_29,
9301 const ENTRIES_30& entries_30
9302 ) const
9303{
9304 const int numArguments = 30u;
9305
9306 BSLMF_ASSERT(0 == numArguments % 2);
9307
9308 const int mapElements = numArguments / 2;
9309 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9310 pushBackHelper(&builder, entries_01,
9311 entries_02,
9312 entries_03,
9313 entries_04,
9314 entries_05,
9315 entries_06,
9316 entries_07,
9317 entries_08,
9318 entries_09,
9319 entries_10,
9320 entries_11,
9321 entries_12,
9322 entries_13,
9323 entries_14,
9324 entries_15,
9325 entries_16,
9326 entries_17,
9327 entries_18,
9328 entries_19,
9329 entries_20,
9330 entries_21,
9331 entries_22,
9332 entries_23,
9333 entries_24,
9334 entries_25,
9335 entries_26,
9336 entries_27,
9337 entries_28,
9338 entries_29,
9339 entries_30);
9340 return builder.commit();
9341}
9342
9343template <typename ENTRIES_01,
9344 typename ENTRIES_02,
9345 typename ENTRIES_03,
9346 typename ENTRIES_04,
9347 typename ENTRIES_05,
9348 typename ENTRIES_06,
9349 typename ENTRIES_07,
9350 typename ENTRIES_08,
9351 typename ENTRIES_09,
9352 typename ENTRIES_10,
9353 typename ENTRIES_11,
9354 typename ENTRIES_12,
9355 typename ENTRIES_13,
9356 typename ENTRIES_14,
9357 typename ENTRIES_15,
9358 typename ENTRIES_16,
9359 typename ENTRIES_17,
9360 typename ENTRIES_18,
9361 typename ENTRIES_19,
9362 typename ENTRIES_20,
9363 typename ENTRIES_21,
9364 typename ENTRIES_22,
9365 typename ENTRIES_23,
9366 typename ENTRIES_24,
9367 typename ENTRIES_25,
9368 typename ENTRIES_26,
9369 typename ENTRIES_27,
9370 typename ENTRIES_28,
9371 typename ENTRIES_29,
9372 typename ENTRIES_30,
9373 typename ENTRIES_31,
9374 typename ENTRIES_32>
9375inline
9376bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9377 const ENTRIES_02& entries_02,
9378 const ENTRIES_03& entries_03,
9379 const ENTRIES_04& entries_04,
9380 const ENTRIES_05& entries_05,
9381 const ENTRIES_06& entries_06,
9382 const ENTRIES_07& entries_07,
9383 const ENTRIES_08& entries_08,
9384 const ENTRIES_09& entries_09,
9385 const ENTRIES_10& entries_10,
9386 const ENTRIES_11& entries_11,
9387 const ENTRIES_12& entries_12,
9388 const ENTRIES_13& entries_13,
9389 const ENTRIES_14& entries_14,
9390 const ENTRIES_15& entries_15,
9391 const ENTRIES_16& entries_16,
9392 const ENTRIES_17& entries_17,
9393 const ENTRIES_18& entries_18,
9394 const ENTRIES_19& entries_19,
9395 const ENTRIES_20& entries_20,
9396 const ENTRIES_21& entries_21,
9397 const ENTRIES_22& entries_22,
9398 const ENTRIES_23& entries_23,
9399 const ENTRIES_24& entries_24,
9400 const ENTRIES_25& entries_25,
9401 const ENTRIES_26& entries_26,
9402 const ENTRIES_27& entries_27,
9403 const ENTRIES_28& entries_28,
9404 const ENTRIES_29& entries_29,
9405 const ENTRIES_30& entries_30,
9406 const ENTRIES_31& entries_31,
9407 const ENTRIES_32& entries_32
9408 ) const
9409{
9410 const int numArguments = 32u;
9411
9412 BSLMF_ASSERT(0 == numArguments % 2);
9413
9414 const int mapElements = numArguments / 2;
9415 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9416 pushBackHelper(&builder, entries_01,
9417 entries_02,
9418 entries_03,
9419 entries_04,
9420 entries_05,
9421 entries_06,
9422 entries_07,
9423 entries_08,
9424 entries_09,
9425 entries_10,
9426 entries_11,
9427 entries_12,
9428 entries_13,
9429 entries_14,
9430 entries_15,
9431 entries_16,
9432 entries_17,
9433 entries_18,
9434 entries_19,
9435 entries_20,
9436 entries_21,
9437 entries_22,
9438 entries_23,
9439 entries_24,
9440 entries_25,
9441 entries_26,
9442 entries_27,
9443 entries_28,
9444 entries_29,
9445 entries_30,
9446 entries_31,
9447 entries_32);
9448 return builder.commit();
9449}
9450
9451#endif
9452
9453#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
9454template <typename... ENTRIES>
9455inline
9456bdld::Datum DatumMaker::mok(const ENTRIES&... entries) const
9457{
9458 const int numArguments = sizeof...(ENTRIES);
9459
9460 // Due to MSVC not recognizing bitwise and of a constant expression and a
9461 // string literal as a constant expression, we don't use a meaningful error
9462 // as part of this assert.
9463 //
9464 // See: https://connect.microsoft.com/VisualStudio/feedback/details/1523001
9465 BSLMF_ASSERT(0 == numArguments % 2);
9466
9467 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9468 pushBackHelper(&builder, entries...);
9469 return builder.commit();
9470}
9471#else
9472inline
9474{
9475 const int numArguments = 0u;
9476
9477 BSLMF_ASSERT(0 == numArguments % 2);
9478
9479 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9480 pushBackHelper(&builder);
9481 return builder.commit();
9482}
9483
9484template <typename ENTRIES_01,
9485 typename ENTRIES_02>
9486inline
9487bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9488 const ENTRIES_02& entries_02
9489 ) const
9490{
9491 const int numArguments = 2u;
9492
9493 BSLMF_ASSERT(0 == numArguments % 2);
9494
9495 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9496 pushBackHelper(&builder, entries_01,
9497 entries_02);
9498 return builder.commit();
9499}
9500
9501template <typename ENTRIES_01,
9502 typename ENTRIES_02,
9503 typename ENTRIES_03,
9504 typename ENTRIES_04>
9505inline
9506bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9507 const ENTRIES_02& entries_02,
9508 const ENTRIES_03& entries_03,
9509 const ENTRIES_04& entries_04
9510 ) const
9511{
9512 const int numArguments = 4u;
9513
9514 BSLMF_ASSERT(0 == numArguments % 2);
9515
9516 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9517 pushBackHelper(&builder, entries_01,
9518 entries_02,
9519 entries_03,
9520 entries_04);
9521 return builder.commit();
9522}
9523
9524template <typename ENTRIES_01,
9525 typename ENTRIES_02,
9526 typename ENTRIES_03,
9527 typename ENTRIES_04,
9528 typename ENTRIES_05,
9529 typename ENTRIES_06>
9530inline
9531bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9532 const ENTRIES_02& entries_02,
9533 const ENTRIES_03& entries_03,
9534 const ENTRIES_04& entries_04,
9535 const ENTRIES_05& entries_05,
9536 const ENTRIES_06& entries_06
9537 ) const
9538{
9539 const int numArguments = 6u;
9540
9541 BSLMF_ASSERT(0 == numArguments % 2);
9542
9543 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9544 pushBackHelper(&builder, entries_01,
9545 entries_02,
9546 entries_03,
9547 entries_04,
9548 entries_05,
9549 entries_06);
9550 return builder.commit();
9551}
9552
9553template <typename ENTRIES_01,
9554 typename ENTRIES_02,
9555 typename ENTRIES_03,
9556 typename ENTRIES_04,
9557 typename ENTRIES_05,
9558 typename ENTRIES_06,
9559 typename ENTRIES_07,
9560 typename ENTRIES_08>
9561inline
9562bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9563 const ENTRIES_02& entries_02,
9564 const ENTRIES_03& entries_03,
9565 const ENTRIES_04& entries_04,
9566 const ENTRIES_05& entries_05,
9567 const ENTRIES_06& entries_06,
9568 const ENTRIES_07& entries_07,
9569 const ENTRIES_08& entries_08
9570 ) const
9571{
9572 const int numArguments = 8u;
9573
9574 BSLMF_ASSERT(0 == numArguments % 2);
9575
9576 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9577 pushBackHelper(&builder, entries_01,
9578 entries_02,
9579 entries_03,
9580 entries_04,
9581 entries_05,
9582 entries_06,
9583 entries_07,
9584 entries_08);
9585 return builder.commit();
9586}
9587
9588template <typename ENTRIES_01,
9589 typename ENTRIES_02,
9590 typename ENTRIES_03,
9591 typename ENTRIES_04,
9592 typename ENTRIES_05,
9593 typename ENTRIES_06,
9594 typename ENTRIES_07,
9595 typename ENTRIES_08,
9596 typename ENTRIES_09,
9597 typename ENTRIES_10>
9598inline
9599bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9600 const ENTRIES_02& entries_02,
9601 const ENTRIES_03& entries_03,
9602 const ENTRIES_04& entries_04,
9603 const ENTRIES_05& entries_05,
9604 const ENTRIES_06& entries_06,
9605 const ENTRIES_07& entries_07,
9606 const ENTRIES_08& entries_08,
9607 const ENTRIES_09& entries_09,
9608 const ENTRIES_10& entries_10
9609 ) const
9610{
9611 const int numArguments = 10u;
9612
9613 BSLMF_ASSERT(0 == numArguments % 2);
9614
9615 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9616 pushBackHelper(&builder, entries_01,
9617 entries_02,
9618 entries_03,
9619 entries_04,
9620 entries_05,
9621 entries_06,
9622 entries_07,
9623 entries_08,
9624 entries_09,
9625 entries_10);
9626 return builder.commit();
9627}
9628
9629template <typename ENTRIES_01,
9630 typename ENTRIES_02,
9631 typename ENTRIES_03,
9632 typename ENTRIES_04,
9633 typename ENTRIES_05,
9634 typename ENTRIES_06,
9635 typename ENTRIES_07,
9636 typename ENTRIES_08,
9637 typename ENTRIES_09,
9638 typename ENTRIES_10,
9639 typename ENTRIES_11,
9640 typename ENTRIES_12>
9641inline
9642bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9643 const ENTRIES_02& entries_02,
9644 const ENTRIES_03& entries_03,
9645 const ENTRIES_04& entries_04,
9646 const ENTRIES_05& entries_05,
9647 const ENTRIES_06& entries_06,
9648 const ENTRIES_07& entries_07,
9649 const ENTRIES_08& entries_08,
9650 const ENTRIES_09& entries_09,
9651 const ENTRIES_10& entries_10,
9652 const ENTRIES_11& entries_11,
9653 const ENTRIES_12& entries_12
9654 ) const
9655{
9656 const int numArguments = 12u;
9657
9658 BSLMF_ASSERT(0 == numArguments % 2);
9659
9660 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9661 pushBackHelper(&builder, entries_01,
9662 entries_02,
9663 entries_03,
9664 entries_04,
9665 entries_05,
9666 entries_06,
9667 entries_07,
9668 entries_08,
9669 entries_09,
9670 entries_10,
9671 entries_11,
9672 entries_12);
9673 return builder.commit();
9674}
9675
9676template <typename ENTRIES_01,
9677 typename ENTRIES_02,
9678 typename ENTRIES_03,
9679 typename ENTRIES_04,
9680 typename ENTRIES_05,
9681 typename ENTRIES_06,
9682 typename ENTRIES_07,
9683 typename ENTRIES_08,
9684 typename ENTRIES_09,
9685 typename ENTRIES_10,
9686 typename ENTRIES_11,
9687 typename ENTRIES_12,
9688 typename ENTRIES_13,
9689 typename ENTRIES_14>
9690inline
9691bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9692 const ENTRIES_02& entries_02,
9693 const ENTRIES_03& entries_03,
9694 const ENTRIES_04& entries_04,
9695 const ENTRIES_05& entries_05,
9696 const ENTRIES_06& entries_06,
9697 const ENTRIES_07& entries_07,
9698 const ENTRIES_08& entries_08,
9699 const ENTRIES_09& entries_09,
9700 const ENTRIES_10& entries_10,
9701 const ENTRIES_11& entries_11,
9702 const ENTRIES_12& entries_12,
9703 const ENTRIES_13& entries_13,
9704 const ENTRIES_14& entries_14
9705 ) const
9706{
9707 const int numArguments = 14u;
9708
9709 BSLMF_ASSERT(0 == numArguments % 2);
9710
9711 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9712 pushBackHelper(&builder, entries_01,
9713 entries_02,
9714 entries_03,
9715 entries_04,
9716 entries_05,
9717 entries_06,
9718 entries_07,
9719 entries_08,
9720 entries_09,
9721 entries_10,
9722 entries_11,
9723 entries_12,
9724 entries_13,
9725 entries_14);
9726 return builder.commit();
9727}
9728
9729template <typename ENTRIES_01,
9730 typename ENTRIES_02,
9731 typename ENTRIES_03,
9732 typename ENTRIES_04,
9733 typename ENTRIES_05,
9734 typename ENTRIES_06,
9735 typename ENTRIES_07,
9736 typename ENTRIES_08,
9737 typename ENTRIES_09,
9738 typename ENTRIES_10,
9739 typename ENTRIES_11,
9740 typename ENTRIES_12,
9741 typename ENTRIES_13,
9742 typename ENTRIES_14,
9743 typename ENTRIES_15,
9744 typename ENTRIES_16>
9745inline
9746bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9747 const ENTRIES_02& entries_02,
9748 const ENTRIES_03& entries_03,
9749 const ENTRIES_04& entries_04,
9750 const ENTRIES_05& entries_05,
9751 const ENTRIES_06& entries_06,
9752 const ENTRIES_07& entries_07,
9753 const ENTRIES_08& entries_08,
9754 const ENTRIES_09& entries_09,
9755 const ENTRIES_10& entries_10,
9756 const ENTRIES_11& entries_11,
9757 const ENTRIES_12& entries_12,
9758 const ENTRIES_13& entries_13,
9759 const ENTRIES_14& entries_14,
9760 const ENTRIES_15& entries_15,
9761 const ENTRIES_16& entries_16
9762 ) const
9763{
9764 const int numArguments = 16u;
9765
9766 BSLMF_ASSERT(0 == numArguments % 2);
9767
9768 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9769 pushBackHelper(&builder, entries_01,
9770 entries_02,
9771 entries_03,
9772 entries_04,
9773 entries_05,
9774 entries_06,
9775 entries_07,
9776 entries_08,
9777 entries_09,
9778 entries_10,
9779 entries_11,
9780 entries_12,
9781 entries_13,
9782 entries_14,
9783 entries_15,
9784 entries_16);
9785 return builder.commit();
9786}
9787
9788template <typename ENTRIES_01,
9789 typename ENTRIES_02,
9790 typename ENTRIES_03,
9791 typename ENTRIES_04,
9792 typename ENTRIES_05,
9793 typename ENTRIES_06,
9794 typename ENTRIES_07,
9795 typename ENTRIES_08,
9796 typename ENTRIES_09,
9797 typename ENTRIES_10,
9798 typename ENTRIES_11,
9799 typename ENTRIES_12,
9800 typename ENTRIES_13,
9801 typename ENTRIES_14,
9802 typename ENTRIES_15,
9803 typename ENTRIES_16,
9804 typename ENTRIES_17,
9805 typename ENTRIES_18>
9806inline
9807bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9808 const ENTRIES_02& entries_02,
9809 const ENTRIES_03& entries_03,
9810 const ENTRIES_04& entries_04,
9811 const ENTRIES_05& entries_05,
9812 const ENTRIES_06& entries_06,
9813 const ENTRIES_07& entries_07,
9814 const ENTRIES_08& entries_08,
9815 const ENTRIES_09& entries_09,
9816 const ENTRIES_10& entries_10,
9817 const ENTRIES_11& entries_11,
9818 const ENTRIES_12& entries_12,
9819 const ENTRIES_13& entries_13,
9820 const ENTRIES_14& entries_14,
9821 const ENTRIES_15& entries_15,
9822 const ENTRIES_16& entries_16,
9823 const ENTRIES_17& entries_17,
9824 const ENTRIES_18& entries_18
9825 ) const
9826{
9827 const int numArguments = 18u;
9828
9829 BSLMF_ASSERT(0 == numArguments % 2);
9830
9831 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9832 pushBackHelper(&builder, entries_01,
9833 entries_02,
9834 entries_03,
9835 entries_04,
9836 entries_05,
9837 entries_06,
9838 entries_07,
9839 entries_08,
9840 entries_09,
9841 entries_10,
9842 entries_11,
9843 entries_12,
9844 entries_13,
9845 entries_14,
9846 entries_15,
9847 entries_16,
9848 entries_17,
9849 entries_18);
9850 return builder.commit();
9851}
9852
9853template <typename ENTRIES_01,
9854 typename ENTRIES_02,
9855 typename ENTRIES_03,
9856 typename ENTRIES_04,
9857 typename ENTRIES_05,
9858 typename ENTRIES_06,
9859 typename ENTRIES_07,
9860 typename ENTRIES_08,
9861 typename ENTRIES_09,
9862 typename ENTRIES_10,
9863 typename ENTRIES_11,
9864 typename ENTRIES_12,
9865 typename ENTRIES_13,
9866 typename ENTRIES_14,
9867 typename ENTRIES_15,
9868 typename ENTRIES_16,
9869 typename ENTRIES_17,
9870 typename ENTRIES_18,
9871 typename ENTRIES_19,
9872 typename ENTRIES_20>
9873inline
9874bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9875 const ENTRIES_02& entries_02,
9876 const ENTRIES_03& entries_03,
9877 const ENTRIES_04& entries_04,
9878 const ENTRIES_05& entries_05,
9879 const ENTRIES_06& entries_06,
9880 const ENTRIES_07& entries_07,
9881 const ENTRIES_08& entries_08,
9882 const ENTRIES_09& entries_09,
9883 const ENTRIES_10& entries_10,
9884 const ENTRIES_11& entries_11,
9885 const ENTRIES_12& entries_12,
9886 const ENTRIES_13& entries_13,
9887 const ENTRIES_14& entries_14,
9888 const ENTRIES_15& entries_15,
9889 const ENTRIES_16& entries_16,
9890 const ENTRIES_17& entries_17,
9891 const ENTRIES_18& entries_18,
9892 const ENTRIES_19& entries_19,
9893 const ENTRIES_20& entries_20
9894 ) const
9895{
9896 const int numArguments = 20u;
9897
9898 BSLMF_ASSERT(0 == numArguments % 2);
9899
9900 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9901 pushBackHelper(&builder, entries_01,
9902 entries_02,
9903 entries_03,
9904 entries_04,
9905 entries_05,
9906 entries_06,
9907 entries_07,
9908 entries_08,
9909 entries_09,
9910 entries_10,
9911 entries_11,
9912 entries_12,
9913 entries_13,
9914 entries_14,
9915 entries_15,
9916 entries_16,
9917 entries_17,
9918 entries_18,
9919 entries_19,
9920 entries_20);
9921 return builder.commit();
9922}
9923
9924template <typename ENTRIES_01,
9925 typename ENTRIES_02,
9926 typename ENTRIES_03,
9927 typename ENTRIES_04,
9928 typename ENTRIES_05,
9929 typename ENTRIES_06,
9930 typename ENTRIES_07,
9931 typename ENTRIES_08,
9932 typename ENTRIES_09,
9933 typename ENTRIES_10,
9934 typename ENTRIES_11,
9935 typename ENTRIES_12,
9936 typename ENTRIES_13,
9937 typename ENTRIES_14,
9938 typename ENTRIES_15,
9939 typename ENTRIES_16,
9940 typename ENTRIES_17,
9941 typename ENTRIES_18,
9942 typename ENTRIES_19,
9943 typename ENTRIES_20,
9944 typename ENTRIES_21,
9945 typename ENTRIES_22>
9946inline
9947bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9948 const ENTRIES_02& entries_02,
9949 const ENTRIES_03& entries_03,
9950 const ENTRIES_04& entries_04,
9951 const ENTRIES_05& entries_05,
9952 const ENTRIES_06& entries_06,
9953 const ENTRIES_07& entries_07,
9954 const ENTRIES_08& entries_08,
9955 const ENTRIES_09& entries_09,
9956 const ENTRIES_10& entries_10,
9957 const ENTRIES_11& entries_11,
9958 const ENTRIES_12& entries_12,
9959 const ENTRIES_13& entries_13,
9960 const ENTRIES_14& entries_14,
9961 const ENTRIES_15& entries_15,
9962 const ENTRIES_16& entries_16,
9963 const ENTRIES_17& entries_17,
9964 const ENTRIES_18& entries_18,
9965 const ENTRIES_19& entries_19,
9966 const ENTRIES_20& entries_20,
9967 const ENTRIES_21& entries_21,
9968 const ENTRIES_22& entries_22
9969 ) const
9970{
9971 const int numArguments = 22u;
9972
9973 BSLMF_ASSERT(0 == numArguments % 2);
9974
9975 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9976 pushBackHelper(&builder, entries_01,
9977 entries_02,
9978 entries_03,
9979 entries_04,
9980 entries_05,
9981 entries_06,
9982 entries_07,
9983 entries_08,
9984 entries_09,
9985 entries_10,
9986 entries_11,
9987 entries_12,
9988 entries_13,
9989 entries_14,
9990 entries_15,
9991 entries_16,
9992 entries_17,
9993 entries_18,
9994 entries_19,
9995 entries_20,
9996 entries_21,
9997 entries_22);
9998 return builder.commit();
9999}
10000
10001template <typename ENTRIES_01,
10002 typename ENTRIES_02,
10003 typename ENTRIES_03,
10004 typename ENTRIES_04,
10005 typename ENTRIES_05,
10006 typename ENTRIES_06,
10007 typename ENTRIES_07,
10008 typename ENTRIES_08,
10009 typename ENTRIES_09,
10010 typename ENTRIES_10,
10011 typename ENTRIES_11,
10012 typename ENTRIES_12,
10013 typename ENTRIES_13,
10014 typename ENTRIES_14,
10015 typename ENTRIES_15,
10016 typename ENTRIES_16,
10017 typename ENTRIES_17,
10018 typename ENTRIES_18,
10019 typename ENTRIES_19,
10020 typename ENTRIES_20,
10021 typename ENTRIES_21,
10022 typename ENTRIES_22,
10023 typename ENTRIES_23,
10024 typename ENTRIES_24>
10025inline
10026bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10027 const ENTRIES_02& entries_02,
10028 const ENTRIES_03& entries_03,
10029 const ENTRIES_04& entries_04,
10030 const ENTRIES_05& entries_05,
10031 const ENTRIES_06& entries_06,
10032 const ENTRIES_07& entries_07,
10033 const ENTRIES_08& entries_08,
10034 const ENTRIES_09& entries_09,
10035 const ENTRIES_10& entries_10,
10036 const ENTRIES_11& entries_11,
10037 const ENTRIES_12& entries_12,
10038 const ENTRIES_13& entries_13,
10039 const ENTRIES_14& entries_14,
10040 const ENTRIES_15& entries_15,
10041 const ENTRIES_16& entries_16,
10042 const ENTRIES_17& entries_17,
10043 const ENTRIES_18& entries_18,
10044 const ENTRIES_19& entries_19,
10045 const ENTRIES_20& entries_20,
10046 const ENTRIES_21& entries_21,
10047 const ENTRIES_22& entries_22,
10048 const ENTRIES_23& entries_23,
10049 const ENTRIES_24& entries_24
10050 ) const
10051{
10052 const int numArguments = 24u;
10053
10054 BSLMF_ASSERT(0 == numArguments % 2);
10055
10056 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10057 pushBackHelper(&builder, entries_01,
10058 entries_02,
10059 entries_03,
10060 entries_04,
10061 entries_05,
10062 entries_06,
10063 entries_07,
10064 entries_08,
10065 entries_09,
10066 entries_10,
10067 entries_11,
10068 entries_12,
10069 entries_13,
10070 entries_14,
10071 entries_15,
10072 entries_16,
10073 entries_17,
10074 entries_18,
10075 entries_19,
10076 entries_20,
10077 entries_21,
10078 entries_22,
10079 entries_23,
10080 entries_24);
10081 return builder.commit();
10082}
10083
10084template <typename ENTRIES_01,
10085 typename ENTRIES_02,
10086 typename ENTRIES_03,
10087 typename ENTRIES_04,
10088 typename ENTRIES_05,
10089 typename ENTRIES_06,
10090 typename ENTRIES_07,
10091 typename ENTRIES_08,
10092 typename ENTRIES_09,
10093 typename ENTRIES_10,
10094 typename ENTRIES_11,
10095 typename ENTRIES_12,
10096 typename ENTRIES_13,
10097 typename ENTRIES_14,
10098 typename ENTRIES_15,
10099 typename ENTRIES_16,
10100 typename ENTRIES_17,
10101 typename ENTRIES_18,
10102 typename ENTRIES_19,
10103 typename ENTRIES_20,
10104 typename ENTRIES_21,
10105 typename ENTRIES_22,
10106 typename ENTRIES_23,
10107 typename ENTRIES_24,
10108 typename ENTRIES_25,
10109 typename ENTRIES_26>
10110inline
10111bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10112 const ENTRIES_02& entries_02,
10113 const ENTRIES_03& entries_03,
10114 const ENTRIES_04& entries_04,
10115 const ENTRIES_05& entries_05,
10116 const ENTRIES_06& entries_06,
10117 const ENTRIES_07& entries_07,
10118 const ENTRIES_08& entries_08,
10119 const ENTRIES_09& entries_09,
10120 const ENTRIES_10& entries_10,
10121 const ENTRIES_11& entries_11,
10122 const ENTRIES_12& entries_12,
10123 const ENTRIES_13& entries_13,
10124 const ENTRIES_14& entries_14,
10125 const ENTRIES_15& entries_15,
10126 const ENTRIES_16& entries_16,
10127 const ENTRIES_17& entries_17,
10128 const ENTRIES_18& entries_18,
10129 const ENTRIES_19& entries_19,
10130 const ENTRIES_20& entries_20,
10131 const ENTRIES_21& entries_21,
10132 const ENTRIES_22& entries_22,
10133 const ENTRIES_23& entries_23,
10134 const ENTRIES_24& entries_24,
10135 const ENTRIES_25& entries_25,
10136 const ENTRIES_26& entries_26
10137 ) const
10138{
10139 const int numArguments = 26u;
10140
10141 BSLMF_ASSERT(0 == numArguments % 2);
10142
10143 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10144 pushBackHelper(&builder, entries_01,
10145 entries_02,
10146 entries_03,
10147 entries_04,
10148 entries_05,
10149 entries_06,
10150 entries_07,
10151 entries_08,
10152 entries_09,
10153 entries_10,
10154 entries_11,
10155 entries_12,
10156 entries_13,
10157 entries_14,
10158 entries_15,
10159 entries_16,
10160 entries_17,
10161 entries_18,
10162 entries_19,
10163 entries_20,
10164 entries_21,
10165 entries_22,
10166 entries_23,
10167 entries_24,
10168 entries_25,
10169 entries_26);
10170 return builder.commit();
10171}
10172
10173template <typename ENTRIES_01,
10174 typename ENTRIES_02,
10175 typename ENTRIES_03,
10176 typename ENTRIES_04,
10177 typename ENTRIES_05,
10178 typename ENTRIES_06,
10179 typename ENTRIES_07,
10180 typename ENTRIES_08,
10181 typename ENTRIES_09,
10182 typename ENTRIES_10,
10183 typename ENTRIES_11,
10184 typename ENTRIES_12,
10185 typename ENTRIES_13,
10186 typename ENTRIES_14,
10187 typename ENTRIES_15,
10188 typename ENTRIES_16,
10189 typename ENTRIES_17,
10190 typename ENTRIES_18,
10191 typename ENTRIES_19,
10192 typename ENTRIES_20,
10193 typename ENTRIES_21,
10194 typename ENTRIES_22,
10195 typename ENTRIES_23,
10196 typename ENTRIES_24,
10197 typename ENTRIES_25,
10198 typename ENTRIES_26,
10199 typename ENTRIES_27,
10200 typename ENTRIES_28>
10201inline
10202bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10203 const ENTRIES_02& entries_02,
10204 const ENTRIES_03& entries_03,
10205 const ENTRIES_04& entries_04,
10206 const ENTRIES_05& entries_05,
10207 const ENTRIES_06& entries_06,
10208 const ENTRIES_07& entries_07,
10209 const ENTRIES_08& entries_08,
10210 const ENTRIES_09& entries_09,
10211 const ENTRIES_10& entries_10,
10212 const ENTRIES_11& entries_11,
10213 const ENTRIES_12& entries_12,
10214 const ENTRIES_13& entries_13,
10215 const ENTRIES_14& entries_14,
10216 const ENTRIES_15& entries_15,
10217 const ENTRIES_16& entries_16,
10218 const ENTRIES_17& entries_17,
10219 const ENTRIES_18& entries_18,
10220 const ENTRIES_19& entries_19,
10221 const ENTRIES_20& entries_20,
10222 const ENTRIES_21& entries_21,
10223 const ENTRIES_22& entries_22,
10224 const ENTRIES_23& entries_23,
10225 const ENTRIES_24& entries_24,
10226 const ENTRIES_25& entries_25,
10227 const ENTRIES_26& entries_26,
10228 const ENTRIES_27& entries_27,
10229 const ENTRIES_28& entries_28
10230 ) const
10231{
10232 const int numArguments = 28u;
10233
10234 BSLMF_ASSERT(0 == numArguments % 2);
10235
10236 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10237 pushBackHelper(&builder, entries_01,
10238 entries_02,
10239 entries_03,
10240 entries_04,
10241 entries_05,
10242 entries_06,
10243 entries_07,
10244 entries_08,
10245 entries_09,
10246 entries_10,
10247 entries_11,
10248 entries_12,
10249 entries_13,
10250 entries_14,
10251 entries_15,
10252 entries_16,
10253 entries_17,
10254 entries_18,
10255 entries_19,
10256 entries_20,
10257 entries_21,
10258 entries_22,
10259 entries_23,
10260 entries_24,
10261 entries_25,
10262 entries_26,
10263 entries_27,
10264 entries_28);
10265 return builder.commit();
10266}
10267
10268template <typename ENTRIES_01,
10269 typename ENTRIES_02,
10270 typename ENTRIES_03,
10271 typename ENTRIES_04,
10272 typename ENTRIES_05,
10273 typename ENTRIES_06,
10274 typename ENTRIES_07,
10275 typename ENTRIES_08,
10276 typename ENTRIES_09,
10277 typename ENTRIES_10,
10278 typename ENTRIES_11,
10279 typename ENTRIES_12,
10280 typename ENTRIES_13,
10281 typename ENTRIES_14,
10282 typename ENTRIES_15,
10283 typename ENTRIES_16,
10284 typename ENTRIES_17,
10285 typename ENTRIES_18,
10286 typename ENTRIES_19,
10287 typename ENTRIES_20,
10288 typename ENTRIES_21,
10289 typename ENTRIES_22,
10290 typename ENTRIES_23,
10291 typename ENTRIES_24,
10292 typename ENTRIES_25,
10293 typename ENTRIES_26,
10294 typename ENTRIES_27,
10295 typename ENTRIES_28,
10296 typename ENTRIES_29,
10297 typename ENTRIES_30>
10298inline
10299bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10300 const ENTRIES_02& entries_02,
10301 const ENTRIES_03& entries_03,
10302 const ENTRIES_04& entries_04,
10303 const ENTRIES_05& entries_05,
10304 const ENTRIES_06& entries_06,
10305 const ENTRIES_07& entries_07,
10306 const ENTRIES_08& entries_08,
10307 const ENTRIES_09& entries_09,
10308 const ENTRIES_10& entries_10,
10309 const ENTRIES_11& entries_11,
10310 const ENTRIES_12& entries_12,
10311 const ENTRIES_13& entries_13,
10312 const ENTRIES_14& entries_14,
10313 const ENTRIES_15& entries_15,
10314 const ENTRIES_16& entries_16,
10315 const ENTRIES_17& entries_17,
10316 const ENTRIES_18& entries_18,
10317 const ENTRIES_19& entries_19,
10318 const ENTRIES_20& entries_20,
10319 const ENTRIES_21& entries_21,
10320 const ENTRIES_22& entries_22,
10321 const ENTRIES_23& entries_23,
10322 const ENTRIES_24& entries_24,
10323 const ENTRIES_25& entries_25,
10324 const ENTRIES_26& entries_26,
10325 const ENTRIES_27& entries_27,
10326 const ENTRIES_28& entries_28,
10327 const ENTRIES_29& entries_29,
10328 const ENTRIES_30& entries_30
10329 ) const
10330{
10331 const int numArguments = 30u;
10332
10333 BSLMF_ASSERT(0 == numArguments % 2);
10334
10335 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10336 pushBackHelper(&builder, entries_01,
10337 entries_02,
10338 entries_03,
10339 entries_04,
10340 entries_05,
10341 entries_06,
10342 entries_07,
10343 entries_08,
10344 entries_09,
10345 entries_10,
10346 entries_11,
10347 entries_12,
10348 entries_13,
10349 entries_14,
10350 entries_15,
10351 entries_16,
10352 entries_17,
10353 entries_18,
10354 entries_19,
10355 entries_20,
10356 entries_21,
10357 entries_22,
10358 entries_23,
10359 entries_24,
10360 entries_25,
10361 entries_26,
10362 entries_27,
10363 entries_28,
10364 entries_29,
10365 entries_30);
10366 return builder.commit();
10367}
10368
10369template <typename ENTRIES_01,
10370 typename ENTRIES_02,
10371 typename ENTRIES_03,
10372 typename ENTRIES_04,
10373 typename ENTRIES_05,
10374 typename ENTRIES_06,
10375 typename ENTRIES_07,
10376 typename ENTRIES_08,
10377 typename ENTRIES_09,
10378 typename ENTRIES_10,
10379 typename ENTRIES_11,
10380 typename ENTRIES_12,
10381 typename ENTRIES_13,
10382 typename ENTRIES_14,
10383 typename ENTRIES_15,
10384 typename ENTRIES_16,
10385 typename ENTRIES_17,
10386 typename ENTRIES_18,
10387 typename ENTRIES_19,
10388 typename ENTRIES_20,
10389 typename ENTRIES_21,
10390 typename ENTRIES_22,
10391 typename ENTRIES_23,
10392 typename ENTRIES_24,
10393 typename ENTRIES_25,
10394 typename ENTRIES_26,
10395 typename ENTRIES_27,
10396 typename ENTRIES_28,
10397 typename ENTRIES_29,
10398 typename ENTRIES_30,
10399 typename ENTRIES_31,
10400 typename ENTRIES_32>
10401inline
10402bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10403 const ENTRIES_02& entries_02,
10404 const ENTRIES_03& entries_03,
10405 const ENTRIES_04& entries_04,
10406 const ENTRIES_05& entries_05,
10407 const ENTRIES_06& entries_06,
10408 const ENTRIES_07& entries_07,
10409 const ENTRIES_08& entries_08,
10410 const ENTRIES_09& entries_09,
10411 const ENTRIES_10& entries_10,
10412 const ENTRIES_11& entries_11,
10413 const ENTRIES_12& entries_12,
10414 const ENTRIES_13& entries_13,
10415 const ENTRIES_14& entries_14,
10416 const ENTRIES_15& entries_15,
10417 const ENTRIES_16& entries_16,
10418 const ENTRIES_17& entries_17,
10419 const ENTRIES_18& entries_18,
10420 const ENTRIES_19& entries_19,
10421 const ENTRIES_20& entries_20,
10422 const ENTRIES_21& entries_21,
10423 const ENTRIES_22& entries_22,
10424 const ENTRIES_23& entries_23,
10425 const ENTRIES_24& entries_24,
10426 const ENTRIES_25& entries_25,
10427 const ENTRIES_26& entries_26,
10428 const ENTRIES_27& entries_27,
10429 const ENTRIES_28& entries_28,
10430 const ENTRIES_29& entries_29,
10431 const ENTRIES_30& entries_30,
10432 const ENTRIES_31& entries_31,
10433 const ENTRIES_32& entries_32
10434 ) const
10435{
10436 const int numArguments = 32u;
10437
10438 BSLMF_ASSERT(0 == numArguments % 2);
10439
10440 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10441 pushBackHelper(&builder, entries_01,
10442 entries_02,
10443 entries_03,
10444 entries_04,
10445 entries_05,
10446 entries_06,
10447 entries_07,
10448 entries_08,
10449 entries_09,
10450 entries_10,
10451 entries_11,
10452 entries_12,
10453 entries_13,
10454 entries_14,
10455 entries_15,
10456 entries_16,
10457 entries_17,
10458 entries_18,
10459 entries_19,
10460 entries_20,
10461 entries_21,
10462 entries_22,
10463 entries_23,
10464 entries_24,
10465 entries_25,
10466 entries_26,
10467 entries_27,
10468 entries_28,
10469 entries_29,
10470 entries_30,
10471 entries_31,
10472 entries_32);
10473 return builder.commit();
10474}
10475
10476#endif
10477
10478
10479#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
10480template <typename... ENTRIES>
10481inline
10482bdld::Datum DatumMaker::im(const ENTRIES&... entries) const
10483{
10484 const int numArguments = sizeof...(ENTRIES);
10485
10486 // Due to MSVC not recognizing bitwise and of a constant expression and a
10487 // string literal as a constant expression, we don't use a meaningful error
10488 // as part of this assert.
10489 //
10490 // See: https://connect.microsoft.com/VisualStudio/feedback/details/1523001
10491 BSLMF_ASSERT(0 == numArguments % 2);
10492
10493 const int mapElements = numArguments / 2;
10494 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10495 pushBackHelper(&builder, entries...);
10496 return builder.commit();
10497}
10498#else
10499inline
10501{
10502 const int mapElements = 0;
10503 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10504 pushBackHelper(&builder);
10505 return builder.commit();
10506}
10507
10508template <typename ENTRY_01>
10509inline
10510bdld::Datum DatumMaker::im(int key_01,
10511 const ENTRY_01& entry_01
10512 ) const
10513{
10514 const int mapElements = 1;
10515 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10516 pushBackHelper(&builder, key_01, entry_01);
10517 return builder.commit();
10518}
10519
10520template <typename ENTRY_01,
10521 typename ENTRY_02>
10522inline
10523bdld::Datum DatumMaker::im(int key_01,
10524 const ENTRY_01& entry_01,
10525 int key_02,
10526 const ENTRY_02& entry_02
10527 ) const
10528{
10529 const int mapElements = 2;
10530 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10531 pushBackHelper(&builder, key_01, entry_01,
10532 key_02, entry_02);
10533 return builder.commit();
10534}
10535
10536template <typename ENTRY_01,
10537 typename ENTRY_02,
10538 typename ENTRY_03>
10539inline
10540bdld::Datum DatumMaker::im(int key_01,
10541 const ENTRY_01& entry_01,
10542 int key_02,
10543 const ENTRY_02& entry_02,
10544 int key_03,
10545 const ENTRY_03& entry_03
10546 ) const
10547{
10548 const int mapElements = 3;
10549 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10550 pushBackHelper(&builder, key_01, entry_01,
10551 key_02, entry_02,
10552 key_03, entry_03);
10553 return builder.commit();
10554}
10555
10556template <typename ENTRY_01,
10557 typename ENTRY_02,
10558 typename ENTRY_03,
10559 typename ENTRY_04>
10560inline
10561bdld::Datum DatumMaker::im(int key_01,
10562 const ENTRY_01& entry_01,
10563 int key_02,
10564 const ENTRY_02& entry_02,
10565 int key_03,
10566 const ENTRY_03& entry_03,
10567 int key_04,
10568 const ENTRY_04& entry_04
10569 ) const
10570{
10571 const int mapElements = 4;
10572 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10573 pushBackHelper(&builder, key_01, entry_01,
10574 key_02, entry_02,
10575 key_03, entry_03,
10576 key_04, entry_04);
10577 return builder.commit();
10578}
10579
10580template <typename ENTRY_01,
10581 typename ENTRY_02,
10582 typename ENTRY_03,
10583 typename ENTRY_04,
10584 typename ENTRY_05>
10585inline
10586bdld::Datum DatumMaker::im(int key_01,
10587 const ENTRY_01& entry_01,
10588 int key_02,
10589 const ENTRY_02& entry_02,
10590 int key_03,
10591 const ENTRY_03& entry_03,
10592 int key_04,
10593 const ENTRY_04& entry_04,
10594 int key_05,
10595 const ENTRY_05& entry_05
10596 ) const
10597{
10598 const int mapElements = 5;
10599 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10600 pushBackHelper(&builder, key_01, entry_01,
10601 key_02, entry_02,
10602 key_03, entry_03,
10603 key_04, entry_04,
10604 key_05, entry_05);
10605 return builder.commit();
10606}
10607
10608template <typename ENTRY_01,
10609 typename ENTRY_02,
10610 typename ENTRY_03,
10611 typename ENTRY_04,
10612 typename ENTRY_05,
10613 typename ENTRY_06>
10614inline
10615bdld::Datum DatumMaker::im(int key_01,
10616 const ENTRY_01& entry_01,
10617 int key_02,
10618 const ENTRY_02& entry_02,
10619 int key_03,
10620 const ENTRY_03& entry_03,
10621 int key_04,
10622 const ENTRY_04& entry_04,
10623 int key_05,
10624 const ENTRY_05& entry_05,
10625 int key_06,
10626 const ENTRY_06& entry_06
10627 ) const
10628{
10629 const int mapElements = 6;
10630 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10631 pushBackHelper(&builder, key_01, entry_01,
10632 key_02, entry_02,
10633 key_03, entry_03,
10634 key_04, entry_04,
10635 key_05, entry_05,
10636 key_06, entry_06);
10637 return builder.commit();
10638}
10639
10640template <typename ENTRY_01,
10641 typename ENTRY_02,
10642 typename ENTRY_03,
10643 typename ENTRY_04,
10644 typename ENTRY_05,
10645 typename ENTRY_06,
10646 typename ENTRY_07>
10647inline
10648bdld::Datum DatumMaker::im(int key_01,
10649 const ENTRY_01& entry_01,
10650 int key_02,
10651 const ENTRY_02& entry_02,
10652 int key_03,
10653 const ENTRY_03& entry_03,
10654 int key_04,
10655 const ENTRY_04& entry_04,
10656 int key_05,
10657 const ENTRY_05& entry_05,
10658 int key_06,
10659 const ENTRY_06& entry_06,
10660 int key_07,
10661 const ENTRY_07& entry_07
10662 ) const
10663{
10664 const int mapElements = 7;
10665 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10666 pushBackHelper(&builder, key_01, entry_01,
10667 key_02, entry_02,
10668 key_03, entry_03,
10669 key_04, entry_04,
10670 key_05, entry_05,
10671 key_06, entry_06,
10672 key_07, entry_07);
10673 return builder.commit();
10674}
10675
10676template <typename ENTRY_01,
10677 typename ENTRY_02,
10678 typename ENTRY_03,
10679 typename ENTRY_04,
10680 typename ENTRY_05,
10681 typename ENTRY_06,
10682 typename ENTRY_07,
10683 typename ENTRY_08>
10684inline
10685bdld::Datum DatumMaker::im(int key_01,
10686 const ENTRY_01& entry_01,
10687 int key_02,
10688 const ENTRY_02& entry_02,
10689 int key_03,
10690 const ENTRY_03& entry_03,
10691 int key_04,
10692 const ENTRY_04& entry_04,
10693 int key_05,
10694 const ENTRY_05& entry_05,
10695 int key_06,
10696 const ENTRY_06& entry_06,
10697 int key_07,
10698 const ENTRY_07& entry_07,
10699 int key_08,
10700 const ENTRY_08& entry_08
10701 ) const
10702{
10703 const int mapElements = 8;
10704 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10705 pushBackHelper(&builder, key_01, entry_01,
10706 key_02, entry_02,
10707 key_03, entry_03,
10708 key_04, entry_04,
10709 key_05, entry_05,
10710 key_06, entry_06,
10711 key_07, entry_07,
10712 key_08, entry_08);
10713 return builder.commit();
10714}
10715
10716template <typename ENTRY_01,
10717 typename ENTRY_02,
10718 typename ENTRY_03,
10719 typename ENTRY_04,
10720 typename ENTRY_05,
10721 typename ENTRY_06,
10722 typename ENTRY_07,
10723 typename ENTRY_08,
10724 typename ENTRY_09>
10725inline
10726bdld::Datum DatumMaker::im(int key_01,
10727 const ENTRY_01& entry_01,
10728 int key_02,
10729 const ENTRY_02& entry_02,
10730 int key_03,
10731 const ENTRY_03& entry_03,
10732 int key_04,
10733 const ENTRY_04& entry_04,
10734 int key_05,
10735 const ENTRY_05& entry_05,
10736 int key_06,
10737 const ENTRY_06& entry_06,
10738 int key_07,
10739 const ENTRY_07& entry_07,
10740 int key_08,
10741 const ENTRY_08& entry_08,
10742 int key_09,
10743 const ENTRY_09& entry_09
10744 ) const
10745{
10746 const int mapElements = 9;
10747 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10748 pushBackHelper(&builder, key_01, entry_01,
10749 key_02, entry_02,
10750 key_03, entry_03,
10751 key_04, entry_04,
10752 key_05, entry_05,
10753 key_06, entry_06,
10754 key_07, entry_07,
10755 key_08, entry_08,
10756 key_09, entry_09);
10757 return builder.commit();
10758}
10759
10760template <typename ENTRY_01,
10761 typename ENTRY_02,
10762 typename ENTRY_03,
10763 typename ENTRY_04,
10764 typename ENTRY_05,
10765 typename ENTRY_06,
10766 typename ENTRY_07,
10767 typename ENTRY_08,
10768 typename ENTRY_09,
10769 typename ENTRY_10>
10770inline
10771bdld::Datum DatumMaker::im(int key_01,
10772 const ENTRY_01& entry_01,
10773 int key_02,
10774 const ENTRY_02& entry_02,
10775 int key_03,
10776 const ENTRY_03& entry_03,
10777 int key_04,
10778 const ENTRY_04& entry_04,
10779 int key_05,
10780 const ENTRY_05& entry_05,
10781 int key_06,
10782 const ENTRY_06& entry_06,
10783 int key_07,
10784 const ENTRY_07& entry_07,
10785 int key_08,
10786 const ENTRY_08& entry_08,
10787 int key_09,
10788 const ENTRY_09& entry_09,
10789 int key_10,
10790 const ENTRY_10& entry_10
10791 ) const
10792{
10793 const int mapElements = 10;
10794 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10795 pushBackHelper(&builder, key_01, entry_01,
10796 key_02, entry_02,
10797 key_03, entry_03,
10798 key_04, entry_04,
10799 key_05, entry_05,
10800 key_06, entry_06,
10801 key_07, entry_07,
10802 key_08, entry_08,
10803 key_09, entry_09,
10804 key_10, entry_10);
10805 return builder.commit();
10806}
10807
10808template <typename ENTRY_01,
10809 typename ENTRY_02,
10810 typename ENTRY_03,
10811 typename ENTRY_04,
10812 typename ENTRY_05,
10813 typename ENTRY_06,
10814 typename ENTRY_07,
10815 typename ENTRY_08,
10816 typename ENTRY_09,
10817 typename ENTRY_10,
10818 typename ENTRY_11>
10819inline
10820bdld::Datum DatumMaker::im(int key_01,
10821 const ENTRY_01& entry_01,
10822 int key_02,
10823 const ENTRY_02& entry_02,
10824 int key_03,
10825 const ENTRY_03& entry_03,
10826 int key_04,
10827 const ENTRY_04& entry_04,
10828 int key_05,
10829 const ENTRY_05& entry_05,
10830 int key_06,
10831 const ENTRY_06& entry_06,
10832 int key_07,
10833 const ENTRY_07& entry_07,
10834 int key_08,
10835 const ENTRY_08& entry_08,
10836 int key_09,
10837 const ENTRY_09& entry_09,
10838 int key_10,
10839 const ENTRY_10& entry_10,
10840 int key_11,
10841 const ENTRY_11& entry_11
10842 ) const
10843{
10844 const int mapElements = 11;
10845 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10846 pushBackHelper(&builder, key_01, entry_01,
10847 key_02, entry_02,
10848 key_03, entry_03,
10849 key_04, entry_04,
10850 key_05, entry_05,
10851 key_06, entry_06,
10852 key_07, entry_07,
10853 key_08, entry_08,
10854 key_09, entry_09,
10855 key_10, entry_10,
10856 key_11, entry_11);
10857 return builder.commit();
10858}
10859
10860template <typename ENTRY_01,
10861 typename ENTRY_02,
10862 typename ENTRY_03,
10863 typename ENTRY_04,
10864 typename ENTRY_05,
10865 typename ENTRY_06,
10866 typename ENTRY_07,
10867 typename ENTRY_08,
10868 typename ENTRY_09,
10869 typename ENTRY_10,
10870 typename ENTRY_11,
10871 typename ENTRY_12>
10872inline
10873bdld::Datum DatumMaker::im(int key_01,
10874 const ENTRY_01& entry_01,
10875 int key_02,
10876 const ENTRY_02& entry_02,
10877 int key_03,
10878 const ENTRY_03& entry_03,
10879 int key_04,
10880 const ENTRY_04& entry_04,
10881 int key_05,
10882 const ENTRY_05& entry_05,
10883 int key_06,
10884 const ENTRY_06& entry_06,
10885 int key_07,
10886 const ENTRY_07& entry_07,
10887 int key_08,
10888 const ENTRY_08& entry_08,
10889 int key_09,
10890 const ENTRY_09& entry_09,
10891 int key_10,
10892 const ENTRY_10& entry_10,
10893 int key_11,
10894 const ENTRY_11& entry_11,
10895 int key_12,
10896 const ENTRY_12& entry_12
10897 ) const
10898{
10899 const int mapElements = 12;
10900 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10901 pushBackHelper(&builder, key_01, entry_01,
10902 key_02, entry_02,
10903 key_03, entry_03,
10904 key_04, entry_04,
10905 key_05, entry_05,
10906 key_06, entry_06,
10907 key_07, entry_07,
10908 key_08, entry_08,
10909 key_09, entry_09,
10910 key_10, entry_10,
10911 key_11, entry_11,
10912 key_12, entry_12);
10913 return builder.commit();
10914}
10915
10916template <typename ENTRY_01,
10917 typename ENTRY_02,
10918 typename ENTRY_03,
10919 typename ENTRY_04,
10920 typename ENTRY_05,
10921 typename ENTRY_06,
10922 typename ENTRY_07,
10923 typename ENTRY_08,
10924 typename ENTRY_09,
10925 typename ENTRY_10,
10926 typename ENTRY_11,
10927 typename ENTRY_12,
10928 typename ENTRY_13>
10929inline
10930bdld::Datum DatumMaker::im(int key_01,
10931 const ENTRY_01& entry_01,
10932 int key_02,
10933 const ENTRY_02& entry_02,
10934 int key_03,
10935 const ENTRY_03& entry_03,
10936 int key_04,
10937 const ENTRY_04& entry_04,
10938 int key_05,
10939 const ENTRY_05& entry_05,
10940 int key_06,
10941 const ENTRY_06& entry_06,
10942 int key_07,
10943 const ENTRY_07& entry_07,
10944 int key_08,
10945 const ENTRY_08& entry_08,
10946 int key_09,
10947 const ENTRY_09& entry_09,
10948 int key_10,
10949 const ENTRY_10& entry_10,
10950 int key_11,
10951 const ENTRY_11& entry_11,
10952 int key_12,
10953 const ENTRY_12& entry_12,
10954 int key_13,
10955 const ENTRY_13& entry_13
10956 ) const
10957{
10958 const int mapElements = 13;
10959 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10960 pushBackHelper(&builder, key_01, entry_01,
10961 key_02, entry_02,
10962 key_03, entry_03,
10963 key_04, entry_04,
10964 key_05, entry_05,
10965 key_06, entry_06,
10966 key_07, entry_07,
10967 key_08, entry_08,
10968 key_09, entry_09,
10969 key_10, entry_10,
10970 key_11, entry_11,
10971 key_12, entry_12,
10972 key_13, entry_13);
10973 return builder.commit();
10974}
10975
10976template <typename ENTRY_01,
10977 typename ENTRY_02,
10978 typename ENTRY_03,
10979 typename ENTRY_04,
10980 typename ENTRY_05,
10981 typename ENTRY_06,
10982 typename ENTRY_07,
10983 typename ENTRY_08,
10984 typename ENTRY_09,
10985 typename ENTRY_10,
10986 typename ENTRY_11,
10987 typename ENTRY_12,
10988 typename ENTRY_13,
10989 typename ENTRY_14>
10990inline
10991bdld::Datum DatumMaker::im(int key_01,
10992 const ENTRY_01& entry_01,
10993 int key_02,
10994 const ENTRY_02& entry_02,
10995 int key_03,
10996 const ENTRY_03& entry_03,
10997 int key_04,
10998 const ENTRY_04& entry_04,
10999 int key_05,
11000 const ENTRY_05& entry_05,
11001 int key_06,
11002 const ENTRY_06& entry_06,
11003 int key_07,
11004 const ENTRY_07& entry_07,
11005 int key_08,
11006 const ENTRY_08& entry_08,
11007 int key_09,
11008 const ENTRY_09& entry_09,
11009 int key_10,
11010 const ENTRY_10& entry_10,
11011 int key_11,
11012 const ENTRY_11& entry_11,
11013 int key_12,
11014 const ENTRY_12& entry_12,
11015 int key_13,
11016 const ENTRY_13& entry_13,
11017 int key_14,
11018 const ENTRY_14& entry_14
11019 ) const
11020{
11021 const int mapElements = 14;
11022 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
11023 pushBackHelper(&builder, key_01, entry_01,
11024 key_02, entry_02,
11025 key_03, entry_03,
11026 key_04, entry_04,
11027 key_05, entry_05,
11028 key_06, entry_06,
11029 key_07, entry_07,
11030 key_08, entry_08,
11031 key_09, entry_09,
11032 key_10, entry_10,
11033 key_11, entry_11,
11034 key_12, entry_12,
11035 key_13, entry_13,
11036 key_14, entry_14);
11037 return builder.commit();
11038}
11039
11040template <typename ENTRY_01,
11041 typename ENTRY_02,
11042 typename ENTRY_03,
11043 typename ENTRY_04,
11044 typename ENTRY_05,
11045 typename ENTRY_06,
11046 typename ENTRY_07,
11047 typename ENTRY_08,
11048 typename ENTRY_09,
11049 typename ENTRY_10,
11050 typename ENTRY_11,
11051 typename ENTRY_12,
11052 typename ENTRY_13,
11053 typename ENTRY_14,
11054 typename ENTRY_15>
11055inline
11056bdld::Datum DatumMaker::im(int key_01,
11057 const ENTRY_01& entry_01,
11058 int key_02,
11059 const ENTRY_02& entry_02,
11060 int key_03,
11061 const ENTRY_03& entry_03,
11062 int key_04,
11063 const ENTRY_04& entry_04,
11064 int key_05,
11065 const ENTRY_05& entry_05,
11066 int key_06,
11067 const ENTRY_06& entry_06,
11068 int key_07,
11069 const ENTRY_07& entry_07,
11070 int key_08,
11071 const ENTRY_08& entry_08,
11072 int key_09,
11073 const ENTRY_09& entry_09,
11074 int key_10,
11075 const ENTRY_10& entry_10,
11076 int key_11,
11077 const ENTRY_11& entry_11,
11078 int key_12,
11079 const ENTRY_12& entry_12,
11080 int key_13,
11081 const ENTRY_13& entry_13,
11082 int key_14,
11083 const ENTRY_14& entry_14,
11084 int key_15,
11085 const ENTRY_15& entry_15
11086 ) const
11087{
11088 const int mapElements = 15;
11089 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
11090 pushBackHelper(&builder, key_01, entry_01,
11091 key_02, entry_02,
11092 key_03, entry_03,
11093 key_04, entry_04,
11094 key_05, entry_05,
11095 key_06, entry_06,
11096 key_07, entry_07,
11097 key_08, entry_08,
11098 key_09, entry_09,
11099 key_10, entry_10,
11100 key_11, entry_11,
11101 key_12, entry_12,
11102 key_13, entry_13,
11103 key_14, entry_14,
11104 key_15, entry_15);
11105 return builder.commit();
11106}
11107
11108template <typename ENTRY_01,
11109 typename ENTRY_02,
11110 typename ENTRY_03,
11111 typename ENTRY_04,
11112 typename ENTRY_05,
11113 typename ENTRY_06,
11114 typename ENTRY_07,
11115 typename ENTRY_08,
11116 typename ENTRY_09,
11117 typename ENTRY_10,
11118 typename ENTRY_11,
11119 typename ENTRY_12,
11120 typename ENTRY_13,
11121 typename ENTRY_14,
11122 typename ENTRY_15,
11123 typename ENTRY_16>
11124inline
11125bdld::Datum DatumMaker::im(int key_01,
11126 const ENTRY_01& entry_01,
11127 int key_02,
11128 const ENTRY_02& entry_02,
11129 int key_03,
11130 const ENTRY_03& entry_03,
11131 int key_04,
11132 const ENTRY_04& entry_04,
11133 int key_05,
11134 const ENTRY_05& entry_05,
11135 int key_06,
11136 const ENTRY_06& entry_06,
11137 int key_07,
11138 const ENTRY_07& entry_07,
11139 int key_08,
11140 const ENTRY_08& entry_08,
11141 int key_09,
11142 const ENTRY_09& entry_09,
11143 int key_10,
11144 const ENTRY_10& entry_10,
11145 int key_11,
11146 const ENTRY_11& entry_11,
11147 int key_12,
11148 const ENTRY_12& entry_12,
11149 int key_13,
11150 const ENTRY_13& entry_13,
11151 int key_14,
11152 const ENTRY_14& entry_14,
11153 int key_15,
11154 const ENTRY_15& entry_15,
11155 int key_16,
11156 const ENTRY_16& entry_16
11157 ) const
11158{
11159 const int mapElements = 16;
11160 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
11161 pushBackHelper(&builder, key_01, entry_01,
11162 key_02, entry_02,
11163 key_03, entry_03,
11164 key_04, entry_04,
11165 key_05, entry_05,
11166 key_06, entry_06,
11167 key_07, entry_07,
11168 key_08, entry_08,
11169 key_09, entry_09,
11170 key_10, entry_10,
11171 key_11, entry_11,
11172 key_12, entry_12,
11173 key_13, entry_13,
11174 key_14, entry_14,
11175 key_15, entry_15,
11176 key_16, entry_16);
11177 return builder.commit();
11178}
11179
11180#endif
11181
11182inline
11184{
11185 return bdld::Datum::createStringRef(string, d_allocator);
11186}
11187
11188} // close package namespace
11189
11190
11191#endif
11192
11193// ----------------------------------------------------------------------------
11194// Copyright 2016 Bloomberg Finance L.P.
11195//
11196// Licensed under the Apache License, Version 2.0 (the "License");
11197// you may not use this file except in compliance with the License.
11198// You may obtain a copy of the License at
11199//
11200// http://www.apache.org/licenses/LICENSE-2.0
11201//
11202// Unless required by applicable law or agreed to in writing, software
11203// distributed under the License is distributed on an "AS IS" BASIS,
11204// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11205// See the License for the specific language governing permissions and
11206// limitations under the License.
11207// ----------------------------- END-OF-FILE ----------------------------------
11208
11209/** @} */
11210/** @} */
11211/** @} */
Definition bdlb_nullablevalue.h:262
bool isNull() const BSLS_KEYWORD_NOEXCEPT
Return true if this object is null, and false otherwise.
Definition bdlb_nullablevalue.h:1829
TYPE & value()
Definition bdlb_nullablevalue.h:1792
Definition bdld_datumarraybuilder.h:223
void pushBack(const Datum &value)
Definition bdld_datum.h:2561
Definition bdld_datumerror.h:161
bslstl::StringRef message() const
Definition bdld_datumerror.h:327
int code() const
Return the error code.
Definition bdld_datumerror.h:321
Definition bdld_datumintmapbuilder.h:161
void pushBack(int key, const Datum &value)
Definition bdld_datum.h:2734
Definition bdld_datummaker.h:158
bdld::Datum m(const ENTRIES &... entries) const
Definition bdld_datummaker.h:8413
bdld::Datum ref(const bslstl::StringRef &string) const
Definition bdld_datummaker.h:11183
bslma::Allocator * allocator() const
Definition bdld_datummaker.h:7702
bdld::Datum operator()() const
Return a bdld::Datum having a null value.
Definition bdld_datummaker.h:7714
bsl::allocator AllocatorType
Definition bdld_datummaker.h:162
bdld::Datum mok(const ENTRIES &... entries) const
Definition bdld_datummaker.h:9456
bdld::Datum bin(const void *pointer, bsl::size_t size) const
Definition bdld_datummaker.h:7847
AllocatorType get_allocator() const
Definition bdld_datummaker.h:7708
bdld::Datum im(const ENTRIES &... entries) const
Definition bdld_datummaker.h:10482
bdld::Datum a(const ELEMENTS &... elements) const
Definition bdld_datummaker.h:7855
bdld::Datum operator()(const bdld::DatumIntMapEntry *elements, int size, bool sorted=false) const
bdld::Datum operator()(const bdld::DatumMapEntry *elements, int size, bool sorted=false) const
Definition bdld_datummapbuilder.h:167
void pushBack(const bslstl::StringRef &key, const Datum &value)
Definition bdld_datum.h:3007
Definition bdld_datummapowningkeysbuilder.h:174
void pushBack(const bslstl::StringRef &key, const Datum &value)
Definition bdld_datum.h:2398
Definition bdld_datum.h:2326
Definition bdld_datumudt.h:144
void * data() const
Return the pointer to the user-defined object.
Definition bdld_datumudt.h:275
int type() const
Return the type of the user-defined object.
Definition bdld_datumudt.h:281
Definition bdld_datum.h:799
static Datum createTime(const bdlt::Time &value)
Return, by value, a datum having the specified Time value.
Definition bdld_datum.h:4119
static Datum adoptIntMap(const DatumMutableIntMapRef &intMap)
Definition bdld_datum.h:4190
static Datum createStringRef(const char *string, SizeType length, const AllocatorType &allocator)
Definition bdld_datum.h:4065
static Datum createNull()
Return, by value, a datum having no value.
Definition bdld_datum.h:4049
static Datum createError(int code)
Definition bdld_datum.h:4000
static Datum copyString(const char *string, SizeType length, const AllocatorType &allocator)
static Datum createInteger64(bsls::Types::Int64 value, const AllocatorType &allocator)
Definition bdld_datum.h:4025
static Datum createUdt(void *data, int type)
Definition bdld_datum.h:4140
static Datum createArrayReference(const Datum *array, SizeType length, const AllocatorType &allocator)
Definition bdld_datum.h:3832
static Datum createDecimal64(bdldfp::Decimal64 value, const AllocatorType &allocator)
static Datum createDouble(double value)
Definition bdld_datum.h:3982
static Datum createInteger(int value)
Return, by value, a datum having the specified int value.
Definition bdld_datum.h:4010
static Datum createDatetime(const bdlt::Datetime &value, const AllocatorType &allocator)
Definition bdld_datum.h:3910
static Datum copyBinary(const void *value, SizeType size, const AllocatorType &allocator)
static Datum createDatetimeInterval(const bdlt::DatetimeInterval &value, const AllocatorType &allocator)
Definition bdld_datum.h:3951
static Datum createDate(const bdlt::Date &value)
Return, by value, a datum having the specified Date value.
Definition bdld_datum.h:3892
static Datum adoptMap(const DatumMutableMapRef &map)
Definition bdld_datum.h:4176
static Datum createBoolean(bool value)
Return, by value, a datum having the specified bool value.
Definition bdld_datum.h:3877
Definition bdldfp_decimal.h:1890
Definition bdlt_date.h:294
Definition bdlt_datetimeinterval.h:201
Definition bdlt_datetime.h:330
Definition bdlt_time.h:195
Definition bslma_bslallocator.h:588
BloombergLP::bslma::Allocator * mechanism() const
Definition bslma_bslallocator.h:1146
Definition bslma_allocator.h:545
Definition bslstl_stringref.h:374
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:231
Definition bdld_datum.h:740
StringRefImp< char > StringRef
Definition bslstl_stringref.h:725
Definition bslmf_nil.h:133
long long Int64
Definition bsls_types.h:134