WPILibC++ 2025.1.1
|
Class wpi::memory::memory_arena and related functionality regarding BlockAllocators. More...
#include <type_traits>
#include "detail/debug_helpers.hpp"
#include "detail/assert.hpp"
#include "detail/utility.hpp"
#include "allocator_traits.hpp"
#include "config.hpp"
#include "default_allocator.hpp"
#include "error.hpp"
Go to the source code of this file.
Classes | |
struct | wpi::memory::memory_block |
A memory block. More... | |
struct | wpi::memory::is_block_allocator< T > |
Traits that check whether a type models concept BlockAllocator. More... | |
class | wpi::memory::detail::memory_block_stack |
class | wpi::memory::detail::memory_arena_cache< cached_arena > |
class | wpi::memory::detail::memory_arena_cache< uncached_arena > |
class | wpi::memory::memory_arena< BlockAllocator, Cached > |
A memory arena that manages huge memory blocks for a higher-level allocator. More... | |
class | wpi::memory::growing_block_allocator< RawAllocator, Num, Den > |
A BlockAllocator that uses a given RawAllocator for allocating the blocks. More... | |
class | wpi::memory::fixed_block_allocator< RawAllocator > |
A BlockAllocator that allows only one block allocation. More... | |
Namespaces | |
namespace | wpi |
Foonathan namespace. | |
namespace | wpi::memory |
Memory namespace. | |
namespace | wpi::memory::detail |
namespace | wpi::memory::literals |
Literals namespace. | |
Typedefs | |
template<class RawAlloc > | |
using | wpi::memory::detail::default_block_wrapper = growing_block_allocator<RawAlloc> |
template<class BlockOrRawAllocator , template< typename... > class BlockAllocator = detail::default_block_wrapper> | |
using | wpi::memory::make_block_allocator_t |
Takes either a BlockAllocator or a RawAllocator. | |
Functions | |
template<class BlockAllocator > | |
std::true_type | wpi::memory::detail::is_block_allocator_impl (int,,,) |
template<typename T > | |
std::false_type | wpi::memory::detail::is_block_allocator_impl (short) |
template<template< class... > class Wrapper, class BlockAllocator , typename... Args> | |
BlockAllocator | wpi::memory::detail::make_block_allocator (std::true_type, std::size_t block_size, Args &&... args) |
template<template< class... > class Wrapper, class RawAlloc > | |
auto | wpi::memory::detail::make_block_allocator (std::false_type, std::size_t block_size, RawAlloc alloc=RawAlloc()) -> Wrapper< RawAlloc > |
template<class BlockOrRawAllocator , typename... Args> | |
make_block_allocator_t< BlockOrRawAllocator > | wpi::memory::make_block_allocator (std::size_t block_size, Args &&... args) |
template<template< class... > class BlockAllocator, class BlockOrRawAllocator , typename... Args> | |
make_block_allocator_t< BlockOrRawAllocator, BlockAllocator > | wpi::memory::make_block_allocator (std::size_t block_size, Args &&... args) |
constexpr std::size_t | wpi::memory::literals::operator""_KiB (unsigned long long value) noexcept |
Syntax sugar to express sizes with unit prefixes. | |
constexpr std::size_t | wpi::memory::literals::operator""_KB (unsigned long long value) noexcept |
constexpr std::size_t | wpi::memory::literals::operator""_MiB (unsigned long long value) noexcept |
constexpr std::size_t | wpi::memory::literals::operator""_MB (unsigned long long value) noexcept |
constexpr std::size_t | wpi::memory::literals::operator""_GiB (unsigned long long value) noexcept |
constexpr std::size_t | wpi::memory::literals::operator""_GB (unsigned long long value) noexcept |
Variables | |
constexpr bool | wpi::memory::cached_arena = true |
constexpr bool | wpi::memory::uncached_arena = false |
Class wpi::memory::memory_arena and related functionality regarding BlockAllocators.