namespace std::ranges { template<move_constructible T, semiregular Bound> requires (is_object_v<T> && same_as<T, remove_cv_t<T>> && (integer-like-with-usable-difference-type<Bound> || same_as<Bound, unreachable_sentinel_t>)) class repeat_view<T, Bound>::iterator { private: using index-type = // exposition only conditional_t<same_as<Bound, unreachable_sentinel_t>, ptrdiff_t, Bound>; const T* value_ = nullptr; // exposition only index-type current_ = index-type(); // exposition only constexpr explicit iterator(const T* value, index-type b = index-type()); // exposition only public: […] constexpr iterator& operator++() noexcept; constexpr iterator operator++(int) noexcept; constexpr const T& operator[](difference_type n) const noexcept; friend constexpr bool operator==(const iterator& x, const iterator& y) noexcept; friend constexpr auto operator<=>(const iterator& x, const iterator& y) noexcept; friend constexpr difference_type operator-(const iterator& x, const iterator& y) noexcept; }; }
[…]
constexpr iterator& operator++() noexcept;
-5- Effects: Equivalent to:
++current_; return *this;
constexpr iterator operator++(int) noexcept;
-6- Effects: Equivalent to:
auto tmp = *this; ++*this; return tmp;
[…]
friend constexpr bool operator==(const iterator& x, const iterator& y) noexcept;
-15- Effects: Equivalent to:
return x.current_ == y.current_;
friend constexpr auto operator<=>(const iterator&x, const iterator& y) noexcept;
-16- Effects: Equivalent to:
return x.current_ <=> y.current_;
[…]
friend constexpr difference_type operator-(const iterator& x, const iterator& y) noexcept;
-19- Effects: Equivalent to:
return static_cast<difference_type>(x.current_) - static_cast<difference_type>(y.current_);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4