diff --git a/include/argparse/argparse.hpp b/include/argparse/argparse.hpp index ec06ba2..0591926 100644 --- a/include/argparse/argparse.hpp +++ b/include/argparse/argparse.hpp @@ -1734,12 +1734,12 @@ public: * @throws std::logic_error in case of an invalid argument name */ Argument &operator[](std::string_view arg_name) const { - auto it = m_argument_map.find(arg_name); + std::string name(arg_name); + auto it = m_argument_map.find(name); if (it != m_argument_map.end()) { return *(it->second); } if (!is_valid_prefix_char(arg_name.front())) { - std::string name(arg_name); const auto legal_prefix_char = get_any_valid_prefix_char(); const auto prefix = std::string(1, legal_prefix_char); @@ -2172,7 +2172,7 @@ private: bool m_is_parsed = false; std::list m_positional_arguments; std::list m_optional_arguments; - std::map m_argument_map; + std::map m_argument_map; std::string m_parser_path; std::list> m_subparsers; std::map m_subparser_map;