c – 了解值绑定器
花了整整一年的时间,但我已经通过David Vandevoorde和Nicolai M. Josuttis在
C++ Templates – The Complete Guide工作了,现在我被困在最后一章的最后一部分 – 过去3周的价值粘合剂.
值粘合剂的介绍,第457页的第22.8节,很容易理解,但我发现本节其余部分的例子很难理解.具体来说,我不明白Binder(见functors/binder1.hpp和functors/binder2.hpp以及BinderParams类(见functors/binderparams.hpp)试图实现的目标.我的困难不在于模板语法,而在于这些类背后的意图. Binder类如何执行绑定? BinderParams类如何识别(?)参数?这就是我难以看到/理解的东西. 解决方法
它是
partial application的一个实现,你可以在其中获取一个函数(或函子),并将一个值“绑定”到它的一个参数上,以获得一个新的函子减去一个参数.
这通常用于将一般函数与特定数据组合,而无需自己编写额外的样板代码. 考虑:您希望通过将函数应用于每个元素来转换集合,从而生成相同大小的新集合.例如,std :: transform需要一元函数.如果你已经有一个函数正在做你想要的但是需要更多的参数(例如,当你只想为每个元素添加相同的常量时,Kerrek的AddTwoThings),你可以: >重写它 对于一些实例,显示了Vandevoor& C的标准等效物的简单用途. Josuttis的系统,看到令人惊讶的详细cppreference examples. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |