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/Real2.h"
21#include "arcane/utils/Real3.h"
22#include "arcane/utils/Real2x2.h"
23#include "arcane/utils/Real3x3.h"
40template<
class T>
inline bool
44 std::istringstream sbuf(s.
localstr());
46 if (sbuf.fail() || sbuf.bad())
57template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(String& v,
const String& s);
58template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
double& v,
const String& s);
59template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
float& v,
const String& s);
60template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
int& v,
const String& s);
61template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned int& v,
const String& s);
62template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
long& v,
const String& s);
63template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
long long& v,
const String& s);
64template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
short& v,
const String& s);
65template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned short& v,
const String& s);
66template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned long& v,
const String& s);
67template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
unsigned long long& v,
const String& s);
68#ifdef ARCANE_REAL_NOT_BUILTIN
69template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(Real& v,
const String& s);
71template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealArray& v,
const String& s);
72template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2Array& v,
const String& s);
73template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3Array& v,
const String& s);
74template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2Array& v,
const String& s);
75template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3Array& v,
const String& s);
76template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16Array& v,
const String& s);
77template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32Array& v,
const String& s);
78template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64Array& v,
const String& s);
79template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolArray& v,
const String& s);
80template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringArray& v,
const String& s);
82template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealSharedArray& v,
const String& s);
83template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2SharedArray& v,
const String& s);
84template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3SharedArray& v,
const String& s);
85template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2SharedArray& v,
const String& s);
86template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3SharedArray& v,
const String& s);
87template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16SharedArray& v,
const String& s);
88template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32SharedArray& v,
const String& s);
89template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64SharedArray& v,
const String& s);
90template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolSharedArray& v,
const String& s);
91template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringSharedArray& v,
const String& s);
93template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
RealUniqueArray& v,
const String& s);
94template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2UniqueArray& v,
const String& s);
95template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3UniqueArray& v,
const String& s);
96template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real2x2UniqueArray& v,
const String& s);
97template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Real3x3UniqueArray& v,
const String& s);
98template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int16UniqueArray& v,
const String& s);
99template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int32UniqueArray& v,
const String& s);
100template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
Int64UniqueArray& v,
const String& s);
101template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
BoolUniqueArray& v,
const String& s);
102template<> ARCANE_UTILS_EXPORT
bool builtInGetValue(
StringUniqueArray& v,
const String& s);
119 if (s==
"false" || s==
"faux" || s==
"0"){
124 if (s==
"true" || s==
"vrai" || s==
"1"){
151ARCANE_UTILS_EXPORT
bool builtInPutValue(
unsigned long long v,String& s);
152#ifdef ARCANE_REAL_NOT_BUILTIN
160ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real2> v,String& s);
161ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real3> v,String& s);
162ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real2x2> v,String& s);
163ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Real3x3> v,String& s);
164ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int16> v,String& s);
165ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int32> v,String& s);
166ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const Int64> v,String& s);
168ARCANE_UTILS_EXPORT
bool builtInPutValue(Span<const String> v,String& s);
174inline const char* typeToName(
bool){
return "boolean"; }
175inline const char* typeToName(Real){
return "real"; }
176inline const char* typeToName(Real2){
return "real2"; }
177inline const char* typeToName(Real3){
return "real3"; }
178inline const char* typeToName(Real2x2){
return "real2x2"; }
179inline const char* typeToName(Real3x3){
return "real3x3"; }
180inline const char* typeToName(
short) {
return "short"; }
181inline const char* typeToName(
unsigned short) {
return "unsigned short"; }
182inline const char* typeToName(
int) {
return "integer"; }
183inline const char* typeToName(
long) {
return "long"; }
184inline const char* typeToName(
unsigned long) {
return "unsigned long"; }
185inline const char* typeToName(
unsigned long long) {
return "unsigned long long"; }
186inline const char* typeToName(
const String&) {
return "string"; }
187inline const char* typeToName(
long long) {
return "long long"; }
188inline const char* typeToName(
unsigned int) {
return "unsigned integer"; }
189inline const char* typeToName(
const StringArray&){
return "string[]"; }
190inline const char* typeToName(
const BoolArray&){
return "boolean[]"; }
191inline const char* typeToName(
const RealArray&){
return "real[]"; }
192inline const char* typeToName(
const Real2Array&){
return "real2[]"; }
193inline const char* typeToName(
const Real3Array&){
return "real3[]"; }
194inline const char* typeToName(
const Real2x2Array&){
return "real2x2[]"; }
195inline const char* typeToName(
const Real3x3Array&){
return "real3x3[]"; }
196inline const char* typeToName(
const Int16Array&) {
return "Int16[]"; }
197inline const char* typeToName(
const Int32Array&) {
return "Int32[]"; }
198inline const char* typeToName(
const Int64Array&) {
return "Int64[]"; }
223 static std::optional<T>
237 ARCANE_UTILS_EXPORT
static std::optional<T>
static std::optional< T > tryParseFromEnvironment(StringView s, bool throw_if_invalid)
Convertit la valeur de la variable d'environnement s en le type T.
static std::optional< T > tryParseIfNotEmpty(StringView s, const T &default_value)
Convertit s en le type T.
static std::optional< T > tryParse(StringView s)
Convertit s en le type T.
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.
const char * localstr() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
bool null() const
Retourne true si la chaîne est nulle.
-*- 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.
UniqueArray< Int64 > Int64UniqueArray
Tableau dynamique à une dimension d'entiers 64 bits.
Array< String > StringArray
Tableau dynamique à une dimension de chaînes de caractères.
Array< bool > BoolArray
Tableau dynamique à une dimension de booléens.
Array< Real3x3 > Real3x3Array
Tableau dynamique à une dimension de tenseurs de rang 3.
Array< Int16 > Int16Array
Tableau dynamique à une dimension d'entiers 16 bits.
UniqueArray< Real3 > Real3UniqueArray
Tableau dynamique à une dimension de vecteurs de rang 3.
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.
SharedArray< String > StringSharedArray
Tableau dynamique à une dimension de chaînes de caractères.
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.
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.
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< Real3 > Real3Array
Tableau dynamique à une dimension de vecteurs de rang 3.