| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // Copyright Antony Polukhin, 2021-2025.
- //
- // Distributed under the Boost Software License, Version 1.0. (See
- // accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- // Contributed by Ruslan Arutyunyan
- #ifndef BOOST_ANY_ANYS_FWD_HPP
- #define BOOST_ANY_ANYS_FWD_HPP
- #include <boost/any/detail/config.hpp>
- #if !defined(BOOST_USE_MODULES) || defined(BOOST_ANY_INTERFACE_UNIT)
- #ifndef BOOST_ANY_INTERFACE_UNIT
- #include <boost/config.hpp>
- #ifdef BOOST_HAS_PRAGMA_ONCE
- # pragma once
- #endif
- #endif // #ifndef BOOST_ANY_INTERFACE_UNIT
- /// \file boost/any/fwd.hpp
- /// \brief Forward declarations of Boost.Any library types.
- /// @cond
- namespace boost {
- BOOST_ANY_BEGIN_MODULE_EXPORT
- class any;
- BOOST_ANY_END_MODULE_EXPORT
- namespace anys {
- BOOST_ANY_BEGIN_MODULE_EXPORT
- class unique_any;
- template<std::size_t OptimizeForSize = sizeof(void*), std::size_t OptimizeForAlignment = alignof(void*)>
- class basic_any;
- BOOST_ANY_END_MODULE_EXPORT
- namespace detail {
- template <class T>
- struct is_basic_any: public std::false_type {};
- template<std::size_t OptimizeForSize, std::size_t OptimizeForAlignment>
- struct is_basic_any<boost::anys::basic_any<OptimizeForSize, OptimizeForAlignment> > : public std::true_type {};
- template <class T>
- struct is_some_any: public is_basic_any<T> {};
- template <>
- struct is_some_any<boost::any>: public std::true_type {};
- template <>
- struct is_some_any<boost::anys::unique_any>: public std::true_type {};
- } // namespace detail
- } // namespace anys
- } // namespace boost
- /// @endcond
- #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_ANY_INTERFACE_UNIT)
- #endif // #ifndef BOOST_ANY_ANYS_FWD_HPP
|