Scroll to navigation

std::reverse_iterator::reverse_iterator(3) C++ Standard Libary std::reverse_iterator::reverse_iterator(3)


std::reverse_iterator::reverse_iterator - std::reverse_iterator::reverse_iterator


reverse_iterator(); (until C++17)
constexpr reverse_iterator(); (since C++17)
explicit reverse_iterator( iterator_type (until C++17)
x );
constexpr explicit reverse_iterator( (since C++17)
iterator_type x ); (1)
template< class U > (2) (until
reverse_iterator( const C++17)
reverse_iterator<U>& other ); (3)
template< class U > (since
constexpr reverse_iterator( const C++17)
reverse_iterator<U>& other );

Constructs a new iterator adaptor.

1) Default constructor. The underlying iterator is value-initialized. Operations on
the resulting iterator have defined behavior if and only if the corresponding
operations on a value-initialized Iter also have defined behavior.
2) The underlying iterator is initialized with x.
3) The underlying iterator is initialized with that of other.
This overload participates in overload resolution only if U is not the same type as
Iter and std::convertible_to<const U&, Iter> is modeled
(since C++20).


x - iterator to adapt
other - iterator adaptor to copy


This section is incomplete
Reason: no example

Defect reports

The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 235 C++98 the effect of the default constructor specified
was not specified
LWG 1012 C++98 the underlying iterator was it is value-initialized
LWG 3435 C++20 the converting constructor from another constrained
reverse_iterator was not constrained

See also

operator= assigns another iterator adaptor
(public member function)
make_reverse_iterator creates a std::reverse_iterator of type inferred from the
(C++14) argument
(function template)


* Todo no example