Common/StringUtil: Add a FromChars std::optional wrapper

This commit is contained in:
Connor McLaughlin 2020-02-28 17:00:05 +10:00
parent 86094b8080
commit da0059fb21
1 changed files with 15 additions and 1 deletions

View File

@ -1,7 +1,9 @@
#pragma once
#include <cstddef>
#include <charconv>
#include <cstdarg>
#include <cstddef>
#include <cstring>
#include <optional>
#include <string>
namespace StringUtil {
@ -26,4 +28,16 @@ inline int Strcasecmp(const char* s1, const char* s2)
#endif
}
/// Wrapper arond std::from_chars
template<typename T>
std::optional<T> FromChars(const std::string_view str)
{
T value;
const std::from_chars_result result = std::from_chars(str.data(), str.data() + str.length(), value);
if (result.ec != std::errc())
return std::nullopt;
return value;
}
} // namespace StringUtil