WPILibC++ 2025.1.1
Loading...
Searching...
No Matches
wpi::memory::deeply_tracked_allocator< Tracker, RawAllocator > Class Template Reference

A tracked_allocator that has rebound any BlockAllocator to the corresponding deeply_tracked_block_allocator. More...

#include <wpi/memory/tracking.hpp>

Inheritance diagram for wpi::memory::deeply_tracked_allocator< Tracker, RawAllocator >:
wpi::memory::tracked_allocator< Tracker, detail::rebound_allocator< Tracker, RawAllocator > >

Related Symbols

(Note that these are not member symbols.)

template<class RawAllocator , class Tracker , typename... Args>
auto make_deeply_tracked_allocator (Tracker t, Args &&... args) -> deeply_tracked_allocator< Tracker, RawAllocator >
 

Additional Inherited Members

- Public Types inherited from wpi::memory::tracked_allocator< Tracker, detail::rebound_allocator< Tracker, RawAllocator > >
using allocator_type
 
using tracker
 
using is_stateful
 
- Public Member Functions inherited from wpi::memory::tracked_allocator< Tracker, detail::rebound_allocator< Tracker, RawAllocator > >
 ~tracked_allocator () noexcept
 
void * allocate_node (std::size_t size, std::size_t alignment)
 
void * try_allocate_node (std::size_t size, std::size_t alignment) noexcept
 
void * allocate_array (std::size_t count, std::size_t size, std::size_t alignment)
 
void * try_allocate_array (std::size_t count, std::size_t size, std::size_t alignment) noexcept
 
void deallocate_node (void *ptr, std::size_t size, std::size_t alignment) noexcept
 
bool try_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
 
bool try_deallocate_array (void *ptr, std::size_t count, std::size_t size, std::size_t alignment) noexcept
 
 tracked_allocator (tracker t={}) noexcept
 
 tracked_allocator (tracker t, allocator_type &&allocator) noexcept
 
 tracked_allocator (tracked_allocator &&other) noexcept
 
tracked_allocatoroperator= (tracked_allocator &&other) noexcept
 
std::size_t max_node_size () const
 
std::size_t max_array_size () const
 
std::size_t max_alignment () const
 
allocator_typeget_allocator () noexcept
 
const allocator_typeget_allocator () const noexcept
 
trackerget_tracker () noexcept
 
const trackerget_tracker () const noexcept
 

Detailed Description

template<class Tracker, class RawAllocator>
class wpi::memory::deeply_tracked_allocator< Tracker, RawAllocator >

A tracked_allocator that has rebound any BlockAllocator to the corresponding deeply_tracked_block_allocator.

This makes it a deeply tracked allocator.
It replaces each template argument of the given RawAllocator for which is_block_allocator or is_raw_allocator is true with a deeply_tracked_block_allocator.

Friends And Related Symbol Documentation

◆ make_deeply_tracked_allocator()

template<class RawAllocator , class Tracker , typename... Args>
auto make_deeply_tracked_allocator ( Tracker t,
Args &&... args ) -> deeply_tracked_allocator<Tracker, RawAllocator>
related
Effects:
Takes a RawAllocator and deeply wraps it with a tracker.
Returns:
A deeply_tracked_allocator with the corresponding parameters forwarded to the constructor.

The documentation for this class was generated from the following file: