test_polymorphic2imp.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
  2. // test_polymorphic2imp.cpp
  3. // (C) Copyright 2009 Robert Ramey - http://www.rrsd.com .
  4. // Use, modification and distribution is subject to the Boost Software
  5. // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. // should pass compilation and execution
  8. #include <boost/serialization/export.hpp>
  9. #include <boost/archive/polymorphic_oarchive.hpp>
  10. #include <boost/archive/polymorphic_iarchive.hpp>
  11. #include "test_polymorphic2.hpp"
  12. void A::serialize(
  13. boost::archive::polymorphic_oarchive &ar,
  14. const unsigned int /*version*/
  15. ){
  16. ar & BOOST_SERIALIZATION_NVP(i);
  17. }
  18. void A::serialize(
  19. boost::archive::polymorphic_iarchive &ar,
  20. const unsigned int /*version*/
  21. ){
  22. ar & BOOST_SERIALIZATION_NVP(i);
  23. }
  24. // note: only the most derived classes need be exported
  25. // BOOST_CLASS_EXPORT(A)
  26. void B::serialize(
  27. boost::archive::polymorphic_oarchive &ar,
  28. const unsigned int /*version*/
  29. ){
  30. ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
  31. }
  32. void B::serialize(
  33. boost::archive::polymorphic_iarchive &ar,
  34. const unsigned int /*version*/
  35. ){
  36. ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
  37. }
  38. BOOST_CLASS_EXPORT(B)