使用boost :: program_options的不带破折号的参数

时间:2018-11-20 11:52:02

标签: c++ boost boost-program-options

我正在编写现有软件的新实现(无尘室实现,因此无法访问旧代码)以及新的命令行界面,我需要模拟旧界面以与现有工作流程兼容。我会在旧界面和新界面之间进行选择,具体取决于调用可执行文件的名称,例如busybox。

旧的命令行界面实质上使用键值对,但不包含任何'-'或'='字符。例如

# assume your plot is saved to tfile
with open(tfile) as fin:
    read_in = fin.read()
    b64_data = base64.urlsafe_b64encode(read_in.decode('utf-8'))
# now send over the network

我已经在使用boost,所以如果可以的话,我想坚持使用program_options。最简单的方法是简单地分析选项,而无需在参数的开头加上“-”,但我看不到这样做的方法。

使用program_options可行吗?还是最好为此编写一个自定义解析器?

1 个答案:

答案 0 :(得分:0)

您必须为此编写一个自定义解析器,这并不难:) 尤其是当您找到所需的东西时。

boost机制除了键值对的=之外。

如果不想自己编写,请使用现有代码: https://github.com/jarro2783/cxxopts