温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++中为什么表达前提条件最好使用Expects()

发布时间:2021-11-24 16:41:01 来源:亿速云 阅读:178 作者:iii 栏目:大数据

这篇文章主要讲解了“C++中为什么表达前提条件最好使用Expects()”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中为什么表达前提条件最好使用Expects()”吧!

I.6: Prefer Expects() for expressing preconditions 表达前提条件最好使用Expects()

Reason(原因)

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    // ...}
Note(注意)

前提条件可以以多种方式表达,包括注释,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()这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI