diff --git a/include/stl2/detail/concepts/callable.hpp b/include/stl2/detail/concepts/callable.hpp index 49c5e5baa..bb766c825 100644 --- a/include/stl2/detail/concepts/callable.hpp +++ b/include/stl2/detail/concepts/callable.hpp @@ -94,8 +94,6 @@ STL2_OPEN_NAMESPACE { template struct indirect_result_of {}; - // Not to spec: - // and https://github.com/ericniebler/stl2/issues/286 template requires Invocable...> diff --git a/include/stl2/detail/concepts/compare.hpp b/include/stl2/detail/concepts/compare.hpp index 0b1ab95df..99c4388f4 100644 --- a/include/stl2/detail/concepts/compare.hpp +++ b/include/stl2/detail/concepts/compare.hpp @@ -25,7 +25,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Boolean [concepts.lib.compare.boolean] - // Not to spec: see https://github.com/ericniebler/stl2/issues/155 // template concept bool Boolean = diff --git a/include/stl2/detail/concepts/core.hpp b/include/stl2/detail/concepts/core.hpp index de53fe109..c62a5a26e 100644 --- a/include/stl2/detail/concepts/core.hpp +++ b/include/stl2/detail/concepts/core.hpp @@ -71,7 +71,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // DerivedFrom [concepts.lib.corelang.derived] - // Not to spec: https://github.com/ericniebler/stl2/issues/255 + // template concept bool DerivedFrom = #if defined(__GNUC__) @@ -90,9 +90,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // ConvertibleTo [concepts.lib.corelang.convertibleto] - // Not to spec: Requires both implicit and explicit conversion with - // equal results. - // See https://github.com/ericniebler/stl2/issues/167 // template concept bool ConvertibleTo = diff --git a/include/stl2/detail/concepts/object/assignable.hpp b/include/stl2/detail/concepts/object/assignable.hpp index 8caed4cc0..643170674 100644 --- a/include/stl2/detail/concepts/object/assignable.hpp +++ b/include/stl2/detail/concepts/object/assignable.hpp @@ -22,8 +22,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Assignable [concepts.lib.corelang.assignable] // - // Not to spec - // See https://github.com/ericniebler/stl2/issues/229 template concept bool Assignable = _Is && diff --git a/include/stl2/detail/concepts/object/movable.hpp b/include/stl2/detail/concepts/object/movable.hpp index 6e4777a4c..ab1a35757 100644 --- a/include/stl2/detail/concepts/object/movable.hpp +++ b/include/stl2/detail/concepts/object/movable.hpp @@ -22,8 +22,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Movable [concepts.lib.object.movable] // - // Not to spec - // https://github.com/ericniebler/stl2/issues/310 template concept bool Movable = ext::Object && diff --git a/include/stl2/detail/concepts/object/move_constructible.hpp b/include/stl2/detail/concepts/object/move_constructible.hpp index a1ab2b598..c18aa68d4 100644 --- a/include/stl2/detail/concepts/object/move_constructible.hpp +++ b/include/stl2/detail/concepts/object/move_constructible.hpp @@ -61,8 +61,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Destructible [concepts.lib.object.destructible] - // Not to spec - // https://github.com/ericniebler/stl2/issues/301 + // template concept bool Destructible = _Is && __addressable; @@ -76,8 +75,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Constructible [concepts.lib.object.constructible] - // Not to spec - // See https://github.com/ericniebler/stl2/issues/301 + // template concept bool Constructible = Destructible && _Is; @@ -91,8 +89,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // DefaultConstructible [concepts.lib.object.defaultconstructible] - // Not to spec - // https://github.com/ericniebler/stl2/issues/301 + // template concept bool DefaultConstructible = Constructible; @@ -106,8 +103,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // MoveConstructible [concepts.lib.object.moveconstructible] - // Not to spec - // https://github.com/ericniebler/stl2/issues/313 + // template concept bool MoveConstructible = Constructible && ConvertibleTo; diff --git a/include/stl2/detail/concepts/object/semiregular.hpp b/include/stl2/detail/concepts/object/semiregular.hpp index 0625e240b..7aab066e9 100644 --- a/include/stl2/detail/concepts/object/semiregular.hpp +++ b/include/stl2/detail/concepts/object/semiregular.hpp @@ -23,9 +23,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // CopyConstructible [concepts.lib.object.copyconstructible] - // Not to spec - // https://github.com/ericniebler/stl2/issues/301 - // https://github.com/ericniebler/stl2/issues/313 + // template concept bool CopyConstructible = MoveConstructible && diff --git a/include/stl2/detail/iterator/common_iterator.hpp b/include/stl2/detail/iterator/common_iterator.hpp index 2883f8425..1cc2cb321 100644 --- a/include/stl2/detail/iterator/common_iterator.hpp +++ b/include/stl2/detail/iterator/common_iterator.hpp @@ -172,20 +172,16 @@ STL2_OPEN_NAMESPACE { public: using difference_type = difference_type_t; - // Not to spec: constexpr per P0579 constexpr common_iterator() = default; - // Not to spec: constexpr per P0579 constexpr common_iterator(I i) noexcept(is_nothrow_constructible, I>::value) : v_{std::move(i)} {} - // Not to spec: constexpr per P0579 constexpr common_iterator(S s) noexcept(is_nothrow_constructible, S>::value) : v_{std::move(s)} {} - // Not to spec: constexpr per P0579 template II, ConvertibleTo SS> constexpr common_iterator(const common_iterator& i) noexcept( @@ -229,8 +225,7 @@ STL2_OPEN_NAMESPACE { ++__stl2::get_unchecked(v_); return *this; } - // Not to spec: - // https://github.com/ericniebler/stl2/issues/232 + decltype(auto) operator++(int) noexcept(noexcept((decltype(declval()++))declval()++)) { STL2_EXPECT(__stl2::holds_alternative(v_)); @@ -245,8 +240,6 @@ STL2_OPEN_NAMESPACE { return tmp; } - // Not to spec: - // https://github.com/ericniebler/stl2/issues/245 friend rvalue_reference_t iter_move( const common_iterator& i) noexcept(noexcept(__stl2::iter_move(std::declval()))) diff --git a/include/stl2/detail/iterator/concepts.hpp b/include/stl2/detail/iterator/concepts.hpp index 7285fa0d4..6312c443b 100644 --- a/include/stl2/detail/iterator/concepts.hpp +++ b/include/stl2/detail/iterator/concepts.hpp @@ -53,9 +53,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // iter_move - // Not to spec: Uses a two-step dispatch instead of requiring user overloads - // to compete with the default overloads in overload resolution. - // See https://github.com/ericniebler/stl2/issues/242 // namespace __iter_move { // Not a poison pill, simply a non-ADL block. @@ -108,8 +105,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // value_type [readable.iterators] // Not to spec: - // * Implements #299 - // * Implements #423 + // * Implements https://github.com/ericniebler/stl2/issues/423 // namespace detail { template @@ -170,9 +166,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Readable [readable.iterators] - // Not to spec: Disables the "Experimental additional tests" - // See https://github.com/ericniebler/stl2/issues/239 - // Additional changes from P0547 // template concept bool Readable = @@ -201,9 +194,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Writable [iterators.writable] - // Not to spec, but getting closer. - // See https://github.com/ericniebler/stl2/issues/339 - // and https://github.com/ericniebler/stl2/issues/381 // template concept bool Writable = @@ -310,8 +300,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // iter_swap - // Not to spec - // See https://github.com/ericniebler/stl2/issues/242 // namespace __iter_swap { // Poison pill for iter_swap. (See the detailed discussion at @@ -382,8 +370,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // IndirectlySwappable [commonalgoreq.indirectlyswappable] - // Not to spec - // See https://github.com/ericniebler/stl2/issues/241 // template @@ -568,8 +554,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // OutputIterator [iterators.output] - // Not to spec: - // adds requirement on *i++ from P0541. + // template concept bool OutputIterator = Iterator && @@ -587,8 +572,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // InputIterator [iterators.input] - // Not to spec: No requirements on i++ - // See http://github.com/ericniebler/stl2/issues/232 // template concept bool InputIterator = diff --git a/include/stl2/detail/iterator/counted_iterator.hpp b/include/stl2/detail/iterator/counted_iterator.hpp index ab78d9e40..8fafeb7c5 100644 --- a/include/stl2/detail/iterator/counted_iterator.hpp +++ b/include/stl2/detail/iterator/counted_iterator.hpp @@ -23,7 +23,6 @@ #include STL2_OPEN_NAMESPACE { - // Not to spec: All members constexpr per P0579 Iterator{I} class counted_iterator { Iterator{O} friend class counted_iterator; @@ -76,8 +75,6 @@ STL2_OPEN_NAMESPACE { --cnt(); return *this; } - // Not to spec: - // https://github.com/ericniebler/stl2/issues/232 constexpr decltype(auto) operator++(int) { STL2_EXPECT(cnt() > 0); --cnt(); @@ -129,8 +126,6 @@ STL2_OPEN_NAMESPACE { return current()[n]; } - // Not to spec - // https://github.com/ericniebler/stl2/issues/245 friend constexpr rvalue_reference_t iter_move(const counted_iterator& i) noexcept(noexcept(__stl2::iter_move(i.current()))) @@ -154,7 +149,6 @@ STL2_OPEN_NAMESPACE { using type = iterator_category_t; }; - // Not to spec: All operators constexpr per P0579 template requires Common constexpr bool operator==( @@ -230,14 +224,12 @@ STL2_OPEN_NAMESPACE { return x + n; } - // Not to spec: constexpr per P0579 template constexpr auto make_counted_iterator(I i, difference_type_t n) STL2_NOEXCEPT_RETURN( counted_iterator{std::move(i), n} ) - // Not to spec: constexpr per P0579 Iterator{I} constexpr void advance(counted_iterator& i, difference_type_t n) noexcept(noexcept(__stl2::advance(std::declval(), n))) @@ -247,7 +239,6 @@ STL2_OPEN_NAMESPACE { i.cnt() -= n; } - // Not to spec: constexpr per P0579 RandomAccessIterator{I} constexpr void advance(counted_iterator& i, difference_type_t n) STL2_NOEXCEPT_RETURN( diff --git a/include/stl2/detail/iterator/increment.hpp b/include/stl2/detail/iterator/increment.hpp index ffe76d789..c692774ac 100644 --- a/include/stl2/detail/iterator/increment.hpp +++ b/include/stl2/detail/iterator/increment.hpp @@ -27,8 +27,6 @@ STL2_OPEN_NAMESPACE { // * Workaround https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78173; it is // necessary to guard the requires clause of the "fallback" specialization // to prevent hard errors for pointers to incomplete types. - // * Omit the extraneous is_array specialization. - // See https://github.com/ericniebler/stl2/issues/243 // namespace detail { template diff --git a/include/stl2/detail/iterator/insert_iterators.hpp b/include/stl2/detail/iterator/insert_iterators.hpp index c339b94e7..beec83a9f 100644 --- a/include/stl2/detail/iterator/insert_iterators.hpp +++ b/include/stl2/detail/iterator/insert_iterators.hpp @@ -153,8 +153,6 @@ STL2_OPEN_NAMESPACE { insert_iterator& operator++() { return *this; } - // Not to spec: - // https://github.com/ericniebler/stl2/issues/232 insert_iterator& operator++(int) { return *this; } diff --git a/include/stl2/detail/iterator/istreambuf_iterator.hpp b/include/stl2/detail/iterator/istreambuf_iterator.hpp index 6106c2a34..a76702124 100644 --- a/include/stl2/detail/iterator/istreambuf_iterator.hpp +++ b/include/stl2/detail/iterator/istreambuf_iterator.hpp @@ -31,8 +31,7 @@ STL2_OPEN_NAMESPACE { } // Not to spec: - // * requirements are implicit. - // See https://github.com/ericniebler/stl2/issues/246) + // * Implements https://github.com/ericniebler/stl2/issues/246 // template > requires diff --git a/include/stl2/detail/iterator/move_iterator.hpp b/include/stl2/detail/iterator/move_iterator.hpp index d4d7890f3..460a0036a 100644 --- a/include/stl2/detail/iterator/move_iterator.hpp +++ b/include/stl2/detail/iterator/move_iterator.hpp @@ -99,34 +99,6 @@ STL2_OPEN_NAMESPACE { static_cast(++current_) ) - // Not to spec - // Experimental support for move_iterator post-increment - // BUGBUG doesn't correctly handle when decltype(current_++) - // is a reference. - using __postinc_t = std::decay_t; - Readable{R} - struct __proxy { - using value_type = __stl2::value_type_t; - R __tmp; - constexpr decltype(auto) operator*() - STL2_NOEXCEPT_RETURN( - __stl2::iter_move(__tmp) - ) - friend constexpr decltype(auto) iter_move(const __proxy& that) - STL2_NOEXCEPT_RETURN( - __stl2::iter_move(that.__tmp) - ) - }; - -#if STL2_WORKAROUND_GCC_69096 - template -#endif // STL2_WORKAROUND_GCC_69096 - constexpr auto post_increment() - noexcept(noexcept(__proxy<__postinc_t>{current_++})) - requires !ForwardIterator && Readable<__postinc_t> { - return __proxy<__postinc_t>{current_++}; - } - constexpr void prev() noexcept(noexcept(--current_)) requires BidirectionalIterator @@ -180,10 +152,6 @@ STL2_OPEN_NAMESPACE { }; } - // Not to spec: - // * uses iter_move in operator* (See https://github.com/ericniebler/stl2/issues/244) - // * hooks iter_move and iter_swap (See https://github.com/ericniebler/stl2/issues/245) - // * constexpr per P0579 InputIterator{I} using move_iterator = basic_iterator<__move_iterator::cursor>; @@ -192,7 +160,6 @@ STL2_OPEN_NAMESPACE { using type = input_iterator_tag; }; - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator<(const move_iterator& a, const move_iterator& b) @@ -201,7 +168,6 @@ STL2_OPEN_NAMESPACE { __move_iterator::access::current(__stl2::get_cursor(b)) ) - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator>(const move_iterator& a, const move_iterator& b) @@ -209,7 +175,6 @@ STL2_OPEN_NAMESPACE { b < a ) - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator<=(const move_iterator& a, const move_iterator& b) @@ -217,7 +182,6 @@ STL2_OPEN_NAMESPACE { !(b < a) ) - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator>=(const move_iterator& a, const move_iterator& b) @@ -225,7 +189,6 @@ STL2_OPEN_NAMESPACE { !(a < b) ) - // Not to spec: constexpr per P0579 template requires InputIterator<__f> @@ -234,7 +197,6 @@ STL2_OPEN_NAMESPACE { move_iterator<__f>{std::forward(i)} ) - // Not to spec: constexpr per P0579 Semiregular{S} class move_sentinel : detail::ebo_box> { friend __move_iterator::access; @@ -267,7 +229,6 @@ STL2_OPEN_NAMESPACE { { return box_t::get(); } }; - // Not to spec: constexpr per P0579 template requires Semiregular<__f> diff --git a/include/stl2/detail/iterator/operations.hpp b/include/stl2/detail/iterator/operations.hpp index 99dae4b9a..e50d31263 100644 --- a/include/stl2/detail/iterator/operations.hpp +++ b/include/stl2/detail/iterator/operations.hpp @@ -19,7 +19,6 @@ /////////////////////////////////////////////////////////////////////////// // Iterator operations [iterator.operations] -// Not to spec: All constexpr per P0579. STL2_OPEN_NAMESPACE { // advance namespace __advance { diff --git a/include/stl2/detail/iterator/ostream_iterator.hpp b/include/stl2/detail/iterator/ostream_iterator.hpp index bb65bf940..7ccd46a2f 100644 --- a/include/stl2/detail/iterator/ostream_iterator.hpp +++ b/include/stl2/detail/iterator/ostream_iterator.hpp @@ -64,8 +64,6 @@ STL2_OPEN_NAMESPACE { ostream_iterator& operator++() noexcept { return *this; } - // Not to spec: - // https://github.com/ericniebler/stl2/issues/232 ostream_iterator& operator++(int) noexcept { return *this; } diff --git a/include/stl2/detail/iterator/ostreambuf_iterator.hpp b/include/stl2/detail/iterator/ostreambuf_iterator.hpp index 93c32b52c..a9b0541a4 100644 --- a/include/stl2/detail/iterator/ostreambuf_iterator.hpp +++ b/include/stl2/detail/iterator/ostreambuf_iterator.hpp @@ -23,8 +23,6 @@ #include STL2_OPEN_NAMESPACE { - // Not to spec: - // * Extension: satisfies EqualityComparable and Sentinel template > class ostreambuf_iterator { public: @@ -35,9 +33,6 @@ STL2_OPEN_NAMESPACE { using streambuf_type = std::basic_streambuf; constexpr ostreambuf_iterator() noexcept = default; - constexpr ostreambuf_iterator(default_sentinel) noexcept - : ostreambuf_iterator{} - {} STL2_CONSTEXPR_EXT ostreambuf_iterator(ostream_type& s) noexcept : sbuf_(s.rdbuf()) {} STL2_CONSTEXPR_EXT ostreambuf_iterator(streambuf_type* s) noexcept @@ -56,32 +51,12 @@ STL2_OPEN_NAMESPACE { ostreambuf_iterator& operator++() noexcept { return *this; } - // Not to spec: - // https://github.com/ericniebler/stl2/issues/232 ostreambuf_iterator& operator++(int) noexcept { return *this; } bool failed() const noexcept { return sbuf_ != nullptr; } - friend bool operator==(ostreambuf_iterator a, ostreambuf_iterator b) noexcept { - return a.sbuf_ == b.sbuf_; - } - friend bool operator!=(ostreambuf_iterator a, ostreambuf_iterator b) noexcept { - return !(a == b); - } - friend bool operator==(ostreambuf_iterator a, default_sentinel) noexcept { - return a.sbuf_ == nullptr; - } - friend bool operator!=(ostreambuf_iterator a, default_sentinel b) noexcept { - return !(a == b); - } - friend bool operator==(default_sentinel, ostreambuf_iterator b) noexcept { - return b.sbuf_ == nullptr; - } - friend bool operator!=(default_sentinel a, ostreambuf_iterator b) noexcept { - return !(a == b); - } private: detail::raw_ptr sbuf_{nullptr}; }; diff --git a/include/stl2/detail/iterator/reverse_iterator.hpp b/include/stl2/detail/iterator/reverse_iterator.hpp index 068d0fd83..0fbd6380e 100644 --- a/include/stl2/detail/iterator/reverse_iterator.hpp +++ b/include/stl2/detail/iterator/reverse_iterator.hpp @@ -132,14 +132,9 @@ STL2_OPEN_NAMESPACE { }; } - // Not to spec: - // * Customizes iter_move and iter_swap. - // See https://github.com/ericniebler/stl2/issues/245. - // * constexpr per P0579 BidirectionalIterator{I} using reverse_iterator = basic_iterator<__reverse_iterator::cursor>; - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator<( const reverse_iterator& x, const reverse_iterator& y) @@ -148,7 +143,6 @@ STL2_OPEN_NAMESPACE { __reverse_iterator::access::current(__stl2::get_cursor(y)) ) - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator>( const reverse_iterator& x, const reverse_iterator& y) @@ -156,7 +150,6 @@ STL2_OPEN_NAMESPACE { y < x ) - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator<=( const reverse_iterator& x, const reverse_iterator& y) @@ -164,7 +157,6 @@ STL2_OPEN_NAMESPACE { !(y < x) ) - // Not to spec: constexpr per P0579 StrictTotallyOrderedWith{I1, I2} constexpr bool operator>=( const reverse_iterator& x, const reverse_iterator& y) @@ -172,7 +164,6 @@ STL2_OPEN_NAMESPACE { !(x < y) ) - // Not to spec: constexpr per P0579 template requires BidirectionalIterator<__f> constexpr auto make_reverse_iterator(I&& i) diff --git a/include/stl2/detail/range/concepts.hpp b/include/stl2/detail/range/concepts.hpp index f48d32a7f..bb2c491d1 100644 --- a/include/stl2/detail/range/concepts.hpp +++ b/include/stl2/detail/range/concepts.hpp @@ -149,7 +149,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // OutputRange [ranges.output] - // Not to spec: value category sensitive. // template concept bool OutputRange = diff --git a/include/stl2/detail/range/primitives.hpp b/include/stl2/detail/range/primitives.hpp index 43748e161..adbf05376 100644 --- a/include/stl2/detail/range/primitives.hpp +++ b/include/stl2/detail/range/primitives.hpp @@ -42,14 +42,12 @@ STL2_OPEN_NAMESPACE { ) } - // Not to spec: constexpr per P0579 Range{R} constexpr difference_type_t> distance(R&& r) STL2_NOEXCEPT_RETURN( __stl2::distance(__stl2::begin(r), __stl2::end(r)) ) - // Not to spec: constexpr per P0579 SizedRange{R} constexpr difference_type_t> distance(R&& r) STL2_NOEXCEPT_RETURN( diff --git a/include/stl2/detail/swap.hpp b/include/stl2/detail/swap.hpp index 227981ae3..cac6072b8 100644 --- a/include/stl2/detail/swap.hpp +++ b/include/stl2/detail/swap.hpp @@ -23,8 +23,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // exchange [utility.exchange] - // Not to spec: constexpr - // See https://github.com/ericniebler/stl2/322 + // template requires MoveConstructible && Assignable diff --git a/include/stl2/detail/tagged.hpp b/include/stl2/detail/tagged.hpp index 8465693b0..d463cc9a6 100644 --- a/include/stl2/detail/tagged.hpp +++ b/include/stl2/detail/tagged.hpp @@ -94,8 +94,6 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // tagged [taggedtup.tagged] // Not to spec: - // * constexpr per P0579 - // * Implements https://github.com/ericniebler/stl2/issues/172 // * Implements https://github.com/ericniebler/stl2/issues/363 // * Implements https://github.com/ericniebler/stl2/issues/364 // * Implements https://github.com/ericniebler/stl2/issues/418 diff --git a/include/stl2/type_traits.hpp b/include/stl2/type_traits.hpp index f5ce8aeb5..3770a87b3 100644 --- a/include/stl2/type_traits.hpp +++ b/include/stl2/type_traits.hpp @@ -179,8 +179,6 @@ STL2_OPEN_NAMESPACE { struct common_reference : common_reference, V, W...> {}; - // Not to spec - // See https://github.com/ericniebler/stl2/issues/311 template concept bool CommonReference = requires { @@ -200,8 +198,7 @@ STL2_OPEN_NAMESPACE { /////////////////////////////////////////////////////////////////////////// // Common [concepts.lib.corelang.common] - // Not to spec - // See https://github.com/ericniebler/stl2/issues/311 + // template concept bool Common = requires { diff --git a/test/concepts/object.cpp b/test/concepts/object.cpp index 2ef6082e5..8fad5a911 100644 --- a/test/concepts/object.cpp +++ b/test/concepts/object.cpp @@ -276,7 +276,6 @@ CONCEPT_ASSERT(!models::CopyConstructible); CONCEPT_ASSERT(models::CopyConstructible); CONCEPT_ASSERT(!models::CopyConstructible); -// https://github.com/ericniebler/stl2/issues/301 struct not_mutable_ref { not_mutable_ref() = default; not_mutable_ref(const not_mutable_ref&) = default; @@ -341,11 +340,7 @@ CONCEPT_ASSERT(models::DefaultConstructible>); CONCEPT_ASSERT(models::Constructible); CONCEPT_ASSERT(models::DefaultConstructible); - -// https://github.com/ericniebler/stl2/issues/301 CONCEPT_ASSERT(!models::Constructible); - -// https://github.com/ericniebler/stl2/issues/310 CONCEPT_ASSERT(!models::Movable); int main() {} diff --git a/test/iterator/move_iterator.cpp b/test/iterator/move_iterator.cpp index ef8537ad3..314f25fef 100644 --- a/test/iterator/move_iterator.cpp +++ b/test/iterator/move_iterator.cpp @@ -218,19 +218,6 @@ void test_proxy_iterator() { CHECK(A::move_count == N); CHECK(ranges::equal(vec2, ranges::ext::take_exactly_view>{0, N}, std::equal_to<>{})); CHECK(ranges::equal(vec, ranges::ext::repeat_n_view{-1, N}, std::equal_to<>{})); - - first = ranges::make_move_iterator(proxy_iterator{ranges::data(vec)}); - std::iota(vec.begin(), vec.end(), 0); - vec2.clear(); - A::clear(); - while (first != last) // Test post-increment - *out++ = *first++; - - CHECK(ranges::size(vec2) == N); - CHECK(A::copy_count == std::size_t{0}); - CHECK(A::move_count == 2*N); - CHECK(ranges::equal(vec2, ranges::ext::take_exactly_view>{0, N}, std::equal_to<>{})); - CHECK(ranges::equal(vec, ranges::ext::repeat_n_view{-1, N}, std::equal_to<>{})); } { diff --git a/test/iterator/ostreambuf_iterator.cpp b/test/iterator/ostreambuf_iterator.cpp index c2c70fd47..9384b5da0 100644 --- a/test/iterator/ostreambuf_iterator.cpp +++ b/test/iterator/ostreambuf_iterator.cpp @@ -37,16 +37,13 @@ namespace { int main() { using I = ostreambuf_iterator; static_assert(models::OutputIterator); - static_assert(models::Sentinel); - static_assert(models::Common); - static_assert(std::is_same>()); { static const char hw[] = "Hello, world!"; auto hw_range = ext::make_range(__stl2::begin(hw), __stl2::end(hw) - 1); std::ostringstream os; auto r = ::copy(hw_range, I{os}); - CHECK(r.out() != default_sentinel{}); + CHECK(r.out().failed()); ::check_equal(os.str(), hw_range); }