llvm-project/libcxx/docs/ImplementationDefinedBehavior.rst
Mark de Wever f78f93bc9f [libc++][chrono] Adds tzdb_list implementation.
This is the first step to implement time zone support in libc++. This
adds the complete tzdb_list class and a minimal tzdb class. The tzdb
class only contains the version, which is used by reload_tzdb.

Next to these classes it contains documentation and build system support
needed for time zone support. The code depends on the IANA Time Zone
Database, which should be available on the platform used or provided by
the libc++ vendors.

The code is labeled as experimental since there will be ABI breaks
during development; the tzdb class needs to have the standard headers.

Implements parts of:
- P0355 Extending <chrono> to Calendars and Time Zones

Addresses:
- LWG3319 Properly reference specification of IANA time zone database

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D154282
2023-09-06 20:48:07 +02:00

36 lines
1.1 KiB
ReStructuredText

.. _implementation-defined-behavior:
===============================
Implementation-defined behavior
===============================
Contains the implementation details of the implementation-defined behavior in
libc++. Implementation-defined is mandated to be documented by the Standard.
.. note:
This page is far from complete.
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.
Listed in the index of implementation-defined behavior
======================================================
The order of the entries matches the entries in the
`draft of the Standard <http://eel.is/c++draft/impldefindex>`_.