diff --git a/include/xo/alloc/Object.hpp b/include/xo/alloc/Object.hpp index c1217418..742fba4c 100644 --- a/include/xo/alloc/Object.hpp +++ b/include/xo/alloc/Object.hpp @@ -118,7 +118,7 @@ namespace xo { /** tagged pointer with runtime type information **/ - virtual TaggedPtr self_tp() const = 0; + virtual TaggedPtr self_tp() const; /** print on stream @p os **/ virtual void display(std::ostream & os) const = 0; diff --git a/src/alloc/Object.cpp b/src/alloc/Object.cpp index 75abec14..ab23b76a 100644 --- a/src/alloc/Object.cpp +++ b/src/alloc/Object.cpp @@ -20,9 +20,18 @@ operator new (std::size_t z, const xo::Cpof & cpof) } namespace xo { + using xo::reflect::TaggedPtr; + gc::IAlloc * Object::mm = nullptr; + TaggedPtr + Object::self_tp() const + { + assert(false); + return TaggedPtr::universal_null(); + } + IObject * Object::_forward(IObject * src, gc::IAlloc * gc)