Index: storage.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/numeric/ublas/storage.hpp,v retrieving revision 1.75 diff -u -p -r1.75 storage.hpp --- storage.hpp 21 Jun 2006 18:17:53 -0000 1.75 +++ storage.hpp 2 Jan 2007 21:02:53 -0000 @@ -22,6 +22,9 @@ #include #endif +#include +#include + #include #include @@ -109,6 +112,25 @@ namespace boost { namespace numeric { na } } + // Serialization + private: + friend class boost::serialization::access; + template + void save(Archive & ar, const unsigned int version) const + { + ar & size_; + ar & serialization::make_array(data_, size_); + } + template + void load(Archive & ar, const unsigned int version) + { + size_type new_size; + ar & new_size; + resize_internal(new_size, value_type(), false); + ar & serialization::make_array(data_, size_); + } + BOOST_SERIALIZATION_SPLIT_MEMBER() + // Resizing private: BOOST_UBLAS_INLINE @@ -433,6 +455,26 @@ namespace boost { namespace numeric { na } private: + // Serialization + friend class boost::serialization::access; + template + void save(Archive & ar, const unsigned int version) const + { + ar & size_; + ar & serialization::make_array(data_, size_); + } + template + void load(Archive & ar, const unsigned int version) + { + size_type new_size; + ar & new_size; + if (new_size > N) bad_size("too large size in bounded_array::load()\n").raise(); + resize(new_size); + ar & serialization::make_array(data_, size_); + } + BOOST_SERIALIZATION_SPLIT_MEMBER() + + private: size_type size_; BOOST_UBLAS_BOUNDED_ARRAY_ALIGN value_type data_ [N]; };