[reverse.iter.cons]

# 24 Iterators library [[iterators]](./#iterators)

## 24.5 Iterator adaptors [[predef.iterators]](predef.iterators#reverse.iter.cons)

### 24.5.1 Reverse iterators [[reverse.iterators]](reverse.iterators#reverse.iter.cons)

#### 24.5.1.4 Construction and assignment [reverse.iter.cons]

[ð](#lib:reverse_iterator,constructor)

`constexpr reverse_iterator();
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3307)

*Effects*: Value-initializescurrent[.](#1.sentence-1)

[ð](#lib:reverse_iterator,constructor_)

`constexpr explicit reverse_iterator(Iterator x);
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3319)

*Effects*: Initializescurrent with x[.](#2.sentence-1)

[ð](#lib:reverse_iterator,constructor__)

`template<class U> constexpr reverse_iterator(const reverse_iterator<U>& u);
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3332)

*Constraints*: is_same_v<U, Iterator> is false andconst U& models [convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_­to [concept.convertible]")<Iterator>[.](#3.sentence-1)

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3337)

*Effects*: Initializescurrent withu.current[.](#4.sentence-1)

[ð](#lib:operator=,reverse_iterator)

`template<class U>
  constexpr reverse_iterator&
    operator=(const reverse_iterator<U>& u);
`

[5](#5)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3353)

*Constraints*: is_same_v<U, Iterator> is false,const U& models [convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_­to [concept.convertible]")<Iterator>, and[assignable_from](concept.assignable#concept:assignable_from "18.4.8 Concept assignable_­from [concept.assignable]")<Iterator&, const U&> is modeled[.](#5.sentence-1)

[6](#6)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3359)

*Effects*: Assigns u.current to current[.](#6.sentence-1)

[7](#7)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3363)

*Returns*: *this[.](#7.sentence-1)
