From 843e4eefb0265a446f8576275fa22bbc1f395040 Mon Sep 17 00:00:00 2001 From: Sean Robinson Date: Mon, 28 Feb 2022 13:20:08 -0700 Subject: [PATCH] Move ArgumentParser::parse_args_validate logic into ::parse_args This code was previously moved from ::parse_args to its own method, but has since been simplified. Moving the actual work to Argument::validate in commit 603e87ae6 leaves a single loop that fits back into ::parse_args. Signed-off-by: Sean Robinson --- include/argparse/argparse.hpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/include/argparse/argparse.hpp b/include/argparse/argparse.hpp index 8395675..f54ec44 100644 --- a/include/argparse/argparse.hpp +++ b/include/argparse/argparse.hpp @@ -958,7 +958,10 @@ public: */ void parse_args(const std::vector &arguments) { parse_args_internal(arguments); - parse_args_validate(); + // Check if all arguments are parsed + for (const auto& [unused, argument] : m_argument_map) { + argument->validate(); + } } /* Main entry point for parsing command-line arguments using this @@ -1134,16 +1137,6 @@ private: m_is_parsed = true; } - /* - * @throws std::runtime_error in case of any invalid argument - */ - void parse_args_validate() { - // Check if all arguments are parsed - for (const auto& [unused, argument] : m_argument_map) { - argument->validate(); - } - } - // Used by print_help. std::size_t get_length_of_longest_argument() const { if (m_argument_map.empty()) {