[all-commits] [llvm/llvm-project] cb8a0b: [libc++] [ranges] Introduce _LIBCPP_AUTO_CAST(x) f...
Quuxplusone via All-commits
all-commits at lists.llvm.org
Wed Dec 22 09:34:49 PST 2021
Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
Date: 2021-12-22 (Wed, 22 Dec 2021)
[libc++] [ranges] Introduce _LIBCPP_AUTO_CAST(x) for auto(x).
Clang is gaining `auto(x)` support in D113393; sadly there
seems to be no feature-test macro for it. Zhihao is opening
a core issue for that macro.
Use `_LIBCPP_AUTO_CAST` where C++20 specifies we should use `auto(x)`;
stop using `__decay_copy(x)` in those places.
In fact, remove `__decay_copy` entirely. As of C++20, it's purely
a paper specification tool signifying "Return just `x`, but it was
perfect-forwarded, so we understand you're going to have to call
its move-constructor sometimes." I believe there's no reason we'd
ever need to do its operation explicitly in code.
This heisenbugs away a test failure on MinGW; see D112214.
Differential Revision: https://reviews.llvm.org/D115686
More information about the All-commits