/* generation.hpp * * author: Roland Conybeare, Aug 2025 */ #pragma once #include #include #include namespace xo { namespace gc { enum class generation { nursery, tenured, N }; constexpr std::size_t gen2int(generation x) { return static_cast(x); } const char * gen2str(generation x); inline std::ostream & operator<<(std::ostream & os, generation x) { os << gen2str(x); return os; } enum class generation_result { nursery, tenured, not_found }; inline generation valid_genresult2gen(generation_result x) { assert(x != generation_result::not_found); if (x == generation_result::nursery) return generation::nursery; else return generation::tenured; } } /*namespace gc*/ } /*namespace xo*/ /* end generation.hpp */