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