33 using private_data_type = std::
35 if (t.release ==
nullptr)
40 const auto private_data =
static_cast<const private_data_type*
>(t.private_data);
44 if (private_data->has_dictionary_ownership())
46 if (t.dictionary->release)
48 t.dictionary->release(t.dictionary);
51 t.dictionary =
nullptr;
57 for (int64_t i = 0; i < t.n_children; ++i)
59 T* child = t.children[i];
62 if (private_data->has_child_ownership(
static_cast<std::size_t
>(i)))
66 child->release(child);