From Jason Turner

[const.iterators.ops]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpgfu5k35y/{from.md → to.md} +17 -1
tmp/tmpgfu5k35y/{from.md → to.md} RENAMED
@@ -130,10 +130,26 @@ template<sentinel_for<Iterator> S>
130
  constexpr bool operator==(const S& s) const;
131
  ```
132
 
133
  *Effects:* Equivalent to: `return `*`current_`*` == s;`
134
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  ``` cpp
136
  constexpr bool operator<(const basic_const_iterator& y) const
137
  requires random_access_iterator<Iterator>;
138
  constexpr bool operator>(const basic_const_iterator& y) const
139
  requires random_access_iterator<Iterator>;
@@ -188,11 +204,11 @@ template<not-a-const-iterator I>
188
  requires random_access_iterator<Iterator> && totally_ordered_with<Iterator, I>;
189
  ```
190
 
191
  Let *`op`* be the operator.
192
 
193
- *Returns:* Equivalent to: `return x `*`op`*` y.`*`current_`*`;`
194
 
195
  ``` cpp
196
  friend constexpr basic_const_iterator operator+(const basic_const_iterator& i, difference_type n)
197
  requires random_access_iterator<Iterator>;
198
  friend constexpr basic_const_iterator operator+(difference_type n, const basic_const_iterator& i)
 
130
  constexpr bool operator==(const S& s) const;
131
  ```
132
 
133
  *Effects:* Equivalent to: `return `*`current_`*` == s;`
134
 
135
+ ``` cpp
136
+ template<not-a-const-iterator CI>
137
+ requires constant-iterator<CI> && convertible_to<Iterator const&, CI>
138
+ constexpr operator CI() const &;
139
+ ```
140
+
141
+ *Returns:* *current\_*.
142
+
143
+ ``` cpp
144
+ template<not-a-const-iterator CI>
145
+ requires constant-iterator<CI> && convertible_to<Iterator, CI>
146
+ constexpr operator CI() &&;
147
+ ```
148
+
149
+ *Returns:* `std::move(`*`current_`*`)`.
150
+
151
  ``` cpp
152
  constexpr bool operator<(const basic_const_iterator& y) const
153
  requires random_access_iterator<Iterator>;
154
  constexpr bool operator>(const basic_const_iterator& y) const
155
  requires random_access_iterator<Iterator>;
 
204
  requires random_access_iterator<Iterator> && totally_ordered_with<Iterator, I>;
205
  ```
206
 
207
  Let *`op`* be the operator.
208
 
209
+ *Effects:* Equivalent to: `return x `*`op`*` y.`*`current_`*`;`
210
 
211
  ``` cpp
212
  friend constexpr basic_const_iterator operator+(const basic_const_iterator& i, difference_type n)
213
  requires random_access_iterator<Iterator>;
214
  friend constexpr basic_const_iterator operator+(difference_type n, const basic_const_iterator& i)