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

Reply via email to