]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/serialization/test/test_set.cpp
1 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
4 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
5 // (C) Copyright 2014 Jim Bell
6 // Use, modification and distribution is subject to the Boost Software
7 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
10 // should pass compilation and execution
12 #include <cstddef> // NULLsize_t
13 #include <cstdio> // remove
16 #include <algorithm> // std::copy
19 #include <boost/config.hpp>
20 #if defined(BOOST_NO_STDC_NAMESPACE)
26 #include <boost/detail/workaround.hpp>
27 #if defined(BOOST_NO_STDC_NAMESPACE)
33 #include <boost/archive/archive_exception.hpp>
35 #include "test_tools.hpp"
37 #include <boost/serialization/nvp.hpp>
38 #include <boost/serialization/set.hpp>
45 const char * testfile
= boost::archive::tmpnam(NULL
);
46 BOOST_REQUIRE(NULL
!= testfile
);
48 // test array of objects
52 const A
* a_ptr
= & * aset
.begin();
54 test_ostream
os(testfile
, TEST_STREAM_FLAGS
);
55 test_oarchive
oa(os
, TEST_ARCHIVE_FLAGS
);
56 oa
<< boost::serialization::make_nvp("aset", aset
);
57 // serialize a pointer into the set
58 oa
<< boost::serialization::make_nvp("a_ptr", a_ptr
);
63 test_istream
is(testfile
, TEST_STREAM_FLAGS
);
64 test_iarchive
ia(is
, TEST_ARCHIVE_FLAGS
);
65 ia
>> boost::serialization::make_nvp("aset", aset1
);
66 // deserialize a pointer into the set
67 ia
>> boost::serialization::make_nvp("a_ptr1", a_ptr1
);
69 BOOST_CHECK_EQUAL(aset
, aset1
);
70 BOOST_CHECK_EQUAL(*a_ptr1
, * aset1
.begin());
71 BOOST_CHECK_EQUAL(a_ptr1
, & * aset1
.begin());
72 std::remove(testfile
);
77 const char * testfile
= boost::archive::tmpnam(NULL
);
78 BOOST_REQUIRE(NULL
!= testfile
);
80 std::multiset
<A
> amultiset
;
81 amultiset
.insert(A());
82 amultiset
.insert(A());
83 const A
* a_ptr
= & * amultiset
.begin();
85 test_ostream
os(testfile
, TEST_STREAM_FLAGS
);
86 test_oarchive
oa(os
, TEST_ARCHIVE_FLAGS
);
87 oa
<< boost::serialization::make_nvp("amultiset", amultiset
);
88 // serialize a pointer into the set
89 oa
<< boost::serialization::make_nvp("a_ptr", a_ptr
);
91 std::multiset
<A
> amultiset1
;
94 test_istream
is(testfile
, TEST_STREAM_FLAGS
);
95 test_iarchive
ia(is
, TEST_ARCHIVE_FLAGS
);
96 ia
>> boost::serialization::make_nvp("amultiset", amultiset1
);
97 // deserialize a pointer into the set
98 ia
>> boost::serialization::make_nvp("a_ptr1", a_ptr1
);
100 BOOST_CHECK(amultiset
== amultiset1
);
101 BOOST_CHECK_EQUAL(*a_ptr1
, * amultiset1
.begin());
102 BOOST_CHECK_EQUAL(a_ptr1
, & * amultiset1
.begin());
103 std::remove(testfile
);
106 int test_main( int /* argc */, char* /* argv */[] ){