Я хочу сохранить значение командной строки в переменной.Вот мой полный код:
#include <iostream>
#include <boost/program_options.hpp>
int main(int argc, char *argv[]) {
int nselect = 100;
boost::program_options::options_description desc("Allowed options");
desc.add_options()
("help,h", "print usage message")
("nselect,N", boost::program_options::value<int>(&nselect), "number to select");
boost::program_options::variables_map vm;
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
if (vm.count("help")) {
std::cout << desc << "\n";
return 0;
}
std::cout<<"nselect = "<<nselect<<"\n";
return(0);
}
Я компилирую его как g++ a.cpp -lboost_program_options
, а затем запускаю:
$ ./a.out -N 5
nselect = 100
Почему он не сохраняет значение командной строки?
Разрешение :
Вызов notify(vm)
автоматически сохраняет значение в переменной, указанной в переменной.Или можно сопоставить его из vm, как в ответе @ Matthieu-Brucher ниже.