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

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jul 3 13:37:31 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:
----------------
ldionne wrote:

Yes, we agree that we may not keep them forever. I'd be okay with removing them, I just want an agreed-upon plan to do that and in particular I'd like to avoid breaking users piece by piece at every release: one large documented break creates a lot less work for everyone.

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


More information about the libcxx-commits mailing list