C++为什么表示后置条件最好使用Ensures()

发布时间:2021-11-25 16:03:53 作者:iii
来源:亿速云 阅读:159

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

I.8: Prefer Ensures() for expressing postconditions(表示后置条件最好使用Ensures())

Reason(原因)

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

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

推荐阅读:
  1. C++中多态的实现原理是什么
  2. getline函数怎么在C++中使用

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

c++

上一篇:C++为什么不要直接使用lock/unlock

下一篇:C++11智能指针weak_ptr怎么使用

相关阅读

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

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