From Jason Turner

[const.iterators]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpfvvcd9uz/{from.md → to.md} +24 -1
tmp/tmpfvvcd9uz/{from.md → to.md} RENAMED
@@ -93,10 +93,17 @@ namespace std {
93
  requires random_access_iterator<Iterator>;
94
 
95
  template<sentinel_for<Iterator> S>
96
  constexpr bool operator==(const S& s) const;
97
 
 
 
 
 
 
 
 
98
  constexpr bool operator<(const basic_const_iterator& y) const
99
  requires random_access_iterator<Iterator>;
100
  constexpr bool operator>(const basic_const_iterator& y) const
101
  requires random_access_iterator<Iterator>;
102
  constexpr bool operator<=(const basic_const_iterator& y) const
@@ -314,10 +321,26 @@ template<sentinel_for<Iterator> S>
314
  constexpr bool operator==(const S& s) const;
315
  ```
316
 
317
  *Effects:* Equivalent to: `return `*`current_`*` == s;`
318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  ``` cpp
320
  constexpr bool operator<(const basic_const_iterator& y) const
321
  requires random_access_iterator<Iterator>;
322
  constexpr bool operator>(const basic_const_iterator& y) const
323
  requires random_access_iterator<Iterator>;
@@ -372,11 +395,11 @@ template<not-a-const-iterator I>
372
  requires random_access_iterator<Iterator> && totally_ordered_with<Iterator, I>;
373
  ```
374
 
375
  Let *`op`* be the operator.
376
 
377
- *Returns:* Equivalent to: `return x `*`op`*` y.`*`current_`*`;`
378
 
379
  ``` cpp
380
  friend constexpr basic_const_iterator operator+(const basic_const_iterator& i, difference_type n)
381
  requires random_access_iterator<Iterator>;
382
  friend constexpr basic_const_iterator operator+(difference_type n, const basic_const_iterator& i)
 
93
  requires random_access_iterator<Iterator>;
94
 
95
  template<sentinel_for<Iterator> S>
96
  constexpr bool operator==(const S& s) const;
97
 
98
+ template<not-a-const-iterator CI>
99
+ requires constant-iterator<CI> && convertible_to<Iterator const&, CI>
100
+ constexpr operator CI() const &;
101
+ template<not-a-const-iterator CI>
102
+ requires constant-iterator<CI> && convertible_to<Iterator, CI>
103
+ constexpr operator CI() &&;
104
+
105
  constexpr bool operator<(const basic_const_iterator& y) const
106
  requires random_access_iterator<Iterator>;
107
  constexpr bool operator>(const basic_const_iterator& y) const
108
  requires random_access_iterator<Iterator>;
109
  constexpr bool operator<=(const basic_const_iterator& y) const
 
321
  constexpr bool operator==(const S& s) const;
322
  ```
323
 
324
  *Effects:* Equivalent to: `return `*`current_`*` == s;`
325
 
326
+ ``` cpp
327
+ template<not-a-const-iterator CI>
328
+ requires constant-iterator<CI> && convertible_to<Iterator const&, CI>
329
+ constexpr operator CI() const &;
330
+ ```
331
+
332
+ *Returns:* *current\_*.
333
+
334
+ ``` cpp
335
+ template<not-a-const-iterator CI>
336
+ requires constant-iterator<CI> && convertible_to<Iterator, CI>
337
+ constexpr operator CI() &&;
338
+ ```
339
+
340
+ *Returns:* `std::move(`*`current_`*`)`.
341
+
342
  ``` cpp
343
  constexpr bool operator<(const basic_const_iterator& y) const
344
  requires random_access_iterator<Iterator>;
345
  constexpr bool operator>(const basic_const_iterator& y) const
346
  requires random_access_iterator<Iterator>;
 
395
  requires random_access_iterator<Iterator> && totally_ordered_with<Iterator, I>;
396
  ```
397
 
398
  Let *`op`* be the operator.
399
 
400
+ *Effects:* Equivalent to: `return x `*`op`*` y.`*`current_`*`;`
401
 
402
  ``` cpp
403
  friend constexpr basic_const_iterator operator+(const basic_const_iterator& i, difference_type n)
404
  requires random_access_iterator<Iterator>;
405
  friend constexpr basic_const_iterator operator+(difference_type n, const basic_const_iterator& i)