diff --git a/include/boost/archive/detail/interface_oarchive.hpp b/include/boost/archive/detail/interface_oarchive.hpp index 7ae7176..b521d91 100644 --- a/include/boost/archive/detail/interface_oarchive.hpp +++ b/include/boost/archive/detail/interface_oarchive.hpp @@ -18,6 +18,8 @@ #include // NULL #include #include +#include +#include #include #include @@ -58,8 +60,14 @@ public: return & bpos; } - template - Archive & operator<<(T & t){ + template::value>::type> + Archive& operator<<(T & t){ + this->This()->save_override(t, 0); + return * this->This(); + } + + template::value>::type> + Archive& operator<<(const T & t){ this->This()->save_override(t, 0); return * this->This(); }