On 02.08.2013 17:34, Sven Barth wrote:
If you'd declare the "IsIn<T>" function as "inline" and the compiler
would correctly handle this(*1) the compiler could in theory be able to
fold the complete for-loop together in the example I gave (because only
constants are used there). I don't know though whether the compiler is
currently able to deduce this (I'll need to test that ^^).
Just tested and got the following results:
- the compiler uses indeed a for-loop for the for-in of arrays
- inlining does not work with open array parameters yet (2.6.x at least
warned about that, 2.7.1 does not warn about that anymore :( [at least
the version I have lying around] )
- using an array declared as a ranged array (array[0..2] of LongInt) the
for-loop is inlined and optimized a bit (especially depending on the
optimization settings), but the compiler does not yet fold the loop...
Regards,
Sven
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel