BDE 4.14.0 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
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 /// @deprecated Use @ref get_allocator() instead.
2368 ///
2369 /// Return `get_allocator().mechanism()`.
2370 bslma::Allocator *allocator() const;
2371
2372 /// Return the allocator used by this object to supply memory. Note
2373 /// that if no allocator was supplied at construction the default
2374 /// allocator in effect at construction is used.
2376
2377 /// Return a `bdld::Datum` having a null value.
2378 bdld::Datum operator()() const;
2379
2380 /// Return a `bdld::Datum` having the specified `value`. Note that
2381 /// where possible, no memory is allocated - array are returned as
2382 /// references. Note that `DatumMapRef` and `DatumIntMapRef` are not
2383 /// supported at the moment.
2384 bdld::Datum operator()(const bslmf::Nil& value) const;
2385 bdld::Datum operator()(int value) const;
2386 bdld::Datum operator()(double value) const;
2387 bdld::Datum operator()(bool value) const;
2388 bdld::Datum operator()(const bdld::DatumError& value) const;
2389 bdld::Datum operator()(const bdlt::Date& value) const;
2390 bdld::Datum operator()(const bdlt::Time& value) const;
2391 bdld::Datum operator()(const bdlt::Datetime& value) const;
2392 bdld::Datum operator()(const bdlt::DatetimeInterval& value) const;
2395 bdld::Datum operator()(const bdld::DatumUdt& value) const;
2396 bdld::Datum operator()(const bdld::Datum& value) const;
2397 bdld::Datum operator()(const bdld::DatumArrayRef& value) const;
2400
2401 /// Return a `bdld::Datum` having the specified `size` number of
2402 /// `elements`. Note that where possible, no memory is allocated -
2403 /// arrays are returned as references. Note that `DatumMapRef` and
2404 /// `DatumIntMapRef` are not supported at the moment.
2405 bdld::Datum operator()(const bdld::Datum *elements,
2406 int size) const;
2408 int size,
2409 bool sorted = false) const;
2411 const bdld::DatumIntMapEntry *elements,
2412 int size,
2413 bool sorted = false) const;
2414
2415 /// Return a `bdld::Datum` having the specified `value`. The returned
2416 /// `bdld::Datum` object will contain a deep-copy of `value`.
2417 bdld::Datum operator()(const bslstl::StringRef& value) const;
2418 bdld::Datum operator()(const char *value) const;
2419
2420 /// Return a `bdld::Datum` having the specified `value`, or null if
2421 /// `value` is unset.
2422 template <class TYPE>
2424
2425 /// Return a binary `bdld::Datum` having a value that is the copy of the
2426 /// memory area described by the specified `pointer` and `size`.
2427 bdld::Datum bin(const void *pointer, bsl::size_t size) const;
2428
2429#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
2430 /// Return a `bdld::Datum` having an array value of the specified
2431 /// `elements`.
2432 template <typename... ELEMENTS>
2433 bdld::Datum a(const ELEMENTS&... elements) const;
2434
2435// IMPORTANT NOTE: The section below was manually modified to reduce the
2436// maximum number of parameters to 16.
2437#else
2438 bdld::Datum a() const;
2439
2440 template <typename ELEMENTS_01>
2441 bdld::Datum a(const ELEMENTS_01& elements_01
2442 ) const;
2443
2444 template <typename ELEMENTS_01,
2445 typename ELEMENTS_02>
2446 bdld::Datum a(const ELEMENTS_01& elements_01,
2447 const ELEMENTS_02& elements_02
2448 ) const;
2449
2450 template <typename ELEMENTS_01,
2451 typename ELEMENTS_02,
2452 typename ELEMENTS_03>
2453 bdld::Datum a(const ELEMENTS_01& elements_01,
2454 const ELEMENTS_02& elements_02,
2455 const ELEMENTS_03& elements_03
2456 ) const;
2457
2458 template <typename ELEMENTS_01,
2459 typename ELEMENTS_02,
2460 typename ELEMENTS_03,
2461 typename ELEMENTS_04>
2462 bdld::Datum a(const ELEMENTS_01& elements_01,
2463 const ELEMENTS_02& elements_02,
2464 const ELEMENTS_03& elements_03,
2465 const ELEMENTS_04& elements_04
2466 ) const;
2467
2468 template <typename ELEMENTS_01,
2469 typename ELEMENTS_02,
2470 typename ELEMENTS_03,
2471 typename ELEMENTS_04,
2472 typename ELEMENTS_05>
2473 bdld::Datum a(const ELEMENTS_01& elements_01,
2474 const ELEMENTS_02& elements_02,
2475 const ELEMENTS_03& elements_03,
2476 const ELEMENTS_04& elements_04,
2477 const ELEMENTS_05& elements_05
2478 ) const;
2479
2480 template <typename ELEMENTS_01,
2481 typename ELEMENTS_02,
2482 typename ELEMENTS_03,
2483 typename ELEMENTS_04,
2484 typename ELEMENTS_05,
2485 typename ELEMENTS_06>
2486 bdld::Datum a(const ELEMENTS_01& elements_01,
2487 const ELEMENTS_02& elements_02,
2488 const ELEMENTS_03& elements_03,
2489 const ELEMENTS_04& elements_04,
2490 const ELEMENTS_05& elements_05,
2491 const ELEMENTS_06& elements_06
2492 ) const;
2493
2494 template <typename ELEMENTS_01,
2495 typename ELEMENTS_02,
2496 typename ELEMENTS_03,
2497 typename ELEMENTS_04,
2498 typename ELEMENTS_05,
2499 typename ELEMENTS_06,
2500 typename ELEMENTS_07>
2501 bdld::Datum a(const ELEMENTS_01& elements_01,
2502 const ELEMENTS_02& elements_02,
2503 const ELEMENTS_03& elements_03,
2504 const ELEMENTS_04& elements_04,
2505 const ELEMENTS_05& elements_05,
2506 const ELEMENTS_06& elements_06,
2507 const ELEMENTS_07& elements_07
2508 ) const;
2509
2510 template <typename ELEMENTS_01,
2511 typename ELEMENTS_02,
2512 typename ELEMENTS_03,
2513 typename ELEMENTS_04,
2514 typename ELEMENTS_05,
2515 typename ELEMENTS_06,
2516 typename ELEMENTS_07,
2517 typename ELEMENTS_08>
2518 bdld::Datum a(const ELEMENTS_01& elements_01,
2519 const ELEMENTS_02& elements_02,
2520 const ELEMENTS_03& elements_03,
2521 const ELEMENTS_04& elements_04,
2522 const ELEMENTS_05& elements_05,
2523 const ELEMENTS_06& elements_06,
2524 const ELEMENTS_07& elements_07,
2525 const ELEMENTS_08& elements_08
2526 ) const;
2527
2528 template <typename ELEMENTS_01,
2529 typename ELEMENTS_02,
2530 typename ELEMENTS_03,
2531 typename ELEMENTS_04,
2532 typename ELEMENTS_05,
2533 typename ELEMENTS_06,
2534 typename ELEMENTS_07,
2535 typename ELEMENTS_08,
2536 typename ELEMENTS_09>
2537 bdld::Datum a(const ELEMENTS_01& elements_01,
2538 const ELEMENTS_02& elements_02,
2539 const ELEMENTS_03& elements_03,
2540 const ELEMENTS_04& elements_04,
2541 const ELEMENTS_05& elements_05,
2542 const ELEMENTS_06& elements_06,
2543 const ELEMENTS_07& elements_07,
2544 const ELEMENTS_08& elements_08,
2545 const ELEMENTS_09& elements_09
2546 ) const;
2547
2548 template <typename ELEMENTS_01,
2549 typename ELEMENTS_02,
2550 typename ELEMENTS_03,
2551 typename ELEMENTS_04,
2552 typename ELEMENTS_05,
2553 typename ELEMENTS_06,
2554 typename ELEMENTS_07,
2555 typename ELEMENTS_08,
2556 typename ELEMENTS_09,
2557 typename ELEMENTS_10>
2558 bdld::Datum a(const ELEMENTS_01& elements_01,
2559 const ELEMENTS_02& elements_02,
2560 const ELEMENTS_03& elements_03,
2561 const ELEMENTS_04& elements_04,
2562 const ELEMENTS_05& elements_05,
2563 const ELEMENTS_06& elements_06,
2564 const ELEMENTS_07& elements_07,
2565 const ELEMENTS_08& elements_08,
2566 const ELEMENTS_09& elements_09,
2567 const ELEMENTS_10& elements_10
2568 ) const;
2569
2570 template <typename ELEMENTS_01,
2571 typename ELEMENTS_02,
2572 typename ELEMENTS_03,
2573 typename ELEMENTS_04,
2574 typename ELEMENTS_05,
2575 typename ELEMENTS_06,
2576 typename ELEMENTS_07,
2577 typename ELEMENTS_08,
2578 typename ELEMENTS_09,
2579 typename ELEMENTS_10,
2580 typename ELEMENTS_11>
2581 bdld::Datum a(const ELEMENTS_01& elements_01,
2582 const ELEMENTS_02& elements_02,
2583 const ELEMENTS_03& elements_03,
2584 const ELEMENTS_04& elements_04,
2585 const ELEMENTS_05& elements_05,
2586 const ELEMENTS_06& elements_06,
2587 const ELEMENTS_07& elements_07,
2588 const ELEMENTS_08& elements_08,
2589 const ELEMENTS_09& elements_09,
2590 const ELEMENTS_10& elements_10,
2591 const ELEMENTS_11& elements_11
2592 ) const;
2593
2594 template <typename ELEMENTS_01,
2595 typename ELEMENTS_02,
2596 typename ELEMENTS_03,
2597 typename ELEMENTS_04,
2598 typename ELEMENTS_05,
2599 typename ELEMENTS_06,
2600 typename ELEMENTS_07,
2601 typename ELEMENTS_08,
2602 typename ELEMENTS_09,
2603 typename ELEMENTS_10,
2604 typename ELEMENTS_11,
2605 typename ELEMENTS_12>
2606 bdld::Datum a(const ELEMENTS_01& elements_01,
2607 const ELEMENTS_02& elements_02,
2608 const ELEMENTS_03& elements_03,
2609 const ELEMENTS_04& elements_04,
2610 const ELEMENTS_05& elements_05,
2611 const ELEMENTS_06& elements_06,
2612 const ELEMENTS_07& elements_07,
2613 const ELEMENTS_08& elements_08,
2614 const ELEMENTS_09& elements_09,
2615 const ELEMENTS_10& elements_10,
2616 const ELEMENTS_11& elements_11,
2617 const ELEMENTS_12& elements_12
2618 ) const;
2619
2620 template <typename ELEMENTS_01,
2621 typename ELEMENTS_02,
2622 typename ELEMENTS_03,
2623 typename ELEMENTS_04,
2624 typename ELEMENTS_05,
2625 typename ELEMENTS_06,
2626 typename ELEMENTS_07,
2627 typename ELEMENTS_08,
2628 typename ELEMENTS_09,
2629 typename ELEMENTS_10,
2630 typename ELEMENTS_11,
2631 typename ELEMENTS_12,
2632 typename ELEMENTS_13>
2633 bdld::Datum a(const ELEMENTS_01& elements_01,
2634 const ELEMENTS_02& elements_02,
2635 const ELEMENTS_03& elements_03,
2636 const ELEMENTS_04& elements_04,
2637 const ELEMENTS_05& elements_05,
2638 const ELEMENTS_06& elements_06,
2639 const ELEMENTS_07& elements_07,
2640 const ELEMENTS_08& elements_08,
2641 const ELEMENTS_09& elements_09,
2642 const ELEMENTS_10& elements_10,
2643 const ELEMENTS_11& elements_11,
2644 const ELEMENTS_12& elements_12,
2645 const ELEMENTS_13& elements_13
2646 ) const;
2647
2648 template <typename ELEMENTS_01,
2649 typename ELEMENTS_02,
2650 typename ELEMENTS_03,
2651 typename ELEMENTS_04,
2652 typename ELEMENTS_05,
2653 typename ELEMENTS_06,
2654 typename ELEMENTS_07,
2655 typename ELEMENTS_08,
2656 typename ELEMENTS_09,
2657 typename ELEMENTS_10,
2658 typename ELEMENTS_11,
2659 typename ELEMENTS_12,
2660 typename ELEMENTS_13,
2661 typename ELEMENTS_14>
2662 bdld::Datum a(const ELEMENTS_01& elements_01,
2663 const ELEMENTS_02& elements_02,
2664 const ELEMENTS_03& elements_03,
2665 const ELEMENTS_04& elements_04,
2666 const ELEMENTS_05& elements_05,
2667 const ELEMENTS_06& elements_06,
2668 const ELEMENTS_07& elements_07,
2669 const ELEMENTS_08& elements_08,
2670 const ELEMENTS_09& elements_09,
2671 const ELEMENTS_10& elements_10,
2672 const ELEMENTS_11& elements_11,
2673 const ELEMENTS_12& elements_12,
2674 const ELEMENTS_13& elements_13,
2675 const ELEMENTS_14& elements_14
2676 ) const;
2677
2678 template <typename ELEMENTS_01,
2679 typename ELEMENTS_02,
2680 typename ELEMENTS_03,
2681 typename ELEMENTS_04,
2682 typename ELEMENTS_05,
2683 typename ELEMENTS_06,
2684 typename ELEMENTS_07,
2685 typename ELEMENTS_08,
2686 typename ELEMENTS_09,
2687 typename ELEMENTS_10,
2688 typename ELEMENTS_11,
2689 typename ELEMENTS_12,
2690 typename ELEMENTS_13,
2691 typename ELEMENTS_14,
2692 typename ELEMENTS_15>
2693 bdld::Datum a(const ELEMENTS_01& elements_01,
2694 const ELEMENTS_02& elements_02,
2695 const ELEMENTS_03& elements_03,
2696 const ELEMENTS_04& elements_04,
2697 const ELEMENTS_05& elements_05,
2698 const ELEMENTS_06& elements_06,
2699 const ELEMENTS_07& elements_07,
2700 const ELEMENTS_08& elements_08,
2701 const ELEMENTS_09& elements_09,
2702 const ELEMENTS_10& elements_10,
2703 const ELEMENTS_11& elements_11,
2704 const ELEMENTS_12& elements_12,
2705 const ELEMENTS_13& elements_13,
2706 const ELEMENTS_14& elements_14,
2707 const ELEMENTS_15& elements_15
2708 ) const;
2709
2710 template <typename ELEMENTS_01,
2711 typename ELEMENTS_02,
2712 typename ELEMENTS_03,
2713 typename ELEMENTS_04,
2714 typename ELEMENTS_05,
2715 typename ELEMENTS_06,
2716 typename ELEMENTS_07,
2717 typename ELEMENTS_08,
2718 typename ELEMENTS_09,
2719 typename ELEMENTS_10,
2720 typename ELEMENTS_11,
2721 typename ELEMENTS_12,
2722 typename ELEMENTS_13,
2723 typename ELEMENTS_14,
2724 typename ELEMENTS_15,
2725 typename ELEMENTS_16>
2726 bdld::Datum a(const ELEMENTS_01& elements_01,
2727 const ELEMENTS_02& elements_02,
2728 const ELEMENTS_03& elements_03,
2729 const ELEMENTS_04& elements_04,
2730 const ELEMENTS_05& elements_05,
2731 const ELEMENTS_06& elements_06,
2732 const ELEMENTS_07& elements_07,
2733 const ELEMENTS_08& elements_08,
2734 const ELEMENTS_09& elements_09,
2735 const ELEMENTS_10& elements_10,
2736 const ELEMENTS_11& elements_11,
2737 const ELEMENTS_12& elements_12,
2738 const ELEMENTS_13& elements_13,
2739 const ELEMENTS_14& elements_14,
2740 const ELEMENTS_15& elements_15,
2741 const ELEMENTS_16& elements_16
2742 ) const;
2743
2744#endif
2745
2746#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
2747 /// Return a `bdld::Datum` object containing a map of the specified
2748 /// `entries`. The `entries` are supplied as pairs (odd number of
2749 /// `sizeof...(entries)` being an error) where the first specified
2750 /// element is the key, and the second is its corresponding value. The
2751 /// behavior is undefined if the same key is supplied more than once.
2752 template <typename... ENTRIES>
2753 bdld::Datum m(const ENTRIES&... entries) const;
2754#else
2755 bdld::Datum m() const;
2756
2757 template <typename ENTRIES_01,
2758 typename ENTRIES_02>
2759 bdld::Datum m(const ENTRIES_01& entrie_01,
2760 const ENTRIES_02& entrie_02
2761 ) const;
2762
2763 template <typename ENTRIES_01,
2764 typename ENTRIES_02,
2765 typename ENTRIES_03,
2766 typename ENTRIES_04>
2767 bdld::Datum m(const ENTRIES_01& entries_01,
2768 const ENTRIES_02& entries_02,
2769 const ENTRIES_03& entries_03,
2770 const ENTRIES_04& entries_04
2771 ) const;
2772
2773 template <typename ENTRIES_01,
2774 typename ENTRIES_02,
2775 typename ENTRIES_03,
2776 typename ENTRIES_04,
2777 typename ENTRIES_05,
2778 typename ENTRIES_06>
2779 bdld::Datum m(const ENTRIES_01& entries_01,
2780 const ENTRIES_02& entries_02,
2781 const ENTRIES_03& entries_03,
2782 const ENTRIES_04& entries_04,
2783 const ENTRIES_05& entries_05,
2784 const ENTRIES_06& entries_06
2785 ) const;
2786
2787 template <typename ENTRIES_01,
2788 typename ENTRIES_02,
2789 typename ENTRIES_03,
2790 typename ENTRIES_04,
2791 typename ENTRIES_05,
2792 typename ENTRIES_06,
2793 typename ENTRIES_07,
2794 typename ENTRIES_08>
2795 bdld::Datum m(const ENTRIES_01& entries_01,
2796 const ENTRIES_02& entries_02,
2797 const ENTRIES_03& entries_03,
2798 const ENTRIES_04& entries_04,
2799 const ENTRIES_05& entries_05,
2800 const ENTRIES_06& entries_06,
2801 const ENTRIES_07& entries_07,
2802 const ENTRIES_08& entries_08
2803 ) const;
2804
2805 template <typename ENTRIES_01,
2806 typename ENTRIES_02,
2807 typename ENTRIES_03,
2808 typename ENTRIES_04,
2809 typename ENTRIES_05,
2810 typename ENTRIES_06,
2811 typename ENTRIES_07,
2812 typename ENTRIES_08,
2813 typename ENTRIES_09,
2814 typename ENTRIES_10>
2815 bdld::Datum m(const ENTRIES_01& entries_01,
2816 const ENTRIES_02& entries_02,
2817 const ENTRIES_03& entries_03,
2818 const ENTRIES_04& entries_04,
2819 const ENTRIES_05& entries_05,
2820 const ENTRIES_06& entries_06,
2821 const ENTRIES_07& entries_07,
2822 const ENTRIES_08& entries_08,
2823 const ENTRIES_09& entries_09,
2824 const ENTRIES_10& entries_10
2825 ) const;
2826
2827 template <typename ENTRIES_01,
2828 typename ENTRIES_02,
2829 typename ENTRIES_03,
2830 typename ENTRIES_04,
2831 typename ENTRIES_05,
2832 typename ENTRIES_06,
2833 typename ENTRIES_07,
2834 typename ENTRIES_08,
2835 typename ENTRIES_09,
2836 typename ENTRIES_10,
2837 typename ENTRIES_11,
2838 typename ENTRIES_12>
2839 bdld::Datum m(const ENTRIES_01& entries_01,
2840 const ENTRIES_02& entries_02,
2841 const ENTRIES_03& entries_03,
2842 const ENTRIES_04& entries_04,
2843 const ENTRIES_05& entries_05,
2844 const ENTRIES_06& entries_06,
2845 const ENTRIES_07& entries_07,
2846 const ENTRIES_08& entries_08,
2847 const ENTRIES_09& entries_09,
2848 const ENTRIES_10& entries_10,
2849 const ENTRIES_11& entries_11,
2850 const ENTRIES_12& entries_12
2851 ) const;
2852
2853 template <typename ENTRIES_01,
2854 typename ENTRIES_02,
2855 typename ENTRIES_03,
2856 typename ENTRIES_04,
2857 typename ENTRIES_05,
2858 typename ENTRIES_06,
2859 typename ENTRIES_07,
2860 typename ENTRIES_08,
2861 typename ENTRIES_09,
2862 typename ENTRIES_10,
2863 typename ENTRIES_11,
2864 typename ENTRIES_12,
2865 typename ENTRIES_13,
2866 typename ENTRIES_14>
2867 bdld::Datum m(const ENTRIES_01& entries_01,
2868 const ENTRIES_02& entries_02,
2869 const ENTRIES_03& entries_03,
2870 const ENTRIES_04& entries_04,
2871 const ENTRIES_05& entries_05,
2872 const ENTRIES_06& entries_06,
2873 const ENTRIES_07& entries_07,
2874 const ENTRIES_08& entries_08,
2875 const ENTRIES_09& entries_09,
2876 const ENTRIES_10& entries_10,
2877 const ENTRIES_11& entries_11,
2878 const ENTRIES_12& entries_12,
2879 const ENTRIES_13& entries_13,
2880 const ENTRIES_14& entries_14
2881 ) const;
2882
2883 template <typename ENTRIES_01,
2884 typename ENTRIES_02,
2885 typename ENTRIES_03,
2886 typename ENTRIES_04,
2887 typename ENTRIES_05,
2888 typename ENTRIES_06,
2889 typename ENTRIES_07,
2890 typename ENTRIES_08,
2891 typename ENTRIES_09,
2892 typename ENTRIES_10,
2893 typename ENTRIES_11,
2894 typename ENTRIES_12,
2895 typename ENTRIES_13,
2896 typename ENTRIES_14,
2897 typename ENTRIES_15,
2898 typename ENTRIES_16>
2899 bdld::Datum m(const ENTRIES_01& entries_01,
2900 const ENTRIES_02& entries_02,
2901 const ENTRIES_03& entries_03,
2902 const ENTRIES_04& entries_04,
2903 const ENTRIES_05& entries_05,
2904 const ENTRIES_06& entries_06,
2905 const ENTRIES_07& entries_07,
2906 const ENTRIES_08& entries_08,
2907 const ENTRIES_09& entries_09,
2908 const ENTRIES_10& entries_10,
2909 const ENTRIES_11& entries_11,
2910 const ENTRIES_12& entries_12,
2911 const ENTRIES_13& entries_13,
2912 const ENTRIES_14& entries_14,
2913 const ENTRIES_15& entries_15,
2914 const ENTRIES_16& entries_16
2915 ) const;
2916
2917 template <typename ENTRIES_01,
2918 typename ENTRIES_02,
2919 typename ENTRIES_03,
2920 typename ENTRIES_04,
2921 typename ENTRIES_05,
2922 typename ENTRIES_06,
2923 typename ENTRIES_07,
2924 typename ENTRIES_08,
2925 typename ENTRIES_09,
2926 typename ENTRIES_10,
2927 typename ENTRIES_11,
2928 typename ENTRIES_12,
2929 typename ENTRIES_13,
2930 typename ENTRIES_14,
2931 typename ENTRIES_15,
2932 typename ENTRIES_16,
2933 typename ENTRIES_17,
2934 typename ENTRIES_18>
2935 bdld::Datum m(const ENTRIES_01& entries_01,
2936 const ENTRIES_02& entries_02,
2937 const ENTRIES_03& entries_03,
2938 const ENTRIES_04& entries_04,
2939 const ENTRIES_05& entries_05,
2940 const ENTRIES_06& entries_06,
2941 const ENTRIES_07& entries_07,
2942 const ENTRIES_08& entries_08,
2943 const ENTRIES_09& entries_09,
2944 const ENTRIES_10& entries_10,
2945 const ENTRIES_11& entries_11,
2946 const ENTRIES_12& entries_12,
2947 const ENTRIES_13& entries_13,
2948 const ENTRIES_14& entries_14,
2949 const ENTRIES_15& entries_15,
2950 const ENTRIES_16& entries_16,
2951 const ENTRIES_17& entries_17,
2952 const ENTRIES_18& entries_18
2953 ) const;
2954
2955 template <typename ENTRIES_01,
2956 typename ENTRIES_02,
2957 typename ENTRIES_03,
2958 typename ENTRIES_04,
2959 typename ENTRIES_05,
2960 typename ENTRIES_06,
2961 typename ENTRIES_07,
2962 typename ENTRIES_08,
2963 typename ENTRIES_09,
2964 typename ENTRIES_10,
2965 typename ENTRIES_11,
2966 typename ENTRIES_12,
2967 typename ENTRIES_13,
2968 typename ENTRIES_14,
2969 typename ENTRIES_15,
2970 typename ENTRIES_16,
2971 typename ENTRIES_17,
2972 typename ENTRIES_18,
2973 typename ENTRIES_19,
2974 typename ENTRIES_20>
2975 bdld::Datum m(const ENTRIES_01& entries_01,
2976 const ENTRIES_02& entries_02,
2977 const ENTRIES_03& entries_03,
2978 const ENTRIES_04& entries_04,
2979 const ENTRIES_05& entries_05,
2980 const ENTRIES_06& entries_06,
2981 const ENTRIES_07& entries_07,
2982 const ENTRIES_08& entries_08,
2983 const ENTRIES_09& entries_09,
2984 const ENTRIES_10& entries_10,
2985 const ENTRIES_11& entries_11,
2986 const ENTRIES_12& entries_12,
2987 const ENTRIES_13& entries_13,
2988 const ENTRIES_14& entries_14,
2989 const ENTRIES_15& entries_15,
2990 const ENTRIES_16& entries_16,
2991 const ENTRIES_17& entries_17,
2992 const ENTRIES_18& entries_18,
2993 const ENTRIES_19& entries_19,
2994 const ENTRIES_20& entries_20
2995 ) const;
2996
2997 template <typename ENTRIES_01,
2998 typename ENTRIES_02,
2999 typename ENTRIES_03,
3000 typename ENTRIES_04,
3001 typename ENTRIES_05,
3002 typename ENTRIES_06,
3003 typename ENTRIES_07,
3004 typename ENTRIES_08,
3005 typename ENTRIES_09,
3006 typename ENTRIES_10,
3007 typename ENTRIES_11,
3008 typename ENTRIES_12,
3009 typename ENTRIES_13,
3010 typename ENTRIES_14,
3011 typename ENTRIES_15,
3012 typename ENTRIES_16,
3013 typename ENTRIES_17,
3014 typename ENTRIES_18,
3015 typename ENTRIES_19,
3016 typename ENTRIES_20,
3017 typename ENTRIES_21,
3018 typename ENTRIES_22>
3019 bdld::Datum m(const ENTRIES_01& entries_01,
3020 const ENTRIES_02& entries_02,
3021 const ENTRIES_03& entries_03,
3022 const ENTRIES_04& entries_04,
3023 const ENTRIES_05& entries_05,
3024 const ENTRIES_06& entries_06,
3025 const ENTRIES_07& entries_07,
3026 const ENTRIES_08& entries_08,
3027 const ENTRIES_09& entries_09,
3028 const ENTRIES_10& entries_10,
3029 const ENTRIES_11& entries_11,
3030 const ENTRIES_12& entries_12,
3031 const ENTRIES_13& entries_13,
3032 const ENTRIES_14& entries_14,
3033 const ENTRIES_15& entries_15,
3034 const ENTRIES_16& entries_16,
3035 const ENTRIES_17& entries_17,
3036 const ENTRIES_18& entries_18,
3037 const ENTRIES_19& entries_19,
3038 const ENTRIES_20& entries_20,
3039 const ENTRIES_21& entries_21,
3040 const ENTRIES_22& entries_22
3041 ) const;
3042
3043 template <typename ENTRIES_01,
3044 typename ENTRIES_02,
3045 typename ENTRIES_03,
3046 typename ENTRIES_04,
3047 typename ENTRIES_05,
3048 typename ENTRIES_06,
3049 typename ENTRIES_07,
3050 typename ENTRIES_08,
3051 typename ENTRIES_09,
3052 typename ENTRIES_10,
3053 typename ENTRIES_11,
3054 typename ENTRIES_12,
3055 typename ENTRIES_13,
3056 typename ENTRIES_14,
3057 typename ENTRIES_15,
3058 typename ENTRIES_16,
3059 typename ENTRIES_17,
3060 typename ENTRIES_18,
3061 typename ENTRIES_19,
3062 typename ENTRIES_20,
3063 typename ENTRIES_21,
3064 typename ENTRIES_22,
3065 typename ENTRIES_23,
3066 typename ENTRIES_24>
3067 bdld::Datum m(const ENTRIES_01& entries_01,
3068 const ENTRIES_02& entries_02,
3069 const ENTRIES_03& entries_03,
3070 const ENTRIES_04& entries_04,
3071 const ENTRIES_05& entries_05,
3072 const ENTRIES_06& entries_06,
3073 const ENTRIES_07& entries_07,
3074 const ENTRIES_08& entries_08,
3075 const ENTRIES_09& entries_09,
3076 const ENTRIES_10& entries_10,
3077 const ENTRIES_11& entries_11,
3078 const ENTRIES_12& entries_12,
3079 const ENTRIES_13& entries_13,
3080 const ENTRIES_14& entries_14,
3081 const ENTRIES_15& entries_15,
3082 const ENTRIES_16& entries_16,
3083 const ENTRIES_17& entries_17,
3084 const ENTRIES_18& entries_18,
3085 const ENTRIES_19& entries_19,
3086 const ENTRIES_20& entries_20,
3087 const ENTRIES_21& entries_21,
3088 const ENTRIES_22& entries_22,
3089 const ENTRIES_23& entries_23,
3090 const ENTRIES_24& entries_24
3091 ) const;
3092
3093 template <typename ENTRIES_01,
3094 typename ENTRIES_02,
3095 typename ENTRIES_03,
3096 typename ENTRIES_04,
3097 typename ENTRIES_05,
3098 typename ENTRIES_06,
3099 typename ENTRIES_07,
3100 typename ENTRIES_08,
3101 typename ENTRIES_09,
3102 typename ENTRIES_10,
3103 typename ENTRIES_11,
3104 typename ENTRIES_12,
3105 typename ENTRIES_13,
3106 typename ENTRIES_14,
3107 typename ENTRIES_15,
3108 typename ENTRIES_16,
3109 typename ENTRIES_17,
3110 typename ENTRIES_18,
3111 typename ENTRIES_19,
3112 typename ENTRIES_20,
3113 typename ENTRIES_21,
3114 typename ENTRIES_22,
3115 typename ENTRIES_23,
3116 typename ENTRIES_24,
3117 typename ENTRIES_25,
3118 typename ENTRIES_26>
3119 bdld::Datum m(const ENTRIES_01& entries_01,
3120 const ENTRIES_02& entries_02,
3121 const ENTRIES_03& entries_03,
3122 const ENTRIES_04& entries_04,
3123 const ENTRIES_05& entries_05,
3124 const ENTRIES_06& entries_06,
3125 const ENTRIES_07& entries_07,
3126 const ENTRIES_08& entries_08,
3127 const ENTRIES_09& entries_09,
3128 const ENTRIES_10& entries_10,
3129 const ENTRIES_11& entries_11,
3130 const ENTRIES_12& entries_12,
3131 const ENTRIES_13& entries_13,
3132 const ENTRIES_14& entries_14,
3133 const ENTRIES_15& entries_15,
3134 const ENTRIES_16& entries_16,
3135 const ENTRIES_17& entries_17,
3136 const ENTRIES_18& entries_18,
3137 const ENTRIES_19& entries_19,
3138 const ENTRIES_20& entries_20,
3139 const ENTRIES_21& entries_21,
3140 const ENTRIES_22& entries_22,
3141 const ENTRIES_23& entries_23,
3142 const ENTRIES_24& entries_24,
3143 const ENTRIES_25& entries_25,
3144 const ENTRIES_26& entries_26
3145 ) const;
3146
3147 template <typename ENTRIES_01,
3148 typename ENTRIES_02,
3149 typename ENTRIES_03,
3150 typename ENTRIES_04,
3151 typename ENTRIES_05,
3152 typename ENTRIES_06,
3153 typename ENTRIES_07,
3154 typename ENTRIES_08,
3155 typename ENTRIES_09,
3156 typename ENTRIES_10,
3157 typename ENTRIES_11,
3158 typename ENTRIES_12,
3159 typename ENTRIES_13,
3160 typename ENTRIES_14,
3161 typename ENTRIES_15,
3162 typename ENTRIES_16,
3163 typename ENTRIES_17,
3164 typename ENTRIES_18,
3165 typename ENTRIES_19,
3166 typename ENTRIES_20,
3167 typename ENTRIES_21,
3168 typename ENTRIES_22,
3169 typename ENTRIES_23,
3170 typename ENTRIES_24,
3171 typename ENTRIES_25,
3172 typename ENTRIES_26,
3173 typename ENTRIES_27,
3174 typename ENTRIES_28>
3175 bdld::Datum m(const ENTRIES_01& entries_01,
3176 const ENTRIES_02& entries_02,
3177 const ENTRIES_03& entries_03,
3178 const ENTRIES_04& entries_04,
3179 const ENTRIES_05& entries_05,
3180 const ENTRIES_06& entries_06,
3181 const ENTRIES_07& entries_07,
3182 const ENTRIES_08& entries_08,
3183 const ENTRIES_09& entries_09,
3184 const ENTRIES_10& entries_10,
3185 const ENTRIES_11& entries_11,
3186 const ENTRIES_12& entries_12,
3187 const ENTRIES_13& entries_13,
3188 const ENTRIES_14& entries_14,
3189 const ENTRIES_15& entries_15,
3190 const ENTRIES_16& entries_16,
3191 const ENTRIES_17& entries_17,
3192 const ENTRIES_18& entries_18,
3193 const ENTRIES_19& entries_19,
3194 const ENTRIES_20& entries_20,
3195 const ENTRIES_21& entries_21,
3196 const ENTRIES_22& entries_22,
3197 const ENTRIES_23& entries_23,
3198 const ENTRIES_24& entries_24,
3199 const ENTRIES_25& entries_25,
3200 const ENTRIES_26& entries_26,
3201 const ENTRIES_27& entries_27,
3202 const ENTRIES_28& entries_28
3203 ) const;
3204
3205 template <typename ENTRIES_01,
3206 typename ENTRIES_02,
3207 typename ENTRIES_03,
3208 typename ENTRIES_04,
3209 typename ENTRIES_05,
3210 typename ENTRIES_06,
3211 typename ENTRIES_07,
3212 typename ENTRIES_08,
3213 typename ENTRIES_09,
3214 typename ENTRIES_10,
3215 typename ENTRIES_11,
3216 typename ENTRIES_12,
3217 typename ENTRIES_13,
3218 typename ENTRIES_14,
3219 typename ENTRIES_15,
3220 typename ENTRIES_16,
3221 typename ENTRIES_17,
3222 typename ENTRIES_18,
3223 typename ENTRIES_19,
3224 typename ENTRIES_20,
3225 typename ENTRIES_21,
3226 typename ENTRIES_22,
3227 typename ENTRIES_23,
3228 typename ENTRIES_24,
3229 typename ENTRIES_25,
3230 typename ENTRIES_26,
3231 typename ENTRIES_27,
3232 typename ENTRIES_28,
3233 typename ENTRIES_29,
3234 typename ENTRIES_30>
3235 bdld::Datum m(const ENTRIES_01& entries_01,
3236 const ENTRIES_02& entries_02,
3237 const ENTRIES_03& entries_03,
3238 const ENTRIES_04& entries_04,
3239 const ENTRIES_05& entries_05,
3240 const ENTRIES_06& entries_06,
3241 const ENTRIES_07& entries_07,
3242 const ENTRIES_08& entries_08,
3243 const ENTRIES_09& entries_09,
3244 const ENTRIES_10& entries_10,
3245 const ENTRIES_11& entries_11,
3246 const ENTRIES_12& entries_12,
3247 const ENTRIES_13& entries_13,
3248 const ENTRIES_14& entries_14,
3249 const ENTRIES_15& entries_15,
3250 const ENTRIES_16& entries_16,
3251 const ENTRIES_17& entries_17,
3252 const ENTRIES_18& entries_18,
3253 const ENTRIES_19& entries_19,
3254 const ENTRIES_20& entries_20,
3255 const ENTRIES_21& entries_21,
3256 const ENTRIES_22& entries_22,
3257 const ENTRIES_23& entries_23,
3258 const ENTRIES_24& entries_24,
3259 const ENTRIES_25& entries_25,
3260 const ENTRIES_26& entries_26,
3261 const ENTRIES_27& entries_27,
3262 const ENTRIES_28& entries_28,
3263 const ENTRIES_29& entries_29,
3264 const ENTRIES_30& entries_30
3265 ) const;
3266
3267 template <typename ENTRIES_01,
3268 typename ENTRIES_02,
3269 typename ENTRIES_03,
3270 typename ENTRIES_04,
3271 typename ENTRIES_05,
3272 typename ENTRIES_06,
3273 typename ENTRIES_07,
3274 typename ENTRIES_08,
3275 typename ENTRIES_09,
3276 typename ENTRIES_10,
3277 typename ENTRIES_11,
3278 typename ENTRIES_12,
3279 typename ENTRIES_13,
3280 typename ENTRIES_14,
3281 typename ENTRIES_15,
3282 typename ENTRIES_16,
3283 typename ENTRIES_17,
3284 typename ENTRIES_18,
3285 typename ENTRIES_19,
3286 typename ENTRIES_20,
3287 typename ENTRIES_21,
3288 typename ENTRIES_22,
3289 typename ENTRIES_23,
3290 typename ENTRIES_24,
3291 typename ENTRIES_25,
3292 typename ENTRIES_26,
3293 typename ENTRIES_27,
3294 typename ENTRIES_28,
3295 typename ENTRIES_29,
3296 typename ENTRIES_30,
3297 typename ENTRIES_31,
3298 typename ENTRIES_32>
3299 bdld::Datum m(const ENTRIES_01& entries_01,
3300 const ENTRIES_02& entries_02,
3301 const ENTRIES_03& entries_03,
3302 const ENTRIES_04& entries_04,
3303 const ENTRIES_05& entries_05,
3304 const ENTRIES_06& entries_06,
3305 const ENTRIES_07& entries_07,
3306 const ENTRIES_08& entries_08,
3307 const ENTRIES_09& entries_09,
3308 const ENTRIES_10& entries_10,
3309 const ENTRIES_11& entries_11,
3310 const ENTRIES_12& entries_12,
3311 const ENTRIES_13& entries_13,
3312 const ENTRIES_14& entries_14,
3313 const ENTRIES_15& entries_15,
3314 const ENTRIES_16& entries_16,
3315 const ENTRIES_17& entries_17,
3316 const ENTRIES_18& entries_18,
3317 const ENTRIES_19& entries_19,
3318 const ENTRIES_20& entries_20,
3319 const ENTRIES_21& entries_21,
3320 const ENTRIES_22& entries_22,
3321 const ENTRIES_23& entries_23,
3322 const ENTRIES_24& entries_24,
3323 const ENTRIES_25& entries_25,
3324 const ENTRIES_26& entries_26,
3325 const ENTRIES_27& entries_27,
3326 const ENTRIES_28& entries_28,
3327 const ENTRIES_29& entries_29,
3328 const ENTRIES_30& entries_30,
3329 const ENTRIES_31& entries_31,
3330 const ENTRIES_32& entries_32
3331 ) const;
3332
3333#endif
3334
3335#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
3336 /// Return a `bdld::Datum` object containing a map with owned keys
3337 /// consisting of the specified `entries`. The `entries` are supplied
3338 /// as pairs (odd number of `sizeof...(entries)` being an error) where
3339 /// the first specified element is the key, and the second is its
3340 /// corresponding value. The behavior is undefined if the same key is
3341 /// supplied more than once.
3342 template <typename... ENTRIES>
3343 bdld::Datum mok(const ENTRIES&... entries) const;
3344#else
3345 bdld::Datum mok() const;
3346
3347 template <typename ENTRIES_01,
3348 typename ENTRIES_02>
3349 bdld::Datum mok(const ENTRIES_01& entries_01,
3350 const ENTRIES_02& entries_02
3351 ) const;
3352
3353 template <typename ENTRIES_01,
3354 typename ENTRIES_02,
3355 typename ENTRIES_03,
3356 typename ENTRIES_04>
3357 bdld::Datum mok(const ENTRIES_01& entries_01,
3358 const ENTRIES_02& entries_02,
3359 const ENTRIES_03& entries_03,
3360 const ENTRIES_04& entries_04
3361 ) const;
3362
3363 template <typename ENTRIES_01,
3364 typename ENTRIES_02,
3365 typename ENTRIES_03,
3366 typename ENTRIES_04,
3367 typename ENTRIES_05,
3368 typename ENTRIES_06>
3369 bdld::Datum mok(const ENTRIES_01& entries_01,
3370 const ENTRIES_02& entries_02,
3371 const ENTRIES_03& entries_03,
3372 const ENTRIES_04& entries_04,
3373 const ENTRIES_05& entries_05,
3374 const ENTRIES_06& entries_06
3375 ) const;
3376
3377 template <typename ENTRIES_01,
3378 typename ENTRIES_02,
3379 typename ENTRIES_03,
3380 typename ENTRIES_04,
3381 typename ENTRIES_05,
3382 typename ENTRIES_06,
3383 typename ENTRIES_07,
3384 typename ENTRIES_08>
3385 bdld::Datum mok(const ENTRIES_01& entries_01,
3386 const ENTRIES_02& entries_02,
3387 const ENTRIES_03& entries_03,
3388 const ENTRIES_04& entries_04,
3389 const ENTRIES_05& entries_05,
3390 const ENTRIES_06& entries_06,
3391 const ENTRIES_07& entries_07,
3392 const ENTRIES_08& entries_08
3393 ) const;
3394
3395 template <typename ENTRIES_01,
3396 typename ENTRIES_02,
3397 typename ENTRIES_03,
3398 typename ENTRIES_04,
3399 typename ENTRIES_05,
3400 typename ENTRIES_06,
3401 typename ENTRIES_07,
3402 typename ENTRIES_08,
3403 typename ENTRIES_09,
3404 typename ENTRIES_10>
3405 bdld::Datum mok(const ENTRIES_01& entries_01,
3406 const ENTRIES_02& entries_02,
3407 const ENTRIES_03& entries_03,
3408 const ENTRIES_04& entries_04,
3409 const ENTRIES_05& entries_05,
3410 const ENTRIES_06& entries_06,
3411 const ENTRIES_07& entries_07,
3412 const ENTRIES_08& entries_08,
3413 const ENTRIES_09& entries_09,
3414 const ENTRIES_10& entries_10
3415 ) const;
3416
3417 template <typename ENTRIES_01,
3418 typename ENTRIES_02,
3419 typename ENTRIES_03,
3420 typename ENTRIES_04,
3421 typename ENTRIES_05,
3422 typename ENTRIES_06,
3423 typename ENTRIES_07,
3424 typename ENTRIES_08,
3425 typename ENTRIES_09,
3426 typename ENTRIES_10,
3427 typename ENTRIES_11,
3428 typename ENTRIES_12>
3429 bdld::Datum mok(const ENTRIES_01& entries_01,
3430 const ENTRIES_02& entries_02,
3431 const ENTRIES_03& entries_03,
3432 const ENTRIES_04& entries_04,
3433 const ENTRIES_05& entries_05,
3434 const ENTRIES_06& entries_06,
3435 const ENTRIES_07& entries_07,
3436 const ENTRIES_08& entries_08,
3437 const ENTRIES_09& entries_09,
3438 const ENTRIES_10& entries_10,
3439 const ENTRIES_11& entries_11,
3440 const ENTRIES_12& entries_12
3441 ) const;
3442
3443 template <typename ENTRIES_01,
3444 typename ENTRIES_02,
3445 typename ENTRIES_03,
3446 typename ENTRIES_04,
3447 typename ENTRIES_05,
3448 typename ENTRIES_06,
3449 typename ENTRIES_07,
3450 typename ENTRIES_08,
3451 typename ENTRIES_09,
3452 typename ENTRIES_10,
3453 typename ENTRIES_11,
3454 typename ENTRIES_12,
3455 typename ENTRIES_13,
3456 typename ENTRIES_14>
3457 bdld::Datum mok(const ENTRIES_01& entries_01,
3458 const ENTRIES_02& entries_02,
3459 const ENTRIES_03& entries_03,
3460 const ENTRIES_04& entries_04,
3461 const ENTRIES_05& entries_05,
3462 const ENTRIES_06& entries_06,
3463 const ENTRIES_07& entries_07,
3464 const ENTRIES_08& entries_08,
3465 const ENTRIES_09& entries_09,
3466 const ENTRIES_10& entries_10,
3467 const ENTRIES_11& entries_11,
3468 const ENTRIES_12& entries_12,
3469 const ENTRIES_13& entries_13,
3470 const ENTRIES_14& entries_14
3471 ) const;
3472
3473 template <typename ENTRIES_01,
3474 typename ENTRIES_02,
3475 typename ENTRIES_03,
3476 typename ENTRIES_04,
3477 typename ENTRIES_05,
3478 typename ENTRIES_06,
3479 typename ENTRIES_07,
3480 typename ENTRIES_08,
3481 typename ENTRIES_09,
3482 typename ENTRIES_10,
3483 typename ENTRIES_11,
3484 typename ENTRIES_12,
3485 typename ENTRIES_13,
3486 typename ENTRIES_14,
3487 typename ENTRIES_15,
3488 typename ENTRIES_16>
3489 bdld::Datum mok(const ENTRIES_01& entries_01,
3490 const ENTRIES_02& entries_02,
3491 const ENTRIES_03& entries_03,
3492 const ENTRIES_04& entries_04,
3493 const ENTRIES_05& entries_05,
3494 const ENTRIES_06& entries_06,
3495 const ENTRIES_07& entries_07,
3496 const ENTRIES_08& entries_08,
3497 const ENTRIES_09& entries_09,
3498 const ENTRIES_10& entries_10,
3499 const ENTRIES_11& entries_11,
3500 const ENTRIES_12& entries_12,
3501 const ENTRIES_13& entries_13,
3502 const ENTRIES_14& entries_14,
3503 const ENTRIES_15& entries_15,
3504 const ENTRIES_16& entries_16
3505 ) const;
3506
3507 template <typename ENTRIES_01,
3508 typename ENTRIES_02,
3509 typename ENTRIES_03,
3510 typename ENTRIES_04,
3511 typename ENTRIES_05,
3512 typename ENTRIES_06,
3513 typename ENTRIES_07,
3514 typename ENTRIES_08,
3515 typename ENTRIES_09,
3516 typename ENTRIES_10,
3517 typename ENTRIES_11,
3518 typename ENTRIES_12,
3519 typename ENTRIES_13,
3520 typename ENTRIES_14,
3521 typename ENTRIES_15,
3522 typename ENTRIES_16,
3523 typename ENTRIES_17,
3524 typename ENTRIES_18>
3525 bdld::Datum mok(const ENTRIES_01& entries_01,
3526 const ENTRIES_02& entries_02,
3527 const ENTRIES_03& entries_03,
3528 const ENTRIES_04& entries_04,
3529 const ENTRIES_05& entries_05,
3530 const ENTRIES_06& entries_06,
3531 const ENTRIES_07& entries_07,
3532 const ENTRIES_08& entries_08,
3533 const ENTRIES_09& entries_09,
3534 const ENTRIES_10& entries_10,
3535 const ENTRIES_11& entries_11,
3536 const ENTRIES_12& entries_12,
3537 const ENTRIES_13& entries_13,
3538 const ENTRIES_14& entries_14,
3539 const ENTRIES_15& entries_15,
3540 const ENTRIES_16& entries_16,
3541 const ENTRIES_17& entries_17,
3542 const ENTRIES_18& entries_18
3543 ) const;
3544
3545 template <typename ENTRIES_01,
3546 typename ENTRIES_02,
3547 typename ENTRIES_03,
3548 typename ENTRIES_04,
3549 typename ENTRIES_05,
3550 typename ENTRIES_06,
3551 typename ENTRIES_07,
3552 typename ENTRIES_08,
3553 typename ENTRIES_09,
3554 typename ENTRIES_10,
3555 typename ENTRIES_11,
3556 typename ENTRIES_12,
3557 typename ENTRIES_13,
3558 typename ENTRIES_14,
3559 typename ENTRIES_15,
3560 typename ENTRIES_16,
3561 typename ENTRIES_17,
3562 typename ENTRIES_18,
3563 typename ENTRIES_19,
3564 typename ENTRIES_20>
3565 bdld::Datum mok(const ENTRIES_01& entries_01,
3566 const ENTRIES_02& entries_02,
3567 const ENTRIES_03& entries_03,
3568 const ENTRIES_04& entries_04,
3569 const ENTRIES_05& entries_05,
3570 const ENTRIES_06& entries_06,
3571 const ENTRIES_07& entries_07,
3572 const ENTRIES_08& entries_08,
3573 const ENTRIES_09& entries_09,
3574 const ENTRIES_10& entries_10,
3575 const ENTRIES_11& entries_11,
3576 const ENTRIES_12& entries_12,
3577 const ENTRIES_13& entries_13,
3578 const ENTRIES_14& entries_14,
3579 const ENTRIES_15& entries_15,
3580 const ENTRIES_16& entries_16,
3581 const ENTRIES_17& entries_17,
3582 const ENTRIES_18& entries_18,
3583 const ENTRIES_19& entries_19,
3584 const ENTRIES_20& entries_20
3585 ) const;
3586
3587 template <typename ENTRIES_01,
3588 typename ENTRIES_02,
3589 typename ENTRIES_03,
3590 typename ENTRIES_04,
3591 typename ENTRIES_05,
3592 typename ENTRIES_06,
3593 typename ENTRIES_07,
3594 typename ENTRIES_08,
3595 typename ENTRIES_09,
3596 typename ENTRIES_10,
3597 typename ENTRIES_11,
3598 typename ENTRIES_12,
3599 typename ENTRIES_13,
3600 typename ENTRIES_14,
3601 typename ENTRIES_15,
3602 typename ENTRIES_16,
3603 typename ENTRIES_17,
3604 typename ENTRIES_18,
3605 typename ENTRIES_19,
3606 typename ENTRIES_20,
3607 typename ENTRIES_21,
3608 typename ENTRIES_22>
3609 bdld::Datum mok(const ENTRIES_01& entries_01,
3610 const ENTRIES_02& entries_02,
3611 const ENTRIES_03& entries_03,
3612 const ENTRIES_04& entries_04,
3613 const ENTRIES_05& entries_05,
3614 const ENTRIES_06& entries_06,
3615 const ENTRIES_07& entries_07,
3616 const ENTRIES_08& entries_08,
3617 const ENTRIES_09& entries_09,
3618 const ENTRIES_10& entries_10,
3619 const ENTRIES_11& entries_11,
3620 const ENTRIES_12& entries_12,
3621 const ENTRIES_13& entries_13,
3622 const ENTRIES_14& entries_14,
3623 const ENTRIES_15& entries_15,
3624 const ENTRIES_16& entries_16,
3625 const ENTRIES_17& entries_17,
3626 const ENTRIES_18& entries_18,
3627 const ENTRIES_19& entries_19,
3628 const ENTRIES_20& entries_20,
3629 const ENTRIES_21& entries_21,
3630 const ENTRIES_22& entries_22
3631 ) const;
3632
3633 template <typename ENTRIES_01,
3634 typename ENTRIES_02,
3635 typename ENTRIES_03,
3636 typename ENTRIES_04,
3637 typename ENTRIES_05,
3638 typename ENTRIES_06,
3639 typename ENTRIES_07,
3640 typename ENTRIES_08,
3641 typename ENTRIES_09,
3642 typename ENTRIES_10,
3643 typename ENTRIES_11,
3644 typename ENTRIES_12,
3645 typename ENTRIES_13,
3646 typename ENTRIES_14,
3647 typename ENTRIES_15,
3648 typename ENTRIES_16,
3649 typename ENTRIES_17,
3650 typename ENTRIES_18,
3651 typename ENTRIES_19,
3652 typename ENTRIES_20,
3653 typename ENTRIES_21,
3654 typename ENTRIES_22,
3655 typename ENTRIES_23,
3656 typename ENTRIES_24>
3657 bdld::Datum mok(const ENTRIES_01& entries_01,
3658 const ENTRIES_02& entries_02,
3659 const ENTRIES_03& entries_03,
3660 const ENTRIES_04& entries_04,
3661 const ENTRIES_05& entries_05,
3662 const ENTRIES_06& entries_06,
3663 const ENTRIES_07& entries_07,
3664 const ENTRIES_08& entries_08,
3665 const ENTRIES_09& entries_09,
3666 const ENTRIES_10& entries_10,
3667 const ENTRIES_11& entries_11,
3668 const ENTRIES_12& entries_12,
3669 const ENTRIES_13& entries_13,
3670 const ENTRIES_14& entries_14,
3671 const ENTRIES_15& entries_15,
3672 const ENTRIES_16& entries_16,
3673 const ENTRIES_17& entries_17,
3674 const ENTRIES_18& entries_18,
3675 const ENTRIES_19& entries_19,
3676 const ENTRIES_20& entries_20,
3677 const ENTRIES_21& entries_21,
3678 const ENTRIES_22& entries_22,
3679 const ENTRIES_23& entries_23,
3680 const ENTRIES_24& entries_24
3681 ) const;
3682
3683 template <typename ENTRIES_01,
3684 typename ENTRIES_02,
3685 typename ENTRIES_03,
3686 typename ENTRIES_04,
3687 typename ENTRIES_05,
3688 typename ENTRIES_06,
3689 typename ENTRIES_07,
3690 typename ENTRIES_08,
3691 typename ENTRIES_09,
3692 typename ENTRIES_10,
3693 typename ENTRIES_11,
3694 typename ENTRIES_12,
3695 typename ENTRIES_13,
3696 typename ENTRIES_14,
3697 typename ENTRIES_15,
3698 typename ENTRIES_16,
3699 typename ENTRIES_17,
3700 typename ENTRIES_18,
3701 typename ENTRIES_19,
3702 typename ENTRIES_20,
3703 typename ENTRIES_21,
3704 typename ENTRIES_22,
3705 typename ENTRIES_23,
3706 typename ENTRIES_24,
3707 typename ENTRIES_25,
3708 typename ENTRIES_26>
3709 bdld::Datum mok(const ENTRIES_01& entries_01,
3710 const ENTRIES_02& entries_02,
3711 const ENTRIES_03& entries_03,
3712 const ENTRIES_04& entries_04,
3713 const ENTRIES_05& entries_05,
3714 const ENTRIES_06& entries_06,
3715 const ENTRIES_07& entries_07,
3716 const ENTRIES_08& entries_08,
3717 const ENTRIES_09& entries_09,
3718 const ENTRIES_10& entries_10,
3719 const ENTRIES_11& entries_11,
3720 const ENTRIES_12& entries_12,
3721 const ENTRIES_13& entries_13,
3722 const ENTRIES_14& entries_14,
3723 const ENTRIES_15& entries_15,
3724 const ENTRIES_16& entries_16,
3725 const ENTRIES_17& entries_17,
3726 const ENTRIES_18& entries_18,
3727 const ENTRIES_19& entries_19,
3728 const ENTRIES_20& entries_20,
3729 const ENTRIES_21& entries_21,
3730 const ENTRIES_22& entries_22,
3731 const ENTRIES_23& entries_23,
3732 const ENTRIES_24& entries_24,
3733 const ENTRIES_25& entries_25,
3734 const ENTRIES_26& entries_26
3735 ) const;
3736
3737 template <typename ENTRIES_01,
3738 typename ENTRIES_02,
3739 typename ENTRIES_03,
3740 typename ENTRIES_04,
3741 typename ENTRIES_05,
3742 typename ENTRIES_06,
3743 typename ENTRIES_07,
3744 typename ENTRIES_08,
3745 typename ENTRIES_09,
3746 typename ENTRIES_10,
3747 typename ENTRIES_11,
3748 typename ENTRIES_12,
3749 typename ENTRIES_13,
3750 typename ENTRIES_14,
3751 typename ENTRIES_15,
3752 typename ENTRIES_16,
3753 typename ENTRIES_17,
3754 typename ENTRIES_18,
3755 typename ENTRIES_19,
3756 typename ENTRIES_20,
3757 typename ENTRIES_21,
3758 typename ENTRIES_22,
3759 typename ENTRIES_23,
3760 typename ENTRIES_24,
3761 typename ENTRIES_25,
3762 typename ENTRIES_26,
3763 typename ENTRIES_27,
3764 typename ENTRIES_28>
3765 bdld::Datum mok(const ENTRIES_01& entries_01,
3766 const ENTRIES_02& entries_02,
3767 const ENTRIES_03& entries_03,
3768 const ENTRIES_04& entries_04,
3769 const ENTRIES_05& entries_05,
3770 const ENTRIES_06& entries_06,
3771 const ENTRIES_07& entries_07,
3772 const ENTRIES_08& entries_08,
3773 const ENTRIES_09& entries_09,
3774 const ENTRIES_10& entries_10,
3775 const ENTRIES_11& entries_11,
3776 const ENTRIES_12& entries_12,
3777 const ENTRIES_13& entries_13,
3778 const ENTRIES_14& entries_14,
3779 const ENTRIES_15& entries_15,
3780 const ENTRIES_16& entries_16,
3781 const ENTRIES_17& entries_17,
3782 const ENTRIES_18& entries_18,
3783 const ENTRIES_19& entries_19,
3784 const ENTRIES_20& entries_20,
3785 const ENTRIES_21& entries_21,
3786 const ENTRIES_22& entries_22,
3787 const ENTRIES_23& entries_23,
3788 const ENTRIES_24& entries_24,
3789 const ENTRIES_25& entries_25,
3790 const ENTRIES_26& entries_26,
3791 const ENTRIES_27& entries_27,
3792 const ENTRIES_28& entries_28
3793 ) const;
3794
3795 template <typename ENTRIES_01,
3796 typename ENTRIES_02,
3797 typename ENTRIES_03,
3798 typename ENTRIES_04,
3799 typename ENTRIES_05,
3800 typename ENTRIES_06,
3801 typename ENTRIES_07,
3802 typename ENTRIES_08,
3803 typename ENTRIES_09,
3804 typename ENTRIES_10,
3805 typename ENTRIES_11,
3806 typename ENTRIES_12,
3807 typename ENTRIES_13,
3808 typename ENTRIES_14,
3809 typename ENTRIES_15,
3810 typename ENTRIES_16,
3811 typename ENTRIES_17,
3812 typename ENTRIES_18,
3813 typename ENTRIES_19,
3814 typename ENTRIES_20,
3815 typename ENTRIES_21,
3816 typename ENTRIES_22,
3817 typename ENTRIES_23,
3818 typename ENTRIES_24,
3819 typename ENTRIES_25,
3820 typename ENTRIES_26,
3821 typename ENTRIES_27,
3822 typename ENTRIES_28,
3823 typename ENTRIES_29,
3824 typename ENTRIES_30>
3825 bdld::Datum mok(const ENTRIES_01& entries_01,
3826 const ENTRIES_02& entries_02,
3827 const ENTRIES_03& entries_03,
3828 const ENTRIES_04& entries_04,
3829 const ENTRIES_05& entries_05,
3830 const ENTRIES_06& entries_06,
3831 const ENTRIES_07& entries_07,
3832 const ENTRIES_08& entries_08,
3833 const ENTRIES_09& entries_09,
3834 const ENTRIES_10& entries_10,
3835 const ENTRIES_11& entries_11,
3836 const ENTRIES_12& entries_12,
3837 const ENTRIES_13& entries_13,
3838 const ENTRIES_14& entries_14,
3839 const ENTRIES_15& entries_15,
3840 const ENTRIES_16& entries_16,
3841 const ENTRIES_17& entries_17,
3842 const ENTRIES_18& entries_18,
3843 const ENTRIES_19& entries_19,
3844 const ENTRIES_20& entries_20,
3845 const ENTRIES_21& entries_21,
3846 const ENTRIES_22& entries_22,
3847 const ENTRIES_23& entries_23,
3848 const ENTRIES_24& entries_24,
3849 const ENTRIES_25& entries_25,
3850 const ENTRIES_26& entries_26,
3851 const ENTRIES_27& entries_27,
3852 const ENTRIES_28& entries_28,
3853 const ENTRIES_29& entries_29,
3854 const ENTRIES_30& entries_30
3855 ) const;
3856
3857 template <typename ENTRIES_01,
3858 typename ENTRIES_02,
3859 typename ENTRIES_03,
3860 typename ENTRIES_04,
3861 typename ENTRIES_05,
3862 typename ENTRIES_06,
3863 typename ENTRIES_07,
3864 typename ENTRIES_08,
3865 typename ENTRIES_09,
3866 typename ENTRIES_10,
3867 typename ENTRIES_11,
3868 typename ENTRIES_12,
3869 typename ENTRIES_13,
3870 typename ENTRIES_14,
3871 typename ENTRIES_15,
3872 typename ENTRIES_16,
3873 typename ENTRIES_17,
3874 typename ENTRIES_18,
3875 typename ENTRIES_19,
3876 typename ENTRIES_20,
3877 typename ENTRIES_21,
3878 typename ENTRIES_22,
3879 typename ENTRIES_23,
3880 typename ENTRIES_24,
3881 typename ENTRIES_25,
3882 typename ENTRIES_26,
3883 typename ENTRIES_27,
3884 typename ENTRIES_28,
3885 typename ENTRIES_29,
3886 typename ENTRIES_30,
3887 typename ENTRIES_31,
3888 typename ENTRIES_32>
3889 bdld::Datum mok(const ENTRIES_01& entries_01,
3890 const ENTRIES_02& entries_02,
3891 const ENTRIES_03& entries_03,
3892 const ENTRIES_04& entries_04,
3893 const ENTRIES_05& entries_05,
3894 const ENTRIES_06& entries_06,
3895 const ENTRIES_07& entries_07,
3896 const ENTRIES_08& entries_08,
3897 const ENTRIES_09& entries_09,
3898 const ENTRIES_10& entries_10,
3899 const ENTRIES_11& entries_11,
3900 const ENTRIES_12& entries_12,
3901 const ENTRIES_13& entries_13,
3902 const ENTRIES_14& entries_14,
3903 const ENTRIES_15& entries_15,
3904 const ENTRIES_16& entries_16,
3905 const ENTRIES_17& entries_17,
3906 const ENTRIES_18& entries_18,
3907 const ENTRIES_19& entries_19,
3908 const ENTRIES_20& entries_20,
3909 const ENTRIES_21& entries_21,
3910 const ENTRIES_22& entries_22,
3911 const ENTRIES_23& entries_23,
3912 const ENTRIES_24& entries_24,
3913 const ENTRIES_25& entries_25,
3914 const ENTRIES_26& entries_26,
3915 const ENTRIES_27& entries_27,
3916 const ENTRIES_28& entries_28,
3917 const ENTRIES_29& entries_29,
3918 const ENTRIES_30& entries_30,
3919 const ENTRIES_31& entries_31,
3920 const ENTRIES_32& entries_32
3921 ) const;
3922
3923#endif
3924
3925
3926#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
3927 /// Return a `bdld::Datum` object containing an integer-map of the
3928 /// specified `entries`. The `entries` are supplied in pairs
3929 /// (supplying an odd number will result in a compilation failure) where
3930 /// the first supplied argument is an integer key, and the second is its
3931 /// corresponding value. The behavior is undefined if the same key is
3932 /// supplied more than once.
3933 template <typename... ENTRIES>
3934 bdld::Datum im(const ENTRIES&... entries) const;
3935#else
3936 bdld::Datum im() const;
3937
3938 template <typename ENTRIES_01>
3939 bdld::Datum im(int key_01,
3940 const ENTRIES_01& entries_01
3941 ) const;
3942
3943 template <typename ENTRIES_01,
3944 typename ENTRIES_02>
3945 bdld::Datum im(int key_01,
3946 const ENTRIES_01& entries_01,
3947 int key_02,
3948 const ENTRIES_02& entries_02
3949 ) const;
3950
3951 template <typename ENTRIES_01,
3952 typename ENTRIES_02,
3953 typename ENTRIES_03>
3954 bdld::Datum im(int key_01,
3955 const ENTRIES_01& entries_01,
3956 int key_02,
3957 const ENTRIES_02& entries_02,
3958 int key_03,
3959 const ENTRIES_03& entries_03
3960 ) const;
3961
3962 template <typename ENTRIES_01,
3963 typename ENTRIES_02,
3964 typename ENTRIES_03,
3965 typename ENTRIES_04>
3966 bdld::Datum im(int key_01,
3967 const ENTRIES_01& entries_01,
3968 int key_02,
3969 const ENTRIES_02& entries_02,
3970 int key_03,
3971 const ENTRIES_03& entries_03,
3972 int key_04,
3973 const ENTRIES_04& entries_04
3974 ) const;
3975
3976 template <typename ENTRIES_01,
3977 typename ENTRIES_02,
3978 typename ENTRIES_03,
3979 typename ENTRIES_04,
3980 typename ENTRIES_05>
3981 bdld::Datum im(int key_01,
3982 const ENTRIES_01& entries_01,
3983 int key_02,
3984 const ENTRIES_02& entries_02,
3985 int key_03,
3986 const ENTRIES_03& entries_03,
3987 int key_04,
3988 const ENTRIES_04& entries_04,
3989 int key_05,
3990 const ENTRIES_05& entries_05
3991 ) const;
3992
3993 template <typename ENTRIES_01,
3994 typename ENTRIES_02,
3995 typename ENTRIES_03,
3996 typename ENTRIES_04,
3997 typename ENTRIES_05,
3998 typename ENTRIES_06>
3999 bdld::Datum im(int key_01,
4000 const ENTRIES_01& entries_01,
4001 int key_02,
4002 const ENTRIES_02& entries_02,
4003 int key_03,
4004 const ENTRIES_03& entries_03,
4005 int key_04,
4006 const ENTRIES_04& entries_04,
4007 int key_05,
4008 const ENTRIES_05& entries_05,
4009 int key_06,
4010 const ENTRIES_06& entries_06
4011 ) const;
4012
4013 template <typename ENTRIES_01,
4014 typename ENTRIES_02,
4015 typename ENTRIES_03,
4016 typename ENTRIES_04,
4017 typename ENTRIES_05,
4018 typename ENTRIES_06,
4019 typename ENTRIES_07>
4020 bdld::Datum im(int key_01,
4021 const ENTRIES_01& entries_01,
4022 int key_02,
4023 const ENTRIES_02& entries_02,
4024 int key_03,
4025 const ENTRIES_03& entries_03,
4026 int key_04,
4027 const ENTRIES_04& entries_04,
4028 int key_05,
4029 const ENTRIES_05& entries_05,
4030 int key_06,
4031 const ENTRIES_06& entries_06,
4032 int key_07,
4033 const ENTRIES_07& entries_07
4034 ) const;
4035
4036 template <typename ENTRIES_01,
4037 typename ENTRIES_02,
4038 typename ENTRIES_03,
4039 typename ENTRIES_04,
4040 typename ENTRIES_05,
4041 typename ENTRIES_06,
4042 typename ENTRIES_07,
4043 typename ENTRIES_08>
4044 bdld::Datum im(int key_01,
4045 const ENTRIES_01& entries_01,
4046 int key_02,
4047 const ENTRIES_02& entries_02,
4048 int key_03,
4049 const ENTRIES_03& entries_03,
4050 int key_04,
4051 const ENTRIES_04& entries_04,
4052 int key_05,
4053 const ENTRIES_05& entries_05,
4054 int key_06,
4055 const ENTRIES_06& entries_06,
4056 int key_07,
4057 const ENTRIES_07& entries_07,
4058 int key_08,
4059 const ENTRIES_08& entries_08
4060 ) const;
4061
4062 template <typename ENTRIES_01,
4063 typename ENTRIES_02,
4064 typename ENTRIES_03,
4065 typename ENTRIES_04,
4066 typename ENTRIES_05,
4067 typename ENTRIES_06,
4068 typename ENTRIES_07,
4069 typename ENTRIES_08,
4070 typename ENTRIES_09>
4071 bdld::Datum im(int key_01,
4072 const ENTRIES_01& entries_01,
4073 int key_02,
4074 const ENTRIES_02& entries_02,
4075 int key_03,
4076 const ENTRIES_03& entries_03,
4077 int key_04,
4078 const ENTRIES_04& entries_04,
4079 int key_05,
4080 const ENTRIES_05& entries_05,
4081 int key_06,
4082 const ENTRIES_06& entries_06,
4083 int key_07,
4084 const ENTRIES_07& entries_07,
4085 int key_08,
4086 const ENTRIES_08& entries_08,
4087 int key_09,
4088 const ENTRIES_09& entries_09
4089 ) const;
4090
4091 template <typename ENTRIES_01,
4092 typename ENTRIES_02,
4093 typename ENTRIES_03,
4094 typename ENTRIES_04,
4095 typename ENTRIES_05,
4096 typename ENTRIES_06,
4097 typename ENTRIES_07,
4098 typename ENTRIES_08,
4099 typename ENTRIES_09,
4100 typename ENTRIES_10>
4101 bdld::Datum im(int key_01,
4102 const ENTRIES_01& entries_01,
4103 int key_02,
4104 const ENTRIES_02& entries_02,
4105 int key_03,
4106 const ENTRIES_03& entries_03,
4107 int key_04,
4108 const ENTRIES_04& entries_04,
4109 int key_05,
4110 const ENTRIES_05& entries_05,
4111 int key_06,
4112 const ENTRIES_06& entries_06,
4113 int key_07,
4114 const ENTRIES_07& entries_07,
4115 int key_08,
4116 const ENTRIES_08& entries_08,
4117 int key_09,
4118 const ENTRIES_09& entries_09,
4119 int key_10,
4120 const ENTRIES_10& entries_10
4121 ) const;
4122
4123 template <typename ENTRIES_01,
4124 typename ENTRIES_02,
4125 typename ENTRIES_03,
4126 typename ENTRIES_04,
4127 typename ENTRIES_05,
4128 typename ENTRIES_06,
4129 typename ENTRIES_07,
4130 typename ENTRIES_08,
4131 typename ENTRIES_09,
4132 typename ENTRIES_10,
4133 typename ENTRIES_11>
4134 bdld::Datum im(int key_01,
4135 const ENTRIES_01& entries_01,
4136 int key_02,
4137 const ENTRIES_02& entries_02,
4138 int key_03,
4139 const ENTRIES_03& entries_03,
4140 int key_04,
4141 const ENTRIES_04& entries_04,
4142 int key_05,
4143 const ENTRIES_05& entries_05,
4144 int key_06,
4145 const ENTRIES_06& entries_06,
4146 int key_07,
4147 const ENTRIES_07& entries_07,
4148 int key_08,
4149 const ENTRIES_08& entries_08,
4150 int key_09,
4151 const ENTRIES_09& entries_09,
4152 int key_10,
4153 const ENTRIES_10& entries_10,
4154 int key_11,
4155 const ENTRIES_11& entries_11
4156 ) const;
4157
4158 template <typename ENTRIES_01,
4159 typename ENTRIES_02,
4160 typename ENTRIES_03,
4161 typename ENTRIES_04,
4162 typename ENTRIES_05,
4163 typename ENTRIES_06,
4164 typename ENTRIES_07,
4165 typename ENTRIES_08,
4166 typename ENTRIES_09,
4167 typename ENTRIES_10,
4168 typename ENTRIES_11,
4169 typename ENTRIES_12>
4170 bdld::Datum im(int key_01,
4171 const ENTRIES_01& entries_01,
4172 int key_02,
4173 const ENTRIES_02& entries_02,
4174 int key_03,
4175 const ENTRIES_03& entries_03,
4176 int key_04,
4177 const ENTRIES_04& entries_04,
4178 int key_05,
4179 const ENTRIES_05& entries_05,
4180 int key_06,
4181 const ENTRIES_06& entries_06,
4182 int key_07,
4183 const ENTRIES_07& entries_07,
4184 int key_08,
4185 const ENTRIES_08& entries_08,
4186 int key_09,
4187 const ENTRIES_09& entries_09,
4188 int key_10,
4189 const ENTRIES_10& entries_10,
4190 int key_11,
4191 const ENTRIES_11& entries_11,
4192 int key_12,
4193 const ENTRIES_12& entries_12
4194 ) const;
4195
4196 template <typename ENTRIES_01,
4197 typename ENTRIES_02,
4198 typename ENTRIES_03,
4199 typename ENTRIES_04,
4200 typename ENTRIES_05,
4201 typename ENTRIES_06,
4202 typename ENTRIES_07,
4203 typename ENTRIES_08,
4204 typename ENTRIES_09,
4205 typename ENTRIES_10,
4206 typename ENTRIES_11,
4207 typename ENTRIES_12,
4208 typename ENTRIES_13>
4209 bdld::Datum im(int key_01,
4210 const ENTRIES_01& entries_01,
4211 int key_02,
4212 const ENTRIES_02& entries_02,
4213 int key_03,
4214 const ENTRIES_03& entries_03,
4215 int key_04,
4216 const ENTRIES_04& entries_04,
4217 int key_05,
4218 const ENTRIES_05& entries_05,
4219 int key_06,
4220 const ENTRIES_06& entries_06,
4221 int key_07,
4222 const ENTRIES_07& entries_07,
4223 int key_08,
4224 const ENTRIES_08& entries_08,
4225 int key_09,
4226 const ENTRIES_09& entries_09,
4227 int key_10,
4228 const ENTRIES_10& entries_10,
4229 int key_11,
4230 const ENTRIES_11& entries_11,
4231 int key_12,
4232 const ENTRIES_12& entries_12,
4233 int key_13,
4234 const ENTRIES_13& entries_13
4235 ) const;
4236
4237 template <typename ENTRIES_01,
4238 typename ENTRIES_02,
4239 typename ENTRIES_03,
4240 typename ENTRIES_04,
4241 typename ENTRIES_05,
4242 typename ENTRIES_06,
4243 typename ENTRIES_07,
4244 typename ENTRIES_08,
4245 typename ENTRIES_09,
4246 typename ENTRIES_10,
4247 typename ENTRIES_11,
4248 typename ENTRIES_12,
4249 typename ENTRIES_13,
4250 typename ENTRIES_14>
4251 bdld::Datum im(int key_01,
4252 const ENTRIES_01& entries_01,
4253 int key_02,
4254 const ENTRIES_02& entries_02,
4255 int key_03,
4256 const ENTRIES_03& entries_03,
4257 int key_04,
4258 const ENTRIES_04& entries_04,
4259 int key_05,
4260 const ENTRIES_05& entries_05,
4261 int key_06,
4262 const ENTRIES_06& entries_06,
4263 int key_07,
4264 const ENTRIES_07& entries_07,
4265 int key_08,
4266 const ENTRIES_08& entries_08,
4267 int key_09,
4268 const ENTRIES_09& entries_09,
4269 int key_10,
4270 const ENTRIES_10& entries_10,
4271 int key_11,
4272 const ENTRIES_11& entries_11,
4273 int key_12,
4274 const ENTRIES_12& entries_12,
4275 int key_13,
4276 const ENTRIES_13& entries_13,
4277 int key_14,
4278 const ENTRIES_14& entries_14
4279 ) const;
4280
4281 template <typename ENTRIES_01,
4282 typename ENTRIES_02,
4283 typename ENTRIES_03,
4284 typename ENTRIES_04,
4285 typename ENTRIES_05,
4286 typename ENTRIES_06,
4287 typename ENTRIES_07,
4288 typename ENTRIES_08,
4289 typename ENTRIES_09,
4290 typename ENTRIES_10,
4291 typename ENTRIES_11,
4292 typename ENTRIES_12,
4293 typename ENTRIES_13,
4294 typename ENTRIES_14,
4295 typename ENTRIES_15>
4296 bdld::Datum im(int key_01,
4297 const ENTRIES_01& entries_01,
4298 int key_02,
4299 const ENTRIES_02& entries_02,
4300 int key_03,
4301 const ENTRIES_03& entries_03,
4302 int key_04,
4303 const ENTRIES_04& entries_04,
4304 int key_05,
4305 const ENTRIES_05& entries_05,
4306 int key_06,
4307 const ENTRIES_06& entries_06,
4308 int key_07,
4309 const ENTRIES_07& entries_07,
4310 int key_08,
4311 const ENTRIES_08& entries_08,
4312 int key_09,
4313 const ENTRIES_09& entries_09,
4314 int key_10,
4315 const ENTRIES_10& entries_10,
4316 int key_11,
4317 const ENTRIES_11& entries_11,
4318 int key_12,
4319 const ENTRIES_12& entries_12,
4320 int key_13,
4321 const ENTRIES_13& entries_13,
4322 int key_14,
4323 const ENTRIES_14& entries_14,
4324 int key_15,
4325 const ENTRIES_15& entries_15
4326 ) const;
4327
4328 template <typename ENTRIES_01,
4329 typename ENTRIES_02,
4330 typename ENTRIES_03,
4331 typename ENTRIES_04,
4332 typename ENTRIES_05,
4333 typename ENTRIES_06,
4334 typename ENTRIES_07,
4335 typename ENTRIES_08,
4336 typename ENTRIES_09,
4337 typename ENTRIES_10,
4338 typename ENTRIES_11,
4339 typename ENTRIES_12,
4340 typename ENTRIES_13,
4341 typename ENTRIES_14,
4342 typename ENTRIES_15,
4343 typename ENTRIES_16>
4344 bdld::Datum im(int key_01,
4345 const ENTRIES_01& entries_01,
4346 int key_02,
4347 const ENTRIES_02& entries_02,
4348 int key_03,
4349 const ENTRIES_03& entries_03,
4350 int key_04,
4351 const ENTRIES_04& entries_04,
4352 int key_05,
4353 const ENTRIES_05& entries_05,
4354 int key_06,
4355 const ENTRIES_06& entries_06,
4356 int key_07,
4357 const ENTRIES_07& entries_07,
4358 int key_08,
4359 const ENTRIES_08& entries_08,
4360 int key_09,
4361 const ENTRIES_09& entries_09,
4362 int key_10,
4363 const ENTRIES_10& entries_10,
4364 int key_11,
4365 const ENTRIES_11& entries_11,
4366 int key_12,
4367 const ENTRIES_12& entries_12,
4368 int key_13,
4369 const ENTRIES_13& entries_13,
4370 int key_14,
4371 const ENTRIES_14& entries_14,
4372 int key_15,
4373 const ENTRIES_15& entries_15,
4374 int key_16,
4375 const ENTRIES_16& entries_16
4376 ) const;
4377
4378#endif
4379
4380 /// Return a `bdld::Datum` object that references, but does not own the
4381 /// specified `string`, possibly using the allocator of this object to
4382 /// obtain memory. Note that this can be used to refer to string
4383 /// literals. See `bdld::Datum::createStringRef()`.
4384 bdld::Datum ref(const bslstl::StringRef& string) const;
4385};
4386
4387// ============================================================================
4388// INLINE DEFINITIONS
4389// ============================================================================
4390
4391 // ----------------
4392 // class DatumMaker
4393 // ----------------
4394
4395// PRIVATE ACCESSORS
4396inline
4397void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *) const
4398{
4399}
4400
4401inline
4402void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *) const
4403{
4404}
4405
4406inline
4407void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *) const
4408{
4409}
4410
4411inline
4412void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *) const
4413{
4414}
4415
4416#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
4417template <typename TYPE>
4418inline
4419void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4420 const TYPE& element) const
4421{
4422 builder->pushBack((*this)(element));
4423}
4424
4425template <typename TYPE, typename... ELEMENTS>
4426inline
4427void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4428 const TYPE& element,
4429 const ELEMENTS&... elements) const
4430{
4431 builder->pushBack((*this)(element));
4432 pushBackHelper(builder, elements...);
4433}
4434
4435template <typename TYPE>
4436inline
4437void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
4438 const bslstl::StringRef& key,
4439 const TYPE& value) const
4440{
4441 builder->pushBack(key, (*this)(value));
4442}
4443
4444template <typename TYPE, typename... ENTRIES>
4445inline
4446void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
4447 const bslstl::StringRef& key,
4448 const TYPE& value,
4449 const ENTRIES&... entries) const
4450{
4451 builder->pushBack(key, (*this)(value));
4452 pushBackHelper(builder, entries...);
4453}
4454
4455template <typename TYPE>
4456inline
4457void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
4458 const bslstl::StringRef& key,
4459 const TYPE& value) const
4460{
4461 builder->pushBack(key, (*this)(value));
4462}
4463
4464template <typename TYPE, typename... ENTRIES>
4465inline
4466void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
4467 const bslstl::StringRef& key,
4468 const TYPE& value,
4469 const ENTRIES&... entries) const
4470{
4471 builder->pushBack(key, (*this)(value));
4472 pushBackHelper(builder, entries...);
4473}
4474
4475template <typename TYPE>
4476inline
4477void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
4478 int key,
4479 const TYPE& value) const
4480{
4481 builder->pushBack(key, (*this)(value));
4482}
4483
4484template <typename TYPE, typename... ENTRIES>
4485inline
4486void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
4487 int key,
4488 const TYPE& value,
4489 const ENTRIES&... entries) const
4490{
4491 builder->pushBack(key, (*this)(value));
4492 pushBackHelper(builder, entries...);
4493}
4494#else
4495template <typename TYPE>
4496inline
4497void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4498 const TYPE& element
4499 ) const
4500{
4501 builder->pushBack((*this)(element));
4502 pushBackHelper(builder);
4503}
4504
4505template <typename TYPE, typename ELEMENTS_01>
4506inline
4507void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4508 const TYPE& element,
4509 const ELEMENTS_01& elements_01
4510 ) const
4511{
4512 builder->pushBack((*this)(element));
4513 pushBackHelper(builder, elements_01);
4514}
4515
4516template <typename TYPE, typename ELEMENTS_01,
4517 typename ELEMENTS_02>
4518inline
4519void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4520 const TYPE& element,
4521 const ELEMENTS_01& elements_01,
4522 const ELEMENTS_02& elements_02
4523 ) const
4524{
4525 builder->pushBack((*this)(element));
4526 pushBackHelper(builder, elements_01,
4527 elements_02);
4528}
4529
4530template <typename TYPE, typename ELEMENTS_01,
4531 typename ELEMENTS_02,
4532 typename ELEMENTS_03>
4533inline
4534void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4535 const TYPE& element,
4536 const ELEMENTS_01& elements_01,
4537 const ELEMENTS_02& elements_02,
4538 const ELEMENTS_03& elements_03
4539 ) const
4540{
4541 builder->pushBack((*this)(element));
4542 pushBackHelper(builder, elements_01,
4543 elements_02,
4544 elements_03);
4545}
4546
4547template <typename TYPE, typename ELEMENTS_01,
4548 typename ELEMENTS_02,
4549 typename ELEMENTS_03,
4550 typename ELEMENTS_04>
4551inline
4552void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4553 const TYPE& element,
4554 const ELEMENTS_01& elements_01,
4555 const ELEMENTS_02& elements_02,
4556 const ELEMENTS_03& elements_03,
4557 const ELEMENTS_04& elements_04
4558 ) const
4559{
4560 builder->pushBack((*this)(element));
4561 pushBackHelper(builder, elements_01,
4562 elements_02,
4563 elements_03,
4564 elements_04);
4565}
4566
4567template <typename TYPE, typename ELEMENTS_01,
4568 typename ELEMENTS_02,
4569 typename ELEMENTS_03,
4570 typename ELEMENTS_04,
4571 typename ELEMENTS_05>
4572inline
4573void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4574 const TYPE& element,
4575 const ELEMENTS_01& elements_01,
4576 const ELEMENTS_02& elements_02,
4577 const ELEMENTS_03& elements_03,
4578 const ELEMENTS_04& elements_04,
4579 const ELEMENTS_05& elements_05
4580 ) const
4581{
4582 builder->pushBack((*this)(element));
4583 pushBackHelper(builder, elements_01,
4584 elements_02,
4585 elements_03,
4586 elements_04,
4587 elements_05);
4588}
4589
4590template <typename TYPE, typename ELEMENTS_01,
4591 typename ELEMENTS_02,
4592 typename ELEMENTS_03,
4593 typename ELEMENTS_04,
4594 typename ELEMENTS_05,
4595 typename ELEMENTS_06>
4596inline
4597void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4598 const TYPE& element,
4599 const ELEMENTS_01& elements_01,
4600 const ELEMENTS_02& elements_02,
4601 const ELEMENTS_03& elements_03,
4602 const ELEMENTS_04& elements_04,
4603 const ELEMENTS_05& elements_05,
4604 const ELEMENTS_06& elements_06
4605 ) const
4606{
4607 builder->pushBack((*this)(element));
4608 pushBackHelper(builder, elements_01,
4609 elements_02,
4610 elements_03,
4611 elements_04,
4612 elements_05,
4613 elements_06);
4614}
4615
4616template <typename TYPE, typename ELEMENTS_01,
4617 typename ELEMENTS_02,
4618 typename ELEMENTS_03,
4619 typename ELEMENTS_04,
4620 typename ELEMENTS_05,
4621 typename ELEMENTS_06,
4622 typename ELEMENTS_07>
4623inline
4624void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4625 const TYPE& element,
4626 const ELEMENTS_01& elements_01,
4627 const ELEMENTS_02& elements_02,
4628 const ELEMENTS_03& elements_03,
4629 const ELEMENTS_04& elements_04,
4630 const ELEMENTS_05& elements_05,
4631 const ELEMENTS_06& elements_06,
4632 const ELEMENTS_07& elements_07
4633 ) const
4634{
4635 builder->pushBack((*this)(element));
4636 pushBackHelper(builder, elements_01,
4637 elements_02,
4638 elements_03,
4639 elements_04,
4640 elements_05,
4641 elements_06,
4642 elements_07);
4643}
4644
4645template <typename TYPE, typename ELEMENTS_01,
4646 typename ELEMENTS_02,
4647 typename ELEMENTS_03,
4648 typename ELEMENTS_04,
4649 typename ELEMENTS_05,
4650 typename ELEMENTS_06,
4651 typename ELEMENTS_07,
4652 typename ELEMENTS_08>
4653inline
4654void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4655 const TYPE& element,
4656 const ELEMENTS_01& elements_01,
4657 const ELEMENTS_02& elements_02,
4658 const ELEMENTS_03& elements_03,
4659 const ELEMENTS_04& elements_04,
4660 const ELEMENTS_05& elements_05,
4661 const ELEMENTS_06& elements_06,
4662 const ELEMENTS_07& elements_07,
4663 const ELEMENTS_08& elements_08
4664 ) const
4665{
4666 builder->pushBack((*this)(element));
4667 pushBackHelper(builder, elements_01,
4668 elements_02,
4669 elements_03,
4670 elements_04,
4671 elements_05,
4672 elements_06,
4673 elements_07,
4674 elements_08);
4675}
4676
4677template <typename TYPE, typename ELEMENTS_01,
4678 typename ELEMENTS_02,
4679 typename ELEMENTS_03,
4680 typename ELEMENTS_04,
4681 typename ELEMENTS_05,
4682 typename ELEMENTS_06,
4683 typename ELEMENTS_07,
4684 typename ELEMENTS_08,
4685 typename ELEMENTS_09>
4686inline
4687void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4688 const TYPE& element,
4689 const ELEMENTS_01& elements_01,
4690 const ELEMENTS_02& elements_02,
4691 const ELEMENTS_03& elements_03,
4692 const ELEMENTS_04& elements_04,
4693 const ELEMENTS_05& elements_05,
4694 const ELEMENTS_06& elements_06,
4695 const ELEMENTS_07& elements_07,
4696 const ELEMENTS_08& elements_08,
4697 const ELEMENTS_09& elements_09
4698 ) const
4699{
4700 builder->pushBack((*this)(element));
4701 pushBackHelper(builder, elements_01,
4702 elements_02,
4703 elements_03,
4704 elements_04,
4705 elements_05,
4706 elements_06,
4707 elements_07,
4708 elements_08,
4709 elements_09);
4710}
4711
4712template <typename TYPE, typename ELEMENTS_01,
4713 typename ELEMENTS_02,
4714 typename ELEMENTS_03,
4715 typename ELEMENTS_04,
4716 typename ELEMENTS_05,
4717 typename ELEMENTS_06,
4718 typename ELEMENTS_07,
4719 typename ELEMENTS_08,
4720 typename ELEMENTS_09,
4721 typename ELEMENTS_10>
4722inline
4723void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4724 const TYPE& element,
4725 const ELEMENTS_01& elements_01,
4726 const ELEMENTS_02& elements_02,
4727 const ELEMENTS_03& elements_03,
4728 const ELEMENTS_04& elements_04,
4729 const ELEMENTS_05& elements_05,
4730 const ELEMENTS_06& elements_06,
4731 const ELEMENTS_07& elements_07,
4732 const ELEMENTS_08& elements_08,
4733 const ELEMENTS_09& elements_09,
4734 const ELEMENTS_10& elements_10
4735 ) const
4736{
4737 builder->pushBack((*this)(element));
4738 pushBackHelper(builder, elements_01,
4739 elements_02,
4740 elements_03,
4741 elements_04,
4742 elements_05,
4743 elements_06,
4744 elements_07,
4745 elements_08,
4746 elements_09,
4747 elements_10);
4748}
4749
4750template <typename TYPE, typename ELEMENTS_01,
4751 typename ELEMENTS_02,
4752 typename ELEMENTS_03,
4753 typename ELEMENTS_04,
4754 typename ELEMENTS_05,
4755 typename ELEMENTS_06,
4756 typename ELEMENTS_07,
4757 typename ELEMENTS_08,
4758 typename ELEMENTS_09,
4759 typename ELEMENTS_10,
4760 typename ELEMENTS_11>
4761inline
4762void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4763 const TYPE& element,
4764 const ELEMENTS_01& elements_01,
4765 const ELEMENTS_02& elements_02,
4766 const ELEMENTS_03& elements_03,
4767 const ELEMENTS_04& elements_04,
4768 const ELEMENTS_05& elements_05,
4769 const ELEMENTS_06& elements_06,
4770 const ELEMENTS_07& elements_07,
4771 const ELEMENTS_08& elements_08,
4772 const ELEMENTS_09& elements_09,
4773 const ELEMENTS_10& elements_10,
4774 const ELEMENTS_11& elements_11
4775 ) const
4776{
4777 builder->pushBack((*this)(element));
4778 pushBackHelper(builder, elements_01,
4779 elements_02,
4780 elements_03,
4781 elements_04,
4782 elements_05,
4783 elements_06,
4784 elements_07,
4785 elements_08,
4786 elements_09,
4787 elements_10,
4788 elements_11);
4789}
4790
4791template <typename TYPE, typename ELEMENTS_01,
4792 typename ELEMENTS_02,
4793 typename ELEMENTS_03,
4794 typename ELEMENTS_04,
4795 typename ELEMENTS_05,
4796 typename ELEMENTS_06,
4797 typename ELEMENTS_07,
4798 typename ELEMENTS_08,
4799 typename ELEMENTS_09,
4800 typename ELEMENTS_10,
4801 typename ELEMENTS_11,
4802 typename ELEMENTS_12>
4803inline
4804void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4805 const TYPE& element,
4806 const ELEMENTS_01& elements_01,
4807 const ELEMENTS_02& elements_02,
4808 const ELEMENTS_03& elements_03,
4809 const ELEMENTS_04& elements_04,
4810 const ELEMENTS_05& elements_05,
4811 const ELEMENTS_06& elements_06,
4812 const ELEMENTS_07& elements_07,
4813 const ELEMENTS_08& elements_08,
4814 const ELEMENTS_09& elements_09,
4815 const ELEMENTS_10& elements_10,
4816 const ELEMENTS_11& elements_11,
4817 const ELEMENTS_12& elements_12
4818 ) const
4819{
4820 builder->pushBack((*this)(element));
4821 pushBackHelper(builder, elements_01,
4822 elements_02,
4823 elements_03,
4824 elements_04,
4825 elements_05,
4826 elements_06,
4827 elements_07,
4828 elements_08,
4829 elements_09,
4830 elements_10,
4831 elements_11,
4832 elements_12);
4833}
4834
4835template <typename TYPE, typename ELEMENTS_01,
4836 typename ELEMENTS_02,
4837 typename ELEMENTS_03,
4838 typename ELEMENTS_04,
4839 typename ELEMENTS_05,
4840 typename ELEMENTS_06,
4841 typename ELEMENTS_07,
4842 typename ELEMENTS_08,
4843 typename ELEMENTS_09,
4844 typename ELEMENTS_10,
4845 typename ELEMENTS_11,
4846 typename ELEMENTS_12,
4847 typename ELEMENTS_13>
4848inline
4849void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4850 const TYPE& element,
4851 const ELEMENTS_01& elements_01,
4852 const ELEMENTS_02& elements_02,
4853 const ELEMENTS_03& elements_03,
4854 const ELEMENTS_04& elements_04,
4855 const ELEMENTS_05& elements_05,
4856 const ELEMENTS_06& elements_06,
4857 const ELEMENTS_07& elements_07,
4858 const ELEMENTS_08& elements_08,
4859 const ELEMENTS_09& elements_09,
4860 const ELEMENTS_10& elements_10,
4861 const ELEMENTS_11& elements_11,
4862 const ELEMENTS_12& elements_12,
4863 const ELEMENTS_13& elements_13
4864 ) const
4865{
4866 builder->pushBack((*this)(element));
4867 pushBackHelper(builder, elements_01,
4868 elements_02,
4869 elements_03,
4870 elements_04,
4871 elements_05,
4872 elements_06,
4873 elements_07,
4874 elements_08,
4875 elements_09,
4876 elements_10,
4877 elements_11,
4878 elements_12,
4879 elements_13);
4880}
4881
4882template <typename TYPE, typename ELEMENTS_01,
4883 typename ELEMENTS_02,
4884 typename ELEMENTS_03,
4885 typename ELEMENTS_04,
4886 typename ELEMENTS_05,
4887 typename ELEMENTS_06,
4888 typename ELEMENTS_07,
4889 typename ELEMENTS_08,
4890 typename ELEMENTS_09,
4891 typename ELEMENTS_10,
4892 typename ELEMENTS_11,
4893 typename ELEMENTS_12,
4894 typename ELEMENTS_13,
4895 typename ELEMENTS_14>
4896inline
4897void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4898 const TYPE& element,
4899 const ELEMENTS_01& elements_01,
4900 const ELEMENTS_02& elements_02,
4901 const ELEMENTS_03& elements_03,
4902 const ELEMENTS_04& elements_04,
4903 const ELEMENTS_05& elements_05,
4904 const ELEMENTS_06& elements_06,
4905 const ELEMENTS_07& elements_07,
4906 const ELEMENTS_08& elements_08,
4907 const ELEMENTS_09& elements_09,
4908 const ELEMENTS_10& elements_10,
4909 const ELEMENTS_11& elements_11,
4910 const ELEMENTS_12& elements_12,
4911 const ELEMENTS_13& elements_13,
4912 const ELEMENTS_14& elements_14
4913 ) const
4914{
4915 builder->pushBack((*this)(element));
4916 pushBackHelper(builder, elements_01,
4917 elements_02,
4918 elements_03,
4919 elements_04,
4920 elements_05,
4921 elements_06,
4922 elements_07,
4923 elements_08,
4924 elements_09,
4925 elements_10,
4926 elements_11,
4927 elements_12,
4928 elements_13,
4929 elements_14);
4930}
4931
4932template <typename TYPE, typename ELEMENTS_01,
4933 typename ELEMENTS_02,
4934 typename ELEMENTS_03,
4935 typename ELEMENTS_04,
4936 typename ELEMENTS_05,
4937 typename ELEMENTS_06,
4938 typename ELEMENTS_07,
4939 typename ELEMENTS_08,
4940 typename ELEMENTS_09,
4941 typename ELEMENTS_10,
4942 typename ELEMENTS_11,
4943 typename ELEMENTS_12,
4944 typename ELEMENTS_13,
4945 typename ELEMENTS_14,
4946 typename ELEMENTS_15>
4947inline
4948void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
4949 const TYPE& element,
4950 const ELEMENTS_01& elements_01,
4951 const ELEMENTS_02& elements_02,
4952 const ELEMENTS_03& elements_03,
4953 const ELEMENTS_04& elements_04,
4954 const ELEMENTS_05& elements_05,
4955 const ELEMENTS_06& elements_06,
4956 const ELEMENTS_07& elements_07,
4957 const ELEMENTS_08& elements_08,
4958 const ELEMENTS_09& elements_09,
4959 const ELEMENTS_10& elements_10,
4960 const ELEMENTS_11& elements_11,
4961 const ELEMENTS_12& elements_12,
4962 const ELEMENTS_13& elements_13,
4963 const ELEMENTS_14& elements_14,
4964 const ELEMENTS_15& elements_15
4965 ) const
4966{
4967 builder->pushBack((*this)(element));
4968 pushBackHelper(builder, elements_01,
4969 elements_02,
4970 elements_03,
4971 elements_04,
4972 elements_05,
4973 elements_06,
4974 elements_07,
4975 elements_08,
4976 elements_09,
4977 elements_10,
4978 elements_11,
4979 elements_12,
4980 elements_13,
4981 elements_14,
4982 elements_15);
4983}
4984
4985template <typename TYPE, typename ELEMENTS_01,
4986 typename ELEMENTS_02,
4987 typename ELEMENTS_03,
4988 typename ELEMENTS_04,
4989 typename ELEMENTS_05,
4990 typename ELEMENTS_06,
4991 typename ELEMENTS_07,
4992 typename ELEMENTS_08,
4993 typename ELEMENTS_09,
4994 typename ELEMENTS_10,
4995 typename ELEMENTS_11,
4996 typename ELEMENTS_12,
4997 typename ELEMENTS_13,
4998 typename ELEMENTS_14,
4999 typename ELEMENTS_15,
5000 typename ELEMENTS_16>
5001inline
5002void DatumMaker::pushBackHelper(bdld::DatumArrayBuilder *builder,
5003 const TYPE& element,
5004 const ELEMENTS_01& elements_01,
5005 const ELEMENTS_02& elements_02,
5006 const ELEMENTS_03& elements_03,
5007 const ELEMENTS_04& elements_04,
5008 const ELEMENTS_05& elements_05,
5009 const ELEMENTS_06& elements_06,
5010 const ELEMENTS_07& elements_07,
5011 const ELEMENTS_08& elements_08,
5012 const ELEMENTS_09& elements_09,
5013 const ELEMENTS_10& elements_10,
5014 const ELEMENTS_11& elements_11,
5015 const ELEMENTS_12& elements_12,
5016 const ELEMENTS_13& elements_13,
5017 const ELEMENTS_14& elements_14,
5018 const ELEMENTS_15& elements_15,
5019 const ELEMENTS_16& elements_16
5020 ) const
5021{
5022 builder->pushBack((*this)(element));
5023 pushBackHelper(builder, elements_01,
5024 elements_02,
5025 elements_03,
5026 elements_04,
5027 elements_05,
5028 elements_06,
5029 elements_07,
5030 elements_08,
5031 elements_09,
5032 elements_10,
5033 elements_11,
5034 elements_12,
5035 elements_13,
5036 elements_14,
5037 elements_15,
5038 elements_16);
5039}
5040
5041template <typename TYPE>
5042inline
5043void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5044 const bslstl::StringRef& key,
5045 const TYPE& value
5046 ) const
5047{
5048 builder->pushBack(key, (*this)(value));
5049 pushBackHelper(builder);
5050}
5051
5052template <typename TYPE, typename ENTRIES_01,
5053 typename ENTRIES_02>
5054inline
5055void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5056 const bslstl::StringRef& key,
5057 const TYPE& value,
5058 const ENTRIES_01& entries_01,
5059 const ENTRIES_02& entries_02
5060 ) const
5061{
5062 builder->pushBack(key, (*this)(value));
5063 pushBackHelper(builder, entries_01,
5064 entries_02);
5065}
5066
5067template <typename TYPE, typename ENTRIES_01,
5068 typename ENTRIES_02,
5069 typename ENTRIES_03,
5070 typename ENTRIES_04>
5071inline
5072void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5073 const bslstl::StringRef& key,
5074 const TYPE& value,
5075 const ENTRIES_01& entries_01,
5076 const ENTRIES_02& entries_02,
5077 const ENTRIES_03& entries_03,
5078 const ENTRIES_04& entries_04
5079 ) const
5080{
5081 builder->pushBack(key, (*this)(value));
5082 pushBackHelper(builder, entries_01,
5083 entries_02,
5084 entries_03,
5085 entries_04);
5086}
5087
5088template <typename TYPE, typename ENTRIES_01,
5089 typename ENTRIES_02,
5090 typename ENTRIES_03,
5091 typename ENTRIES_04,
5092 typename ENTRIES_05,
5093 typename ENTRIES_06>
5094inline
5095void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5096 const bslstl::StringRef& key,
5097 const TYPE& value,
5098 const ENTRIES_01& entries_01,
5099 const ENTRIES_02& entries_02,
5100 const ENTRIES_03& entries_03,
5101 const ENTRIES_04& entries_04,
5102 const ENTRIES_05& entries_05,
5103 const ENTRIES_06& entries_06
5104 ) const
5105{
5106 builder->pushBack(key, (*this)(value));
5107 pushBackHelper(builder, entries_01,
5108 entries_02,
5109 entries_03,
5110 entries_04,
5111 entries_05,
5112 entries_06);
5113}
5114
5115template <typename TYPE, typename ENTRIES_01,
5116 typename ENTRIES_02,
5117 typename ENTRIES_03,
5118 typename ENTRIES_04,
5119 typename ENTRIES_05,
5120 typename ENTRIES_06,
5121 typename ENTRIES_07,
5122 typename ENTRIES_08>
5123inline
5124void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5125 const bslstl::StringRef& key,
5126 const TYPE& value,
5127 const ENTRIES_01& entries_01,
5128 const ENTRIES_02& entries_02,
5129 const ENTRIES_03& entries_03,
5130 const ENTRIES_04& entries_04,
5131 const ENTRIES_05& entries_05,
5132 const ENTRIES_06& entries_06,
5133 const ENTRIES_07& entries_07,
5134 const ENTRIES_08& entries_08
5135 ) const
5136{
5137 builder->pushBack(key, (*this)(value));
5138 pushBackHelper(builder, entries_01,
5139 entries_02,
5140 entries_03,
5141 entries_04,
5142 entries_05,
5143 entries_06,
5144 entries_07,
5145 entries_08);
5146}
5147
5148template <typename TYPE, typename ENTRIES_01,
5149 typename ENTRIES_02,
5150 typename ENTRIES_03,
5151 typename ENTRIES_04,
5152 typename ENTRIES_05,
5153 typename ENTRIES_06,
5154 typename ENTRIES_07,
5155 typename ENTRIES_08,
5156 typename ENTRIES_09,
5157 typename ENTRIES_10>
5158inline
5159void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5160 const bslstl::StringRef& key,
5161 const TYPE& value,
5162 const ENTRIES_01& entries_01,
5163 const ENTRIES_02& entries_02,
5164 const ENTRIES_03& entries_03,
5165 const ENTRIES_04& entries_04,
5166 const ENTRIES_05& entries_05,
5167 const ENTRIES_06& entries_06,
5168 const ENTRIES_07& entries_07,
5169 const ENTRIES_08& entries_08,
5170 const ENTRIES_09& entries_09,
5171 const ENTRIES_10& entries_10
5172 ) const
5173{
5174 builder->pushBack(key, (*this)(value));
5175 pushBackHelper(builder, entries_01,
5176 entries_02,
5177 entries_03,
5178 entries_04,
5179 entries_05,
5180 entries_06,
5181 entries_07,
5182 entries_08,
5183 entries_09,
5184 entries_10);
5185}
5186
5187template <typename TYPE, typename ENTRIES_01,
5188 typename ENTRIES_02,
5189 typename ENTRIES_03,
5190 typename ENTRIES_04,
5191 typename ENTRIES_05,
5192 typename ENTRIES_06,
5193 typename ENTRIES_07,
5194 typename ENTRIES_08,
5195 typename ENTRIES_09,
5196 typename ENTRIES_10,
5197 typename ENTRIES_11,
5198 typename ENTRIES_12>
5199inline
5200void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5201 const bslstl::StringRef& key,
5202 const TYPE& value,
5203 const ENTRIES_01& entries_01,
5204 const ENTRIES_02& entries_02,
5205 const ENTRIES_03& entries_03,
5206 const ENTRIES_04& entries_04,
5207 const ENTRIES_05& entries_05,
5208 const ENTRIES_06& entries_06,
5209 const ENTRIES_07& entries_07,
5210 const ENTRIES_08& entries_08,
5211 const ENTRIES_09& entries_09,
5212 const ENTRIES_10& entries_10,
5213 const ENTRIES_11& entries_11,
5214 const ENTRIES_12& entries_12
5215 ) const
5216{
5217 builder->pushBack(key, (*this)(value));
5218 pushBackHelper(builder, entries_01,
5219 entries_02,
5220 entries_03,
5221 entries_04,
5222 entries_05,
5223 entries_06,
5224 entries_07,
5225 entries_08,
5226 entries_09,
5227 entries_10,
5228 entries_11,
5229 entries_12);
5230}
5231
5232template <typename TYPE, typename ENTRIES_01,
5233 typename ENTRIES_02,
5234 typename ENTRIES_03,
5235 typename ENTRIES_04,
5236 typename ENTRIES_05,
5237 typename ENTRIES_06,
5238 typename ENTRIES_07,
5239 typename ENTRIES_08,
5240 typename ENTRIES_09,
5241 typename ENTRIES_10,
5242 typename ENTRIES_11,
5243 typename ENTRIES_12,
5244 typename ENTRIES_13,
5245 typename ENTRIES_14>
5246inline
5247void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5248 const bslstl::StringRef& key,
5249 const TYPE& value,
5250 const ENTRIES_01& entries_01,
5251 const ENTRIES_02& entries_02,
5252 const ENTRIES_03& entries_03,
5253 const ENTRIES_04& entries_04,
5254 const ENTRIES_05& entries_05,
5255 const ENTRIES_06& entries_06,
5256 const ENTRIES_07& entries_07,
5257 const ENTRIES_08& entries_08,
5258 const ENTRIES_09& entries_09,
5259 const ENTRIES_10& entries_10,
5260 const ENTRIES_11& entries_11,
5261 const ENTRIES_12& entries_12,
5262 const ENTRIES_13& entries_13,
5263 const ENTRIES_14& entries_14
5264 ) const
5265{
5266 builder->pushBack(key, (*this)(value));
5267 pushBackHelper(builder, entries_01,
5268 entries_02,
5269 entries_03,
5270 entries_04,
5271 entries_05,
5272 entries_06,
5273 entries_07,
5274 entries_08,
5275 entries_09,
5276 entries_10,
5277 entries_11,
5278 entries_12,
5279 entries_13,
5280 entries_14);
5281}
5282
5283template <typename TYPE, typename ENTRIES_01,
5284 typename ENTRIES_02,
5285 typename ENTRIES_03,
5286 typename ENTRIES_04,
5287 typename ENTRIES_05,
5288 typename ENTRIES_06,
5289 typename ENTRIES_07,
5290 typename ENTRIES_08,
5291 typename ENTRIES_09,
5292 typename ENTRIES_10,
5293 typename ENTRIES_11,
5294 typename ENTRIES_12,
5295 typename ENTRIES_13,
5296 typename ENTRIES_14,
5297 typename ENTRIES_15,
5298 typename ENTRIES_16>
5299inline
5300void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5301 const bslstl::StringRef& key,
5302 const TYPE& value,
5303 const ENTRIES_01& entries_01,
5304 const ENTRIES_02& entries_02,
5305 const ENTRIES_03& entries_03,
5306 const ENTRIES_04& entries_04,
5307 const ENTRIES_05& entries_05,
5308 const ENTRIES_06& entries_06,
5309 const ENTRIES_07& entries_07,
5310 const ENTRIES_08& entries_08,
5311 const ENTRIES_09& entries_09,
5312 const ENTRIES_10& entries_10,
5313 const ENTRIES_11& entries_11,
5314 const ENTRIES_12& entries_12,
5315 const ENTRIES_13& entries_13,
5316 const ENTRIES_14& entries_14,
5317 const ENTRIES_15& entries_15,
5318 const ENTRIES_16& entries_16
5319 ) const
5320{
5321 builder->pushBack(key, (*this)(value));
5322 pushBackHelper(builder, entries_01,
5323 entries_02,
5324 entries_03,
5325 entries_04,
5326 entries_05,
5327 entries_06,
5328 entries_07,
5329 entries_08,
5330 entries_09,
5331 entries_10,
5332 entries_11,
5333 entries_12,
5334 entries_13,
5335 entries_14,
5336 entries_15,
5337 entries_16);
5338}
5339
5340template <typename TYPE, typename ENTRIES_01,
5341 typename ENTRIES_02,
5342 typename ENTRIES_03,
5343 typename ENTRIES_04,
5344 typename ENTRIES_05,
5345 typename ENTRIES_06,
5346 typename ENTRIES_07,
5347 typename ENTRIES_08,
5348 typename ENTRIES_09,
5349 typename ENTRIES_10,
5350 typename ENTRIES_11,
5351 typename ENTRIES_12,
5352 typename ENTRIES_13,
5353 typename ENTRIES_14,
5354 typename ENTRIES_15,
5355 typename ENTRIES_16,
5356 typename ENTRIES_17,
5357 typename ENTRIES_18>
5358inline
5359void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5360 const bslstl::StringRef& key,
5361 const TYPE& value,
5362 const ENTRIES_01& entries_01,
5363 const ENTRIES_02& entries_02,
5364 const ENTRIES_03& entries_03,
5365 const ENTRIES_04& entries_04,
5366 const ENTRIES_05& entries_05,
5367 const ENTRIES_06& entries_06,
5368 const ENTRIES_07& entries_07,
5369 const ENTRIES_08& entries_08,
5370 const ENTRIES_09& entries_09,
5371 const ENTRIES_10& entries_10,
5372 const ENTRIES_11& entries_11,
5373 const ENTRIES_12& entries_12,
5374 const ENTRIES_13& entries_13,
5375 const ENTRIES_14& entries_14,
5376 const ENTRIES_15& entries_15,
5377 const ENTRIES_16& entries_16,
5378 const ENTRIES_17& entries_17,
5379 const ENTRIES_18& entries_18
5380 ) const
5381{
5382 builder->pushBack(key, (*this)(value));
5383 pushBackHelper(builder, entries_01,
5384 entries_02,
5385 entries_03,
5386 entries_04,
5387 entries_05,
5388 entries_06,
5389 entries_07,
5390 entries_08,
5391 entries_09,
5392 entries_10,
5393 entries_11,
5394 entries_12,
5395 entries_13,
5396 entries_14,
5397 entries_15,
5398 entries_16,
5399 entries_17,
5400 entries_18);
5401}
5402
5403template <typename TYPE, typename ENTRIES_01,
5404 typename ENTRIES_02,
5405 typename ENTRIES_03,
5406 typename ENTRIES_04,
5407 typename ENTRIES_05,
5408 typename ENTRIES_06,
5409 typename ENTRIES_07,
5410 typename ENTRIES_08,
5411 typename ENTRIES_09,
5412 typename ENTRIES_10,
5413 typename ENTRIES_11,
5414 typename ENTRIES_12,
5415 typename ENTRIES_13,
5416 typename ENTRIES_14,
5417 typename ENTRIES_15,
5418 typename ENTRIES_16,
5419 typename ENTRIES_17,
5420 typename ENTRIES_18,
5421 typename ENTRIES_19,
5422 typename ENTRIES_20>
5423inline
5424void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5425 const bslstl::StringRef& key,
5426 const TYPE& value,
5427 const ENTRIES_01& entries_01,
5428 const ENTRIES_02& entries_02,
5429 const ENTRIES_03& entries_03,
5430 const ENTRIES_04& entries_04,
5431 const ENTRIES_05& entries_05,
5432 const ENTRIES_06& entries_06,
5433 const ENTRIES_07& entries_07,
5434 const ENTRIES_08& entries_08,
5435 const ENTRIES_09& entries_09,
5436 const ENTRIES_10& entries_10,
5437 const ENTRIES_11& entries_11,
5438 const ENTRIES_12& entries_12,
5439 const ENTRIES_13& entries_13,
5440 const ENTRIES_14& entries_14,
5441 const ENTRIES_15& entries_15,
5442 const ENTRIES_16& entries_16,
5443 const ENTRIES_17& entries_17,
5444 const ENTRIES_18& entries_18,
5445 const ENTRIES_19& entries_19,
5446 const ENTRIES_20& entries_20
5447 ) const
5448{
5449 builder->pushBack(key, (*this)(value));
5450 pushBackHelper(builder, entries_01,
5451 entries_02,
5452 entries_03,
5453 entries_04,
5454 entries_05,
5455 entries_06,
5456 entries_07,
5457 entries_08,
5458 entries_09,
5459 entries_10,
5460 entries_11,
5461 entries_12,
5462 entries_13,
5463 entries_14,
5464 entries_15,
5465 entries_16,
5466 entries_17,
5467 entries_18,
5468 entries_19,
5469 entries_20);
5470}
5471
5472template <typename TYPE, typename ENTRIES_01,
5473 typename ENTRIES_02,
5474 typename ENTRIES_03,
5475 typename ENTRIES_04,
5476 typename ENTRIES_05,
5477 typename ENTRIES_06,
5478 typename ENTRIES_07,
5479 typename ENTRIES_08,
5480 typename ENTRIES_09,
5481 typename ENTRIES_10,
5482 typename ENTRIES_11,
5483 typename ENTRIES_12,
5484 typename ENTRIES_13,
5485 typename ENTRIES_14,
5486 typename ENTRIES_15,
5487 typename ENTRIES_16,
5488 typename ENTRIES_17,
5489 typename ENTRIES_18,
5490 typename ENTRIES_19,
5491 typename ENTRIES_20,
5492 typename ENTRIES_21,
5493 typename ENTRIES_22>
5494inline
5495void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5496 const bslstl::StringRef& key,
5497 const TYPE& value,
5498 const ENTRIES_01& entries_01,
5499 const ENTRIES_02& entries_02,
5500 const ENTRIES_03& entries_03,
5501 const ENTRIES_04& entries_04,
5502 const ENTRIES_05& entries_05,
5503 const ENTRIES_06& entries_06,
5504 const ENTRIES_07& entries_07,
5505 const ENTRIES_08& entries_08,
5506 const ENTRIES_09& entries_09,
5507 const ENTRIES_10& entries_10,
5508 const ENTRIES_11& entries_11,
5509 const ENTRIES_12& entries_12,
5510 const ENTRIES_13& entries_13,
5511 const ENTRIES_14& entries_14,
5512 const ENTRIES_15& entries_15,
5513 const ENTRIES_16& entries_16,
5514 const ENTRIES_17& entries_17,
5515 const ENTRIES_18& entries_18,
5516 const ENTRIES_19& entries_19,
5517 const ENTRIES_20& entries_20,
5518 const ENTRIES_21& entries_21,
5519 const ENTRIES_22& entries_22
5520 ) const
5521{
5522 builder->pushBack(key, (*this)(value));
5523 pushBackHelper(builder, entries_01,
5524 entries_02,
5525 entries_03,
5526 entries_04,
5527 entries_05,
5528 entries_06,
5529 entries_07,
5530 entries_08,
5531 entries_09,
5532 entries_10,
5533 entries_11,
5534 entries_12,
5535 entries_13,
5536 entries_14,
5537 entries_15,
5538 entries_16,
5539 entries_17,
5540 entries_18,
5541 entries_19,
5542 entries_20,
5543 entries_21,
5544 entries_22);
5545}
5546
5547template <typename TYPE, typename ENTRIES_01,
5548 typename ENTRIES_02,
5549 typename ENTRIES_03,
5550 typename ENTRIES_04,
5551 typename ENTRIES_05,
5552 typename ENTRIES_06,
5553 typename ENTRIES_07,
5554 typename ENTRIES_08,
5555 typename ENTRIES_09,
5556 typename ENTRIES_10,
5557 typename ENTRIES_11,
5558 typename ENTRIES_12,
5559 typename ENTRIES_13,
5560 typename ENTRIES_14,
5561 typename ENTRIES_15,
5562 typename ENTRIES_16,
5563 typename ENTRIES_17,
5564 typename ENTRIES_18,
5565 typename ENTRIES_19,
5566 typename ENTRIES_20,
5567 typename ENTRIES_21,
5568 typename ENTRIES_22,
5569 typename ENTRIES_23,
5570 typename ENTRIES_24>
5571inline
5572void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5573 const bslstl::StringRef& key,
5574 const TYPE& value,
5575 const ENTRIES_01& entries_01,
5576 const ENTRIES_02& entries_02,
5577 const ENTRIES_03& entries_03,
5578 const ENTRIES_04& entries_04,
5579 const ENTRIES_05& entries_05,
5580 const ENTRIES_06& entries_06,
5581 const ENTRIES_07& entries_07,
5582 const ENTRIES_08& entries_08,
5583 const ENTRIES_09& entries_09,
5584 const ENTRIES_10& entries_10,
5585 const ENTRIES_11& entries_11,
5586 const ENTRIES_12& entries_12,
5587 const ENTRIES_13& entries_13,
5588 const ENTRIES_14& entries_14,
5589 const ENTRIES_15& entries_15,
5590 const ENTRIES_16& entries_16,
5591 const ENTRIES_17& entries_17,
5592 const ENTRIES_18& entries_18,
5593 const ENTRIES_19& entries_19,
5594 const ENTRIES_20& entries_20,
5595 const ENTRIES_21& entries_21,
5596 const ENTRIES_22& entries_22,
5597 const ENTRIES_23& entries_23,
5598 const ENTRIES_24& entries_24
5599 ) const
5600{
5601 builder->pushBack(key, (*this)(value));
5602 pushBackHelper(builder, entries_01,
5603 entries_02,
5604 entries_03,
5605 entries_04,
5606 entries_05,
5607 entries_06,
5608 entries_07,
5609 entries_08,
5610 entries_09,
5611 entries_10,
5612 entries_11,
5613 entries_12,
5614 entries_13,
5615 entries_14,
5616 entries_15,
5617 entries_16,
5618 entries_17,
5619 entries_18,
5620 entries_19,
5621 entries_20,
5622 entries_21,
5623 entries_22,
5624 entries_23,
5625 entries_24);
5626}
5627
5628template <typename TYPE, typename ENTRIES_01,
5629 typename ENTRIES_02,
5630 typename ENTRIES_03,
5631 typename ENTRIES_04,
5632 typename ENTRIES_05,
5633 typename ENTRIES_06,
5634 typename ENTRIES_07,
5635 typename ENTRIES_08,
5636 typename ENTRIES_09,
5637 typename ENTRIES_10,
5638 typename ENTRIES_11,
5639 typename ENTRIES_12,
5640 typename ENTRIES_13,
5641 typename ENTRIES_14,
5642 typename ENTRIES_15,
5643 typename ENTRIES_16,
5644 typename ENTRIES_17,
5645 typename ENTRIES_18,
5646 typename ENTRIES_19,
5647 typename ENTRIES_20,
5648 typename ENTRIES_21,
5649 typename ENTRIES_22,
5650 typename ENTRIES_23,
5651 typename ENTRIES_24,
5652 typename ENTRIES_25,
5653 typename ENTRIES_26>
5654inline
5655void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5656 const bslstl::StringRef& key,
5657 const TYPE& value,
5658 const ENTRIES_01& entries_01,
5659 const ENTRIES_02& entries_02,
5660 const ENTRIES_03& entries_03,
5661 const ENTRIES_04& entries_04,
5662 const ENTRIES_05& entries_05,
5663 const ENTRIES_06& entries_06,
5664 const ENTRIES_07& entries_07,
5665 const ENTRIES_08& entries_08,
5666 const ENTRIES_09& entries_09,
5667 const ENTRIES_10& entries_10,
5668 const ENTRIES_11& entries_11,
5669 const ENTRIES_12& entries_12,
5670 const ENTRIES_13& entries_13,
5671 const ENTRIES_14& entries_14,
5672 const ENTRIES_15& entries_15,
5673 const ENTRIES_16& entries_16,
5674 const ENTRIES_17& entries_17,
5675 const ENTRIES_18& entries_18,
5676 const ENTRIES_19& entries_19,
5677 const ENTRIES_20& entries_20,
5678 const ENTRIES_21& entries_21,
5679 const ENTRIES_22& entries_22,
5680 const ENTRIES_23& entries_23,
5681 const ENTRIES_24& entries_24,
5682 const ENTRIES_25& entries_25,
5683 const ENTRIES_26& entries_26
5684 ) const
5685{
5686 builder->pushBack(key, (*this)(value));
5687 pushBackHelper(builder, entries_01,
5688 entries_02,
5689 entries_03,
5690 entries_04,
5691 entries_05,
5692 entries_06,
5693 entries_07,
5694 entries_08,
5695 entries_09,
5696 entries_10,
5697 entries_11,
5698 entries_12,
5699 entries_13,
5700 entries_14,
5701 entries_15,
5702 entries_16,
5703 entries_17,
5704 entries_18,
5705 entries_19,
5706 entries_20,
5707 entries_21,
5708 entries_22,
5709 entries_23,
5710 entries_24,
5711 entries_25,
5712 entries_26);
5713}
5714
5715template <typename TYPE, typename ENTRIES_01,
5716 typename ENTRIES_02,
5717 typename ENTRIES_03,
5718 typename ENTRIES_04,
5719 typename ENTRIES_05,
5720 typename ENTRIES_06,
5721 typename ENTRIES_07,
5722 typename ENTRIES_08,
5723 typename ENTRIES_09,
5724 typename ENTRIES_10,
5725 typename ENTRIES_11,
5726 typename ENTRIES_12,
5727 typename ENTRIES_13,
5728 typename ENTRIES_14,
5729 typename ENTRIES_15,
5730 typename ENTRIES_16,
5731 typename ENTRIES_17,
5732 typename ENTRIES_18,
5733 typename ENTRIES_19,
5734 typename ENTRIES_20,
5735 typename ENTRIES_21,
5736 typename ENTRIES_22,
5737 typename ENTRIES_23,
5738 typename ENTRIES_24,
5739 typename ENTRIES_25,
5740 typename ENTRIES_26,
5741 typename ENTRIES_27,
5742 typename ENTRIES_28>
5743inline
5744void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5745 const bslstl::StringRef& key,
5746 const TYPE& value,
5747 const ENTRIES_01& entries_01,
5748 const ENTRIES_02& entries_02,
5749 const ENTRIES_03& entries_03,
5750 const ENTRIES_04& entries_04,
5751 const ENTRIES_05& entries_05,
5752 const ENTRIES_06& entries_06,
5753 const ENTRIES_07& entries_07,
5754 const ENTRIES_08& entries_08,
5755 const ENTRIES_09& entries_09,
5756 const ENTRIES_10& entries_10,
5757 const ENTRIES_11& entries_11,
5758 const ENTRIES_12& entries_12,
5759 const ENTRIES_13& entries_13,
5760 const ENTRIES_14& entries_14,
5761 const ENTRIES_15& entries_15,
5762 const ENTRIES_16& entries_16,
5763 const ENTRIES_17& entries_17,
5764 const ENTRIES_18& entries_18,
5765 const ENTRIES_19& entries_19,
5766 const ENTRIES_20& entries_20,
5767 const ENTRIES_21& entries_21,
5768 const ENTRIES_22& entries_22,
5769 const ENTRIES_23& entries_23,
5770 const ENTRIES_24& entries_24,
5771 const ENTRIES_25& entries_25,
5772 const ENTRIES_26& entries_26,
5773 const ENTRIES_27& entries_27,
5774 const ENTRIES_28& entries_28
5775 ) const
5776{
5777 builder->pushBack(key, (*this)(value));
5778 pushBackHelper(builder, entries_01,
5779 entries_02,
5780 entries_03,
5781 entries_04,
5782 entries_05,
5783 entries_06,
5784 entries_07,
5785 entries_08,
5786 entries_09,
5787 entries_10,
5788 entries_11,
5789 entries_12,
5790 entries_13,
5791 entries_14,
5792 entries_15,
5793 entries_16,
5794 entries_17,
5795 entries_18,
5796 entries_19,
5797 entries_20,
5798 entries_21,
5799 entries_22,
5800 entries_23,
5801 entries_24,
5802 entries_25,
5803 entries_26,
5804 entries_27,
5805 entries_28);
5806}
5807
5808template <typename TYPE, typename ENTRIES_01,
5809 typename ENTRIES_02,
5810 typename ENTRIES_03,
5811 typename ENTRIES_04,
5812 typename ENTRIES_05,
5813 typename ENTRIES_06,
5814 typename ENTRIES_07,
5815 typename ENTRIES_08,
5816 typename ENTRIES_09,
5817 typename ENTRIES_10,
5818 typename ENTRIES_11,
5819 typename ENTRIES_12,
5820 typename ENTRIES_13,
5821 typename ENTRIES_14,
5822 typename ENTRIES_15,
5823 typename ENTRIES_16,
5824 typename ENTRIES_17,
5825 typename ENTRIES_18,
5826 typename ENTRIES_19,
5827 typename ENTRIES_20,
5828 typename ENTRIES_21,
5829 typename ENTRIES_22,
5830 typename ENTRIES_23,
5831 typename ENTRIES_24,
5832 typename ENTRIES_25,
5833 typename ENTRIES_26,
5834 typename ENTRIES_27,
5835 typename ENTRIES_28,
5836 typename ENTRIES_29,
5837 typename ENTRIES_30>
5838inline
5839void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5840 const bslstl::StringRef& key,
5841 const TYPE& value,
5842 const ENTRIES_01& entries_01,
5843 const ENTRIES_02& entries_02,
5844 const ENTRIES_03& entries_03,
5845 const ENTRIES_04& entries_04,
5846 const ENTRIES_05& entries_05,
5847 const ENTRIES_06& entries_06,
5848 const ENTRIES_07& entries_07,
5849 const ENTRIES_08& entries_08,
5850 const ENTRIES_09& entries_09,
5851 const ENTRIES_10& entries_10,
5852 const ENTRIES_11& entries_11,
5853 const ENTRIES_12& entries_12,
5854 const ENTRIES_13& entries_13,
5855 const ENTRIES_14& entries_14,
5856 const ENTRIES_15& entries_15,
5857 const ENTRIES_16& entries_16,
5858 const ENTRIES_17& entries_17,
5859 const ENTRIES_18& entries_18,
5860 const ENTRIES_19& entries_19,
5861 const ENTRIES_20& entries_20,
5862 const ENTRIES_21& entries_21,
5863 const ENTRIES_22& entries_22,
5864 const ENTRIES_23& entries_23,
5865 const ENTRIES_24& entries_24,
5866 const ENTRIES_25& entries_25,
5867 const ENTRIES_26& entries_26,
5868 const ENTRIES_27& entries_27,
5869 const ENTRIES_28& entries_28,
5870 const ENTRIES_29& entries_29,
5871 const ENTRIES_30& entries_30
5872 ) const
5873{
5874 builder->pushBack(key, (*this)(value));
5875 pushBackHelper(builder, entries_01,
5876 entries_02,
5877 entries_03,
5878 entries_04,
5879 entries_05,
5880 entries_06,
5881 entries_07,
5882 entries_08,
5883 entries_09,
5884 entries_10,
5885 entries_11,
5886 entries_12,
5887 entries_13,
5888 entries_14,
5889 entries_15,
5890 entries_16,
5891 entries_17,
5892 entries_18,
5893 entries_19,
5894 entries_20,
5895 entries_21,
5896 entries_22,
5897 entries_23,
5898 entries_24,
5899 entries_25,
5900 entries_26,
5901 entries_27,
5902 entries_28,
5903 entries_29,
5904 entries_30);
5905}
5906
5907template <typename TYPE, typename ENTRIES_01,
5908 typename ENTRIES_02,
5909 typename ENTRIES_03,
5910 typename ENTRIES_04,
5911 typename ENTRIES_05,
5912 typename ENTRIES_06,
5913 typename ENTRIES_07,
5914 typename ENTRIES_08,
5915 typename ENTRIES_09,
5916 typename ENTRIES_10,
5917 typename ENTRIES_11,
5918 typename ENTRIES_12,
5919 typename ENTRIES_13,
5920 typename ENTRIES_14,
5921 typename ENTRIES_15,
5922 typename ENTRIES_16,
5923 typename ENTRIES_17,
5924 typename ENTRIES_18,
5925 typename ENTRIES_19,
5926 typename ENTRIES_20,
5927 typename ENTRIES_21,
5928 typename ENTRIES_22,
5929 typename ENTRIES_23,
5930 typename ENTRIES_24,
5931 typename ENTRIES_25,
5932 typename ENTRIES_26,
5933 typename ENTRIES_27,
5934 typename ENTRIES_28,
5935 typename ENTRIES_29,
5936 typename ENTRIES_30,
5937 typename ENTRIES_31,
5938 typename ENTRIES_32>
5939inline
5940void DatumMaker::pushBackHelper(bdld::DatumMapBuilder *builder,
5941 const bslstl::StringRef& key,
5942 const TYPE& value,
5943 const ENTRIES_01& entries_01,
5944 const ENTRIES_02& entries_02,
5945 const ENTRIES_03& entries_03,
5946 const ENTRIES_04& entries_04,
5947 const ENTRIES_05& entries_05,
5948 const ENTRIES_06& entries_06,
5949 const ENTRIES_07& entries_07,
5950 const ENTRIES_08& entries_08,
5951 const ENTRIES_09& entries_09,
5952 const ENTRIES_10& entries_10,
5953 const ENTRIES_11& entries_11,
5954 const ENTRIES_12& entries_12,
5955 const ENTRIES_13& entries_13,
5956 const ENTRIES_14& entries_14,
5957 const ENTRIES_15& entries_15,
5958 const ENTRIES_16& entries_16,
5959 const ENTRIES_17& entries_17,
5960 const ENTRIES_18& entries_18,
5961 const ENTRIES_19& entries_19,
5962 const ENTRIES_20& entries_20,
5963 const ENTRIES_21& entries_21,
5964 const ENTRIES_22& entries_22,
5965 const ENTRIES_23& entries_23,
5966 const ENTRIES_24& entries_24,
5967 const ENTRIES_25& entries_25,
5968 const ENTRIES_26& entries_26,
5969 const ENTRIES_27& entries_27,
5970 const ENTRIES_28& entries_28,
5971 const ENTRIES_29& entries_29,
5972 const ENTRIES_30& entries_30,
5973 const ENTRIES_31& entries_31,
5974 const ENTRIES_32& entries_32
5975 ) const
5976{
5977 builder->pushBack(key, (*this)(value));
5978 pushBackHelper(builder, entries_01,
5979 entries_02,
5980 entries_03,
5981 entries_04,
5982 entries_05,
5983 entries_06,
5984 entries_07,
5985 entries_08,
5986 entries_09,
5987 entries_10,
5988 entries_11,
5989 entries_12,
5990 entries_13,
5991 entries_14,
5992 entries_15,
5993 entries_16,
5994 entries_17,
5995 entries_18,
5996 entries_19,
5997 entries_20,
5998 entries_21,
5999 entries_22,
6000 entries_23,
6001 entries_24,
6002 entries_25,
6003 entries_26,
6004 entries_27,
6005 entries_28,
6006 entries_29,
6007 entries_30,
6008 entries_31,
6009 entries_32);
6010}
6011
6012template <typename TYPE>
6013inline
6014void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6015 const bslstl::StringRef& key,
6016 const TYPE& value
6017 ) const
6018{
6019 builder->pushBack(key, (*this)(value));
6020 pushBackHelper(builder);
6021}
6022
6023template <typename TYPE, typename ENTRIES_01,
6024 typename ENTRIES_02>
6025inline
6026void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6027 const bslstl::StringRef& key,
6028 const TYPE& value,
6029 const ENTRIES_01& entries_01,
6030 const ENTRIES_02& entries_02
6031 ) const
6032{
6033 builder->pushBack(key, (*this)(value));
6034 pushBackHelper(builder, entries_01,
6035 entries_02);
6036}
6037
6038template <typename TYPE, typename ENTRIES_01,
6039 typename ENTRIES_02,
6040 typename ENTRIES_03,
6041 typename ENTRIES_04>
6042inline
6043void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6044 const bslstl::StringRef& key,
6045 const TYPE& value,
6046 const ENTRIES_01& entries_01,
6047 const ENTRIES_02& entries_02,
6048 const ENTRIES_03& entries_03,
6049 const ENTRIES_04& entries_04
6050 ) const
6051{
6052 builder->pushBack(key, (*this)(value));
6053 pushBackHelper(builder, entries_01,
6054 entries_02,
6055 entries_03,
6056 entries_04);
6057}
6058
6059template <typename TYPE, typename ENTRIES_01,
6060 typename ENTRIES_02,
6061 typename ENTRIES_03,
6062 typename ENTRIES_04,
6063 typename ENTRIES_05,
6064 typename ENTRIES_06>
6065inline
6066void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6067 const bslstl::StringRef& key,
6068 const TYPE& value,
6069 const ENTRIES_01& entries_01,
6070 const ENTRIES_02& entries_02,
6071 const ENTRIES_03& entries_03,
6072 const ENTRIES_04& entries_04,
6073 const ENTRIES_05& entries_05,
6074 const ENTRIES_06& entries_06
6075 ) const
6076{
6077 builder->pushBack(key, (*this)(value));
6078 pushBackHelper(builder, entries_01,
6079 entries_02,
6080 entries_03,
6081 entries_04,
6082 entries_05,
6083 entries_06);
6084}
6085
6086template <typename TYPE, typename ENTRIES_01,
6087 typename ENTRIES_02,
6088 typename ENTRIES_03,
6089 typename ENTRIES_04,
6090 typename ENTRIES_05,
6091 typename ENTRIES_06,
6092 typename ENTRIES_07,
6093 typename ENTRIES_08>
6094inline
6095void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6096 const bslstl::StringRef& key,
6097 const TYPE& value,
6098 const ENTRIES_01& entries_01,
6099 const ENTRIES_02& entries_02,
6100 const ENTRIES_03& entries_03,
6101 const ENTRIES_04& entries_04,
6102 const ENTRIES_05& entries_05,
6103 const ENTRIES_06& entries_06,
6104 const ENTRIES_07& entries_07,
6105 const ENTRIES_08& entries_08
6106 ) const
6107{
6108 builder->pushBack(key, (*this)(value));
6109 pushBackHelper(builder, entries_01,
6110 entries_02,
6111 entries_03,
6112 entries_04,
6113 entries_05,
6114 entries_06,
6115 entries_07,
6116 entries_08);
6117}
6118
6119template <typename TYPE, typename ENTRIES_01,
6120 typename ENTRIES_02,
6121 typename ENTRIES_03,
6122 typename ENTRIES_04,
6123 typename ENTRIES_05,
6124 typename ENTRIES_06,
6125 typename ENTRIES_07,
6126 typename ENTRIES_08,
6127 typename ENTRIES_09,
6128 typename ENTRIES_10>
6129inline
6130void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6131 const bslstl::StringRef& key,
6132 const TYPE& value,
6133 const ENTRIES_01& entries_01,
6134 const ENTRIES_02& entries_02,
6135 const ENTRIES_03& entries_03,
6136 const ENTRIES_04& entries_04,
6137 const ENTRIES_05& entries_05,
6138 const ENTRIES_06& entries_06,
6139 const ENTRIES_07& entries_07,
6140 const ENTRIES_08& entries_08,
6141 const ENTRIES_09& entries_09,
6142 const ENTRIES_10& entries_10
6143 ) const
6144{
6145 builder->pushBack(key, (*this)(value));
6146 pushBackHelper(builder, entries_01,
6147 entries_02,
6148 entries_03,
6149 entries_04,
6150 entries_05,
6151 entries_06,
6152 entries_07,
6153 entries_08,
6154 entries_09,
6155 entries_10);
6156}
6157
6158template <typename TYPE, typename ENTRIES_01,
6159 typename ENTRIES_02,
6160 typename ENTRIES_03,
6161 typename ENTRIES_04,
6162 typename ENTRIES_05,
6163 typename ENTRIES_06,
6164 typename ENTRIES_07,
6165 typename ENTRIES_08,
6166 typename ENTRIES_09,
6167 typename ENTRIES_10,
6168 typename ENTRIES_11,
6169 typename ENTRIES_12>
6170inline
6171void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6172 const bslstl::StringRef& key,
6173 const TYPE& value,
6174 const ENTRIES_01& entries_01,
6175 const ENTRIES_02& entries_02,
6176 const ENTRIES_03& entries_03,
6177 const ENTRIES_04& entries_04,
6178 const ENTRIES_05& entries_05,
6179 const ENTRIES_06& entries_06,
6180 const ENTRIES_07& entries_07,
6181 const ENTRIES_08& entries_08,
6182 const ENTRIES_09& entries_09,
6183 const ENTRIES_10& entries_10,
6184 const ENTRIES_11& entries_11,
6185 const ENTRIES_12& entries_12
6186 ) const
6187{
6188 builder->pushBack(key, (*this)(value));
6189 pushBackHelper(builder, entries_01,
6190 entries_02,
6191 entries_03,
6192 entries_04,
6193 entries_05,
6194 entries_06,
6195 entries_07,
6196 entries_08,
6197 entries_09,
6198 entries_10,
6199 entries_11,
6200 entries_12);
6201}
6202
6203template <typename TYPE, typename ENTRIES_01,
6204 typename ENTRIES_02,
6205 typename ENTRIES_03,
6206 typename ENTRIES_04,
6207 typename ENTRIES_05,
6208 typename ENTRIES_06,
6209 typename ENTRIES_07,
6210 typename ENTRIES_08,
6211 typename ENTRIES_09,
6212 typename ENTRIES_10,
6213 typename ENTRIES_11,
6214 typename ENTRIES_12,
6215 typename ENTRIES_13,
6216 typename ENTRIES_14>
6217inline
6218void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6219 const bslstl::StringRef& key,
6220 const TYPE& value,
6221 const ENTRIES_01& entries_01,
6222 const ENTRIES_02& entries_02,
6223 const ENTRIES_03& entries_03,
6224 const ENTRIES_04& entries_04,
6225 const ENTRIES_05& entries_05,
6226 const ENTRIES_06& entries_06,
6227 const ENTRIES_07& entries_07,
6228 const ENTRIES_08& entries_08,
6229 const ENTRIES_09& entries_09,
6230 const ENTRIES_10& entries_10,
6231 const ENTRIES_11& entries_11,
6232 const ENTRIES_12& entries_12,
6233 const ENTRIES_13& entries_13,
6234 const ENTRIES_14& entries_14
6235 ) const
6236{
6237 builder->pushBack(key, (*this)(value));
6238 pushBackHelper(builder, entries_01,
6239 entries_02,
6240 entries_03,
6241 entries_04,
6242 entries_05,
6243 entries_06,
6244 entries_07,
6245 entries_08,
6246 entries_09,
6247 entries_10,
6248 entries_11,
6249 entries_12,
6250 entries_13,
6251 entries_14);
6252}
6253
6254template <typename TYPE, typename ENTRIES_01,
6255 typename ENTRIES_02,
6256 typename ENTRIES_03,
6257 typename ENTRIES_04,
6258 typename ENTRIES_05,
6259 typename ENTRIES_06,
6260 typename ENTRIES_07,
6261 typename ENTRIES_08,
6262 typename ENTRIES_09,
6263 typename ENTRIES_10,
6264 typename ENTRIES_11,
6265 typename ENTRIES_12,
6266 typename ENTRIES_13,
6267 typename ENTRIES_14,
6268 typename ENTRIES_15,
6269 typename ENTRIES_16>
6270inline
6271void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6272 const bslstl::StringRef& key,
6273 const TYPE& value,
6274 const ENTRIES_01& entries_01,
6275 const ENTRIES_02& entries_02,
6276 const ENTRIES_03& entries_03,
6277 const ENTRIES_04& entries_04,
6278 const ENTRIES_05& entries_05,
6279 const ENTRIES_06& entries_06,
6280 const ENTRIES_07& entries_07,
6281 const ENTRIES_08& entries_08,
6282 const ENTRIES_09& entries_09,
6283 const ENTRIES_10& entries_10,
6284 const ENTRIES_11& entries_11,
6285 const ENTRIES_12& entries_12,
6286 const ENTRIES_13& entries_13,
6287 const ENTRIES_14& entries_14,
6288 const ENTRIES_15& entries_15,
6289 const ENTRIES_16& entries_16
6290 ) const
6291{
6292 builder->pushBack(key, (*this)(value));
6293 pushBackHelper(builder, entries_01,
6294 entries_02,
6295 entries_03,
6296 entries_04,
6297 entries_05,
6298 entries_06,
6299 entries_07,
6300 entries_08,
6301 entries_09,
6302 entries_10,
6303 entries_11,
6304 entries_12,
6305 entries_13,
6306 entries_14,
6307 entries_15,
6308 entries_16);
6309}
6310template <typename TYPE, typename ENTRIES_01,
6311 typename ENTRIES_02,
6312 typename ENTRIES_03,
6313 typename ENTRIES_04,
6314 typename ENTRIES_05,
6315 typename ENTRIES_06,
6316 typename ENTRIES_07,
6317 typename ENTRIES_08,
6318 typename ENTRIES_09,
6319 typename ENTRIES_10,
6320 typename ENTRIES_11,
6321 typename ENTRIES_12,
6322 typename ENTRIES_13,
6323 typename ENTRIES_14,
6324 typename ENTRIES_15,
6325 typename ENTRIES_16,
6326 typename ENTRIES_17,
6327 typename ENTRIES_18>
6328inline
6329void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6330 const bslstl::StringRef& key,
6331 const TYPE& value,
6332 const ENTRIES_01& entries_01,
6333 const ENTRIES_02& entries_02,
6334 const ENTRIES_03& entries_03,
6335 const ENTRIES_04& entries_04,
6336 const ENTRIES_05& entries_05,
6337 const ENTRIES_06& entries_06,
6338 const ENTRIES_07& entries_07,
6339 const ENTRIES_08& entries_08,
6340 const ENTRIES_09& entries_09,
6341 const ENTRIES_10& entries_10,
6342 const ENTRIES_11& entries_11,
6343 const ENTRIES_12& entries_12,
6344 const ENTRIES_13& entries_13,
6345 const ENTRIES_14& entries_14,
6346 const ENTRIES_15& entries_15,
6347 const ENTRIES_16& entries_16,
6348 const ENTRIES_17& entries_17,
6349 const ENTRIES_18& entries_18
6350 ) const
6351{
6352 builder->pushBack(key, (*this)(value));
6353 pushBackHelper(builder, entries_01,
6354 entries_02,
6355 entries_03,
6356 entries_04,
6357 entries_05,
6358 entries_06,
6359 entries_07,
6360 entries_08,
6361 entries_09,
6362 entries_10,
6363 entries_11,
6364 entries_12,
6365 entries_13,
6366 entries_14,
6367 entries_15,
6368 entries_16,
6369 entries_17,
6370 entries_18);
6371}
6372
6373template <typename TYPE, typename ENTRIES_01,
6374 typename ENTRIES_02,
6375 typename ENTRIES_03,
6376 typename ENTRIES_04,
6377 typename ENTRIES_05,
6378 typename ENTRIES_06,
6379 typename ENTRIES_07,
6380 typename ENTRIES_08,
6381 typename ENTRIES_09,
6382 typename ENTRIES_10,
6383 typename ENTRIES_11,
6384 typename ENTRIES_12,
6385 typename ENTRIES_13,
6386 typename ENTRIES_14,
6387 typename ENTRIES_15,
6388 typename ENTRIES_16,
6389 typename ENTRIES_17,
6390 typename ENTRIES_18,
6391 typename ENTRIES_19,
6392 typename ENTRIES_20>
6393inline
6394void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6395 const bslstl::StringRef& key,
6396 const TYPE& value,
6397 const ENTRIES_01& entries_01,
6398 const ENTRIES_02& entries_02,
6399 const ENTRIES_03& entries_03,
6400 const ENTRIES_04& entries_04,
6401 const ENTRIES_05& entries_05,
6402 const ENTRIES_06& entries_06,
6403 const ENTRIES_07& entries_07,
6404 const ENTRIES_08& entries_08,
6405 const ENTRIES_09& entries_09,
6406 const ENTRIES_10& entries_10,
6407 const ENTRIES_11& entries_11,
6408 const ENTRIES_12& entries_12,
6409 const ENTRIES_13& entries_13,
6410 const ENTRIES_14& entries_14,
6411 const ENTRIES_15& entries_15,
6412 const ENTRIES_16& entries_16,
6413 const ENTRIES_17& entries_17,
6414 const ENTRIES_18& entries_18,
6415 const ENTRIES_19& entries_19,
6416 const ENTRIES_20& entries_20
6417 ) const
6418{
6419 builder->pushBack(key, (*this)(value));
6420 pushBackHelper(builder, entries_01,
6421 entries_02,
6422 entries_03,
6423 entries_04,
6424 entries_05,
6425 entries_06,
6426 entries_07,
6427 entries_08,
6428 entries_09,
6429 entries_10,
6430 entries_11,
6431 entries_12,
6432 entries_13,
6433 entries_14,
6434 entries_15,
6435 entries_16,
6436 entries_17,
6437 entries_18,
6438 entries_19,
6439 entries_20);
6440}
6441
6442template <typename TYPE, typename ENTRIES_01,
6443 typename ENTRIES_02,
6444 typename ENTRIES_03,
6445 typename ENTRIES_04,
6446 typename ENTRIES_05,
6447 typename ENTRIES_06,
6448 typename ENTRIES_07,
6449 typename ENTRIES_08,
6450 typename ENTRIES_09,
6451 typename ENTRIES_10,
6452 typename ENTRIES_11,
6453 typename ENTRIES_12,
6454 typename ENTRIES_13,
6455 typename ENTRIES_14,
6456 typename ENTRIES_15,
6457 typename ENTRIES_16,
6458 typename ENTRIES_17,
6459 typename ENTRIES_18,
6460 typename ENTRIES_19,
6461 typename ENTRIES_20,
6462 typename ENTRIES_21,
6463 typename ENTRIES_22>
6464inline
6465void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6466 const bslstl::StringRef& key,
6467 const TYPE& value,
6468 const ENTRIES_01& entries_01,
6469 const ENTRIES_02& entries_02,
6470 const ENTRIES_03& entries_03,
6471 const ENTRIES_04& entries_04,
6472 const ENTRIES_05& entries_05,
6473 const ENTRIES_06& entries_06,
6474 const ENTRIES_07& entries_07,
6475 const ENTRIES_08& entries_08,
6476 const ENTRIES_09& entries_09,
6477 const ENTRIES_10& entries_10,
6478 const ENTRIES_11& entries_11,
6479 const ENTRIES_12& entries_12,
6480 const ENTRIES_13& entries_13,
6481 const ENTRIES_14& entries_14,
6482 const ENTRIES_15& entries_15,
6483 const ENTRIES_16& entries_16,
6484 const ENTRIES_17& entries_17,
6485 const ENTRIES_18& entries_18,
6486 const ENTRIES_19& entries_19,
6487 const ENTRIES_20& entries_20,
6488 const ENTRIES_21& entries_21,
6489 const ENTRIES_22& entries_22
6490 ) const
6491{
6492 builder->pushBack(key, (*this)(value));
6493 pushBackHelper(builder, entries_01,
6494 entries_02,
6495 entries_03,
6496 entries_04,
6497 entries_05,
6498 entries_06,
6499 entries_07,
6500 entries_08,
6501 entries_09,
6502 entries_10,
6503 entries_11,
6504 entries_12,
6505 entries_13,
6506 entries_14,
6507 entries_15,
6508 entries_16,
6509 entries_17,
6510 entries_18,
6511 entries_19,
6512 entries_20,
6513 entries_21,
6514 entries_22);
6515}
6516
6517template <typename TYPE, typename ENTRIES_01,
6518 typename ENTRIES_02,
6519 typename ENTRIES_03,
6520 typename ENTRIES_04,
6521 typename ENTRIES_05,
6522 typename ENTRIES_06,
6523 typename ENTRIES_07,
6524 typename ENTRIES_08,
6525 typename ENTRIES_09,
6526 typename ENTRIES_10,
6527 typename ENTRIES_11,
6528 typename ENTRIES_12,
6529 typename ENTRIES_13,
6530 typename ENTRIES_14,
6531 typename ENTRIES_15,
6532 typename ENTRIES_16,
6533 typename ENTRIES_17,
6534 typename ENTRIES_18,
6535 typename ENTRIES_19,
6536 typename ENTRIES_20,
6537 typename ENTRIES_21,
6538 typename ENTRIES_22,
6539 typename ENTRIES_23,
6540 typename ENTRIES_24>
6541inline
6542void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6543 const bslstl::StringRef& key,
6544 const TYPE& value,
6545 const ENTRIES_01& entries_01,
6546 const ENTRIES_02& entries_02,
6547 const ENTRIES_03& entries_03,
6548 const ENTRIES_04& entries_04,
6549 const ENTRIES_05& entries_05,
6550 const ENTRIES_06& entries_06,
6551 const ENTRIES_07& entries_07,
6552 const ENTRIES_08& entries_08,
6553 const ENTRIES_09& entries_09,
6554 const ENTRIES_10& entries_10,
6555 const ENTRIES_11& entries_11,
6556 const ENTRIES_12& entries_12,
6557 const ENTRIES_13& entries_13,
6558 const ENTRIES_14& entries_14,
6559 const ENTRIES_15& entries_15,
6560 const ENTRIES_16& entries_16,
6561 const ENTRIES_17& entries_17,
6562 const ENTRIES_18& entries_18,
6563 const ENTRIES_19& entries_19,
6564 const ENTRIES_20& entries_20,
6565 const ENTRIES_21& entries_21,
6566 const ENTRIES_22& entries_22,
6567 const ENTRIES_23& entries_23,
6568 const ENTRIES_24& entries_24
6569 ) const
6570{
6571 builder->pushBack(key, (*this)(value));
6572 pushBackHelper(builder, entries_01,
6573 entries_02,
6574 entries_03,
6575 entries_04,
6576 entries_05,
6577 entries_06,
6578 entries_07,
6579 entries_08,
6580 entries_09,
6581 entries_10,
6582 entries_11,
6583 entries_12,
6584 entries_13,
6585 entries_14,
6586 entries_15,
6587 entries_16,
6588 entries_17,
6589 entries_18,
6590 entries_19,
6591 entries_20,
6592 entries_21,
6593 entries_22,
6594 entries_23,
6595 entries_24);
6596}
6597
6598template <typename TYPE, typename ENTRIES_01,
6599 typename ENTRIES_02,
6600 typename ENTRIES_03,
6601 typename ENTRIES_04,
6602 typename ENTRIES_05,
6603 typename ENTRIES_06,
6604 typename ENTRIES_07,
6605 typename ENTRIES_08,
6606 typename ENTRIES_09,
6607 typename ENTRIES_10,
6608 typename ENTRIES_11,
6609 typename ENTRIES_12,
6610 typename ENTRIES_13,
6611 typename ENTRIES_14,
6612 typename ENTRIES_15,
6613 typename ENTRIES_16,
6614 typename ENTRIES_17,
6615 typename ENTRIES_18,
6616 typename ENTRIES_19,
6617 typename ENTRIES_20,
6618 typename ENTRIES_21,
6619 typename ENTRIES_22,
6620 typename ENTRIES_23,
6621 typename ENTRIES_24,
6622 typename ENTRIES_25,
6623 typename ENTRIES_26>
6624inline
6625void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6626 const bslstl::StringRef& key,
6627 const TYPE& value,
6628 const ENTRIES_01& entries_01,
6629 const ENTRIES_02& entries_02,
6630 const ENTRIES_03& entries_03,
6631 const ENTRIES_04& entries_04,
6632 const ENTRIES_05& entries_05,
6633 const ENTRIES_06& entries_06,
6634 const ENTRIES_07& entries_07,
6635 const ENTRIES_08& entries_08,
6636 const ENTRIES_09& entries_09,
6637 const ENTRIES_10& entries_10,
6638 const ENTRIES_11& entries_11,
6639 const ENTRIES_12& entries_12,
6640 const ENTRIES_13& entries_13,
6641 const ENTRIES_14& entries_14,
6642 const ENTRIES_15& entries_15,
6643 const ENTRIES_16& entries_16,
6644 const ENTRIES_17& entries_17,
6645 const ENTRIES_18& entries_18,
6646 const ENTRIES_19& entries_19,
6647 const ENTRIES_20& entries_20,
6648 const ENTRIES_21& entries_21,
6649 const ENTRIES_22& entries_22,
6650 const ENTRIES_23& entries_23,
6651 const ENTRIES_24& entries_24,
6652 const ENTRIES_25& entries_25,
6653 const ENTRIES_26& entries_26
6654 ) const
6655{
6656 builder->pushBack(key, (*this)(value));
6657 pushBackHelper(builder, entries_01,
6658 entries_02,
6659 entries_03,
6660 entries_04,
6661 entries_05,
6662 entries_06,
6663 entries_07,
6664 entries_08,
6665 entries_09,
6666 entries_10,
6667 entries_11,
6668 entries_12,
6669 entries_13,
6670 entries_14,
6671 entries_15,
6672 entries_16,
6673 entries_17,
6674 entries_18,
6675 entries_19,
6676 entries_20,
6677 entries_21,
6678 entries_22,
6679 entries_23,
6680 entries_24,
6681 entries_25,
6682 entries_26);
6683}
6684
6685template <typename TYPE, typename ENTRIES_01,
6686 typename ENTRIES_02,
6687 typename ENTRIES_03,
6688 typename ENTRIES_04,
6689 typename ENTRIES_05,
6690 typename ENTRIES_06,
6691 typename ENTRIES_07,
6692 typename ENTRIES_08,
6693 typename ENTRIES_09,
6694 typename ENTRIES_10,
6695 typename ENTRIES_11,
6696 typename ENTRIES_12,
6697 typename ENTRIES_13,
6698 typename ENTRIES_14,
6699 typename ENTRIES_15,
6700 typename ENTRIES_16,
6701 typename ENTRIES_17,
6702 typename ENTRIES_18,
6703 typename ENTRIES_19,
6704 typename ENTRIES_20,
6705 typename ENTRIES_21,
6706 typename ENTRIES_22,
6707 typename ENTRIES_23,
6708 typename ENTRIES_24,
6709 typename ENTRIES_25,
6710 typename ENTRIES_26,
6711 typename ENTRIES_27,
6712 typename ENTRIES_28>
6713inline
6714void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6715 const bslstl::StringRef& key,
6716 const TYPE& value,
6717 const ENTRIES_01& entries_01,
6718 const ENTRIES_02& entries_02,
6719 const ENTRIES_03& entries_03,
6720 const ENTRIES_04& entries_04,
6721 const ENTRIES_05& entries_05,
6722 const ENTRIES_06& entries_06,
6723 const ENTRIES_07& entries_07,
6724 const ENTRIES_08& entries_08,
6725 const ENTRIES_09& entries_09,
6726 const ENTRIES_10& entries_10,
6727 const ENTRIES_11& entries_11,
6728 const ENTRIES_12& entries_12,
6729 const ENTRIES_13& entries_13,
6730 const ENTRIES_14& entries_14,
6731 const ENTRIES_15& entries_15,
6732 const ENTRIES_16& entries_16,
6733 const ENTRIES_17& entries_17,
6734 const ENTRIES_18& entries_18,
6735 const ENTRIES_19& entries_19,
6736 const ENTRIES_20& entries_20,
6737 const ENTRIES_21& entries_21,
6738 const ENTRIES_22& entries_22,
6739 const ENTRIES_23& entries_23,
6740 const ENTRIES_24& entries_24,
6741 const ENTRIES_25& entries_25,
6742 const ENTRIES_26& entries_26,
6743 const ENTRIES_27& entries_27,
6744 const ENTRIES_28& entries_28
6745 ) const
6746{
6747 builder->pushBack(key, (*this)(value));
6748 pushBackHelper(builder, entries_01,
6749 entries_02,
6750 entries_03,
6751 entries_04,
6752 entries_05,
6753 entries_06,
6754 entries_07,
6755 entries_08,
6756 entries_09,
6757 entries_10,
6758 entries_11,
6759 entries_12,
6760 entries_13,
6761 entries_14,
6762 entries_15,
6763 entries_16,
6764 entries_17,
6765 entries_18,
6766 entries_19,
6767 entries_20,
6768 entries_21,
6769 entries_22,
6770 entries_23,
6771 entries_24,
6772 entries_25,
6773 entries_26,
6774 entries_27,
6775 entries_28);
6776}
6777
6778template <typename TYPE, typename ENTRIES_01,
6779 typename ENTRIES_02,
6780 typename ENTRIES_03,
6781 typename ENTRIES_04,
6782 typename ENTRIES_05,
6783 typename ENTRIES_06,
6784 typename ENTRIES_07,
6785 typename ENTRIES_08,
6786 typename ENTRIES_09,
6787 typename ENTRIES_10,
6788 typename ENTRIES_11,
6789 typename ENTRIES_12,
6790 typename ENTRIES_13,
6791 typename ENTRIES_14,
6792 typename ENTRIES_15,
6793 typename ENTRIES_16,
6794 typename ENTRIES_17,
6795 typename ENTRIES_18,
6796 typename ENTRIES_19,
6797 typename ENTRIES_20,
6798 typename ENTRIES_21,
6799 typename ENTRIES_22,
6800 typename ENTRIES_23,
6801 typename ENTRIES_24,
6802 typename ENTRIES_25,
6803 typename ENTRIES_26,
6804 typename ENTRIES_27,
6805 typename ENTRIES_28,
6806 typename ENTRIES_29,
6807 typename ENTRIES_30>
6808inline
6809void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6810 const bslstl::StringRef& key,
6811 const TYPE& value,
6812 const ENTRIES_01& entries_01,
6813 const ENTRIES_02& entries_02,
6814 const ENTRIES_03& entries_03,
6815 const ENTRIES_04& entries_04,
6816 const ENTRIES_05& entries_05,
6817 const ENTRIES_06& entries_06,
6818 const ENTRIES_07& entries_07,
6819 const ENTRIES_08& entries_08,
6820 const ENTRIES_09& entries_09,
6821 const ENTRIES_10& entries_10,
6822 const ENTRIES_11& entries_11,
6823 const ENTRIES_12& entries_12,
6824 const ENTRIES_13& entries_13,
6825 const ENTRIES_14& entries_14,
6826 const ENTRIES_15& entries_15,
6827 const ENTRIES_16& entries_16,
6828 const ENTRIES_17& entries_17,
6829 const ENTRIES_18& entries_18,
6830 const ENTRIES_19& entries_19,
6831 const ENTRIES_20& entries_20,
6832 const ENTRIES_21& entries_21,
6833 const ENTRIES_22& entries_22,
6834 const ENTRIES_23& entries_23,
6835 const ENTRIES_24& entries_24,
6836 const ENTRIES_25& entries_25,
6837 const ENTRIES_26& entries_26,
6838 const ENTRIES_27& entries_27,
6839 const ENTRIES_28& entries_28,
6840 const ENTRIES_29& entries_29,
6841 const ENTRIES_30& entries_30
6842 ) const
6843{
6844 builder->pushBack(key, (*this)(value));
6845 pushBackHelper(builder, entries_01,
6846 entries_02,
6847 entries_03,
6848 entries_04,
6849 entries_05,
6850 entries_06,
6851 entries_07,
6852 entries_08,
6853 entries_09,
6854 entries_10,
6855 entries_11,
6856 entries_12,
6857 entries_13,
6858 entries_14,
6859 entries_15,
6860 entries_16,
6861 entries_17,
6862 entries_18,
6863 entries_19,
6864 entries_20,
6865 entries_21,
6866 entries_22,
6867 entries_23,
6868 entries_24,
6869 entries_25,
6870 entries_26,
6871 entries_27,
6872 entries_28,
6873 entries_29,
6874 entries_30);
6875}
6876
6877template <typename TYPE, typename ENTRIES_01,
6878 typename ENTRIES_02,
6879 typename ENTRIES_03,
6880 typename ENTRIES_04,
6881 typename ENTRIES_05,
6882 typename ENTRIES_06,
6883 typename ENTRIES_07,
6884 typename ENTRIES_08,
6885 typename ENTRIES_09,
6886 typename ENTRIES_10,
6887 typename ENTRIES_11,
6888 typename ENTRIES_12,
6889 typename ENTRIES_13,
6890 typename ENTRIES_14,
6891 typename ENTRIES_15,
6892 typename ENTRIES_16,
6893 typename ENTRIES_17,
6894 typename ENTRIES_18,
6895 typename ENTRIES_19,
6896 typename ENTRIES_20,
6897 typename ENTRIES_21,
6898 typename ENTRIES_22,
6899 typename ENTRIES_23,
6900 typename ENTRIES_24,
6901 typename ENTRIES_25,
6902 typename ENTRIES_26,
6903 typename ENTRIES_27,
6904 typename ENTRIES_28,
6905 typename ENTRIES_29,
6906 typename ENTRIES_30,
6907 typename ENTRIES_31,
6908 typename ENTRIES_32>
6909inline
6910void DatumMaker::pushBackHelper(bdld::DatumMapOwningKeysBuilder *builder,
6911 const bslstl::StringRef& key,
6912 const TYPE& value,
6913 const ENTRIES_01& entries_01,
6914 const ENTRIES_02& entries_02,
6915 const ENTRIES_03& entries_03,
6916 const ENTRIES_04& entries_04,
6917 const ENTRIES_05& entries_05,
6918 const ENTRIES_06& entries_06,
6919 const ENTRIES_07& entries_07,
6920 const ENTRIES_08& entries_08,
6921 const ENTRIES_09& entries_09,
6922 const ENTRIES_10& entries_10,
6923 const ENTRIES_11& entries_11,
6924 const ENTRIES_12& entries_12,
6925 const ENTRIES_13& entries_13,
6926 const ENTRIES_14& entries_14,
6927 const ENTRIES_15& entries_15,
6928 const ENTRIES_16& entries_16,
6929 const ENTRIES_17& entries_17,
6930 const ENTRIES_18& entries_18,
6931 const ENTRIES_19& entries_19,
6932 const ENTRIES_20& entries_20,
6933 const ENTRIES_21& entries_21,
6934 const ENTRIES_22& entries_22,
6935 const ENTRIES_23& entries_23,
6936 const ENTRIES_24& entries_24,
6937 const ENTRIES_25& entries_25,
6938 const ENTRIES_26& entries_26,
6939 const ENTRIES_27& entries_27,
6940 const ENTRIES_28& entries_28,
6941 const ENTRIES_29& entries_29,
6942 const ENTRIES_30& entries_30,
6943 const ENTRIES_31& entries_31,
6944 const ENTRIES_32& entries_32
6945 ) const
6946{
6947 builder->pushBack(key, (*this)(value));
6948 pushBackHelper(builder, entries_01,
6949 entries_02,
6950 entries_03,
6951 entries_04,
6952 entries_05,
6953 entries_06,
6954 entries_07,
6955 entries_08,
6956 entries_09,
6957 entries_10,
6958 entries_11,
6959 entries_12,
6960 entries_13,
6961 entries_14,
6962 entries_15,
6963 entries_16,
6964 entries_17,
6965 entries_18,
6966 entries_19,
6967 entries_20,
6968 entries_21,
6969 entries_22,
6970 entries_23,
6971 entries_24,
6972 entries_25,
6973 entries_26,
6974 entries_27,
6975 entries_28,
6976 entries_29,
6977 entries_30,
6978 entries_31,
6979 entries_32);
6980}
6981
6982
6983template <typename TYPE>
6984inline
6985void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
6986 int key,
6987 const TYPE& value
6988 ) const
6989{
6990 builder->pushBack(key, (*this)(value));
6991 pushBackHelper(builder);
6992}
6993
6994template <typename TYPE, typename ENTRIES_01>
6995inline
6996void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
6997 int key,
6998 const TYPE& value,
6999 int key_01,
7000 const ENTRIES_01& entries_01
7001 ) const
7002{
7003 builder->pushBack(key, (*this)(value));
7004 pushBackHelper(builder, key_01, entries_01);
7005}
7006
7007template <typename TYPE, typename ENTRIES_01,
7008 typename ENTRIES_02>
7009inline
7010void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7011 int key,
7012 const TYPE& value,
7013 int key_01,
7014 const ENTRIES_01& entries_01,
7015 int key_02,
7016 const ENTRIES_02& entries_02
7017 ) const
7018{
7019 builder->pushBack(key, (*this)(value));
7020 pushBackHelper(builder, key_01, entries_01,
7021 key_02, entries_02);
7022}
7023
7024template <typename TYPE, typename ENTRIES_01,
7025 typename ENTRIES_02,
7026 typename ENTRIES_03>
7027inline
7028void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7029 int key,
7030 const TYPE& value,
7031 int key_01,
7032 const ENTRIES_01& entries_01,
7033 int key_02,
7034 const ENTRIES_02& entries_02,
7035 int key_03,
7036 const ENTRIES_03& entries_03
7037 ) const
7038{
7039 builder->pushBack(key, (*this)(value));
7040 pushBackHelper(builder, key_01, entries_01,
7041 key_02, entries_02,
7042 key_03, entries_03);
7043}
7044
7045template <typename TYPE, typename ENTRIES_01,
7046 typename ENTRIES_02,
7047 typename ENTRIES_03,
7048 typename ENTRIES_04>
7049inline
7050void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7051 int key,
7052 const TYPE& value,
7053 int key_01,
7054 const ENTRIES_01& entries_01,
7055 int key_02,
7056 const ENTRIES_02& entries_02,
7057 int key_03,
7058 const ENTRIES_03& entries_03,
7059 int key_04,
7060 const ENTRIES_04& entries_04
7061 ) const
7062{
7063 builder->pushBack(key, (*this)(value));
7064 pushBackHelper(builder, key_01, entries_01,
7065 key_02, entries_02,
7066 key_03, entries_03,
7067 key_04, entries_04);
7068}
7069
7070template <typename TYPE, typename ENTRIES_01,
7071 typename ENTRIES_02,
7072 typename ENTRIES_03,
7073 typename ENTRIES_04,
7074 typename ENTRIES_05>
7075inline
7076void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7077 int key,
7078 const TYPE& value,
7079 int key_01,
7080 const ENTRIES_01& entries_01,
7081 int key_02,
7082 const ENTRIES_02& entries_02,
7083 int key_03,
7084 const ENTRIES_03& entries_03,
7085 int key_04,
7086 const ENTRIES_04& entries_04,
7087 int key_05,
7088 const ENTRIES_05& entries_05
7089 ) const
7090{
7091 builder->pushBack(key, (*this)(value));
7092 pushBackHelper(builder, key_01, entries_01,
7093 key_02, entries_02,
7094 key_03, entries_03,
7095 key_04, entries_04,
7096 key_05, entries_05);
7097}
7098
7099template <typename TYPE, typename ENTRIES_01,
7100 typename ENTRIES_02,
7101 typename ENTRIES_03,
7102 typename ENTRIES_04,
7103 typename ENTRIES_05,
7104 typename ENTRIES_06>
7105inline
7106void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7107 int key,
7108 const TYPE& value,
7109 int key_01,
7110 const ENTRIES_01& entries_01,
7111 int key_02,
7112 const ENTRIES_02& entries_02,
7113 int key_03,
7114 const ENTRIES_03& entries_03,
7115 int key_04,
7116 const ENTRIES_04& entries_04,
7117 int key_05,
7118 const ENTRIES_05& entries_05,
7119 int key_06,
7120 const ENTRIES_06& entries_06
7121 ) const
7122{
7123 builder->pushBack(key, (*this)(value));
7124 pushBackHelper(builder, key_01, entries_01,
7125 key_02, entries_02,
7126 key_03, entries_03,
7127 key_04, entries_04,
7128 key_05, entries_05,
7129 key_06, entries_06);
7130}
7131
7132template <typename TYPE, typename ENTRIES_01,
7133 typename ENTRIES_02,
7134 typename ENTRIES_03,
7135 typename ENTRIES_04,
7136 typename ENTRIES_05,
7137 typename ENTRIES_06,
7138 typename ENTRIES_07>
7139inline
7140void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7141 int key,
7142 const TYPE& value,
7143 int key_01,
7144 const ENTRIES_01& entries_01,
7145 int key_02,
7146 const ENTRIES_02& entries_02,
7147 int key_03,
7148 const ENTRIES_03& entries_03,
7149 int key_04,
7150 const ENTRIES_04& entries_04,
7151 int key_05,
7152 const ENTRIES_05& entries_05,
7153 int key_06,
7154 const ENTRIES_06& entries_06,
7155 int key_07,
7156 const ENTRIES_07& entries_07
7157 ) const
7158{
7159 builder->pushBack(key, (*this)(value));
7160 pushBackHelper(builder, key_01, entries_01,
7161 key_02, entries_02,
7162 key_03, entries_03,
7163 key_04, entries_04,
7164 key_05, entries_05,
7165 key_06, entries_06,
7166 key_07, entries_07);
7167}
7168
7169template <typename TYPE, typename ENTRIES_01,
7170 typename ENTRIES_02,
7171 typename ENTRIES_03,
7172 typename ENTRIES_04,
7173 typename ENTRIES_05,
7174 typename ENTRIES_06,
7175 typename ENTRIES_07,
7176 typename ENTRIES_08>
7177inline
7178void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7179 int key,
7180 const TYPE& value,
7181 int key_01,
7182 const ENTRIES_01& entries_01,
7183 int key_02,
7184 const ENTRIES_02& entries_02,
7185 int key_03,
7186 const ENTRIES_03& entries_03,
7187 int key_04,
7188 const ENTRIES_04& entries_04,
7189 int key_05,
7190 const ENTRIES_05& entries_05,
7191 int key_06,
7192 const ENTRIES_06& entries_06,
7193 int key_07,
7194 const ENTRIES_07& entries_07,
7195 int key_08,
7196 const ENTRIES_08& entries_08
7197 ) const
7198{
7199 builder->pushBack(key, (*this)(value));
7200 pushBackHelper(builder, key_01, entries_01,
7201 key_02, entries_02,
7202 key_03, entries_03,
7203 key_04, entries_04,
7204 key_05, entries_05,
7205 key_06, entries_06,
7206 key_07, entries_07,
7207 key_08, entries_08);
7208}
7209
7210template <typename TYPE, typename ENTRIES_01,
7211 typename ENTRIES_02,
7212 typename ENTRIES_03,
7213 typename ENTRIES_04,
7214 typename ENTRIES_05,
7215 typename ENTRIES_06,
7216 typename ENTRIES_07,
7217 typename ENTRIES_08,
7218 typename ENTRIES_09>
7219inline
7220void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7221 int key,
7222 const TYPE& value,
7223 int key_01,
7224 const ENTRIES_01& entries_01,
7225 int key_02,
7226 const ENTRIES_02& entries_02,
7227 int key_03,
7228 const ENTRIES_03& entries_03,
7229 int key_04,
7230 const ENTRIES_04& entries_04,
7231 int key_05,
7232 const ENTRIES_05& entries_05,
7233 int key_06,
7234 const ENTRIES_06& entries_06,
7235 int key_07,
7236 const ENTRIES_07& entries_07,
7237 int key_08,
7238 const ENTRIES_08& entries_08,
7239 int key_09,
7240 const ENTRIES_09& entries_09
7241 ) const
7242{
7243 builder->pushBack(key, (*this)(value));
7244 pushBackHelper(builder, key_01, entries_01,
7245 key_02, entries_02,
7246 key_03, entries_03,
7247 key_04, entries_04,
7248 key_05, entries_05,
7249 key_06, entries_06,
7250 key_07, entries_07,
7251 key_08, entries_08,
7252 key_09, entries_09);
7253}
7254
7255template <typename TYPE, typename ENTRIES_01,
7256 typename ENTRIES_02,
7257 typename ENTRIES_03,
7258 typename ENTRIES_04,
7259 typename ENTRIES_05,
7260 typename ENTRIES_06,
7261 typename ENTRIES_07,
7262 typename ENTRIES_08,
7263 typename ENTRIES_09,
7264 typename ENTRIES_10>
7265inline
7266void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7267 int key,
7268 const TYPE& value,
7269 int key_01,
7270 const ENTRIES_01& entries_01,
7271 int key_02,
7272 const ENTRIES_02& entries_02,
7273 int key_03,
7274 const ENTRIES_03& entries_03,
7275 int key_04,
7276 const ENTRIES_04& entries_04,
7277 int key_05,
7278 const ENTRIES_05& entries_05,
7279 int key_06,
7280 const ENTRIES_06& entries_06,
7281 int key_07,
7282 const ENTRIES_07& entries_07,
7283 int key_08,
7284 const ENTRIES_08& entries_08,
7285 int key_09,
7286 const ENTRIES_09& entries_09,
7287 int key_10,
7288 const ENTRIES_10& entries_10
7289 ) const
7290{
7291 builder->pushBack(key, (*this)(value));
7292 pushBackHelper(builder, key_01, entries_01,
7293 key_02, entries_02,
7294 key_03, entries_03,
7295 key_04, entries_04,
7296 key_05, entries_05,
7297 key_06, entries_06,
7298 key_07, entries_07,
7299 key_08, entries_08,
7300 key_09, entries_09,
7301 key_10, entries_10);
7302}
7303
7304template <typename TYPE, typename ENTRIES_01,
7305 typename ENTRIES_02,
7306 typename ENTRIES_03,
7307 typename ENTRIES_04,
7308 typename ENTRIES_05,
7309 typename ENTRIES_06,
7310 typename ENTRIES_07,
7311 typename ENTRIES_08,
7312 typename ENTRIES_09,
7313 typename ENTRIES_10,
7314 typename ENTRIES_11>
7315inline
7316void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7317 int key,
7318 const TYPE& value,
7319 int key_01,
7320 const ENTRIES_01& entries_01,
7321 int key_02,
7322 const ENTRIES_02& entries_02,
7323 int key_03,
7324 const ENTRIES_03& entries_03,
7325 int key_04,
7326 const ENTRIES_04& entries_04,
7327 int key_05,
7328 const ENTRIES_05& entries_05,
7329 int key_06,
7330 const ENTRIES_06& entries_06,
7331 int key_07,
7332 const ENTRIES_07& entries_07,
7333 int key_08,
7334 const ENTRIES_08& entries_08,
7335 int key_09,
7336 const ENTRIES_09& entries_09,
7337 int key_10,
7338 const ENTRIES_10& entries_10,
7339 int key_11,
7340 const ENTRIES_11& entries_11
7341 ) const
7342{
7343 builder->pushBack(key, (*this)(value));
7344 pushBackHelper(builder, key_01, entries_01,
7345 key_02, entries_02,
7346 key_03, entries_03,
7347 key_04, entries_04,
7348 key_05, entries_05,
7349 key_06, entries_06,
7350 key_07, entries_07,
7351 key_08, entries_08,
7352 key_09, entries_09,
7353 key_10, entries_10,
7354 key_11, entries_11);
7355}
7356
7357template <typename TYPE, typename ENTRIES_01,
7358 typename ENTRIES_02,
7359 typename ENTRIES_03,
7360 typename ENTRIES_04,
7361 typename ENTRIES_05,
7362 typename ENTRIES_06,
7363 typename ENTRIES_07,
7364 typename ENTRIES_08,
7365 typename ENTRIES_09,
7366 typename ENTRIES_10,
7367 typename ENTRIES_11,
7368 typename ENTRIES_12>
7369inline
7370void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7371 int key,
7372 const TYPE& value,
7373 int key_01,
7374 const ENTRIES_01& entries_01,
7375 int key_02,
7376 const ENTRIES_02& entries_02,
7377 int key_03,
7378 const ENTRIES_03& entries_03,
7379 int key_04,
7380 const ENTRIES_04& entries_04,
7381 int key_05,
7382 const ENTRIES_05& entries_05,
7383 int key_06,
7384 const ENTRIES_06& entries_06,
7385 int key_07,
7386 const ENTRIES_07& entries_07,
7387 int key_08,
7388 const ENTRIES_08& entries_08,
7389 int key_09,
7390 const ENTRIES_09& entries_09,
7391 int key_10,
7392 const ENTRIES_10& entries_10,
7393 int key_11,
7394 const ENTRIES_11& entries_11,
7395 int key_12,
7396 const ENTRIES_12& entries_12
7397 ) const
7398{
7399 builder->pushBack(key, (*this)(value));
7400 pushBackHelper(builder, key_01, entries_01,
7401 key_02, entries_02,
7402 key_03, entries_03,
7403 key_04, entries_04,
7404 key_05, entries_05,
7405 key_06, entries_06,
7406 key_07, entries_07,
7407 key_08, entries_08,
7408 key_09, entries_09,
7409 key_10, entries_10,
7410 key_11, entries_11,
7411 key_12, entries_12);
7412}
7413
7414template <typename TYPE, typename ENTRIES_01,
7415 typename ENTRIES_02,
7416 typename ENTRIES_03,
7417 typename ENTRIES_04,
7418 typename ENTRIES_05,
7419 typename ENTRIES_06,
7420 typename ENTRIES_07,
7421 typename ENTRIES_08,
7422 typename ENTRIES_09,
7423 typename ENTRIES_10,
7424 typename ENTRIES_11,
7425 typename ENTRIES_12,
7426 typename ENTRIES_13>
7427inline
7428void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7429 int key,
7430 const TYPE& value,
7431 int key_01,
7432 const ENTRIES_01& entries_01,
7433 int key_02,
7434 const ENTRIES_02& entries_02,
7435 int key_03,
7436 const ENTRIES_03& entries_03,
7437 int key_04,
7438 const ENTRIES_04& entries_04,
7439 int key_05,
7440 const ENTRIES_05& entries_05,
7441 int key_06,
7442 const ENTRIES_06& entries_06,
7443 int key_07,
7444 const ENTRIES_07& entries_07,
7445 int key_08,
7446 const ENTRIES_08& entries_08,
7447 int key_09,
7448 const ENTRIES_09& entries_09,
7449 int key_10,
7450 const ENTRIES_10& entries_10,
7451 int key_11,
7452 const ENTRIES_11& entries_11,
7453 int key_12,
7454 const ENTRIES_12& entries_12,
7455 int key_13,
7456 const ENTRIES_13& entries_13
7457 ) const
7458{
7459 builder->pushBack(key, (*this)(value));
7460 pushBackHelper(builder, key_01, entries_01,
7461 key_02, entries_02,
7462 key_03, entries_03,
7463 key_04, entries_04,
7464 key_05, entries_05,
7465 key_06, entries_06,
7466 key_07, entries_07,
7467 key_08, entries_08,
7468 key_09, entries_09,
7469 key_10, entries_10,
7470 key_11, entries_11,
7471 key_12, entries_12,
7472 key_13, entries_13);
7473}
7474
7475template <typename TYPE, typename ENTRIES_01,
7476 typename ENTRIES_02,
7477 typename ENTRIES_03,
7478 typename ENTRIES_04,
7479 typename ENTRIES_05,
7480 typename ENTRIES_06,
7481 typename ENTRIES_07,
7482 typename ENTRIES_08,
7483 typename ENTRIES_09,
7484 typename ENTRIES_10,
7485 typename ENTRIES_11,
7486 typename ENTRIES_12,
7487 typename ENTRIES_13,
7488 typename ENTRIES_14>
7489inline
7490void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7491 int key,
7492 const TYPE& value,
7493 int key_01,
7494 const ENTRIES_01& entries_01,
7495 int key_02,
7496 const ENTRIES_02& entries_02,
7497 int key_03,
7498 const ENTRIES_03& entries_03,
7499 int key_04,
7500 const ENTRIES_04& entries_04,
7501 int key_05,
7502 const ENTRIES_05& entries_05,
7503 int key_06,
7504 const ENTRIES_06& entries_06,
7505 int key_07,
7506 const ENTRIES_07& entries_07,
7507 int key_08,
7508 const ENTRIES_08& entries_08,
7509 int key_09,
7510 const ENTRIES_09& entries_09,
7511 int key_10,
7512 const ENTRIES_10& entries_10,
7513 int key_11,
7514 const ENTRIES_11& entries_11,
7515 int key_12,
7516 const ENTRIES_12& entries_12,
7517 int key_13,
7518 const ENTRIES_13& entries_13,
7519 int key_14,
7520 const ENTRIES_14& entries_14
7521 ) const
7522{
7523 builder->pushBack(key, (*this)(value));
7524 pushBackHelper(builder, key_01, entries_01,
7525 key_02, entries_02,
7526 key_03, entries_03,
7527 key_04, entries_04,
7528 key_05, entries_05,
7529 key_06, entries_06,
7530 key_07, entries_07,
7531 key_08, entries_08,
7532 key_09, entries_09,
7533 key_10, entries_10,
7534 key_11, entries_11,
7535 key_12, entries_12,
7536 key_13, entries_13,
7537 key_14, entries_14);
7538}
7539
7540template <typename TYPE, typename ENTRIES_01,
7541 typename ENTRIES_02,
7542 typename ENTRIES_03,
7543 typename ENTRIES_04,
7544 typename ENTRIES_05,
7545 typename ENTRIES_06,
7546 typename ENTRIES_07,
7547 typename ENTRIES_08,
7548 typename ENTRIES_09,
7549 typename ENTRIES_10,
7550 typename ENTRIES_11,
7551 typename ENTRIES_12,
7552 typename ENTRIES_13,
7553 typename ENTRIES_14,
7554 typename ENTRIES_15>
7555inline
7556void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7557 int key,
7558 const TYPE& value,
7559 int key_01,
7560 const ENTRIES_01& entries_01,
7561 int key_02,
7562 const ENTRIES_02& entries_02,
7563 int key_03,
7564 const ENTRIES_03& entries_03,
7565 int key_04,
7566 const ENTRIES_04& entries_04,
7567 int key_05,
7568 const ENTRIES_05& entries_05,
7569 int key_06,
7570 const ENTRIES_06& entries_06,
7571 int key_07,
7572 const ENTRIES_07& entries_07,
7573 int key_08,
7574 const ENTRIES_08& entries_08,
7575 int key_09,
7576 const ENTRIES_09& entries_09,
7577 int key_10,
7578 const ENTRIES_10& entries_10,
7579 int key_11,
7580 const ENTRIES_11& entries_11,
7581 int key_12,
7582 const ENTRIES_12& entries_12,
7583 int key_13,
7584 const ENTRIES_13& entries_13,
7585 int key_14,
7586 const ENTRIES_14& entries_14,
7587 int key_15,
7588 const ENTRIES_15& entries_15
7589 ) const
7590{
7591 builder->pushBack(key, (*this)(value));
7592 pushBackHelper(builder, key_01, entries_01,
7593 key_02, entries_02,
7594 key_03, entries_03,
7595 key_04, entries_04,
7596 key_05, entries_05,
7597 key_06, entries_06,
7598 key_07, entries_07,
7599 key_08, entries_08,
7600 key_09, entries_09,
7601 key_10, entries_10,
7602 key_11, entries_11,
7603 key_12, entries_12,
7604 key_13, entries_13,
7605 key_14, entries_14,
7606 key_15, entries_15);
7607}
7608
7609template <typename TYPE, typename ENTRIES_01,
7610 typename ENTRIES_02,
7611 typename ENTRIES_03,
7612 typename ENTRIES_04,
7613 typename ENTRIES_05,
7614 typename ENTRIES_06,
7615 typename ENTRIES_07,
7616 typename ENTRIES_08,
7617 typename ENTRIES_09,
7618 typename ENTRIES_10,
7619 typename ENTRIES_11,
7620 typename ENTRIES_12,
7621 typename ENTRIES_13,
7622 typename ENTRIES_14,
7623 typename ENTRIES_15,
7624 typename ENTRIES_16>
7625inline
7626void DatumMaker::pushBackHelper(bdld::DatumIntMapBuilder *builder,
7627 int key,
7628 const TYPE& value,
7629 int key_01,
7630 const ENTRIES_01& entries_01,
7631 int key_02,
7632 const ENTRIES_02& entries_02,
7633 int key_03,
7634 const ENTRIES_03& entries_03,
7635 int key_04,
7636 const ENTRIES_04& entries_04,
7637 int key_05,
7638 const ENTRIES_05& entries_05,
7639 int key_06,
7640 const ENTRIES_06& entries_06,
7641 int key_07,
7642 const ENTRIES_07& entries_07,
7643 int key_08,
7644 const ENTRIES_08& entries_08,
7645 int key_09,
7646 const ENTRIES_09& entries_09,
7647 int key_10,
7648 const ENTRIES_10& entries_10,
7649 int key_11,
7650 const ENTRIES_11& entries_11,
7651 int key_12,
7652 const ENTRIES_12& entries_12,
7653 int key_13,
7654 const ENTRIES_13& entries_13,
7655 int key_14,
7656 const ENTRIES_14& entries_14,
7657 int key_15,
7658 const ENTRIES_15& entries_15,
7659 int key_16,
7660 const ENTRIES_16& entries_16
7661 ) const
7662{
7663 builder->pushBack(key, (*this)(value));
7664 pushBackHelper(builder, key_01, entries_01,
7665 key_02, entries_02,
7666 key_03, entries_03,
7667 key_04, entries_04,
7668 key_05, entries_05,
7669 key_06, entries_06,
7670 key_07, entries_07,
7671 key_08, entries_08,
7672 key_09, entries_09,
7673 key_10, entries_10,
7674 key_11, entries_11,
7675 key_12, entries_12,
7676 key_13, entries_13,
7677 key_14, entries_14,
7678 key_15, entries_15,
7679 key_16, entries_16);
7680}
7681
7682#endif
7683
7684// CREATORS
7685inline
7686DatumMaker::DatumMaker(const AllocatorType& allocator)
7687: d_allocator(allocator)
7688{
7689}
7690
7691// ACCESSORS
7692inline
7697
7698inline
7700{
7701 return d_allocator;
7702}
7703
7704inline
7709
7710inline
7712{
7713 return (*this)();
7714}
7715
7716inline
7718{
7719 return bdld::Datum::createInteger(value);
7720}
7721
7722inline
7724{
7725 return bdld::Datum::createDouble(value);
7726}
7727
7728inline
7730{
7731 return bdld::Datum::copyString(value, d_allocator);
7732}
7733
7734inline
7735bdld::Datum DatumMaker::operator()(const char *value) const
7736{
7737 return (*this)(bslstl::StringRef(value));
7738}
7739
7740inline
7742{
7743 return bdld::Datum::createBoolean(value);
7744}
7745
7746inline
7748{
7749 return bdld::Datum::createError(value.code(),
7750 value.message(),
7751 d_allocator);
7752}
7753
7754inline
7756{
7757 return bdld::Datum::createDate(value);
7758}
7759
7760inline
7762{
7763 return bdld::Datum::createTime(value);
7764}
7765
7766inline
7768{
7769 return bdld::Datum::createDatetime(value, d_allocator);
7770}
7771
7772inline
7774{
7775 return bdld::Datum::createDatetimeInterval(value, d_allocator);
7776}
7777
7778inline
7780{
7781 return bdld::Datum::createDecimal64(value, d_allocator);
7782}
7783
7784inline
7786{
7787 return bdld::Datum::createInteger64(value, d_allocator);
7788}
7789
7790inline
7792{
7793 return bdld::Datum::createUdt(value.data(), value.type());
7794}
7795
7796inline
7798{
7799 return value;
7800}
7801
7802inline
7804{
7805 return bdld::Datum::createArrayReference(value, d_allocator);
7806}
7807
7808inline
7810 int size) const
7811{
7812 return (*this)(bdld::DatumArrayRef(elements, size));
7813}
7814
7815inline
7817{
7818 return bdld::Datum::adoptMap(value);
7819}
7820
7821inline
7823 const bdld::DatumMutableIntMapRef& value) const
7824{
7825 return bdld::Datum::adoptIntMap(value);
7826}
7827
7828template <class TYPE>
7829inline
7831 const bdlb::NullableValue<TYPE>& value) const
7832{
7833 return value.isNull() ? (*this)() : (*this)(value.value());
7834}
7835
7836
7837inline
7838bdld::Datum DatumMaker::bin(const void *pointer, bsl::size_t size) const
7839{
7840 return bdld::Datum::copyBinary(pointer, size, d_allocator);
7841}
7842
7843#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
7844template <typename... ELEMENTS>
7845inline
7846bdld::Datum DatumMaker::a(const ELEMENTS&... elements) const
7847{
7848 const int numElements = sizeof...(ELEMENTS);
7849 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7850 pushBackHelper(&builder, elements...);
7851 return builder.commit();
7852}
7853#else
7854inline
7856{
7857 const int numElements = 0u;
7858 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7859 pushBackHelper(&builder);
7860 return builder.commit();
7861}
7862
7863template <typename ELEMENTS_01>
7864inline
7865bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01
7866 ) const
7867{
7868 const int numElements = 1u;
7869 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7870 pushBackHelper(&builder, elements_01);
7871 return builder.commit();
7872}
7873
7874template <typename ELEMENTS_01,
7875 typename ELEMENTS_02>
7876inline
7877bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7878 const ELEMENTS_02& elements_02
7879 ) const
7880{
7881 const int numElements = 2u;
7882 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7883 pushBackHelper(&builder, elements_01,
7884 elements_02);
7885 return builder.commit();
7886}
7887
7888template <typename ELEMENTS_01,
7889 typename ELEMENTS_02,
7890 typename ELEMENTS_03>
7891inline
7892bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7893 const ELEMENTS_02& elements_02,
7894 const ELEMENTS_03& elements_03
7895 ) const
7896{
7897 const int numElements = 3u;
7898 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7899 pushBackHelper(&builder, elements_01,
7900 elements_02,
7901 elements_03);
7902 return builder.commit();
7903}
7904
7905template <typename ELEMENTS_01,
7906 typename ELEMENTS_02,
7907 typename ELEMENTS_03,
7908 typename ELEMENTS_04>
7909inline
7910bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7911 const ELEMENTS_02& elements_02,
7912 const ELEMENTS_03& elements_03,
7913 const ELEMENTS_04& elements_04
7914 ) const
7915{
7916 const int numElements = 4u;
7917 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7918 pushBackHelper(&builder, elements_01,
7919 elements_02,
7920 elements_03,
7921 elements_04);
7922 return builder.commit();
7923}
7924
7925template <typename ELEMENTS_01,
7926 typename ELEMENTS_02,
7927 typename ELEMENTS_03,
7928 typename ELEMENTS_04,
7929 typename ELEMENTS_05>
7930inline
7931bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7932 const ELEMENTS_02& elements_02,
7933 const ELEMENTS_03& elements_03,
7934 const ELEMENTS_04& elements_04,
7935 const ELEMENTS_05& elements_05
7936 ) const
7937{
7938 const int numElements = 5u;
7939 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7940 pushBackHelper(&builder, elements_01,
7941 elements_02,
7942 elements_03,
7943 elements_04,
7944 elements_05);
7945 return builder.commit();
7946}
7947
7948template <typename ELEMENTS_01,
7949 typename ELEMENTS_02,
7950 typename ELEMENTS_03,
7951 typename ELEMENTS_04,
7952 typename ELEMENTS_05,
7953 typename ELEMENTS_06>
7954inline
7955bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7956 const ELEMENTS_02& elements_02,
7957 const ELEMENTS_03& elements_03,
7958 const ELEMENTS_04& elements_04,
7959 const ELEMENTS_05& elements_05,
7960 const ELEMENTS_06& elements_06
7961 ) const
7962{
7963 const int numElements = 6u;
7964 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7965 pushBackHelper(&builder, elements_01,
7966 elements_02,
7967 elements_03,
7968 elements_04,
7969 elements_05,
7970 elements_06);
7971 return builder.commit();
7972}
7973
7974template <typename ELEMENTS_01,
7975 typename ELEMENTS_02,
7976 typename ELEMENTS_03,
7977 typename ELEMENTS_04,
7978 typename ELEMENTS_05,
7979 typename ELEMENTS_06,
7980 typename ELEMENTS_07>
7981inline
7982bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
7983 const ELEMENTS_02& elements_02,
7984 const ELEMENTS_03& elements_03,
7985 const ELEMENTS_04& elements_04,
7986 const ELEMENTS_05& elements_05,
7987 const ELEMENTS_06& elements_06,
7988 const ELEMENTS_07& elements_07
7989 ) const
7990{
7991 const int numElements = 7u;
7992 bdld::DatumArrayBuilder builder(numElements, d_allocator);
7993 pushBackHelper(&builder, elements_01,
7994 elements_02,
7995 elements_03,
7996 elements_04,
7997 elements_05,
7998 elements_06,
7999 elements_07);
8000 return builder.commit();
8001}
8002
8003template <typename ELEMENTS_01,
8004 typename ELEMENTS_02,
8005 typename ELEMENTS_03,
8006 typename ELEMENTS_04,
8007 typename ELEMENTS_05,
8008 typename ELEMENTS_06,
8009 typename ELEMENTS_07,
8010 typename ELEMENTS_08>
8011inline
8012bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8013 const ELEMENTS_02& elements_02,
8014 const ELEMENTS_03& elements_03,
8015 const ELEMENTS_04& elements_04,
8016 const ELEMENTS_05& elements_05,
8017 const ELEMENTS_06& elements_06,
8018 const ELEMENTS_07& elements_07,
8019 const ELEMENTS_08& elements_08
8020 ) const
8021{
8022 const int numElements = 8u;
8023 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8024 pushBackHelper(&builder, elements_01,
8025 elements_02,
8026 elements_03,
8027 elements_04,
8028 elements_05,
8029 elements_06,
8030 elements_07,
8031 elements_08);
8032 return builder.commit();
8033}
8034
8035template <typename ELEMENTS_01,
8036 typename ELEMENTS_02,
8037 typename ELEMENTS_03,
8038 typename ELEMENTS_04,
8039 typename ELEMENTS_05,
8040 typename ELEMENTS_06,
8041 typename ELEMENTS_07,
8042 typename ELEMENTS_08,
8043 typename ELEMENTS_09>
8044inline
8045bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8046 const ELEMENTS_02& elements_02,
8047 const ELEMENTS_03& elements_03,
8048 const ELEMENTS_04& elements_04,
8049 const ELEMENTS_05& elements_05,
8050 const ELEMENTS_06& elements_06,
8051 const ELEMENTS_07& elements_07,
8052 const ELEMENTS_08& elements_08,
8053 const ELEMENTS_09& elements_09
8054 ) const
8055{
8056 const int numElements = 9u;
8057 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8058 pushBackHelper(&builder, elements_01,
8059 elements_02,
8060 elements_03,
8061 elements_04,
8062 elements_05,
8063 elements_06,
8064 elements_07,
8065 elements_08,
8066 elements_09);
8067 return builder.commit();
8068}
8069
8070template <typename ELEMENTS_01,
8071 typename ELEMENTS_02,
8072 typename ELEMENTS_03,
8073 typename ELEMENTS_04,
8074 typename ELEMENTS_05,
8075 typename ELEMENTS_06,
8076 typename ELEMENTS_07,
8077 typename ELEMENTS_08,
8078 typename ELEMENTS_09,
8079 typename ELEMENTS_10>
8080inline
8081bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8082 const ELEMENTS_02& elements_02,
8083 const ELEMENTS_03& elements_03,
8084 const ELEMENTS_04& elements_04,
8085 const ELEMENTS_05& elements_05,
8086 const ELEMENTS_06& elements_06,
8087 const ELEMENTS_07& elements_07,
8088 const ELEMENTS_08& elements_08,
8089 const ELEMENTS_09& elements_09,
8090 const ELEMENTS_10& elements_10
8091 ) const
8092{
8093 const int numElements = 10u;
8094 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8095 pushBackHelper(&builder, elements_01,
8096 elements_02,
8097 elements_03,
8098 elements_04,
8099 elements_05,
8100 elements_06,
8101 elements_07,
8102 elements_08,
8103 elements_09,
8104 elements_10);
8105 return builder.commit();
8106}
8107
8108template <typename ELEMENTS_01,
8109 typename ELEMENTS_02,
8110 typename ELEMENTS_03,
8111 typename ELEMENTS_04,
8112 typename ELEMENTS_05,
8113 typename ELEMENTS_06,
8114 typename ELEMENTS_07,
8115 typename ELEMENTS_08,
8116 typename ELEMENTS_09,
8117 typename ELEMENTS_10,
8118 typename ELEMENTS_11>
8119inline
8120bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8121 const ELEMENTS_02& elements_02,
8122 const ELEMENTS_03& elements_03,
8123 const ELEMENTS_04& elements_04,
8124 const ELEMENTS_05& elements_05,
8125 const ELEMENTS_06& elements_06,
8126 const ELEMENTS_07& elements_07,
8127 const ELEMENTS_08& elements_08,
8128 const ELEMENTS_09& elements_09,
8129 const ELEMENTS_10& elements_10,
8130 const ELEMENTS_11& elements_11
8131 ) const
8132{
8133 const int numElements = 11u;
8134 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8135 pushBackHelper(&builder, elements_01,
8136 elements_02,
8137 elements_03,
8138 elements_04,
8139 elements_05,
8140 elements_06,
8141 elements_07,
8142 elements_08,
8143 elements_09,
8144 elements_10,
8145 elements_11);
8146 return builder.commit();
8147}
8148
8149template <typename ELEMENTS_01,
8150 typename ELEMENTS_02,
8151 typename ELEMENTS_03,
8152 typename ELEMENTS_04,
8153 typename ELEMENTS_05,
8154 typename ELEMENTS_06,
8155 typename ELEMENTS_07,
8156 typename ELEMENTS_08,
8157 typename ELEMENTS_09,
8158 typename ELEMENTS_10,
8159 typename ELEMENTS_11,
8160 typename ELEMENTS_12>
8161inline
8162bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8163 const ELEMENTS_02& elements_02,
8164 const ELEMENTS_03& elements_03,
8165 const ELEMENTS_04& elements_04,
8166 const ELEMENTS_05& elements_05,
8167 const ELEMENTS_06& elements_06,
8168 const ELEMENTS_07& elements_07,
8169 const ELEMENTS_08& elements_08,
8170 const ELEMENTS_09& elements_09,
8171 const ELEMENTS_10& elements_10,
8172 const ELEMENTS_11& elements_11,
8173 const ELEMENTS_12& elements_12
8174 ) const
8175{
8176 const int numElements = 12u;
8177 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8178 pushBackHelper(&builder, elements_01,
8179 elements_02,
8180 elements_03,
8181 elements_04,
8182 elements_05,
8183 elements_06,
8184 elements_07,
8185 elements_08,
8186 elements_09,
8187 elements_10,
8188 elements_11,
8189 elements_12);
8190 return builder.commit();
8191}
8192
8193template <typename ELEMENTS_01,
8194 typename ELEMENTS_02,
8195 typename ELEMENTS_03,
8196 typename ELEMENTS_04,
8197 typename ELEMENTS_05,
8198 typename ELEMENTS_06,
8199 typename ELEMENTS_07,
8200 typename ELEMENTS_08,
8201 typename ELEMENTS_09,
8202 typename ELEMENTS_10,
8203 typename ELEMENTS_11,
8204 typename ELEMENTS_12,
8205 typename ELEMENTS_13>
8206inline
8207bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8208 const ELEMENTS_02& elements_02,
8209 const ELEMENTS_03& elements_03,
8210 const ELEMENTS_04& elements_04,
8211 const ELEMENTS_05& elements_05,
8212 const ELEMENTS_06& elements_06,
8213 const ELEMENTS_07& elements_07,
8214 const ELEMENTS_08& elements_08,
8215 const ELEMENTS_09& elements_09,
8216 const ELEMENTS_10& elements_10,
8217 const ELEMENTS_11& elements_11,
8218 const ELEMENTS_12& elements_12,
8219 const ELEMENTS_13& elements_13
8220 ) const
8221{
8222 const int numElements = 13u;
8223 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8224 pushBackHelper(&builder, elements_01,
8225 elements_02,
8226 elements_03,
8227 elements_04,
8228 elements_05,
8229 elements_06,
8230 elements_07,
8231 elements_08,
8232 elements_09,
8233 elements_10,
8234 elements_11,
8235 elements_12,
8236 elements_13);
8237 return builder.commit();
8238}
8239
8240template <typename ELEMENTS_01,
8241 typename ELEMENTS_02,
8242 typename ELEMENTS_03,
8243 typename ELEMENTS_04,
8244 typename ELEMENTS_05,
8245 typename ELEMENTS_06,
8246 typename ELEMENTS_07,
8247 typename ELEMENTS_08,
8248 typename ELEMENTS_09,
8249 typename ELEMENTS_10,
8250 typename ELEMENTS_11,
8251 typename ELEMENTS_12,
8252 typename ELEMENTS_13,
8253 typename ELEMENTS_14>
8254inline
8255bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8256 const ELEMENTS_02& elements_02,
8257 const ELEMENTS_03& elements_03,
8258 const ELEMENTS_04& elements_04,
8259 const ELEMENTS_05& elements_05,
8260 const ELEMENTS_06& elements_06,
8261 const ELEMENTS_07& elements_07,
8262 const ELEMENTS_08& elements_08,
8263 const ELEMENTS_09& elements_09,
8264 const ELEMENTS_10& elements_10,
8265 const ELEMENTS_11& elements_11,
8266 const ELEMENTS_12& elements_12,
8267 const ELEMENTS_13& elements_13,
8268 const ELEMENTS_14& elements_14
8269 ) const
8270{
8271 const int numElements = 14u;
8272 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8273 pushBackHelper(&builder, elements_01,
8274 elements_02,
8275 elements_03,
8276 elements_04,
8277 elements_05,
8278 elements_06,
8279 elements_07,
8280 elements_08,
8281 elements_09,
8282 elements_10,
8283 elements_11,
8284 elements_12,
8285 elements_13,
8286 elements_14);
8287 return builder.commit();
8288}
8289
8290template <typename ELEMENTS_01,
8291 typename ELEMENTS_02,
8292 typename ELEMENTS_03,
8293 typename ELEMENTS_04,
8294 typename ELEMENTS_05,
8295 typename ELEMENTS_06,
8296 typename ELEMENTS_07,
8297 typename ELEMENTS_08,
8298 typename ELEMENTS_09,
8299 typename ELEMENTS_10,
8300 typename ELEMENTS_11,
8301 typename ELEMENTS_12,
8302 typename ELEMENTS_13,
8303 typename ELEMENTS_14,
8304 typename ELEMENTS_15>
8305inline
8306bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8307 const ELEMENTS_02& elements_02,
8308 const ELEMENTS_03& elements_03,
8309 const ELEMENTS_04& elements_04,
8310 const ELEMENTS_05& elements_05,
8311 const ELEMENTS_06& elements_06,
8312 const ELEMENTS_07& elements_07,
8313 const ELEMENTS_08& elements_08,
8314 const ELEMENTS_09& elements_09,
8315 const ELEMENTS_10& elements_10,
8316 const ELEMENTS_11& elements_11,
8317 const ELEMENTS_12& elements_12,
8318 const ELEMENTS_13& elements_13,
8319 const ELEMENTS_14& elements_14,
8320 const ELEMENTS_15& elements_15
8321 ) const
8322{
8323 const int numElements = 15u;
8324 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8325 pushBackHelper(&builder, elements_01,
8326 elements_02,
8327 elements_03,
8328 elements_04,
8329 elements_05,
8330 elements_06,
8331 elements_07,
8332 elements_08,
8333 elements_09,
8334 elements_10,
8335 elements_11,
8336 elements_12,
8337 elements_13,
8338 elements_14,
8339 elements_15);
8340 return builder.commit();
8341}
8342
8343template <typename ELEMENTS_01,
8344 typename ELEMENTS_02,
8345 typename ELEMENTS_03,
8346 typename ELEMENTS_04,
8347 typename ELEMENTS_05,
8348 typename ELEMENTS_06,
8349 typename ELEMENTS_07,
8350 typename ELEMENTS_08,
8351 typename ELEMENTS_09,
8352 typename ELEMENTS_10,
8353 typename ELEMENTS_11,
8354 typename ELEMENTS_12,
8355 typename ELEMENTS_13,
8356 typename ELEMENTS_14,
8357 typename ELEMENTS_15,
8358 typename ELEMENTS_16>
8359inline
8360bdld::Datum DatumMaker::a(const ELEMENTS_01& elements_01,
8361 const ELEMENTS_02& elements_02,
8362 const ELEMENTS_03& elements_03,
8363 const ELEMENTS_04& elements_04,
8364 const ELEMENTS_05& elements_05,
8365 const ELEMENTS_06& elements_06,
8366 const ELEMENTS_07& elements_07,
8367 const ELEMENTS_08& elements_08,
8368 const ELEMENTS_09& elements_09,
8369 const ELEMENTS_10& elements_10,
8370 const ELEMENTS_11& elements_11,
8371 const ELEMENTS_12& elements_12,
8372 const ELEMENTS_13& elements_13,
8373 const ELEMENTS_14& elements_14,
8374 const ELEMENTS_15& elements_15,
8375 const ELEMENTS_16& elements_16
8376 ) const
8377{
8378 const int numElements = 16u;
8379 bdld::DatumArrayBuilder builder(numElements, d_allocator);
8380 pushBackHelper(&builder, elements_01,
8381 elements_02,
8382 elements_03,
8383 elements_04,
8384 elements_05,
8385 elements_06,
8386 elements_07,
8387 elements_08,
8388 elements_09,
8389 elements_10,
8390 elements_11,
8391 elements_12,
8392 elements_13,
8393 elements_14,
8394 elements_15,
8395 elements_16);
8396 return builder.commit();
8397}
8398
8399#endif
8400
8401#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
8402template <typename... ENTRIES>
8403inline
8404bdld::Datum DatumMaker::m(const ENTRIES&... entries) const
8405{
8406 const int numArguments = sizeof...(ENTRIES);
8407
8408 // Due to MSVC not recognizing bitwise and of a constant expression and a
8409 // string literal as a constant expression, we don't use a meaningful error
8410 // as part of this assert.
8411 //
8412 // See: https://connect.microsoft.com/VisualStudio/feedback/details/1523001
8413 BSLMF_ASSERT(0 == numArguments % 2);
8414
8415 const int mapElements = numArguments / 2;
8416 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8417 pushBackHelper(&builder, entries...);
8418 return builder.commit();
8419}
8420#else
8421inline
8423{
8424 const int numArguments = 0u;
8425
8426 BSLMF_ASSERT(0 == numArguments % 2);
8427
8428 const int mapElements = numArguments / 2;
8429 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8430 pushBackHelper(&builder);
8431 return builder.commit();
8432}
8433
8434template <typename ENTRIES_01,
8435 typename ENTRIES_02>
8436inline
8437bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8438 const ENTRIES_02& entries_02
8439 ) const
8440{
8441 const int numArguments = 2u;
8442
8443 BSLMF_ASSERT(0 == numArguments % 2);
8444
8445 const int mapElements = numArguments / 2;
8446 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8447 pushBackHelper(&builder, entries_01,
8448 entries_02);
8449 return builder.commit();
8450}
8451
8452template <typename ENTRIES_01,
8453 typename ENTRIES_02,
8454 typename ENTRIES_03,
8455 typename ENTRIES_04>
8456inline
8457bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8458 const ENTRIES_02& entries_02,
8459 const ENTRIES_03& entries_03,
8460 const ENTRIES_04& entries_04
8461 ) const
8462{
8463 const int numArguments = 4u;
8464
8465 BSLMF_ASSERT(0 == numArguments % 2);
8466
8467 const int mapElements = numArguments / 2;
8468 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8469 pushBackHelper(&builder, entries_01,
8470 entries_02,
8471 entries_03,
8472 entries_04);
8473 return builder.commit();
8474}
8475
8476template <typename ENTRIES_01,
8477 typename ENTRIES_02,
8478 typename ENTRIES_03,
8479 typename ENTRIES_04,
8480 typename ENTRIES_05,
8481 typename ENTRIES_06>
8482inline
8483bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8484 const ENTRIES_02& entries_02,
8485 const ENTRIES_03& entries_03,
8486 const ENTRIES_04& entries_04,
8487 const ENTRIES_05& entries_05,
8488 const ENTRIES_06& entries_06
8489 ) const
8490{
8491 const int numArguments = 6u;
8492
8493 BSLMF_ASSERT(0 == numArguments % 2);
8494
8495 const int mapElements = numArguments / 2;
8496 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8497 pushBackHelper(&builder, entries_01,
8498 entries_02,
8499 entries_03,
8500 entries_04,
8501 entries_05,
8502 entries_06);
8503 return builder.commit();
8504}
8505
8506template <typename ENTRIES_01,
8507 typename ENTRIES_02,
8508 typename ENTRIES_03,
8509 typename ENTRIES_04,
8510 typename ENTRIES_05,
8511 typename ENTRIES_06,
8512 typename ENTRIES_07,
8513 typename ENTRIES_08>
8514inline
8515bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8516 const ENTRIES_02& entries_02,
8517 const ENTRIES_03& entries_03,
8518 const ENTRIES_04& entries_04,
8519 const ENTRIES_05& entries_05,
8520 const ENTRIES_06& entries_06,
8521 const ENTRIES_07& entries_07,
8522 const ENTRIES_08& entries_08
8523 ) const
8524{
8525 const int numArguments = 8u;
8526
8527 BSLMF_ASSERT(0 == numArguments % 2);
8528
8529 const int mapElements = numArguments / 2;
8530 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8531 pushBackHelper(&builder, entries_01,
8532 entries_02,
8533 entries_03,
8534 entries_04,
8535 entries_05,
8536 entries_06,
8537 entries_07,
8538 entries_08);
8539 return builder.commit();
8540}
8541
8542template <typename ENTRIES_01,
8543 typename ENTRIES_02,
8544 typename ENTRIES_03,
8545 typename ENTRIES_04,
8546 typename ENTRIES_05,
8547 typename ENTRIES_06,
8548 typename ENTRIES_07,
8549 typename ENTRIES_08,
8550 typename ENTRIES_09,
8551 typename ENTRIES_10>
8552inline
8553bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8554 const ENTRIES_02& entries_02,
8555 const ENTRIES_03& entries_03,
8556 const ENTRIES_04& entries_04,
8557 const ENTRIES_05& entries_05,
8558 const ENTRIES_06& entries_06,
8559 const ENTRIES_07& entries_07,
8560 const ENTRIES_08& entries_08,
8561 const ENTRIES_09& entries_09,
8562 const ENTRIES_10& entries_10
8563 ) const
8564{
8565 const int numArguments = 10u;
8566
8567 BSLMF_ASSERT(0 == numArguments % 2);
8568
8569 const int mapElements = numArguments / 2;
8570 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8571 pushBackHelper(&builder, entries_01,
8572 entries_02,
8573 entries_03,
8574 entries_04,
8575 entries_05,
8576 entries_06,
8577 entries_07,
8578 entries_08,
8579 entries_09,
8580 entries_10);
8581 return builder.commit();
8582}
8583
8584template <typename ENTRIES_01,
8585 typename ENTRIES_02,
8586 typename ENTRIES_03,
8587 typename ENTRIES_04,
8588 typename ENTRIES_05,
8589 typename ENTRIES_06,
8590 typename ENTRIES_07,
8591 typename ENTRIES_08,
8592 typename ENTRIES_09,
8593 typename ENTRIES_10,
8594 typename ENTRIES_11,
8595 typename ENTRIES_12>
8596inline
8597bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8598 const ENTRIES_02& entries_02,
8599 const ENTRIES_03& entries_03,
8600 const ENTRIES_04& entries_04,
8601 const ENTRIES_05& entries_05,
8602 const ENTRIES_06& entries_06,
8603 const ENTRIES_07& entries_07,
8604 const ENTRIES_08& entries_08,
8605 const ENTRIES_09& entries_09,
8606 const ENTRIES_10& entries_10,
8607 const ENTRIES_11& entries_11,
8608 const ENTRIES_12& entries_12
8609 ) const
8610{
8611 const int numArguments = 12u;
8612
8613 BSLMF_ASSERT(0 == numArguments % 2);
8614
8615 const int mapElements = numArguments / 2;
8616 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8617 pushBackHelper(&builder, entries_01,
8618 entries_02,
8619 entries_03,
8620 entries_04,
8621 entries_05,
8622 entries_06,
8623 entries_07,
8624 entries_08,
8625 entries_09,
8626 entries_10,
8627 entries_11,
8628 entries_12);
8629 return builder.commit();
8630}
8631
8632template <typename ENTRIES_01,
8633 typename ENTRIES_02,
8634 typename ENTRIES_03,
8635 typename ENTRIES_04,
8636 typename ENTRIES_05,
8637 typename ENTRIES_06,
8638 typename ENTRIES_07,
8639 typename ENTRIES_08,
8640 typename ENTRIES_09,
8641 typename ENTRIES_10,
8642 typename ENTRIES_11,
8643 typename ENTRIES_12,
8644 typename ENTRIES_13,
8645 typename ENTRIES_14>
8646inline
8647bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8648 const ENTRIES_02& entries_02,
8649 const ENTRIES_03& entries_03,
8650 const ENTRIES_04& entries_04,
8651 const ENTRIES_05& entries_05,
8652 const ENTRIES_06& entries_06,
8653 const ENTRIES_07& entries_07,
8654 const ENTRIES_08& entries_08,
8655 const ENTRIES_09& entries_09,
8656 const ENTRIES_10& entries_10,
8657 const ENTRIES_11& entries_11,
8658 const ENTRIES_12& entries_12,
8659 const ENTRIES_13& entries_13,
8660 const ENTRIES_14& entries_14
8661 ) const
8662{
8663 const int numArguments = 14u;
8664
8665 BSLMF_ASSERT(0 == numArguments % 2);
8666
8667 const int mapElements = numArguments / 2;
8668 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8669 pushBackHelper(&builder, entries_01,
8670 entries_02,
8671 entries_03,
8672 entries_04,
8673 entries_05,
8674 entries_06,
8675 entries_07,
8676 entries_08,
8677 entries_09,
8678 entries_10,
8679 entries_11,
8680 entries_12,
8681 entries_13,
8682 entries_14);
8683 return builder.commit();
8684}
8685
8686template <typename ENTRIES_01,
8687 typename ENTRIES_02,
8688 typename ENTRIES_03,
8689 typename ENTRIES_04,
8690 typename ENTRIES_05,
8691 typename ENTRIES_06,
8692 typename ENTRIES_07,
8693 typename ENTRIES_08,
8694 typename ENTRIES_09,
8695 typename ENTRIES_10,
8696 typename ENTRIES_11,
8697 typename ENTRIES_12,
8698 typename ENTRIES_13,
8699 typename ENTRIES_14,
8700 typename ENTRIES_15,
8701 typename ENTRIES_16>
8702inline
8703bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8704 const ENTRIES_02& entries_02,
8705 const ENTRIES_03& entries_03,
8706 const ENTRIES_04& entries_04,
8707 const ENTRIES_05& entries_05,
8708 const ENTRIES_06& entries_06,
8709 const ENTRIES_07& entries_07,
8710 const ENTRIES_08& entries_08,
8711 const ENTRIES_09& entries_09,
8712 const ENTRIES_10& entries_10,
8713 const ENTRIES_11& entries_11,
8714 const ENTRIES_12& entries_12,
8715 const ENTRIES_13& entries_13,
8716 const ENTRIES_14& entries_14,
8717 const ENTRIES_15& entries_15,
8718 const ENTRIES_16& entries_16
8719 ) const
8720{
8721 const int numArguments = 16u;
8722
8723 BSLMF_ASSERT(0 == numArguments % 2);
8724
8725 const int mapElements = numArguments / 2;
8726 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8727 pushBackHelper(&builder, entries_01,
8728 entries_02,
8729 entries_03,
8730 entries_04,
8731 entries_05,
8732 entries_06,
8733 entries_07,
8734 entries_08,
8735 entries_09,
8736 entries_10,
8737 entries_11,
8738 entries_12,
8739 entries_13,
8740 entries_14,
8741 entries_15,
8742 entries_16);
8743 return builder.commit();
8744}
8745
8746template <typename ENTRIES_01,
8747 typename ENTRIES_02,
8748 typename ENTRIES_03,
8749 typename ENTRIES_04,
8750 typename ENTRIES_05,
8751 typename ENTRIES_06,
8752 typename ENTRIES_07,
8753 typename ENTRIES_08,
8754 typename ENTRIES_09,
8755 typename ENTRIES_10,
8756 typename ENTRIES_11,
8757 typename ENTRIES_12,
8758 typename ENTRIES_13,
8759 typename ENTRIES_14,
8760 typename ENTRIES_15,
8761 typename ENTRIES_16,
8762 typename ENTRIES_17,
8763 typename ENTRIES_18>
8764inline
8765bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8766 const ENTRIES_02& entries_02,
8767 const ENTRIES_03& entries_03,
8768 const ENTRIES_04& entries_04,
8769 const ENTRIES_05& entries_05,
8770 const ENTRIES_06& entries_06,
8771 const ENTRIES_07& entries_07,
8772 const ENTRIES_08& entries_08,
8773 const ENTRIES_09& entries_09,
8774 const ENTRIES_10& entries_10,
8775 const ENTRIES_11& entries_11,
8776 const ENTRIES_12& entries_12,
8777 const ENTRIES_13& entries_13,
8778 const ENTRIES_14& entries_14,
8779 const ENTRIES_15& entries_15,
8780 const ENTRIES_16& entries_16,
8781 const ENTRIES_17& entries_17,
8782 const ENTRIES_18& entries_18
8783 ) const
8784{
8785 const int numArguments = 18u;
8786
8787 BSLMF_ASSERT(0 == numArguments % 2);
8788
8789 const int mapElements = numArguments / 2;
8790 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8791 pushBackHelper(&builder, entries_01,
8792 entries_02,
8793 entries_03,
8794 entries_04,
8795 entries_05,
8796 entries_06,
8797 entries_07,
8798 entries_08,
8799 entries_09,
8800 entries_10,
8801 entries_11,
8802 entries_12,
8803 entries_13,
8804 entries_14,
8805 entries_15,
8806 entries_16,
8807 entries_17,
8808 entries_18);
8809 return builder.commit();
8810}
8811
8812template <typename ENTRIES_01,
8813 typename ENTRIES_02,
8814 typename ENTRIES_03,
8815 typename ENTRIES_04,
8816 typename ENTRIES_05,
8817 typename ENTRIES_06,
8818 typename ENTRIES_07,
8819 typename ENTRIES_08,
8820 typename ENTRIES_09,
8821 typename ENTRIES_10,
8822 typename ENTRIES_11,
8823 typename ENTRIES_12,
8824 typename ENTRIES_13,
8825 typename ENTRIES_14,
8826 typename ENTRIES_15,
8827 typename ENTRIES_16,
8828 typename ENTRIES_17,
8829 typename ENTRIES_18,
8830 typename ENTRIES_19,
8831 typename ENTRIES_20>
8832inline
8833bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8834 const ENTRIES_02& entries_02,
8835 const ENTRIES_03& entries_03,
8836 const ENTRIES_04& entries_04,
8837 const ENTRIES_05& entries_05,
8838 const ENTRIES_06& entries_06,
8839 const ENTRIES_07& entries_07,
8840 const ENTRIES_08& entries_08,
8841 const ENTRIES_09& entries_09,
8842 const ENTRIES_10& entries_10,
8843 const ENTRIES_11& entries_11,
8844 const ENTRIES_12& entries_12,
8845 const ENTRIES_13& entries_13,
8846 const ENTRIES_14& entries_14,
8847 const ENTRIES_15& entries_15,
8848 const ENTRIES_16& entries_16,
8849 const ENTRIES_17& entries_17,
8850 const ENTRIES_18& entries_18,
8851 const ENTRIES_19& entries_19,
8852 const ENTRIES_20& entries_20
8853 ) const
8854{
8855 const int numArguments = 20u;
8856
8857 BSLMF_ASSERT(0 == numArguments % 2);
8858
8859 const int mapElements = numArguments / 2;
8860 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8861 pushBackHelper(&builder, entries_01,
8862 entries_02,
8863 entries_03,
8864 entries_04,
8865 entries_05,
8866 entries_06,
8867 entries_07,
8868 entries_08,
8869 entries_09,
8870 entries_10,
8871 entries_11,
8872 entries_12,
8873 entries_13,
8874 entries_14,
8875 entries_15,
8876 entries_16,
8877 entries_17,
8878 entries_18,
8879 entries_19,
8880 entries_20);
8881 return builder.commit();
8882}
8883
8884template <typename ENTRIES_01,
8885 typename ENTRIES_02,
8886 typename ENTRIES_03,
8887 typename ENTRIES_04,
8888 typename ENTRIES_05,
8889 typename ENTRIES_06,
8890 typename ENTRIES_07,
8891 typename ENTRIES_08,
8892 typename ENTRIES_09,
8893 typename ENTRIES_10,
8894 typename ENTRIES_11,
8895 typename ENTRIES_12,
8896 typename ENTRIES_13,
8897 typename ENTRIES_14,
8898 typename ENTRIES_15,
8899 typename ENTRIES_16,
8900 typename ENTRIES_17,
8901 typename ENTRIES_18,
8902 typename ENTRIES_19,
8903 typename ENTRIES_20,
8904 typename ENTRIES_21,
8905 typename ENTRIES_22>
8906inline
8907bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8908 const ENTRIES_02& entries_02,
8909 const ENTRIES_03& entries_03,
8910 const ENTRIES_04& entries_04,
8911 const ENTRIES_05& entries_05,
8912 const ENTRIES_06& entries_06,
8913 const ENTRIES_07& entries_07,
8914 const ENTRIES_08& entries_08,
8915 const ENTRIES_09& entries_09,
8916 const ENTRIES_10& entries_10,
8917 const ENTRIES_11& entries_11,
8918 const ENTRIES_12& entries_12,
8919 const ENTRIES_13& entries_13,
8920 const ENTRIES_14& entries_14,
8921 const ENTRIES_15& entries_15,
8922 const ENTRIES_16& entries_16,
8923 const ENTRIES_17& entries_17,
8924 const ENTRIES_18& entries_18,
8925 const ENTRIES_19& entries_19,
8926 const ENTRIES_20& entries_20,
8927 const ENTRIES_21& entries_21,
8928 const ENTRIES_22& entries_22
8929 ) const
8930{
8931 const int numArguments = 22u;
8932
8933 BSLMF_ASSERT(0 == numArguments % 2);
8934
8935 const int mapElements = numArguments / 2;
8936 bdld::DatumMapBuilder builder(mapElements, d_allocator);
8937 pushBackHelper(&builder, entries_01,
8938 entries_02,
8939 entries_03,
8940 entries_04,
8941 entries_05,
8942 entries_06,
8943 entries_07,
8944 entries_08,
8945 entries_09,
8946 entries_10,
8947 entries_11,
8948 entries_12,
8949 entries_13,
8950 entries_14,
8951 entries_15,
8952 entries_16,
8953 entries_17,
8954 entries_18,
8955 entries_19,
8956 entries_20,
8957 entries_21,
8958 entries_22);
8959 return builder.commit();
8960}
8961
8962template <typename ENTRIES_01,
8963 typename ENTRIES_02,
8964 typename ENTRIES_03,
8965 typename ENTRIES_04,
8966 typename ENTRIES_05,
8967 typename ENTRIES_06,
8968 typename ENTRIES_07,
8969 typename ENTRIES_08,
8970 typename ENTRIES_09,
8971 typename ENTRIES_10,
8972 typename ENTRIES_11,
8973 typename ENTRIES_12,
8974 typename ENTRIES_13,
8975 typename ENTRIES_14,
8976 typename ENTRIES_15,
8977 typename ENTRIES_16,
8978 typename ENTRIES_17,
8979 typename ENTRIES_18,
8980 typename ENTRIES_19,
8981 typename ENTRIES_20,
8982 typename ENTRIES_21,
8983 typename ENTRIES_22,
8984 typename ENTRIES_23,
8985 typename ENTRIES_24>
8986inline
8987bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
8988 const ENTRIES_02& entries_02,
8989 const ENTRIES_03& entries_03,
8990 const ENTRIES_04& entries_04,
8991 const ENTRIES_05& entries_05,
8992 const ENTRIES_06& entries_06,
8993 const ENTRIES_07& entries_07,
8994 const ENTRIES_08& entries_08,
8995 const ENTRIES_09& entries_09,
8996 const ENTRIES_10& entries_10,
8997 const ENTRIES_11& entries_11,
8998 const ENTRIES_12& entries_12,
8999 const ENTRIES_13& entries_13,
9000 const ENTRIES_14& entries_14,
9001 const ENTRIES_15& entries_15,
9002 const ENTRIES_16& entries_16,
9003 const ENTRIES_17& entries_17,
9004 const ENTRIES_18& entries_18,
9005 const ENTRIES_19& entries_19,
9006 const ENTRIES_20& entries_20,
9007 const ENTRIES_21& entries_21,
9008 const ENTRIES_22& entries_22,
9009 const ENTRIES_23& entries_23,
9010 const ENTRIES_24& entries_24
9011 ) const
9012{
9013 const int numArguments = 24u;
9014
9015 BSLMF_ASSERT(0 == numArguments % 2);
9016
9017 const int mapElements = numArguments / 2;
9018 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9019 pushBackHelper(&builder, entries_01,
9020 entries_02,
9021 entries_03,
9022 entries_04,
9023 entries_05,
9024 entries_06,
9025 entries_07,
9026 entries_08,
9027 entries_09,
9028 entries_10,
9029 entries_11,
9030 entries_12,
9031 entries_13,
9032 entries_14,
9033 entries_15,
9034 entries_16,
9035 entries_17,
9036 entries_18,
9037 entries_19,
9038 entries_20,
9039 entries_21,
9040 entries_22,
9041 entries_23,
9042 entries_24);
9043 return builder.commit();
9044}
9045
9046template <typename ENTRIES_01,
9047 typename ENTRIES_02,
9048 typename ENTRIES_03,
9049 typename ENTRIES_04,
9050 typename ENTRIES_05,
9051 typename ENTRIES_06,
9052 typename ENTRIES_07,
9053 typename ENTRIES_08,
9054 typename ENTRIES_09,
9055 typename ENTRIES_10,
9056 typename ENTRIES_11,
9057 typename ENTRIES_12,
9058 typename ENTRIES_13,
9059 typename ENTRIES_14,
9060 typename ENTRIES_15,
9061 typename ENTRIES_16,
9062 typename ENTRIES_17,
9063 typename ENTRIES_18,
9064 typename ENTRIES_19,
9065 typename ENTRIES_20,
9066 typename ENTRIES_21,
9067 typename ENTRIES_22,
9068 typename ENTRIES_23,
9069 typename ENTRIES_24,
9070 typename ENTRIES_25,
9071 typename ENTRIES_26>
9072inline
9073bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9074 const ENTRIES_02& entries_02,
9075 const ENTRIES_03& entries_03,
9076 const ENTRIES_04& entries_04,
9077 const ENTRIES_05& entries_05,
9078 const ENTRIES_06& entries_06,
9079 const ENTRIES_07& entries_07,
9080 const ENTRIES_08& entries_08,
9081 const ENTRIES_09& entries_09,
9082 const ENTRIES_10& entries_10,
9083 const ENTRIES_11& entries_11,
9084 const ENTRIES_12& entries_12,
9085 const ENTRIES_13& entries_13,
9086 const ENTRIES_14& entries_14,
9087 const ENTRIES_15& entries_15,
9088 const ENTRIES_16& entries_16,
9089 const ENTRIES_17& entries_17,
9090 const ENTRIES_18& entries_18,
9091 const ENTRIES_19& entries_19,
9092 const ENTRIES_20& entries_20,
9093 const ENTRIES_21& entries_21,
9094 const ENTRIES_22& entries_22,
9095 const ENTRIES_23& entries_23,
9096 const ENTRIES_24& entries_24,
9097 const ENTRIES_25& entries_25,
9098 const ENTRIES_26& entries_26
9099 ) const
9100{
9101 const int numArguments = 26u;
9102
9103 BSLMF_ASSERT(0 == numArguments % 2);
9104
9105 const int mapElements = numArguments / 2;
9106 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9107 pushBackHelper(&builder, entries_01,
9108 entries_02,
9109 entries_03,
9110 entries_04,
9111 entries_05,
9112 entries_06,
9113 entries_07,
9114 entries_08,
9115 entries_09,
9116 entries_10,
9117 entries_11,
9118 entries_12,
9119 entries_13,
9120 entries_14,
9121 entries_15,
9122 entries_16,
9123 entries_17,
9124 entries_18,
9125 entries_19,
9126 entries_20,
9127 entries_21,
9128 entries_22,
9129 entries_23,
9130 entries_24,
9131 entries_25,
9132 entries_26);
9133 return builder.commit();
9134}
9135
9136template <typename ENTRIES_01,
9137 typename ENTRIES_02,
9138 typename ENTRIES_03,
9139 typename ENTRIES_04,
9140 typename ENTRIES_05,
9141 typename ENTRIES_06,
9142 typename ENTRIES_07,
9143 typename ENTRIES_08,
9144 typename ENTRIES_09,
9145 typename ENTRIES_10,
9146 typename ENTRIES_11,
9147 typename ENTRIES_12,
9148 typename ENTRIES_13,
9149 typename ENTRIES_14,
9150 typename ENTRIES_15,
9151 typename ENTRIES_16,
9152 typename ENTRIES_17,
9153 typename ENTRIES_18,
9154 typename ENTRIES_19,
9155 typename ENTRIES_20,
9156 typename ENTRIES_21,
9157 typename ENTRIES_22,
9158 typename ENTRIES_23,
9159 typename ENTRIES_24,
9160 typename ENTRIES_25,
9161 typename ENTRIES_26,
9162 typename ENTRIES_27,
9163 typename ENTRIES_28>
9164inline
9165bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9166 const ENTRIES_02& entries_02,
9167 const ENTRIES_03& entries_03,
9168 const ENTRIES_04& entries_04,
9169 const ENTRIES_05& entries_05,
9170 const ENTRIES_06& entries_06,
9171 const ENTRIES_07& entries_07,
9172 const ENTRIES_08& entries_08,
9173 const ENTRIES_09& entries_09,
9174 const ENTRIES_10& entries_10,
9175 const ENTRIES_11& entries_11,
9176 const ENTRIES_12& entries_12,
9177 const ENTRIES_13& entries_13,
9178 const ENTRIES_14& entries_14,
9179 const ENTRIES_15& entries_15,
9180 const ENTRIES_16& entries_16,
9181 const ENTRIES_17& entries_17,
9182 const ENTRIES_18& entries_18,
9183 const ENTRIES_19& entries_19,
9184 const ENTRIES_20& entries_20,
9185 const ENTRIES_21& entries_21,
9186 const ENTRIES_22& entries_22,
9187 const ENTRIES_23& entries_23,
9188 const ENTRIES_24& entries_24,
9189 const ENTRIES_25& entries_25,
9190 const ENTRIES_26& entries_26,
9191 const ENTRIES_27& entries_27,
9192 const ENTRIES_28& entries_28
9193 ) const
9194{
9195 const int numArguments = 28u;
9196
9197 BSLMF_ASSERT(0 == numArguments % 2);
9198
9199 const int mapElements = numArguments / 2;
9200 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9201 pushBackHelper(&builder, entries_01,
9202 entries_02,
9203 entries_03,
9204 entries_04,
9205 entries_05,
9206 entries_06,
9207 entries_07,
9208 entries_08,
9209 entries_09,
9210 entries_10,
9211 entries_11,
9212 entries_12,
9213 entries_13,
9214 entries_14,
9215 entries_15,
9216 entries_16,
9217 entries_17,
9218 entries_18,
9219 entries_19,
9220 entries_20,
9221 entries_21,
9222 entries_22,
9223 entries_23,
9224 entries_24,
9225 entries_25,
9226 entries_26,
9227 entries_27,
9228 entries_28);
9229 return builder.commit();
9230}
9231
9232template <typename ENTRIES_01,
9233 typename ENTRIES_02,
9234 typename ENTRIES_03,
9235 typename ENTRIES_04,
9236 typename ENTRIES_05,
9237 typename ENTRIES_06,
9238 typename ENTRIES_07,
9239 typename ENTRIES_08,
9240 typename ENTRIES_09,
9241 typename ENTRIES_10,
9242 typename ENTRIES_11,
9243 typename ENTRIES_12,
9244 typename ENTRIES_13,
9245 typename ENTRIES_14,
9246 typename ENTRIES_15,
9247 typename ENTRIES_16,
9248 typename ENTRIES_17,
9249 typename ENTRIES_18,
9250 typename ENTRIES_19,
9251 typename ENTRIES_20,
9252 typename ENTRIES_21,
9253 typename ENTRIES_22,
9254 typename ENTRIES_23,
9255 typename ENTRIES_24,
9256 typename ENTRIES_25,
9257 typename ENTRIES_26,
9258 typename ENTRIES_27,
9259 typename ENTRIES_28,
9260 typename ENTRIES_29,
9261 typename ENTRIES_30>
9262inline
9263bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9264 const ENTRIES_02& entries_02,
9265 const ENTRIES_03& entries_03,
9266 const ENTRIES_04& entries_04,
9267 const ENTRIES_05& entries_05,
9268 const ENTRIES_06& entries_06,
9269 const ENTRIES_07& entries_07,
9270 const ENTRIES_08& entries_08,
9271 const ENTRIES_09& entries_09,
9272 const ENTRIES_10& entries_10,
9273 const ENTRIES_11& entries_11,
9274 const ENTRIES_12& entries_12,
9275 const ENTRIES_13& entries_13,
9276 const ENTRIES_14& entries_14,
9277 const ENTRIES_15& entries_15,
9278 const ENTRIES_16& entries_16,
9279 const ENTRIES_17& entries_17,
9280 const ENTRIES_18& entries_18,
9281 const ENTRIES_19& entries_19,
9282 const ENTRIES_20& entries_20,
9283 const ENTRIES_21& entries_21,
9284 const ENTRIES_22& entries_22,
9285 const ENTRIES_23& entries_23,
9286 const ENTRIES_24& entries_24,
9287 const ENTRIES_25& entries_25,
9288 const ENTRIES_26& entries_26,
9289 const ENTRIES_27& entries_27,
9290 const ENTRIES_28& entries_28,
9291 const ENTRIES_29& entries_29,
9292 const ENTRIES_30& entries_30
9293 ) const
9294{
9295 const int numArguments = 30u;
9296
9297 BSLMF_ASSERT(0 == numArguments % 2);
9298
9299 const int mapElements = numArguments / 2;
9300 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9301 pushBackHelper(&builder, entries_01,
9302 entries_02,
9303 entries_03,
9304 entries_04,
9305 entries_05,
9306 entries_06,
9307 entries_07,
9308 entries_08,
9309 entries_09,
9310 entries_10,
9311 entries_11,
9312 entries_12,
9313 entries_13,
9314 entries_14,
9315 entries_15,
9316 entries_16,
9317 entries_17,
9318 entries_18,
9319 entries_19,
9320 entries_20,
9321 entries_21,
9322 entries_22,
9323 entries_23,
9324 entries_24,
9325 entries_25,
9326 entries_26,
9327 entries_27,
9328 entries_28,
9329 entries_29,
9330 entries_30);
9331 return builder.commit();
9332}
9333
9334template <typename ENTRIES_01,
9335 typename ENTRIES_02,
9336 typename ENTRIES_03,
9337 typename ENTRIES_04,
9338 typename ENTRIES_05,
9339 typename ENTRIES_06,
9340 typename ENTRIES_07,
9341 typename ENTRIES_08,
9342 typename ENTRIES_09,
9343 typename ENTRIES_10,
9344 typename ENTRIES_11,
9345 typename ENTRIES_12,
9346 typename ENTRIES_13,
9347 typename ENTRIES_14,
9348 typename ENTRIES_15,
9349 typename ENTRIES_16,
9350 typename ENTRIES_17,
9351 typename ENTRIES_18,
9352 typename ENTRIES_19,
9353 typename ENTRIES_20,
9354 typename ENTRIES_21,
9355 typename ENTRIES_22,
9356 typename ENTRIES_23,
9357 typename ENTRIES_24,
9358 typename ENTRIES_25,
9359 typename ENTRIES_26,
9360 typename ENTRIES_27,
9361 typename ENTRIES_28,
9362 typename ENTRIES_29,
9363 typename ENTRIES_30,
9364 typename ENTRIES_31,
9365 typename ENTRIES_32>
9366inline
9367bdld::Datum DatumMaker::m(const ENTRIES_01& entries_01,
9368 const ENTRIES_02& entries_02,
9369 const ENTRIES_03& entries_03,
9370 const ENTRIES_04& entries_04,
9371 const ENTRIES_05& entries_05,
9372 const ENTRIES_06& entries_06,
9373 const ENTRIES_07& entries_07,
9374 const ENTRIES_08& entries_08,
9375 const ENTRIES_09& entries_09,
9376 const ENTRIES_10& entries_10,
9377 const ENTRIES_11& entries_11,
9378 const ENTRIES_12& entries_12,
9379 const ENTRIES_13& entries_13,
9380 const ENTRIES_14& entries_14,
9381 const ENTRIES_15& entries_15,
9382 const ENTRIES_16& entries_16,
9383 const ENTRIES_17& entries_17,
9384 const ENTRIES_18& entries_18,
9385 const ENTRIES_19& entries_19,
9386 const ENTRIES_20& entries_20,
9387 const ENTRIES_21& entries_21,
9388 const ENTRIES_22& entries_22,
9389 const ENTRIES_23& entries_23,
9390 const ENTRIES_24& entries_24,
9391 const ENTRIES_25& entries_25,
9392 const ENTRIES_26& entries_26,
9393 const ENTRIES_27& entries_27,
9394 const ENTRIES_28& entries_28,
9395 const ENTRIES_29& entries_29,
9396 const ENTRIES_30& entries_30,
9397 const ENTRIES_31& entries_31,
9398 const ENTRIES_32& entries_32
9399 ) const
9400{
9401 const int numArguments = 32u;
9402
9403 BSLMF_ASSERT(0 == numArguments % 2);
9404
9405 const int mapElements = numArguments / 2;
9406 bdld::DatumMapBuilder builder(mapElements, d_allocator);
9407 pushBackHelper(&builder, entries_01,
9408 entries_02,
9409 entries_03,
9410 entries_04,
9411 entries_05,
9412 entries_06,
9413 entries_07,
9414 entries_08,
9415 entries_09,
9416 entries_10,
9417 entries_11,
9418 entries_12,
9419 entries_13,
9420 entries_14,
9421 entries_15,
9422 entries_16,
9423 entries_17,
9424 entries_18,
9425 entries_19,
9426 entries_20,
9427 entries_21,
9428 entries_22,
9429 entries_23,
9430 entries_24,
9431 entries_25,
9432 entries_26,
9433 entries_27,
9434 entries_28,
9435 entries_29,
9436 entries_30,
9437 entries_31,
9438 entries_32);
9439 return builder.commit();
9440}
9441
9442#endif
9443
9444#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
9445template <typename... ENTRIES>
9446inline
9447bdld::Datum DatumMaker::mok(const ENTRIES&... entries) const
9448{
9449 const int numArguments = sizeof...(ENTRIES);
9450
9451 // Due to MSVC not recognizing bitwise and of a constant expression and a
9452 // string literal as a constant expression, we don't use a meaningful error
9453 // as part of this assert.
9454 //
9455 // See: https://connect.microsoft.com/VisualStudio/feedback/details/1523001
9456 BSLMF_ASSERT(0 == numArguments % 2);
9457
9458 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9459 pushBackHelper(&builder, entries...);
9460 return builder.commit();
9461}
9462#else
9463inline
9465{
9466 const int numArguments = 0u;
9467
9468 BSLMF_ASSERT(0 == numArguments % 2);
9469
9470 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9471 pushBackHelper(&builder);
9472 return builder.commit();
9473}
9474
9475template <typename ENTRIES_01,
9476 typename ENTRIES_02>
9477inline
9478bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9479 const ENTRIES_02& entries_02
9480 ) const
9481{
9482 const int numArguments = 2u;
9483
9484 BSLMF_ASSERT(0 == numArguments % 2);
9485
9486 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9487 pushBackHelper(&builder, entries_01,
9488 entries_02);
9489 return builder.commit();
9490}
9491
9492template <typename ENTRIES_01,
9493 typename ENTRIES_02,
9494 typename ENTRIES_03,
9495 typename ENTRIES_04>
9496inline
9497bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9498 const ENTRIES_02& entries_02,
9499 const ENTRIES_03& entries_03,
9500 const ENTRIES_04& entries_04
9501 ) const
9502{
9503 const int numArguments = 4u;
9504
9505 BSLMF_ASSERT(0 == numArguments % 2);
9506
9507 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9508 pushBackHelper(&builder, entries_01,
9509 entries_02,
9510 entries_03,
9511 entries_04);
9512 return builder.commit();
9513}
9514
9515template <typename ENTRIES_01,
9516 typename ENTRIES_02,
9517 typename ENTRIES_03,
9518 typename ENTRIES_04,
9519 typename ENTRIES_05,
9520 typename ENTRIES_06>
9521inline
9522bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9523 const ENTRIES_02& entries_02,
9524 const ENTRIES_03& entries_03,
9525 const ENTRIES_04& entries_04,
9526 const ENTRIES_05& entries_05,
9527 const ENTRIES_06& entries_06
9528 ) const
9529{
9530 const int numArguments = 6u;
9531
9532 BSLMF_ASSERT(0 == numArguments % 2);
9533
9534 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9535 pushBackHelper(&builder, entries_01,
9536 entries_02,
9537 entries_03,
9538 entries_04,
9539 entries_05,
9540 entries_06);
9541 return builder.commit();
9542}
9543
9544template <typename ENTRIES_01,
9545 typename ENTRIES_02,
9546 typename ENTRIES_03,
9547 typename ENTRIES_04,
9548 typename ENTRIES_05,
9549 typename ENTRIES_06,
9550 typename ENTRIES_07,
9551 typename ENTRIES_08>
9552inline
9553bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9554 const ENTRIES_02& entries_02,
9555 const ENTRIES_03& entries_03,
9556 const ENTRIES_04& entries_04,
9557 const ENTRIES_05& entries_05,
9558 const ENTRIES_06& entries_06,
9559 const ENTRIES_07& entries_07,
9560 const ENTRIES_08& entries_08
9561 ) const
9562{
9563 const int numArguments = 8u;
9564
9565 BSLMF_ASSERT(0 == numArguments % 2);
9566
9567 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9568 pushBackHelper(&builder, entries_01,
9569 entries_02,
9570 entries_03,
9571 entries_04,
9572 entries_05,
9573 entries_06,
9574 entries_07,
9575 entries_08);
9576 return builder.commit();
9577}
9578
9579template <typename ENTRIES_01,
9580 typename ENTRIES_02,
9581 typename ENTRIES_03,
9582 typename ENTRIES_04,
9583 typename ENTRIES_05,
9584 typename ENTRIES_06,
9585 typename ENTRIES_07,
9586 typename ENTRIES_08,
9587 typename ENTRIES_09,
9588 typename ENTRIES_10>
9589inline
9590bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9591 const ENTRIES_02& entries_02,
9592 const ENTRIES_03& entries_03,
9593 const ENTRIES_04& entries_04,
9594 const ENTRIES_05& entries_05,
9595 const ENTRIES_06& entries_06,
9596 const ENTRIES_07& entries_07,
9597 const ENTRIES_08& entries_08,
9598 const ENTRIES_09& entries_09,
9599 const ENTRIES_10& entries_10
9600 ) const
9601{
9602 const int numArguments = 10u;
9603
9604 BSLMF_ASSERT(0 == numArguments % 2);
9605
9606 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9607 pushBackHelper(&builder, entries_01,
9608 entries_02,
9609 entries_03,
9610 entries_04,
9611 entries_05,
9612 entries_06,
9613 entries_07,
9614 entries_08,
9615 entries_09,
9616 entries_10);
9617 return builder.commit();
9618}
9619
9620template <typename ENTRIES_01,
9621 typename ENTRIES_02,
9622 typename ENTRIES_03,
9623 typename ENTRIES_04,
9624 typename ENTRIES_05,
9625 typename ENTRIES_06,
9626 typename ENTRIES_07,
9627 typename ENTRIES_08,
9628 typename ENTRIES_09,
9629 typename ENTRIES_10,
9630 typename ENTRIES_11,
9631 typename ENTRIES_12>
9632inline
9633bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9634 const ENTRIES_02& entries_02,
9635 const ENTRIES_03& entries_03,
9636 const ENTRIES_04& entries_04,
9637 const ENTRIES_05& entries_05,
9638 const ENTRIES_06& entries_06,
9639 const ENTRIES_07& entries_07,
9640 const ENTRIES_08& entries_08,
9641 const ENTRIES_09& entries_09,
9642 const ENTRIES_10& entries_10,
9643 const ENTRIES_11& entries_11,
9644 const ENTRIES_12& entries_12
9645 ) const
9646{
9647 const int numArguments = 12u;
9648
9649 BSLMF_ASSERT(0 == numArguments % 2);
9650
9651 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9652 pushBackHelper(&builder, entries_01,
9653 entries_02,
9654 entries_03,
9655 entries_04,
9656 entries_05,
9657 entries_06,
9658 entries_07,
9659 entries_08,
9660 entries_09,
9661 entries_10,
9662 entries_11,
9663 entries_12);
9664 return builder.commit();
9665}
9666
9667template <typename ENTRIES_01,
9668 typename ENTRIES_02,
9669 typename ENTRIES_03,
9670 typename ENTRIES_04,
9671 typename ENTRIES_05,
9672 typename ENTRIES_06,
9673 typename ENTRIES_07,
9674 typename ENTRIES_08,
9675 typename ENTRIES_09,
9676 typename ENTRIES_10,
9677 typename ENTRIES_11,
9678 typename ENTRIES_12,
9679 typename ENTRIES_13,
9680 typename ENTRIES_14>
9681inline
9682bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9683 const ENTRIES_02& entries_02,
9684 const ENTRIES_03& entries_03,
9685 const ENTRIES_04& entries_04,
9686 const ENTRIES_05& entries_05,
9687 const ENTRIES_06& entries_06,
9688 const ENTRIES_07& entries_07,
9689 const ENTRIES_08& entries_08,
9690 const ENTRIES_09& entries_09,
9691 const ENTRIES_10& entries_10,
9692 const ENTRIES_11& entries_11,
9693 const ENTRIES_12& entries_12,
9694 const ENTRIES_13& entries_13,
9695 const ENTRIES_14& entries_14
9696 ) const
9697{
9698 const int numArguments = 14u;
9699
9700 BSLMF_ASSERT(0 == numArguments % 2);
9701
9702 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9703 pushBackHelper(&builder, entries_01,
9704 entries_02,
9705 entries_03,
9706 entries_04,
9707 entries_05,
9708 entries_06,
9709 entries_07,
9710 entries_08,
9711 entries_09,
9712 entries_10,
9713 entries_11,
9714 entries_12,
9715 entries_13,
9716 entries_14);
9717 return builder.commit();
9718}
9719
9720template <typename ENTRIES_01,
9721 typename ENTRIES_02,
9722 typename ENTRIES_03,
9723 typename ENTRIES_04,
9724 typename ENTRIES_05,
9725 typename ENTRIES_06,
9726 typename ENTRIES_07,
9727 typename ENTRIES_08,
9728 typename ENTRIES_09,
9729 typename ENTRIES_10,
9730 typename ENTRIES_11,
9731 typename ENTRIES_12,
9732 typename ENTRIES_13,
9733 typename ENTRIES_14,
9734 typename ENTRIES_15,
9735 typename ENTRIES_16>
9736inline
9737bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9738 const ENTRIES_02& entries_02,
9739 const ENTRIES_03& entries_03,
9740 const ENTRIES_04& entries_04,
9741 const ENTRIES_05& entries_05,
9742 const ENTRIES_06& entries_06,
9743 const ENTRIES_07& entries_07,
9744 const ENTRIES_08& entries_08,
9745 const ENTRIES_09& entries_09,
9746 const ENTRIES_10& entries_10,
9747 const ENTRIES_11& entries_11,
9748 const ENTRIES_12& entries_12,
9749 const ENTRIES_13& entries_13,
9750 const ENTRIES_14& entries_14,
9751 const ENTRIES_15& entries_15,
9752 const ENTRIES_16& entries_16
9753 ) const
9754{
9755 const int numArguments = 16u;
9756
9757 BSLMF_ASSERT(0 == numArguments % 2);
9758
9759 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9760 pushBackHelper(&builder, entries_01,
9761 entries_02,
9762 entries_03,
9763 entries_04,
9764 entries_05,
9765 entries_06,
9766 entries_07,
9767 entries_08,
9768 entries_09,
9769 entries_10,
9770 entries_11,
9771 entries_12,
9772 entries_13,
9773 entries_14,
9774 entries_15,
9775 entries_16);
9776 return builder.commit();
9777}
9778
9779template <typename ENTRIES_01,
9780 typename ENTRIES_02,
9781 typename ENTRIES_03,
9782 typename ENTRIES_04,
9783 typename ENTRIES_05,
9784 typename ENTRIES_06,
9785 typename ENTRIES_07,
9786 typename ENTRIES_08,
9787 typename ENTRIES_09,
9788 typename ENTRIES_10,
9789 typename ENTRIES_11,
9790 typename ENTRIES_12,
9791 typename ENTRIES_13,
9792 typename ENTRIES_14,
9793 typename ENTRIES_15,
9794 typename ENTRIES_16,
9795 typename ENTRIES_17,
9796 typename ENTRIES_18>
9797inline
9798bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9799 const ENTRIES_02& entries_02,
9800 const ENTRIES_03& entries_03,
9801 const ENTRIES_04& entries_04,
9802 const ENTRIES_05& entries_05,
9803 const ENTRIES_06& entries_06,
9804 const ENTRIES_07& entries_07,
9805 const ENTRIES_08& entries_08,
9806 const ENTRIES_09& entries_09,
9807 const ENTRIES_10& entries_10,
9808 const ENTRIES_11& entries_11,
9809 const ENTRIES_12& entries_12,
9810 const ENTRIES_13& entries_13,
9811 const ENTRIES_14& entries_14,
9812 const ENTRIES_15& entries_15,
9813 const ENTRIES_16& entries_16,
9814 const ENTRIES_17& entries_17,
9815 const ENTRIES_18& entries_18
9816 ) const
9817{
9818 const int numArguments = 18u;
9819
9820 BSLMF_ASSERT(0 == numArguments % 2);
9821
9822 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9823 pushBackHelper(&builder, entries_01,
9824 entries_02,
9825 entries_03,
9826 entries_04,
9827 entries_05,
9828 entries_06,
9829 entries_07,
9830 entries_08,
9831 entries_09,
9832 entries_10,
9833 entries_11,
9834 entries_12,
9835 entries_13,
9836 entries_14,
9837 entries_15,
9838 entries_16,
9839 entries_17,
9840 entries_18);
9841 return builder.commit();
9842}
9843
9844template <typename ENTRIES_01,
9845 typename ENTRIES_02,
9846 typename ENTRIES_03,
9847 typename ENTRIES_04,
9848 typename ENTRIES_05,
9849 typename ENTRIES_06,
9850 typename ENTRIES_07,
9851 typename ENTRIES_08,
9852 typename ENTRIES_09,
9853 typename ENTRIES_10,
9854 typename ENTRIES_11,
9855 typename ENTRIES_12,
9856 typename ENTRIES_13,
9857 typename ENTRIES_14,
9858 typename ENTRIES_15,
9859 typename ENTRIES_16,
9860 typename ENTRIES_17,
9861 typename ENTRIES_18,
9862 typename ENTRIES_19,
9863 typename ENTRIES_20>
9864inline
9865bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9866 const ENTRIES_02& entries_02,
9867 const ENTRIES_03& entries_03,
9868 const ENTRIES_04& entries_04,
9869 const ENTRIES_05& entries_05,
9870 const ENTRIES_06& entries_06,
9871 const ENTRIES_07& entries_07,
9872 const ENTRIES_08& entries_08,
9873 const ENTRIES_09& entries_09,
9874 const ENTRIES_10& entries_10,
9875 const ENTRIES_11& entries_11,
9876 const ENTRIES_12& entries_12,
9877 const ENTRIES_13& entries_13,
9878 const ENTRIES_14& entries_14,
9879 const ENTRIES_15& entries_15,
9880 const ENTRIES_16& entries_16,
9881 const ENTRIES_17& entries_17,
9882 const ENTRIES_18& entries_18,
9883 const ENTRIES_19& entries_19,
9884 const ENTRIES_20& entries_20
9885 ) const
9886{
9887 const int numArguments = 20u;
9888
9889 BSLMF_ASSERT(0 == numArguments % 2);
9890
9891 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9892 pushBackHelper(&builder, entries_01,
9893 entries_02,
9894 entries_03,
9895 entries_04,
9896 entries_05,
9897 entries_06,
9898 entries_07,
9899 entries_08,
9900 entries_09,
9901 entries_10,
9902 entries_11,
9903 entries_12,
9904 entries_13,
9905 entries_14,
9906 entries_15,
9907 entries_16,
9908 entries_17,
9909 entries_18,
9910 entries_19,
9911 entries_20);
9912 return builder.commit();
9913}
9914
9915template <typename ENTRIES_01,
9916 typename ENTRIES_02,
9917 typename ENTRIES_03,
9918 typename ENTRIES_04,
9919 typename ENTRIES_05,
9920 typename ENTRIES_06,
9921 typename ENTRIES_07,
9922 typename ENTRIES_08,
9923 typename ENTRIES_09,
9924 typename ENTRIES_10,
9925 typename ENTRIES_11,
9926 typename ENTRIES_12,
9927 typename ENTRIES_13,
9928 typename ENTRIES_14,
9929 typename ENTRIES_15,
9930 typename ENTRIES_16,
9931 typename ENTRIES_17,
9932 typename ENTRIES_18,
9933 typename ENTRIES_19,
9934 typename ENTRIES_20,
9935 typename ENTRIES_21,
9936 typename ENTRIES_22>
9937inline
9938bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
9939 const ENTRIES_02& entries_02,
9940 const ENTRIES_03& entries_03,
9941 const ENTRIES_04& entries_04,
9942 const ENTRIES_05& entries_05,
9943 const ENTRIES_06& entries_06,
9944 const ENTRIES_07& entries_07,
9945 const ENTRIES_08& entries_08,
9946 const ENTRIES_09& entries_09,
9947 const ENTRIES_10& entries_10,
9948 const ENTRIES_11& entries_11,
9949 const ENTRIES_12& entries_12,
9950 const ENTRIES_13& entries_13,
9951 const ENTRIES_14& entries_14,
9952 const ENTRIES_15& entries_15,
9953 const ENTRIES_16& entries_16,
9954 const ENTRIES_17& entries_17,
9955 const ENTRIES_18& entries_18,
9956 const ENTRIES_19& entries_19,
9957 const ENTRIES_20& entries_20,
9958 const ENTRIES_21& entries_21,
9959 const ENTRIES_22& entries_22
9960 ) const
9961{
9962 const int numArguments = 22u;
9963
9964 BSLMF_ASSERT(0 == numArguments % 2);
9965
9966 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
9967 pushBackHelper(&builder, entries_01,
9968 entries_02,
9969 entries_03,
9970 entries_04,
9971 entries_05,
9972 entries_06,
9973 entries_07,
9974 entries_08,
9975 entries_09,
9976 entries_10,
9977 entries_11,
9978 entries_12,
9979 entries_13,
9980 entries_14,
9981 entries_15,
9982 entries_16,
9983 entries_17,
9984 entries_18,
9985 entries_19,
9986 entries_20,
9987 entries_21,
9988 entries_22);
9989 return builder.commit();
9990}
9991
9992template <typename ENTRIES_01,
9993 typename ENTRIES_02,
9994 typename ENTRIES_03,
9995 typename ENTRIES_04,
9996 typename ENTRIES_05,
9997 typename ENTRIES_06,
9998 typename ENTRIES_07,
9999 typename ENTRIES_08,
10000 typename ENTRIES_09,
10001 typename ENTRIES_10,
10002 typename ENTRIES_11,
10003 typename ENTRIES_12,
10004 typename ENTRIES_13,
10005 typename ENTRIES_14,
10006 typename ENTRIES_15,
10007 typename ENTRIES_16,
10008 typename ENTRIES_17,
10009 typename ENTRIES_18,
10010 typename ENTRIES_19,
10011 typename ENTRIES_20,
10012 typename ENTRIES_21,
10013 typename ENTRIES_22,
10014 typename ENTRIES_23,
10015 typename ENTRIES_24>
10016inline
10017bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10018 const ENTRIES_02& entries_02,
10019 const ENTRIES_03& entries_03,
10020 const ENTRIES_04& entries_04,
10021 const ENTRIES_05& entries_05,
10022 const ENTRIES_06& entries_06,
10023 const ENTRIES_07& entries_07,
10024 const ENTRIES_08& entries_08,
10025 const ENTRIES_09& entries_09,
10026 const ENTRIES_10& entries_10,
10027 const ENTRIES_11& entries_11,
10028 const ENTRIES_12& entries_12,
10029 const ENTRIES_13& entries_13,
10030 const ENTRIES_14& entries_14,
10031 const ENTRIES_15& entries_15,
10032 const ENTRIES_16& entries_16,
10033 const ENTRIES_17& entries_17,
10034 const ENTRIES_18& entries_18,
10035 const ENTRIES_19& entries_19,
10036 const ENTRIES_20& entries_20,
10037 const ENTRIES_21& entries_21,
10038 const ENTRIES_22& entries_22,
10039 const ENTRIES_23& entries_23,
10040 const ENTRIES_24& entries_24
10041 ) const
10042{
10043 const int numArguments = 24u;
10044
10045 BSLMF_ASSERT(0 == numArguments % 2);
10046
10047 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10048 pushBackHelper(&builder, entries_01,
10049 entries_02,
10050 entries_03,
10051 entries_04,
10052 entries_05,
10053 entries_06,
10054 entries_07,
10055 entries_08,
10056 entries_09,
10057 entries_10,
10058 entries_11,
10059 entries_12,
10060 entries_13,
10061 entries_14,
10062 entries_15,
10063 entries_16,
10064 entries_17,
10065 entries_18,
10066 entries_19,
10067 entries_20,
10068 entries_21,
10069 entries_22,
10070 entries_23,
10071 entries_24);
10072 return builder.commit();
10073}
10074
10075template <typename ENTRIES_01,
10076 typename ENTRIES_02,
10077 typename ENTRIES_03,
10078 typename ENTRIES_04,
10079 typename ENTRIES_05,
10080 typename ENTRIES_06,
10081 typename ENTRIES_07,
10082 typename ENTRIES_08,
10083 typename ENTRIES_09,
10084 typename ENTRIES_10,
10085 typename ENTRIES_11,
10086 typename ENTRIES_12,
10087 typename ENTRIES_13,
10088 typename ENTRIES_14,
10089 typename ENTRIES_15,
10090 typename ENTRIES_16,
10091 typename ENTRIES_17,
10092 typename ENTRIES_18,
10093 typename ENTRIES_19,
10094 typename ENTRIES_20,
10095 typename ENTRIES_21,
10096 typename ENTRIES_22,
10097 typename ENTRIES_23,
10098 typename ENTRIES_24,
10099 typename ENTRIES_25,
10100 typename ENTRIES_26>
10101inline
10102bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10103 const ENTRIES_02& entries_02,
10104 const ENTRIES_03& entries_03,
10105 const ENTRIES_04& entries_04,
10106 const ENTRIES_05& entries_05,
10107 const ENTRIES_06& entries_06,
10108 const ENTRIES_07& entries_07,
10109 const ENTRIES_08& entries_08,
10110 const ENTRIES_09& entries_09,
10111 const ENTRIES_10& entries_10,
10112 const ENTRIES_11& entries_11,
10113 const ENTRIES_12& entries_12,
10114 const ENTRIES_13& entries_13,
10115 const ENTRIES_14& entries_14,
10116 const ENTRIES_15& entries_15,
10117 const ENTRIES_16& entries_16,
10118 const ENTRIES_17& entries_17,
10119 const ENTRIES_18& entries_18,
10120 const ENTRIES_19& entries_19,
10121 const ENTRIES_20& entries_20,
10122 const ENTRIES_21& entries_21,
10123 const ENTRIES_22& entries_22,
10124 const ENTRIES_23& entries_23,
10125 const ENTRIES_24& entries_24,
10126 const ENTRIES_25& entries_25,
10127 const ENTRIES_26& entries_26
10128 ) const
10129{
10130 const int numArguments = 26u;
10131
10132 BSLMF_ASSERT(0 == numArguments % 2);
10133
10134 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10135 pushBackHelper(&builder, entries_01,
10136 entries_02,
10137 entries_03,
10138 entries_04,
10139 entries_05,
10140 entries_06,
10141 entries_07,
10142 entries_08,
10143 entries_09,
10144 entries_10,
10145 entries_11,
10146 entries_12,
10147 entries_13,
10148 entries_14,
10149 entries_15,
10150 entries_16,
10151 entries_17,
10152 entries_18,
10153 entries_19,
10154 entries_20,
10155 entries_21,
10156 entries_22,
10157 entries_23,
10158 entries_24,
10159 entries_25,
10160 entries_26);
10161 return builder.commit();
10162}
10163
10164template <typename ENTRIES_01,
10165 typename ENTRIES_02,
10166 typename ENTRIES_03,
10167 typename ENTRIES_04,
10168 typename ENTRIES_05,
10169 typename ENTRIES_06,
10170 typename ENTRIES_07,
10171 typename ENTRIES_08,
10172 typename ENTRIES_09,
10173 typename ENTRIES_10,
10174 typename ENTRIES_11,
10175 typename ENTRIES_12,
10176 typename ENTRIES_13,
10177 typename ENTRIES_14,
10178 typename ENTRIES_15,
10179 typename ENTRIES_16,
10180 typename ENTRIES_17,
10181 typename ENTRIES_18,
10182 typename ENTRIES_19,
10183 typename ENTRIES_20,
10184 typename ENTRIES_21,
10185 typename ENTRIES_22,
10186 typename ENTRIES_23,
10187 typename ENTRIES_24,
10188 typename ENTRIES_25,
10189 typename ENTRIES_26,
10190 typename ENTRIES_27,
10191 typename ENTRIES_28>
10192inline
10193bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10194 const ENTRIES_02& entries_02,
10195 const ENTRIES_03& entries_03,
10196 const ENTRIES_04& entries_04,
10197 const ENTRIES_05& entries_05,
10198 const ENTRIES_06& entries_06,
10199 const ENTRIES_07& entries_07,
10200 const ENTRIES_08& entries_08,
10201 const ENTRIES_09& entries_09,
10202 const ENTRIES_10& entries_10,
10203 const ENTRIES_11& entries_11,
10204 const ENTRIES_12& entries_12,
10205 const ENTRIES_13& entries_13,
10206 const ENTRIES_14& entries_14,
10207 const ENTRIES_15& entries_15,
10208 const ENTRIES_16& entries_16,
10209 const ENTRIES_17& entries_17,
10210 const ENTRIES_18& entries_18,
10211 const ENTRIES_19& entries_19,
10212 const ENTRIES_20& entries_20,
10213 const ENTRIES_21& entries_21,
10214 const ENTRIES_22& entries_22,
10215 const ENTRIES_23& entries_23,
10216 const ENTRIES_24& entries_24,
10217 const ENTRIES_25& entries_25,
10218 const ENTRIES_26& entries_26,
10219 const ENTRIES_27& entries_27,
10220 const ENTRIES_28& entries_28
10221 ) const
10222{
10223 const int numArguments = 28u;
10224
10225 BSLMF_ASSERT(0 == numArguments % 2);
10226
10227 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10228 pushBackHelper(&builder, entries_01,
10229 entries_02,
10230 entries_03,
10231 entries_04,
10232 entries_05,
10233 entries_06,
10234 entries_07,
10235 entries_08,
10236 entries_09,
10237 entries_10,
10238 entries_11,
10239 entries_12,
10240 entries_13,
10241 entries_14,
10242 entries_15,
10243 entries_16,
10244 entries_17,
10245 entries_18,
10246 entries_19,
10247 entries_20,
10248 entries_21,
10249 entries_22,
10250 entries_23,
10251 entries_24,
10252 entries_25,
10253 entries_26,
10254 entries_27,
10255 entries_28);
10256 return builder.commit();
10257}
10258
10259template <typename ENTRIES_01,
10260 typename ENTRIES_02,
10261 typename ENTRIES_03,
10262 typename ENTRIES_04,
10263 typename ENTRIES_05,
10264 typename ENTRIES_06,
10265 typename ENTRIES_07,
10266 typename ENTRIES_08,
10267 typename ENTRIES_09,
10268 typename ENTRIES_10,
10269 typename ENTRIES_11,
10270 typename ENTRIES_12,
10271 typename ENTRIES_13,
10272 typename ENTRIES_14,
10273 typename ENTRIES_15,
10274 typename ENTRIES_16,
10275 typename ENTRIES_17,
10276 typename ENTRIES_18,
10277 typename ENTRIES_19,
10278 typename ENTRIES_20,
10279 typename ENTRIES_21,
10280 typename ENTRIES_22,
10281 typename ENTRIES_23,
10282 typename ENTRIES_24,
10283 typename ENTRIES_25,
10284 typename ENTRIES_26,
10285 typename ENTRIES_27,
10286 typename ENTRIES_28,
10287 typename ENTRIES_29,
10288 typename ENTRIES_30>
10289inline
10290bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10291 const ENTRIES_02& entries_02,
10292 const ENTRIES_03& entries_03,
10293 const ENTRIES_04& entries_04,
10294 const ENTRIES_05& entries_05,
10295 const ENTRIES_06& entries_06,
10296 const ENTRIES_07& entries_07,
10297 const ENTRIES_08& entries_08,
10298 const ENTRIES_09& entries_09,
10299 const ENTRIES_10& entries_10,
10300 const ENTRIES_11& entries_11,
10301 const ENTRIES_12& entries_12,
10302 const ENTRIES_13& entries_13,
10303 const ENTRIES_14& entries_14,
10304 const ENTRIES_15& entries_15,
10305 const ENTRIES_16& entries_16,
10306 const ENTRIES_17& entries_17,
10307 const ENTRIES_18& entries_18,
10308 const ENTRIES_19& entries_19,
10309 const ENTRIES_20& entries_20,
10310 const ENTRIES_21& entries_21,
10311 const ENTRIES_22& entries_22,
10312 const ENTRIES_23& entries_23,
10313 const ENTRIES_24& entries_24,
10314 const ENTRIES_25& entries_25,
10315 const ENTRIES_26& entries_26,
10316 const ENTRIES_27& entries_27,
10317 const ENTRIES_28& entries_28,
10318 const ENTRIES_29& entries_29,
10319 const ENTRIES_30& entries_30
10320 ) const
10321{
10322 const int numArguments = 30u;
10323
10324 BSLMF_ASSERT(0 == numArguments % 2);
10325
10326 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10327 pushBackHelper(&builder, entries_01,
10328 entries_02,
10329 entries_03,
10330 entries_04,
10331 entries_05,
10332 entries_06,
10333 entries_07,
10334 entries_08,
10335 entries_09,
10336 entries_10,
10337 entries_11,
10338 entries_12,
10339 entries_13,
10340 entries_14,
10341 entries_15,
10342 entries_16,
10343 entries_17,
10344 entries_18,
10345 entries_19,
10346 entries_20,
10347 entries_21,
10348 entries_22,
10349 entries_23,
10350 entries_24,
10351 entries_25,
10352 entries_26,
10353 entries_27,
10354 entries_28,
10355 entries_29,
10356 entries_30);
10357 return builder.commit();
10358}
10359
10360template <typename ENTRIES_01,
10361 typename ENTRIES_02,
10362 typename ENTRIES_03,
10363 typename ENTRIES_04,
10364 typename ENTRIES_05,
10365 typename ENTRIES_06,
10366 typename ENTRIES_07,
10367 typename ENTRIES_08,
10368 typename ENTRIES_09,
10369 typename ENTRIES_10,
10370 typename ENTRIES_11,
10371 typename ENTRIES_12,
10372 typename ENTRIES_13,
10373 typename ENTRIES_14,
10374 typename ENTRIES_15,
10375 typename ENTRIES_16,
10376 typename ENTRIES_17,
10377 typename ENTRIES_18,
10378 typename ENTRIES_19,
10379 typename ENTRIES_20,
10380 typename ENTRIES_21,
10381 typename ENTRIES_22,
10382 typename ENTRIES_23,
10383 typename ENTRIES_24,
10384 typename ENTRIES_25,
10385 typename ENTRIES_26,
10386 typename ENTRIES_27,
10387 typename ENTRIES_28,
10388 typename ENTRIES_29,
10389 typename ENTRIES_30,
10390 typename ENTRIES_31,
10391 typename ENTRIES_32>
10392inline
10393bdld::Datum DatumMaker::mok(const ENTRIES_01& entries_01,
10394 const ENTRIES_02& entries_02,
10395 const ENTRIES_03& entries_03,
10396 const ENTRIES_04& entries_04,
10397 const ENTRIES_05& entries_05,
10398 const ENTRIES_06& entries_06,
10399 const ENTRIES_07& entries_07,
10400 const ENTRIES_08& entries_08,
10401 const ENTRIES_09& entries_09,
10402 const ENTRIES_10& entries_10,
10403 const ENTRIES_11& entries_11,
10404 const ENTRIES_12& entries_12,
10405 const ENTRIES_13& entries_13,
10406 const ENTRIES_14& entries_14,
10407 const ENTRIES_15& entries_15,
10408 const ENTRIES_16& entries_16,
10409 const ENTRIES_17& entries_17,
10410 const ENTRIES_18& entries_18,
10411 const ENTRIES_19& entries_19,
10412 const ENTRIES_20& entries_20,
10413 const ENTRIES_21& entries_21,
10414 const ENTRIES_22& entries_22,
10415 const ENTRIES_23& entries_23,
10416 const ENTRIES_24& entries_24,
10417 const ENTRIES_25& entries_25,
10418 const ENTRIES_26& entries_26,
10419 const ENTRIES_27& entries_27,
10420 const ENTRIES_28& entries_28,
10421 const ENTRIES_29& entries_29,
10422 const ENTRIES_30& entries_30,
10423 const ENTRIES_31& entries_31,
10424 const ENTRIES_32& entries_32
10425 ) const
10426{
10427 const int numArguments = 32u;
10428
10429 BSLMF_ASSERT(0 == numArguments % 2);
10430
10431 bdld::DatumMapOwningKeysBuilder builder(d_allocator);
10432 pushBackHelper(&builder, entries_01,
10433 entries_02,
10434 entries_03,
10435 entries_04,
10436 entries_05,
10437 entries_06,
10438 entries_07,
10439 entries_08,
10440 entries_09,
10441 entries_10,
10442 entries_11,
10443 entries_12,
10444 entries_13,
10445 entries_14,
10446 entries_15,
10447 entries_16,
10448 entries_17,
10449 entries_18,
10450 entries_19,
10451 entries_20,
10452 entries_21,
10453 entries_22,
10454 entries_23,
10455 entries_24,
10456 entries_25,
10457 entries_26,
10458 entries_27,
10459 entries_28,
10460 entries_29,
10461 entries_30,
10462 entries_31,
10463 entries_32);
10464 return builder.commit();
10465}
10466
10467#endif
10468
10469
10470#if !BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
10471template <typename... ENTRIES>
10472inline
10473bdld::Datum DatumMaker::im(const ENTRIES&... entries) const
10474{
10475 const int numArguments = sizeof...(ENTRIES);
10476
10477 // Due to MSVC not recognizing bitwise and of a constant expression and a
10478 // string literal as a constant expression, we don't use a meaningful error
10479 // as part of this assert.
10480 //
10481 // See: https://connect.microsoft.com/VisualStudio/feedback/details/1523001
10482 BSLMF_ASSERT(0 == numArguments % 2);
10483
10484 const int mapElements = numArguments / 2;
10485 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10486 pushBackHelper(&builder, entries...);
10487 return builder.commit();
10488}
10489#else
10490inline
10492{
10493 const int mapElements = 0;
10494 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10495 pushBackHelper(&builder);
10496 return builder.commit();
10497}
10498
10499template <typename ENTRY_01>
10500inline
10501bdld::Datum DatumMaker::im(int key_01,
10502 const ENTRY_01& entry_01
10503 ) const
10504{
10505 const int mapElements = 1;
10506 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10507 pushBackHelper(&builder, key_01, entry_01);
10508 return builder.commit();
10509}
10510
10511template <typename ENTRY_01,
10512 typename ENTRY_02>
10513inline
10514bdld::Datum DatumMaker::im(int key_01,
10515 const ENTRY_01& entry_01,
10516 int key_02,
10517 const ENTRY_02& entry_02
10518 ) const
10519{
10520 const int mapElements = 2;
10521 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10522 pushBackHelper(&builder, key_01, entry_01,
10523 key_02, entry_02);
10524 return builder.commit();
10525}
10526
10527template <typename ENTRY_01,
10528 typename ENTRY_02,
10529 typename ENTRY_03>
10530inline
10531bdld::Datum DatumMaker::im(int key_01,
10532 const ENTRY_01& entry_01,
10533 int key_02,
10534 const ENTRY_02& entry_02,
10535 int key_03,
10536 const ENTRY_03& entry_03
10537 ) const
10538{
10539 const int mapElements = 3;
10540 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10541 pushBackHelper(&builder, key_01, entry_01,
10542 key_02, entry_02,
10543 key_03, entry_03);
10544 return builder.commit();
10545}
10546
10547template <typename ENTRY_01,
10548 typename ENTRY_02,
10549 typename ENTRY_03,
10550 typename ENTRY_04>
10551inline
10552bdld::Datum DatumMaker::im(int key_01,
10553 const ENTRY_01& entry_01,
10554 int key_02,
10555 const ENTRY_02& entry_02,
10556 int key_03,
10557 const ENTRY_03& entry_03,
10558 int key_04,
10559 const ENTRY_04& entry_04
10560 ) const
10561{
10562 const int mapElements = 4;
10563 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10564 pushBackHelper(&builder, key_01, entry_01,
10565 key_02, entry_02,
10566 key_03, entry_03,
10567 key_04, entry_04);
10568 return builder.commit();
10569}
10570
10571template <typename ENTRY_01,
10572 typename ENTRY_02,
10573 typename ENTRY_03,
10574 typename ENTRY_04,
10575 typename ENTRY_05>
10576inline
10577bdld::Datum DatumMaker::im(int key_01,
10578 const ENTRY_01& entry_01,
10579 int key_02,
10580 const ENTRY_02& entry_02,
10581 int key_03,
10582 const ENTRY_03& entry_03,
10583 int key_04,
10584 const ENTRY_04& entry_04,
10585 int key_05,
10586 const ENTRY_05& entry_05
10587 ) const
10588{
10589 const int mapElements = 5;
10590 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10591 pushBackHelper(&builder, key_01, entry_01,
10592 key_02, entry_02,
10593 key_03, entry_03,
10594 key_04, entry_04,
10595 key_05, entry_05);
10596 return builder.commit();
10597}
10598
10599template <typename ENTRY_01,
10600 typename ENTRY_02,
10601 typename ENTRY_03,
10602 typename ENTRY_04,
10603 typename ENTRY_05,
10604 typename ENTRY_06>
10605inline
10606bdld::Datum DatumMaker::im(int key_01,
10607 const ENTRY_01& entry_01,
10608 int key_02,
10609 const ENTRY_02& entry_02,
10610 int key_03,
10611 const ENTRY_03& entry_03,
10612 int key_04,
10613 const ENTRY_04& entry_04,
10614 int key_05,
10615 const ENTRY_05& entry_05,
10616 int key_06,
10617 const ENTRY_06& entry_06
10618 ) const
10619{
10620 const int mapElements = 6;
10621 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10622 pushBackHelper(&builder, key_01, entry_01,
10623 key_02, entry_02,
10624 key_03, entry_03,
10625 key_04, entry_04,
10626 key_05, entry_05,
10627 key_06, entry_06);
10628 return builder.commit();
10629}
10630
10631template <typename ENTRY_01,
10632 typename ENTRY_02,
10633 typename ENTRY_03,
10634 typename ENTRY_04,
10635 typename ENTRY_05,
10636 typename ENTRY_06,
10637 typename ENTRY_07>
10638inline
10639bdld::Datum DatumMaker::im(int key_01,
10640 const ENTRY_01& entry_01,
10641 int key_02,
10642 const ENTRY_02& entry_02,
10643 int key_03,
10644 const ENTRY_03& entry_03,
10645 int key_04,
10646 const ENTRY_04& entry_04,
10647 int key_05,
10648 const ENTRY_05& entry_05,
10649 int key_06,
10650 const ENTRY_06& entry_06,
10651 int key_07,
10652 const ENTRY_07& entry_07
10653 ) const
10654{
10655 const int mapElements = 7;
10656 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10657 pushBackHelper(&builder, key_01, entry_01,
10658 key_02, entry_02,
10659 key_03, entry_03,
10660 key_04, entry_04,
10661 key_05, entry_05,
10662 key_06, entry_06,
10663 key_07, entry_07);
10664 return builder.commit();
10665}
10666
10667template <typename ENTRY_01,
10668 typename ENTRY_02,
10669 typename ENTRY_03,
10670 typename ENTRY_04,
10671 typename ENTRY_05,
10672 typename ENTRY_06,
10673 typename ENTRY_07,
10674 typename ENTRY_08>
10675inline
10676bdld::Datum DatumMaker::im(int key_01,
10677 const ENTRY_01& entry_01,
10678 int key_02,
10679 const ENTRY_02& entry_02,
10680 int key_03,
10681 const ENTRY_03& entry_03,
10682 int key_04,
10683 const ENTRY_04& entry_04,
10684 int key_05,
10685 const ENTRY_05& entry_05,
10686 int key_06,
10687 const ENTRY_06& entry_06,
10688 int key_07,
10689 const ENTRY_07& entry_07,
10690 int key_08,
10691 const ENTRY_08& entry_08
10692 ) const
10693{
10694 const int mapElements = 8;
10695 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10696 pushBackHelper(&builder, key_01, entry_01,
10697 key_02, entry_02,
10698 key_03, entry_03,
10699 key_04, entry_04,
10700 key_05, entry_05,
10701 key_06, entry_06,
10702 key_07, entry_07,
10703 key_08, entry_08);
10704 return builder.commit();
10705}
10706
10707template <typename ENTRY_01,
10708 typename ENTRY_02,
10709 typename ENTRY_03,
10710 typename ENTRY_04,
10711 typename ENTRY_05,
10712 typename ENTRY_06,
10713 typename ENTRY_07,
10714 typename ENTRY_08,
10715 typename ENTRY_09>
10716inline
10717bdld::Datum DatumMaker::im(int key_01,
10718 const ENTRY_01& entry_01,
10719 int key_02,
10720 const ENTRY_02& entry_02,
10721 int key_03,
10722 const ENTRY_03& entry_03,
10723 int key_04,
10724 const ENTRY_04& entry_04,
10725 int key_05,
10726 const ENTRY_05& entry_05,
10727 int key_06,
10728 const ENTRY_06& entry_06,
10729 int key_07,
10730 const ENTRY_07& entry_07,
10731 int key_08,
10732 const ENTRY_08& entry_08,
10733 int key_09,
10734 const ENTRY_09& entry_09
10735 ) const
10736{
10737 const int mapElements = 9;
10738 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10739 pushBackHelper(&builder, key_01, entry_01,
10740 key_02, entry_02,
10741 key_03, entry_03,
10742 key_04, entry_04,
10743 key_05, entry_05,
10744 key_06, entry_06,
10745 key_07, entry_07,
10746 key_08, entry_08,
10747 key_09, entry_09);
10748 return builder.commit();
10749}
10750
10751template <typename ENTRY_01,
10752 typename ENTRY_02,
10753 typename ENTRY_03,
10754 typename ENTRY_04,
10755 typename ENTRY_05,
10756 typename ENTRY_06,
10757 typename ENTRY_07,
10758 typename ENTRY_08,
10759 typename ENTRY_09,
10760 typename ENTRY_10>
10761inline
10762bdld::Datum DatumMaker::im(int key_01,
10763 const ENTRY_01& entry_01,
10764 int key_02,
10765 const ENTRY_02& entry_02,
10766 int key_03,
10767 const ENTRY_03& entry_03,
10768 int key_04,
10769 const ENTRY_04& entry_04,
10770 int key_05,
10771 const ENTRY_05& entry_05,
10772 int key_06,
10773 const ENTRY_06& entry_06,
10774 int key_07,
10775 const ENTRY_07& entry_07,
10776 int key_08,
10777 const ENTRY_08& entry_08,
10778 int key_09,
10779 const ENTRY_09& entry_09,
10780 int key_10,
10781 const ENTRY_10& entry_10
10782 ) const
10783{
10784 const int mapElements = 10;
10785 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10786 pushBackHelper(&builder, key_01, entry_01,
10787 key_02, entry_02,
10788 key_03, entry_03,
10789 key_04, entry_04,
10790 key_05, entry_05,
10791 key_06, entry_06,
10792 key_07, entry_07,
10793 key_08, entry_08,
10794 key_09, entry_09,
10795 key_10, entry_10);
10796 return builder.commit();
10797}
10798
10799template <typename ENTRY_01,
10800 typename ENTRY_02,
10801 typename ENTRY_03,
10802 typename ENTRY_04,
10803 typename ENTRY_05,
10804 typename ENTRY_06,
10805 typename ENTRY_07,
10806 typename ENTRY_08,
10807 typename ENTRY_09,
10808 typename ENTRY_10,
10809 typename ENTRY_11>
10810inline
10811bdld::Datum DatumMaker::im(int key_01,
10812 const ENTRY_01& entry_01,
10813 int key_02,
10814 const ENTRY_02& entry_02,
10815 int key_03,
10816 const ENTRY_03& entry_03,
10817 int key_04,
10818 const ENTRY_04& entry_04,
10819 int key_05,
10820 const ENTRY_05& entry_05,
10821 int key_06,
10822 const ENTRY_06& entry_06,
10823 int key_07,
10824 const ENTRY_07& entry_07,
10825 int key_08,
10826 const ENTRY_08& entry_08,
10827 int key_09,
10828 const ENTRY_09& entry_09,
10829 int key_10,
10830 const ENTRY_10& entry_10,
10831 int key_11,
10832 const ENTRY_11& entry_11
10833 ) const
10834{
10835 const int mapElements = 11;
10836 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10837 pushBackHelper(&builder, key_01, entry_01,
10838 key_02, entry_02,
10839 key_03, entry_03,
10840 key_04, entry_04,
10841 key_05, entry_05,
10842 key_06, entry_06,
10843 key_07, entry_07,
10844 key_08, entry_08,
10845 key_09, entry_09,
10846 key_10, entry_10,
10847 key_11, entry_11);
10848 return builder.commit();
10849}
10850
10851template <typename ENTRY_01,
10852 typename ENTRY_02,
10853 typename ENTRY_03,
10854 typename ENTRY_04,
10855 typename ENTRY_05,
10856 typename ENTRY_06,
10857 typename ENTRY_07,
10858 typename ENTRY_08,
10859 typename ENTRY_09,
10860 typename ENTRY_10,
10861 typename ENTRY_11,
10862 typename ENTRY_12>
10863inline
10864bdld::Datum DatumMaker::im(int key_01,
10865 const ENTRY_01& entry_01,
10866 int key_02,
10867 const ENTRY_02& entry_02,
10868 int key_03,
10869 const ENTRY_03& entry_03,
10870 int key_04,
10871 const ENTRY_04& entry_04,
10872 int key_05,
10873 const ENTRY_05& entry_05,
10874 int key_06,
10875 const ENTRY_06& entry_06,
10876 int key_07,
10877 const ENTRY_07& entry_07,
10878 int key_08,
10879 const ENTRY_08& entry_08,
10880 int key_09,
10881 const ENTRY_09& entry_09,
10882 int key_10,
10883 const ENTRY_10& entry_10,
10884 int key_11,
10885 const ENTRY_11& entry_11,
10886 int key_12,
10887 const ENTRY_12& entry_12
10888 ) const
10889{
10890 const int mapElements = 12;
10891 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10892 pushBackHelper(&builder, key_01, entry_01,
10893 key_02, entry_02,
10894 key_03, entry_03,
10895 key_04, entry_04,
10896 key_05, entry_05,
10897 key_06, entry_06,
10898 key_07, entry_07,
10899 key_08, entry_08,
10900 key_09, entry_09,
10901 key_10, entry_10,
10902 key_11, entry_11,
10903 key_12, entry_12);
10904 return builder.commit();
10905}
10906
10907template <typename ENTRY_01,
10908 typename ENTRY_02,
10909 typename ENTRY_03,
10910 typename ENTRY_04,
10911 typename ENTRY_05,
10912 typename ENTRY_06,
10913 typename ENTRY_07,
10914 typename ENTRY_08,
10915 typename ENTRY_09,
10916 typename ENTRY_10,
10917 typename ENTRY_11,
10918 typename ENTRY_12,
10919 typename ENTRY_13>
10920inline
10921bdld::Datum DatumMaker::im(int key_01,
10922 const ENTRY_01& entry_01,
10923 int key_02,
10924 const ENTRY_02& entry_02,
10925 int key_03,
10926 const ENTRY_03& entry_03,
10927 int key_04,
10928 const ENTRY_04& entry_04,
10929 int key_05,
10930 const ENTRY_05& entry_05,
10931 int key_06,
10932 const ENTRY_06& entry_06,
10933 int key_07,
10934 const ENTRY_07& entry_07,
10935 int key_08,
10936 const ENTRY_08& entry_08,
10937 int key_09,
10938 const ENTRY_09& entry_09,
10939 int key_10,
10940 const ENTRY_10& entry_10,
10941 int key_11,
10942 const ENTRY_11& entry_11,
10943 int key_12,
10944 const ENTRY_12& entry_12,
10945 int key_13,
10946 const ENTRY_13& entry_13
10947 ) const
10948{
10949 const int mapElements = 13;
10950 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
10951 pushBackHelper(&builder, key_01, entry_01,
10952 key_02, entry_02,
10953 key_03, entry_03,
10954 key_04, entry_04,
10955 key_05, entry_05,
10956 key_06, entry_06,
10957 key_07, entry_07,
10958 key_08, entry_08,
10959 key_09, entry_09,
10960 key_10, entry_10,
10961 key_11, entry_11,
10962 key_12, entry_12,
10963 key_13, entry_13);
10964 return builder.commit();
10965}
10966
10967template <typename ENTRY_01,
10968 typename ENTRY_02,
10969 typename ENTRY_03,
10970 typename ENTRY_04,
10971 typename ENTRY_05,
10972 typename ENTRY_06,
10973 typename ENTRY_07,
10974 typename ENTRY_08,
10975 typename ENTRY_09,
10976 typename ENTRY_10,
10977 typename ENTRY_11,
10978 typename ENTRY_12,
10979 typename ENTRY_13,
10980 typename ENTRY_14>
10981inline
10982bdld::Datum DatumMaker::im(int key_01,
10983 const ENTRY_01& entry_01,
10984 int key_02,
10985 const ENTRY_02& entry_02,
10986 int key_03,
10987 const ENTRY_03& entry_03,
10988 int key_04,
10989 const ENTRY_04& entry_04,
10990 int key_05,
10991 const ENTRY_05& entry_05,
10992 int key_06,
10993 const ENTRY_06& entry_06,
10994 int key_07,
10995 const ENTRY_07& entry_07,
10996 int key_08,
10997 const ENTRY_08& entry_08,
10998 int key_09,
10999 const ENTRY_09& entry_09,
11000 int key_10,
11001 const ENTRY_10& entry_10,
11002 int key_11,
11003 const ENTRY_11& entry_11,
11004 int key_12,
11005 const ENTRY_12& entry_12,
11006 int key_13,
11007 const ENTRY_13& entry_13,
11008 int key_14,
11009 const ENTRY_14& entry_14
11010 ) const
11011{
11012 const int mapElements = 14;
11013 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
11014 pushBackHelper(&builder, key_01, entry_01,
11015 key_02, entry_02,
11016 key_03, entry_03,
11017 key_04, entry_04,
11018 key_05, entry_05,
11019 key_06, entry_06,
11020 key_07, entry_07,
11021 key_08, entry_08,
11022 key_09, entry_09,
11023 key_10, entry_10,
11024 key_11, entry_11,
11025 key_12, entry_12,
11026 key_13, entry_13,
11027 key_14, entry_14);
11028 return builder.commit();
11029}
11030
11031template <typename ENTRY_01,
11032 typename ENTRY_02,
11033 typename ENTRY_03,
11034 typename ENTRY_04,
11035 typename ENTRY_05,
11036 typename ENTRY_06,
11037 typename ENTRY_07,
11038 typename ENTRY_08,
11039 typename ENTRY_09,
11040 typename ENTRY_10,
11041 typename ENTRY_11,
11042 typename ENTRY_12,
11043 typename ENTRY_13,
11044 typename ENTRY_14,
11045 typename ENTRY_15>
11046inline
11047bdld::Datum DatumMaker::im(int key_01,
11048 const ENTRY_01& entry_01,
11049 int key_02,
11050 const ENTRY_02& entry_02,
11051 int key_03,
11052 const ENTRY_03& entry_03,
11053 int key_04,
11054 const ENTRY_04& entry_04,
11055 int key_05,
11056 const ENTRY_05& entry_05,
11057 int key_06,
11058 const ENTRY_06& entry_06,
11059 int key_07,
11060 const ENTRY_07& entry_07,
11061 int key_08,
11062 const ENTRY_08& entry_08,
11063 int key_09,
11064 const ENTRY_09& entry_09,
11065 int key_10,
11066 const ENTRY_10& entry_10,
11067 int key_11,
11068 const ENTRY_11& entry_11,
11069 int key_12,
11070 const ENTRY_12& entry_12,
11071 int key_13,
11072 const ENTRY_13& entry_13,
11073 int key_14,
11074 const ENTRY_14& entry_14,
11075 int key_15,
11076 const ENTRY_15& entry_15
11077 ) const
11078{
11079 const int mapElements = 15;
11080 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
11081 pushBackHelper(&builder, key_01, entry_01,
11082 key_02, entry_02,
11083 key_03, entry_03,
11084 key_04, entry_04,
11085 key_05, entry_05,
11086 key_06, entry_06,
11087 key_07, entry_07,
11088 key_08, entry_08,
11089 key_09, entry_09,
11090 key_10, entry_10,
11091 key_11, entry_11,
11092 key_12, entry_12,
11093 key_13, entry_13,
11094 key_14, entry_14,
11095 key_15, entry_15);
11096 return builder.commit();
11097}
11098
11099template <typename ENTRY_01,
11100 typename ENTRY_02,
11101 typename ENTRY_03,
11102 typename ENTRY_04,
11103 typename ENTRY_05,
11104 typename ENTRY_06,
11105 typename ENTRY_07,
11106 typename ENTRY_08,
11107 typename ENTRY_09,
11108 typename ENTRY_10,
11109 typename ENTRY_11,
11110 typename ENTRY_12,
11111 typename ENTRY_13,
11112 typename ENTRY_14,
11113 typename ENTRY_15,
11114 typename ENTRY_16>
11115inline
11116bdld::Datum DatumMaker::im(int key_01,
11117 const ENTRY_01& entry_01,
11118 int key_02,
11119 const ENTRY_02& entry_02,
11120 int key_03,
11121 const ENTRY_03& entry_03,
11122 int key_04,
11123 const ENTRY_04& entry_04,
11124 int key_05,
11125 const ENTRY_05& entry_05,
11126 int key_06,
11127 const ENTRY_06& entry_06,
11128 int key_07,
11129 const ENTRY_07& entry_07,
11130 int key_08,
11131 const ENTRY_08& entry_08,
11132 int key_09,
11133 const ENTRY_09& entry_09,
11134 int key_10,
11135 const ENTRY_10& entry_10,
11136 int key_11,
11137 const ENTRY_11& entry_11,
11138 int key_12,
11139 const ENTRY_12& entry_12,
11140 int key_13,
11141 const ENTRY_13& entry_13,
11142 int key_14,
11143 const ENTRY_14& entry_14,
11144 int key_15,
11145 const ENTRY_15& entry_15,
11146 int key_16,
11147 const ENTRY_16& entry_16
11148 ) const
11149{
11150 const int mapElements = 16;
11151 bdld::DatumIntMapBuilder builder(mapElements, d_allocator);
11152 pushBackHelper(&builder, key_01, entry_01,
11153 key_02, entry_02,
11154 key_03, entry_03,
11155 key_04, entry_04,
11156 key_05, entry_05,
11157 key_06, entry_06,
11158 key_07, entry_07,
11159 key_08, entry_08,
11160 key_09, entry_09,
11161 key_10, entry_10,
11162 key_11, entry_11,
11163 key_12, entry_12,
11164 key_13, entry_13,
11165 key_14, entry_14,
11166 key_15, entry_15,
11167 key_16, entry_16);
11168 return builder.commit();
11169}
11170
11171#endif
11172
11173inline
11175{
11176 return bdld::Datum::createStringRef(string, d_allocator);
11177}
11178
11179} // close package namespace
11180
11181
11182#endif
11183
11184// ----------------------------------------------------------------------------
11185// Copyright 2016 Bloomberg Finance L.P.
11186//
11187// Licensed under the Apache License, Version 2.0 (the "License");
11188// you may not use this file except in compliance with the License.
11189// You may obtain a copy of the License at
11190//
11191// http://www.apache.org/licenses/LICENSE-2.0
11192//
11193// Unless required by applicable law or agreed to in writing, software
11194// distributed under the License is distributed on an "AS IS" BASIS,
11195// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11196// See the License for the specific language governing permissions and
11197// limitations under the License.
11198// ----------------------------- END-OF-FILE ----------------------------------
11199
11200/** @} */
11201/** @} */
11202/** @} */
Definition bdlb_nullablevalue.h:257
bool isNull() const BSLS_KEYWORD_NOEXCEPT
Return true if this object is null, and false otherwise.
Definition bdlb_nullablevalue.h:1779
TYPE & value()
Definition bdlb_nullablevalue.h:1742
Definition bdld_datumarraybuilder.h:223
void pushBack(const Datum &value)
Definition bdld_datum.h:2461
Definition bdld_datumerror.h:160
bslstl::StringRef message() const
Definition bdld_datumerror.h:321
int code() const
Return the error code.
Definition bdld_datumerror.h:315
Definition bdld_datumintmapbuilder.h:161
void pushBack(int key, const Datum &value)
Definition bdld_datum.h:2628
Definition bdld_datummaker.h:158
bdld::Datum m(const ENTRIES &... entries) const
Definition bdld_datummaker.h:8404
bdld::Datum ref(const bslstl::StringRef &string) const
Definition bdld_datummaker.h:11174
bslma::Allocator * allocator() const
Definition bdld_datummaker.h:7693
bdld::Datum operator()() const
Return a bdld::Datum having a null value.
Definition bdld_datummaker.h:7705
bsl::allocator AllocatorType
Definition bdld_datummaker.h:162
bdld::Datum mok(const ENTRIES &... entries) const
Definition bdld_datummaker.h:9447
bdld::Datum bin(const void *pointer, bsl::size_t size) const
Definition bdld_datummaker.h:7838
AllocatorType get_allocator() const
Definition bdld_datummaker.h:7699
bdld::Datum im(const ENTRIES &... entries) const
Definition bdld_datummaker.h:10473
bdld::Datum a(const ELEMENTS &... elements) const
Definition bdld_datummaker.h:7846
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:2892
Definition bdld_datummapowningkeysbuilder.h:174
void pushBack(const bslstl::StringRef &key, const Datum &value)
Definition bdld_datum.h:2302
Definition bdld_datum.h:2232
Definition bdld_datumudt.h:144
void * data() const
Return the pointer to the user-defined object.
Definition bdld_datumudt.h:272
int type() const
Return the type of the user-defined object.
Definition bdld_datumudt.h:278
Definition bdld_datum.h:787
static Datum createTime(const bdlt::Time &value)
Return, by value, a datum having the specified Time value.
Definition bdld_datum.h:3957
static Datum adoptIntMap(const DatumMutableIntMapRef &intMap)
Definition bdld_datum.h:4028
static Datum createStringRef(const char *string, SizeType length, const AllocatorType &allocator)
Definition bdld_datum.h:3903
static Datum createNull()
Return, by value, a datum having no value.
Definition bdld_datum.h:3887
static Datum createError(int code)
Definition bdld_datum.h:3838
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:3863
static Datum createUdt(void *data, int type)
Definition bdld_datum.h:3978
static Datum createArrayReference(const Datum *array, SizeType length, const AllocatorType &allocator)
Definition bdld_datum.h:3678
static Datum createDecimal64(bdldfp::Decimal64 value, const AllocatorType &allocator)
static Datum createDouble(double value)
Definition bdld_datum.h:3820
static Datum createInteger(int value)
Return, by value, a datum having the specified int value.
Definition bdld_datum.h:3848
static Datum createDatetime(const bdlt::Datetime &value, const AllocatorType &allocator)
Definition bdld_datum.h:3756
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:3789
static Datum createDate(const bdlt::Date &value)
Return, by value, a datum having the specified Date value.
Definition bdld_datum.h:3738
static Datum adoptMap(const DatumMutableMapRef &map)
Definition bdld_datum.h:4014
static Datum createBoolean(bool value)
Return, by value, a datum having the specified bool value.
Definition bdld_datum.h:3723
Definition bdldfp_decimal.h:1834
Definition bdlt_date.h:294
Definition bdlt_datetimeinterval.h:201
Definition bdlt_datetime.h:331
Definition bdlt_time.h:196
Definition bslma_bslallocator.h:580
BloombergLP::bslma::Allocator * mechanism() const
Definition bslma_bslallocator.h:1126
Definition bslma_allocator.h:457
Definition bslstl_stringref.h:372
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:229
Definition bdld_datum.h:730
StringRefImp< char > StringRef
Definition bslstl_stringref.h:699
This struct is empty and represents a nil type.
Definition bslmf_nil.h:131
long long Int64
Definition bsls_types.h:132