because C++ objects are not managing memory used to store class structure
We are though. We are the ones calling operator_new.
I don't see why we can't reference-count our allocated instances.
I also don't see how moving the Context creation to TaskScheduler would work and how it would help, could you elaborate please? And I'm not sure how I can test who manages the Contexts.