placeholder.hpp 993 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright Antony Polukhin, 2021-2025.
  2. //
  3. // Distributed under the Boost Software License, Version 1.0. (See
  4. // accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. #ifndef BOOST_ANY_ANYS_DETAIL_PLACEHOLDER_HPP
  7. #define BOOST_ANY_ANYS_DETAIL_PLACEHOLDER_HPP
  8. #include <boost/any/detail/config.hpp>
  9. #if !defined(BOOST_USE_MODULES) || defined(BOOST_ANY_INTERFACE_UNIT)
  10. #ifndef BOOST_ANY_INTERFACE_UNIT
  11. #include <boost/config.hpp>
  12. #ifdef BOOST_HAS_PRAGMA_ONCE
  13. # pragma once
  14. #endif
  15. #include <boost/type_index.hpp>
  16. #endif
  17. /// @cond
  18. namespace boost {
  19. namespace anys {
  20. namespace detail {
  21. class BOOST_SYMBOL_VISIBLE placeholder {
  22. public:
  23. virtual ~placeholder() {}
  24. virtual const boost::typeindex::type_info& type() const noexcept = 0;
  25. };
  26. } // namespace detail
  27. } // namespace anys
  28. } // namespace boost
  29. /// @endcond
  30. #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_ANY_INTERFACE_UNIT)
  31. #endif // #ifndef BOOST_ANY_ANYS_DETAIL_PLACEHOLDER_HPP