
I've been looking at this issue. It turns out that the connection of serialization of pointers to primitives to tracking was an unintentional side-effect of the implementation. When it started to happen I just assumed it was an intentional decision. Looking through the code - it doesn't look trivial to address. Wouldn't the following modification to your test program address your concern? Robert Ramey #include <boost/archive/text_oarchive.hpp> #include <sstream> namespace boost { namespace serialization { template<class Archive> void serialize( Archive &ar, int & i, const unsigned int file_version ){ ar & i; }; }} int main() { int x=0; int* const px=&x; std::ostringstream oss; boost::archive::text_oarchive oa(oss); oa<<px; return 0; }