问题标签 [noreturn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1379 浏览

c++ - 覆盖 [[noreturn]] 虚函数

[[noreturn]]属性可以应用于不打算返回的函数。例如:

但是我遇到了以下情况(不,我没有设计这个):

我真的很想将属性[[noreturn]]放在B::f()声明中。但我不清楚派生类中的覆盖会发生什么。从[[noreturn]]函数成功返回会导致未定义的行为,如果覆盖也继承了该属性,我当然不希望出现这种情况。

问题:通过覆盖[[noreturn] virtual void B::f(),我是否继承了该[[noreturn]]属性?

我查看了 C++14 标准,但无法确定属性是否被继承。

0 投票
1 回答
1336 浏览

c++ - C3409: noreturn 不允许空属性块

C3409: empty attribute block is not allowed我从noreturnVS2013 中得到一个错误。

以下是代码片段:

有人可以帮我弄清楚如何解决这个错误吗?提前致谢。

0 投票
2 回答
243 浏览

c++ - 这是对 noreturn 属性的有效使用吗?

在处理线程(光纤)调度类时,我发现自己编写了一个永远不会返回的函数:

这个函数永远不会被直接调用(由thread();)。在切换到新上下文之后,它仅由jmp来自汇编代码的“调用”,因此它无法在任何地方“返回”。最后,对的调用会yield()检查state == finished该线程并将其从线程队列中删除。

这会是对[[noreturn]]属性的有效使用吗?如果是这样,它会以任何方式帮助吗?

编辑:不是重复的。我了解该属性通常用于什么。我的问题是,在这种特定情况下它会做些什么吗?

0 投票
1 回答
31 浏览

jquery - JQuery - 制作一个函数

我是 JQuery 的新手,想为以下代码创建一个函数,我需要在不同的地方使用它......请帮助我了解如何在 JQUERY 中创建一个函数。

0 投票
2 回答
3123 浏览

c++ - 可疑情况下的 Clang 警告:可以使用属性“noreturn”声明函数“foo”?

我一直在玩 [[noreturn]] 属性,我试图掌握并使用它(我理解[[noreturn]]C++11 标准属性并且__attribute__((noreturn))是 GCC/Clang 扩展)。作为其中的一部分,我启用了 Clang 警告 -Wmissing-noreturn。

foo.cpp:

然后编译:

在我看来,它会回来!这里发生了什么?这是编译器错误吗?

如果您从 A 中删除“= 1”,则它可以正常编译而不会发出警告。

如果我确实创建了 foo() 函数[[noreturn]] void foo(),那么它确实会因分段错误而崩溃。

0 投票
3 回答
2537 浏览

swift - 何时以及如何在 Swift 中使用 @noreturn 属性?

else我在流的上下文中阅读了关键字后用花括号括起来的代码块guard-else,必须调用标有noreturn属性或转移控制的函数return或使用、break或。continuethrow

最后一部分很清楚,而我不太了解第一部分。

首先,任何函数都会返回一些东西(至少是一个空元组),即使你没有声明任何返回类型。其次,我们什么时候可以使用noreturn函数?建议某些核心内置方法的文档是否标有noreturn

保护语句的 else 子句是必需的,并且必须调用一个标有 noreturn 属性的函数,或者使用以下语句之一将程序控制转移到保护语句的封闭范围之外:

这里是来源

0 投票
3 回答
1166 浏览

c++ - 我可以在非 void 返回函数上使用 [[noreturn]] 吗?

我以前从未见过在非 void 返回函数上使用 [[ noreturn ]] 。

以下定义是否明确?

返回类型必须是 的原因int是因为该函数通过函数指针传递给另一个函数。

所以假设调用者看起来像这样:

这会表现出任何未定义的行为吗?

0 投票
3 回答
149 浏览

c++ - 为什么要检查 [[noreturn]] 函数的返回类型?

假设我有一个带有签名的函数[[noreturn]] void die(int exit_code);。如果我写声明:

我收到一条错误消息(使用 GCC 5.4.0):

但是为什么要检查类型,如果编译器知道进入该函数,则返回值无关紧要;如果条件检查出来,返回类型再次无关紧要吗?

编辑:有关标准的措辞是否[[noreturn]]没有解决这一点,即放宽对类型的要求以使此类表达“合法化”?

0 投票
2 回答
620 浏览

c++ - 将 [[noreturn]] 添加到 main 函数是否有意义

据我了解,C++ 属性[[noreturn]]可以应用于不返回调用者的函数,以便编译器可以生成更优化的代码。我确实理解它对“正常”功能有影响,但想知道在将其应用于main功能时它是否也会对性能产生影响。

假设我想编写一个不断运行的程序而不会中止(这意味着该main函数永远不会返回给调用者(=操作系统)

其中哪一个生成更快(更优化)的代码,或者根本没有任何区别?

选项1:

选项 2:

0 投票
9 回答
16009 浏览

c - 为什么“noreturn”函数返回?

我读了这个关于noreturn属性的问题,它用于不返回调用者的函数。

然后我用C编写了一个程序。

并使用以下代码生成代码集:

为什么提供属性func()后函数返回?noreturn