使用boost :: program_options

时间:2010-12-23 12:16:15

标签: command-line boost command-line-interface boost-program-options

在我的程序中,我有一对配对列表 - 名称和大小。

我想使用boost::program_options从命令行界面构建此列表。

看起来应该是这样的:

  

myProg --value(“John”,10) - value(“Steve”,14)--value(“Marge”,28)

我也需要这样做 - 史蒂夫将在约翰之后和Marge之前的名单上。这可能是boost::program_options吗?

此CLI语法只是获取列表的一个想法。如果你有一个更好的,请告诉你。

2 个答案:

答案 0 :(得分:4)

您只需定义选项

即可
("value", value<vector<YourPairType>>()->composing(), "description")

和适当的

istream& operator >> (istream& in, YourPairType& pr) { /* ... */ }

YourPairType格式从in读取单个("John",10)。解析的选项将按照它们在命令行中出现的顺序存储。

如果您使用custom validators代替operator >>,则可以获得更大的灵活性。

答案 1 :(得分:0)

每行包含一对值的文件可以是一个选项。该文件可以是简单的ascii文本文件,也可以用于xml文件 - 请参阅boost serialization