Boost logo

Boost :

Subject: Re: [boost] [iterator] UB when implicitly using default constructed counting_iterator<unsigned>
From: John Bytheway (jbytheway+boost_at_[hidden])
Date: 2012-12-05 18:21:46


On 05/12/12 07:42, "Claas H. Köhler" wrote:
> Thanks for the info. That's very interesting. So it seems to be implementation dependent. Using
> gcc-4.7 the following code outputs true/ 1 for all 5 comparisons.
>
> std::vector<double>::iterator itv1, itv2;
> std::string::iterator itstr1, itstr2;
> std::set<double>::iterator its1, its2;
> std::map<double, double>::iterator itm1, itm2;
> std::list<double>::iterator itl1, itl2;
>
>
> std::cout << (its1 == its2) <<std::endl
> << (itv1 == itv2) <<std::endl
> << (itstr1 == itstr2) <<std::endl
> << (itm1 == itm2) <<std::endl
> << (itl1 == itl2) <<std::endl;

Did you look at std::array's iterator? That should be just a raw
pointer (I believe the standard guarantees that?), so will behave in a
similar way to counting_iterator.

John Bytheway


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