Releases: ericniebler/range-v3
0.2.6
0.2.6 2017-06-21
- Experimental coroutines with
ranges::experimental::generator
(from @CaseyCarter) ranges::optional
now behaves likestd::optional
(from @CaseyCarter)- Extensive bug fixes with Input ranges (from @CaseyCarter)
0.2.5
view::chunk
works on Input ranges (from @CaseyCarter)for_each_n
algorithm (from @khlebnikov)- Portability fixes for MinGW, clang-3.6 and -3.7, and gcc-7; and cmake 3.0
0.2.4
0.2.3
Fix the following bug:
- iterators that return move-only types by value do not satisfy Readable (ericniebler/stl2#399).
0.2.2
New in this release:
view::linear_distribute(from,to,n)
- A view ofn
elements betweenfrom
andto
, distributed evenly.view::indices(n)
- A view of the indices[0,1,2...n-1]
.view::closed_indices(n)
- A view of the indices[0,1,2...n]
.
This release also deprecates view::ints(n)
as confusing to new users.
0.2.1
New in this release:
view::cartesian_product
action::reverse
Thanks to @gnzlbg and @CaseyCarter for their help.
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.
0.1.1
Title of Release (TM)
This is a fairly stable release, and the first one to use semantic versioning.