我之前用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的命令行解析器做到这个?