11#ifndef INCLUDED_BSLFMT_PRINT_OSTREAM_IMP_CPP03
12#define INCLUDED_BSLFMT_PRINT_OSTREAM_IMP_CPP03
63#ifdef COMPILING_BSLFMT_PRINT_OSTREAM_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_OSTREAM_IMP_VARIADIC_LIMIT
85#define BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT 10
87#ifndef BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A
88#define BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT
90#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 0
91void print(std::ostream& stream,
95#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 1
96template <
class t_ARGS_01>
97void print(std::ostream& stream,
102#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 2
103template <
class t_ARGS_01,
105void print(std::ostream& stream,
111#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 3
112template <
class t_ARGS_01,
115void print(std::ostream& stream,
122#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 4
123template <
class t_ARGS_01,
127void print(std::ostream& stream,
135#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 5
136template <
class t_ARGS_01,
141void print(std::ostream& stream,
150#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 6
151template <
class t_ARGS_01,
157void print(std::ostream& stream,
167#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 7
168template <
class t_ARGS_01,
175void print(std::ostream& stream,
186#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 8
187template <
class t_ARGS_01,
195void print(std::ostream& stream,
207#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 9
208template <
class t_ARGS_01,
217void print(std::ostream& stream,
230#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 10
231template <
class t_ARGS_01,
241void print(std::ostream& stream,
256#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 0
257void println(std::ostream& stream,
261#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 1
262template <
class t_ARGS_01>
263void println(std::ostream& stream,
268#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 2
269template <
class t_ARGS_01,
271void println(std::ostream& stream,
277#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 3
278template <
class t_ARGS_01,
281void println(std::ostream& stream,
288#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 4
289template <
class t_ARGS_01,
293void println(std::ostream& stream,
301#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 5
302template <
class t_ARGS_01,
307void println(std::ostream& stream,
316#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 6
317template <
class t_ARGS_01,
323void println(std::ostream& stream,
333#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 7
334template <
class t_ARGS_01,
341void println(std::ostream& stream,
352#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 8
353template <
class t_ARGS_01,
361void println(std::ostream& stream,
373#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 9
374template <
class t_ARGS_01,
383void println(std::ostream& stream,
396#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_A >= 10
397template <
class t_ARGS_01,
407void println(std::ostream& stream,
424template <
class... t_ARGS>
425void print(std::ostream& stream,
429template <
class... t_ARGS>
430void println(std::ostream& stream,
439void println(std::ostream& stream);
451 bsl::format_args args);
463 bsl::format_args args);
473#if BSLS_COMPILERFEATURES_SIMULATE_VARIADIC_TEMPLATES
476#ifndef BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT
477#define BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT 10
479#ifndef BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B
480#define BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT
482#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 0
484void print(std::ostream& stream,
489 bsl::make_format_args());
493#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 1
494template <
class t_ARGS_01>
496void print(std::ostream& stream,
502 bsl::make_format_args(args_01));
506#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 2
507template <
class t_ARGS_01,
510void print(std::ostream& stream,
517 bsl::make_format_args(args_01,
522#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 3
523template <
class t_ARGS_01,
527void print(std::ostream& stream,
535 bsl::make_format_args(args_01,
541#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 4
542template <
class t_ARGS_01,
547void print(std::ostream& stream,
556 bsl::make_format_args(args_01,
563#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 5
564template <
class t_ARGS_01,
570void print(std::ostream& stream,
580 bsl::make_format_args(args_01,
588#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 6
589template <
class t_ARGS_01,
596void print(std::ostream& stream,
607 bsl::make_format_args(args_01,
616#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 7
617template <
class t_ARGS_01,
625void print(std::ostream& stream,
637 bsl::make_format_args(args_01,
647#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 8
648template <
class t_ARGS_01,
657void print(std::ostream& stream,
670 bsl::make_format_args(args_01,
681#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 9
682template <
class t_ARGS_01,
692void print(std::ostream& stream,
706 bsl::make_format_args(args_01,
718#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 10
719template <
class t_ARGS_01,
730void print(std::ostream& stream,
745 bsl::make_format_args(args_01,
759#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 0
761void println(std::ostream& stream,
766 bsl::vformat(fmt.get(), bsl::make_format_args()));
770#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 1
771template <
class t_ARGS_01>
773void println(std::ostream& stream,
779 bsl::vformat(fmt.get(), bsl::make_format_args(args_01)));
783#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 2
784template <
class t_ARGS_01,
787void println(std::ostream& stream,
794 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
799#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 3
800template <
class t_ARGS_01,
804void println(std::ostream& stream,
812 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
818#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 4
819template <
class t_ARGS_01,
824void println(std::ostream& stream,
833 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
840#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 5
841template <
class t_ARGS_01,
847void println(std::ostream& stream,
857 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
865#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 6
866template <
class t_ARGS_01,
873void println(std::ostream& stream,
884 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
893#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 7
894template <
class t_ARGS_01,
902void println(std::ostream& stream,
914 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
924#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 8
925template <
class t_ARGS_01,
934void println(std::ostream& stream,
947 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
958#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 9
959template <
class t_ARGS_01,
969void println(std::ostream& stream,
983 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
995#if BSLFMT_PRINT_OSTREAM_IMP_VARIADIC_LIMIT_B >= 10
996template <
class t_ARGS_01,
1007void println(std::ostream& stream,
1022 bsl::vformat(fmt.get(), bsl::make_format_args(args_01,
1038template <
class... t_ARGS>
1040void print(std::ostream& stream,
1046 bsl::make_format_args(args...));
1049template <
class... t_ARGS>
1051void println(std::ostream& stream,
1057 bsl::vformat(fmt.get(), bsl::make_format_args(args...)));
1063void println(std::ostream& stream)
1071#undef BSLFMT_FORMAT_STRING_PARAMETER
1074# error Not valid except when included from bslfmt_print_ostream_imp.h
Definition bslstl_stringview.h:471
#define BSLS_COMPILERFEATURES_FORWARD_REF(T)
Definition bsls_compilerfeatures.h:2343
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 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