Arcane  v4.1.0.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-2025 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-2025 */
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
17#include "arccore/base/ArccoreGlobal.h"
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 <class DataType> class CoreArray;
65template <typename T, typename SizeType, SizeType Extent = DynExtent, SizeType MinValue = 0> class SpanImpl;
66template <typename T, Int64 Extent = DynExtent, Int64 MinValue = 0> class Span;
67template <typename T, Int32 Extent = DynExtent, Int32 MinValue = 0> class SmallSpan;
68template <typename T, Int64 Extent = DynExtent, Int64 MinValue = 0> using LargeSpan = Span<T, Extent, MinValue>;
69template <typename T, typename SizeType, SizeType Extent1 = DynExtent, SizeType Extent2 = DynExtent> class Span2Impl;
70template <typename T, Int64 Extent1 = DynExtent, Int64 Extent2 = DynExtent> class Span2;
71template <typename T, Int32 Extent1 = DynExtent, Int32 Extent2 = DynExtent> class SmallSpan2;
72template <typename Iterator_>
73class ArrayIterator;
74
75class StringImpl;
76class String;
77class StringVector;
78class StringBuilder;
81
82class TraceInfo;
83class StackTrace;
84class Exception;
85class StackFrame;
88template <typename T>
89class CheckedPointer;
90template <class T>
92template <typename T>
100class TimeoutException;
101enum class eBasicDataType : unsigned char;
102class IFunctor;
103template <typename ArgType>
105template <typename ReturnType, typename Arg1, typename Arg2>
107template <typename T>
108class FunctorT;
109template <typename ClassType, typename ArgType>
111template <typename ArgType>
114template <typename InstanceType, class T = void>
115struct RefTraits;
116template <typename InstanceType, int ImplTagId = RefTraits<InstanceType>::TagId>
117class Ref;
118
119namespace impl
120{
121 template <typename InstanceType>
123}
124
125// Ces classes sont internes à Arccore/Arcane
126template <typename T>
127class ArrayRange;
128class BasicTranscoder;
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133// Ces classes ne sont pas accessibles dans 'utils' mais il est possible
134// d'utiliser des pointeurs sur ces instances.
135// La définition est dans 'arcane_accelerator_core'
136namespace Accelerator
137{
138class Runner;
139class RunQueue;
140}
143
144/*---------------------------------------------------------------------------*/
145/*---------------------------------------------------------------------------*/
146
147class DefaultLayout;
148template<int RankValue> class RightLayoutN;
149template<int RankValue> class LeftLayoutN;
150template<int RankValue> class MDDimType;
152using IMemoryRessourceMng = IMemoryResourceMng;
153template <typename IndexType_ = Int32, Int32... RankSize> class ExtentsV;
154template<class DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
155class MDSpan;
156template<typename DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
157using MDSpanBase ARCCORE_DEPRECATED_REASON("Use 'MDSpan' type instead") = MDSpan<DataType,Extents,LayoutPolicy>;
158template<typename ExtentType> class ArrayBounds;
159
160template<class DataType,typename Extents,typename LayoutType = DefaultLayout >
161class NumArray;
162template<typename DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
163using NumArrayBase ARCCORE_DEPRECATED_REASON("Use 'NumArray' type instead") = NumArray<DataType,Extents,LayoutPolicy>;
164
165template<typename Extents,typename LayoutPolicy> class ArrayExtentsWithOffset;
166template<int RankValue, typename IndexType_ = Int32> class MDIndexBase;
167template<int RankValue, typename IndexType_ = Int32> class MDIndex;
168template<int RankValue, typename IndexType_ = Int32> using ArrayIndexBase = MDIndexBase<RankValue,IndexType_>;
169template<int RankValue, typename IndexType_ = Int32> using ArrayIndex = MDIndex<RankValue,IndexType_>;
170template<int RankValue> using ArrayBoundsIndexBase ARCCORE_DEPRECATED_REASON("Use 'MDIndexBase' type instead") = ArrayIndexBase<RankValue>;
171template<int RankValue> using ArrayBoundsIndex ARCCORE_DEPRECATED_REASON("Use 'MDIndex' type instead") = ArrayIndex<RankValue>;
172template<typename Extents> class ArrayExtentsBase;
173template<typename Extents> class ArrayExtents;
174template<int RankValue> class ArrayStridesBase;
175template<int RankValue> class IMDRangeFunctor;
176template<int RankValue> class ArrayExtentsValueDynamic;
177namespace impl
178{
179template<typename IndexType_, Int32... RankSize> class ArrayExtentsValue;
180}
181
182/*---------------------------------------------------------------------------*/
183/*---------------------------------------------------------------------------*/
184
205
226
227/*---------------------------------------------------------------------------*/
228/*---------------------------------------------------------------------------*/
229
233typedef Span<std::byte> ByteSpan;
235typedef Span<UChar> UCharSpan;
237typedef Span<Int64> Int64Span;
239typedef Span<Int32> Int32Span;
241typedef Span<Int16> Int16Span;
245typedef Span<Real> RealSpan;
247typedef Span<bool> BoolSpan;
250
254typedef Span<const std::byte> ByteConstSpan;
271
272/*---------------------------------------------------------------------------*/
273/*---------------------------------------------------------------------------*/
274
275} // End namespace Arccore
276
277/*---------------------------------------------------------------------------*/
278/*---------------------------------------------------------------------------*/
279
280namespace Arccore
281{
294using Arcane::IterT;
297using Arcane::LargeSpan;
298using Arcane::Span;
299using Arcane::Span2;
301using Arcane::SpanImpl;
305
316using Arcane::Ref;
323
324using Arcane::IFunctor;
327using Arcane::FunctorT;
330
331using Arcane::Byte;
332using Arcane::SByte;
333using Arcane::Single;
334using Arcane::UChar;
335using Arcane::UInt16;
336
347
358
360using Arcane::ByteSpan;
366using Arcane::RealSpan;
367using Arcane::BoolSpan;
369
371using Arcane::ByteConstSpan;
380
382
383// Ces classes sont internes à Arccore/Arcane
386}
387
388/*---------------------------------------------------------------------------*/
389/*---------------------------------------------------------------------------*/
390
391#endif
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Definition core/Runner.h:68
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
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.
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 service de trace des appels de fonctions.
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...
Classe de base de la gestion des indices d'un tableau N-dimension.
Classe de base des vues multi-dimensionnelles.
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.
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.
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Definition core/Runner.h:68
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:775
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:177
Vue d'un tableau d'éléments de type T.
Definition Span.h:613
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.
Liste de 'String'.
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.
-*- 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:589
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:480
Span< Int64 > Int64Span
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:549
Span< const UChar > UCharConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:579
ArrayView< Byte > ByteArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:476
ArrayView< bool > BoolArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:490
Span< const Int64 > Int64ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:581
ArrayView< UChar > UCharArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:478
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:503
ArrayView< Int16 > Int16ArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:484
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:511
ConstArrayView< bool > BoolConstArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:519
eBasicDataType
Type d'une donnée de base.
ArrayView< Integer > IntegerArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:486
Span< UChar > UCharSpan
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:547
Span< const bool > BoolConstSpan
Vue en lecture seule d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:591
ConstArrayView< Int16 > Int16ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:513
Span< const Pointer > PointerConstSpan
Vue en lecture seule d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:575
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:509
Span< Integer > IntegerSpan
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:555
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:559
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:482
Span< const Integer > IntegerConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:587
Span< Pointer > PointerSpan
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:543
ConstArrayView< UChar > UCharConstArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:507
ConstArrayView< Byte > ByteConstArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:505
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:553
Span< Real > RealSpan
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:557
Span< Int32 > Int32Span
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:551
Span< const Int16 > Int16ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:585
Span< const Int32 > Int32ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:583
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:515
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:488
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:474
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:517
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.