12#ifndef ARCANE_UTILS_STACKARRAY_H
13#define ARCANE_UTILS_STACKARRAY_H
17#include "arcane/utils/Array.h"
18#include "arcane/utils/MemoryAllocator.h"
44 : m_preallocated_buffer(buf)
45 , m_preallocated_size(size)
50 bool hasRealloc()
const final;
51 void* allocate(
size_t new_size)
final;
53 void deallocate(
void*
ptr)
final;
58 size_t guarantedAlignment()
final {
return 0; }
62 void* m_preallocated_buffer =
nullptr;
63 size_t m_preallocated_size = 0;
89template <
typename T, Int32 NbElement = 32>
94 static constexpr Int32 SizeOfType =
static_cast<Int32
>(
sizeof(T));
95 static constexpr Int32 nb_element_in_buf =
NbElement;
99 using typename BaseClassType::ConstReferenceType;
100 static constexpr Int32 MemorySize =
NbElement * SizeOfType;
106 : m_stack_allocator(m_stack_buffer, MemorySize)
108 this->_initFromAllocator(&m_stack_allocator, nb_element_in_buf);
122 this->_resize(
asize);
147 this->_initFromSpan(
aview);
165 this->_initFromInitializerList(
alist);
177 this->copy(
rhs.constSpan());
211 this->_internalDeallocate();
222 char m_stack_buffer[MemorySize];
Tableau d'items de types quelconques.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Tableau 1D de données avec buffer pré-alloué sur la pile.
SmallArray(Int64 asize)
Créé un tableau de asize éléments contenant la valeur par défaut du type T()
void operator=(const Span< const T > &rhs)
Copie les valeurs de la vue rhs dans cette instance.
SmallArray(Int32 asize)
Créé un tableau de asize éléments contenant la valeur par défaut du type T()
void operator=(const Span< T > &rhs)
Copie les valeurs de la vue rhs dans cette instance.
void operator=(const Array< T > &rhs)
Copie les valeurs de rhs dans cette instance.
void operator=(const ConstArrayView< T > &rhs)
Copie les valeurs de la vue rhs dans cette instance.
SmallArray()
Créé un tableau vide.
SmallArray(size_t asize)
Créé un tableau de asize éléments contenant la valeur par défaut du type T()
SmallArray(const Span< T > &aview)
Créé un tableau en recopiant les valeurs de la value aview.
SmallArray(const ArrayView< T > &aview)
Créé un tableau en recopiant les valeurs de la value aview.
void operator=(const ArrayView< T > &rhs)
Copie les valeurs de la vue rhs dans cette instance.
SmallArray(const Array< T > &rhs)
Créé un tableau en recopiant les valeurs rhs.
SmallArray(Int64 req_size, ConstReferenceType value)
Créé un tableau de size éléments contenant la valeur value.
~SmallArray() override
Détruit l'instance.
SmallArray(const Span< const T > &aview)
Créé un tableau en recopiant les valeurs de la value aview.
SmallArray(const ConstArrayView< T > &aview)
Créé un tableau en recopiant les valeurs de la value aview.
Allocateur avec buffer pré-alloué.
Classe abstraite de base d'un vecteur.
Interface d'un allocateur pour la mémoire.
Vue d'un tableau d'éléments de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-