11#ifndef INCLUDED_BSLFMT_PRINT_IMP_CPP03
12#define INCLUDED_BSLFMT_PRINT_IMP_CPP03
63#ifdef COMPILING_BSLFMT_PRINT_IMP_H
65#if defined(BSLS_COMPILERFEATURES_SUPPORT_ALIAS_TEMPLATES) && \
66 defined(BSLS_COMPILERFEATURES_SUPPORT_VARIADIC_TEMPLATES)
67# define BSLFMT_FORMAT_STRING_PARAMETER bsl::format_string<t_ARGS...>
71# define BSLFMT_FORMAT_STRING_PARAMETER bsl::format_string
81#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
84#ifndef BSLFMT_PRINT_IMP_VARIADIC_LIMIT
85#define BSLFMT_PRINT_IMP_VARIADIC_LIMIT 10
87#ifndef BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A
88#define BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A BSLFMT_PRINT_IMP_VARIADIC_LIMIT
90#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 0
94#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 1
95template <
class t_ARGS_01>
100#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 2
101template <
class t_ARGS_01,
108#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 3
109template <
class t_ARGS_01,
118#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 4
119template <
class t_ARGS_01,
130#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 5
131template <
class t_ARGS_01,
144#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 6
145template <
class t_ARGS_01,
160#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 7
161template <
class t_ARGS_01,
178#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 8
179template <
class t_ARGS_01,
198#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 9
199template <
class t_ARGS_01,
220#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 10
221template <
class t_ARGS_01,
245#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 0
246void print(std::FILE *stream,
250#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 1
251template <
class t_ARGS_01>
252void print(std::FILE *stream,
257#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 2
258template <
class t_ARGS_01,
260void print(std::FILE *stream,
266#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 3
267template <
class t_ARGS_01,
270void print(std::FILE *stream,
277#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 4
278template <
class t_ARGS_01,
282void print(std::FILE *stream,
290#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 5
291template <
class t_ARGS_01,
296void print(std::FILE *stream,
305#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 6
306template <
class t_ARGS_01,
312void print(std::FILE *stream,
322#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 7
323template <
class t_ARGS_01,
330void print(std::FILE *stream,
341#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 8
342template <
class t_ARGS_01,
350void print(std::FILE *stream,
362#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 9
363template <
class t_ARGS_01,
372void print(std::FILE *stream,
385#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 10
386template <
class t_ARGS_01,
396void print(std::FILE *stream,
411#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 0
415#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 1
416template <
class t_ARGS_01>
421#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 2
422template <
class t_ARGS_01,
429#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 3
430template <
class t_ARGS_01,
439#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 4
440template <
class t_ARGS_01,
451#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 5
452template <
class t_ARGS_01,
465#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 6
466template <
class t_ARGS_01,
481#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 7
482template <
class t_ARGS_01,
499#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 8
500template <
class t_ARGS_01,
519#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 9
520template <
class t_ARGS_01,
541#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 10
542template <
class t_ARGS_01,
566#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 0
571#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 1
572template <
class t_ARGS_01>
578#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 2
579template <
class t_ARGS_01,
587#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 3
588template <
class t_ARGS_01,
598#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 4
599template <
class t_ARGS_01,
611#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 5
612template <
class t_ARGS_01,
626#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 6
627template <
class t_ARGS_01,
643#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 7
644template <
class t_ARGS_01,
662#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 8
663template <
class t_ARGS_01,
683#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 9
684template <
class t_ARGS_01,
706#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_A >= 10
707template <
class t_ARGS_01,
734template <
class... t_ARGS>
738template <
class... t_ARGS>
739void print(std::FILE *stream,
743template <
class... t_ARGS>
747template <
class... t_ARGS>
760void println(std::FILE *stream);
779 bsl::format_args args);
791 bsl::format_args args);
810 bsl::format_args args);
822 bsl::format_args args);
835#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
838#ifndef BSLFMT_PRINT_IMP_VARIADIC_LIMIT
839#define BSLFMT_PRINT_IMP_VARIADIC_LIMIT 10
841#ifndef BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B
842#define BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B BSLFMT_PRINT_IMP_VARIADIC_LIMIT
844#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 0
846void print(std::FILE *stream,
851 bsl::make_format_args());
855#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 1
856template <
class t_ARGS_01>
858void print(std::FILE *stream,
864 bsl::make_format_args(args_01));
868#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 2
869template <
class t_ARGS_01,
872void print(std::FILE *stream,
879 bsl::make_format_args(args_01,
884#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 3
885template <
class t_ARGS_01,
889void print(std::FILE *stream,
897 bsl::make_format_args(args_01,
903#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 4
904template <
class t_ARGS_01,
909void print(std::FILE *stream,
918 bsl::make_format_args(args_01,
925#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 5
926template <
class t_ARGS_01,
932void print(std::FILE *stream,
942 bsl::make_format_args(args_01,
950#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 6
951template <
class t_ARGS_01,
958void print(std::FILE *stream,
969 bsl::make_format_args(args_01,
978#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 7
979template <
class t_ARGS_01,
987void print(std::FILE *stream,
999 bsl::make_format_args(args_01,
1009#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 8
1010template <
class t_ARGS_01,
1019void print(std::FILE *stream,
1032 bsl::make_format_args(args_01,
1043#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 9
1044template <
class t_ARGS_01,
1054void print(std::FILE *stream,
1068 bsl::make_format_args(args_01,
1080#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 10
1081template <
class t_ARGS_01,
1092void print(std::FILE *stream,
1107 bsl::make_format_args(args_01,
1121#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 0
1129#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 1
1130template <
class t_ARGS_01>
1140#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 2
1141template <
class t_ARGS_01,
1154#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 3
1155template <
class t_ARGS_01,
1171#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 4
1172template <
class t_ARGS_01,
1191#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 5
1192template <
class t_ARGS_01,
1214#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 6
1215template <
class t_ARGS_01,
1240#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 7
1241template <
class t_ARGS_01,
1269#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 8
1270template <
class t_ARGS_01,
1301#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 9
1302template <
class t_ARGS_01,
1336#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 10
1337template <
class t_ARGS_01,
1375#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 0
1377void println(std::FILE *stream,
1382 bsl::vformat(fmt.get(), bsl::make_format_args()));
1386#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 1
1387template <
class t_ARGS_01>
1389void println(std::FILE *stream,
1395 bsl::vformat(fmt.get(), bsl::make_format_args(args_01)));
1399#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 2
1400template <
class t_ARGS_01,
1403void println(std::FILE *stream,
1410 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1415#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 3
1416template <
class t_ARGS_01,
1420void println(std::FILE *stream,
1428 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1434#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 4
1435template <
class t_ARGS_01,
1440void println(std::FILE *stream,
1449 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1456#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 5
1457template <
class t_ARGS_01,
1463void println(std::FILE *stream,
1473 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1481#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 6
1482template <
class t_ARGS_01,
1489void println(std::FILE *stream,
1500 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1509#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 7
1510template <
class t_ARGS_01,
1518void println(std::FILE *stream,
1530 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1540#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 8
1541template <
class t_ARGS_01,
1550void println(std::FILE *stream,
1563 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1574#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 9
1575template <
class t_ARGS_01,
1585void println(std::FILE *stream,
1599 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1611#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 10
1612template <
class t_ARGS_01,
1623void println(std::FILE *stream,
1638 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1652#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 0
1660#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 1
1661template <
class t_ARGS_01>
1671#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 2
1672template <
class t_ARGS_01,
1686#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 3
1687template <
class t_ARGS_01,
1705#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 4
1706template <
class t_ARGS_01,
1728#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 5
1729template <
class t_ARGS_01,
1755#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 6
1756template <
class t_ARGS_01,
1786#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 7
1787template <
class t_ARGS_01,
1821#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 8
1822template <
class t_ARGS_01,
1860#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 9
1861template <
class t_ARGS_01,
1903#if BSLFMT_PRINT_IMP_VARIADIC_LIMIT_B >= 10
1904template <
class t_ARGS_01,
1953template <
class... t_ARGS>
1955void print(std::FILE *stream,
1961 bsl::make_format_args(args...));
1964template <
class... t_ARGS>
1972template <
class... t_ARGS>
1974void println(std::FILE *stream,
1980 bsl::vformat(fmt.get(), bsl::make_format_args(args...)));
1983template <
class... t_ARGS>
2015#undef BSLFMT_FORMAT_STRING_PARAMETER
2018# error Not valid except when included from bslfmt_print_imp.h
Definition bslstl_stringview.h:471
#define BSLS_COMPILERFEATURES_FORWARD_REF(T)
Definition bsls_compilerfeatures.h:2343
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2349
bsl::ostream & print(bsl::ostream &stream, const TYPE &object, int level=0, int spacesPerLevel=4)
Definition bdlb_printmethods.h:725
Definition bslfmt_enablestreamedformatter.h:130
void print(BSLFMT_FORMAT_STRING_PARAMETER fmt, t_ARGS &&... args)
Definition bslfmt_print_imp.h:263
void Print_Imp_ThrowIoError()
Throw system_error with errc::io_error.
void vprint_unicode_buffered(std::FILE *stream, bsl::string_view fmt, bsl::format_args args)
void vprint_unicode(bsl::string_view fmt, bsl::format_args args)
Definition bslfmt_print_imp.h:300
void println()
Write \n into stdout.
Definition bslfmt_print_imp.h:288
void vprint_nonunicode(bsl::string_view fmt, bsl::format_args args)
Definition bslfmt_print_imp.h:294
void vprint_nonunicode_buffered(std::FILE *stream, bsl::string_view fmt, bsl::format_args args)