Tôi đang sử dụng tăng :: program_options như thế này:Có thể tăng :: program_options Sử dụng dấu phân cách khác "-"?
namespace po = boost::program_options;
po::options_description desc("Options");
desc.add_options()
("help,?", "Show Options")
("capture-file,I", po::value<string>(), "Capture File")
("capture-format,F", po::value<string>()->default_value("pcap"), "Capture File Format")
("output-file,O", po::value<string>()->default_value("CONOUT$"), "Output File");
po::variables_map vm;
po::store(po::command_line_parser(ac, av).options(desc)./*positional(pd).*/run(), vm);
Nếu tôi vượt qua các tham số dòng lệnh -I hithere
nó hoạt động, nhưng nó tôi vượt qua /I hithere
tăng ném một boost::bad_any_cast
với một what()
của "Không chuyển sang sử dụng tăng :: any_cast ".
Có thể sử dụng program_options để phân tích cú pháp /
-delimitted hoặc -
tùy chọn được kết nối không? Câu hỏi bổ sung, nó có thể được cấu hình để /
và -
đặt cùng một tùy chọn, nhưng là đối lập nhị phân của nhau không? Ví dụ: /verbose
có thể có nghĩa là ghi nhật ký chi tiết trong khi -verbose
có thể có nghĩa là ghi nhật ký chi tiết hơn.
Có lẽ bạn đang đúng. Có thể xác định dấu phân cách nào được sử dụng sau khi gọi đến 'lưu trữ' không? –
Trừ khi bạn đang sử dụng trình phân tích cú pháp bổ sung của riêng mình, tôi không nghĩ vậy. –
OK, đó là một câu hỏi tiền thưởng. :) –