使用std::feclearexcept的约定

Conventions for using std::feclearexcept

本文关键字:约定 feclearexcept 使用 std      更新时间:2024-05-09

使用std::feclearexcept有什么约定吗?在您通常看到的示例中,这在执行可能触发浮点异常的操作之前被称为。这样做似乎是安全的。

但是,您是否也应该在检测到并处理错误后调用std::feclearexcept,以便在程序的其余执行过程中错误状态不会持续?

如果您总是在检查浮点异常之前调用std::feclearexcept,并且如果您总是检查所有可能触发此类异常的操作,那么这将是多余的。但至少从我的经验来看,这些都是很多假设,在真正的软件中是不太可能的。

Simlar在推理中仅在执行特定操作之前(重新(设置errno,并打算在之后检查errno

可能存在您不知道的errno或浮点异常标志的设置条件。你不知道它们到底发生在哪里,也不知道它们在语义上意味着什么。你没有能力处理";呃,过去某个地方有溢流,但我不知道这是什么意思"。

因此,在执行特定操作之前重置errno/调用std::feclearexcept希望了解确切的结果/错误条件,do知道如何处理。

在该操作之后重置错误标志没有任何作用。