diff --git a/include/cereal/archives/xml.hpp b/include/cereal/archives/xml.hpp index 87604354..747c6b5d 100644 --- a/include/cereal/archives/xml.hpp +++ b/include/cereal/archives/xml.hpp @@ -135,6 +135,12 @@ namespace cereal itsNodes.top().node->append_node( itsXML.allocate_node( rapidxml::node_data, nullptr, dataPtr ) ); } + //! Overload for uint8_t prevents them from being serialized as characters + void saveValue( uint8_t const & value ) + { + saveValue( static_cast( value ) ); + } + //! Saves some binary data, encoded as a base64 string, with an optional name /*! This will create a new node, optionally named, and insert a value that consists of the data encoded as a base64 string */ diff --git a/sandbox.cpp b/sandbox.cpp index 0e260313..204ad680 100644 --- a/sandbox.cpp +++ b/sandbox.cpp @@ -351,6 +351,12 @@ int main() int xxx[] = {-1, 95, 3}; oar.saveBinaryValue( xxx, sizeof(int)*3, "xxxbinary" ); //oar.saveBinaryValue( xxx, sizeof(int)*3 ); + + std::unique_ptr d1( new Derived() ); + std::unique_ptr d2( new Derived() ); + oar( d1 ); + oar( d2 ); + oar( d2 ); } if(false) diff --git a/sandbox_rtti.cpp b/sandbox_rtti.cpp index 9e1fc13a..7a9a665f 100644 --- a/sandbox_rtti.cpp +++ b/sandbox_rtti.cpp @@ -175,24 +175,6 @@ template void nop(T&&) {} int main() { - std::cout << std::boolalpha; - - std::cout << cereal::traits::is_specialized_member_load_save() << std::endl; - std::cout << cereal::traits::is_specialized_member_load_save() << std::endl; - //std::cout << cereal::traits::is_specialized_non_member_serialize() << std::endl; - //std::cout << cereal::traits::is_input_serializable() << std::endl; - //std::cout << cereal::traits::has_non_member_serialize() << std::endl; - //std::cout << cereal::traits::is_specialized_member_serialize() << std::endl; - std::cout << cereal::traits::has_member_serialize() << std::endl; - - std::cout << "sssssssssssss" <() << std::endl; - //std::cout << cereal::traits::has_non_member_load() << std::endl; - std::cout << cereal::traits::has_member_serialize() << std::endl; - //std::cout << cereal::traits::has_non_member_serialize() << std::endl; - - { std::ofstream ostream("rtti.txt"); cereal::BinaryOutputArchive oarchive(ostream);