gpt4 book ai didi

c++ - 违反 noexcept 保证的编译器警告或静态分析?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:58 26 4
gpt4 key购买 nike

<分区>

我大量使用 noexcept,不幸的是,如果某些传递依赖最终导致极少数情况(我们不知道),崩溃将非常难以调试 - 因为 noexcept 会导致 std: :terminate 被调用。

有什么方法可以在编译时检测到这些违规行为吗?在下面的例子中问题很明显,但默认情况下没有编译器捕获它。我意识到这在所有情况下都是不可能的,但肯定应该可以实现更简单的情况

#include <stdexcept>

void baz()
{
throw std::runtime_error("std::terminate awaits");
}

void bar()
{
baz();
}

void foo() noexcept
{
bar();
}

神栓链接:https://godbolt.org/z/Ooet58

是否有我不知道的编译器标志?捕获此问题的静态分析工具怎么样?

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