这篇文章主要讲解了“C++为什么表示后置条件最好使用Ensures()”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++为什么表示后置条件最好使用Ensures()”吧!
Ensures()
for expressing postconditions(表示后置条件最好使用Ensures())To make it clear that the condition is a postcondition and to enable tool use.
明确的表示该条件是后置条件,同时也让工具检查成为可能。
Example(示例)
void f(){ char buffer[MAX]; // ... memset(buffer, 0, MAX); Ensures(buffer[0] == 0);}
后置条件可以以多种方式表达,包括注释,if语句和assert()。但是使用这些方式表达的后置条件很难从原始代码中区分出来,难以更新,难以被工具处理,还可能会包含错误的语义。
Alternative: Postconditions of the form "this resource must be released" are best expressed by RAII.
其他选项:“这个资源必须被释放”形式的后置条件最好通过RAII体现。
Note(注意)
理想情况下,Ensures应该成为接口的一部分,但这并不容易实现。到目前为止,我们还是将他放到定义(函数体)中。当语言支持可用时(例如,参考contract建议),我们将会导入前置条件,后置条件和断言。
译者注:contract指的是一直在讨论,C++20即将引入的新特性contract。
Enforcement(实施建议)
(非强制)发现多种确认后置条件的方式是不现实的。警戒那些容易标识(assert())的,由于语言功能的缺失而有疑问的数值。
感谢各位的阅读,以上就是“C++为什么表示后置条件最好使用Ensures()”的内容了,经过本文的学习后,相信大家对C++为什么表示后置条件最好使用Ensures()这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。