On Sat, 18 Jun 2011, Vladimir Zhirov wrote:
Hi, Reviewing a bunch of my string processing functions made me wonder what integer type should I use for position / length parameters. I used to plain "Integer" for this task, but looking through RTL and LCL code I noticed that sometimes SizeInt and even PtrInt are also used: - Length, Copy use Integer; - Pos, Delete, Insert use SizeInt; - UTF8Length, UTF8Pos, UTF8Copy, etc. use PtrInt. PtrInt use seems to be generally discouraged by FPC docs but does it apply to this particular case? The only benefit I see in SizeInt/PtrInt is larger size on 64-bit targets, that should theoretically make it possible to index larger strings. But is AnsiString type capable of holding more than High(Integer) bytes, or will it be so in the future?
Ansistring is not capable of keeping more than High(Integer) bytes.
Thus, the question basically is: what integer type is recommended to be used as index/length for future-proof string processing functions?
SizeInt should do just fine. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal