Tôi muốn chuyển nhiều đối số với giá trị dương hoặc âm. Có thể phân tích cú pháp không?BOOST program_options: phân tích cú pháp nhiều danh sách đối số
Hiện nay tôi có một khởi sau:
vector<int> IDlist;
namespace po = boost::program_options;
po::options_description commands("Allowed options");
commands.add_options()
("IDlist",po::value< vector<int> >(&IDlist)->multitoken(), "Which IDs to trace: ex. --IDlist=0 1 200 -2")
("help","print help")
;
và tôi muốn gọi:
./test_ids.x --IDlist=0 1 200 -2
unknown option -2
Vì vậy, program_options giả định rằng tôi đi qua -2 như một tùy chọn khác.
Tôi có thể định cấu hình program_options theo cách có thể chấp nhận giá trị số nguyên âm không?
Cảm ơn Arman.
EDIT: BTW tôi đã phân tích nó bằng cách phân tích cú pháp đơn giản
store(command_line_parser(argc, argv).options(commands).run(), vm);
, nhưng solution là sử dụng các mở rộng một:
parse_command_line
program_options đang tước "", vì vậy "-2" trở thành -2, cũng là \ -2 mất tùy chọn \ -2, dấu ngoặc đơn '-2' vẫn như cũ. – Arman
Vì vậy, các dấu ngoặc kép bị tước bỏ và nó được hiểu là một lựa chọn khác? Đó là lẻ, từ tài liệu [1] nó có vẻ như nó sẽ là con đường để đi. [1] http://www.boost.org/doc/libs/1_42_0/doc/html/program_options/overview.html#id1419101 – kloffy
Tôi cho rằng việc trích dẫn toàn bộ danh sách cũng không hoạt động?(--IDlist = "0 1 200 -2") – kloffy