Concept CE::Memory::Objects::ReservableManager
-
template<typename Manager, typename T>
concept ReservableManager template<typename Manager, typename T> concept ReservableManager = requires(Manager& manager, std::size_t count, T* ptr) { typename Manager::release_context_type; requires std::derived_from<typename Manager::release_context_type, ::CE::Memory::AbstractBlockManager<T>>; { manager.retrieve_block(count) } -> std::same_as<::CE::Memory::Block<T>>; { manager.release_context() } -> std::same_as<std::shared_ptr<typename Manager::release_context_type>>; { std::declval<typename Manager::release_context_type&>().return_objects(ptr, count) } -> std::same_as<void>; { std::declval<typename Manager::release_context_type&>().release_owned(ptr, count) } -> std::same_as<void>; }
Manager interface for reserving blocks and retaining a context capable of returning their individual ranges.