Я пишу приложение C++ A, которое вызывает другую заявку B в фоновом режиме. Некоторые параметры командной строки для приложения A, но некоторые из них должны быть перенаправлены на B. Разделение должно работать с двойной тире --
.Boost.Program_options: параметры вперед после '-' в другую программу
Например:
./my_executable_A -a --long_b some_file -- -c --long_d
должен разобрать {"-a", "--long_b", "some_file"}
в применении и вперед {"-c", "--long_d"}
к применению B, когда его называют .
Я думал, что имеет смысл использовать boost::program_options
для выполнения этой задачи, но я не нашел эту функцию. Это возможно?
Примечание: Прецедент является libfuse
файловой системы, где некоторые из вариантов должны быть переданы функции fuse_main()
.
Было некоторое время назад, что я испортил библиотеку опций программы Boost, но, похоже, я помню, что был флаг или что-то, чтобы попросить библиотеку прекратить синтаксический анализ, когда он ударил '' - '', и оставьте остальные аргументы в 'argc' /' argv'. –
Возможно, вы захотите ознакомиться с этим билетом в буфере отслеживания ошибок Boost: https://svn.boost.org/trac/boost/ticket/6991 - также подумайте, хотите ли вы вообще изменить свой синтаксис командной строки или полностью установлен в камне? –
Если есть еще один короткий синтаксис, я бы хотел переключиться на него. Преимущество этого заключается в том, что оно используется другими файловыми системами libfuse и поэтому известно. Однако они выполняют ручную разборку. – Heinzi