diff options
author | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2019-06-25 21:43:00 +0300 |
---|---|---|
committer | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2019-06-25 21:43:00 +0300 |
commit | 77961bf9a4886bddc3ab567aeb1093943ff816ca (patch) | |
tree | 544ed67d72e5849a65848bf20e3771c4cd0ae27d /args.hxx | |
parent | Merge pull request #73 from zhihaoy/cmake-targets (diff) | |
download | args.hxx-77961bf9a4886bddc3ab567aeb1093943ff816ca.tar.xz |
Fixes #75 : Check istringstream state in ValueParser
Diffstat (limited to 'args.hxx')
-rw-r--r-- | args.hxx | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -3256,9 +3256,14 @@ namespace args operator ()(const std::string &name, const std::string &value, T &destination) { std::istringstream ss(value); - ss >> destination >> std::ws; + bool failed = !(ss >> destination); - if (ss.rdbuf()->in_avail() > 0) + if (!failed) + { + ss >> std::ws; + } + + if (ss.rdbuf()->in_avail() > 0 || failed) { #ifdef ARGS_NOEXCEPT (void)name; |