Я использую библиотеку CLI11 ( ссылка ) для анализа аргументов командной строки моей программы.
Теперь я хочу напечатать информацию о параметрах моей программы в стандартный вывод. Похоже, что флаги, добавленные через App::add_flag(...)
, также хранятся как опции внутри, но мне нужно различить guish их в моем выводе.
Как определить, какая опция flag?
Вот упрощенный пример:
std::string file, bool myflag;
CLI::App *command = app.add_subcommand("start", "Start the program");
command->add_option("file", file, "This is a file option")->required();
command->add_flag("--myflag", myflag);
print_description(command);
...
std::string print_description(CLI::App* command) {
for (const auto &option : command->get_options()) {
result << R"(<option name=")" << option->get_name() << R"(" description=")" << option->get_description()
<< R"(" type=")";
if (/*option is a flag*/) {
result << "flag";
} else {
result << "option";
}
result << R"("/>)";
}
return result.str();
}