You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
According to my reading of the documentation, iterators for the vertices of an adapted ring type are allowed to return any type convertible to T from their operator*().
However, linear_segment_or_box.hpp, line 101 constructs a referring_segment from dereferenced iterators into a ring:
If the return value of *it0 and *it1 is anything but a point_type& or a const point_type&, this silently constructs a dangling reference to a temporary, leading to hard-to-debug failures.
The documentation for the ring concept refers to the Boost.Range Random Access Range concept, which says that the iterators must be Random Access Traversal Iteratos. There, the only requirement on the return type of *a is that it is
"Convertible to T".
Requiring the return type to be (const) point_type&, besides being currently undocumented, precludes writing adapters for types where the points are not stored explicitly.