Tom Verhoeff schrieb: >>> [...] >>> Here is another issue. When working on a program involving multiple >>> units, it may turn out that the "Use AnsiStrings" was not set >>> consistently. >>> >>> Students are advised to enable this globally in the Compiler Options, >>> but they sometimes forget. Some (given/generated) units also contain >>> their own {$H+}, others don't. >> Is this a student bug or an IDE bug? > > Neither, it is a fact of life :-). It is a consequence of the fact > that units from different authors may have been made under different > assumptions. Some units are written with the assumption that they will > be compiled with -Sh, others do not make that assumption and include {$H+} > in the source.
I'd go the Delphi way, and make "string" dependent on global settings only. If somebody wants specific Ansi- or ShortStrings, s/he should use the according types, in favor of the generic "string" type. Such strict typing will make even legacy code better reusable. I dunno about the perfomance of ShortString with FPC, but I don't think that there exist many cases, where ShortString really provides any advantage over AnsiString. A hint for students and teachers: *generic* data types, like "integer" or "string", should only be used when *all* operations with such variables will work with any current or future implementation of these generic types. Consider what will happen when "string" becomes a WideString, or the like, as recently happend in RAD Studio (Delphi)... DoDi _______________________________________________ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus