diff --git a/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.addressof.compile.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.addressof.compile.pass.cpp --- a/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.addressof.compile.pass.cpp +++ b/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.addressof.compile.pass.cpp @@ -19,10 +19,9 @@ #include "operator_hijacker.h" #include "test_iterators.h" -void test() { +void test(cpp17_input_iterator i) { { std::vector v; - cpp17_input_iterator::iterator> i; v.insert(v.end(), i, i); } { diff --git a/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp --- a/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp +++ b/libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp @@ -179,7 +179,7 @@ { std::vector s; - s.insert(s.end(), cpp17_input_iterator(), cpp17_input_iterator()); + s.insert(s.end(), cpp17_input_iterator(nullptr), cpp17_input_iterator(nullptr)); } return 0; diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp --- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp +++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp @@ -15,6 +15,7 @@ #include #include +#include #include "test_iterators.h" @@ -44,61 +45,103 @@ std::ptrdiff_t count_ = 0; }; -template Sent = It> -constexpr void check_assignable_case(std::ptrdiff_t const n) { +template +constexpr void check_assignable_case() { auto range = range_t{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - auto first = stride_counting_iterator(It(range.begin())); - std::ranges::advance(first, stride_counting_iterator(Sent(It(range.begin() + n)))); - assert(first.base().base() == range.begin() + n); - assert(first.stride_count() == 0); // because we got here by assigning from last, not by incrementing + + for (std::ptrdiff_t n = 0; n != 9; ++n) { + { + It first(range.begin()); + Sent last(It(range.begin() + n)); + std::ranges::advance(first, last); + assert(&*first == range.begin() + n); + } + + // Count operations + if constexpr (std::is_same_v) { + stride_counting_iterator first(It(range.begin())); + stride_counting_iterator last(It(range.begin() + n)); + std::ranges::advance(first, last); + assert(first.base().base() == range.begin() + n); + assert(first.stride_count() == 0); // because we got here by assigning from last, not by incrementing + } + } } -template -constexpr void check_sized_sentinel_case(std::ptrdiff_t const n) { +template +constexpr void check_sized_sentinel_case() { auto range = range_t{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - auto first = stride_counting_iterator(It(range.begin())); - std::ranges::advance(first, distance_apriori_sentinel(n)); - - assert(first.base().base() == range.begin() + n); - if constexpr (std::random_access_iterator) { - assert(first.stride_count() == 1); - assert(first.stride_displacement() == 1); - } else { - assert(first.stride_count() == n); - assert(first.stride_displacement() == n); + + for (std::ptrdiff_t n = 0; n != 9; ++n) { + { + It first(range.begin()); + distance_apriori_sentinel last(n); + std::ranges::advance(first, last); + assert(&*first == range.begin() + n); + } + + // Count operations + { + stride_counting_iterator first(It(range.begin())); + distance_apriori_sentinel last(n); + std::ranges::advance(first, last); + + assert(first.base().base() == range.begin() + n); + if constexpr (std::random_access_iterator) { + assert(first.stride_count() == 1); + assert(first.stride_displacement() == 1); + } else { + assert(first.stride_count() == n); + assert(first.stride_displacement() == n); + } + } } } -template -constexpr void check_sentinel_case(std::ptrdiff_t const n) { +template +constexpr void check_sentinel_case() { auto range = range_t{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - auto first = stride_counting_iterator(It(range.begin())); - auto const last = It(range.begin() + n); - std::ranges::advance(first, sentinel_wrapper(last)); - assert(first.base() == last); - assert(first.stride_count() == n); + + for (std::ptrdiff_t n = 0; n != 9; ++n) { + { + It first(range.begin()); + sentinel_wrapper last(It(range.begin() + n)); + std::ranges::advance(first, last); + assert(&*first == range.begin() + n); + } + + // Count operations + { + stride_counting_iterator first(It(range.begin())); + sentinel_wrapper last(It(range.begin() + n)); + std::ranges::advance(first, last); + assert(first.base() == last); + assert(first.stride_count() == n); + } + } } constexpr bool test() { - check_assignable_case >(1); - check_assignable_case >(3); - check_assignable_case >(4); - check_assignable_case >(5); - check_assignable_case >(6); - - check_sized_sentinel_case >(7); - check_sized_sentinel_case >(6); - check_sized_sentinel_case >(5); - check_sized_sentinel_case >(4); - check_sized_sentinel_case >(3); - check_sized_sentinel_case >(2); - - check_sentinel_case >(1); + using It = range_t::const_iterator; + check_assignable_case, sentinel_wrapper>>(); + check_assignable_case>(); + check_assignable_case>(); + check_assignable_case>(); + check_assignable_case>(); + + check_sized_sentinel_case>(); + check_sized_sentinel_case>(); + check_sized_sentinel_case>(); + check_sized_sentinel_case>(); + check_sized_sentinel_case>(); + check_sized_sentinel_case>(); + + check_sentinel_case>(); // cpp20_input_iterator not copyable, so is omitted - check_sentinel_case >(3); - check_sentinel_case >(4); - check_sentinel_case >(5); - check_sentinel_case >(6); + check_sentinel_case>(); + check_sentinel_case>(); + check_sentinel_case>(); + check_sentinel_case>(); return true; } diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count_sentinel.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count_sentinel.pass.cpp --- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count_sentinel.pass.cpp +++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count_sentinel.pass.cpp @@ -13,18 +13,19 @@ #include #include +#include #include "test_iterators.h" -template -constexpr void check(It it, std::ptrdiff_t n, It last) { +template +constexpr void check(It it, std::ptrdiff_t n, Sent last) { { It result = std::ranges::next(it, n, last); assert(result == last); } // Count the number of operations - { + if constexpr (std::is_same_v) { stride_counting_iterator strided_it(it); stride_counting_iterator strided_last(last); stride_counting_iterator result = std::ranges::next(strided_it, n, strided_last); @@ -46,13 +47,13 @@ constexpr bool test() { int range[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - check(cpp17_input_iterator(&range[0]), 1, cpp17_input_iterator(&range[1])); + check(cpp17_input_iterator(&range[0]), 1, sentinel_wrapper(cpp17_input_iterator(&range[1]))); check(forward_iterator(&range[0]), 2, forward_iterator(&range[2])); check(bidirectional_iterator(&range[2]), 6, bidirectional_iterator(&range[8])); check(random_access_iterator(&range[3]), 2, random_access_iterator(&range[5])); check(contiguous_iterator(&range[0]), 5, contiguous_iterator(&range[5])); - check(cpp17_input_iterator(&range[0]), 0, cpp17_input_iterator(&range[0])); + check(cpp17_input_iterator(&range[0]), 0, sentinel_wrapper(cpp17_input_iterator(&range[0]))); check(forward_iterator(&range[0]), 0, forward_iterator(&range[0])); check(bidirectional_iterator(&range[2]), 0, bidirectional_iterator(&range[2])); check(random_access_iterator(&range[3]), 0, random_access_iterator(&range[3])); diff --git a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp --- a/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp +++ b/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp @@ -45,24 +45,24 @@ std::ptrdiff_t count_ = 0; }; -template -constexpr void check_assignable(It it, It last, int const* expected) { +template +constexpr void check_assignable(It it, Sent last, int const* expected) { { It result = std::ranges::next(std::move(it), std::move(last)); assert(&*result == expected); } // Count operations - { - auto strided_it = stride_counting_iterator(std::move(it)); - auto strided_last = stride_counting_iterator(std::move(last)); - auto result = std::ranges::next(std::move(strided_it), std::move(strided_last)); + if constexpr (Count) { + stride_counting_iterator strided_it(std::move(it)); + stride_counting_iterator strided_last(std::move(last)); + stride_counting_iterator result = std::ranges::next(std::move(strided_it), std::move(strided_last)); assert(&*result == expected); assert(result.stride_count() == 0); // because we got here by assigning from last, not by incrementing } } -template +template constexpr void check_sized_sentinel(It it, It last, int const* expected) { auto n = (last.base() - it.base()); @@ -73,7 +73,7 @@ } // Count operations - { + if constexpr (Count) { auto strided_it = stride_counting_iterator(std::move(it)); auto sent = distance_apriori_sentinel(n); auto result = std::ranges::next(std::move(strided_it), sent); @@ -89,7 +89,7 @@ } } -template +template constexpr void check_sentinel(It it, It last, int const* expected) { auto n = (last.base() - it.base()); @@ -100,7 +100,7 @@ } // Count operations - { + if constexpr (Count) { auto strided_it = stride_counting_iterator(it); auto sent = sentinel_wrapper(stride_counting_iterator(last)); stride_counting_iterator result = std::ranges::next(std::move(strided_it), sent); @@ -112,7 +112,7 @@ constexpr bool test() { int range[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - check_assignable(cpp17_input_iterator(&range[0]), cpp17_input_iterator(&range[2]), &range[2]); + check_assignable(cpp17_input_iterator(&range[0]), sentinel_wrapper(cpp17_input_iterator(&range[2])), &range[2]); check_assignable(forward_iterator(&range[0]), forward_iterator(&range[3]), &range[3]); check_assignable(bidirectional_iterator(&range[0]), bidirectional_iterator(&range[4]), &range[4]); check_assignable(random_access_iterator(&range[0]), random_access_iterator(&range[5]), &range[5]); @@ -125,7 +125,7 @@ check_sized_sentinel(random_access_iterator(&range[0]), random_access_iterator(&range[3]), &range[3]); check_sized_sentinel(contiguous_iterator(&range[0]), contiguous_iterator(&range[2]), &range[2]); - check_sentinel(cpp17_input_iterator(&range[0]), cpp17_input_iterator(&range[1]), &range[1]); + check_sentinel(cpp17_input_iterator(&range[0]), cpp17_input_iterator(&range[1]), &range[1]); // cpp20_input_iterator not copyable, so is omitted check_sentinel(forward_iterator(&range[0]), forward_iterator(&range[3]), &range[3]); check_sentinel(bidirectional_iterator(&range[0]), bidirectional_iterator(&range[4]), &range[4]); diff --git a/libcxx/test/std/iterators/predef.iterators/counted.iterator/ctor.default.pass.cpp b/libcxx/test/std/iterators/predef.iterators/counted.iterator/ctor.default.pass.cpp --- a/libcxx/test/std/iterators/predef.iterators/counted.iterator/ctor.default.pass.cpp +++ b/libcxx/test/std/iterators/predef.iterators/counted.iterator/ctor.default.pass.cpp @@ -17,11 +17,11 @@ #include "test_iterators.h" constexpr bool test() { - static_assert( std::default_initializable>>); - static_assert(!std::default_initializable>>); + static_assert(!std::default_initializable>>); + static_assert( std::default_initializable>>); - std::counted_iterator> iter; - assert(iter.base() == cpp17_input_iterator()); + std::counted_iterator> iter; + assert(iter.base() == forward_iterator()); assert(iter.count() == 0); return true; diff --git a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp --- a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp +++ b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp @@ -29,7 +29,7 @@ int main(int, char**) { - test >(); + // input iterators are not required to be default constructible, so not testing that case test >(); test >(); test >(); diff --git a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp --- a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp +++ b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp @@ -28,7 +28,7 @@ test(U u) { const std::move_iterator r2(u); - std::move_iterator r1; + std::move_iterator r1(It(nullptr)); std::move_iterator& rr = (r1 = r2); assert(r1.base() == u); assert(&rr == &r1); diff --git a/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.default.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.default.pass.cpp --- a/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.default.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.default.pass.cpp @@ -23,16 +23,16 @@ T *ptr_; constexpr DefaultCtorParent(T *ptr) : ptr_(ptr) {} - constexpr cpp17_input_iterator begin() { return cpp17_input_iterator(ptr_); } - constexpr cpp17_input_iterator begin() const { return cpp17_input_iterator(ptr_); } + constexpr forward_iterator begin() { return forward_iterator(ptr_); } + constexpr forward_iterator begin() const { return forward_iterator(ptr_); } constexpr T *end() { return ptr_ + 4; } constexpr const T *end() const { return ptr_ + 4; } }; template -constexpr bool operator==(const cpp17_input_iterator &lhs, const T *rhs) { return lhs.base() == rhs; } +constexpr bool operator==(const forward_iterator &lhs, const T *rhs) { return lhs.base() == rhs; } template -constexpr bool operator==(const T *lhs, const cpp17_input_iterator &rhs) { return rhs.base() == lhs; } +constexpr bool operator==(const T *lhs, const forward_iterator &rhs) { return rhs.base() == lhs; } constexpr bool test() { using Base = DefaultCtorParent; diff --git a/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/member_types.compile.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/member_types.compile.pass.cpp --- a/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/member_types.compile.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/member_types.compile.pass.cpp @@ -20,18 +20,14 @@ template struct ForwardView : std::ranges::view_base { - friend forward_iterator begin(ForwardView&) { return forward_iterator(nullptr); } - friend forward_iterator begin(ForwardView const&) { return forward_iterator(nullptr); } - friend forward_iterator end(ForwardView&) { return forward_iterator(nullptr); } - friend forward_iterator end(ForwardView const&) { return forward_iterator(nullptr); } + forward_iterator begin() const; + sentinel_wrapper> end() const; }; template struct InputView : std::ranges::view_base { - friend cpp17_input_iterator begin(InputView&) { return cpp17_input_iterator(nullptr); } - friend cpp17_input_iterator begin(InputView const&) { return cpp17_input_iterator(nullptr); } - friend cpp17_input_iterator end(InputView&) { return cpp17_input_iterator(nullptr); } - friend cpp17_input_iterator end(InputView const&) { return cpp17_input_iterator(nullptr); } + cpp17_input_iterator begin() const; + sentinel_wrapper> end() const; }; template diff --git a/libcxx/test/std/ranges/range.req/range.range/sentinel_t.compile.pass.cpp b/libcxx/test/std/ranges/range.req/range.range/sentinel_t.compile.pass.cpp --- a/libcxx/test/std/ranges/range.req/range.range/sentinel_t.compile.pass.cpp +++ b/libcxx/test/std/ranges/range.req/range.range/sentinel_t.compile.pass.cpp @@ -25,6 +25,6 @@ static_assert(std::same_as >, sentinel>); static_assert(std::same_as const>, sentinel>); static_assert(std::same_as >, sentinel>); -static_assert(std::same_as >, cpp17_input_iterator >); -static_assert(std::same_as const>, cpp17_input_iterator >); -static_assert(std::same_as >, cpp17_input_iterator >); +static_assert(std::same_as >, forward_iterator >); +static_assert(std::same_as const>, forward_iterator >); +static_assert(std::same_as >, forward_iterator >); diff --git a/libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp b/libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp --- a/libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp +++ b/libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp @@ -26,11 +26,11 @@ static_assert(!std::ranges::common_range >); static_assert(!std::ranges::common_range const>); -static_assert(std::ranges::common_range >); -static_assert(std::ranges::common_range const>); +static_assert(std::ranges::common_range >); +static_assert(std::ranges::common_range const>); -static_assert(std::ranges::common_range >); -static_assert(!std::ranges::common_range const>); +static_assert(std::ranges::common_range >); +static_assert(!std::ranges::common_range const>); struct subtly_not_common { int* begin() const; diff --git a/libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp b/libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp --- a/libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp +++ b/libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp @@ -32,14 +32,14 @@ static_assert(!std::ranges::input_range const>); static_assert(!std::ranges::input_range const>); -static_assert(std::ranges::input_range >); +static_assert(std::ranges::input_range >); static_assert(!std::ranges::input_range >); -static_assert(std::ranges::input_range const>); +static_assert(std::ranges::input_range const>); static_assert(!std::ranges::input_range const>); -static_assert(std::ranges::input_range >); +static_assert(std::ranges::input_range >); static_assert(!std::ranges::input_range >); -static_assert(!std::ranges::input_range const>); +static_assert(!std::ranges::input_range const>); static_assert(!std::ranges::input_range const>); diff --git a/libcxx/test/std/ranges/range.utility/range.subrange/advance.pass.cpp b/libcxx/test/std/ranges/range.utility/range.subrange/advance.pass.cpp --- a/libcxx/test/std/ranges/range.utility/range.subrange/advance.pass.cpp +++ b/libcxx/test/std/ranges/range.utility/range.subrange/advance.pass.cpp @@ -31,7 +31,7 @@ assert(a4.begin() == globalBuff + 4); assert(a4.size() == 4); - std::ranges::subrange b(InputIter(globalBuff), InputIter(globalBuff + 8)); + std::ranges::subrange> b(InputIter(globalBuff), sentinel_wrapper(InputIter(globalBuff + 8))); auto b1 = std::move(b).next(); assert(b1.begin().base() == globalBuff + 1); diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp @@ -178,9 +178,9 @@ typedef ThrowingIterator TIter; typedef cpp17_input_iterator IIter; const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - test_exceptions(S(), IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter()); - test_exceptions(S(), IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter()); - test_exceptions(S(), IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter()); + test_exceptions(S(), IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter())); + test_exceptions(S(), IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter())); + test_exceptions(S(), IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter())); test_exceptions(S(), TIter(s, s+10, 4, TIter::TAIncrement), TIter()); test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter()); diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp @@ -178,9 +178,9 @@ typedef ThrowingIterator TIter; typedef cpp17_input_iterator IIter; const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - test_exceptions(S(), IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter()); - test_exceptions(S(), IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter()); - test_exceptions(S(), IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter()); + test_exceptions(S(), IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter())); + test_exceptions(S(), IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter())); + test_exceptions(S(), IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter())); test_exceptions(S(), TIter(s, s+10, 4, TIter::TAIncrement), TIter()); test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter()); diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp @@ -156,9 +156,9 @@ typedef ThrowingIterator TIter; typedef cpp17_input_iterator IIter; const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - test_exceptions(S(), 0, IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter()); - test_exceptions(S(), 0, IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter()); - test_exceptions(S(), 0, IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter()); + test_exceptions(S(), 0, IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter())); + test_exceptions(S(), 0, IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter())); + test_exceptions(S(), 0, IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter())); test_exceptions(S(), 0, TIter(s, s+10, 4, TIter::TAIncrement), TIter()); test_exceptions(S(), 0, TIter(s, s+10, 5, TIter::TADereference), TIter()); diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp @@ -1008,9 +1008,9 @@ typedef ThrowingIterator TIter; typedef cpp17_input_iterator IIter; const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter()); - test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter()); - test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter()); + test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter())); + test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter())); + test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter())); test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 4, TIter::TAIncrement), TIter()); test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 5, TIter::TADereference), TIter()); diff --git a/libcxx/test/support/test_iterators.h b/libcxx/test/support/test_iterators.h --- a/libcxx/test/support/test_iterators.h +++ b/libcxx/test/support/test_iterators.h @@ -66,7 +66,6 @@ TEST_CONSTEXPR_CXX14 It base() const {return it_;} - TEST_CONSTEXPR_CXX14 cpp17_input_iterator() : it_() {} explicit TEST_CONSTEXPR_CXX14 cpp17_input_iterator(It it) : it_(it) {} template TEST_CONSTEXPR_CXX14 cpp17_input_iterator(const cpp17_input_iterator& u) :it_(u.it_) {}