11std::expected<T, std::string>
parse_int(std::string_view int_string,
const int base)
15 const std::string buffer{int_string};
20 parsed = std::stoll(buffer, &pos, base);
22 catch (
const std::exception &) {
23 return std::unexpected{
"invalid integral string: " + buffer};
26 if (buffer.size() != pos) {
27 return std::unexpected{
"invalid integral string: " + buffer};
30 if (!std::in_range<T>(parsed)) {
31 return std::unexpected{
"integral value out of range: " + buffer};
34 return static_cast<T
>(parsed);
39std::expected<T, std::string>
parse_int(std::string_view int_string)
41 return parse_int<T>(int_string, 0);
std::expected< T, std::string > parse_int(std::string_view int_string, const int base)