[fpc-pascal] SetLength procedure
Steve Gatenby
steveg at nevets.com.au
Sun Jul 27 13:56:45 CEST 2014
Thanks for that - I will give it a try :)
On 27/07/14 21:21, leledumbo wrote:
>> It is only a personal preference, not a serious problem.
>>
>> I would find code in the form of
>> ArrayLen := IncLength(ArrayName, 1);
>>
>> to be much more readable then
>>
>> SetLength(ArrayName, Length(ArrayName)+1);
>> ArrayLen:= High(ArrayName);
>>
>> I was just hoping somebody may know how its done.
> Without support for generic function, currently you have to use generic
> class method:
>
> type
> generic TDynArrayUtil<T> = class
> public
> class function SetLength(var a: T; const n: Integer): Integer;
> end;
>
> class function TDynArrayUtil.SetLength(var a: T; const n: Integer): Integer;
> begin
> System.SetLength(a,Length(a) + n);
> Result := High(a);
> end;
>
> and use it like:
>
> var
> a: TIntegerDynArray;
> ...
> maxn := specialize TDynArrayUtil<TIntegerDynArray>.SetLength(a,1);
>
> note that you have to instantiate with the correct type.
>
>
>
> --
> View this message in context: http://free-pascal-general.1045716.n5.nabble.com/SetLength-procedure-tp5719807p5719810.html
> Sent from the Free Pascal - General mailing list archive at Nabble.com.
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list