Boost logo

Boost :

Subject: Re: [boost] [iterator] Orbiting iterators
From: Jeremy Murphy (jeremy.william.murphy_at_[hidden])
Date: 2016-11-20 16:51:17


Hi Steve,

On 21 Nov 2016 3:01 AM, "Steve M. Robbins" <steve_at_[hidden]> wrote:
>
> On Sunday, November 20, 2016 8:25:20 PM CST Jeremy Murphy wrote:
> > Hi,
> >
> > just wondering what the mood in Boost.Iterator is for new features? At
work
> > we recently found use for an orbiting iterator, specifically a circular
> > one, which effectively wraps at the start/end of a bounded range. (The
> > domain is digital signal processing.)
>
> That sounds like what CGAL calls a Circulator; c.f. http://doc.cgal.org/
> latest/Circulator/classCirculator.html

Right, yeah. Unfortunately I can't view the documentation properly on my
phone so I'll take a look later, but I imagine the principle is the same
although the interface is not.

> > Implementation details aside, does this feature sound desirable to the
> > library?
>
> I've found these handy when iterating through graph edges incident on a
> vertex, when you need to start on a specific edge. It's been ages since
I've
> used them so I can't recall the exact use case. Makes me wonder whether
> something like this already exists in boost graph.

As you pointed out with CGAL, domain-specific implementations do exist.
Boost.Geometry has something too.
I guess I'm interested in whether this need for circular iteration can be
abstracted back to the plain old iterator.
Cheers.
Jeremy


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk