Content-Length: 27581 | pFad | https://wg21.link/print.fun

[print.fun]

31 Input/output library [input.output]

31.7 Formatting and manipulators [iostream.format]

31.7.10 Print functions [print.fun]

template<class... Args> void print(format_string<Args...> fmt, Args&&... args);
Effects: Equivalent to: print(stdout, fmt, std::forward<Args>(args)...);
template<class... Args> void print(FILE* stream, format_string<Args...> fmt, Args&&... args);
Effects: Let locksafe be (enable_nonlocking_formatter_optimization<remove_cvref_t<Args>> && ...).
If the ordinary literal encoding ([lex.charset]) is UTF-8, equivalent to: locksafe ? vprint_unicode(stream, fmt.str, make_format_args(args...)) : vprint_unicode_buffered(stream, fmt.str, make_format_args(args...));
Otherwise, equivalent to: locksafe ? vprint_nonunicode(stream, fmt.str, make_format_args(args...)) : vprint_nonunicode_buffered(stream, fmt.str, make_format_args(args...));
template<class... Args> void println(format_string<Args...> fmt, Args&&... args);
Effects: Equivalent to: println(stdout, fmt, std::forward<Args>(args)...);
void println();
Effects: Equivalent to: println(stdout);
template<class... Args> void println(FILE* stream, format_string<Args...> fmt, Args&&... args);
Effects: Equivalent to: print(stream, runtime_format(string(fmt.get()) + '\n'), std::forward<Args>(args)...);
void println(FILE* stream);
Effects: Equivalent to: print(stream, "\n");
void vprint_unicode(string_view fmt, format_args args);
Effects: Equivalent to: vprint_unicode(stdout, fmt, args);
void vprint_unicode_buffered(FILE* stream, string_view fmt, format_args args);
Effects: Equivalent to: string out = vformat(fmt, args); vprint_unicode(stream, "{}", make_format_args(out));
void vprint_unicode(FILE* stream, string_view fmt, format_args args);
Preconditions: stream is a valid pointer to an output C stream.
Effects: Locks stream.
Let out denote the character representation of formatting arguments provided by args formatted according to specifications given in fmt.
  • If stream refers to a terminal that is capable of displaying Unicode only via a native Unicode API, flushes stream and then writes out to the terminal using the native Unicode API; if out contains invalid code units, the behavior is undefined.
  • Otherwise writes out to stream unchanged.
Unconditionally unlocks stream on function exit.
See also: ISO/IEC 9899:2018, 7.21.2.
[Note 1: 
On Windows the native Unicode API is WriteConsoleW and stream referring to a terminal means that GetConsoleMode(_get_osfhandle(_fileno(stream)), ...) returns nonzero.
— end note]
Throws: Any exception thrown by the call to vformat ([format.err.report]).
system_error if writing to the terminal or stream fails.
May throw bad_alloc.
Recommended practice: If invoking the native Unicode API requires transcoding, implementations should substitute invalid code units with U+fffd replacement character per the Unicode Standard, Chapter 3.9 U+fffd Substitution in Conversion.
void vprint_nonunicode(string_view fmt, format_args args);
Effects: Equivalent to: vprint_nonunicode(stdout, fmt, args);
void vprint_nonunicode_buffered(FILE* stream, string_view fmt, format_args args);
Effects: Equivalent to: string out = vformat(fmt, args); vprint_nonunicode("{}", make_format_args(out));
void vprint_nonunicode(FILE* stream, string_view fmt, format_args args);
Preconditions: stream is a valid pointer to an output C stream.
Effects: While holding the lock on stream, writes the character representation of formatting arguments provided by args formatted according to specifications given in fmt to stream.
Throws: Any exception thrown by the call to vformat ([format.err.report]).
system_error if writing to stream fails.
May throw bad_alloc.








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://wg21.link/print.fun

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy