Interpret input starting with 0x as hex numbers in the default parser.
bool and string options remain unaffected.
This commit is contained in:
parent
1be5f10daf
commit
b79f7cae36
@ -404,9 +404,17 @@ namespace cxxopts
|
|||||||
parse_value(const std::string& text, T& value)
|
parse_value(const std::string& text, T& value)
|
||||||
{
|
{
|
||||||
std::istringstream is(text);
|
std::istringstream is(text);
|
||||||
if (!(is >> value))
|
if (text.substr(0, 2) == "0x"){ //Hex number input
|
||||||
{
|
is.seekg(2);
|
||||||
throw argument_incorrect_type(text);
|
if (!(is >> std::hex >> value))
|
||||||
|
{
|
||||||
|
throw argument_incorrect_type(text);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!(is >> value))
|
||||||
|
{
|
||||||
|
throw argument_incorrect_type(text);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is.rdbuf()->in_avail() != 0)
|
if (is.rdbuf()->in_avail() != 0)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user