foreach - premature optimization vs cultivating good habits
Adam D. Ruppe via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jan 30 04:55:17 PST 2015
On Friday, 30 January 2015 at 11:55:16 UTC, Laeeth Isharc wrote:
> As I understand it, foreach allocates when a simple C-style for
> using an array index would not.
foreach is just syntax sugar over a for loop. If there's any
allocations, it is because your code had some, it isn't inherit
to the loop. The doc definition even lists the translation of
foreach to for in the case of ranges explicitly:
http://dlang.org/statement.html#ForeachStatement
The most likely allocation would be to a user-defined opApply
delegate, and you can prevent that by making it opApply(scope
your_delegate) - the scope word prevents any closure allocation.
More information about the Digitalmars-d-learn
mailing list