Boost logo

Boost :

Subject: [boost] [serialization] boost/serialization/path.hpp
From: Johan Råde (rade_at_[hidden])
Date: 2008-09-22 07:51:59


There is no boost/serialization/path.hpp.
I suggest the following:

----------------------------------------------------------------------------------------------------------------

#ifndef BOOST_SERIALIZATION_PATH_HPP
#define BOOST_SERIALIZATION_PATH_HPP

// MS compatible compilers support #pragma once
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#include <boost/config.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/serialization/level.hpp>

BOOST_CLASS_IMPLEMENTATION(boost::filesystem::path, boost::serialization::primitive_type)
#ifndef BOOST_NO_STD_WSTRING
BOOST_CLASS_IMPLEMENTATION(boost::filesystem::wpath, boost::serialization::primitive_type)
#endif

namespace boost { namespace serialization {

template<class Archive, class String, class Traits>
void serialize(Archive& ar, boost::filesystem::basic_path<String, Traits>& p,
                const unsigned int version)
{
     String s;
     if(Archive::is_saving::value)
         s = p.string();
     ar & boost::serialization::make_nvp("string", s);
     if(Archive::is_loading::value)
         p = s;
}

}}

#endif

//--------------------------------------------------------------------------------------------------------------

Comments? Any suggested improvements?

--Johan Råde


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk