1
나는 boost 프로그램 옵션을 사용하고 있으며 사용자가 지정한 명령 행 스위치를 기반으로 문자열이나 int로 일부 위치 인수를 해석하려고합니다. 예를 들어부스트 프로그램 옵션 - 조건부로 위치 지정 args를 입력하는 방법?
foo -asint outputfile 10 11 12
foo -asstr outputfile 10 11 12
번째의 제 1 실시 예와의 int 문자열로 (10,11,12) 나열한다.
부스트 포를 사용하여이를 수행하는 방법을 알 수 없습니다. 다음은 내 명령 행 구문 분석 스 니펫입니다.
// basic options group
po::options_description genericOpts("allowed options");
genericOpts.add_options()
("help,h", "display help message/usage")
("asint,i", "interpret arguments ints instead of strings")
;
// hidden options group - don't show in help
po::options_description hiddenOpts("hidden options");
hiddenOpts.add_options()
("filename", po::value<string>()->required(),"output file")
("inputs", po::value<vector<string>>(), "inputs, either strings or ints")
;
po::options_description cmdline_options;
cmdline_options.add(genericOpts).add(hiddenOpts);
po::positional_options_description p;
p.add("filename",1).add("inputs", -1);
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).
options(cmdline_options).positional(p).run(), vm);