diff --git a/include/sharg/parser.hpp b/include/sharg/parser.hpp index be1b753d..17b7d2f5 100644 --- a/include/sharg/parser.hpp +++ b/include/sharg/parser.hpp @@ -639,6 +639,19 @@ class parser operations.push_back(std::move(operation)); } + + /*!\brief Adds subcommands to the parser. + * \param[in] subcommands A list of subcommands. + */ + void add_subcommands(std::vector const & subcommands) + { + auto & parser_subcommands = this->subcommands; + parser_subcommands.insert(parser_subcommands.end(), subcommands.cbegin(), subcommands.cend()); + + std::ranges::sort(parser_subcommands); + auto const [first, last] = std::ranges::unique(parser_subcommands); + parser_subcommands.erase(first, last); + } //!\} /*!\brief Aggregates all parser related meta data (see sharg::parser_meta_data struct).