gpt4 book ai didi

c++ - Qt/C++11 抛出,方法原型(prototype)中的最终覆盖

转载 作者:行者123 更新时间:2023-11-28 02:30:58 25 4
gpt4 key购买 nike

在带有 clang 的 MacOSX Yosemite 上,我无法编译标题中包含以下方法的文件 (updaterplugin.h:47):

void update() throw(std::runtime_error) final override;

clang 说:

-o moc_updaterplugin.cpp updaterplugin.h:47: Parse error at ")"

当我删除 throw(std::runtime_error) 语句时,它编译成功。

另一个有趣的事实是,这种行为在某种程度上取决于 Qt,因为普通的 C++11 代码可以成功编译,而此类错误通常来自 Qt 的 MOC 类。

有什么解决办法吗?

最佳答案

似乎exception specificationsdeprecated在 C++11 中(但 noexcept 说明符很重要)。

所以只需删除 throw(std::runtime_error)

关于c++ - Qt/C++11 抛出,方法原型(prototype)中的最终覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29018931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com