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

纯函数判别式
本文介绍了判别式作为纯函数的概念及其重要性。判别式是一种返回布尔值的函数,而纯函数的特性保证了其行为仅依赖于输入参数,不受外部状态影响。为了确保判别式的纯函数性质,需要避免在实现中使用可变数据成员等。

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

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

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

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

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

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

转载于:https://www.cnblogs.com/liangjf/p/10634104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值