[libcxx-commits] [PATCH] D127953: [libc++] Mark standard-mandated includes as such

Nikolas Klauser via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jun 16 13:44:07 PDT 2022

philnik added a comment.

@jloser @Mordante Do you have suggestions for how such a test would look like? I don't think it's feasible to check for every symbol that should be provided for each header and checking that header X is included in Y sounds a bit fragile to me.

Comment at: libcxx/include/array:124
 #include <type_traits>
 #include <version>
Mordante wrote:
> Should we add `<version>` to the mandatory list too? It provides `__cpp_lib_array_constexpr` which this header must provide.
I don't think we want to add `<version>` because it provides more than by the standard required. We might want to only add the macros needed for each header in them, like libstdc++ and the MSVC STL do. (Although that's not very high on my priority list)

Comment at: libcxx/include/array:127
+// standard-mandated includes
+#include <__iterator/access.h>
+#include <__iterator/data.h>
Mordante wrote:
> Since these aren't obvious how do you feel about adding a comment like  `// [iterator.range]/1` to give a hint why it's needed. 
> `<compare>` and `<initializer_list>` are obvious, so I don't feel to strong about these.
I think it's a good idea to say which section mandates them. Added comments for all headers.

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list