boost的命令行解析器的问题

jiandingzhe 2013-07-24 08:24:35
我之前用glib的命令行解析器,但是glib的解析器不能支持如下这个功能:
--option foo bar

一个key,多个value。于是,我转向使用boost的解析器。、

但是,如何用boost的解析器实现自定义的value类型?我想让用户赋予一个实际上是enum的值,比如:

typedef enum
{
FORMAT_A,
FORMAT_B
} FormatEnum;

然后,当用户说“--format a”,就把一个变量设成FORMAT_A。

如果使用glib,这非常简单:glib允许提供一个自定函数,当它发现了你指定的key的时候,就把key和后面跟的字符串value传递给那个函数。这样就允许你cast字符串值到任意的类型。我如何用boost的命令行解析器做到这个?
...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kaile 2013-07-24
  • 打赏
  • 举报
回复
用boost program_options http://www.boost.org/doc/libs/1_54_0/doc/html/program_options.html
taodm 2013-07-24
  • 打赏
  • 举报
回复
boost有正则表达式,比用这个参数解释器方便多了吧。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧