Michael Van Canneyt via fpc-devel <fpc-devel@lists.freepascal.org> schrieb am Fr., 7. Mai 2021, 08:14:
> > > 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 ? > As far as I remember there wasn't really any agreement. > 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'm not aboard with such a keyword. The compiler should provide the necessary language mechanisms (default field, operator hoisting) and then there should be a default implementation as part of the RTL. There is no need to hide this behind a keyword, attribute or whatever. > 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. > I think the same. Regards, Sven >
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel