在我的程序中,我有一个对的列表 - 名称和大小。
我想使用 boost::program_options
从命令行界面构建此列表.
它应该是这样的:
myProg --value("John",10) --value("Steve",14) --value("Marge",28)
我还需要这样安排 - 史蒂夫将在名单上的约翰和玛吉之前。用
boost::program_options
可以吗? ?
此 CLI 语法只是获取列表的一个想法。如果你有更好的,请告诉。
请您参考如下方法:
您只需定义您的选项
("value", value<vector<YourPairType>>()->composing(), "description")
和适当的
istream& operator >> (istream& in, YourPairType& pr) { /* ... */ }
读取单个
YourPairType
来自
in
在您的
("John",10)
格式。解析的选项将按照它们在命令行中出现的顺序存储。
如果您使用 custom validators,您可以获得更大的灵活性。而不是
operator >>
.