mirror of
https://github.com/USCiLab/cereal.git
synced 2025-10-18 01:45:52 +02:00
Added binary enum serialization
This commit is contained in:
2
Makefile
2
Makefile
@@ -1,5 +1,5 @@
|
|||||||
CPPFLAGS=-std=c++11 -I./include -Wall -Werror
|
CPPFLAGS=-std=c++11 -I./include -Wall -Werror
|
||||||
CC=g++
|
CC=clang++
|
||||||
|
|
||||||
all: unittests sandbox performance
|
all: unittests sandbox performance
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,16 @@ namespace cereal
|
|||||||
ar.loadBinary(std::addressof(t), sizeof(t));
|
ar.loadBinary(std::addressof(t), sizeof(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! Serialization for enum types to binary
|
||||||
|
template<class Archive, class T> inline
|
||||||
|
typename std::enable_if<std::is_enum<T>::value &&
|
||||||
|
(std::is_same<Archive, BinaryInputArchive>::value || std::is_same<Archive, BinaryOutputArchive>::value),
|
||||||
|
void>::type
|
||||||
|
serialize(Archive & ar, T & t)
|
||||||
|
{
|
||||||
|
ar( reinterpret_cast<typename std::underlying_type<T>::type &>(t) );
|
||||||
|
}
|
||||||
|
|
||||||
//! Serializing NVP types to binary
|
//! Serializing NVP types to binary
|
||||||
template <class Archive, class T> inline
|
template <class Archive, class T> inline
|
||||||
CEREAL_ARCHIVE_RESTRICT_SERIALIZE(BinaryInputArchive, BinaryOutputArchive)
|
CEREAL_ARCHIVE_RESTRICT_SERIALIZE(BinaryInputArchive, BinaryOutputArchive)
|
||||||
|
|||||||
@@ -41,12 +41,12 @@ namespace cereal
|
|||||||
string
|
string
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Archive> inline
|
//template <class Archive> inline
|
||||||
CEREAL_ARCHIVE_RESTRICT_SERIALIZE(BinaryInputArchive, BinaryOutputArchive)
|
//CEREAL_ARCHIVE_RESTRICT_SERIALIZE(BinaryInputArchive, BinaryOutputArchive)
|
||||||
serialize( Archive & ar, type & t )
|
//serialize( Archive & ar, type & t )
|
||||||
{
|
//{
|
||||||
ar( reinterpret_cast<uint8_t &>( t ) );
|
// ar( reinterpret_cast<uint8_t &>( t ) );
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Serializing (save) for std::bitset to binary
|
//! Serializing (save) for std::bitset to binary
|
||||||
|
|||||||
@@ -65,14 +65,12 @@ class Test2
|
|||||||
void save(Archive & ar) const
|
void save(Archive & ar) const
|
||||||
{
|
{
|
||||||
ar(a);
|
ar(a);
|
||||||
//ar(CEREAL_NVP(a));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Archive>
|
template<class Archive>
|
||||||
void load(Archive & ar)
|
void load(Archive & ar)
|
||||||
{
|
{
|
||||||
ar(a);
|
ar(a);
|
||||||
//ar(CEREAL_NVP(a));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1816,4 +1816,3 @@ BOOST_AUTO_TEST_CASE( binary_chrono )
|
|||||||
BOOST_CHECK_EQUAL( o_timePoint1 == i_timePoint1, true );
|
BOOST_CHECK_EQUAL( o_timePoint1 == i_timePoint1, true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user