未在此范围内为 g++ 声明 runtime_error 4.1.2

发布于 2024-10-29 18:43:50 字数 340 浏览 2 评论 0原文

相同的代码在 gcc 4.5.2 上运行良好,但是当尝试在 gcc 4.1.2 上编译它时,我收到错误 'runtime_error' was not returned in this scope

我确实有

#include <stdexcept>

这是 gcc 4.1.2 的问题吗?

代码摘录

// Constructor
if (resource cannot be acquired)
  throw std::runtime_error("Blah Blah");

The same code is working fine on gcc 4.5.2 but when trying to compile it on gcc 4.1.2, I get the error ‘runtime_error’ was not declared in this scope.

I do have

#include <stdexcept>

Is this a problem with gcc 4.1.2?

Code excerpt

// Constructor
if (resource cannot be acquired)
  throw std::runtime_error("Blah Blah");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

Oo萌小芽oO 2024-11-05 18:43:50

Visual Studio 说 runtime_error 应该在 中定义,所以我猜测 GCC 4.1.2 在这里已经过时了。

Visual Studio says that runtime_error should be defined in <stdexcept>, so I'm guessing that GCC 4.1.2 is just out of date here.

删除会话 2024-11-05 18:43:50

您有 using namespace std;using std::runtime_error; 吗?如果没有,那么您需要完全限定名称并使用 std::runtime_error 而不仅仅是 runtime_error

Do you have using namespace std; or using std::runtime_error;? If not, then you need to fully qualify the name and use std::runtime_error rather than just runtime_error.

蹲墙角沉默 2024-11-05 18:43:50

gcc 4.1 相对较旧。 4.5 更符合标准。也许你触发了编译器的错误

gcc 4.1 is relatively old. 4.5 is more standard compliant. Maybe you triggered a compiler's bug

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文