Am 29.03.2019 um 17:53 schrieb Ryan Joseph:
First minor snag, fpc_dynarray_insert, fpc_dynarray_concat can allocate new 
arrays like SetLength can. Do we need to make aligned variants for these also? 
Using array + operators there is no possibility to set alignment.

var
   a, b: array of integer;
begin
   a += [1]; // no way to set alignment for a

   insert(1, b, 0); // no way to set alignment for b
end.

Some options:

1) ignore the problem
2) make extra syntax like:

        a: array of integer; alignment = 64;

3) make another function to allocate an empty array that sets alignment

        SetAlignment(a, 64);
An empty array is Nil, changing that would lead to a whole different can of worms.
4) for insert/concat make variants like InsertAligned() and ignore + operators 
for aligned arrays
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.

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to