我在stackoverflow和google上做了初步搜索,并没有找到任何具体的线索,所以我要在这里问它:
有没有人有使用自定义分配器的 boost::function 的经验?
我需要它,因为我正在使用从绑定生成的函数,并且在一定大小之后(取决于您绑定的参数),boost::function 将开始在堆上分配。
我必须使用 boost/pool_alloc。boost::fast_pool_allocator<>
或者boost::pool_allocator<>
说具体点。接收函数签名很简单,就是function<void()>
,但我可以从各种绑定站点生成这个函数,并带有所有可能的参数来绑定......
那我怎么知道为 pool_alloc 写什么签名呢?例如:
function<void()> f_with_alloc(bind(...), pool_allocator<????>() );
我在那里写什么?boost.function 文档并不清楚。
呃,有些模板代码在stackoverflow的编辑器上不能很好地工作......而且编辑器不会让我再次编辑。:(