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