We currently define the preferred names in multiple places. basic_string and basic_string_view also have a lot of aliases, which makes the declarations quite long. So let's only add the preferred names in forward-declaring headers to make the implementation more readable and have all the preferred names in one place.
Details
- Reviewers
ldionne EricWF - Group Reviewers
Restricted Project - Commits
- rG627465cf9fa7: [libc++] Move preferred_name declarations into the forward declaring headers…
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
libcxx/include/__fwd/string.h | ||
---|---|---|
58 | Second declaration here. | |
libcxx/include/regex | ||
6848 | This would have caused anybody including regex without wchar_t to fail to build, right? How did we not catch that before? | |
libcxx/include/string | ||
648–649 | Aren't we double defining this typedef? | |
659 | What happened to _LIBCPP_TEMPLATE_VIS? | |
libcxx/include/string_view | ||
207 | Shouldn't this directly include the forward decl header? |
libcxx/include/regex | ||
---|---|---|
6848 | The problem here is that we don't have a true C library that does not provide wchar_t. So yes, this would have failed indeed and we would have caught it when building for a platform that truly doesn't provide wchar_t. This is a known hole in our CI coverage, but I think we'd need a custom C library in order to catch this (or an upstream platform that does not provide wchar_t, which is equivalent). |
Second declaration here.