1 #ifndef PORTABLE_BINARY_OARCHIVE_HPP
2 #define PORTABLE_BINARY_OARCHIVE_HPP
5 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
10 #pragma warning( push )
11 #pragma warning( disable : 4244 )
27 #include <boost/config.hpp>
28 #include <boost/serialization/string.hpp>
29 #include <boost/archive/archive_exception.hpp>
30 #include <boost/archive/basic_binary_oprimitive.hpp>
31 #include <boost/archive/detail/common_oarchive.hpp>
32 #include <boost/archive/detail/register_archive.hpp>
33 #include <boost/archive/detail/auto_link_archive.hpp>
41 public virtual boost::archive::archive_exception
49 virtual const char *what( )
const throw( )
51 const char *msg =
"programmer error";
54 msg =
"cannot be both big and little endian";
56 boost::archive::archive_exception::what();
78 public boost::archive::basic_binary_oprimitive<
79 portable_binary_oarchive,
80 std::ostream::char_type,
81 std::ostream::traits_type
83 public boost::archive::detail::common_oarchive<
84 portable_binary_oarchive
87 typedef boost::archive::basic_binary_oprimitive<
89 std::ostream::char_type,
90 std::ostream::traits_type
92 friend class boost::archive::basic_binary_oprimitive<
94 std::ostream::char_type,
95 std::ostream::traits_type
97 typedef boost::archive::detail::common_oarchive<
98 portable_binary_oarchive
100 friend class boost::archive::detail::common_oarchive<
101 portable_binary_oarchive
108 friend class boost::archive::detail::interface_oarchive<
109 portable_binary_oarchive
111 friend class boost::archive::save_access;
115 unsigned int m_flags;
116 void save_impl(const boost::intmax_t l, const char maxsize);
124 void save(const T & t){
125 save_impl(t,
sizeof(
T));
127 void save(
const std::string & t){
128 this->primitive_base_t::save(t);
130 #ifndef BOOST_NO_STD_WSTRING
131 void save(
const std::wstring & t){
132 this->primitive_base_t::save(t);
136 this->primitive_base_t::save(t);
141 this->primitive_base_t::save(t);
146 this->primitive_base_t::save(t);
148 void save(
const unsigned char & t){
149 this->primitive_base_t::save(t);
154 typedef boost::archive::detail::common_oarchive<portable_binary_oarchive>
158 this->detail_common_oarchive::save_override(t, 0);
162 const std::string s(t);
167 const boost::archive::class_id_optional_type & ,
171 void init(
unsigned int flags);
176 0 != (flags & boost::archive::no_codecvt)
185 std::basic_streambuf<
186 std::ostream::char_type,
187 std::ostream::traits_type
193 0 != (flags & boost::archive::no_codecvt)
203 #ifdef BOOST_SERIALIZATION_REGISTER_ARCHIVE
208 #define BOOST_ARCHIVE_CUSTOM_OARCHIVE_TYPES portable_binary_oarchive
210 #if defined(_MSC_VER)
211 #pragma warning( pop )
214 #endif // PORTABLE_BINARY_OARCHIVE_HPP