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

Reply via email to