Replace boost::iterator_facade
with explicit iterator definition for pcp/iterator.h
#2328
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change(s)
iterator_facade
with explicit implementation forPcpNodeIterator
,PcpPrimIterator
, andPcpPropertyIterator
._PtrProxy
type forPcpNodeIterator
andPcpPrimIterator
(whose reference type is a proxy value and not a true reference) to provide a safeoperator->
implementation.nullptr
instead of0
to default initialize pointer types (https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-nullptr)boost::reverse_iterator
in some parallel work (Provide adapter forstd::reverse_iterator
to replaceboost::reverse_iterator
for proxy reference iterators #2333), it was observed that the current implementation ofPcpNodeIterator
hangs whenstd::prev
was used. The source of the hang was not determined but not observed in this implementation.testPcpIterator
has been augmented to include tests to validate that the increment / decrement operators andstd::prev
/std::next
can be used and produce symmetrical end states.Fixes Issue(s)
boost::iterator_facade
usage with fully specified iterator classes #2305