diff --git a/include/argparse/argparse.hpp b/include/argparse/argparse.hpp index 5e826c58..a8079193 100644 --- a/include/argparse/argparse.hpp +++ b/include/argparse/argparse.hpp @@ -597,7 +597,7 @@ class Argument { std::string get_inline_usage() const { std::stringstream usage; // Find the longest variant to show in the usage string - std::string longest_name = m_names[0]; + std::string longest_name = m_names.front(); for (const auto &s : m_names) { if (s.size() > longest_name.size()) { longest_name = s; @@ -758,6 +758,8 @@ class Argument { std::stringstream stream; if (!m_used_name.empty()) { stream << m_used_name << ": "; + } else { + stream << m_names.front() << ": "; } if (m_num_args_range.is_exact()) { stream << m_num_args_range.get_min(); @@ -773,7 +775,7 @@ class Argument { void throw_required_arg_not_used_error() const { std::stringstream stream; - stream << m_names[0] << ": required."; + stream << m_names.front() << ": required."; throw std::runtime_error(stream.str()); } @@ -1341,9 +1343,9 @@ class ArgumentParser { // Add any options inline here for (const auto &argument : this->m_optional_arguments) { - if (argument.m_names[0] == "-v") { + if (argument.m_names.front() == "-v") { continue; - } else if (argument.m_names[0] == "-h") { + } else if (argument.m_names.front() == "-h") { stream << " [-h]"; } else { stream << " " << argument.get_inline_usage(); diff --git a/test/test_positional_arguments.cpp b/test/test_positional_arguments.cpp index 08756697..cfee4881 100644 --- a/test/test_positional_arguments.cpp +++ b/test/test_positional_arguments.cpp @@ -18,7 +18,7 @@ TEST_CASE("Missing expected positional argument" * argparse::ArgumentParser program("test"); program.add_argument("input"); REQUIRE_THROWS_WITH_AS(program.parse_args({"test"}), - "1 argument(s) expected. 0 provided.", + "input: 1 argument(s) expected. 0 provided.", std::runtime_error); }