BigInt foreach loop

H. S. Teoh via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Aug 9 14:40:57 PDT 2017


On Wed, Aug 09, 2017 at 09:34:26PM +0000, Q. Schroll via Digitalmars-d-learn wrote:
> On Friday, 4 August 2017 at 16:40:08 UTC, Stefan Koch wrote:
> > [..]
> > 
> > foreach(x;A .. B)
> > it's lowerd to
> > auto limit = B;
> > auto key = A;
> > for(auto x = key;key < limit;++key)
> > {
> >  // use x
> > }
> 
> That's enough to know that the foreach loop does not reuse the space
> for the iteration variable. That was what I cared about.

Note that using BigInt as iteration variable will probably cause a
BigInt allocation per iteration, because operations on BigInt in general
will allocate a new BigInt result. So `++key` will probably create a new
instance of BigInt each time it's executed.


T

-- 
To provoke is to call someone stupid; to argue is to call each other stupid.


More information about the Digitalmars-d-learn mailing list