Boost logo

Boost :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2007-06-08 06:55:40

Bruno Martínez Aguerre ha escrito:

> On Thu, 17 May 2007 16:04:57 -0300, JOAQUIN LOPEZ MU?Z <joaquin_at_[hidden]>
> wrote:
> > More than a year ago a request was made for
> > Boost.MultiIndx to provide the ability to
> > get an iterator to an element x from x alone:
> >
> > iterator iterator_to(const value_type& x);
> It was me, I think.

Hello Bruno! Yep, it was your request :)

> > I can provide this functionality in constant time,
> > and the internal implementation is trivial, but
> > I got thinking about the potential use cases for
> > such capability and cannot come up with something
> > convincing.
> >
> > Do you see usefulness in having iterator_to()?
> > Can you describe a potential usage scenario? At
> > first blush, seems like this is at least as useful
> > as the homonym functionality in Boost.Intrusive,
> > but if you think about the obvious scenarios
> > applying to B.I, it turns out they do not immediately
> > translate to B.MI.
> Yes. My use case was
> However, now that I look at it, it seems iterator_to is not a solution to
> that problem.

This is exactly what happened to me when I revisited the request
to decide on implementing it.

> I still think the feature is usefull. For example, you may be forced to
> pass a raw pointer to a C interface. With iterator_to you can get the
> position of the element in a collection without overhead.

I guess I'l finally include it, but it'd be so much nicer if we could find
a conclusive use case. I've also thought about legacy interfaces
requiring raw pointers, if only we could come up with a simple
specific scenario on that line.

Thank you,

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo

Boost list run by bdawes at, gregod at, cpdaniel at, john at