#include <boost/serialization/string.hpp>
#include <fstream>
#include <string>
+#include <cstdio>
//
// serialization helper: we can't save a non-const object
add( vec, new Derived( 1 ), 1u );
BOOST_CHECK_EQUAL( vec.size(), 2u );
+ std::string fn = std::tmpnam( 0 );
+
{
- std::ofstream ofs("filename");
+ std::ofstream ofs( fn.c_str() );
OArchive oa(ofs);
oa << boost::serialization::make_nvp( "container", as_const(vec) );
}
Cont vec2;
{
- std::ifstream ifs("filename", std::ios::binary);
+ std::ifstream ifs( fn.c_str(), std::ios::binary );
IArchive ia(ifs);
ia >> boost::serialization::make_nvp( "container", vec2 );
}
+ std::remove( fn.c_str() );
+
BOOST_CHECK_EQUAL( vec.size(), vec2.size() );
BOOST_CHECK_EQUAL( (*vec2.begin()).i, -1 );
BOOST_CHECK_EQUAL( (*++vec2.begin()).i, 0 );
add( vec, new Derived( 1 ), 1u );
BOOST_CHECK_EQUAL( vec.size(), 2u );
+ std::string fn = std::tmpnam( 0 );
+
{
- std::ofstream ofs("filename");
+ std::ofstream ofs( fn.c_str() );
OArchive oa(ofs);
oa << boost::serialization::make_nvp( "container", as_const(vec) );
}
Cont vec2;
{
- std::ifstream ifs("filename", std::ios::binary);
+ std::ifstream ifs( fn.c_str(), std::ios::binary );
IArchive ia(ifs);
ia >> boost::serialization::make_nvp( "container", vec2 );
}
+ std::remove( fn.c_str() );
+
BOOST_CHECK_EQUAL( vec.size(), vec2.size() );
BOOST_CHECK_EQUAL( (*vec2.begin()).i, -1 );
BOOST_CHECK_EQUAL( (*++vec2.begin()).i, 0 );
m.insert( key2, new Derived( 1 ) );
BOOST_CHECK_EQUAL( m.size(), 2u );
+ std::string fn = std::tmpnam( 0 );
+
{
- std::ofstream ofs("filename");
+ std::ofstream ofs( fn.c_str() );
OArchive oa(ofs);
oa << boost::serialization::make_nvp( "container", as_const(m) );
}
Map m2;
{
- std::ifstream ifs("filename", std::ios::binary);
+ std::ifstream ifs( fn.c_str(), std::ios::binary );
IArchive ia(ifs);
ia >> boost::serialization::make_nvp( "container", m2 );
}
+ std::remove( fn.c_str() );
+
BOOST_CHECK_EQUAL( m.size(), m2.size() );
BOOST_CHECK_EQUAL( m2.find(key1)->second->i, -1 );
BOOST_CHECK_EQUAL( m2.find(key2)->second->i, 0 );
{
Base* p = new Derived();
+ std::string fn = std::tmpnam( 0 );
+
{
- std::ofstream ofs("filename");
+ std::ofstream ofs( fn.c_str() );
boost::archive::text_oarchive oa(ofs);
oa << as_const(p);
}
Base* d = 0;
{
- std::ifstream ifs("filename", std::ios::binary);
+ std::ifstream ifs( fn.c_str(), std::ios::binary );
boost::archive::text_iarchive ia(ifs);
ia >> d;
}
+ std::remove( fn.c_str() );
+
BOOST_CHECK_EQUAL( p->i, d->i );
BOOST_CHECK( p != d );
BOOST_CHECK( dynamic_cast<Derived*>( d ) );