Olu*_*ide 3 c++ generics templates c++11
它花了整整一年但我已经通过C++模板 - David Vandevoorde和Nicolai M. Josuttis 的完整指南,现在我被困在最后一章的最后一部分 - 值粘合剂,过去3年周.
值粘合剂的介绍,第457页的第22.8节,很容易理解,但我发现本节其余部分的例子很难理解.具体地讲,我不明白是什么了Binder
(见函子/ binder1.hpp和函子/ binder2.hpp和BinderParams
类(见函子/ binderparams.hpp)正在努力实现的.我的难度不与模板语法,但背后的意图,这些类.
这个Binder
类如何执行绑定?以及如何BinderParams
类标识(?)的参数?这就是我难以看到/理解的东西.
它是部分应用程序的一个实现,你可以使用一个函数(或函子),并将一个值"绑定"到它的一个参数上,以获得一个新的函子减去一个参数.
这通常用于将一般函数与特定数据组合,而无需自己编写额外的样板代码.
考虑:您希望通过将函数应用于每个元素来转换集合,从而生成相同大小的新集合.例如,std::transform
需要一元函数.如果你已经有一个函数正在做你想要的但是需要更多的参数(例如,AddTwoThings
当你只想为每个元素添加相同的常量时,Kerrek's ),你可以:
std::transform
有些示例显示了Vandevoorde&Josuttis系统的C++ 11标准等价物的简单用法,请参阅令人惊讶的详细的cppreference示例.