有没有办法组成单独编译的boost :: spirit :: qi语法?

时间:2011-06-26 06:07:39

标签: compilation boost-spirit boost-spirit-qi

Boost Spirit Qi解析器语法很精彩,我一直用它来做小事。但是,有时候我希望能够编写单独的语法。

通过#including相应的语法并将它们拼接在一起,可以很容易地在单个编译中进行一体化。但是,这使得编译时间开始进入屋顶。还有其他一些缺点。

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

这样的事情可能吗?如果是的话,怎么会这样呢?

1 个答案:

答案 0 :(得分:1)

我不认为这是Spirit特有的,而是C ++ 101.如果你需要编写几个语法,你需要包含定义你想要在编写时使用的语法的相应头文件。您可能想要做的是将语法构造函数的编译分成单独的编译单元。请参阅Spirit计算器示例(mini_c和其他)以了解如何完成此操作。这将使您的编译时间保持不变。