这篇文章主要讲解了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。