void save_and_load4(SP & spc) { const char * testfile = boost::archive::tmpnam(NULL); BOOST_REQUIRE(NULL != testfile); save4(testfile, spc); SP spc1; load4(testfile, spc1); BOOST_CHECK( (spc.get() == NULL && spc1.get() == NULL) || * spc == * spc1 ); std::remove(testfile); }