27 #ifndef CEREAL_TYPES_STRING_HPP_
28 #define CEREAL_TYPES_STRING_HPP_
30 #include <cereal/cereal.hpp>
36 template<
class Archive,
class CharT,
class Traits,
class Alloc>
inline
37 typename std::enable_if<traits::is_output_serializable<BinaryData<CharT>, Archive>(),
void>::type
38 save(Archive & ar, std::basic_string<CharT, Traits, Alloc>
const & str)
41 ar( make_size_tag( str.size() ) );
42 ar( binary_data( str.data(), str.size() *
sizeof(CharT) ) );
46 template<
class Archive,
class CharT,
class Traits,
class Alloc>
inline
47 typename std::enable_if<traits::is_input_serializable<BinaryData<CharT>, Archive>(),
void>::type
48 load(Archive & ar, std::basic_string<CharT, Traits, Alloc> & str)
51 ar( make_size_tag( size ) );
53 ar( binary_data( &(*str.begin()), size *
sizeof(CharT) ) );
57 #endif // CEREAL_TYPES_STRING_HPP_