August 2021
Intermediate to advanced
450 pages
6h 57m
Chinese
函数适配器接受一个函数参数,返回一个可用来调用该函数的函数对象。
适配器bind()和mem_fn()进行实参绑定,也称为柯里化(Currying)或部分求值(partial evaluation)。这些绑定器和那些已被弃用的前身(如bind1st()、mem_fun()和mem_fun_ref())在过去曾被广泛使用,但大多数应用看起来可以用lambda很容易地表达(见11.4节)。
给定一个函数和一组实参,bind()生成一个可用该函数“剩余”实参(如果存在的话)调用的函数对象。例如:
调用cube2()会用实参2调用cube,即cube(2)。我们不必绑定所有函数实参。例如:
绑定器奇怪的实参_1是一个占位符,它告知bind()实参在结果函数对象中应放在什么位置。在本例中,g()的(第一个)实参被用作f()的第二个实参。
占位符定义在命名空间std::placeholders中,该命名空间是头文件<functional>的一部分。占位符机制非常灵活,考虑下面的代码: ...
Read now
Unlock full access