Quuxplusone added a comment.

In D108696#3095789 <https://reviews.llvm.org/D108696#3095789>, @ChuanqiXu wrote:
> Since there are other `experimental/*` headers moved in to normal include 
> paths, I guess there may be similar problems before. I think this problem is 
> not limited in coroutine. So how does libc++ do before for this situation 
> @Quuxplusone ?

I'm not aware of any similar situations involving `<experimental/*>`. Most 
stuff in `<experimental/*>` is just library stuff, like 
`std::experimental::pmr`, where the two versions can happily coexist because we 
have namespaces. Coroutines are special (and really annoying) because they're a 
core-language feature with a "magic" relationship to a specific library header. 
(Core-language syntax doesn't respect namespaces.) The only other "magic" 
features like that are

- `typeid` looks for `std::type_info`
- `{}` looks for `std::initializer_list`
- `auto [a,b]` looks for `std::tuple_size` etc.
- `<=>` looks for `std::strong_ordering` etc.

None of these were ever prototyped in `<experimental/*>` before being put into 
the Standard, so they never ran into this problem.


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

https://reviews.llvm.org/D108696

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

Reply via email to