diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
commit | 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch) | |
tree | e5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/libs/serialization/test/polymorphic_derived2.hpp | |
parent | Initial commit. (diff) | |
download | ceph-upstream.tar.xz ceph-upstream.zip |
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/serialization/test/polymorphic_derived2.hpp')
-rw-r--r-- | src/boost/libs/serialization/test/polymorphic_derived2.hpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/boost/libs/serialization/test/polymorphic_derived2.hpp b/src/boost/libs/serialization/test/polymorphic_derived2.hpp new file mode 100644 index 00000000..8c6b1c03 --- /dev/null +++ b/src/boost/libs/serialization/test/polymorphic_derived2.hpp @@ -0,0 +1,71 @@ +#ifndef BOOST_SERIALIZATION_TEST_POLYMORPHIC_DERIVED2_HPP +#define BOOST_SERIALIZATION_TEST_POLYMORPHIC_DERIVED2_HPP + +// MS compatible compilers support #pragma once +#if defined(_MSC_VER) +# pragma once +#endif + +/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 +// polymorphic_derived2.hpp simple class test + +// (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) + +// See http://www.boost.org for updates, documentation, and revision history. + +#include <boost/config.hpp> + +#include <boost/serialization/access.hpp> +#include <boost/serialization/nvp.hpp> +#include <boost/serialization/base_object.hpp> +#include <boost/serialization/type_info_implementation.hpp> +#include <boost/serialization/extended_type_info_typeid.hpp> + +#if defined(POLYMORPHIC_DERIVED2_IMPORT) + #define POLYMORPHIC_DERIVED2_DLL_DECL BOOST_SYMBOL_IMPORT + #pragma message ("polymorphic_derived2 imported") +#elif defined(POLYMORPHIC_DERIVED2_EXPORT) + #define POLYMORPHIC_DERIVED2_DLL_DECL BOOST_SYMBOL_EXPORT + #pragma message ("polymorphic_derived2 exported") +#endif + +#ifndef POLYMORPHIC_DERIVED2_DLL_DECL + #define POLYMORPHIC_DERIVED2_DLL_DECL +#endif + +#define POLYMORPHIC_BASE_IMPORT +#include "polymorphic_base.hpp" + +class BOOST_SYMBOL_VISIBLE polymorphic_derived2 : + public polymorphic_base +{ + friend class boost::serialization::access; + template<class Archive> + POLYMORPHIC_DERIVED2_DLL_DECL void serialize( + Archive &ar, + const unsigned int /* file_version */ + ); + POLYMORPHIC_DERIVED2_DLL_DECL const char * get_key() const; +public: + POLYMORPHIC_DERIVED2_DLL_DECL polymorphic_derived2(); + POLYMORPHIC_DERIVED2_DLL_DECL ~polymorphic_derived2(); +}; + +// we use this because we want to assign a key to this type +// but we don't want to explicitly instantiate code every time +// we do so!!!. If we don't do this, we end up with the same +// code in BOTH the DLL which implements polymorphic_derived2 +// as well as the main program. +BOOST_CLASS_EXPORT_KEY(polymorphic_derived2) + +// note the mixing of type_info systems is supported. +BOOST_CLASS_TYPE_INFO( + polymorphic_derived2, + boost::serialization::extended_type_info_typeid<polymorphic_derived2> +) + +#endif // BOOST_SERIALIZATION_TEST_POLYMORPHIC_DERIVED2_HPP + |