/usr/include/boost/ptr_container/detail
NameSizeModeActions
associative_ptr_container.hpp142960644editdlrm
default_deleter.hpp21370644editdlrm
is_convertible.hpp24780644editdlrm
map_iterator.hpp37350644editdlrm
meta_functions.hpp13780644editdlrm
move.hpp11000644editdlrm
ptr_container_disable_deprecated.hpp10960644editdlrm
reversible_ptr_container.hpp306720644editdlrm
scoped_deleter.hpp36140644editdlrm
serialize_ptr_map_adapter.hpp34870644editdlrm
serialize_reversible_cont.hpp32950644editdlrm
serialize_xml_names.hpp8760644editdlrm
static_move_ptr.hpp59490644editdlrm
throw_exception.hpp8540644editdlrm
void_ptr_iterator.hpp77760644editdlrm
Edit: /usr/include/boost/ptr_container/detail/serialize_ptr_map_adapter.hpp (3487B)
// Copyright Sebastian Ramacher, 2007. // Distributed under 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) #ifndef BOOST_PTR_CONTAINER_DETAIL_SERIALIZE_PTR_MAP_ADAPTER_HPP #define BOOST_PTR_CONTAINER_DETAIL_SERIALIZE_PTR_MAP_ADAPTER_HPP #include #include #include #include namespace boost { namespace serialization { template void save(Archive& ar, const ptr_container_detail::ptr_map_adapter_base& c, unsigned int /*version*/) { typedef ptr_container_detail::ptr_map_adapter_base container; typedef BOOST_DEDUCED_TYPENAME container::const_iterator const_iterator; ar << boost::serialization::make_nvp( ptr_container_detail::count(), ptr_container_detail::serialize_as_const(c.size()) ); const_iterator i = c.begin(), e = c.end(); for(; i != e; ++i) { ar << boost::serialization::make_nvp( ptr_container_detail::first(), i->first ); ar << boost::serialization::make_nvp( ptr_container_detail::second(), ptr_container_detail::serialize_as_const(i->second) ); } } template void load(Archive& ar, ptr_map_adapter& c, unsigned int /*version*/) { typedef ptr_map_adapter container; typedef BOOST_DEDUCED_TYPENAME container::key_type key_type; typedef BOOST_DEDUCED_TYPENAME container::size_type size_type; typedef BOOST_DEDUCED_TYPENAME container::iterator iterator; c.clear(); size_type n; ar >> boost::serialization::make_nvp( ptr_container_detail::count(), n ); for(size_type i = 0u; i != n; ++i) { key_type key; T* value; ar >> boost::serialization::make_nvp( ptr_container_detail::first(), key ); ar >> boost::serialization::make_nvp( ptr_container_detail::second(), value ); std::pair p = c.insert(key, value); ar.reset_object_address(&p.first->first, &key); } } template void load(Archive& ar, ptr_multimap_adapter& c, unsigned int /*version*/) { typedef ptr_multimap_adapter container; typedef BOOST_DEDUCED_TYPENAME container::key_type key_type; typedef BOOST_DEDUCED_TYPENAME container::size_type size_type; typedef BOOST_DEDUCED_TYPENAME container::iterator iterator; c.clear(); size_type n; ar >> boost::serialization::make_nvp( ptr_container_detail::count(), n ); for(size_type i = 0u; i != n; ++i) { key_type key; T* value; ar >> boost::serialization::make_nvp( ptr_container_detail::first(), key ); ar >> boost::serialization::make_nvp( ptr_container_detail::second(), value ); iterator p = c.insert(key, value); ar.reset_object_address(&p->first, &key); } } } // namespace serialization } // namespace boost #endif