libstdc++: Fix build for targets without FP std::from_chars [PR114633]
If the faster std::from_chars is not supported for floating-point types then just extract the value from the stream using operator>>. This fixes a build error for targets where __cpp_lib_to_chars is not defined. libstdc++-v3/ChangeLog: PR libstdc++/114633 * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use stream extraction if std::from_chars is not available.
This commit is contained in:
parent
639215c5eb
commit
92b38ec84f
1 changed files with 4 additions and 0 deletions
|
@ -3685,6 +3685,7 @@ namespace __detail
|
|||
if (!__is_failed(__err)) [[likely]]
|
||||
{
|
||||
long double __val{};
|
||||
#if __cpp_lib_to_chars
|
||||
string __str = std::move(__buf).str();
|
||||
auto __first = __str.data();
|
||||
auto __last = __first + __str.size();
|
||||
|
@ -3694,6 +3695,9 @@ namespace __detail
|
|||
if ((bool)ec || ptr != __last) [[unlikely]]
|
||||
__err |= ios_base::failbit;
|
||||
else
|
||||
#else
|
||||
if (__buf >> __val)
|
||||
#endif
|
||||
{
|
||||
duration<long double> __fs(__val);
|
||||
if constexpr (__is_floating)
|
||||
|
|
Loading…
Add table
Reference in a new issue