 A user <em>must</em> drop all cross-process <code>shared_ptr</code> handles to objects that it owns, before invoking A dtor; so A is fine, and the internal cross-process ref-counts for each A-held object get decremented by 1, due to the <code>shared_ptr</code> handles being nullified by the user by contract. (For context: The guided manual <code>session_app_org</code> page describes to the reader how to structure their program, so that this is guaranteed. In short, declare the object handle data members in