Arcane  v4.1.4.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
BaseTypes.h
Aller à la documentation de ce fichier.
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* BaseTypes.h (C) 2000-2026 */
9/* */
10/* Définition des types de la composante 'base' de Arccore. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_BASE_BASETYPES_H
13#define ARCCORE_BASE_BASETYPES_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include <cstddef>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
35
36template <typename T> class IterT;
37template <typename T> class ConstIterT;
38
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41
43typedef unsigned char Byte;
45typedef signed char SByte;
47typedef unsigned short UChar;
49typedef unsigned short UInt16;
51typedef float Single;
52
54inline constexpr Int32 DynExtent = -1;
55
56template <typename T> class ConstArrayView;
57template <typename T> class ArrayView;
58template <typename T> class ConstArray2View;
59template <typename T> class Array2View;
60template <typename T> class ConstArray3View;
61template <typename T> class Array3View;
62template <typename T> class ConstArray4View;
63template <typename T> class Array4View;
64template <typename T, typename SizeType, SizeType Extent = DynExtent> class SpanImpl;
65template <typename T, Int64 Extent = DynExtent> class Span;
66template <typename T, Int32 Extent = DynExtent> class SmallSpan;
67template <typename T, Int64 Extent = DynExtent> using LargeSpan = Span<T, Extent>;
68template <typename T, typename SizeType, SizeType Extent1 = DynExtent, SizeType Extent2 = DynExtent> class Span2Impl;
69template <typename T, Int64 Extent1 = DynExtent, Int64 Extent2 = DynExtent> class Span2;
70template <typename T, Int32 Extent1 = DynExtent, Int32 Extent2 = DynExtent> class SmallSpan2;
71template <typename Iterator_>
72class ArrayIterator;
73
74class StringImpl;
75class String;
76class StringVector;
77class StringBuilder;
80
81class IRangeFunctor;
82template<int RankValue> class IMDRangeFunctor;
83template<typename InstanceType> class RangeFunctorT;
84template<typename LambdaType> class LambdaRangeFunctorT;
85template<typename LambdaType, typename... Views> class LambdaRangeFunctorTVa;
87template<typename IndexType_ = Int32> class ForLoopRange;
88template<int RankValue, typename IndexType_ = Int32> class SimpleForLoopRanges;
89template<int RankValue, typename IndexType_ = Int32> class ComplexForLoopRanges;
91class ForLoopRunInfo;
93
94class TraceInfo;
95class StackTrace;
96class Exception;
97class StackFrame;
101template <typename T>
102class CheckedPointer;
103template <class T>
105template <typename T>
106class ReferenceCounter;
113class TimeoutException;
114enum class eBasicDataType : unsigned char;
115class IFunctor;
116template <typename ArgType>
118template <typename ReturnType, typename Arg1, typename Arg2>
120template <typename T>
121class FunctorT;
122template <typename ClassType, typename ArgType>
124template <typename ArgType>
127template <typename InstanceType, class T = void>
128struct RefTraits;
129template <typename InstanceType, int ImplTagId = RefTraits<InstanceType>::TagId>
130class Ref;
131
132namespace impl
133{
134 template <typename InstanceType>
136}
137
138/*---------------------------------------------------------------------------*/
139/*---------------------------------------------------------------------------*/
140
141// Ces classes sont internes à Arccore/Arcane
142template <typename T>
143class ArrayRange;
144namespace Impl
145{
146class BasicTranscoder;
147template <class DataType> class CoreArray;
148class ForLoopStatInfoList;
149class ForLoopStatInfoListImpl;
150class ForLoopCumulativeStat;
151}
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156// Ces classes ne sont pas accessibles dans 'utils' mais il est possible
157// d'utiliser des pointeurs sur ces instances.
158// La définition est dans 'arcane_accelerator_core'
159namespace Accelerator
160{
161class Runner;
162class RunQueue;
163}
166
167/*---------------------------------------------------------------------------*/
168/*---------------------------------------------------------------------------*/
169
170class DefaultLayout;
171template<int RankValue> class RightLayoutN;
172template<int RankValue> class LeftLayoutN;
173template<int RankValue> class MDDimType;
174class ConstMemoryView;
177// TODO: Rendre obsolète
178using IMemoryRessourceMng = IMemoryResourceMng;
179template <typename IndexType_ = Int32, Int32... RankSize> class ExtentsV;
180template<class DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
181class MDSpan;
182template<typename DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
183using MDSpanBase ARCCORE_DEPRECATED_REASON("Use 'MDSpan' type instead") = MDSpan<DataType,Extents,LayoutPolicy>;
184template<typename ExtentType> class ArrayBounds;
185
186template<class DataType,typename Extents,typename LayoutType = DefaultLayout >
187class NumArray;
188template<typename DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
189using NumArrayBase ARCCORE_DEPRECATED_REASON("Use 'NumArray' type instead") = NumArray<DataType,Extents,LayoutPolicy>;
190
191template<typename Extents,typename LayoutPolicy> class ArrayExtentsWithOffset;
192template<int RankValue, typename IndexType_ = Int32> class MDIndexBase;
193template<int RankValue, typename IndexType_ = Int32> class MDIndex;
194template<int RankValue, typename IndexType_ = Int32> using ArrayIndexBase = MDIndexBase<RankValue,IndexType_>;
195template<int RankValue, typename IndexType_ = Int32> using ArrayIndex = MDIndex<RankValue,IndexType_>;
196template<int RankValue> using ArrayBoundsIndexBase ARCCORE_DEPRECATED_REASON("Use 'MDIndexBase' type instead") = ArrayIndexBase<RankValue>;
197template<int RankValue> using ArrayBoundsIndex ARCCORE_DEPRECATED_REASON("Use 'MDIndex' type instead") = ArrayIndex<RankValue>;
198template<typename Extents> class ArrayExtentsBase;
199template<typename Extents> class ArrayExtents;
200template<int RankValue> class ArrayStridesBase;
201template<int RankValue> class IMDRangeFunctor;
202template<int RankValue> class ArrayExtentsValueDynamic;
203namespace impl
204{
205template<typename IndexType_, Int32... RankSize> class ArrayExtentsValue;
206}
207template <typename T, Int32 NbElement>
208class FixedArray;
209
210class IObservable;
211class IObserver;
212class Observable;
213class Observer;
214
215/*---------------------------------------------------------------------------*/
216/*---------------------------------------------------------------------------*/
217
238
259
260/*---------------------------------------------------------------------------*/
261/*---------------------------------------------------------------------------*/
262
266typedef Span<std::byte> ByteSpan;
268typedef Span<UChar> UCharSpan;
270typedef Span<Int64> Int64Span;
272typedef Span<Int32> Int32Span;
274typedef Span<Int16> Int16Span;
278typedef Span<Real> RealSpan;
280typedef Span<bool> BoolSpan;
283
287typedef Span<const std::byte> ByteConstSpan;
304
305/*---------------------------------------------------------------------------*/
306/*---------------------------------------------------------------------------*/
307
308} // End namespace Arccore
309
310/*---------------------------------------------------------------------------*/
311/*---------------------------------------------------------------------------*/
312
313namespace Arccore
314{
326using Arcane::IterT;
329using Arcane::LargeSpan;
330using Arcane::Span;
331using Arcane::Span2;
333using Arcane::SpanImpl;
337
348using Arcane::Ref;
355
356using Arcane::IFunctor;
359using Arcane::FunctorT;
362
363using Arcane::Byte;
364using Arcane::SByte;
365using Arcane::Single;
366using Arcane::UChar;
367using Arcane::UInt16;
368
379
390
392using Arcane::ByteSpan;
398using Arcane::RealSpan;
399using Arcane::BoolSpan;
401
403using Arcane::ByteConstSpan;
412
414
415// Ces classes sont internes à Arccore/Arcane
417}
418
419/*---------------------------------------------------------------------------*/
420/*---------------------------------------------------------------------------*/
421
422#endif
Définitions et globaux de Arccore.
Gestionnaire d'exécution pour accélérateur.
Exception lorsqu'un argument est invalide.
Vue modifiable pour un tableau 2D.
Classe pour conserver le nombre d'éléments dans chaque dimension.
Itérateur sur les classes tableau de Arccore.
Intervalle sur les classes tableau de Arccore.
Classe pour conserver le pas dans chaque dimension.
Vue modifiable d'un tableau d'un type T.
Encapsulation d'un pointeur.
Vue constante d'un tableau de type T.
interval d'itérateurs constant
Vue constante sur une zone mémoire contigue contenant des éléments de taille fixe.
Le layout par défaut est toujours RightLayout.
Classe de base d'une exception.
Exception lorsqu'une erreur fatale est survenue.
Conserve une liste de taille fixe maximale de StackFrame.
Classe pour gérer le profiling d'une seule exécution d'une boucle.
Intervalle d'itération pour une boucle.
Informations d'exécution d'une boucle.
Informations de trace pour une boucle 'for'.
Functor associé à une méthode d'une classe T.
Functor associé à une méthode d'une classe T.
Interface d'un fonctor avec 2 arguments et une valeur de retour.
Interface d'un fonctor avec argument mais sans valeur de retour.
Interface d'un fonctor sur un interval d'itération multi-dimensionnel de dimension RankValue.
Gestion des ressources mémoire pour les CPU et accélérateurs.
Interface d'un fonctor sur un interval d'itération.
Interface d'un service de trace des appels de fonctions.
Interface d'un service de récupération des symboles du code source.
Exception lorsqu'une valeur n'est pas dans un intervalle donné.
interval d'itérateursCette classe gère un couple d'itérateurs autorisant la modification des éléments...
Fonctor sur un interval d'itération instancié via une lambda fonction.
Fonctor sur un interval d'itération instancié via une lambda fonction.
Classe de base de la gestion des indices d'un tableau N-dimension.
Classe de base des vues multi-dimensionnelles.
Vue modifiable sur une zone mémoire contigue contenant des éléments de taille fixe.
Exception lorsqu'une fonction n'est pas implémentée.
Exception lorsqu'une opération n'est pas supportée.
Tableaux multi-dimensionnels pour les types numériques accessibles sur accélérateurs.
Classe de base d'un observable.
Options d'exécution d'une boucle parallèle en multi-thread.
Fonctor sur un interval d'itération.
Référence à une instance.
Accesseur des méthodes de gestion de compteurs de référence.
Implémentation thread-safe d'un compteur de référence.
Encapsulation d'un pointeur avec compteur de référence.
Vue pour un tableau 2D dont la taille est un 'Int32'.
Definition Span2.h:233
Vue d'un tableau d'éléments de type T.
Definition Span.h:801
Vue pour un tableau 2D.
Definition Span2.h:64
Vue pour un tableau 2D dont la taille est un 'Int64'.
Definition Span2.h:301
Vue d'un tableau d'éléments de type T.
Definition Span.h:190
Vue d'un tableau d'éléments de type T.
Definition Span.h:633
Conserve les adresses correspondantes à une pile d'appel. Cette classe est interne et ne dois pas êtr...
Informations sur la pile d'appel des fonctions.
Functor générique utilisant la classe std::function.
Constructeur de chaîne de caractère unicode.
Classe utilisée pour formatter une chaîne de caractères.
Chaîne de caractères unicode.
Wrapper autour d'une classe gérant son propre compteur de référence.
Intervalle sur les classes tableau de Arccore.
Espace de nom pour l'utilisation des accélérateurs.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Span< const Real > RealConstSpan
Vue en lecture seule d'un tableau à une dimension de réels.
Definition UtilsTypes.h:560
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:451
Span< Int64 > Int64Span
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:520
Span< const UChar > UCharConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:550
ArrayView< Byte > ByteArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:447
ArrayView< bool > BoolArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:461
Span< const Int64 > Int64ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:552
ArrayView< UChar > UCharArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:449
constexpr Int32 DynExtent
Constante pour indiquer que la dimension d'un tableau est dynamique.
Definition BaseTypes.h:54
ConstArrayView< Pointer > PointerConstArrayView
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:474
ArrayView< Int16 > Int16ArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:455
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:482
ConstArrayView< bool > BoolConstArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:490
eBasicDataType
Type d'une donnée de base.
ArrayView< Integer > IntegerArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:457
Span< UChar > UCharSpan
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:518
Span< const bool > BoolConstSpan
Vue en lecture seule d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:562
ConstArrayView< Int16 > Int16ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:484
Span< const Pointer > PointerConstSpan
Vue en lecture seule d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:546
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:480
Span< Integer > IntegerSpan
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:526
float Single
Type d'un réel simple précision.
Definition BaseTypes.h:51
Span< bool > BoolSpan
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:530
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:453
Span< const Integer > IntegerConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:558
Span< Pointer > PointerSpan
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:514
ConstArrayView< UChar > UCharConstArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:478
ConstArrayView< Byte > ByteConstArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:476
unsigned char Byte
Type d'un octet.
Definition BaseTypes.h:43
unsigned short UInt16
Type d'un Int16 non signé
Definition BaseTypes.h:49
Span< Int16 > Int16Span
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:524
Span< Real > RealSpan
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:528
Span< Int32 > Int32Span
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:522
Span< const Int16 > Int16ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:556
Span< const Int32 > Int32ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:554
unsigned short UChar
Type d'un caractère unicode.
Definition BaseTypes.h:47
ConstArrayView< Integer > IntegerConstArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:486
signed char SByte
Type d'un octet.
Definition BaseTypes.h:45
ArrayView< Real > RealArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:459
std::int32_t Int32
Type entier signé sur 32 bits.
ArrayView< Pointer > PointerArrayView
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:445
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:488
Espace de nom de Arccore.
Caractéristiques pour gérer les compteurs de référence.
Structure servant à tagger les interfaces/classes qui utilisent un compteur de référence interne.