From da9210d41e170c243e438031783f6efc83caee33 Mon Sep 17 00:00:00 2001 From: Jarryd Beck Date: Tue, 8 Aug 2017 08:12:31 +1000 Subject: [PATCH] fix multiple definitions Fixes #61. Commit 5e9f8225982e9711b548c886fe6b477cdefd0fd4 introduced duplicate definitions across separate translation units. --- include/cxxopts.hpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/include/cxxopts.hpp b/include/cxxopts.hpp index 30a7432..72cf54e 100644 --- a/include/cxxopts.hpp +++ b/include/cxxopts.hpp @@ -412,8 +412,11 @@ namespace cxxopts namespace values { - std::basic_regex integer_pattern - ("(-)?(0x)?([1-9a-zA-Z][0-9a-zA-Z]*)|(0)"); + namespace + { + std::basic_regex integer_pattern + ("(-)?(0x)?([1-9a-zA-Z][0-9a-zA-Z]*)|(0)"); + } namespace detail { @@ -530,48 +533,56 @@ 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) { 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) {