Skip to content

Releases: ericniebler/range-v3

0.2.6

21 Jun 17:45
Compare
Choose a tag to compare

0.2.6 2017-06-21

  • Experimental coroutines with ranges::experimental::generator (from @CaseyCarter)
  • ranges::optional now behaves like std::optional (from @CaseyCarter)
  • Extensive bug fixes with Input ranges (from @CaseyCarter)

0.2.5

16 May 21:59
Compare
Choose a tag to compare
  • 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

13 Apr 02:29
Compare
Choose a tag to compare

0.2.4 April 12, 2017
Fix the following bug:

  • action::stable_sort of vector broken on Clang 3.8.1 since ~last Xmas (#632).

0.2.3

04 Apr 16:05
Compare
Choose a tag to compare

Fix the following bug:

0.2.2

30 Mar 23:53
Compare
Choose a tag to compare

New in this release:

  • view::linear_distribute(from,to,n) - A view of n elements between from and to, 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

22 Mar 18:47
Compare
Choose a tag to compare

New in this release:

  • view::cartesian_product
  • action::reverse

Thanks to @gnzlbg and @CaseyCarter for their help.

0.2.0

13 Mar 17:22
Compare
Choose a tag to compare

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 the ranges::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 and Sentinel)
    are different. Use common_iterator_t<I, S> to get the old behavior (i.e., if the two types are the same, it is an alias for I; 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
    namespace std:::

    • 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 whether T and U are swappable.
    ranges::is_swappable<T> is equivalent to ranges::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 called enable_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

13 Mar 17:21
Compare
Choose a tag to compare

Small tweak to Writable concept to fix #573.

Title of Release (TM)

08 Mar 22:50
Compare
Choose a tag to compare

This is a fairly stable release, and the first one to use semantic versioning.