2013-03-25 32 views
3

我写在C++中,预计将表现得像SVN或systemctl,或者一些其他的工具程序:C++子类参数解析

./a.out SUBCOMMAND [OPTION]... arguments-for-the-subcommand 

一个例子是类似以下内容:

./a.out remove --recursive directory1 directory2 

--recursive选项仅适用于删除子命令。

我目前正在使用Boost.ProgramOptions,并没有在我的尝试运气(我现在唯一的一件事是一个程序,接受参数的GNU getopt方式​​)。尽管我更喜欢经过广泛测试的东西,但如果它是可移植的并且正确地工作,切换到另一个库是没有问题的。

在此先感谢,对不起,如果问题没有得到很好的解释。

最好的问候, 卡里什。

P.S .:不确定这是否有帮助,但我目前正在使用GCC 4.7.2。

+0

问题是什么? – Spook 2013-03-25 12:23:20

+0

而你的问题是? – 2013-03-25 12:24:15

+0

对不起,更新。我忘了写实际的问题,因为我很迷茫,甚至不知道我要求的是什么名字。 – Kalrish 2013-03-25 12:28:08

回答

2

它应该实际上很简单,使用Boost程序选项,因为您可以轻松地构建多个选项列表。

您为每个子命令创建一个,然后检查argv[1]以查看该子命令是什么并使用正确的选项列表。

+0

现在有用,谢谢。但是,是不是还有更优雅的解决方案?也许另一个图书馆我正在看TCLAP。 – Kalrish 2013-03-25 13:18:21