about to make some changes
This commit is contained in:
@@ -251,10 +251,6 @@ namespace cereal
|
||||
static auto member_load_minimal(T & t, U const & u) -> decltype(t.template load_minimal<Archive>(u))
|
||||
{ t.template load_minimal<Archive>(u); }
|
||||
|
||||
// needed to get a function pointer to load_minimal
|
||||
template<class Archive, class T> inline
|
||||
static auto member_load_minimal_type(T &) -> decltype(&T::template load_minimal<Archive>);
|
||||
|
||||
// ####### Versioned Serialization #######################################
|
||||
template<class Archive, class T> inline
|
||||
static auto member_serialize(Archive & ar, T & t, const std::uint32_t version ) -> decltype(t.serialize(ar, version))
|
||||
@@ -284,16 +280,6 @@ namespace cereal
|
||||
static auto member_load_minimal(T & t, U const & u, const std::uint32_t version) -> decltype(t.template load_minimal<Archive>(u, version))
|
||||
{ t.template load_minimal<Archive>(u, version); }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
template<class Archive, class T, class NoConvert> inline
|
||||
static auto member_load_minimal_type() -> decltype(NoConvert(&T::template load_minimal<Archive>));
|
||||
|
||||
template<class Archive, class T, class NoConvert> inline
|
||||
static auto member_load_minimal_type(const std::uint32_t) -> decltype(NoConvert(&T::template load_minimal<Archive>));
|
||||
|
||||
// ####### Other Functionality ##########################################
|
||||
// for detecting inheritance from enable_shared_from_this
|
||||
template <class T> inline
|
||||
|
||||
@@ -401,6 +401,30 @@ namespace cereal
|
||||
return *self;
|
||||
}
|
||||
|
||||
//! Member split (save_minimal)
|
||||
template <class T> inline
|
||||
typename std::enable_if<traits::has_member_save_minimal<T, ArchiveType>::value && !traits::has_invalid_output_versioning<T, ArchiveType>::value &&
|
||||
(traits::is_specialized_member_save_minimal<T, ArchiveType>::value || traits::is_output_serializable<T, ArchiveType>::value),
|
||||
ArchiveType &>::type
|
||||
processImpl(T const & t)
|
||||
{
|
||||
std::cerr << "I WOULD SAVE MINIMAL... IF I COULD!" << std::endl;
|
||||
//access::member_save(*self, t);
|
||||
return *self;
|
||||
}
|
||||
|
||||
//! Non member split (save_minimal)
|
||||
template <class T> inline
|
||||
typename std::enable_if<traits::has_non_member_save_minimal<T, ArchiveType>::value && !traits::has_invalid_output_versioning<T, ArchiveType>::value &&
|
||||
(traits::is_specialized_non_member_save_minimal<T, ArchiveType>::value || traits::is_output_serializable<T, ArchiveType>::value),
|
||||
ArchiveType &>::type
|
||||
processImpl(T const & t)
|
||||
{
|
||||
std::cerr << "I WOULD SAVE MINIMAL (non member)... IF I COULD!" << std::endl;
|
||||
//save(*self, t);
|
||||
return *self;
|
||||
}
|
||||
|
||||
//! Empty class specialization
|
||||
template <class T> inline
|
||||
typename std::enable_if<(Flags & AllowEmptyClassElision) &&
|
||||
@@ -499,6 +523,34 @@ namespace cereal
|
||||
return *self;
|
||||
}
|
||||
|
||||
//! Member split (save_minimal)
|
||||
/*! Versioning implementation */
|
||||
template <class T> inline
|
||||
typename std::enable_if<traits::has_member_versioned_save_minimal<T, ArchiveType>::value && !traits::has_invalid_output_versioning<T, ArchiveType>::value &&
|
||||
(traits::is_specialized_member_save_minimal<T, ArchiveType>::value || traits::is_output_serializable<T, ArchiveType>::value),
|
||||
ArchiveType &>::type
|
||||
processImpl(T const & t)
|
||||
{
|
||||
std::cerr << "I WOULD SAVE MINIMAL (versioned)... IF I COULD!" << std::endl;
|
||||
registerClassVersion<T>( detail::Version<T>::version );
|
||||
//access::member_save(*self, t, detail::Version<T>::version);
|
||||
return *self;
|
||||
}
|
||||
|
||||
//! Non member split (save_minimal)
|
||||
/*! Versioning implementation */
|
||||
template <class T> inline
|
||||
typename std::enable_if<traits::has_non_member_versioned_save_minimal<T, ArchiveType>::value && !traits::has_invalid_output_versioning<T, ArchiveType>::value &&
|
||||
(traits::is_specialized_non_member_save_minimal<T, ArchiveType>::value || traits::is_output_serializable<T, ArchiveType>::value),
|
||||
ArchiveType &>::type
|
||||
processImpl(T const & t)
|
||||
{
|
||||
std::cerr << "I WOULD SAVE MINIMAL (versioned)... IF I COULD!" << std::endl;
|
||||
registerClassVersion<T>( detail::Version<T>::version );
|
||||
//save(*self, t, detail::Version<T>::version);
|
||||
return *self;
|
||||
}
|
||||
|
||||
private:
|
||||
ArchiveType * const self;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user