|
1 | 1 | Release Notes {#release_notes}
|
2 | 2 | =============
|
3 | 3 |
|
| 4 | +\section v0-11-0 Version 0.11.0 "Thanks, ISO" |
| 5 | + |
| 6 | +_Released:_ August 6, 2020 |
| 7 | + |
| 8 | +> **IMPORTANT:** This release removes the heuristic that tries to guess whether a range type |
| 9 | +is a "view" (lightweight, non-owning range), in accordance with the C++20. **This is a |
| 10 | +potentially source-breaking change.** Code that previously used an rvalue range as the |
| 11 | +start of a pipeline could stop compiling if the range library is not explicitly told that |
| 12 | +that range type is a view. To override the new default, please specialize the |
| 13 | +`ranges::enable_view<R>` Boolean variable template. |
| 14 | + |
| 15 | +> **IMPORTANT:** This release removes the implicit conversion from views to containers. |
| 16 | +To construct a container from an arbitrary range, you must now explicitly use |
| 17 | +`ranges::to`. For example, the following code no longer works: |
| 18 | +> |
| 19 | +> ```c++ |
| 20 | +> std::vector<int> is = ranges::views::ints(0, 10); // ERROR: no conversion |
| 21 | +> ``` |
| 22 | +> |
| 23 | +> Instead, please write this as: |
| 24 | +> |
| 25 | +> ```c++ |
| 26 | +> auto is = ranges::views::ints(0, 10) | ranges::to<std::vector>; // OK |
| 27 | +> ``` |
| 28 | +> |
| 29 | +> `ranges::to` lives in header `<range/v3/range/conversion.hpp>` |
| 30 | +
|
| 31 | +> **IMPORTANT:** This release drops support for llvm-3.9. |
| 32 | +
|
| 33 | +Changes: |
| 34 | +* **NEW:** A new concepts portability layer that short-circuits atomic constraints |
| 35 | + in `requires` clauses for better compile times when emulating concepts. |
| 36 | +* **NEW:** Restored support for MSVC in `/std:c++17` mode, and for MSVC's default preprocessor. |
| 37 | +* Remove the implicit conversion from views to containers. |
| 38 | +* Rename the following entities to be consistent with C++20's `std::ranges` support: |
| 39 | + * `safe_range<R>` -> `borrowed_range<R>` |
| 40 | + * `enable_safe_range<R>` -> `enable_borrowed_range<R>` |
| 41 | + * `safe_iterator_t<R>` -> `borrowed_iterator_t<R>` |
| 42 | + * `safe_subrange_t<R>` -> `borrowed_subrange_t<R>` |
| 43 | + * `readable_traits<I>` -> `indirectly_readable_traits<I>` |
| 44 | + * `readable<I>` -> `indirectly_readable<I>` |
| 45 | + * `writable<I>` -> `indirectly_writable<I>` |
| 46 | +* Added the following to the `ranges::cpp20` namespace: |
| 47 | + * Algorithm `for_each_n` |
| 48 | + * Algorithm `sample` |
| 49 | + * Class `view_base` |
| 50 | + * Alias `views::all_t` |
| 51 | +* Type `__int128` is recognized as "integer-like". |
| 52 | +* Adds concepts `three_way_comparable[_with]` when `<=>` is supported. |
| 53 | +* Adds concepts `partially_ordered[_with]`. |
| 54 | +* Better conformance with C++20's use of the _`boolean-testable`_ concept. |
| 55 | +* Support C++20 coroutines. |
| 56 | +* Honor CMake's `CMAKE_CXX_STANDARD` variable. |
| 57 | +* A fix for the cardinality of `views::zip[_with]` (#1486). |
| 58 | +* Add `view_interface::data()` member function. |
| 59 | +* Add necessary specializations for `std::basic_common_reference` and |
| 60 | + `std::common_type`. |
| 61 | +* Numerous workarounds for MSVC. |
| 62 | +* Various CMake fixes and improvements. |
| 63 | +* `drop_while_view` is not a `sized_range`. |
| 64 | +* Added support for Wind River Systems. |
| 65 | +* Bug fixes to `views::group_by` (#1393). |
| 66 | +* `common_[reference|type]` of `common_[tuple|pair]` now yields a `common_[tuple|pair]` |
| 67 | + instead of a `std::[tuple|pair]` (#1422). |
| 68 | +* Avoid UB when currying an lvalue in some views and actions (#1320). |
| 69 | +
|
| 70 | +**Credits:** I would like to thank the following people who contributed to this release |
| 71 | +(in no particular order): Christopher Di Bella, @marehr, Casey Carter, Dvir Yitzchaki, |
| 72 | +Justin Riddell, Johel Ernesto Guerrero Peña, Barry Revzin, Kamlesh Kumar, and Vincas |
| 73 | +Dargis. |
| 74 | +
|
4 | 75 | \section v0-10-0 Version 0.10.0 "To Err is Human"
|
5 | 76 |
|
6 | 77 | _Released:_ Dec 6, 2019.
|
|
0 commit comments