0.2.0
Bring many interfaces into sync with the Ranges TS.
-
Many interfaces are simply renamed. The following table shows the old names
and the new. (All names are in theranges::v3
namespace.)Old Name New Name indirect_swap
iter_swap
indirect_move
iter_move
iterator_value_t
value_type_t
iterator_reference_t
reference_t
iterator_difference_t
difference_type_t
iterator_size_t
size_type_t
iterator_rvalue_reference_t
rvalue_reference_t
iterator_common_reference_t
iter_common_reference_t
range_value_t
range_value_type_t
range_difference_t
range_difference_type_t
range_size_t
range_size_type_t
range_iterator_t
iterator_t
range_sentinel_t
sentinel_t
-
common_iterator
now requires that its two types (Iterator
andSentinel
)
are different. Usecommon_iterator_t<I, S>
to get the old behavior (i.e., if the two types are the same, it is an alias forI
; otherwise, it is
common_iterator<I, S>
). -
The following iterator adaptors now work with iterators that return proxies
from their postfix increment operator (i.e.,operator++(int)
):common_iterator
counted_iterator
-
The following customization points are now implemented per the Ranges TS
spec and will no longer find the associated unconstrained overload in
namespacestd::
:ranges::begin
ranges::end
ranges::size
ranges::swap
ranges::iter_swap
(In practice, this has very little effect but it may effect overloading in
rare situations.) -
ranges::is_swappable
now only takes one template parameter. The new
ranges::is_swappable_with<T, U>
tests whetherT
andU
are swappable.
ranges::is_swappable<T>
is equivalent toranges::is_swappable_with<T &, T &>
. -
The following object concepts have changed to conform with the Ranges TS
specification, and approved changes (see P0547):Destructible
Constructible
DefaultConstructible
MoveConstructible
CopyConstructible
Movable
Assignable
-
The
View
concept is no longer satisfied by reference types. -
is_view
is now calledenable_view
-
The syntax for defining a concept has changed slightly. See utility/iterator_concepts.hpp for examples.
This release drops support for gcc 4.8.