Implementation-defined behavior¶
Contains the implementation details of the implementation-defined behavior in libc++. Implementation-defined is mandated to be documented by the Standard.
Implementation-defined behavior¶
Updating the Time Zone Database¶
The Standard allows implementations to automatically update the remote time zone database. Libc++ opts not to do that. Instead calling
std::chrono::remote_version()
will update the version information of the remote time zone database,
std::chrono::reload_tzdb()
, if needed, will update the entire remote time zone database.
This offers a way for users to update the remote time zone database and give them full control over the process.
[ostream.formatted.print]/3 A terminal capable of displaying Unicode¶
The Standard specifies that the manner in which a stream is determined to refer
to a terminal capable of displaying Unicode is implementation-defined. This is
used for std::print
and similar functions taking an ostream&
argument.
Libc++ determines that a stream is Unicode-capable terminal by:
First it determines whether the stream’s
rdbuf()
has an underlyingFILE*
. This istrue
in the following cases:The stream is
std::cout
,std::cerr
, orstd::clog
.A
std::basic_filebuf<CharT, Traits>
derived fromstd::filebuf
.
The way to determine whether this
FILE*
refers to a terminal capable of displaying Unicode is the same as specified for void vprint_unicode(FILE* stream, string_view fmt, format_args args);. This function is used for otherstd::print
overloads that don’t take anostream&
argument.
Listed in the index of implementation-defined behavior¶
The order of the entries matches the entries in the draft of the Standard.