问题标签 [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.
c++ - 覆盖 [[noreturn]] 虚函数
该[[noreturn]]
属性可以应用于不打算返回的函数。例如:
但是我遇到了以下情况(不,我没有设计这个):
我真的很想将属性[[noreturn]]
放在B::f()
声明中。但我不清楚派生类中的覆盖会发生什么。从[[noreturn]]
函数成功返回会导致未定义的行为,如果覆盖也继承了该属性,我当然不希望出现这种情况。
问题:通过覆盖[[noreturn] virtual void B::f()
,我是否继承了该[[noreturn]]
属性?
我查看了 C++14 标准,但无法确定属性是否被继承。
c++ - C3409: noreturn 不允许空属性块
C3409: empty attribute block is not allowed
我从noreturn
VS2013 中得到一个错误。
以下是代码片段:
有人可以帮我弄清楚如何解决这个错误吗?提前致谢。
c++ - 这是对 noreturn 属性的有效使用吗?
在处理线程(光纤)调度类时,我发现自己编写了一个永远不会返回的函数:
这个函数永远不会被直接调用(由thread();
)。在切换到新上下文之后,它仅由jmp
来自汇编代码的“调用”,因此它无法在任何地方“返回”。最后,对的调用会yield()
检查state == finished
该线程并将其从线程队列中删除。
这会是对[[noreturn]]
属性的有效使用吗?如果是这样,它会以任何方式帮助吗?
编辑:不是重复的。我了解该属性通常用于什么。我的问题是,在这种特定情况下它会做些什么吗?
jquery - JQuery - 制作一个函数
我是 JQuery 的新手,想为以下代码创建一个函数,我需要在不同的地方使用它......请帮助我了解如何在 JQUERY 中创建一个函数。
c++ - 可疑情况下的 Clang 警告:可以使用属性“noreturn”声明函数“foo”?
我一直在玩 [[noreturn]] 属性,我试图掌握并使用它(我理解[[noreturn]]
是C++11 标准属性并且__attribute__((noreturn))
是 GCC/Clang 扩展)。作为其中的一部分,我启用了 Clang 警告 -Wmissing-noreturn。
foo.cpp:
然后编译:
在我看来,它会回来!这里发生了什么?这是编译器错误吗?
如果您从 A 中删除“= 1”,则它可以正常编译而不会发出警告。
如果我确实创建了 foo() 函数[[noreturn]] void foo()
,那么它确实会因分段错误而崩溃。
swift - 何时以及如何在 Swift 中使用 @noreturn 属性?
else
我在流的上下文中阅读了关键字后用花括号括起来的代码块guard-else
,必须调用标有noreturn
属性或转移控制的函数return
或使用、break
或。continue
throw
最后一部分很清楚,而我不太了解第一部分。
首先,任何函数都会返回一些东西(至少是一个空元组),即使你没有声明任何返回类型。其次,我们什么时候可以使用noreturn
函数?建议某些核心内置方法的文档是否标有noreturn
?
保护语句的 else 子句是必需的,并且必须调用一个标有 noreturn 属性的函数,或者使用以下语句之一将程序控制转移到保护语句的封闭范围之外:
这里是来源。
c++ - 我可以在非 void 返回函数上使用 [[noreturn]] 吗?
我以前从未见过在非 void 返回函数上使用 [[ noreturn ]] 。
以下定义是否明确?
返回类型必须是 的原因int
是因为该函数通过函数指针传递给另一个函数。
所以假设调用者看起来像这样:
这会表现出任何未定义的行为吗?
c++ - 为什么要检查 [[noreturn]] 函数的返回类型?
假设我有一个带有签名的函数[[noreturn]] void die(int exit_code);
。如果我写声明:
我收到一条错误消息(使用 GCC 5.4.0):
但是为什么要检查类型,如果编译器知道进入该函数,则返回值无关紧要;如果条件检查出来,返回类型再次无关紧要吗?
编辑:有关标准的措辞是否[[noreturn]]
没有解决这一点,即放宽对类型的要求以使此类表达“合法化”?
c++ - 将 [[noreturn]] 添加到 main 函数是否有意义
据我了解,C++ 属性[[noreturn]]
可以应用于不返回调用者的函数,以便编译器可以生成更优化的代码。我确实理解它对“正常”功能有影响,但想知道在将其应用于main
功能时它是否也会对性能产生影响。
假设我想编写一个不断运行的程序而不会中止(这意味着该main
函数永远不会返回给调用者(=操作系统)
其中哪一个生成更快(更优化)的代码,或者根本没有任何区别?
选项1:
选项 2: