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"
42class ARCANE_UTILS_EXPORT StringViewInputStream
43:
private std::streambuf
51 std::istream& stream() {
return m_stream; }
56 std::istream m_stream;
69template <
class T>
inline bool
74 std::istream& sbuf = svis.stream();
76 if (sbuf.fail() || sbuf.bad())
105template <
class T>
inline bool
108 return impl::builtInGetValueGeneric(v, s);
114template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(String& v, StringView s);
115template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
double& v, StringView s);
116template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
float& v, StringView s);
117template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
int& v, StringView s);
118template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned int& v, StringView s);
119template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
long& v, StringView s);
120template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
long long& v, StringView s);
121template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
short& v, StringView s);
122template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned short& v, StringView s);
123template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned long& v, StringView s);
124template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned long long& v, StringView s);
125template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16& v, StringView s);
126template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(BFloat16& v, StringView s);
127template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float128& v, StringView s);
128template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int128& v, StringView s);
129#ifdef ARCANE_REAL_NOT_BUILTIN
130template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real& v, StringView s);
132template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real2& v, StringView s);
133template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real3& v, StringView s);
134template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real2x2& v, StringView s);
135template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real3x3& v, StringView s);
137template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealArray& v, StringView s);
138template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2Array& v, StringView s);
139template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3Array& v, StringView s);
140template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2Array& v, StringView s);
141template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3Array& v, StringView s);
142template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int8Array& v, StringView s);
143template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16Array& v, StringView s);
144template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32Array& v, StringView s);
145template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64Array& v, StringView s);
146template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BFloat16Array& v, StringView s);
147template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16Array& v, StringView s);
148template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float32Array& v, StringView s);
149template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Array<Float128>& v, StringView s);
150template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(Array<Int128>& v, StringView s);
151template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolArray& v, StringView s);
152template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringArray& v, StringView s);
154template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealSharedArray& v, StringView s);
155template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2SharedArray& v, StringView s);
156template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3SharedArray& v, StringView s);
157template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2SharedArray& v, StringView s);
158template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3SharedArray& v, StringView s);
159template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int8SharedArray& v, StringView s);
160template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16SharedArray& v, StringView s);
161template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32SharedArray& v, StringView s);
162template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64SharedArray& v, StringView s);
164template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16SharedArray& v, StringView s);
165template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float32SharedArray& v, StringView s);
166template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(SharedArray<Float128>& v, StringView s);
167template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(SharedArray<Int128>& v, StringView s);
168template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolSharedArray& v, StringView s);
169template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringSharedArray& v, StringView s);
171template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealUniqueArray& v, StringView s);
172template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2UniqueArray& v, StringView s);
173template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3UniqueArray& v, StringView s);
174template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2UniqueArray& v, StringView s);
175template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3UniqueArray& v, StringView s);
176template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int8UniqueArray& v, StringView s);
177template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16UniqueArray& v, StringView s);
178template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32UniqueArray& v, StringView s);
179template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64UniqueArray& v, StringView s);
181template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float16UniqueArray& v, StringView s);
182template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Float32UniqueArray& v, StringView s);
183template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(UniqueArray<Float128>& v, StringView s);
184template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(UniqueArray<Int128>& v, StringView s);
185template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolUniqueArray& v, StringView s);
186template <> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringUniqueArray& v, StringView s);
204 if (s ==
"false" || s ==
"faux" || s ==
"0") {
209 if (s ==
"true" || s ==
"vrai" || s ==
"1") {
226template <
class T>
inline bool
229 return builtInGetValue(v, s.
view());
233template <>
inline bool
250template <
class T>
inline bool
251builtInGetValue(T& v,
const char* s)
276ARCANE_UTILS_EXPORT
bool builtInPutValue(
unsigned long long v, String& s);
277#ifdef ARCANE_REAL_NOT_BUILTIN
284ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real> v, String& s);
285ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real2> v, String& s);
286ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real3> v, String& s);
287ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real2x2> v, String& s);
288ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real3x3> v, String& s);
289ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int16> v, String& s);
290ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int32> v, String& s);
291ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int64> v, String& s);
292ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const bool> v, String& s);
293ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const String> v, String& s);
299inline const char* typeToName(
bool)
303inline const char* typeToName(
Real)
307inline const char* typeToName(
Real2)
311inline const char* typeToName(
Real3)
315inline const char* typeToName(
Real2x2)
319inline const char* typeToName(
Real3x3)
323inline const char* typeToName(
short)
327inline const char* typeToName(
unsigned short)
329 return "unsigned short";
331inline const char* typeToName(
int)
335inline const char* typeToName(
long)
339inline const char* typeToName(
unsigned long)
341 return "unsigned long";
343inline const char* typeToName(
unsigned long long)
345 return "unsigned long long";
347inline const char* typeToName(
const String&)
351inline const char* typeToName(
long long)
355inline const char* typeToName(
unsigned int)
357 return "unsigned integer";
359inline const char* typeToName(
BFloat16)
363inline const char* typeToName(
Float16)
367inline const char* typeToName(
Float32)
371inline const char* typeToName(
Float128)
375inline const char* typeToName(
Int128)
383inline const char* typeToName(
const BoolArray&)
387inline const char* typeToName(
const RealArray&)
391inline const char* typeToName(
const Real2Array&)
395inline const char* typeToName(
const Real3Array&)
407inline const char* typeToName(
const Int16Array&)
411inline const char* typeToName(
const Int32Array&)
415inline const char* typeToName(
const Int64Array&)
128-bit floating-point type.
Half-precision floating-point type.
Class managing a 2-dimensional real vector.
Class managing a 2x2 matrix of reals.
Class managing a 3-dimensional real vector.
Class managing a 3x3 real matrix.
View of a UTF-8 character string.
constexpr bool empty() const ARCCORE_NOEXCEPT
True if the string is null or empty.
Unicode character string.
StringView view() const
Returns a view of the current string.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
SharedArray< Int64 > Int64SharedArray
Dynamic 1D array of 64-bit integers.
Array< Real2 > Real2Array
Dynamic one-dimensional array of rank 2 vectors.
UniqueArray< Real2x2 > Real2x2UniqueArray
Dynamic 1D array of rank 2 tensors.
Array< Int64 > Int64Array
Dynamic one-dimensional array of 64-bit integers.
bool builtInPutValue(const String &v, String &s)
Converti la valeur v dans la chaîne s.
SharedArray< Real > RealSharedArray
Dynamic 1D array of reals.
UniqueArray< Real3x3 > Real3x3UniqueArray
Dynamic 1D array of rank 3 tensors.
SharedArray< Float32 > Float32SharedArray
Dynamic 1D array of 'float'.
UniqueArray< Float32 > Float32UniqueArray
Dynamic 1D array of 'float'.
UniqueArray< Int64 > Int64UniqueArray
Dynamic 1D array of 64-bit integers.
UniqueArray< BFloat16 > BFloat16UniqueArray
Dynamic 1D array of 'bfloat16'.
Array< String > StringArray
Dynamic one-dimensional array of strings.
UniqueArray< Float16 > Float16UniqueArray
Dynamic 1D array of 'float16'.
SharedArray< Float16 > Float16SharedArray
Dynamic 1D array of 'float16'.
Array< bool > BoolArray
Dynamic one-dimensional array of booleans.
SharedArray< Int8 > Int8SharedArray
Dynamic 1D array of 8-bit integers.
Array< Real3x3 > Real3x3Array
Dynamic one-dimensional array of rank 3 tensors.
Array< Int16 > Int16Array
Dynamic one-dimensional array of 16-bit integers.
Array< Float16 > Float16Array
Dynamic one-dimensional array of 'float16'.
Array< BFloat16 > BFloat16Array
Dynamic one-dimensional array of 'bfloat16'.
UniqueArray< Real3 > Real3UniqueArray
Dynamic 1D array of rank 3 vectors.
@ Float16
Float16 data type.
@ Int128
128-bit integer data type
@ Float128
Float128 data type.
SharedArray< Real3 > Real3SharedArray
Dynamic 1D array of rank 3 vectors.
UniqueArray< Int16 > Int16UniqueArray
Dynamic 1D array of 16-bit integers.
UniqueArray< bool > BoolUniqueArray
Dynamic 1D array of booleans.
Array< Int8 > Int8Array
Dynamic one-dimensional array of 8-bit integers.
SharedArray< String > StringSharedArray
Dynamic 1D array of strings.
SharedArray< BFloat16 > BFloat16SharedArray
Dynamic 1D array of 'bfloat16'.
SharedArray< Int32 > Int32SharedArray
Dynamic 1D array of 32-bit integers.
UniqueArray< Int32 > Int32UniqueArray
Dynamic 1D array of 32-bit integers.
SharedArray< Real3x3 > Real3x3SharedArray
Dynamic 1D array of rank 3 tensors.
SharedArray< bool > BoolSharedArray
Dynamic 1D array of booleans.
UniqueArray< Real > RealUniqueArray
Dynamic 1D array of reals.
double Real
Type representing a real number.
Array< Real2x2 > Real2x2Array
Dynamic one-dimensional array of rank 2 tensors.
Array< Int32 > Int32Array
Dynamic one-dimensional array of 32-bit integers.
Array< Real > RealArray
Dynamic one-dimensional array of reals.
UniqueArray< String > StringUniqueArray
Dynamic 1D array of strings.
float Float32
IEEE-753 single-precision floating-point type.
SharedArray< Int16 > Int16SharedArray
Dynamic 1D array of 16-bit integers.
SharedArray< Real2x2 > Real2x2SharedArray
Dynamic 1D array of rank 2 tensors.
UniqueArray< Real2 > Real2UniqueArray
Dynamic 1D array of rank 2 vectors.
SharedArray< Real2 > Real2SharedArray
Dynamic 1D array of rank 2 vectors.
Array< Float32 > Float32Array
Dynamic one-dimensional array of 'float'.
UniqueArray< Int8 > Int8UniqueArray
Dynamic 1D array of 8-bit integers.
Array< Real3 > Real3Array
Dynamic one-dimensional array of rank 3 vectors.