您好,登錄后才能下訂單哦!
這篇文章主要介紹“C++中什么時候使用noexcept”,在日常操作中,相信很多人在C++中什么時候使用noexcept問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++中什么時候使用noexcept”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
E.12: 當不可能或不愿意通過拋出異常退出函數時使用noexcept
To make error handling systematic, robust, and efficient.
為了讓錯誤處理更系統化,健壯和高效。
Example(示例)
double compute(double d) noexcept
{
return log(sqrt(d <= 0 ? 1 : d));
}
因為這段代碼有不會拋出異常的操作構成,所以我們知道compute函數不會拋出異常。通過將compute函數定義為noexcept,我向編譯器和代碼的讀者傳遞了可以讓它們更容易理解和維護代碼的信息。
Note(注意)
Many standard-library functions are noexcept including all the standard-library functions "inherited" from the C Standard Library.
很多標準庫函數被定義為noexcept,包含所有從C標準庫繼承的標準庫函數。
Example(示例)
vector<double> munge(const vector<double>& v) noexcept
{
vector<double> v2(v.size());
// ... do something ...
}
這里的noexcept說明我不愿意或者不能處理局部的vecrot構建失敗的情況。也就是說,我認為內存耗盡是嚴重的設計錯誤(和硬件錯誤同樣看待),如果這種情況發生,我甘愿終止程序。
Note(注意)
Do not use traditional exception-specifications.
不要使用傳統的例外定義方式。
到此,關于“C++中什么時候使用noexcept”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。