From 43f4629be510c4e2c45ba4b7c469214b7bf69a7e Mon Sep 17 00:00:00 2001 From: bufferbase <65209648+bufferbase@users.noreply.github.com> Date: Thu, 4 Jun 2020 17:06:20 -0700 Subject: [PATCH] Fix incorrect message when mUsedName is empty Previously, it printed ": expected 1 argument(s). 0 provided." when one positional argument is defined but nothing is provided. Now it prints "1 argument(s) expected. 0 provided." --- include/argparse/argparse.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/argparse/argparse.hpp b/include/argparse/argparse.hpp index 74f0f99..e305459 100644 --- a/include/argparse/argparse.hpp +++ b/include/argparse/argparse.hpp @@ -452,8 +452,10 @@ public: } else { if (mValues.size() != expected && !mDefaultValue.has_value()) { std::stringstream stream; - stream << mUsedName << ": expected " << *expected << " argument(s). " - << mValues.size() << " provided."; + if (!mUsedName.empty()) + stream << mUsedName << ": "; + stream << *expected << " argument(s) expected. " << mValues.size() + << " provided."; throw std::runtime_error(stream.str()); } }