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)
59 void* m_preallocated_buffer =
nullptr;
60 Int64 m_preallocated_size = 0;
86template <
typename T, Int32 NbElement = 32>
91 static constexpr Int32 SizeOfType =
static_cast<Int32
>(
sizeof(T));
92 static constexpr Int32 nb_element_in_buf =
NbElement;
96 using typename BaseClassType::ConstReferenceType;
97 static constexpr Int32 MemorySize =
NbElement * SizeOfType;
103 : m_stack_allocator(m_stack_buffer, MemorySize)
105 this->_initFromAllocator(&m_stack_allocator, nb_element_in_buf);
119 this->_resize(
asize);
144 this->_initFromSpan(
aview);
162 this->_initFromInitializerList(
alist);
174 this->copy(
rhs.constSpan());
208 this->_internalDeallocate();
219 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é.
size_t guarantedAlignment(MemoryAllocationArgs) const final
Valeur de l'alignement garanti par l'allocateur.
bool hasRealloc(MemoryAllocationArgs) const final
Indique si l'allocateur supporte la sémantique de realloc.
Classe abstraite de base d'un vecteur.
Informations sur une zone mémoire allouée.
Interface de la version 3 de IMemoryAllocator.
Classe contenant des informations pour spécialiser les allocations.
Vue d'un tableau d'éléments de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-