polymorphic_impl_fwd.hpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*! \file polymorphic_impl_fwd.hpp
  2. \brief Internal polymorphism support forward declarations
  3. \ingroup Internal */
  4. /*
  5. Copyright (c) 2014, Randolph Voorhies, Shane Grant
  6. All rights reserved.
  7. Redistribution and use in source and binary forms, with or without
  8. modification, are permitted provided that the following conditions are met:
  9. * Redistributions of source code must retain the above copyright
  10. notice, this list of conditions and the following disclaimer.
  11. * Redistributions in binary form must reproduce the above copyright
  12. notice, this list of conditions and the following disclaimer in the
  13. documentation and/or other materials provided with the distribution.
  14. * Neither the name of the copyright holder nor the
  15. names of its contributors may be used to endorse or promote products
  16. derived from this software without specific prior written permission.
  17. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  18. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  19. WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  20. DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
  21. DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  22. (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  23. LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  24. ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25. (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  26. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. */
  28. /* This code is heavily inspired by the boost serialization implementation by the following authors
  29. (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
  30. Use, modification and distribution is subject to the Boost Software
  31. License, Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt)
  32. See http://www.boost.org for updates, documentation, and revision history.
  33. (C) Copyright 2006 David Abrahams - http://www.boost.org.
  34. See /boost/serialization/export.hpp and /boost/archive/detail/register_archive.hpp for their
  35. implementation.
  36. */
  37. #ifndef CEREAL_DETAILS_POLYMORPHIC_IMPL_FWD_HPP_
  38. #define CEREAL_DETAILS_POLYMORPHIC_IMPL_FWD_HPP_
  39. namespace cereal
  40. {
  41. namespace detail
  42. {
  43. //! Forward declaration, see polymorphic_impl.hpp for more information
  44. template <class Base, class Derived>
  45. struct RegisterPolymorphicCaster;
  46. //! Forward declaration, see polymorphic_impl.hpp for more information
  47. struct PolymorphicCasters;
  48. //! Forward declaration, see polymorphic_impl.hpp for more information
  49. template <class Base, class Derived>
  50. struct PolymorphicRelation;
  51. } // namespace detail
  52. } // namespace cereal
  53. #endif // CEREAL_DETAILS_POLYMORPHIC_IMPL_FWD_HPP_