![]() |
WPILibC++ 2025.3.2
|
A RawAllocator that stores another allocator. More...
#include <wpi/memory/allocator_storage.hpp>
Public Types | |
| using | allocator_type = typename StoragePolicy::allocator_type |
| using | storage_policy = StoragePolicy |
| using | mutex = Mutex |
| using | is_stateful = typename traits::is_stateful |
Public Member Functions | |
| allocator_storage ()=default | |
| template<class Alloc > | |
| allocator_storage (Alloc &&alloc,) | |
| template<class OtherPolicy > | |
| allocator_storage (const allocator_storage< OtherPolicy, Mutex > &other,) | |
| bool | is_composable () const noexcept |
| allocator_storage (allocator_storage &&other) noexcept | |
| allocator_storage & | operator= (allocator_storage &&other) noexcept |
| allocator_storage (const allocator_storage &)=default | |
| allocator_storage & | operator= (const allocator_storage &)=default |
| void * | allocate_node (std::size_t size, std::size_t alignment) |
| void * | allocate_array (std::size_t count, std::size_t size, std::size_t alignment) |
| void | deallocate_node (void *ptr, std::size_t size, std::size_t alignment) noexcept |
| void | deallocate_array (void *ptr, std::size_t count, std::size_t size, std::size_t alignment) noexcept |
| std::size_t | max_node_size () const |
| std::size_t | max_array_size () const |
| std::size_t | max_alignment () const |
| void * | try_allocate_node (std::size_t size, std::size_t alignment) noexcept |
| void * | try_allocate_array (std::size_t count, std::size_t size, std::size_t alignment) noexcept |
| bool | try_deallocate_node (void *ptr, std::size_t size, std::size_t alignment) noexcept |
| bool | try_deallocate_array (void *ptr, std::size_t count, std::size_t size, std::size_t alignment) noexcept |
| auto | get_allocator () noexcept -> decltype(std::declval< storage_policy >().get_allocator()) |
| auto | get_allocator () const noexcept -> decltype(std::declval< const storage_policy >().get_allocator()) |
| auto | lock () noexcept -> implementation_defined |
| auto | lock () const noexcept -> implementation_defined |
A RawAllocator that stores another allocator.
The StoragePolicy defines the allocator type being stored and how it is stored. The Mutex controls synchronization of the access.
| using wpi::memory::allocator_storage< StoragePolicy, Mutex >::allocator_type = typename StoragePolicy::allocator_type |
| using wpi::memory::allocator_storage< StoragePolicy, Mutex >::is_stateful = typename traits::is_stateful |
| using wpi::memory::allocator_storage< StoragePolicy, Mutex >::mutex = Mutex |
| using wpi::memory::allocator_storage< StoragePolicy, Mutex >::storage_policy = StoragePolicy |
|
default |
StoragePolicy. StoragePolicy must be default-constructible.
|
inline |
StoragePolicy, it decides whether it will be moved, its address stored or something else. new storage_policy(std::forward<Alloc>(alloc)) must be well-formed, otherwise this constructor does not participate in overload resolution.
|
inline |
allocator_storage with a different StoragePolicy but the same Mutex type. Initializes it with the result of other.get_allocator(). new storage_policy(other.get_allocator()) must be well-formed, otherwise this constructor does not participate in overload resolution.
|
inlinenoexcept |
allocator_storage object. A moved-out allocator_storage object must still store a valid allocator object.
|
default |
allocator_storage object. StoragePolicy must be copyable.
|
inline |
|
inline |
Mutex will be locked during the operation.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
StoragePolicy. Mutex.
|
inlinenoexcept |
constexpr.
|
inlinenoexcept |
|
inlinenoexcept |
Mutex will be kept locked.
|
inline |
|
inline |
|
inline |
|
inlinenoexcept |
|
default |
|
inlinenoexcept |
|
inlinenoexcept |
Mutex will be locked during the operation. true.
|
inlinenoexcept |
|
inlinenoexcept |