For cycle in RC you either do it like other RC system and break
cycles manually, or create a parent owner to own every things
pointing to each other and having cycles.
On Thursday, 27 July 2017 at 11:43:37 UTC, Steven Schveighoffer
wrote:
This is an unworkable solution.
Not at all unworkable, it's much easier than mixed strategies.
One simple time you forget to clean up deterministically and
then you corrupt memory by using members that are already
cleaned up.
Once again, this is the reason of the existence of the
GC-Proof-resource-class, which have the GC warn you of
non-deterministic destruction at debug time.
In the very case you mention it will tell you "you have forgot to
release one resource T deterministically".
Or, you disable calling destructors in the GC, and instead leak
resources.
As I said in previous messages, not all resources can be
destroyed by the GC: they have to fit into 3 different
constraints.
I'll leave the discussion, you seem to ignore my arguments in
what seems as an attempt to have the last word.