Skip to content

Commit 1f64772

Browse files
committed
[FEATURE] recursive subcommands
1 parent 7534545 commit 1f64772

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

include/sharg/parser.hpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,19 @@ class parser
639639

640640
operations.push_back(std::move(operation));
641641
}
642+
643+
/*!\brief Adds subcommands to the parser.
644+
* \param[in] subcommands A list of subcommands.
645+
*/
646+
void add_subcommands(std::vector<std::string> const & subcommands)
647+
{
648+
auto & parser_subcommands = this->subcommands;
649+
parser_subcommands.insert(parser_subcommands.end(), subcommands.cbegin(), subcommands.cend());
650+
651+
std::ranges::sort(parser_subcommands);
652+
auto const [first, last] = std::ranges::unique(parser_subcommands);
653+
parser_subcommands.erase(first, last);
654+
}
642655
//!\}
643656

644657
/*!\brief Aggregates all parser related meta data (see sharg::parser_meta_data struct).

0 commit comments

Comments
 (0)