[move.iter.cons]

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

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

### 24.5.4 Move iterators and sentinels [[move.iterators]](move.iterators#move.iter.cons)

#### 24.5.4.4 Construction and assignment [move.iter.cons]

[ð](#lib:move_iterator,constructor)

`constexpr move_iterator();
`

[1](#1)

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

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

[ð](#lib:move_iterator,constructor_)

`constexpr explicit move_iterator(Iterator i);
`

[2](#2)

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

*Effects*: Initializes current with std​::​move(i)[.](#2.sentence-1)

[ð](#lib:move_iterator,constructor__)

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

[3](#3)

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

*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#L4924)

*Effects*: Initializes current with u.current[.](#4.sentence-1)

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

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

[5](#5)

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

*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#L4941)

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

[7](#7)

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

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