27-包装器
18.5 包装器
C++提供了多个包装器(wrapper,也叫适配器[adapter])。这些对象用于给其他编程接口提供更一致或更合适的接口。例如,第16章讨论了bind1st和bind2ed,它们让接受两个参数的函数能够与这样的STL算法匹配,即它要求将接受一个参数的函数作为参数。C++11提供了其他的包装器,包括模板bind、men_fn和reference_wrapper以及包装器function。其中模板bind可替代bind1st和bind2nd,但更灵活;模板mem_fn让您能够将成员函数作为常规函数进行传递;模板reference_wrapper让您能够创建行为像引用但可被复制的对象;而包装器function让您能够以统一的方式处理多种类似于函数的形式。
下面更详细地介绍包装器function及其解决的问题。