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

我想使用 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 >> .


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!