27 #ifndef CEREAL_TYPES_ARRAY_HPP_
28 #define CEREAL_TYPES_ARRAY_HPP_
30 #include <cereal/cereal.hpp>
37 template <
class Archive,
class T,
size_t N>
inline
38 typename std::enable_if<traits::is_output_serializable<BinaryData<T>, Archive>()
39 && std::is_arithmetic<T>::value,
void>::type
40 save( Archive & ar, std::array<T, N>
const & array )
42 ar( binary_data( array.data(), N *
sizeof(T) ) );
47 template <
class Archive,
class T,
size_t N>
inline
48 typename std::enable_if<traits::is_input_serializable<BinaryData<T>, Archive>()
49 && std::is_arithmetic<T>::value,
void>::type
50 load( Archive & ar, std::array<T, N> & array )
52 ar( binary_data( array.data(), N *
sizeof(T) ) );
56 template <
class Archive,
class T,
size_t N>
inline
57 typename std::enable_if<!traits::is_output_serializable<BinaryData<T>, Archive>()
58 || !std::is_arithmetic<T>::value,
void>::type
59 save( Archive & ar, std::array<T, N>
const & array )
61 for(
auto const & i : array )
66 template <
class Archive,
class T,
size_t N>
inline
67 typename std::enable_if<!traits::is_input_serializable<BinaryData<T>, Archive>()
68 || !std::is_arithmetic<T>::value,
void>::type
69 load( Archive & ar, std::array<T, N> & array )
71 for(
auto & i : array )
76 #endif // CEREAL_TYPES_ARRAY_HPP_