[libcxx-commits] [PATCH] D128281: [libc++] fix views::all hard error on lvalue move only views instead of SFINAE
Konstantin Varlamov via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Jun 21 10:47:28 PDT 2022
var-const added a comment.
Thanks a lot for the fix! The header change LGTM, but I have one question regarding the test.
================
Comment at: libcxx/include/__ranges/all.h:42
noexcept(noexcept(_LIBCPP_AUTO_CAST(std::forward<_Tp>(__t))))
+ -> decltype(_LIBCPP_AUTO_CAST(std::forward<_Tp>(__t)))
{
----------------
I wonder if we have any other cases where we don't write the return type 3 times and consequently don't get SFINAE.
================
Comment at: libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp:153
static_assert(!std::is_invocable_v<decltype(std::views::all), RandomAccessRange, RandomAccessRange>);
+ static_assert(!std::is_invocable_v<decltype(std::views::all), MoveOnlyView&>);
}
----------------
Is it important for the view to be move-only? From the patch description, I got the impression that any reference should fail, but perhaps I'm missing something?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128281/new/
https://reviews.llvm.org/D128281
More information about the libcxx-commits
mailing list