LIBINT  2.6.0
Classes | Public Types | Public Member Functions | Static Public Attributes | Friends | List of all members
libint2::detail::ext_stack_allocator< T, N > Class Template Reference

allocator that uses an externally-managed stack-allocated array for allocations up to max_size, for larger allocations uses heap. More...

#include <array_adaptor.h>

Classes

struct  rebind
 

Public Types

using value_type = T
 
using pointer = T *
 
using difference_type = typename std::pointer_traits< pointer >::difference_type
 
using size_type = typename std::make_unsigned< difference_type >::type
 
using propagate_on_container_copy_assignment = std::true_type
 
using propagate_on_container_move_assignment = std::true_type
 
typedef T array_type[N]
 

Public Member Functions

 ext_stack_allocator (const ext_stack_allocator &other)=default
 
 ext_stack_allocator (ext_stack_allocator &&other) noexcept
 
ext_stack_allocatoroperator= (const ext_stack_allocator &other)=default
 
ext_stack_allocatoroperator= (ext_stack_allocator &&other) noexcept
 
 ext_stack_allocator (array_type &array) noexcept
 
template<typename U , typename = typename std::enable_if<std::is_same<const U,T>::value>>
 ext_stack_allocator (U(&array)[N]) noexcept
 
T * allocate (std::size_t n)
 
void deallocate (T *p, std::size_t n) noexcept
 

Static Public Attributes

static auto constexpr size = N
 

Friends

template<class T1 , std::size_t N1>
bool operator== (const ext_stack_allocator< T1, N1 > &x, const ext_stack_allocator< T1, N1 > &y) noexcept
 

Detailed Description

template<class T, std::size_t N>
class libint2::detail::ext_stack_allocator< T, N >

allocator that uses an externally-managed stack-allocated array for allocations up to max_size, for larger allocations uses heap.


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