]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/serialization/test/test_private_base.cpp
1 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
2 // test_private_base.cpp
4 // (C) Copyright 2009 Eric Moyer - http://www.rrsd.com .
5 // Use, modification and distribution is subject to the Boost Software
6 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
9 // should pass compilation and execution
11 // invoke header for a custom archive test.
14 #include <boost/config.hpp>
15 #if defined(BOOST_NO_STDC_NAMESPACE)
21 #include <boost/serialization/access.hpp>
22 #include <boost/serialization/base_object.hpp>
23 #include <boost/serialization/export.hpp>
25 #include "test_tools.hpp"
28 friend class boost::serialization::access
;
30 template<class Archive
>
31 void serialize(Archive
& ar
, const unsigned int version
){
32 ar
& BOOST_SERIALIZATION_NVP(m_i
);
35 bool equals(const Base
&rhs
) const {
36 return m_i
== rhs
.m_i
;
44 class Derived
: private Base
{
45 friend class boost::serialization::access
;
48 return static_cast<Base
&>(*this);
50 template<class Archive
>
51 void serialize(Archive
& ar
, const unsigned int version
){
52 ar
& BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base
);
55 bool operator==(const Derived
&rhs
) const {
56 return Base::equals(static_cast<const Base
&>(rhs
));
64 test_main( int /* argc */, char* /* argv */[] )
66 const char * testfile
= boost::archive::tmpnam(NULL
);
67 BOOST_REQUIRE(NULL
!= testfile
);
71 test_ostream
os(testfile
, TEST_STREAM_FLAGS
);
72 test_oarchive
oa(os
, TEST_ARCHIVE_FLAGS
);
73 oa
<< boost::serialization::make_nvp("a", a
);
76 test_istream
is(testfile
, TEST_STREAM_FLAGS
);
77 test_iarchive
ia(is
, TEST_ARCHIVE_FLAGS
);
78 ia
>> boost::serialization::make_nvp("a", a1
);
80 BOOST_CHECK_EQUAL(a
, a1
);
81 std::remove(testfile
);