[libcxx-commits] [libcxx] [libc++] Stabilize transitive includes for C++23 (PR #134143)

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jul 2 08:34:20 PDT 2025


================
@@ -33,21 +34,31 @@ newer version of the Standard. Libc++ also reserves the right to remove
 transitive includes at any other time, however new language versions will be
 used as a convenient way to perform bulk removals of transitive includes.
 
-For libc++ developers, this means that any transitive include removal must be
-guarded by something of the form:
+However, libc++ intends not to gratuitously break users on stable versions of
+the Standard. Hence, we intend to maintain backwards compatibility of the
+declarations we provide in a header, within reason. For libc++ developers, this
+means that any transitive include removal of a public header must be guarded by
+something of the form:
----------------
philnik777 wrote:

This sounds to me a bit like we'll never remove the transitive includes. Could we add a "for now" somewhere so that it's clear this is just the current state and not a guarantee we want to keep forever? (At least I think we agree that we don't want to keep it forever?)

https://github.com/llvm/llvm-project/pull/134143


More information about the libcxx-commits mailing list