On 2017-10-04 09:41, Ryan Joseph wrote:
I’d like to remove all these alloc/deallocs so I can use for..in more
efficiently in tight loops.
I've had the same requirement, and also needed that functionality before
the for..in syntax existed in FPC. Take a look at my Iterator interface
and implementation. It allows you to move forward, backwards, reset,
filter data etc. You can hold on to the instance reference as long as
you like.
This code lives in the tiOPF project, but can be used outside of the
tiOPF project too (I do that often) - simply delete the iterator
implementations for TtiObjectList.
https://github.com/graemeg/tiopf/blob/tiopf2/Options/tiIteratorIntf.pas
https://github.com/graemeg/tiopf/blob/tiopf2/Options/tiIteratorImpl.pas
Some years ago I wrote a article for a magazine about this, and that is
when I implemented the code. You can still find the "Iterator" article
in the link below - and the accompanied source code too (though the
tiOPF code is newer).
http://geldenhuys.co.uk/articles/
Regards,
Graeme
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
My public PGP key: http://tinyurl.com/graeme-pgp
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal