@@ -153,7 +153,8 @@ _getDoubleValue(double& v, StringView s)
153
153
}
154
154
#endif
155
155
char * ptr2 = nullptr ;
156
- v = ::strtod (ptr, &ptr2);
156
+ if (ptr)
157
+ v = ::strtod (ptr, &ptr2);
157
158
return (ptr2 - ptr);
158
159
}
159
160
@@ -390,6 +391,28 @@ builtInGetValue(Real2& v, StringView s)
390
391
template <> ARCANE_UTILS_EXPORT bool
391
392
builtInGetValue (Real3& v, StringView s)
392
393
{
394
+ if (global_use_same_value_convert_for_all_real) {
395
+ // ATTENTION: Pour l'instant ce nouveau mécanisme ne tolère pas
396
+ // les espaces en début de \a s.
397
+ v = {};
398
+ const bool is_verbose = global_value_convert_verbosity > 0 ;
399
+ if (is_verbose)
400
+ std::cout << " Try Read Real3: '" << s << " '\n " ;
401
+ Int64 p = StringViewToDoubleConverter::_getDoubleValue (v.x , s);
402
+ if (p == (-1 ) || (p == s.size ()))
403
+ return true ;
404
+ s = _removeLeadingSpaces (s, p);
405
+ if (is_verbose)
406
+ std::cout << " VX=" << v.x << " remaining_s='" << s << " '\n " ;
407
+ p = StringViewToDoubleConverter::_getDoubleValue (v.y , s);
408
+ if (p == (-1 ) || (p == s.size ()))
409
+ return true ;
410
+ s = _removeLeadingSpaces (s, p);
411
+ if (is_verbose)
412
+ std::cout << " VY=" << v.x << " remaining_s='" << s << " '\n " ;
413
+ p = StringViewToDoubleConverter::_getDoubleValue (v.z , s);
414
+ return (p == (-1 ) || (p != s.size ()));
415
+ }
393
416
return impl::builtInGetValueGeneric (v, s);
394
417
}
395
418
0 commit comments