From Jason Turner

[reverse.iterator]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmphln03gdc/{from.md → to.md} +32 -35
tmp/tmphln03gdc/{from.md → to.md} RENAMED
@@ -1,78 +1,75 @@
1
  #### Class template `reverse_iterator` <a id="reverse.iterator">[[reverse.iterator]]</a>
2
 
3
  ``` cpp
4
  namespace std {
5
  template <class Iterator>
6
- class reverse_iterator : public
7
- iterator<typename iterator_traits<Iterator>::iterator_category,
8
- typename iterator_traits<Iterator>::value_type,
9
- typename iterator_traits<Iterator>::difference_type,
10
- typename iterator_traits<Iterator>::pointer,
11
- typename iterator_traits<Iterator>::reference> {
12
  public:
13
- typedef Iterator iterator_type;
14
- typedef typename iterator_traits<Iterator>::difference_type difference_type;
15
- typedef typename iterator_traits<Iterator>::reference reference;
16
- typedef typename iterator_traits<Iterator>::pointer pointer;
 
 
17
 
18
- reverse_iterator();
19
- explicit reverse_iterator(Iterator x);
20
- template <class U> reverse_iterator(const reverse_iterator<U>& u);
21
- template <class U> reverse_iterator& operator=(const reverse_iterator<U>& u);
22
 
23
- Iterator base() const; // explicit
24
- reference operator*() const;
25
- pointer operator->() const;
26
 
27
- reverse_iterator& operator++();
28
- reverse_iterator operator++(int);
29
- reverse_iterator& operator--();
30
- reverse_iterator operator--(int);
31
 
32
- reverse_iterator operator+ (difference_type n) const;
33
- reverse_iterator& operator+=(difference_type n);
34
- reverse_iterator operator- (difference_type n) const;
35
- reverse_iterator& operator-=(difference_type n);
36
- unspecified operator[](difference_type n) const;
37
  protected:
38
  Iterator current;
39
  };
40
 
41
  template <class Iterator1, class Iterator2>
42
- bool operator==(
43
  const reverse_iterator<Iterator1>& x,
44
  const reverse_iterator<Iterator2>& y);
45
  template <class Iterator1, class Iterator2>
46
- bool operator<(
47
  const reverse_iterator<Iterator1>& x,
48
  const reverse_iterator<Iterator2>& y);
49
  template <class Iterator1, class Iterator2>
50
- bool operator!=(
51
  const reverse_iterator<Iterator1>& x,
52
  const reverse_iterator<Iterator2>& y);
53
  template <class Iterator1, class Iterator2>
54
- bool operator>(
55
  const reverse_iterator<Iterator1>& x,
56
  const reverse_iterator<Iterator2>& y);
57
  template <class Iterator1, class Iterator2>
58
- bool operator>=(
59
  const reverse_iterator<Iterator1>& x,
60
  const reverse_iterator<Iterator2>& y);
61
  template <class Iterator1, class Iterator2>
62
- bool operator<=(
63
  const reverse_iterator<Iterator1>& x,
64
  const reverse_iterator<Iterator2>& y);
65
  template <class Iterator1, class Iterator2>
66
- auto operator-(
67
  const reverse_iterator<Iterator1>& x,
68
  const reverse_iterator<Iterator2>& y) -> decltype(y.base() - x.base());
69
  template <class Iterator>
70
- reverse_iterator<Iterator> operator+(
71
  typename reverse_iterator<Iterator>::difference_type n,
72
  const reverse_iterator<Iterator>& x);
73
 
74
  template <class Iterator>
75
- reverse_iterator<Iterator> make_reverse_iterator(Iterator i);
76
  }
77
  ```
78
 
 
1
  #### Class template `reverse_iterator` <a id="reverse.iterator">[[reverse.iterator]]</a>
2
 
3
  ``` cpp
4
  namespace std {
5
  template <class Iterator>
6
+ class reverse_iterator {
 
 
 
 
 
7
  public:
8
+ using iterator_type = Iterator;
9
+ using iterator_category = typename iterator_traits<Iterator>::iterator_category;
10
+ using value_type = typename iterator_traits<Iterator>::value_type;
11
+ using difference_type = typename iterator_traits<Iterator>::difference_type;
12
+ using pointer = typename iterator_traits<Iterator>::pointer;
13
+ using reference = typename iterator_traits<Iterator>::reference;
14
 
15
+ constexpr reverse_iterator();
16
+ constexpr explicit reverse_iterator(Iterator x);
17
+ template <class U> constexpr reverse_iterator(const reverse_iterator<U>& u);
18
+ template <class U> constexpr reverse_iterator& operator=(const reverse_iterator<U>& u);
19
 
20
+ constexpr Iterator base() const; // explicit
21
+ constexpr reference operator*() const;
22
+ constexpr pointer operator->() const;
23
 
24
+ constexpr reverse_iterator& operator++();
25
+ constexpr reverse_iterator operator++(int);
26
+ constexpr reverse_iterator& operator--();
27
+ constexpr reverse_iterator operator--(int);
28
 
29
+ constexpr reverse_iterator operator+ (difference_type n) const;
30
+ constexpr reverse_iterator& operator+=(difference_type n);
31
+ constexpr reverse_iterator operator- (difference_type n) const;
32
+ constexpr reverse_iterator& operator-=(difference_type n);
33
+ constexpr unspecified operator[](difference_type n) const;
34
  protected:
35
  Iterator current;
36
  };
37
 
38
  template <class Iterator1, class Iterator2>
39
+ constexpr bool operator==(
40
  const reverse_iterator<Iterator1>& x,
41
  const reverse_iterator<Iterator2>& y);
42
  template <class Iterator1, class Iterator2>
43
+ constexpr bool operator<(
44
  const reverse_iterator<Iterator1>& x,
45
  const reverse_iterator<Iterator2>& y);
46
  template <class Iterator1, class Iterator2>
47
+ constexpr bool operator!=(
48
  const reverse_iterator<Iterator1>& x,
49
  const reverse_iterator<Iterator2>& y);
50
  template <class Iterator1, class Iterator2>
51
+ constexpr bool operator>(
52
  const reverse_iterator<Iterator1>& x,
53
  const reverse_iterator<Iterator2>& y);
54
  template <class Iterator1, class Iterator2>
55
+ constexpr bool operator>=(
56
  const reverse_iterator<Iterator1>& x,
57
  const reverse_iterator<Iterator2>& y);
58
  template <class Iterator1, class Iterator2>
59
+ constexpr bool operator<=(
60
  const reverse_iterator<Iterator1>& x,
61
  const reverse_iterator<Iterator2>& y);
62
  template <class Iterator1, class Iterator2>
63
+ constexpr auto operator-(
64
  const reverse_iterator<Iterator1>& x,
65
  const reverse_iterator<Iterator2>& y) -> decltype(y.base() - x.base());
66
  template <class Iterator>
67
+ constexpr reverse_iterator<Iterator> operator+(
68
  typename reverse_iterator<Iterator>::difference_type n,
69
  const reverse_iterator<Iterator>& x);
70
 
71
  template <class Iterator>
72
+ constexpr reverse_iterator<Iterator> make_reverse_iterator(Iterator i);
73
  }
74
  ```
75