xo-gc: + ACollector.assign_member()

This commit is contained in:
Roland Conybeare 2026-03-24 22:11:25 -04:00
commit f056faa0db
9 changed files with 66 additions and 3 deletions

View file

@ -46,6 +46,11 @@ public:
/** @defgroup mm-resourcevisitor-methods **/
///@{
// const methods
/** An uninitialized AResourceVisitor instance will have zero vtable pointer (per {linux,osx} abi).
* Use case for this is narrow. We go to some lengths to avoid null vtable pointers. For example
* obj<AFacet> will have non-null vtable (via IFacet_Any) with all methods terminating.
**/
bool _has_null_vptr() const noexcept { return *reinterpret_cast<const void * const *>(this) == nullptr; }
/** RTTI: unique id# for actual runtime data representation **/
virtual typeseq _typeseq() const noexcept = 0;
/** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/