Add parsing for floats and doubles

This commit is contained in:
CommanderRedYT
2023-09-28 11:23:22 +02:00
parent d92d4d113c
commit 2864a39c10

View File

@ -94,4 +94,20 @@ template<> inline std::expected<uint64_t, std::string> fromString<uint64_t>(std:
return std::unexpected(fmt::format("invalid uint64_t {}", str)); return std::unexpected(fmt::format("invalid uint64_t {}", str));
return val; return val;
} }
template<> inline std::expected<float, std::string> fromString<float>(std::string_view str)
{
float val;
if (std::sscanf(str.data(), "%f", &val) != 1)
return std::unexpected(fmt::format("invalid float {}", str));
return val;
}
template<> inline std::expected<double, std::string> fromString<double>(std::string_view str)
{
double val;
if (std::sscanf(str.data(), "%lf", &val) != 1)
return std::unexpected(fmt::format("invalid double {}", str));
return val;
}
} // namespace cpputils } // namespace cpputils