Как я могу проверить, является ли опция флагом CLI11? - PullRequest
0 голосов
/ 29 февраля 2020

Я использую библиотеку 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...