Вот полосатый вниз версия одного из примеров в повышение :: program_options:Проблема с описанием вариантов подталкивание программы
#include <boost/program_options.hpp>
namespace po = boost::program_options;
#include <iostream>
#include <iterator>
using namespace std;
int main(int argc, char *argv[ ])
{
try {
int opt;
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message")
("optimization", po::value<int>(&opt)->default_value(10), "optimization level")
("verbose", po::value<int>()->implicit_value(1), "enable verbosity (optionally specify level)" )
;
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(desc).run(), vm);
po::notify(vm);
if (vm.count("help"))
{
cout << "Usage: options_description [options]\n";
cout << desc;
return 0;
}
if (vm.count("verbose"))
{
cout << "Verbosity enabled. Level is " << vm[ "verbose" ].as<int>() << "\n";
}
}
catch(std::exception& e)
{
cout << e.what() << "\n";
return 1;
}
return 0;
}
Когда я бегу это с --help я получаю этот выход:
Usage: options_description [options]
Allowed options:
--help produce help message
--optimization arg (=10) optimization level
--verbose [=arg(=1)] enable verbosity (optionally specify level)
Есть ли способ избавиться от столбца = в столбце параметров или, возможно, просто отбросить отображение дефолтных и неявных аргументов?
, так что вы хотите значения по умолчанию (или неявные), но вы не хотите видеть, что указано в тексте справки? –
@ Сэм, который является правильным –
Что-то еще - это описание каждого пользователя, потому что я видел, что выходы из учебников не имеют всего этого в только аргументе? –