Boost serialization doesn't work with shared_ptr<int>
问题 The following piece of code compiles just fine: #include <boost/serialization/shared_ptr.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> #include <sstream> #include <memory> struct A { int i; A(): i(0) {} A(int i): i(i) {} template <typename Archive> void serialize(Archive& ar, const unsigned int) { ar & i; } }; int main() { auto a = std::make_shared<A>(465); std::stringstream stream; boost::archive::text_oarchive out{stream}; out << a; } Now I would