vecmem 1.18.0
Loading...
Searching...
No Matches
terminal_memory_resource.hpp
1/*
2 * VecMem project, part of the ACTS project (R&D line)
3 *
4 * (c) 2021-2025 CERN for the benefit of the ACTS project
5 *
6 * Mozilla Public License Version 2.0
7 */
8
9#pragma once
10
11// Local include(s).
12#include "vecmem/memory/details/memory_resource_base.hpp"
13#include "vecmem/memory/memory_resource.hpp"
14
15// System include(s).
16#include <cstddef>
17
18namespace vecmem {
19
30
31public:
45 const memory_resource& upstream);
49
50private:
53
55 VECMEM_CORE_EXPORT void* do_allocate(std::size_t, std::size_t) override;
58 void do_deallocate(void* p, std::size_t, std::size_t) override;
61 bool do_is_equal(const memory_resource& other) const noexcept override;
62
64
65}; // class terminal_memory_resource
66
67} // namespace vecmem
An allocator class that wraps a memory resource.
Definition allocator.hpp:37
Base class for implementations of the vecmem::memory_resource interface.
Definition memory_resource_base.hpp:25
This memory resource does nothing, but it does nothing for a purpose.
Definition terminal_memory_resource.hpp:29
VECMEM_CORE_EXPORT ~terminal_memory_resource() override
Destructor.
VECMEM_CORE_EXPORT bool do_is_equal(const memory_resource &other) const noexcept override
Check whether the other resource is also a terminal resource.
Definition terminal_memory_resource.cpp:39
VECMEM_CORE_EXPORT void do_deallocate(void *p, std::size_t, std::size_t) override
Do nothing.
Definition terminal_memory_resource.cpp:31
VECMEM_CORE_EXPORT void * do_allocate(std::size_t, std::size_t) override
Throw std::bad_alloc.
Definition terminal_memory_resource.cpp:23
VECMEM_CORE_EXPORT terminal_memory_resource(void)
Constructs the terminal memory resource, without an upstream resource.
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16