12#ifndef ARCANE_UTILS_VALUECONVERT_H
13#define ARCANE_UTILS_VALUECONVERT_H
17#include "arcane/utils/Iostream.h"
18#include "arcane/utils/String.h"
19#include "arcane/utils/Array.h"
20#include "arcane/utils/NumericTypes.h"
21#include "arcane/utils/Convert.h"
41class ARCANE_UTILS_EXPORT StringViewInputStream
42:
private std::streambuf
50 std::istream& stream() {
return m_stream; }
55 std::istream m_stream;
67template <
class T>
inline bool
72 std::istream& sbuf = svis.stream();
74 if (sbuf.fail() || sbuf.bad())
96template <
class T>
inline bool
99 return impl::builtInGetValueGeneric(v, s);
105template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(String& v, StringView s);
106template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
double& v, StringView s);
107template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
float& v, StringView s);
108template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
int& v, StringView s);
109template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned int& v, StringView s);
110template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
long& v, StringView s);
111template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
long long& v, StringView s);
112template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
short& v, StringView s);
113template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned short& v, StringView s);
114template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned long& v, StringView s);
115template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned long long& v, StringView s);
116template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16& v, StringView s);
117template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(BFloat16& v, StringView s);
118template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float128& v, StringView s);
119template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int128& v, StringView s);
120#ifdef ARCANE_REAL_NOT_BUILTIN
121template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real& v, StringView s);
123template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real2& v, StringView s);
124template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real3& v, StringView s);
125template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real2x2& v, StringView s);
126template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real3x3& v, StringView s);
128template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealArray& v, StringView s);
129template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2Array& v, StringView s);
130template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3Array& v, StringView s);
131template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2Array& v, StringView s);
132template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3Array& v, StringView s);
133template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int8Array& v, StringView s);
134template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16Array& v, StringView s);
135template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32Array& v, StringView s);
136template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64Array& v, StringView s);
137template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BFloat16Array& v, StringView s);
138template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16Array& v, StringView s);
139template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float32Array& v, StringView s);
140template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Array<Float128>& v, StringView s);
141template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Array<Int128>& v, StringView s);
142template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolArray& v, StringView s);
143template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringArray& v, StringView s);
145template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealSharedArray& v, StringView s);
146template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2SharedArray& v, StringView s);
147template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3SharedArray& v, StringView s);
148template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2SharedArray& v, StringView s);
149template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3SharedArray& v, StringView s);
150template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int8SharedArray& v, StringView s);
151template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16SharedArray& v, StringView s);
152template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32SharedArray& v, StringView s);
153template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64SharedArray& v, StringView s);
155template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16SharedArray& v, StringView s);
156template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float32SharedArray& v, StringView s);
157template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(SharedArray<Float128>& v, StringView s);
158template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(SharedArray<Int128>& v, StringView s);
159template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolSharedArray& v, StringView s);
160template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringSharedArray& v, StringView s);
162template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealUniqueArray& v, StringView s);
163template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2UniqueArray& v, StringView s);
164template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3UniqueArray& v, StringView s);
165template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2UniqueArray& v, StringView s);
166template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3UniqueArray& v, StringView s);
167template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int8UniqueArray& v, StringView s);
168template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16UniqueArray& v, StringView s);
169template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32UniqueArray& v, StringView s);
170template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64UniqueArray& v, StringView s);
172template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16UniqueArray& v, StringView s);
173template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float32UniqueArray& v, StringView s);
174template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(UniqueArray<Float128>& v, StringView s);
175template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(UniqueArray<Int128>& v, StringView s);
176template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolUniqueArray& v, StringView s);
177template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringUniqueArray& v, StringView s);
194 if (s ==
"false" || s ==
"faux" || s ==
"0") {
199 if (s ==
"true" || s ==
"vrai" || s ==
"1") {
215template <
class T>
inline bool
218 return builtInGetValue(v, s.
view());
222template <>
inline bool
238template <
class T>
inline bool
239builtInGetValue(T& v,
const char* s)
264ARCANE_UTILS_EXPORT
bool builtInPutValue(
unsigned long long v, String& s);
265#ifdef ARCANE_REAL_NOT_BUILTIN
272ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real> v, String& s);
273ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real2> v, String& s);
274ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real3> v, String& s);
275ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real2x2> v, String& s);
276ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real3x3> v, String& s);
277ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int16> v, String& s);
278ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int32> v, String& s);
279ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int64> v, String& s);
280ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const bool> v, String& s);
281ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const String> v, String& s);
287inline const char* typeToName(
bool)
291inline const char* typeToName(
Real)
295inline const char* typeToName(
Real2)
299inline const char* typeToName(
Real3)
303inline const char* typeToName(
Real2x2)
307inline const char* typeToName(
Real3x3)
311inline const char* typeToName(
short)
315inline const char* typeToName(
unsigned short)
317 return "unsigned short";
319inline const char* typeToName(
int)
323inline const char* typeToName(
long)
327inline const char* typeToName(
unsigned long)
329 return "unsigned long";
331inline const char* typeToName(
unsigned long long)
333 return "unsigned long long";
335inline const char* typeToName(
const String&)
339inline const char* typeToName(
long long)
343inline const char* typeToName(
unsigned int)
345 return "unsigned integer";
347inline const char* typeToName(
BFloat16)
351inline const char* typeToName(
Float16)
355inline const char* typeToName(
Float32)
359inline const char* typeToName(
Float128)
363inline const char* typeToName(
Int128)
371inline const char* typeToName(
const BoolArray&)
375inline const char* typeToName(
const RealArray&)
379inline const char* typeToName(
const Real2Array&)
383inline const char* typeToName(
const Real3Array&)
395inline const char* typeToName(
const Int16Array&)
399inline const char* typeToName(
const Int32Array&)
403inline const char* typeToName(
const Int64Array&)
Type flottant sur 128 bits.
Type flottant demi-précision.
Type entier sur 128 bits.
Classe gérant un vecteur de réel de dimension 2.
Classe gérant une matrice de réel de dimension 2x2.
Classe gérant un vecteur de réel de dimension 3.
Classe gérant une matrice de réel de dimension 3x3.
Vue sur une chaîne de caractères UTF-8.
constexpr bool empty() const ARCCORE_NOEXCEPT
Vrai si la chaîne est nulle ou vide.
Chaîne de caractères unicode.
StringView view() const
Retourne une vue sur la chaîne actuelle.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
SharedArray< Int64 > Int64SharedArray
Tableau dynamique à une dimension d'entiers 64 bits.
Array< Real2 > Real2Array
Tableau dynamique à une dimension de vecteurs de rang 2.
UniqueArray< Real2x2 > Real2x2UniqueArray
Tableau dynamique à une dimension de tenseurs de rang 2.
Array< Int64 > Int64Array
Tableau dynamique à une dimension d'entiers 64 bits.
bool builtInPutValue(const String &v, String &s)
Converti la valeur v dans la chaîne s.
SharedArray< Real > RealSharedArray
Tableau dynamique à une dimension de réels.
UniqueArray< Real3x3 > Real3x3UniqueArray
Tableau dynamique à une dimension de tenseurs de rang 3.
SharedArray< Float32 > Float32SharedArray
Tableau dynamique à une dimension de 'float'.
UniqueArray< Float32 > Float32UniqueArray
Tableau dynamique à une dimension de 'float'.
UniqueArray< Int64 > Int64UniqueArray
Tableau dynamique à une dimension d'entiers 64 bits.
UniqueArray< BFloat16 > BFloat16UniqueArray
Tableau dynamique à une dimension de 'bfloat16'.
Array< String > StringArray
Tableau dynamique à une dimension de chaînes de caractères.
UniqueArray< Float16 > Float16UniqueArray
Tableau dynamique à une dimension de 'float16'.
SharedArray< Float16 > Float16SharedArray
Tableau dynamique à une dimension de 'float16'.
Array< bool > BoolArray
Tableau dynamique à une dimension de booléens.
SharedArray< Int8 > Int8SharedArray
Tableau dynamique à une dimension d'entiers 16 bits.
Array< Real3x3 > Real3x3Array
Tableau dynamique à une dimension de tenseurs de rang 3.
Array< Int16 > Int16Array
Tableau dynamique à une dimension d'entiers 16 bits.
Array< Float16 > Float16Array
Tableau dynamique à une dimension de 'float16'.
Array< BFloat16 > BFloat16Array
Tableau dynamique à une dimension de 'bfloat16'.
UniqueArray< Real3 > Real3UniqueArray
Tableau dynamique à une dimension de vecteurs de rang 3.
@ Float16
Donnée de type Float16.
@ Int128
Donnée de type entier 128 bits.
@ Float128
Donnée de type Float128.
SharedArray< Real3 > Real3SharedArray
Tableau dynamique à une dimension de vecteurs de rang 3.
UniqueArray< Int16 > Int16UniqueArray
Tableau dynamique à une dimension d'entiers 16 bits.
UniqueArray< bool > BoolUniqueArray
Tableau dynamique à une dimension de booléens.
Array< Int8 > Int8Array
Tableau dynamique à une dimension d'entiers 8 bits.
SharedArray< String > StringSharedArray
Tableau dynamique à une dimension de chaînes de caractères.
SharedArray< BFloat16 > BFloat16SharedArray
Tableau dynamique à une dimension de 'bfloat16'.
SharedArray< Int32 > Int32SharedArray
Tableau dynamique à une dimension d'entiers 32 bits.
UniqueArray< Int32 > Int32UniqueArray
Tableau dynamique à une dimension d'entiers 32 bits.
SharedArray< Real3x3 > Real3x3SharedArray
Tableau dynamique à une dimension de tenseurs de rang 3.
SharedArray< bool > BoolSharedArray
Tableau dynamique à une dimension de booléens.
UniqueArray< Real > RealUniqueArray
Tableau dynamique à une dimension de réels.
double Real
Type représentant un réel.
Array< Real2x2 > Real2x2Array
Tableau dynamique à une dimension de tenseurs de rang 2.
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
Array< Real > RealArray
Tableau dynamique à une dimension de réels.
UniqueArray< String > StringUniqueArray
Tableau dynamique à une dimension de chaînes de caractères.
float Float32
Type flottant IEEE-753 simple précision.
SharedArray< Int16 > Int16SharedArray
Tableau dynamique à une dimension d'entiers 16 bits.
SharedArray< Real2x2 > Real2x2SharedArray
Tableau dynamique à une dimension de tenseurs de rang 2.
UniqueArray< Real2 > Real2UniqueArray
Tableau dynamique à une dimension de vecteurs de rang 2.
SharedArray< Real2 > Real2SharedArray
Tableau dynamique à une dimension de vecteurs de rang 2.
Array< Float32 > Float32Array
Tableau dynamique à une dimension de 'float'.
UniqueArray< Int8 > Int8UniqueArray
Tableau dynamique à une dimension d'entiers 16 bits.
Array< Real3 > Real3Array
Tableau dynamique à une dimension de vecteurs de rang 3.