xo-reflect: bugfix: missing RefPointerTdx.fixed_child_td()

This commit is contained in:
Roland Conybeare 2024-09-14 18:26:10 -05:00
commit 5dce303fe1

View file

@ -28,7 +28,6 @@ namespace xo {
* null-pointer -> 0, non-null pointer -> 1
*/
virtual uint32_t n_child_fixed() const override { return 0; /*unknown*/ }
virtual TaggedPtr child_tp(uint32_t i, void * object) const override = 0;
/* (forbidden) */
virtual std::string const & struct_member_name(uint32_t i) const override;
@ -36,7 +35,7 @@ namespace xo {
// ----- RefPointerTdx -----
/* xo::ref::intrusive_ptr<T> for some T */
/* Pointer = xo::ref::intrusive_ptr<T> for some T */
template<typename Pointer>
class RefPointerTdx : public PointerTdx {
public:
@ -58,6 +57,10 @@ namespace xo {
return 0;
} /*n_child*/
virtual TypeDescrBase * fixed_child_td(uint32_t /*i*/) const override {
return EstablishTypeDescr::establish<typename Pointer::element_type>();
}
virtual TaggedPtr child_tp(uint32_t i, void * object) const override {
using xo::tostr;
using xo::xtag;