TABLE OF CONTENTS

NAME
SYNOPSIS
DESCRIPTION
COPYRIGHT
SEE ALSO

NAME

libmemkind::fixed::allocator - The C++ allocator compatible with the C++ standard library allocator concepts.

Note: fixed_allocator.h functionality is considered as a stable API (STANDARD API).

SYNOPSIS

#include <fixed_allocator.h>

Link with -lmemkind

libmemkind::fixed::allocator(void *addr, size_t size);
template <typename U> libmemkind::fixed::allocator<T>::allocator(const libmemkind::fixed::allocator<U>&) noexcept;
template <typename U> libmemkind::fixed::allocator<T>::allocator(allocator<U>&& other) noexcept;
libmemkind::fixed::allocator<T>::~allocator();
T *libmemkind::fixed::allocator<T>::allocate(std::size_t n) const;
void libmemkind::fixed::allocator<T>::deallocate(T *p, std::size_t n) const;
template <class U, class... Args> void libmemkind::fixed::allocator<T>::construct(U *p, Args... &&args) const;
void libmemkind::fixed::allocator<T>::destroy(T *p) const;

DESCRIPTION

libmemkind::fixed::allocator<T>
is intended to be used with STL containers to allocate memory on specific area. Memory management is handled by jemalloc on the supplied area. Refer memkind(3) man page for more details.
All public member types and functions correspond to standard library allocator concepts and definitions. The current implementation supports the C++11 standard.
  • Template arguments:

    • T is an object type aliased by value_type.
    • U is an object type.

Note:

  • T *libmemkind::fixed::allocator<T>::allocate(std::size_t n)
    allocates memory using memkind_malloc() on the area supplied to libmemkind::fixed::allocator(). Throw std::bad_alloc when n = 0 or there is not enough memory to satisfy the request.

  • libmemkind::fixed::allocator<T>::deallocate(T *p, std::size_t n)
    deallocates memory associated with a pointer returned by allocate() using memkind_free().

COPYRIGHT

Copyright (C) 2021 - 2022 Intel Corporation. All rights reserved.

SEE ALSO

memkind(3)

The contents of this web site and the associated GitHub repositories are BSD-licensed open source.