使用boost :: program_options

n00*_*mer 7 command-line boost command-line-interface boost-program-options

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

我想使用命令行界面构建此列表boost::program_options.

它应该看起来像这样:

myProg --value("John",10) - value("Steve",14)--value("Marge",28)

我也需要这个顺序 - 史蒂夫将在约翰之后和Marge之前的名单上.这有可能boost::program_options吗?

此CLI语法只是获取列表的想法.如果你有一个更好的,请告诉.

ybu*_*ill 5

您只需定义您的选项

("value", value<vector<YourPairType>>()->composing(), "description")
Run Code Online (Sandbox Code Playgroud)

和适当的

istream& operator >> (istream& in, YourPairType& pr) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

读取一个YourPairTypein您的("John",10)格式。解析的选项将按照它们在命令行中出现的顺序存储。

如果您使用自定义验证器而不是operator >>.