| [section:upgrade Upgrade version of Boost.Range] |
| |
| [section:upgrade_from_1_42 Upgrade from version 1.42] |
| |
| New features: |
| |
| # __range_adaptors__ |
| # __range_algorithms__ |
| |
| Removed: |
| |
| # `iterator_range` no longer has a `is_singular` member function. The singularity restrictions have been removed from the `iterator_range` class since this added restrictions to ranges of iterators whose default constructors were not singular. Previously the `is_singular` member function always returned `false` in release build configurations, hence it is not anticipated that this interface change will produce difficulty in upgrading. |
| |
| |
| [endsect] |
| |
| [section:upgrade_from_1_34 Upgrade from version 1.34] |
| |
| Boost version 1.35 introduced some larger refactorings of the library: |
| |
| # Direct support for character arrays was abandoned in favor of uniform treatment of all arrays. Instead string algorithms can use the new function __as_literal__`()`. |
| # __size__ now requires a __random_access_range__. The old behavior is provided as __distance__`()`. |
| # `range_size<T>::type` has been completely removed in favor of `range_difference<T>::type` |
| # `boost_range_begin()` and `boost_range_end()` have been renamed `range_begin()` and `range_end()` respectively. |
| # `range_result_iterator<T>::type` and `range_reverse_result_iterator<T>::type` have been renamed `range_iterator<T>::type` and `range_reverse_iterator<T>::type`. |
| # The procedure that makes a custom type work with the library has been greatly simplified. See __extending_for_udts__ for details. |
| |
| [endsect] |
| |
| [endsect] |