File indexing completed on 2025-01-18 09:28:29
0001 #ifndef BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP
0002 #define BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP
0003
0004
0005 #if defined(_MSC_VER)
0006 # pragma once
0007 #endif
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #include <boost/config.hpp>
0028 #include <boost/detail/workaround.hpp>
0029
0030 #include <boost/archive/detail/common_iarchive.hpp>
0031
0032 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
0033
0034 #ifdef BOOST_MSVC
0035 # pragma warning(push)
0036 # pragma warning(disable : 4511 4512)
0037 #endif
0038
0039 namespace boost {
0040 namespace archive {
0041
0042 namespace detail {
0043 template<class Archive> class interface_iarchive;
0044 }
0045
0046
0047
0048 template<class Archive>
0049 class BOOST_SYMBOL_VISIBLE basic_text_iarchive :
0050 public detail::common_iarchive<Archive>
0051 {
0052 #ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
0053 public:
0054 #else
0055 protected:
0056 #if BOOST_WORKAROUND(BOOST_MSVC, < 1500)
0057
0058
0059 friend detail::interface_iarchive<Archive>;
0060 #else
0061 friend class detail::interface_iarchive<Archive>;
0062 #endif
0063 #endif
0064
0065
0066
0067 typedef detail::common_iarchive<Archive> detail_common_iarchive;
0068 template<class T>
0069 void load_override(T & t){
0070 this->detail_common_iarchive::load_override(t);
0071 }
0072
0073 void load_override(class_id_optional_type & ){}
0074
0075 BOOST_ARCHIVE_OR_WARCHIVE_DECL void
0076 load_override(class_name_type & t);
0077
0078 BOOST_ARCHIVE_OR_WARCHIVE_DECL void
0079 init();
0080
0081 basic_text_iarchive(unsigned int flags) :
0082 detail::common_iarchive<Archive>(flags)
0083 {}
0084 ~basic_text_iarchive() BOOST_OVERRIDE {}
0085 };
0086
0087 }
0088 }
0089
0090 #ifdef BOOST_MSVC
0091 #pragma warning(pop)
0092 #endif
0093
0094 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
0095
0096 #endif