summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/serialization/test/test_private_ctor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/serialization/test/test_private_ctor.cpp')
-rw-r--r--src/boost/libs/serialization/test/test_private_ctor.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/boost/libs/serialization/test/test_private_ctor.cpp b/src/boost/libs/serialization/test/test_private_ctor.cpp
new file mode 100644
index 000000000..84cc66c78
--- /dev/null
+++ b/src/boost/libs/serialization/test/test_private_ctor.cpp
@@ -0,0 +1,66 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_private_ctor.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <sstream>
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/vector.hpp>
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+
+class V {
+private:
+ friend int test_main(int /* argc */, char * /* argv */[]);
+ friend class boost::serialization::access;
+ int m_i;
+ V() :
+ m_i(0)
+ {}
+ template<class Archive>
+ void serialize(Archive& ar, unsigned /*version*/)
+ {
+ ar & m_i;
+ }
+public:
+ ~V(){}
+ bool operator==(const V & v) const {
+ return m_i == v.m_i;
+ }
+};
+
+int test_main(int /* argc */, char * /* argv */[])
+{
+ std::stringstream ss;
+ const V v;
+ {
+ boost::archive::text_oarchive oa(ss);
+ oa << v;
+ }
+ V v1;
+ {
+ boost::archive::text_iarchive ia(ss);
+ ia >> v1;
+ }
+ BOOST_CHECK(v == v1);
+
+ const V *vptr = & v;
+ {
+ boost::archive::text_oarchive oa(ss);
+ oa << vptr;
+ }
+ V *vptr1;
+ {
+ boost::archive::text_iarchive ia(ss);
+ ia >> vptr1;
+ }
+ BOOST_CHECK(*vptr == *vptr1);
+
+ return EXIT_SUCCESS;
+}