Fix parsing half-floats on non-clang

This commit is contained in:
Nikita Lisitsa 2026-01-07 14:47:49 +03:00
parent 1dc60011d7
commit 4def0b096d

View file

@ -57,7 +57,11 @@ template <typename T>
else
value = std::strtoull(str.data(), nullptr, 10);
#else
auto result = std::from_chars(str.data(), str.data() + str.size(), value);
std::from_chars_result result;
if constexpr (std::is_same_v<T, ::pslang::types::half_float>)
result = std::from_chars(str.data(), str.data() + str.size(), value.repr);
else
result = std::from_chars(str.data(), str.data() + str.size(), value);
if (result.ec != std::errc())
throw std::system_error(std::make_error_code(result.ec));
#endif