分类:
2010-03-24 20:50:27
保存函数指针和函数对象,用于后续的调用
在含有回调的设计中,常常需要保存函数和函数对象,而且某些函数或类也是通过函数指针或函数对象来配制其客户化功能。传统上,通常使用函数指针来实现回调及延迟调用的函数。但是,仅仅使用函数指针会有很多限制,更好的方法是采用泛型机制来定义要被保存的函数的署名特征,而让调用者来决定提供哪一种类型的函数实体(函数指针或函数对象)。这样就可以使用任何行为类似于函数的实体,例如,使用 Boost.Bind 和 Boost.Lambda 所返回的结果。这意味着可以给这些被保存的函数增加状态(因为函数对象是一种类)。这种泛化由 Boost.Function 提供。这个库用于保存并然后调用函数或函数对象。