[libcxx-commits] [libcxx] [libc++][ranges][enumerate_view] Fix iterator converting constructor test (PR #212044)
Hristo Hristov via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Aug 14 23:33:14 PDT 2026
================
@@ -42,31 +76,26 @@ constexpr void test() {
return EnumerateView(std::move(view));
};
- static_assert(std::is_convertible_v<EnumerateIterator, EnumerateConstIterator>);
+ static_assert(std::convertible_to<EnumerateIterator, EnumerateConstIterator>);
std::array array{0, 84, 2, 3, 4};
auto view = make_enumerate_view(array.begin(), array.end());
{
- std::same_as<EnumerateIterator> decltype(auto) it = view.begin();
- std::same_as<const Iterator&> decltype(auto) itResult = it.base();
- assert(base(base(itResult)) == std::to_address(base(array.begin())));
-
- auto [index, value] = *(++it);
- assert(index == 1);
- assert(value == 84);
- }
- {
+ // Assigning a non-const iterator to a const-iterator-typed variable invokes
+ // the converting constructor.
std::same_as<EnumerateConstIterator> decltype(auto) it = view.begin();
std::same_as<const Iterator&> decltype(auto) itResult = it.base();
assert(base(base(itResult)) == std::to_address(base(array.begin())));
+ // Verify ++it
auto [index, value] = *(++it);
assert(index == 1);
assert(value == 84);
}
}
-constexpr bool tests() {
+constexpr bool test() {
+ test_SFINAE();
----------------
Zingam wrote:
```suggestion
constexpr bool test() {
test_SFINAE();
```
https://github.com/llvm/llvm-project/pull/212044
More information about the libcxx-commits
mailing list