unify stod/stoi invalid_argument::what parse

This is a hack to check whether given invalid_argument message belongs
to stoi/stod. It is usually used to catch non-numeric user input where
a number was expected.
This commit is contained in:
Martin Pulec
2024-09-13 12:38:23 +02:00
parent ab25c2d1fc
commit ef0cd7130d
5 changed files with 18 additions and 6 deletions

View File

@@ -1013,8 +1013,7 @@ parse_options(int argc, char *argv[], struct ug_options *opt)
try {
return parse_options_internal(argc, argv, opt);
} catch (logic_error &e) {
if (strcmp(e.what(), "stoi") != 0 &&
strcmp(e.what(), "stod") != 0) {
if (!invalid_arg_is_numeric(e.what())) {
throw;
}
if (dynamic_cast<invalid_argument *>(&e) != nullptr) {