#ifndef CEREAL_BINARY_ARCHIVE_ARRAY_HPP_ #define CEREAL_BINARY_ARCHIVE_ARRAY_HPP_ #include #include namespace cereal { //! Saving for std::array primitive types to binary template typename std::enable_if::value, void>::type void save( BinaryOutputArchive & ar, std::array const & array ) { std::cout << "Saving array (arith)" << std::endl; ar.save_binary( array.data(), N * sizeof(T) ); } //! Loading for std::array primitive types to binary template typename std::enable_if::value, void>::type void load( BinaryInputArchive & ar, std::array & array ) { std::cout << "Loading array (arith)" << std::endl; ar.load_binary( array.data(), N * sizeof(T) ); } //! Saving for std::array all other types to binary template typename std::enable_if::value, void>::type void save( BinaryOutputArchive & ar, std::array const & array ) { std::cout << "Saving array" << std::endl; for( const auto & i : array ) ar & i; } //! Loading for std::array all other types to binary template typename std::enable_if::value, void>::type void load( BinaryInputArchive & ar, std::array & array ) { std::cout << "Loading array" << std::endl; for( auto & i : array ) ar & i; } } // namespace cereal #endif // CEREAL_BINARY_ARCHIVE_ARRAY_HPP_