我已经在 stackoverflow 和 google 上进行了初步搜索,但没有找到任何具体的线索,所以我要在这里问一下:
有没有人有将 boost::function 与自定义分配器一起使用的经验?
我需要它,因为我正在使用从绑定(bind)生成的函数,并且在一定大小(取决于您绑定(bind)的参数)之后,boost::function 将开始在堆上分配。
我必须使用 boost/pool_alloc。 boost::fast_pool_allocator<>
或 boost::pool_allocator<>
再具体一点。接收函数签名很简单,就是function<void()>
,但我可能会从各种绑定(bind)站点生成此函数,并使用所有可能的参数进行绑定(bind)...
那我怎么知道要为 pool_alloc 写什么签名呢?例如:
function<void()> f_with_alloc(bind(...), pool_allocator<????>() );
我在那里写什么? boost.function 文档中并不清楚。
呃,一些模板代码在stackoverflow的编辑器上不能很好地工作......并且编辑器不让我再次编辑。 :(
最佳答案
据我所知,这并不重要。无论如何,该类都会在内部将您的分配器重新绑定(bind)到它需要的类型。
关于c++ - 带有自定义分配器的 Boost.Function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16792411/