diff options
Diffstat (limited to 'boost/archive/detail/interface_oarchive.hpp')
-rw-r--r-- | boost/archive/detail/interface_oarchive.hpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/boost/archive/detail/interface_oarchive.hpp b/boost/archive/detail/interface_oarchive.hpp index 7ae71768a8..187013b6cd 100644 --- a/boost/archive/detail/interface_oarchive.hpp +++ b/boost/archive/detail/interface_oarchive.hpp @@ -29,7 +29,7 @@ namespace boost { namespace archive { namespace detail { -class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer; +class BOOST_ARCHIVE_OR_WARCHIVE_DECL basic_pointer_oserializer; template<class Archive> class interface_oarchive @@ -57,22 +57,25 @@ public: this->This()->register_basic_serializer(bpos.get_basic_serializer()); return & bpos; } + + template<class Helper> + Helper & + get_helper(void * const id = 0){ + helper_collection & hc = this->This()->get_helper_collection(); + return hc.template find_helper<Helper>(id); + } template<class T> - Archive & operator<<(T & t){ - this->This()->save_override(t, 0); + Archive & operator<<(const T & t){ + this->This()->save_override(t); return * this->This(); } // the & operator template<class T> - Archive & operator&(T & t){ - #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - return * this->This() << const_cast<const T &>(t); - #else - return * this->This() << t; - #endif - } + Archive & operator&(const T & t){ + return * this ->This() << t; + }; }; } // namespace detail |