Arcane  v4.1.0.0
Documentation utilisateur
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
30/*!
31 * \file BaseTypes.h
32 *
33 * \brief Déclarations des types de la composante 'base' de %Arccore.
34 */
35
36template <typename T> class IterT;
37template <typename T> class ConstIterT;
38
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41
42//! Type d'un octet
43typedef unsigned char Byte;
44//! Type d'un octet
45typedef signed char SByte;
46//! Type d'un caractère unicode
47typedef unsigned short UChar;
48//! Type d'un Int16 non signé
49typedef unsigned short UInt16;
50//! Type d'un réel simple précision
51typedef float Single;
52
53//! Constante pour indiquer que la dimension d'un tableau est dynamique
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>
122 class ReferenceCounterWrapper;
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
185//! Equivalent C d'un tableau à une dimension de pointeurs
187//! Equivalent C d'un tableau à une dimension de caractères
189//! Equivalent C d'un tableau à une dimension de caractères unicode
191//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
193//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
195//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
197//! Equivalent C d'un tableau à une dimension d'entiers
199//! Equivalent C d'un tableau à une dimension de réels
201//! Equivalent C d'un tableau à une dimension de booléens
203//! Equivalent C d'un tableau à une dimension d'entiers
205
206//! Equivalent C d'un tableau à une dimension de pointeurs
208//! Equivalent C d'un tableau à une dimension de caractères
210//! Equivalent C d'un tableau à une dimension de caractères unicode
212//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
214//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
216//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
218//! Equivalent C d'un tableau à une dimension d'entiers
220//! Equivalent C d'un tableau à une dimension de réels
222//! Equivalent C d'un tableau à une dimension de booléens
224//! Equivalent C d'un tableau à une dimension d'entiers
226
227/*---------------------------------------------------------------------------*/
228/*---------------------------------------------------------------------------*/
229
230//! Equivalent C d'un tableau à une dimension de pointeurs
232//! Equivalent C d'un tableau à une dimension de caractères
234//! Equivalent C d'un tableau à une dimension de caractères unicode
235typedef Span<UChar> UCharSpan;
236//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
237typedef Span<Int64> Int64Span;
238//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
239typedef Span<Int32> Int32Span;
240//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
241typedef Span<Int16> Int16Span;
242//! Equivalent C d'un tableau à une dimension d'entiers
244//! Equivalent C d'un tableau à une dimension de réels
245typedef Span<Real> RealSpan;
246//! Equivalent C d'un tableau à une dimension de booléens
247typedef Span<bool> BoolSpan;
248//! Equivalent C d'un tableau à une dimension d'entiers
250
251//! Equivalent C d'un tableau à une dimension de pointeurs
253//! Equivalent C d'un tableau à une dimension de caractères
255//! Equivalent C d'un tableau à une dimension de caractères unicode
257//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
259//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
261//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
263//! Equivalent C d'un tableau à une dimension d'entiers
265//! Equivalent C d'un tableau à une dimension de réels
267//! Equivalent C d'un tableau à une dimension de booléens
269//! Equivalent C d'un tableau à une dimension d'entiers
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;
302using Arcane::StringImpl;
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
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.
Le layout par défaut est toujours RightLayout.
Classe de base d'une exception.
Exception lorsqu'une erreur fatale est survenue.
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.
Exception lorsqu'une valeur n'est pas dans un intervalle donné.
Classe de base de la gestion des indices d'un tableau N-dimension.
Classe de base des vues multi-dimensionnelles.
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
Constructeur de chaîne de caractère unicode.
Liste de 'String'.
Chaîne de caractères unicode.
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
Span< std::byte > ByteSpan
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:545
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< const std::byte > ByteConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:577
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.