在带有clang的MacOSX Yosemite上我无法编译标题中包含以下方法的文件(updaterplugin.h:47):
void update() throw(std::runtime_error) final override;
Clang说:
-o moc_updaterplugin.cpp updaterplugin.h:47:解析错误")"
当我删除throw(std::runtime_error)
语句时,它会成功编译。
同样有趣的是,这种行为在某种程度上取决于Qt,因为普通的C ++ 11代码成功编译,而像这样的错误通常来自Qt的 MOC - 类。
有没有解决这个问题?
答案 0 :(得分:2)
C ++ 11中似乎exception specifications为deprecated(但noexcept说明符很重要。)
所以只需删除throw(std::runtime_error)