
As a workaround the code below works. However this solution is only possible because <char> and <unsigned char> can be assigned like this. I'd still be interested to learn how to do this without ugly code like this... ------------------------ SNIP ------------------------- BOOST_CLASS_IMPLEMENTATION(std::basic_string<unsigned char>, boost::serialization::primitive_type) class A { public: std::basic_string<unsigned char> m_string; private: friend class boost::serialization::access; template<class Archive> void save (Archive & ar, const unsigned int version) const { std::basic_string<char> s; s.assign (m_string.size (), (char)0); for (int i = 0; i < m_string.size (); ++i) { s[i] = (char)m_string[i]; } ar & s; } template<class Archive> void load (Archive & ar, const unsigned int version) { std::basic_string<char> s; ar & s; m_string.assign (s.size (), (unsigned char)0); for (int i = 0; i < s.size (); ++i) { m_string[i] = (unsigned char)s[i]; } } BOOST_SERIALIZATION_SPLIT_MEMBER() }; ------------------------ SNIP ------------------------- M'bert -- ----------- / http://herbert.the-little-red-haired-girl.org / ------------- =+= It was hard to code, so it should be hard to understand!