+The ownership operations (destruction, moving, copying) require direct support from the framework, that's why they must be provided by the "value managers", via functions like `copyOp`, `move`, `destructor`. Everything else is provided directly by the ***affordances***. The value managers implement `copyOp`, `move`, `destructor` deferring to the affordances, this allows the user to choose any mechanism. For example, you can implement and select an affordance of destruction that performs *tracing* of the destruction of some opt-in objects.
0 commit comments