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]>
> > 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.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk