[move.iter.nav]

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

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

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

#### 24.5.4.7 Navigation [move.iter.nav]

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

`constexpr move_iterator& operator++();
`

[1](#1)

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

*Effects*: As if by ++current[.](#1.sentence-1)

[2](#2)

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

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

[ð](#lib:operator++,move_iterator_)

`constexpr auto operator++(int);
`

[3](#3)

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

*Effects*: If Iterator models [forward_iterator](iterator.concept.forward#concept:forward_iterator "24.3.4.11 Concept forward_­iterator [iterator.concept.forward]"), equivalent to:move_iterator tmp = *this;++current;return tmp;

Otherwise, equivalent to ++current[.](#3.sentence-2)

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

`constexpr move_iterator& operator--();
`

[4](#4)

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

*Effects*: As if by --current[.](#4.sentence-1)

[5](#5)

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

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

[ð](#lib:operator--,move_iterator_)

`constexpr move_iterator operator--(int);
`

[6](#6)

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

*Effects*: As if by:move_iterator tmp = *this;--current;return tmp;

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

`constexpr move_iterator operator+(difference_type n) const;
`

[7](#7)

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

*Returns*: move_iterator(current + n)[.](#7.sentence-1)

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

`constexpr move_iterator& operator+=(difference_type n);
`

[8](#8)

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

*Effects*: As if by: current += n;

[9](#9)

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

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

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

`constexpr move_iterator operator-(difference_type n) const;
`

[10](#10)

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

*Returns*: move_iterator(current - n)[.](#10.sentence-1)

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

`constexpr move_iterator& operator-=(difference_type n);
`

[11](#11)

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

*Effects*: As if by: current -= n;

[12](#12)

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

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