diff --git a/include/cxxopts.hpp b/include/cxxopts.hpp index c33c06a..06b1896 100644 --- a/include/cxxopts.hpp +++ b/include/cxxopts.hpp @@ -404,9 +404,17 @@ namespace cxxopts parse_value(const std::string& text, T& value) { std::istringstream is(text); - if (!(is >> value)) - { - throw argument_incorrect_type(text); + if (text.substr(0, 2) == "0x"){ //Hex number input + is.seekg(2); + 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)