在我的程序中,我有一个配对列表 - 名称和大小。
我想从命令行界面使用boost::program_options
.
它应该看起来像这样:
myProg --value("John",10) --value("Steve",14) --value("Marge",28)
我还需要这样做 - 史蒂夫将在名单上的约翰之后和玛吉之前。这可能boost::program_options
吗?
此 CLI 语法只是获取列表的一个想法。如果你有更好的,一定要告诉。
在我的程序中,我有一个配对列表 - 名称和大小。
我想从命令行界面使用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)
格式中读取一个。解析的选项将按照它们在命令行中出现的顺序存储。
如果您使用自定义验证器而不是operator >>
.
每行具有一对值的文件可以是一个选项。该文件可以是纯 ascii 文本文件,或者您也可以使用 xml 文件 - 请参阅boost serialization。