mirror of
https://github.com/boostorg/iterator.git
synced 2025-11-02 17:31:39 +01:00
7c9b4296a189f71b28de3aad025b08da1f4ca84b
The recent commit 5777e9944b broke code such as
(*it++).foo(), where the result of dereferencing would be convertible to
the value type but did not provide the members of the value type. To mitigate
this, return a reference to the value instead of a proxy object. This will only
work for non-writable iterators (and it didn't work for writable iterators
before either) because in that case a proxy is needed to be able to intercept
operator=.
Also fix a similar issue with (it++)->foo() by adding operator-> overloads
to the post-increment result proxies.
Added tests for the fixes.
Boost.Iterator
Boost.Iterator, part of collection of the Boost C++ Libraries, provides tools for building and working with iterators in C++. The library also provides a number of iterator classes that can be used out of the box.
Directories
- doc - Documentation sources
- include - Interface headers of Boost.Iterator
- test - Boost.Iterator unit tests
- example - Boost.Iterator usage examples
More information
- Documentation
- Report bugs. Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
- Submit your patches as pull requests against develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
Build status
| Branch | GitHub Actions | AppVeyor | Test Matrix | Dependencies |
|---|---|---|---|---|
master |
||||
develop |
License
Distributed under the Boost Software License, Version 1.0.
Description
Languages
C++
99.5%
CMake
0.4%
HTML
0.1%