[fpc-devel] Feature request/discussion - SetLengthNoInit

J. Gareth Moreton gareth at moreton-family.com
Thu Sep 17 04:59:37 CEST 2020


I hope they do allow you to fix it, because those features look useful, 
especially with custom-made dynamic arrays (through a generic record).  
I've got to try playing with them now to see if I can make something 
that Chris Rorden would use!

Though not really related, it's not easy to specify a pointer to a type 
parameter in a generic type.  For example, if I try to declare:

type generic TMyArray<T> = record
   Data: ^T;
   Length: PtrUInt;
end;

The compiler will complain about T being an unresolved forward 
declaration.  Outside of specifying a second parameter for the pointer 
type (which would be a little unfriendly for third-party users), there 
isn't really a way around this.

Gareth aka. Kit

On 17/09/2020 03:08, Ryan Joseph via fpc-devel wrote:
>
>> On Sep 16, 2020, at 9:10 PM, J. Gareth Moreton via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
>>
>> I figure I could design a dynamic array class, but it will very likely be incompatible with SetLength no matter what I try to do, and unless I'm mistaken, it won't have the benefit of automatically gaining an implicit clean-up blocl if used as a local variable unless there's an automatic reference counting feature that I'm not aware of.
> There are operators to do this now but they're only for records (https://wiki.freepascal.org/management_operators). You can easily make a reference counted type now but as I mentioned that are some drawbacks, some of which I'd like to correct if the compiler team allowed it.
>
> Regards,
> 	Ryan Joseph
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>

-- 
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the fpc-devel mailing list