[PATCH] D108696: [Coroutines] [Frontend] Lookup in std namespace first
Arthur O'Dwyer via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 29 08:36:28 PDT 2021
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
More information about the cfe-commits
mailing list