关于提升精神的建议

时间:2011-04-11 10:08:36

标签: c++ boost-spirit

我想知道Boost精神图书馆有多好。

我已经开始阅读文档,但它似乎是一个非常庞大的框架,并要求有很多时间来掌握。我真的不想把时间浪费在一个不太可能的框架上。

我想从非常了解它的用户那里得到关于这个框架的一些意见。

2 个答案:

答案 0 :(得分:9)

我的观点肯定是有偏见的,所以请带上一粒盐。

Spirit是一个巨大的框架,允许使用C ++创建非常快速的解析器和生成器。创建的解析器和生成器可以很好地与您自己的数据结构集成。精神需要对其基础有所了解才能有效使用。该文档具有相当的可读性,并以简单的术语解释。有几百个可用的例子,我建议考虑部分文档。理解这些例子是学习如何使用Spirit的不可或缺的一部分。简单的任务很容易解决,更复杂的任务往往需要一些思考和实验才能正确(但这可能并不特定于Spirit)。 Spirit拥有一个活跃的社区,响应迅速且有用的邮件列表,以及一个包含大量附加信息的酷网站。一般来说,如果你遇到困难,可以直接获得帮助。

如果您犯了错误,您需要为增加的编译时间和巨大的编译器模板错误消息付出所有这些好处。但是一旦它编译它通常在现场工作。

答案 1 :(得分:3)

我在寻找关于Spirit的一些信息时遇到的老问题,但我想我会把我的2美分放在这里给未来的读者。

起初我很好地被Spirit的学习曲线吓到了,直到我几乎放弃了。但我很高兴我继续前进。这个解析器的性能很糟糕。我以前使用PCRE用一些简单的正则表达式来解析HTTP头。这是一个相当简单的操作,并且PCRE非常快,所以我没想到在速度上会看到很多改进 - 如果有的话。

男孩惊讶地发现它将性能提高了2000%以上。使用Spirit,我可以在超过1/4秒的时间内解析100,000套HTTP标头。

与使用PCRE的等效代码相比,代码是如此干净和紧凑。我80行PCRE gobbledygoop的原始功能现在是一个可爱的14行精神语法,以及一个将输出直接推送到我的班级结构的Fusion适配器。

难以学习,构建时间可能会非常糟糕,但收益却很棒。

相关问题