10 #ifndef INCLUDED_VOLK_ALLOC_H
11 #define INCLUDED_VOLK_ALLOC_H
18 #include <volk/volk.h>
41 if (n > std::numeric_limits<std::size_t>::max() /
sizeof(T))
42 throw std::bad_alloc();
47 throw std::bad_alloc();
53 template <
class T,
class U>
59 template <
class T,
class U>
74 using vector = std::vector<T, alloc<T>>;
Definition: volk_alloc.hh:20
bool operator==(alloc< T > const &, alloc< U > const &)
Definition: volk_alloc.hh:54
std::vector< T, alloc< T > > vector
type alias for std::vector using volk::alloc
Definition: volk_alloc.hh:74
bool operator!=(alloc< T > const &, alloc< U > const &)
Definition: volk_alloc.hh:60
C++11 allocator using volk_malloc and volk_free.
Definition: volk_alloc.hh:29
void deallocate(T *p, std::size_t) noexcept
Definition: volk_alloc.hh:50
T value_type
Definition: volk_alloc.hh:30
T * allocate(std::size_t n)
Definition: volk_alloc.hh:39
constexpr alloc(alloc< U > const &) noexcept
Definition: volk_alloc.hh:35
size_t volk_get_alignment(void)
Get the machine alignment in bytes.
Definition: volk.tmpl.c:90
__VOLK_DECL_BEGIN VOLK_API void * volk_malloc(size_t size, size_t alignment)
Allocate size bytes of data aligned to alignment.
Definition: volk_malloc.c:38
VOLK_API void volk_free(void *aptr)
Free's memory allocated by volk_malloc.
Definition: volk_malloc.c:80