⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basic_text_iarchive.ipp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 IPP
字号:
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8// basic_text_iarchive.ipp:// (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 <string>#include <cassert>#include <algorithm>#include <cstring>#include <boost/config.hpp> // for BOOST_DEDUCED_TYPENAME#if defined(BOOST_NO_STDC_NAMESPACE)namespace std{     using ::memcpy; }#endif#include <boost/detail/workaround.hpp>#include <boost/archive/basic_text_iarchive.hpp>namespace boost {namespace archive {/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8// implementation of text_text_archivetemplate<class Archive>BOOST_ARCHIVE_OR_WARCHIVE_DECL(void)basic_text_iarchive<Archive>::load_override(class_name_type & t, int){    std::string cn;    cn.reserve(BOOST_SERIALIZATION_MAX_KEY_SIZE);    load_override(cn, 0);    if(cn.size() > (BOOST_SERIALIZATION_MAX_KEY_SIZE - 1))        boost::serialization::throw_exception(            archive_exception(archive_exception::invalid_class_name)        );    std::memcpy(t, cn.data(), cn.size());    // borland tweak    t.t[cn.size()] = '\0';}template<class Archive>BOOST_ARCHIVE_OR_WARCHIVE_DECL(void)basic_text_iarchive<Archive>::init(void){    // read signature in an archive version independent manner    std::string file_signature;    * this->This() >> file_signature;    if(file_signature != BOOST_ARCHIVE_SIGNATURE())        boost::serialization::throw_exception(            archive_exception(archive_exception::invalid_signature)        );    // make sure the version of the reading archive library can    // support the format of the archive being read    version_type input_library_version;    * this->This() >> input_library_version;    #if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3205))    this->set_library_version(input_library_version);    #else    #if ! BOOST_WORKAROUND(BOOST_MSVC, <= 1200)    detail::    #endif    basic_iarchive::set_library_version(input_library_version.t);    #endif    // extra little .t is to get around borland quirk    if(BOOST_ARCHIVE_VERSION() < input_library_version.t)        boost::serialization::throw_exception(            archive_exception(archive_exception::unsupported_version)        );}} // namespace archive} // namespace boost

⌨️ 快捷键说明

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