> On Apr 13, 2018, at 3:29 PM, Marco van de Voort <mar...@stack.nl> wrote:
> 
> Because it is very limited and forces the initialization at the place of
> declaration, which is rare if not zero.

When using other languages I use it often. The fact that all other modern 
languages I’m aware of support it says something also (even c++!). Granted 0 is 
most common it’s still very helpful to init at time of declaration because you 
were just going to do it yourself anyways at the start of the scope. It’s such 
a common pattern but Pascal is out dated on this front. Records don’t have 
default constructors also like other modern languages so they need some work  
in my opinion.

{$DEFINE TMyRecord_Default := (i: 1; s: 'foo’)} is an interesting idea but 
unfortunately it’s a bit of a hack.

> 
> p.s. does r:=default(r); do anything ? Or does that only work in generics?

I didn’t know Default worked with all types and replaces the more verbose 
FillChar call. That’s a step in the right direction.



Regards,
        Ryan Joseph

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to