C++ Mac OS 10.6上boost::xpressive的编译时间过长

C++ Mac OS 10.6上boost::xpressive的编译时间过长,c++,macos,boost,compilation,C++,Macos,Boost,Compilation,我们使用boost::xpressive在C++/ObjC应用程序中处理正则表达式。自从Mac OS 10.6更新以来,我们发现编译时间非常长(双四元MacPro上的每个文件(!)需要1-2分钟),其中表达式是通过sregex::compile()定义和编译的。此外,整个系统的性能降低,导致不负责任的应用程序;对于所有其他文件,编译按预期运行 在10.5和10.6上使用的编译器都是gcc4.2。您是否有类似的经验和/或建议?有没有办法使用PCHs来防止这种情况 感谢和问候 Matthias在许多

我们使用boost::xpressive在C++/ObjC应用程序中处理正则表达式。自从Mac OS 10.6更新以来,我们发现编译时间非常长(双四元MacPro上的每个文件(!)需要1-2分钟),其中表达式是通过sregex::compile()定义和编译的。此外,整个系统的性能降低,导致不负责任的应用程序;对于所有其他文件,编译按预期运行

在10.5和10.6上使用的编译器都是gcc4.2。您是否有类似的经验和/或建议?有没有办法使用PCHs来防止这种情况

感谢和问候
Matthias

在许多编译器中,使用模板化模板(这就是boost的全部内容(好的,不仅如此,还有很多内容))速度非常慢。这会导致Boost.Spirit、Boost.Expressive和其他文件的编译时间过长。已知问题,Boost邮件列表上的常规主题

你可以

  • 阅读文档并希望得到提示(一些boostlib确实有这样的文档记录)
  • 也许Boost.Regex有更好的编译时间
  • 确保您仅在.cpp文件中使用这些内容-如果您在头文件中使用这些内容,则编译时间将在“不相关”文件中受到影响
  • 将Boost.Expressive代码分离到单独的.cpp文件中
  • 希望下一个g++版本能够更好地处理模板化代码

嗯,你知道,它被称为
boost::overside
,是有原因的。(SCNR)您是否尝试过boost::quickercompile?