11#ifndef INCLUDED_BSLFMT_FORMAT_ARGS_CPP03
12#define INCLUDED_BSLFMT_FORMAT_ARGS_CPP03
63#ifdef COMPILING_BSLFMT_FORMAT_ARGS_H
70template <
class t_OUT,
class t_CHAR>
71class basic_format_context;
73template <
class t_CONTEXT>
74class basic_format_args;
76template <
class t_VALUE>
77class Format_ContextOutputIteratorRef;
81typedef basic_format_context<Format_ContextOutputIteratorRef<char>,
char>
84typedef basic_format_context<Format_ContextOutputIteratorRef<wchar_t>,
wchar_t>
87typedef basic_format_args<format_context>
format_args;
95#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
98#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
99#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
101#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A
102#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
104template <
class t_CONTEXT
105#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 0
106 ,
class t_ARGS_0 = BSLS_COMPILERFEATURES_NILT
109#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 1
110 ,
class t_ARGS_1 = BSLS_COMPILERFEATURES_NILT
113#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 2
114 ,
class t_ARGS_2 = BSLS_COMPILERFEATURES_NILT
117#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 3
118 ,
class t_ARGS_3 = BSLS_COMPILERFEATURES_NILT
121#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 4
122 ,
class t_ARGS_4 = BSLS_COMPILERFEATURES_NILT
125#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 5
126 ,
class t_ARGS_5 = BSLS_COMPILERFEATURES_NILT
129#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 6
130 ,
class t_ARGS_6 = BSLS_COMPILERFEATURES_NILT
133#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 7
134 ,
class t_ARGS_7 = BSLS_COMPILERFEATURES_NILT
137#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 8
138 ,
class t_ARGS_8 = BSLS_COMPILERFEATURES_NILT
141#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 9
142 ,
class t_ARGS_9 = BSLS_COMPILERFEATURES_NILT
144 ,
class = BSLS_COMPILERFEATURES_NILT>
145class Format_ArgsStore;
147#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 0
148template <
class t_CONTEXT>
149class Format_ArgsStore<t_CONTEXT> {
154 template <
class t_INNER_CONTEXT>
160 explicit Format_ArgsStore(
161 const bsl::array<basic_format_arg<t_CONTEXT>, 0u>& args)
164 explicit Format_ArgsStore(
166 bsl::array<basic_format_arg<t_CONTEXT>, 0u> > args)
171#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 1
172template <
class t_CONTEXT,
class t_ARGS_01>
173class Format_ArgsStore<t_CONTEXT, t_ARGS_01> {
178 template <
class t_INNER_CONTEXT>
184 explicit Format_ArgsStore(
185 const bsl::array<basic_format_arg<t_CONTEXT>, 1u>& args)
188 explicit Format_ArgsStore(
190 bsl::array<basic_format_arg<t_CONTEXT>, 1u> > args)
195#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 2
196template <
class t_CONTEXT,
class t_ARGS_01,
198class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
204 template <
class t_INNER_CONTEXT>
210 explicit Format_ArgsStore(
211 const bsl::array<basic_format_arg<t_CONTEXT>, 2u>& args)
214 explicit Format_ArgsStore(
216 bsl::array<basic_format_arg<t_CONTEXT>, 2u> > args)
221#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 3
222template <
class t_CONTEXT,
class t_ARGS_01,
225class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
232 template <
class t_INNER_CONTEXT>
238 explicit Format_ArgsStore(
239 const bsl::array<basic_format_arg<t_CONTEXT>, 3u>& args)
242 explicit Format_ArgsStore(
244 bsl::array<basic_format_arg<t_CONTEXT>, 3u> > args)
249#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 4
250template <
class t_CONTEXT,
class t_ARGS_01,
254class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
262 template <
class t_INNER_CONTEXT>
268 explicit Format_ArgsStore(
269 const bsl::array<basic_format_arg<t_CONTEXT>, 4u>& args)
272 explicit Format_ArgsStore(
274 bsl::array<basic_format_arg<t_CONTEXT>, 4u> > args)
279#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 5
280template <
class t_CONTEXT,
class t_ARGS_01,
285class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
294 template <
class t_INNER_CONTEXT>
300 explicit Format_ArgsStore(
301 const bsl::array<basic_format_arg<t_CONTEXT>, 5u>& args)
304 explicit Format_ArgsStore(
306 bsl::array<basic_format_arg<t_CONTEXT>, 5u> > args)
311#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 6
312template <
class t_CONTEXT,
class t_ARGS_01,
318class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
328 template <
class t_INNER_CONTEXT>
334 explicit Format_ArgsStore(
335 const bsl::array<basic_format_arg<t_CONTEXT>, 6u>& args)
338 explicit Format_ArgsStore(
340 bsl::array<basic_format_arg<t_CONTEXT>, 6u> > args)
345#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 7
346template <
class t_CONTEXT,
class t_ARGS_01,
353class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
364 template <
class t_INNER_CONTEXT>
370 explicit Format_ArgsStore(
371 const bsl::array<basic_format_arg<t_CONTEXT>, 7u>& args)
374 explicit Format_ArgsStore(
376 bsl::array<basic_format_arg<t_CONTEXT>, 7u> > args)
381#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 8
382template <
class t_CONTEXT,
class t_ARGS_01,
390class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
402 template <
class t_INNER_CONTEXT>
408 explicit Format_ArgsStore(
409 const bsl::array<basic_format_arg<t_CONTEXT>, 8u>& args)
412 explicit Format_ArgsStore(
414 bsl::array<basic_format_arg<t_CONTEXT>, 8u> > args)
419#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 9
420template <
class t_CONTEXT,
class t_ARGS_01,
429class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
442 template <
class t_INNER_CONTEXT>
448 explicit Format_ArgsStore(
449 const bsl::array<basic_format_arg<t_CONTEXT>, 9u>& args)
452 explicit Format_ArgsStore(
454 bsl::array<basic_format_arg<t_CONTEXT>, 9u> > args)
459#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_A >= 10
460template <
class t_CONTEXT,
class t_ARGS_01,
470class Format_ArgsStore<t_CONTEXT, t_ARGS_01,
484 template <
class t_INNER_CONTEXT>
490 explicit Format_ArgsStore(
491 const bsl::array<basic_format_arg<t_CONTEXT>, 10u>& args)
494 explicit Format_ArgsStore(
496 bsl::array<basic_format_arg<t_CONTEXT>, 10u> > args)
504template <
class t_CONTEXT,
class... t_ARGS>
505class Format_ArgsStore {
510 template <
class t_INNER_CONTEXT>
516 explicit Format_ArgsStore(
517 const bsl::array<basic_format_arg<t_CONTEXT>,
sizeof...(t_ARGS)>& args)
520 explicit Format_ArgsStore(
522 bsl::array<basic_format_arg<t_CONTEXT>,
sizeof...(t_ARGS)> > args)
531#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
534#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
535#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
537#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B
538#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
540#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 0
545#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 1
546template <
class t_ARGS_01>
548 t_ARGS_01& fmt_args_01);
551#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 2
552template <
class t_ARGS_01,
556 t_ARGS_01& fmt_args_01,
557 t_ARGS_02& fmt_args_02);
560#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 3
561template <
class t_ARGS_01,
567 t_ARGS_01& fmt_args_01,
568 t_ARGS_02& fmt_args_02,
569 t_ARGS_03& fmt_args_03);
572#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 4
573template <
class t_ARGS_01,
581 t_ARGS_01& fmt_args_01,
582 t_ARGS_02& fmt_args_02,
583 t_ARGS_03& fmt_args_03,
584 t_ARGS_04& fmt_args_04);
587#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 5
588template <
class t_ARGS_01,
598 t_ARGS_01& fmt_args_01,
599 t_ARGS_02& fmt_args_02,
600 t_ARGS_03& fmt_args_03,
601 t_ARGS_04& fmt_args_04,
602 t_ARGS_05& fmt_args_05);
605#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 6
606template <
class t_ARGS_01,
618 t_ARGS_01& fmt_args_01,
619 t_ARGS_02& fmt_args_02,
620 t_ARGS_03& fmt_args_03,
621 t_ARGS_04& fmt_args_04,
622 t_ARGS_05& fmt_args_05,
623 t_ARGS_06& fmt_args_06);
626#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 7
627template <
class t_ARGS_01,
641 t_ARGS_01& fmt_args_01,
642 t_ARGS_02& fmt_args_02,
643 t_ARGS_03& fmt_args_03,
644 t_ARGS_04& fmt_args_04,
645 t_ARGS_05& fmt_args_05,
646 t_ARGS_06& fmt_args_06,
647 t_ARGS_07& fmt_args_07);
650#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 8
651template <
class t_ARGS_01,
667 t_ARGS_01& fmt_args_01,
668 t_ARGS_02& fmt_args_02,
669 t_ARGS_03& fmt_args_03,
670 t_ARGS_04& fmt_args_04,
671 t_ARGS_05& fmt_args_05,
672 t_ARGS_06& fmt_args_06,
673 t_ARGS_07& fmt_args_07,
674 t_ARGS_08& fmt_args_08);
677#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 9
678template <
class t_ARGS_01,
696 t_ARGS_01& fmt_args_01,
697 t_ARGS_02& fmt_args_02,
698 t_ARGS_03& fmt_args_03,
699 t_ARGS_04& fmt_args_04,
700 t_ARGS_05& fmt_args_05,
701 t_ARGS_06& fmt_args_06,
702 t_ARGS_07& fmt_args_07,
703 t_ARGS_08& fmt_args_08,
704 t_ARGS_09& fmt_args_09);
707#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 10
708template <
class t_ARGS_01,
728 t_ARGS_01& fmt_args_01,
729 t_ARGS_02& fmt_args_02,
730 t_ARGS_03& fmt_args_03,
731 t_ARGS_04& fmt_args_04,
732 t_ARGS_05& fmt_args_05,
733 t_ARGS_06& fmt_args_06,
734 t_ARGS_07& fmt_args_07,
735 t_ARGS_08& fmt_args_08,
736 t_ARGS_09& fmt_args_09,
737 t_ARGS_10& fmt_args_10);
741#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 0
746#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 1
747template <
class t_ARGS_01>
749 t_ARGS_01& fmt_args_01);
752#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 2
753template <
class t_ARGS_01,
757 t_ARGS_01& fmt_args_01,
758 t_ARGS_02& fmt_args_02);
761#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 3
762template <
class t_ARGS_01,
768 t_ARGS_01& fmt_args_01,
769 t_ARGS_02& fmt_args_02,
770 t_ARGS_03& fmt_args_03);
773#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 4
774template <
class t_ARGS_01,
782 t_ARGS_01& fmt_args_01,
783 t_ARGS_02& fmt_args_02,
784 t_ARGS_03& fmt_args_03,
785 t_ARGS_04& fmt_args_04);
788#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 5
789template <
class t_ARGS_01,
799 t_ARGS_01& fmt_args_01,
800 t_ARGS_02& fmt_args_02,
801 t_ARGS_03& fmt_args_03,
802 t_ARGS_04& fmt_args_04,
803 t_ARGS_05& fmt_args_05);
806#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 6
807template <
class t_ARGS_01,
819 t_ARGS_01& fmt_args_01,
820 t_ARGS_02& fmt_args_02,
821 t_ARGS_03& fmt_args_03,
822 t_ARGS_04& fmt_args_04,
823 t_ARGS_05& fmt_args_05,
824 t_ARGS_06& fmt_args_06);
827#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 7
828template <
class t_ARGS_01,
842 t_ARGS_01& fmt_args_01,
843 t_ARGS_02& fmt_args_02,
844 t_ARGS_03& fmt_args_03,
845 t_ARGS_04& fmt_args_04,
846 t_ARGS_05& fmt_args_05,
847 t_ARGS_06& fmt_args_06,
848 t_ARGS_07& fmt_args_07);
851#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 8
852template <
class t_ARGS_01,
868 t_ARGS_01& fmt_args_01,
869 t_ARGS_02& fmt_args_02,
870 t_ARGS_03& fmt_args_03,
871 t_ARGS_04& fmt_args_04,
872 t_ARGS_05& fmt_args_05,
873 t_ARGS_06& fmt_args_06,
874 t_ARGS_07& fmt_args_07,
875 t_ARGS_08& fmt_args_08);
878#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 9
879template <
class t_ARGS_01,
897 t_ARGS_01& fmt_args_01,
898 t_ARGS_02& fmt_args_02,
899 t_ARGS_03& fmt_args_03,
900 t_ARGS_04& fmt_args_04,
901 t_ARGS_05& fmt_args_05,
902 t_ARGS_06& fmt_args_06,
903 t_ARGS_07& fmt_args_07,
904 t_ARGS_08& fmt_args_08,
905 t_ARGS_09& fmt_args_09);
908#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_B >= 10
909template <
class t_ARGS_01,
929 t_ARGS_01& fmt_args_01,
930 t_ARGS_02& fmt_args_02,
931 t_ARGS_03& fmt_args_03,
932 t_ARGS_04& fmt_args_04,
933 t_ARGS_05& fmt_args_05,
934 t_ARGS_06& fmt_args_06,
935 t_ARGS_07& fmt_args_07,
936 t_ARGS_08& fmt_args_08,
937 t_ARGS_09& fmt_args_09,
938 t_ARGS_10& fmt_args_10);
944template <
class... t_ARGS>
946 t_ARGS&... fmt_args);
948template <
class... t_ARGS>
950 t_ARGS&... fmt_args);
967template <
class t_CONTEXT>
968class basic_format_args {
973 const basic_format_arg<t_CONTEXT> *d_data_p;
991#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
994#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
995#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
997#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C
998#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
1000#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 0
1005#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 1
1006 template <
class t_ARGS_01>
1011#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 2
1012 template <
class t_ARGS_01,
1019#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 3
1020 template <
class t_ARGS_01,
1029#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 4
1030 template <
class t_ARGS_01,
1041#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 5
1042 template <
class t_ARGS_01,
1055#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 6
1056 template <
class t_ARGS_01,
1071#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 7
1072 template <
class t_ARGS_01,
1089#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 8
1090 template <
class t_ARGS_01,
1109#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 9
1110 template <
class t_ARGS_01,
1131#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_C >= 10
1132 template <
class t_ARGS_01,
1158 template <
class... t_ARGS>
1176#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
1179#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
1180#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
1182#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D
1183#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
1186class Format_ArgsUtil {
1189#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 0
1190 template <
class t_CONTEXT>
1195#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 1
1196 template <
class t_CONTEXT,
class t_ARGS_01>
1198 t_ARGS_01& fmt_args_01);
1201#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 2
1202 template <
class t_CONTEXT,
class t_ARGS_01,
1204 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1206 t_ARGS_01& fmt_args_01,
1207 t_ARGS_02& fmt_args_02);
1210#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 3
1211 template <
class t_CONTEXT,
class t_ARGS_01,
1214 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1217 t_ARGS_01& fmt_args_01,
1218 t_ARGS_02& fmt_args_02,
1219 t_ARGS_03& fmt_args_03);
1222#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 4
1223 template <
class t_CONTEXT,
class t_ARGS_01,
1227 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1231 t_ARGS_01& fmt_args_01,
1232 t_ARGS_02& fmt_args_02,
1233 t_ARGS_03& fmt_args_03,
1234 t_ARGS_04& fmt_args_04);
1237#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 5
1238 template <
class t_CONTEXT,
class t_ARGS_01,
1243 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1248 t_ARGS_01& fmt_args_01,
1249 t_ARGS_02& fmt_args_02,
1250 t_ARGS_03& fmt_args_03,
1251 t_ARGS_04& fmt_args_04,
1252 t_ARGS_05& fmt_args_05);
1255#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 6
1256 template <
class t_CONTEXT,
class t_ARGS_01,
1262 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1268 t_ARGS_01& fmt_args_01,
1269 t_ARGS_02& fmt_args_02,
1270 t_ARGS_03& fmt_args_03,
1271 t_ARGS_04& fmt_args_04,
1272 t_ARGS_05& fmt_args_05,
1273 t_ARGS_06& fmt_args_06);
1276#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 7
1277 template <
class t_CONTEXT,
class t_ARGS_01,
1284 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1291 t_ARGS_01& fmt_args_01,
1292 t_ARGS_02& fmt_args_02,
1293 t_ARGS_03& fmt_args_03,
1294 t_ARGS_04& fmt_args_04,
1295 t_ARGS_05& fmt_args_05,
1296 t_ARGS_06& fmt_args_06,
1297 t_ARGS_07& fmt_args_07);
1300#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 8
1301 template <
class t_CONTEXT,
class t_ARGS_01,
1309 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1317 t_ARGS_01& fmt_args_01,
1318 t_ARGS_02& fmt_args_02,
1319 t_ARGS_03& fmt_args_03,
1320 t_ARGS_04& fmt_args_04,
1321 t_ARGS_05& fmt_args_05,
1322 t_ARGS_06& fmt_args_06,
1323 t_ARGS_07& fmt_args_07,
1324 t_ARGS_08& fmt_args_08);
1327#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 9
1328 template <
class t_CONTEXT,
class t_ARGS_01,
1337 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1346 t_ARGS_01& fmt_args_01,
1347 t_ARGS_02& fmt_args_02,
1348 t_ARGS_03& fmt_args_03,
1349 t_ARGS_04& fmt_args_04,
1350 t_ARGS_05& fmt_args_05,
1351 t_ARGS_06& fmt_args_06,
1352 t_ARGS_07& fmt_args_07,
1353 t_ARGS_08& fmt_args_08,
1354 t_ARGS_09& fmt_args_09);
1357#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_D >= 10
1358 template <
class t_CONTEXT,
class t_ARGS_01,
1368 static Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1378 t_ARGS_01& fmt_args_01,
1379 t_ARGS_02& fmt_args_02,
1380 t_ARGS_03& fmt_args_03,
1381 t_ARGS_04& fmt_args_04,
1382 t_ARGS_05& fmt_args_05,
1383 t_ARGS_06& fmt_args_06,
1384 t_ARGS_07& fmt_args_07,
1385 t_ARGS_08& fmt_args_08,
1386 t_ARGS_09& fmt_args_09,
1387 t_ARGS_10& fmt_args_10);
1391 template <
class t_CONTEXT>
1392 static size_t formatArgsSize(
const basic_format_args<t_CONTEXT>& args);
1398class Format_ArgsUtil {
1401 template <
class t_CONTEXT,
class... t_ARGS>
1403 t_ARGS&... fmt_args);
1405 template <
class t_CONTEXT>
1406 static size_t formatArgsSize(
const basic_format_args<t_CONTEXT>& args);
1420#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
1423#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
1424#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
1426#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E
1427#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
1430#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 0
1431template <
class t_CONTEXT>
1433Format_ArgsStore<t_CONTEXT, BSLS_COMPILERFEATURES_FILLT(10)>::Format_ArgsStore(
1434 const bsl::array<basic_format_arg<t_CONTEXT>, 0u>& args)
1440#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 1
1441template <
class t_CONTEXT,
class t_ARGS_01>
1443Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1444 BSLS_COMPILERFEATURES_FILLT( 9)>::Format_ArgsStore(
1445 const bsl::array<basic_format_arg<t_CONTEXT>, 1u>& args)
1451#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 2
1452template <
class t_CONTEXT,
class t_ARGS_01,
1455Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1457 BSLS_COMPILERFEATURES_FILLT( 8)>::Format_ArgsStore(
1458 const bsl::array<basic_format_arg<t_CONTEXT>, 2u>& args)
1464#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 3
1465template <
class t_CONTEXT,
class t_ARGS_01,
1469Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1472 BSLS_COMPILERFEATURES_FILLT( 7)>::Format_ArgsStore(
1473 const bsl::array<basic_format_arg<t_CONTEXT>, 3u>& args)
1479#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 4
1480template <
class t_CONTEXT,
class t_ARGS_01,
1485Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1489 BSLS_COMPILERFEATURES_FILLT( 6)>::Format_ArgsStore(
1490 const bsl::array<basic_format_arg<t_CONTEXT>, 4u>& args)
1496#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 5
1497template <
class t_CONTEXT,
class t_ARGS_01,
1503Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1508 BSLS_COMPILERFEATURES_FILLT( 5)>::Format_ArgsStore(
1509 const bsl::array<basic_format_arg<t_CONTEXT>, 5u>& args)
1515#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 6
1516template <
class t_CONTEXT,
class t_ARGS_01,
1523Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1529 BSLS_COMPILERFEATURES_FILLT( 4)>::Format_ArgsStore(
1530 const bsl::array<basic_format_arg<t_CONTEXT>, 6u>& args)
1536#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 7
1537template <
class t_CONTEXT,
class t_ARGS_01,
1545Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1552 BSLS_COMPILERFEATURES_FILLT( 3)>::Format_ArgsStore(
1553 const bsl::array<basic_format_arg<t_CONTEXT>, 7u>& args)
1559#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 8
1560template <
class t_CONTEXT,
class t_ARGS_01,
1569Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1577 BSLS_COMPILERFEATURES_FILLT( 2)>::Format_ArgsStore(
1578 const bsl::array<basic_format_arg<t_CONTEXT>, 8u>& args)
1584#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 9
1585template <
class t_CONTEXT,
class t_ARGS_01,
1595Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1604 BSLS_COMPILERFEATURES_FILLT( 1)>::Format_ArgsStore(
1605 const bsl::array<basic_format_arg<t_CONTEXT>, 9u>& args)
1611#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 10
1612template <
class t_CONTEXT,
class t_ARGS_01,
1623Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1633 BSLS_COMPILERFEATURES_FILLT( 0)>::Format_ArgsStore(
1634 const bsl::array<basic_format_arg<t_CONTEXT>, 10u>& args)
1641#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 0
1642template <
class t_CONTEXT>
1644Format_ArgsStore<t_CONTEXT, BSLS_COMPILERFEATURES_FILLT(10)>::Format_ArgsStore(
1646 bsl::array<basic_format_arg<t_CONTEXT>, 0u> > args)
1652#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 1
1653template <
class t_CONTEXT,
class t_ARGS_01>
1655Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1656 BSLS_COMPILERFEATURES_FILLT( 9)>::Format_ArgsStore(
1658 bsl::array<basic_format_arg<t_CONTEXT>, 1u> > args)
1664#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 2
1665template <
class t_CONTEXT,
class t_ARGS_01,
1668Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1670 BSLS_COMPILERFEATURES_FILLT( 8)>::Format_ArgsStore(
1672 bsl::array<basic_format_arg<t_CONTEXT>, 2u> > args)
1678#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 3
1679template <
class t_CONTEXT,
class t_ARGS_01,
1683Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1686 BSLS_COMPILERFEATURES_FILLT( 7)>::Format_ArgsStore(
1688 bsl::array<basic_format_arg<t_CONTEXT>, 3u> > args)
1694#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 4
1695template <
class t_CONTEXT,
class t_ARGS_01,
1700Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1704 BSLS_COMPILERFEATURES_FILLT( 6)>::Format_ArgsStore(
1706 bsl::array<basic_format_arg<t_CONTEXT>, 4u> > args)
1712#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 5
1713template <
class t_CONTEXT,
class t_ARGS_01,
1719Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1724 BSLS_COMPILERFEATURES_FILLT( 5)>::Format_ArgsStore(
1726 bsl::array<basic_format_arg<t_CONTEXT>, 5u> > args)
1732#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 6
1733template <
class t_CONTEXT,
class t_ARGS_01,
1740Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1746 BSLS_COMPILERFEATURES_FILLT( 4)>::Format_ArgsStore(
1748 bsl::array<basic_format_arg<t_CONTEXT>, 6u> > args)
1754#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 7
1755template <
class t_CONTEXT,
class t_ARGS_01,
1763Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1770 BSLS_COMPILERFEATURES_FILLT( 3)>::Format_ArgsStore(
1772 bsl::array<basic_format_arg<t_CONTEXT>, 7u> > args)
1778#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 8
1779template <
class t_CONTEXT,
class t_ARGS_01,
1788Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1796 BSLS_COMPILERFEATURES_FILLT( 2)>::Format_ArgsStore(
1798 bsl::array<basic_format_arg<t_CONTEXT>, 8u> > args)
1804#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 9
1805template <
class t_CONTEXT,
class t_ARGS_01,
1815Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1824 BSLS_COMPILERFEATURES_FILLT( 1)>::Format_ArgsStore(
1826 bsl::array<basic_format_arg<t_CONTEXT>, 9u> > args)
1832#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_E >= 10
1833template <
class t_CONTEXT,
class t_ARGS_01,
1844Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1854 BSLS_COMPILERFEATURES_FILLT( 0)>::Format_ArgsStore(
1856 bsl::array<basic_format_arg<t_CONTEXT>, 10u> > args)
1866template <
class t_CONTEXT,
class... t_ARGS>
1868Format_ArgsStore<t_CONTEXT, t_ARGS...>::Format_ArgsStore(
1869 const bsl::array<basic_format_arg<t_CONTEXT>,
sizeof...(t_ARGS)>& args)
1874template <
class t_CONTEXT,
class... t_ARGS>
1876Format_ArgsStore<t_CONTEXT, t_ARGS...>::Format_ArgsStore(
1878 bsl::array<basic_format_arg<t_CONTEXT>,
sizeof...(t_ARGS)> > args)
1891template <
class t_CONTEXT>
1898#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
1901#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
1902#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
1904#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F
1905#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
1907#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 0
1908template <
class t_CONTEXT>
1911 const Format_ArgsStore<t_CONTEXT>& store)
1914, d_data_p(store.d_args.data())
1919#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 1
1920template <
class t_CONTEXT>
1921template <
class t_ARGS_01>
1924 const Format_ArgsStore<t_CONTEXT, t_ARGS_01>& store)
1927, d_data_p(store.d_args.data())
1932#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 2
1933template <
class t_CONTEXT>
1934template <
class t_ARGS_01,
1938 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1942, d_data_p(store.d_args.data())
1947#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 3
1948template <
class t_CONTEXT>
1949template <
class t_ARGS_01,
1954 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1959, d_data_p(store.d_args.data())
1964#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 4
1965template <
class t_CONTEXT>
1966template <
class t_ARGS_01,
1972 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1978, d_data_p(store.d_args.data())
1983#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 5
1984template <
class t_CONTEXT>
1985template <
class t_ARGS_01,
1992 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
1999, d_data_p(store.d_args.data())
2004#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 6
2005template <
class t_CONTEXT>
2006template <
class t_ARGS_01,
2014 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2022, d_data_p(store.d_args.data())
2027#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 7
2028template <
class t_CONTEXT>
2029template <
class t_ARGS_01,
2038 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2047, d_data_p(store.d_args.data())
2052#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 8
2053template <
class t_CONTEXT>
2054template <
class t_ARGS_01,
2064 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2074, d_data_p(store.d_args.data())
2079#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 9
2080template <
class t_CONTEXT>
2081template <
class t_ARGS_01,
2092 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2103, d_data_p(store.d_args.data())
2108#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_F >= 10
2109template <
class t_CONTEXT>
2110template <
class t_ARGS_01,
2122 const Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2134, d_data_p(store.d_args.data())
2142template <
class t_CONTEXT>
2143template <
class... t_ARGS>
2146 const Format_ArgsStore<t_CONTEXT, t_ARGS...>& store)
2148: d_size(
sizeof...(t_ARGS))
2149, d_data_p(store.d_args.data())
2156template <
class t_CONTEXT>
2161 return pos < d_size ? d_data_p[pos] : basic_format_arg<t_CONTEXT>();
2166template <
class t_CONTEXT>
2168size_t basic_format_args<t_CONTEXT>::size()
const
2180#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
2183#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
2184#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
2186#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G
2187#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
2190#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 0
2191template <
class t_CONTEXT>
2193Format_ArgsStore<t_CONTEXT>
2197 Format_ArgUtil::makeFormatArgArray<t_CONTEXT>(&arg_array);
2198 return Format_ArgsStore<t_CONTEXT>(
2203#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 1
2204template <
class t_CONTEXT,
class t_ARGS_01>
2206Format_ArgsStore<t_CONTEXT, t_ARGS_01>
2210 Format_ArgUtil::makeFormatArgArray<t_CONTEXT, t_ARGS_01>(&arg_array,
2212 return Format_ArgsStore<t_CONTEXT, t_ARGS_01>(
2217#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 2
2218template <
class t_CONTEXT,
class t_ARGS_01,
2221Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2224 t_ARGS_02& fmt_args_02)
2228 t_ARGS_02>(&arg_array,
2231 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2237#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 3
2238template <
class t_CONTEXT,
class t_ARGS_01,
2242Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2246 t_ARGS_02& fmt_args_02,
2247 t_ARGS_03& fmt_args_03)
2252 t_ARGS_03>(&arg_array,
2256 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2263#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 4
2264template <
class t_CONTEXT,
class t_ARGS_01,
2269Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2274 t_ARGS_02& fmt_args_02,
2275 t_ARGS_03& fmt_args_03,
2276 t_ARGS_04& fmt_args_04)
2282 t_ARGS_04>(&arg_array,
2287 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2295#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 5
2296template <
class t_CONTEXT,
class t_ARGS_01,
2302Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2308 t_ARGS_02& fmt_args_02,
2309 t_ARGS_03& fmt_args_03,
2310 t_ARGS_04& fmt_args_04,
2311 t_ARGS_05& fmt_args_05)
2318 t_ARGS_05>(&arg_array,
2324 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2333#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 6
2334template <
class t_CONTEXT,
class t_ARGS_01,
2341Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2348 t_ARGS_02& fmt_args_02,
2349 t_ARGS_03& fmt_args_03,
2350 t_ARGS_04& fmt_args_04,
2351 t_ARGS_05& fmt_args_05,
2352 t_ARGS_06& fmt_args_06)
2360 t_ARGS_06>(&arg_array,
2367 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2377#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 7
2378template <
class t_CONTEXT,
class t_ARGS_01,
2386Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2394 t_ARGS_02& fmt_args_02,
2395 t_ARGS_03& fmt_args_03,
2396 t_ARGS_04& fmt_args_04,
2397 t_ARGS_05& fmt_args_05,
2398 t_ARGS_06& fmt_args_06,
2399 t_ARGS_07& fmt_args_07)
2408 t_ARGS_07>(&arg_array,
2416 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2427#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 8
2428template <
class t_CONTEXT,
class t_ARGS_01,
2437Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2446 t_ARGS_02& fmt_args_02,
2447 t_ARGS_03& fmt_args_03,
2448 t_ARGS_04& fmt_args_04,
2449 t_ARGS_05& fmt_args_05,
2450 t_ARGS_06& fmt_args_06,
2451 t_ARGS_07& fmt_args_07,
2452 t_ARGS_08& fmt_args_08)
2462 t_ARGS_08>(&arg_array,
2471 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2483#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 9
2484template <
class t_CONTEXT,
class t_ARGS_01,
2494Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2504 t_ARGS_02& fmt_args_02,
2505 t_ARGS_03& fmt_args_03,
2506 t_ARGS_04& fmt_args_04,
2507 t_ARGS_05& fmt_args_05,
2508 t_ARGS_06& fmt_args_06,
2509 t_ARGS_07& fmt_args_07,
2510 t_ARGS_08& fmt_args_08,
2511 t_ARGS_09& fmt_args_09)
2522 t_ARGS_09>(&arg_array,
2532 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2545#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_G >= 10
2546template <
class t_CONTEXT,
class t_ARGS_01,
2557Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2568 t_ARGS_02& fmt_args_02,
2569 t_ARGS_03& fmt_args_03,
2570 t_ARGS_04& fmt_args_04,
2571 t_ARGS_05& fmt_args_05,
2572 t_ARGS_06& fmt_args_06,
2573 t_ARGS_07& fmt_args_07,
2574 t_ARGS_08& fmt_args_08,
2575 t_ARGS_09& fmt_args_09,
2576 t_ARGS_10& fmt_args_10)
2588 t_ARGS_10>(&arg_array,
2599 return Format_ArgsStore<t_CONTEXT, t_ARGS_01,
2617template <
class t_CONTEXT,
class... t_ARGS>
2619Format_ArgsStore<t_CONTEXT, t_ARGS...>
2625 return Format_ArgsStore<t_CONTEXT, t_ARGS...>(
2632template <
class t_CONTEXT>
2635 const basic_format_args<t_CONTEXT>& args)
2647#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
2650#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
2651#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT 10
2653#ifndef BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H
2654#define BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT
2657#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 0
2662 return Format_ArgsUtil::makeFormatArgs<format_context>();
2666#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 1
2667template <
class t_ARGS_01>
2670 t_ARGS_01& fmt_args_01)
2672 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01);
2676#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 2
2677template <
class t_ARGS_01,
2682 t_ARGS_01& fmt_args_01,
2683 t_ARGS_02& fmt_args_02)
2685 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2690#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 3
2691template <
class t_ARGS_01,
2698 t_ARGS_01& fmt_args_01,
2699 t_ARGS_02& fmt_args_02,
2700 t_ARGS_03& fmt_args_03)
2702 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2708#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 4
2709template <
class t_ARGS_01,
2718 t_ARGS_01& fmt_args_01,
2719 t_ARGS_02& fmt_args_02,
2720 t_ARGS_03& fmt_args_03,
2721 t_ARGS_04& fmt_args_04)
2723 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2730#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 5
2731template <
class t_ARGS_01,
2742 t_ARGS_01& fmt_args_01,
2743 t_ARGS_02& fmt_args_02,
2744 t_ARGS_03& fmt_args_03,
2745 t_ARGS_04& fmt_args_04,
2746 t_ARGS_05& fmt_args_05)
2748 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2756#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 6
2757template <
class t_ARGS_01,
2770 t_ARGS_01& fmt_args_01,
2771 t_ARGS_02& fmt_args_02,
2772 t_ARGS_03& fmt_args_03,
2773 t_ARGS_04& fmt_args_04,
2774 t_ARGS_05& fmt_args_05,
2775 t_ARGS_06& fmt_args_06)
2777 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2786#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 7
2787template <
class t_ARGS_01,
2802 t_ARGS_01& fmt_args_01,
2803 t_ARGS_02& fmt_args_02,
2804 t_ARGS_03& fmt_args_03,
2805 t_ARGS_04& fmt_args_04,
2806 t_ARGS_05& fmt_args_05,
2807 t_ARGS_06& fmt_args_06,
2808 t_ARGS_07& fmt_args_07)
2810 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2820#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 8
2821template <
class t_ARGS_01,
2838 t_ARGS_01& fmt_args_01,
2839 t_ARGS_02& fmt_args_02,
2840 t_ARGS_03& fmt_args_03,
2841 t_ARGS_04& fmt_args_04,
2842 t_ARGS_05& fmt_args_05,
2843 t_ARGS_06& fmt_args_06,
2844 t_ARGS_07& fmt_args_07,
2845 t_ARGS_08& fmt_args_08)
2847 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2858#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 9
2859template <
class t_ARGS_01,
2878 t_ARGS_01& fmt_args_01,
2879 t_ARGS_02& fmt_args_02,
2880 t_ARGS_03& fmt_args_03,
2881 t_ARGS_04& fmt_args_04,
2882 t_ARGS_05& fmt_args_05,
2883 t_ARGS_06& fmt_args_06,
2884 t_ARGS_07& fmt_args_07,
2885 t_ARGS_08& fmt_args_08,
2886 t_ARGS_09& fmt_args_09)
2888 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2900#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 10
2901template <
class t_ARGS_01,
2922 t_ARGS_01& fmt_args_01,
2923 t_ARGS_02& fmt_args_02,
2924 t_ARGS_03& fmt_args_03,
2925 t_ARGS_04& fmt_args_04,
2926 t_ARGS_05& fmt_args_05,
2927 t_ARGS_06& fmt_args_06,
2928 t_ARGS_07& fmt_args_07,
2929 t_ARGS_08& fmt_args_08,
2930 t_ARGS_09& fmt_args_09,
2931 t_ARGS_10& fmt_args_10)
2933 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args_01,
2947#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 0
2952 return Format_ArgsUtil::makeFormatArgs<wformat_context>();
2956#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 1
2957template <
class t_ARGS_01>
2960 t_ARGS_01& fmt_args_01)
2962 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01);
2966#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 2
2967template <
class t_ARGS_01,
2972 t_ARGS_01& fmt_args_01,
2973 t_ARGS_02& fmt_args_02)
2975 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
2980#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 3
2981template <
class t_ARGS_01,
2988 t_ARGS_01& fmt_args_01,
2989 t_ARGS_02& fmt_args_02,
2990 t_ARGS_03& fmt_args_03)
2992 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
2998#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 4
2999template <
class t_ARGS_01,
3008 t_ARGS_01& fmt_args_01,
3009 t_ARGS_02& fmt_args_02,
3010 t_ARGS_03& fmt_args_03,
3011 t_ARGS_04& fmt_args_04)
3013 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
3020#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 5
3021template <
class t_ARGS_01,
3032 t_ARGS_01& fmt_args_01,
3033 t_ARGS_02& fmt_args_02,
3034 t_ARGS_03& fmt_args_03,
3035 t_ARGS_04& fmt_args_04,
3036 t_ARGS_05& fmt_args_05)
3038 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
3046#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 6
3047template <
class t_ARGS_01,
3060 t_ARGS_01& fmt_args_01,
3061 t_ARGS_02& fmt_args_02,
3062 t_ARGS_03& fmt_args_03,
3063 t_ARGS_04& fmt_args_04,
3064 t_ARGS_05& fmt_args_05,
3065 t_ARGS_06& fmt_args_06)
3067 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
3076#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 7
3077template <
class t_ARGS_01,
3092 t_ARGS_01& fmt_args_01,
3093 t_ARGS_02& fmt_args_02,
3094 t_ARGS_03& fmt_args_03,
3095 t_ARGS_04& fmt_args_04,
3096 t_ARGS_05& fmt_args_05,
3097 t_ARGS_06& fmt_args_06,
3098 t_ARGS_07& fmt_args_07)
3100 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
3110#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 8
3111template <
class t_ARGS_01,
3128 t_ARGS_01& fmt_args_01,
3129 t_ARGS_02& fmt_args_02,
3130 t_ARGS_03& fmt_args_03,
3131 t_ARGS_04& fmt_args_04,
3132 t_ARGS_05& fmt_args_05,
3133 t_ARGS_06& fmt_args_06,
3134 t_ARGS_07& fmt_args_07,
3135 t_ARGS_08& fmt_args_08)
3137 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
3148#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 9
3149template <
class t_ARGS_01,
3168 t_ARGS_01& fmt_args_01,
3169 t_ARGS_02& fmt_args_02,
3170 t_ARGS_03& fmt_args_03,
3171 t_ARGS_04& fmt_args_04,
3172 t_ARGS_05& fmt_args_05,
3173 t_ARGS_06& fmt_args_06,
3174 t_ARGS_07& fmt_args_07,
3175 t_ARGS_08& fmt_args_08,
3176 t_ARGS_09& fmt_args_09)
3178 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
3190#if BSLFMT_FORMAT_ARGS_VARIADIC_LIMIT_H >= 10
3191template <
class t_ARGS_01,
3212 t_ARGS_01& fmt_args_01,
3213 t_ARGS_02& fmt_args_02,
3214 t_ARGS_03& fmt_args_03,
3215 t_ARGS_04& fmt_args_04,
3216 t_ARGS_05& fmt_args_05,
3217 t_ARGS_06& fmt_args_06,
3218 t_ARGS_07& fmt_args_07,
3219 t_ARGS_08& fmt_args_08,
3220 t_ARGS_09& fmt_args_09,
3221 t_ARGS_10& fmt_args_10)
3223 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args_01,
3240template <
class... t_ARGS>
3243 t_ARGS&... fmt_args)
3245 return Format_ArgsUtil::makeFormatArgs<format_context>(fmt_args...);
3248template <
class... t_ARGS>
3251 t_ARGS&... fmt_args)
3253 return Format_ArgsUtil::makeFormatArgs<wformat_context>(fmt_args...);
3263# error Not valid except when included from bslfmt_format_args.h
Definition bslmf_movableref.h:752
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:674
Definition bslfmt_enablestreamedformatter.h:130
basic_format_context< Format_ContextOutputIteratorRef< char >, char > format_context
Definition bslfmt_format_arg.h:170
Format_ArgsStore< format_context, t_ARGS... > make_format_args(t_ARGS &... fmt_args)
Definition bslfmt_format_args.h:461
basic_format_context< Format_ContextOutputIteratorRef< wchar_t >, wchar_t > wformat_context
Definition bslfmt_format_arg.h:173
basic_format_args< format_context > format_args
Definition bslfmt_format_args.h:197
basic_format_args< wformat_context > wformat_args
Definition bslfmt_format_args.h:199
Format_ArgsStore< wformat_context, t_ARGS... > make_wformat_args(t_ARGS &... fmt_args)
Definition bslfmt_format_args.h:469
Definition bslstl_array.h:293
static MovableRef< t_TYPE > move(t_TYPE &reference) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1067