From 8e393bdda98dc321340c91030c79ed5def9e382e Mon Sep 17 00:00:00 2001 From: Pranav Srinivas Kumar Date: Sat, 30 Mar 2019 20:00:23 -0400 Subject: [PATCH] Fixed semantics issue b/w optional and positional. Saving positional arguments as a vector in ArgumentParser --- src/argparse.hpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/argparse.hpp b/src/argparse.hpp index bfd3ef0..fbc685f 100644 --- a/src/argparse.hpp +++ b/src/argparse.hpp @@ -46,7 +46,7 @@ struct Argument { std::vector mValues; std::vector mRawValues; size_t mNumArgs; - bool mIsPositional; + bool mIsOptional; Argument() : mNames({}), @@ -55,7 +55,7 @@ struct Argument { mValues({}), mRawValues({}), mNumArgs(1), - mIsPositional(false) {} + mIsOptional(false) {} Argument& help(const std::string& aHelp) { mHelp = aHelp; @@ -148,13 +148,12 @@ class ArgumentParser { tArgument->mNames.push_back(value); add_argument_internal(tArgument, Fargs...); - bool positional = false; for (auto& mName : tArgument->mNames) { if (starts_with(mName, "--") || starts_with(mName, "-")) - tArgument->mIsPositional = true; + tArgument->mIsOptional = true; } - if (tArgument->mIsPositional) + if (!tArgument->mIsOptional) mPositionalArguments.push_back(tArgument); for (auto& mName : tArgument->mNames) {