如何释放boost fast_pool_allocator管理的内存?

时间:2017-07-07 00:20:05

标签: c++ boost

我尝试在列表中使用boost :: fast_pool_allocator来管理内存分配。 这是我的示例代码,

    boost::fast_pool_allocator<int> alloc;
    std::list<int, boost::fast_pool_allocator<int>> data_pool(alloc);
    data_pool.push_back(1);
    data_pool.push_back(2);
    data_pool.clear();
    boost::singleton_pool<boost::fast_pool_allocator_tag, sizeof(int)>::purge_memory();

但是purge_memory永远不会释放内存。我用Google搜索并看到有人提到sizeof(int)的列表节点大小不正确。

但是如何才能获得正确的列表节点大小以使purge_memory有效?

1 个答案:

答案 0 :(得分:1)

调用singleton_pool::release_memory()会释放已分配的池。