您好,登錄后才能下訂單哦!
這篇文章主要講解了“C++中為什么表達前提條件最好使用Expects()”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++中為什么表達前提條件最好使用Expects()”吧!
To make it clear that the condition is a precondition and to enable tool use.
這樣可以更清楚地表明該條件是前提條件而且讓工具可以使用它。
Example(示例)
int area(int height, int width){ Expects(height > 0 && width > 0); // good if (height <= 0 || width <= 0) my_error(); // obscure // ...}
前提條件可以以多種方式表達,包括注釋,if語句和斷言。這會讓它們不容易從原始代碼中區分出來,難以更新,也不容易被工具處理,也可能包含錯誤的語義(你會總是愿意調試模式時中斷執行但是運行模式時什么也不檢查么?)
Note(注意)
前提條件應該是接口的一部分而不是實現的一部分。但是我們還沒有語言功能來實現這一點。當語言支持可用時(例如查看契約建議),我們會導入前提條件的標準版,后置條件和斷言。
譯者注:斷言用于檢查實現過程中的必要條件。
Note(注意)
Expects()
can also be used to check a condition in the middle of an algorithm.
期望也可以用于在算法中確認條件。
Note(注意)
No, using unsigned
is not a good way to sidestep the problem of ensuring that a value is nonnegative.
使用unsigned不是確保數值非負的好辦法。
譯者注:一個值不允許為負值并不意味著就一定是無符號數。這一點可以考慮開平方的例子。
Enforcement(實施建議)
(非強制)發現多種確認前提條件的方式并不現實。注意哪些容易被發現(assert())由于語言限制而包含可疑值的情況。
感謝各位的閱讀,以上就是“C++中為什么表達前提條件最好使用Expects()”的內容了,經過本文的學習后,相信大家對C++中為什么表達前提條件最好使用Expects()這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。