> Adriaan van Os wrote: > > > Carsten Bager wrote: > > > >> We are moving a lot of code from an old platform where it is > >> allowed to compare 2 records like this. > >> > >> Type > >> A_typ=array[0..3] of integer; > >> Var > >> A1,A2:A_typ; > >> > >> Begin > >> If A1=A2 then > >> End; > >> > >> I know that I can typecast to an array of char to compare but > >> is there an easier way. > >> > >> --- > >> > >> I have never could understand when this is allowed > >> A1:=A2; > >> > >> Why this is not allowed > >> If A1=A2 then > >> > >> in most Pascal compilers. > > > > > > Because you can't simply compare the memory ranges occupied by records A > > and B. They could have different pad bytes (and bits) but still be the > > same. Therefore, implementation is non-trivial. For the same reason, the > > above typecast is incorrect.
I have never used this without initializing records first (A1:=A2). I have used it on deferent platforms (on PC's with typecast). It has all ways don what I expected. It could be a demand that records should be packed, but that triggers another problem on some (ARM) platforms. > > > > We could implement such a comparisation based on rtti ... I assume that rtti means "Runtime Type Information", something a have never used, but if it can do the job I would be happy. Regards Carsten > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal