]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/pool/test/test_bug_4960.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / pool / test / test_bug_4960.cpp
1 /* Copyright (C) 2011 Kwan Ting Chan
2 * Based from bug report submitted by Xiaohan Wang
3 *
4 * Use, modification and distribution is subject to the
5 * Boost Software License, Version 1.0. (See accompanying
6 * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
7 */
8
9 // Test of bug #4960 (https://svn.boost.org/trac/boost/ticket/4960)
10
11 #include <boost/pool/pool_alloc.hpp>
12 #include <vector>
13 #include <iostream>
14
15 typedef std::vector<int, boost::pool_allocator<int> > EventVector;
16 typedef std::vector<EventVector, boost::pool_allocator<EventVector> > IndexVector;
17
18 int main()
19 {
20 IndexVector iv;
21 int limit = 100;
22 for (int i = 0; i < limit; ++i)
23 {
24 iv.push_back(EventVector());
25 for(int j = 0; j < limit; ++j)
26 iv.back().push_back(j);
27 }
28
29 boost::pool<boost::default_user_allocator_new_delete> po(4);
30 for(int i = 0; i < limit; ++i)
31 {
32 void* p = po.ordered_malloc(0);
33 po.ordered_free(p, 0);
34 }
35
36 boost::pool_allocator<int> al;
37 for(int i = 0; i < limit; ++i)
38 {
39 int* p = al.allocate(0);
40 al.deallocate(p, 0);
41 }
42
43 std::cout << "it works\n";
44 return 0;
45 }