blob: e95f714ec5071d9042cce4817e887a5b5a2d4d2d [file] [log] [blame]
/* Copyright (C) 2011 Kwan Ting Chan
* Based from bug report submitted by Xiaohan Wang
*
* Use, modification and distribution is subject to the
* Boost Software License, Version 1.0. (See accompanying
* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
*/
// Test of bug #4960 (https://svn.boost.org/trac/boost/ticket/4960)
#include <boost/pool/pool_alloc.hpp>
#include <vector>
#include <iostream>
typedef std::vector<int, boost::pool_allocator<int> > EventVector;
typedef std::vector<EventVector, boost::pool_allocator<EventVector> > IndexVector;
int main()
{
IndexVector iv;
int limit = 100;
for (int i = 0; i < limit; ++i)
{
iv.push_back(EventVector());
for(int j = 0; j < limit; ++j)
iv.back().push_back(j);
}
boost::pool<boost::default_user_allocator_new_delete> po(4);
for(int i = 0; i < limit; ++i)
{
void* p = po.ordered_malloc(0);
po.ordered_free(p, 0);
}
boost::pool_allocator<int> al;
for(int i = 0; i < limit; ++i)
{
int* p = al.allocate(0);
al.deallocate(p, 0);
}
std::cout << "it works\n";
return 0;
}