From aff30a1ee36aaa8c3facb8496009b83115dd705c Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Thu, 27 Nov 2025 11:03:41 -0500 Subject: [PATCH] xo-interpreter: add Primitive object, to expose builtin functions --- include/xo/reflect/TypeDescr.hpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/include/xo/reflect/TypeDescr.hpp b/include/xo/reflect/TypeDescr.hpp index 8896ed3..d39d64e 100644 --- a/include/xo/reflect/TypeDescr.hpp +++ b/include/xo/reflect/TypeDescr.hpp @@ -99,21 +99,28 @@ namespace xo { * * Example * T * p = new T(...); - * DestructorAux::dtor(p); + * InvokerAux::dtor(p); **/ template struct InvokerAux : public Invoker { virtual void dtor(void * addr) const override { - T * obj = static_cast(addr); + T * obj = reinterpret_cast(addr); obj->~T(); } }; + /** no dtor for void **/ template<> struct InvokerAux : public Invoker { virtual void dtor(void *) const override {} }; + + /** no dtor for function types **/ + template + struct InvokerAux : public Invoker { + virtual void dtor(void *) const override {} + }; } /*namespace detail*/ } /*namespace reflect*/ } /*namespace xo*/