basic_serializer_map.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 86 行

CPP
86
字号
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8// serializer_map.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)//  See http://www.boost.org for updates, documentation, and revision history.#if (defined _MSC_VER) && (_MSC_VER == 1200)#  pragma warning (disable : 4786) // too long name, harmless warning#endif#include <stdlib.h> // for NULL#define BOOST_ARCHIVE_SOURCE#include <boost/archive/detail/basic_serializer.hpp>#include <boost/archive/detail/basic_serializer_map.hpp>namespace boost {    namespace serialization {        class extended_type_info;    }namespace archive {namespace detail {#if 0BOOST_ARCHIVE_DECL(bool) type_info_pointer_compare::operator()(    const basic_serializer * lhs, const basic_serializer * rhs) const {    return *lhs < *rhs;}class basic_serializer_arg : public basic_serializer {public:    basic_serializer_arg(const serialization::extended_type_info & eti) :        basic_serializer(eti)    {}};#endif} // namespace detail} // namespace archive} // namespace boost#if 0BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())basic_serializer_map::basic_serializer_map(bool & deleted) :    m_deleted(deleted){    m_deleted = false;}BOOST_ARCHIVE_DECL(const basic_serializer *) basic_serializer_map::tfind(    const boost::serialization::extended_type_info & eti) const {    const basic_serializer_arg bs(eti);    map_type::const_iterator it;    boost::serialization::singleton<basic_serializer_map>::lease l;    it = l->m_map.find(& bs);    if(it == l->m_map.end())        return NULL;    return *it;}BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())basic_serializer_map::~basic_serializer_map(){    m_deleted = true;}BOOST_ARCHIVE_DECL(bool) basic_serializer_map::insert(const basic_serializer * bs){    boost::serialization::singleton<basic_serializer_map>::lease l;    return l->m_map.insert(bs).second;}BOOST_ARCHIVE_DECL(void) basic_serializer_map::erase(basic_serializer * bs){    boost::serialization::singleton<basic_serializer_map>::lease l;    l->m_map.erase(bs);}#endif

⌨️ 快捷键说明

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