[fpc-devel] Defer keyword
Michael Van Canneyt
michael at freepascal.org
Fri May 7 08:14:18 CEST 2021
On Fri, 7 May 2021, Sven Barth via fpc-devel wrote:
>
> In my opinion the better solution is to continue the road that Maciej
> started and to implement that "default field" concept together with
> operator hoistening so that records with management operators can be
> used as containers. This is essentially the way it's done in C++ as well
> (e.g. we use that extensively at work), but it needs some questions
> solved for the default field functionality. This way the functionality
> is definitely optional and can be controlled per-instance instead of
> per-type. What it wouldn't solve however would be the assignment
> problems ("wrapped" to non-"wrapped" instance) though that could be
> probably be more or less solved by only allowing an explicit conversion
> to the non-"wrapped" instance.
I thought it was agreed at the time that this was the most viable way
forward ?
IIRC there was also the proposal that this could be done automatically using
a keyword:
var
SomeClass : TSomeClass; dispose;
The compiler can internally create the management record with a single default
field and the needed management operator, so the user does not need
to create all that.
I cannot speak for others, but I think 90% of potential use cases for ref counting
would be covered like this in my code: objects that only live inside a
procedure.
Michael.
More information about the fpc-devel
mailing list