forward_skeleton_oarchive.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 79 行

HPP
79
字号
// (C) Copyright 2005 Matthias Troyer // 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)//  Authors: Matthias Troyer#ifndef BOOST_MPI_DETAIL_FORWARD_SKELETON_OARCHIVE_HPP#define BOOST_MPI_DETAIL_FORWARD_SKELETON_OARCHIVE_HPP#include <boost/pfto.hpp>#include <boost/archive/detail/auto_link_archive.hpp>#include <boost/archive/detail/oserializer.hpp>#include <boost/archive/detail/interface_oarchive.hpp>#include <boost/archive/detail/common_oarchive.hpp>#include <boost/serialization/collection_size_type.hpp>namespace boost { namespace mpi { namespace detail {template<class Archive, class ImplementationArchive>class forward_skeleton_oarchive   : public archive::detail::common_oarchive<Archive>{public:    typedef ImplementationArchive implementation_archive_type;    forward_skeleton_oarchive(implementation_archive_type& ar)       : archive::detail::common_oarchive<Archive>(archive::no_header),        implementation_archive(ar)    {    }#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDSpublic:#else    friend class archive::detail::interface_oarchive<Archive>;    friend class archive::save_access;protected:#endif    // intermediate level to support override of operators    // for templates in the absence of partial function     // template ordering    template<class T>    void save_override(T const& t, BOOST_PFTO int)    {        archive::save(* this->This(), t);    }#define BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(T) \    void save_override(T const & t , int)       \    {                                           \      implementation_archive << t;              \    }BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::class_id_optional_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::version_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::class_id_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::class_id_reference_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::object_id_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::object_reference_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::tracking_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(archive::class_name_type)BOOST_ARCHIVE_FORWARD_IMPLEMENTATION(serialization::collection_size_type)#undef BOOST_ARCHIVE_FORWARD_IMPLEMENTATIONprotected:    /// the actual archive used to serialize the information we actually want to store    implementation_archive_type& implementation_archive;};} } } // end namespace boost::mpi::detail#endif // BOOST_MPI_DETAIL_FORWARD_SKELETON_OARCHIVE_HPP

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?