3 #ifndef DUNE_ALIGNED_ALLOCATOR_HH
4 #define DUNE_ALIGNED_ALLOCATOR_HH
20 template<
class T,
int Alignment = -1>
27 static constexpr
int fixAlignment(
int align)
29 return (Alignment==-1) ? std::alignment_of<T>::value : Alignment;
39 static constexpr
int alignment = fixAlignment(
sizeof(
void*));
45 throw std::bad_alloc();
52 throw std::bad_alloc();
Allocators that use malloc/free.
Dune namespace.
Definition: alignedallocator.hh:11
Allocators which guarantee alignment of the memory.
Definition: alignedallocator.hh:21
typename MallocAllocator< T >::size_type size_type
Definition: alignedallocator.hh:34
pointer allocate(size_type n, [[maybe_unused]] const void *hint=0)
allocate n objects of type T
Definition: alignedallocator.hh:42
typename MallocAllocator< T >::pointer pointer
Definition: alignedallocator.hh:33
static constexpr int alignment
Definition: alignedallocator.hh:39
Definition: alignedallocator.hh:35
AlignedAllocator< U, Alignment > other
Definition: alignedallocator.hh:36
Allocators implementation which simply calls malloc/free.
Definition: mallocallocator.hh:22
T * pointer
Definition: mallocallocator.hh:26
std::size_t size_type
Definition: mallocallocator.hh:24
size_type max_size() const noexcept
max size for allocate
Definition: mallocallocator.hh:72