[fpc-pascal] How to avoid Copy

Amir at Aavani.net Amir at Aavani.net
Sun Dec 31 18:59:55 CET 2023



On 12/31/23 02:46, Marco van de Voort via fpc-pascal wrote:
>
> Op 31/12/2023 om 04:11 schreef Amir--- via fpc-pascal:
>>
>> I compiled the code with `fpc -O3 -Sd -gv -g -gl ` and ran `valgrind` 
>> on it (the output is attached). It does not look like there is a big 
>> difference between the Check1 and Check2 but Check3 is about 20 times 
>> faster than the other two.
>> I believe the issue could be resolved if we make 
>> "TCustomListWithPointers.GetPtrEnumerator" a public method. Then, one 
>> can implement the following function:
>>
>  I also do this (an enumerator using a pointer type) in one of my 
> container types. It also makes assignment in the for in possible. Note 
> though that it is not necessarily needed to switch the whole 
> collection to use a pointer, defining a separate iterator (e.g. 
> collection.pointeriterator) that returns an iterator instantiated for 
> ^T.   You can then select the iterator by using for element in 
> collection.iterator do.
Understand (and this is what I ended-up doing). I guess my question is 
that why we do not to have a PointerIterator in TList class.

Amir



More information about the fpc-pascal mailing list