在我的程序中,我有一个对的列表 - 名称和大小。
我想使用 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 >>
.
关于command-line - 使用 boost::program_options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518665/