ldionne added a comment.

This is quite interesting, I'd love to be able to use this in libc++ (and 
suggest that my peers use this in Apple's libc)!

In D106394#2892832 <https://reviews.llvm.org/D106394#2892832>, @sammccall wrote:

> Eventually this seems like a reasonable thing to want for user code. What are 
> your motivations for restricting it to system headers? (And do you think 
> people in future will be tempted to lift them?)

The problem with extending this to non-system headers is that you need a way to 
tell which headers are allowed to include the detail headers and which ones are 
not. If a user-written library were able to use this pragma, it would need to 
somehow tell the compiler that its own headers are allowed to include the 
detail headers in the library. But that would require some notion of "header 
group", which, if you go down the rabbit hole, I think is roughly equivalent to 
implementing modules. By special-casing system headers, you sidestep this whole 
issue by saying "all system headers are special and they are allowed to include 
any other header", removing the need for something more clever. Chris can 
correct me if that's incorrect, but that's my understanding of the situation.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106394/new/

https://reviews.llvm.org/D106394

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to