0

Boost Spirit Qi 解析器语法非常棒,我一直将它们用于小事情。但是,有时我希望能够编写单独的语法。

通过#include 适当的语法并将它们拼接在一起,这很容易在单个编译中完成。然而,这使得编译时间开始飞速发展。还有其他缺点。

有没有办法编写单独编译的语法?换句话说,我想在头文件中定义语法的接口,在单独的编译单元中实现模板和特定迭代器的实例化,然后能够在没有完整模板的情况下使用另一个语法编译时可见的定义。换句话说,我希望能够在规则中间接使用语法。

这样的事情可能吗?如果是的话,一个人会怎么做?

4

1 回答 1

1

我不认为这是特定于 Spirit 的东西,而是 C++ 101。如果您需要编写多个语法,则需要包含相应的头文件,定义您在编写时要使用的语法。您可能想要做的是将语法构造函数的编译分离到一个单独的编译单元中。请参阅 Spirit 计算器示例(mini_c 和其他)以了解如何做到这一点。这将使您的编译时间保持不变。

于 2011-06-26T09:09:47.953 回答