#ifndef CEREAL_BINARY_ARCHIVE_SET_HPP_ #define CEREAL_BINARY_ARCHIVE_SET_HPP_ #include #include namespace cereal { //! Saving for std::set all other types to binary template void save( BinaryOutputArchive & ar, std::set const & set ) { ar & set.size(); for( const auto & i : set ) ar & i; } //! Loading for std::set all other types to binary template void load( BinaryInputArchive & ar, std::set & set ) { size_t size; ar & size; for( size_t i = 0; i < size; ++i ) { K key; ar & key; set.insert( key ); } } //! Saving for std::multiset all other types to binary template void save( BinaryOutputArchive & ar, std::multiset const & multiset ) { ar & multiset.size(); for( const auto & i : multiset ) ar & i; } //! Loading for std::multiset all other types to binary template void load( BinaryInputArchive & ar, std::multiset & multiset ) { size_t size; ar & size; for( size_t i = 0; i < size; ++i ) { K key; ar & key; multiset.insert( key ); } } } // namespace cereal #endif // CEREAL_BINARY_ARCHIVE_SET_HPP_