123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- //
- // Copyright (c) 2023 Klemens Morgenstern (klemens.morgenstern@gmx.net)
- //
- // 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)
- //
- #include <boost/config.hpp>
- #ifndef BOOST_COBALT_CONFIG_HPP
- #define BOOST_COBALT_CONFIG_HPP
- #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_COBALT_DYN_LINK)
- #if defined(BOOST_COBALT_SOURCE)
- #define BOOST_COBALT_DECL BOOST_SYMBOL_EXPORT
- #else
- #define BOOST_COBALT_DECL BOOST_SYMBOL_IMPORT
- #endif
- #else
- #define BOOST_COBALT_DECL
- #endif
- #if defined(BOOST_COBALT_USE_IO_CONTEXT)
- # include <boost/asio/io_context.hpp>
- #elif !defined(BOOST_COBALT_CUSTOM_EXECUTOR)
- # include <boost/asio/any_io_executor.hpp>
- #endif
- #if BOOST_VERSION < 108200
- #error "Boost.Async needs Boost v1.82 or later otherwise the Boost.ASIO is missing needed support"
- #endif
- #if defined(_MSC_VER)
- // msvc doesn't correctly suspend for self-deletion, hence we must workaround here
- #define BOOST_COBALT_NO_SELF_DELETE 1
- #endif
- #if !defined(BOOST_COBALT_USE_STD_PMR) && \
- !defined(BOOST_COBALT_USE_BOOST_CONTAINER_PMR) && \
- !defined(BOOST_COBALT_USE_CUSTOM_PMR) && \
- !defined(BOOST_COBALT_NO_PMR)
- #define BOOST_COBALT_USE_STD_PMR 1
- #endif
- #if defined(BOOST_COBALT_USE_BOOST_CONTAINER_PMR)
- #include <boost/container/pmr/memory_resource.hpp>
- #include <boost/container/pmr/unsynchronized_pool_resource.hpp>
- #include <boost/container/pmr/polymorphic_allocator.hpp>
- #include <boost/container/pmr/monotonic_buffer_resource.hpp>
- #include <boost/container/pmr/global_resource.hpp>
- #include <boost/container/pmr/vector.hpp>
- #endif
- #if defined(BOOST_COBALT_USE_STD_PMR)
- #include <memory_resource>
- #endif
- #if !defined(BOOST_COBALT_OP_SBO_SIZE)
- #define BOOST_COBALT_SBO_BUFFER_SIZE 4096
- #endif
- namespace boost::cobalt
- {
- #if defined(BOOST_COBALT_USE_IO_CONTEXT)
- using executor = boost::asio::io_context::executor_type;
- #elif !defined(BOOST_COBALT_CUSTOM_EXECUTOR)
- using executor = boost::asio::any_io_executor;
- #endif
- #if defined(BOOST_COBALT_USE_BOOST_CONTAINER_PMR)
- namespace pmr = boost::container::pmr;
- #endif
- #if defined(BOOST_COBALT_USE_STD_PMR)
- namespace pmr = std::pmr;
- #endif
- }
- #endif //BOOST_COBALT_CONFIG_HPP
|