1 | /* Boost.MultiIndex test for serialization, part 1. |
---|---|
2 | * |
3 | * Copyright 2003-2008 Joaquin M Lopez Munoz. |
4 | * Distributed under the Boost Software License, Version 1.0. |
5 | * (See accompanying file LICENSE_1_0.txt or copy at |
6 | * http://www.boost.org/LICENSE_1_0.txt) |
7 | * |
8 | * See http://www.boost.org/libs/multi_index for library home page. |
9 | */ |
10 | |
11 | #include "test_serialization1.hpp" |
12 | #include "test_serialization_template.hpp" |
13 | |
14 | #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ |
15 | #include <boost/multi_index/ordered_index.hpp> |
16 | #include <boost/multi_index/sequenced_index.hpp> |
17 | #include <boost/multi_index/random_access_index.hpp> |
18 | #include <boost/multi_index/key_extractors.hpp> |
19 | #include "non_std_allocator.hpp" |
20 | |
21 | using namespace boost::multi_index; |
22 | |
23 | void test_serialization1() |
24 | { |
25 | { |
26 | typedef multi_index_container< |
27 | int, |
28 | indexed_by< |
29 | sequenced<>, |
30 | sequenced<>, |
31 | random_access<> |
32 | > |
33 | > multi_index_t; |
34 | |
35 | multi_index_t m; |
36 | for(int i=0;i<100;++i)m.push_back(x: i); |
37 | m.reverse(); |
38 | test_serialization(m); |
39 | |
40 | m.clear(); |
41 | for(int j=50;j<100;++j)m.push_back(x: j); |
42 | for(int k=0;k<50;++k)m.push_back(x: k); |
43 | m.sort(); |
44 | test_serialization(m); |
45 | } |
46 | { |
47 | typedef multi_index_container< |
48 | int, |
49 | indexed_by< |
50 | random_access<>, |
51 | sequenced<>, |
52 | ordered_non_unique<identity<int> > |
53 | >, |
54 | non_std_allocator<int> |
55 | > multi_index_t; |
56 | |
57 | multi_index_t m; |
58 | for(int i=0;i<100;++i){ |
59 | m.push_back(x: i); |
60 | m.push_back(x: i); |
61 | m.push_back(x: i); |
62 | } |
63 | m.reverse(); |
64 | test_serialization(m); |
65 | } |
66 | } |
67 |