Squashed 'third_party/boostorg/serialization/' content from commit 738695b

Change-Id: I48528198ad1f62b90288d249eb2243d4db02fd5d
git-subtree-dir: third_party/boostorg/serialization
git-subtree-split: 738695b70733f9d592a570fb17a505d6a029b48a
diff --git a/example/demo_polymorphic_A.hpp b/example/demo_polymorphic_A.hpp
new file mode 100644
index 0000000..17f9758
--- /dev/null
+++ b/example/demo_polymorphic_A.hpp
@@ -0,0 +1,39 @@
+#ifndef BOOST_SERIALIZATION_EXAMPLE_DEMO_POLYMORPHIC_A_HPP
+#define BOOST_SERIALIZATION_EXAMPLE_DEMO_POLYMORPHIC_A_HPP
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_polymorphic_A.hpp
+
+// (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)
+
+namespace boost {
+namespace archive {
+
+class polymorphic_iarchive;
+class polymorphic_oarchive;
+
+} // namespace archive
+} // namespace boost
+
+struct A {
+    // class a contains a pointer to a "hidden" declaration
+    template<class Archive>
+    void serialize(
+        Archive & ar, 
+        const unsigned int file_version
+    ){
+        ar & data;
+    }
+    int data;
+    bool operator==(const A & rhs) const {
+        return data == rhs.data;
+    }
+    A() :
+        data(0)
+    {}
+};
+
+#endif // BOOST_SERIALIZATION_EXAMPLE_DEMO_POLYMORPHIC_A_HPP