[fpc-devel] Aligned dynamic arrays
Ryan Joseph
ryan at thealchemistguild.com
Sat Mar 30 00:05:50 CET 2019
> On Mar 29, 2019, at 5:25 PM, Sven Barth via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
>
> Ignoring something is not an answer. At least there'd need to be a runtime error.
>
> Thinking about it maybe it would be better to follow Anthony's idea with the record and not try to adjust/extend a language mechanism that wasn't geared for that.
Biggest problems with records is that we can’t make arrays of records because the [] property copies the record with the getter (my other email on this never got posted). If there was a feasible way to fix that problem then dynamic arrays would be nearly obsolete anyways (probably still faster though).
var
A: TAlignedArray<TPoint>;
begin
A.Length := 1;
A[0].x := 100; // Doesn’t work, writes to a copy and never mutates the underlying structure.
Is there no other way to specify alignment? It would be ugly but a compiler directive could be used.
var
{$push}
{$dynamic-array-align 4096}
a: array of integer;
{$pop}
begin
SetLength(a,10); // just use normal SetLength now
Regards,
Ryan Joseph
More information about the fpc-devel
mailing list