Boost.Function 库包含一系列类模板,它们是函数对象的包装器。其概念类似于广义的回调。它与函数指针有相似之处,因为两者都定义了一个调用接口(例如,一个接受两个整数参数并返回浮点值的函数),通过该接口可以调用某个实现,而被调用的实现可能在程序的整个过程中发生变化。
通常,任何可以使用函数指针来延迟调用或进行回调的地方,都可以使用 Boost.Function 来替代,从而使用户在目标实现的灵活性方面获得更大的自由度。目标可以是任何“兼容”的函数对象(或函数指针),这意味着传递给 Boost.Function 指定的接口的参数可以转换为目标函数对象的参数。