Qt/C++11 抛出,方法原型中的最终覆盖
Qt/C++11 throw, final override in method prototype
在 MacOSX Yosemite 上使用 clang 我无法编译包含以下方法的文件 header (updaterplugin.h:47):
void update() throw(std::runtime_error) final override;
铿锵声说:
-o moc_updaterplugin.cpp updaterplugin.h:47: Parse error at ")"
当我删除 throw(std::runtime_error)
语句时它编译成功。
另一个有趣的事实是,此行为在某种程度上取决于 Qt,因为普通 C++11 代码编译成功,而此类错误通常来自 Qt 的 MOC-类。
有什么解决办法吗?
似乎 exception specifications are deprecated in C++11 (but the noexcept 说明符很重要)。
所以只需删除 throw(std::runtime_error)
在 MacOSX Yosemite 上使用 clang 我无法编译包含以下方法的文件 header (updaterplugin.h:47):
void update() throw(std::runtime_error) final override;
铿锵声说:
-o moc_updaterplugin.cpp updaterplugin.h:47: Parse error at ")"
当我删除 throw(std::runtime_error)
语句时它编译成功。
另一个有趣的事实是,此行为在某种程度上取决于 Qt,因为普通 C++11 代码编译成功,而此类错误通常来自 Qt 的 MOC-类。
有什么解决办法吗?
似乎 exception specifications are deprecated in C++11 (but the noexcept 说明符很重要)。
所以只需删除 throw(std::runtime_error)