码迷,mamicode.com
首页 > 其他好文 > 详细

条目三十九 确保判别式是“纯函数”

时间:2019-04-01 01:07:54      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:const   UNC   转换   lse   条目   子类   多次   常量   改变   

《条目三十九 确保判别式是“纯函数”》

一个判别式(predicate)是一个返回值为bool类型(或者可以隐式地转换为bool类型)的函数。

一个纯函数(pure function)是指返回值仅仅依赖于其参数的函数。纯函数所能访问的数据应该仅局限于参数以及常量(在函数生命期内不会被改变

判别式类(predicate class)是一个函数子类,它的operator()函数是一个判别式,也就说是,它的operator()返回true或者false。

一个精心设计的判别式类应该保证其operator()函数完全独立于mutable数据成员、非const的局部static对象、非const的类static对象、名字空间域中的非const对象,以及非const的全局对象。

究其原因就是因为是值传递的,如果不是纯函数,多次调用判别式会被外部影响。

条目三十九 确保判别式是“纯函数”

标签:const   UNC   转换   lse   条目   子类   多次   常量   改变   

原文地址:https://www.cnblogs.com/liangjf/p/10634104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!