Compilation 有没有办法编写单独编译的boost::spirit::qi语法?

Compilation 有没有办法编写单独编译的boost::spirit::qi语法?,compilation,boost-spirit,boost-spirit-qi,Compilation,Boost Spirit,Boost Spirit Qi,Boost-Spirit语法非常棒,我一直在用它们来做小事情。然而,有时我希望能够编写单独的语法 通过包含适当的语法并将它们拼接在一起,可以很容易地在一次编译中实现一体化。然而,这使得编译时间开始急剧增加。还有其他缺点 有没有办法编写单独编译的语法?换句话说,我希望在头文件中定义语法接口,在单独的编译单元中实现模板及其对特定迭代器的实例化,然后能够使用另一个迭代器的语法,而无需在编译时看到完整的模板定义。换句话说,我希望能够在规则中间接使用语法 这可能吗?如果是,人们会怎么做呢? < P>我不认

Boost-Spirit语法非常棒,我一直在用它们来做小事情。然而,有时我希望能够编写单独的语法

通过包含适当的语法并将它们拼接在一起,可以很容易地在一次编译中实现一体化。然而,这使得编译时间开始急剧增加。还有其他缺点

有没有办法编写单独编译的语法?换句话说,我希望在头文件中定义语法接口,在单独的编译单元中实现模板及其对特定迭代器的实例化,然后能够使用另一个迭代器的语法,而无需在编译时看到完整的模板定义。换句话说,我希望能够在规则中间接使用语法


这可能吗?如果是,人们会怎么做呢?

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

谢谢。mini_c示例确实展示了如何做到这一点,但我被实现仍然在“头”文件中(例如mini_cc.hpp中的语句语法)的方式所打乱。实际上,这些头中的语法构造函数只在一个单独的编译单元中包含和实例化一次(例如,语句语法的mini_cc.cpp)。我只是看得不够近。