Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <boost/archive/text_iarchive.hpp>
- #include <boost/archive/text_oarchive.hpp>
- #include <boost/serialization/access.hpp>
- #include <boost/move/move.hpp>
- #include <boost/thread.hpp>
- #include <iostream>
- #include <string>
- #include <sstream>
- typedef boost::archive::text_oarchive outputArchive;
- typedef boost::archive::text_iarchive inputArchive;
- template<typename T> class serializableValue
- {
- T _t;
- public:
- serializableValue(T t) : _t(t) { }
- serializableValue() { }
- serializableValue(serializableValue &rhs) : _t(rhs._t) { }
- serializableValue(serializableValue &&rhs) : _t(rhs._t) { }
- T operator ()() const { return _t; }
- void operator=(T &rhs) { _t = rhs; }
- void operator=(T rhs) { _t = rhs; }
- private:
- friend boost::serialization::access;
- template<typename U> void serialize(U & ar, const unsigned int)
- {
- ar & _t;
- }
- };
- int main()
- {
- for(;;)
- {
- std::string data;
- // Daten serialisieren
- {
- std::stringstream ss;
- outputArchive oa(ss);
- oa << serializableValue<int>(5) << serializableValue<float>(5.5) << serializableValue<std::string>("Hallo Welt");
- std::cout << "Serialisierten Daten: " << ss.str() << std::endl;
- data = ss.str();
- }
- // Daten deserialisieren
- {
- std::stringstream ss(data);
- inputArchive ia(ss);
- serializableValue<int> x; serializableValue<float> y; serializableValue<std::string> z;
- ia >> x >> y >> z;
- std::cout << "Deserialisiert: " << x() << ' ' << y() << ' ' << z() << std::endl;
- }
- }
- std::cin.get();
- }
Advertisement
Add Comment
Please, Sign In to add comment