6 #ifndef XENIUM_DETAIL_ORPHAN_HPP
7 #define XENIUM_DETAIL_ORPHAN_HPP
10 #include <xenium/reclamation/detail/deletable_object.hpp>
12 namespace xenium::reclamation::detail {
14 template <
unsigned Epochs>
15 struct orphan : detail::deletable_object_impl<orphan<Epochs>> {
16 orphan(
unsigned target_epoch, std::array<detail::deletable_object*, Epochs>& retire_lists) :
17 target_epoch(target_epoch),
18 retire_lists(retire_lists) {}
21 for (
auto p : retire_lists) {
22 detail::delete_objects(p);
26 const unsigned target_epoch;
29 std::array<detail::deletable_object*, Epochs> retire_lists;