44 template <
typename T> T
piece(
size_t num)
const {
45 if (num > this->size())
return {-1};
46 std::string token = this->at(num-1);
49 auto [ptr, ec] = std::from_chars(token.data(), token.data() + token.size(),
result);
50 if (ec == std::errc() && ptr == token.data() + token.size())
return result;
51 if (ec == std::errc::invalid_argument || ptr != token.data() + token.size() )
return {-1};
52 if (ec == std::errc::result_out_of_range)
return {-1};