Boost logo

Boost :

Subject: Re: [boost] [lexical_cast] Fast conversion from boost::iterator_range<std::string::iterator>?
From: Matthew Chambers (matt.chambers42_at_[hidden])
Date: 2011-11-23 11:55:18


On Oct 13, 2011 Michel Morin wrote:
> lexical_cast made optimizations for some types (such as `std::string`)
> to achieve better performance. But, from my experience,
> it seems that lexical_cast does not make any optimization for
> `boost::iterator_range<std::string::iterator>`.
>
> Is there any plan to add optimization for such iterator ranges?
> Currently,
> - `lexical_cast<int>(std::string(iter_rng.begin(), iter_rng.end()))`
> is faster
> than `lexical_cast<int>(iter_rng)`.
> - Assuming it is safe to use `std::atoi`,
> `std::atoi(&iter_rng.front())` is faster
> than both of the above two methods.
> (`iter_rng` is an instance of `boost::iterator_range<std::string::iterator>`.)
>
> Regards,
> Michel

This post was on the boost users list but never got a reply. I figure it might be a better fit on
the developer list. I too would like to see optimized conversions work on string ranges; what's the
point in doing a fast conversion if you have to do a string copy first? :)

-Matt


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