annotate DEPENDENCIES/generic/include/boost/serialization/stack.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents f46d142149f5
children
rev   line source
Chris@102 1 #ifndef BOOST_SERIALIZATION_STACK_HPP
Chris@102 2 #define BOOST_SERIALIZATION_STACK_HPP
Chris@102 3
Chris@102 4 // MS compatible compilers support #pragma once
Chris@102 5 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
Chris@102 6 # pragma once
Chris@102 7 #endif
Chris@102 8
Chris@102 9 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
Chris@102 10 // stack.hpp
Chris@102 11
Chris@102 12 // (C) Copyright 2014 Robert Ramey - http://www.rrsd.com .
Chris@102 13 // Use, modification and distribution is subject to the Boost Software
Chris@102 14 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
Chris@102 15 // http://www.boost.org/LICENSE_1_0.txt)
Chris@102 16
Chris@102 17 // See http://www.boost.org for updates, documentation, and revision history.
Chris@102 18
Chris@102 19 #include <stack>
Chris@102 20 #include <boost/config.hpp>
Chris@102 21
Chris@102 22 // function specializations must be defined in the appropriate
Chris@102 23 // namespace - boost::serialization
Chris@102 24 #if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
Chris@102 25 #define STD _STLP_STD
Chris@102 26 #else
Chris@102 27 #define STD std
Chris@102 28 #endif
Chris@102 29
Chris@102 30 namespace boost {
Chris@102 31 namespace serialization {
Chris@102 32 namespace detail{
Chris@102 33
Chris@102 34 template <typename U, typename C>
Chris@102 35 struct stack_save : public STD::stack<U, C> {
Chris@102 36 template<class Archive>
Chris@102 37 void operator()(Archive & ar, const unsigned int file_version) const {
Chris@102 38 save(ar, STD::stack<U, C>::c, file_version);
Chris@102 39 }
Chris@102 40 };
Chris@102 41 template <typename U, typename C>
Chris@102 42 struct stack_load : public STD::stack<U, C> {
Chris@102 43 template<class Archive>
Chris@102 44 void operator()(Archive & ar, const unsigned int file_version) {
Chris@102 45 load(ar, STD::stack<U, C>::c, file_version);
Chris@102 46 }
Chris@102 47 };
Chris@102 48
Chris@102 49 } // detail
Chris@102 50
Chris@102 51 template<class Archive, class T, class C>
Chris@102 52 inline void serialize(
Chris@102 53 Archive & ar,
Chris@102 54 std::stack< T, C> & t,
Chris@102 55 const unsigned int file_version
Chris@102 56 ){
Chris@102 57 typedef typename mpl::eval_if<
Chris@102 58 typename Archive::is_saving,
Chris@102 59 mpl::identity<detail::stack_save<T, C> >,
Chris@102 60 mpl::identity<detail::stack_load<T, C> >
Chris@102 61 >::type typex;
Chris@102 62 static_cast<typex &>(t)(ar, file_version);
Chris@102 63 }
Chris@102 64
Chris@102 65 } // namespace serialization
Chris@102 66 } // namespace boost
Chris@102 67
Chris@102 68 #include <boost/serialization/collection_traits.hpp>
Chris@102 69
Chris@102 70 BOOST_SERIALIZATION_COLLECTION_TRAITS(STD::stack)
Chris@102 71
Chris@102 72 #undef STD
Chris@102 73
Chris@102 74 #endif // BOOST_SERIALIZATION_DEQUE_HPP