diff options
Diffstat (limited to 'include/cxxopts.hpp')
-rw-r--r-- | include/cxxopts.hpp | 62 |
1 files changed, 8 insertions, 54 deletions
diff --git a/include/cxxopts.hpp b/include/cxxopts.hpp index 1862c8b..ed7c759 100644 --- a/include/cxxopts.hpp +++ b/include/cxxopts.hpp @@ -921,60 +921,12 @@ namespace cxxopts } } - inline - void - parse_value(const std::string& text, uint8_t& value) - { - integer_parser(text, value); - } - - inline - void - parse_value(const std::string& text, int8_t& value) - { - integer_parser(text, value); - } - - inline - void - parse_value(const std::string& text, uint16_t& value) - { - integer_parser(text, value); - } - - inline - void - parse_value(const std::string& text, int16_t& value) - { - integer_parser(text, value); - } - - inline - void - parse_value(const std::string& text, uint32_t& value) - { - integer_parser(text, value); - } - - inline - void - parse_value(const std::string& text, int32_t& value) + template <typename T, + typename std::enable_if<std::is_integral<T>::value>::type* = nullptr + > + void parse_value(const std::string& text, T& value) { - integer_parser(text, value); - } - - inline - void - parse_value(const std::string& text, uint64_t& value) - { - integer_parser(text, value); - } - - inline - void - parse_value(const std::string& text, int64_t& value) - { - integer_parser(text, value); + integer_parser(text, value); } inline @@ -1006,7 +958,9 @@ namespace cxxopts // The fallback parser. It uses the stringstream parser to parse all types // that have not been overloaded explicitly. It has to be placed in the // source code before all other more specialized templates. - template <typename T> + template <typename T, + typename std::enable_if<!std::is_integral<T>::value>::type* = nullptr + > void parse_value(const std::string& text, T& value) { stringstream_parser(text, value); |