aboutsummaryrefslogtreecommitdiff
path: root/args.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'args.hxx')
-rw-r--r--args.hxx9
1 files changed, 7 insertions, 2 deletions
diff --git a/args.hxx b/args.hxx
index 09c1919..563169c 100644
--- a/args.hxx
+++ b/args.hxx
@@ -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;