command-line - 使用 boost::program_options

标签 command-line boost command-line-interface boost-program-options

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

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

相关文章:

linux - 以最智能的方式处理 CSV 文件

c++ - boost 共享互斥锁检查是否锁定在同一个线程中

php - 如何在 PHP 中为用户输入提供默认值?

c++ - 在 deadline_timer 等待时使用 io_service::post (boost)

c++ - 如何模拟 boost 抛出异常?

PHP CLI - 在一段时间后要求用户输入或执行操作

linux - 通过 CLI 修改目录中的所有文件名 - Ubuntu

android - Phonegap 构建 android - 错误 "Adding the android platform"ENOENT

c# - 如何在控制台应用程序中隐藏输出(不是窗口)?

shell - 如何将文件从一台服务器直接下载到另一台服务器?