xo-umbrella2/xo-alloc2/src/alloc2/facet/ICollector_Any.cpp
Roland Conybeare 8f2c67ee4a xo-gc: retire Collector.forward_inplace + mock x-gc utest
W/ MockCollector supporting AGCObjectVisitor facet
2026-04-07 21:16:55 -04:00

78 lines
1.4 KiB
C++

/** @file ICollector_Any.cpp
*
**/
#include "gc/ICollector_Any.hpp"
#include <iostream>
#include <exception>
namespace xo {
namespace mm {
using xo::facet::DVariantPlaceholder;
using xo::facet::typeseq;
using xo::facet::valid_facet_implementation;
void
ICollector_Any::_fatal()
{
/* control here on uninitialized IAllocator_Any.
* Initialized instance will have specific implementation type
*/
std::cerr << "fatal"
<< ": attempt to call uninitialized"
<< " ICollector_Any method"
<< std::endl;
std::terminate();
}
typeseq
ICollector_Any::s_typeseq = typeseq::id<DVariantPlaceholder>();
bool
ICollector_Any::_valid
= valid_facet_implementation<ACollector, ICollector_Any>();
// nonconst methods
auto
ICollector_Any::install_type(Opaque, const AGCObject &) -> bool
{
_fatal();
}
auto
ICollector_Any::add_gc_root_poly(Opaque, obj<AGCObject> *) -> void
{
_fatal();
}
auto
ICollector_Any::remove_gc_root_poly(Opaque, obj<AGCObject> *) -> void
{
_fatal();
}
auto
ICollector_Any::request_gc(Opaque, Generation) -> void
{
_fatal();
}
auto
ICollector_Any::assign_member(Opaque, void *, obj<AGCObject> *, obj<AGCObject> &) -> void
{
_fatal();
}
auto
ICollector_Any::alloc_copy(Opaque, std::byte *) -> void *
{
_fatal();
}
} /*namespace mm*/
} /*namespace xo*/
/* end ICollector_Any.cpp */