scoped_ptr.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 65 行

HPP
65
字号
#ifndef BOOST_SERIALIZATION_SCOPED_PTR_HPP_VP_2003_10_30#define BOOST_SERIALIZATION_SCOPED_PTR_HPP_VP_2003_10_30#if defined(_MSC_VER) && (_MSC_VER >= 1020)# pragma once#endif//  Copyright (c) 2003 Vladimir Prus.// 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)// Provides non-intrusive serialization for boost::scoped_ptr// Does not allow to serialize scoped_ptr's to builtin types.#include <boost/config.hpp>#include <boost/scoped_ptr.hpp>#include <boost/serialization/nvp.hpp>#include <boost/serialization/split_free.hpp>// function specializations must be defined in the appropriate// namespace - boost::serializationnamespace boost { #ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUPnamespace serialization {#endif        template<class Archive, class T>    void save(        Archive & ar,         const boost::scoped_ptr<T> & t,         const unsigned int /* version */    ){        T* r = t.get();        ar << boost::serialization::make_nvp("scoped_ptr", r);    }    template<class Archive, class T>    void load(        Archive & ar,         boost::scoped_ptr<T> & t,         const unsigned int /* version */    ){        T* r;        ar >> boost::serialization::make_nvp("scoped_ptr", r);        t.reset(r);     }    template<class Archive, class T>    void serialize(        Archive& ar,         boost::scoped_ptr<T>& t,         const unsigned int version    ){        boost::serialization::split_free(ar, t, version);    }#ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP} // namespace serialization#endif} // namespace boost#endif

⌨️ 快捷键说明

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