Arcane  v3.16.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//! Equivalent C d'un tableau à une dimension de pointeurs
135//! Equivalent C d'un tableau à une dimension de caractères
137//! Equivalent C d'un tableau à une dimension de caractères unicode
139//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
141//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
143//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
145//! Equivalent C d'un tableau à une dimension d'entiers
147//! Equivalent C d'un tableau à une dimension de réels
149//! Equivalent C d'un tableau à une dimension de booléens
151//! Equivalent C d'un tableau à une dimension d'entiers
153
154//! Equivalent C d'un tableau à une dimension de pointeurs
156//! Equivalent C d'un tableau à une dimension de caractères
158//! Equivalent C d'un tableau à une dimension de caractères unicode
160//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
162//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
164//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
166//! Equivalent C d'un tableau à une dimension d'entiers
168//! Equivalent C d'un tableau à une dimension de réels
170//! Equivalent C d'un tableau à une dimension de booléens
172//! Equivalent C d'un tableau à une dimension d'entiers
174
175/*---------------------------------------------------------------------------*/
176/*---------------------------------------------------------------------------*/
177
178//! Equivalent C d'un tableau à une dimension de pointeurs
180//! Equivalent C d'un tableau à une dimension de caractères
182//! Equivalent C d'un tableau à une dimension de caractères unicode
183typedef Span<UChar> UCharSpan;
184//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
185typedef Span<Int64> Int64Span;
186//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
187typedef Span<Int32> Int32Span;
188//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
189typedef Span<Int16> Int16Span;
190//! Equivalent C d'un tableau à une dimension d'entiers
192//! Equivalent C d'un tableau à une dimension de réels
193typedef Span<Real> RealSpan;
194//! Equivalent C d'un tableau à une dimension de booléens
195typedef Span<bool> BoolSpan;
196//! Equivalent C d'un tableau à une dimension d'entiers
198
199//! Equivalent C d'un tableau à une dimension de pointeurs
201//! Equivalent C d'un tableau à une dimension de caractères
203//! Equivalent C d'un tableau à une dimension de caractères unicode
205//! Equivalent C d'un tableau à une dimension d'entiers 64 bits
207//! Equivalent C d'un tableau à une dimension d'entiers 32 bits
209//! Equivalent C d'un tableau à une dimension d'entiers 16 bits
211//! Equivalent C d'un tableau à une dimension d'entiers
213//! Equivalent C d'un tableau à une dimension de réels
215//! Equivalent C d'un tableau à une dimension de booléens
217//! Equivalent C d'un tableau à une dimension d'entiers
219
220/*---------------------------------------------------------------------------*/
221/*---------------------------------------------------------------------------*/
222
223} // End namespace Arccore
224
225/*---------------------------------------------------------------------------*/
226/*---------------------------------------------------------------------------*/
227
228namespace Arccore
229{
230using Arcane::Array2View;
231using Arcane::Array3View;
232using Arcane::Array4View;
233using Arcane::ArrayIterator;
234using Arcane::ArrayView;
235using Arcane::ConstArray2View;
236using Arcane::ConstArray3View;
237using Arcane::ConstArray4View;
238using Arcane::ConstArrayView;
239using Arcane::ConstIterT;
240using Arcane::CoreArray;
242using Arcane::IterT;
243using Arcane::SmallSpan;
244using Arcane::SmallSpan2;
245using Arcane::LargeSpan;
246using Arcane::Span;
247using Arcane::Span2;
248using Arcane::Span2Impl;
249using Arcane::SpanImpl;
250using Arcane::StringImpl;
251using Arcane::StringVector;
252using Arcane::StringBuilder;
253
254using Arcane::TraceInfo;
255using Arcane::StackTrace;
256using Arcane::Exception;
257using Arcane::StackFrame;
258using Arcane::FixedStackFrameArray;
259using Arcane::IStackTraceService;
260using Arcane::CheckedPointer;
261using Arcane::ReferenceCounter;
262using Arcane::ReferenceCounterImpl;
263using Arcane::RefTraits;
264using Arcane::Ref;
265using Arcane::ArgumentException;
266using Arcane::IndexOutOfRangeException;
267using Arcane::FatalErrorException;
268using Arcane::NotSupportedException;
269using Arcane::NotImplementedException;
270using Arcane::TimeoutException;
271
272using Arcane::IFunctor;
273using Arcane::IFunctorWithArgumentT;
274using Arcane::IFunctorWithArgAndReturn2;
275using Arcane::FunctorT;
276using Arcane::FunctorWithArgumentT;
277using Arcane::StdFunctorWithArgumentT;
278
279using Arcane::Byte;
280using Arcane::SByte;
281using Arcane::Single;
282using Arcane::UChar;
283using Arcane::UInt16;
284
295
306
308using Arcane::ByteSpan;
314using Arcane::RealSpan;
315using Arcane::BoolSpan;
317
328
330
331// Ces classes sont internes à Arccore/Arcane
332using Arcane::BasicTranscoder;
333using Arcane::ArrayRange;
334}
335
336/*---------------------------------------------------------------------------*/
337/*---------------------------------------------------------------------------*/
338
339#endif
Exception lorsqu'un argument est invalide.
Vue modifiable pour un tableau 2D.
Itérateur sur les classes tableau de Arccore.
Vue modifiable d'un tableau d'un type T.
Encapsulation d'un pointeur.
Vue constante d'un tableau de type T.
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.
Exception lorsqu'une valeur n'est pas dans un intervalle donné.
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:673
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:92
Vue d'un tableau d'éléments de type T.
Definition Span.h:513
Constructeur de chaîne de caractère unicode.
Liste de 'String'.
Chaîne de caractères unicode.
Intervalle sur les classes tableau de Arccore.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Vue d'un tableau d'éléments de type T.
Definition Span.h:513
-*- 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:647
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:538
Span< Int64 > Int64Span
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:607
Span< const UChar > UCharConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:637
ArrayView< Byte > ByteArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:534
ArrayView< bool > BoolArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:548
Span< const Int64 > Int64ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:639
Span< std::byte > ByteSpan
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:603
ArrayView< UChar > UCharArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:536
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:561
ArrayView< Int16 > Int16ArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:542
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
ConstArrayView< bool > BoolConstArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:577
eBasicDataType
Type d'une donnée de base.
ArrayView< Integer > IntegerArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:544
Span< UChar > UCharSpan
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:605
Span< const bool > BoolConstSpan
Vue en lecture seule d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:649
ConstArrayView< Int16 > Int16ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:571
Span< const Pointer > PointerConstSpan
Vue en lecture seule d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:633
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:567
Span< Integer > IntegerSpan
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:613
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:617
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:540
Span< const Integer > IntegerConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:645
Span< const std::byte > ByteConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:635
Span< Pointer > PointerSpan
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:601
ConstArrayView< UChar > UCharConstArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:565
ConstArrayView< Byte > ByteConstArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:563
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:611
Span< Real > RealSpan
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:615
Span< Int32 > Int32Span
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:609
Span< const Int16 > Int16ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:643
Span< const Int32 > Int32ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:641
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:573
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:546
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:532
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:575
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.