使用带有Clang的Boost编译c ++项目时出现问题

时间:2011-08-09 18:29:51

标签: c++ gcc boost clang

我决定通过编译我已经在GCC编译的c ++项目来尝试Clang。我的项目依赖于Boost,并且由于包含“boost / asio.hpp”clang在使用迂腐标志进行编译时发出以下错误:

lib/boost_1_46_1/mac/boost/date_time/date_generators.hpp:37:30: error: extra ';' 
inside a class [-pedantic]

如果我想让这个项目编译,我有什么选择?我不想编辑出现此问题的各种升压头。

2 个答案:

答案 0 :(得分:2)

我只是查看了标题内部,有问题的行是year_based_generator() {};,这是一个简单的构造函数。所以clang是正确的,;是不必要的。

既然-pedantic会抓住这样的东西,我认为最好的方法是告知推特人这一点,特别是因为他们对这些分号不一致所以它几乎不是他们的编码指南的一部分。

除了在整体上禁用-pedantic之外,您可以使用pragma仅为有问题的boost库禁用它。

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-pedantic"
// include boost headers
#pragma clang diagnostic pop

我认为应该工作。

答案 1 :(得分:0)

你是否给了铿锵的选择?看起来像-pedantic正在触发错误。您可以随时删除该选项。