| # The "module partitions" for the std module |
| |
| The files in this directory contain the exported named declarations per header. |
| These files are used for the following purposes: |
| |
| - During testing exported named declarations are tested against the named |
| declarations in the associated header. This excludes reserved names; they |
| are not exported. |
| - Generate the module std. |
| |
| These use cases require including the required headers for these "partitions" |
| at different locations. This means the user of these "partitions" are |
| responsible for including the proper header and validating whether the header can |
| be loaded in the current libc++ configuration. For example "include <locale>" |
| fails when locales are not available. The "partitions" use the libc++ feature |
| macros to export the declarations available in the current configuration. This |
| configuration is available if the user includes the `__config' header. |
| |
| We use `.inc` files that we include from the top-level module instead of |
| using real C++ module partitions. This is a lot faster than module partitions, |
| see [this](https://discourse.llvm.org/t/alternatives-to-the-implementation-of-std-modules/71958) for details. |