是否有任何使用約定std::feclearexcept?在您通常看到的示例中,這是在執行可能觸發浮點例外的操作之前呼叫的。這似乎是一件安全的事情。
但是,您是否還應該std::feclearexcept 在檢測并處理錯誤后呼叫,以便錯誤狀態不會在程式執行的其余部分持續存在?
如果您總是std::feclearexcept在檢查浮點例外之前呼叫,并且如果您總是檢查可能觸發此類例外的所有操作,那么這將是多余的。但至少從我的經驗來看,這些都是真實軟體中的很多假設和不太可能的情況。
uj5u.com熱心網友回復:
類似于errno僅在您執行特定操作并打算在errno之后檢查之前(重新)設定的推理。
可能存在errno您不知道的設定 或浮點例外標志的條件。您不知道它們究竟發生在何處,也不知道它們在語意上的含義。您沒有能力處理“呃,過去某處發生溢位但我不知道這意味著什么”的情況。
因此,您重置errno/呼叫std::feclearexcept,你在執行權之前,具體操作要知道確切結果/錯誤情況,并就知道如何處理它。
在該操作之后重置錯誤標志沒有任何意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371606.html
上一篇:Java無法訪問本地路徑上的檔案
