gpt4 book ai didi

c++ - gcc 还支持 sjlj 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 14:07:42 27 4
gpt4 key购买 nike

本地世界放弃了 sjlj 异常处理方法,转而使用更新的基于表的方法,因为后者在不抛出异常时的时间成本为零。

不过,我还是想用sjlj的方法。 (由于抛出异常时基于表的方法的时间成本非常高。)

我知道 Visual C++ 不允许我选择退出基于表的方法,但我希望自由世界更加保守,并将保留旧方法作为一种选择。看起来我错了,因为我找不到用 sjlj 编译的选项,不在 gcc 中,也不在 clang 中。我错过了这些选项,还是它们真的不再支持 sjlj?

有趣的是,基于gcc的gnat,looks to still keep the option .

最佳答案

Windows 上的 gcc 使用 SJLJ 异常处理,而 Linux 上使用 DWARF-2 EH。引自 GCC Wiki :

Platforms like Linux x86-32 have moved to DW2 EH, but Windows is still stuck with SJLJ EH. This is because it is common for Windows developers to write Windows GUI applications where they expect their event loop to catch exceptions thrown within their callback functions. Unfortunately this carries a severe penalty in environments like Java where exceptions are quite common.

但是,gcc 可以是configured (正如@MarcGlisse 所指出的)启用 sjlj 异常。

关于c++ - gcc 还支持 sjlj 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16280143/

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