From 9ffb0e9d8e900b372cd8e27696875b8eb191b8ff Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 7 Oct 2025 19:37:12 +0200 Subject: [PATCH 1/3] Change conditions order --- include/argparse.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 81442dd..ced44e2 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1255,13 +1255,13 @@ namespace argparse { case zero_or_one: { - if (tokens.empty()) + if (!tokens.empty()) { - m_value = get_const(); + m_value = consume_token(tokens.front()); } else { - m_value = consume_token(tokens.front()); + m_value = get_const(); } break; } From 876880bee2e28a550237fe55f73386a3529cef16 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 7 Oct 2025 19:43:43 +0200 Subject: [PATCH 2/3] Change conditions order --- include/argparse.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index ced44e2..1cfaee5 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1273,11 +1273,14 @@ namespace argparse case one_or_more: { auto const values = consume_tokens(tokens); - if (values.empty()) + if (!values.empty()) + { + m_value = get_transformed(values); + } + else { throw parsing_error(std::format("argument {}: expected at least one argument", get_joined_names())); } - m_value = get_transformed(values); break; } } From d1f511b1dd90faa238ea7b2358914b1a989e0b75 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Tue, 7 Oct 2025 19:49:12 +0200 Subject: [PATCH 3/3] Use if statement with initialiser --- include/argparse.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 1cfaee5..7460cfa 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1272,8 +1272,7 @@ namespace argparse } case one_or_more: { - auto const values = consume_tokens(tokens); - if (!values.empty()) + if (auto const values = consume_tokens(tokens); !values.empty()) { m_value = get_transformed(values); }