在我的程序中,我有一对配对列表 - 名称和大小。
我想使用boost::program_options
从命令行界面构建此列表。
看起来应该是这样的:
myProg --value(“John”,10) - value(“Steve”,14)--value(“Marge”,28)
我也需要这样做 - 史蒂夫将在约翰之后和Marge之前的名单上。这可能是boost::program_options
吗?
此CLI语法只是获取列表的一个想法。如果你有一个更好的,请告诉你。
答案 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。