[/
 / Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 /
 / 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)
 /]

[heading Compiler/platform feature detection macros]

Asio automatically defines preprocessor macros corresponding to the detected
available features on a particular compiler and target platform. These macros
are named with the prefix `ASIO_HAS_`, and are listed in the table below.

Many of these macros also have a corresponding `ASIO_DISABLE_` macro that may
be used to explicitly disable the feature.

In general, `ASIO_HAS_` macros should not be explicitly defined by the user,
except when absolutely required as a workaround for the latest version of a
compiler or platform. For older compiler/platform combinations where a specific
`ASIO_HAS_` macro is not automatically defined, testing may have shown that a
claimed feature isn't sufficiently conformant to be compatible with Asio's
needs.

[table
  [[Macro][Description][Macro to disable feature]]
  [
    [`ASIO_HAS_ALIAS_TEMPLATES`]
    [
      Support alias templates on compilers known to allow it.
    ]
    [`ASIO_DISABLE_ALIAS_TEMPLATES`]
  ]
  [
    [`ASIO_HAS_BOOST_ARRAY`]
    [
      Boost array library.
    ]
    [`ASIO_DISABLE_BOOST_ARRAY`]
  ]
  [
    [`ASIO_HAS_BOOST_ASSERT`]
    [
      Boost assert macro.
    ]
    [`ASIO_DISABLE_BOOST_ASSERT`]
  ]
  [
    [`ASIO_HAS_BOOST_BIND`]
    [
      Boost bind function.
    ]
    [`ASIO_DISABLE_BOOST_BIND`]
  ]
  [
    [`ASIO_HAS_BOOST_CHRONO`]
    [
      Boost support for chrono.
    ]
    [`ASIO_DISABLE_BOOST_CHRONO`]
  ]
  [
    [`ASIO_HAS_BOOST_CONFIG`]
    [
      boostify: non-boost code ends here
    ]
    []
  ]
  [
    [`ASIO_HAS_BOOST_DATE_TIME`]
    [
      Boost support for the DateTime library.
    ]
    [`ASIO_DISABLE_BOOST_DATE_TIME`]
  ]
  [
    [`ASIO_HAS_BOOST_LIMITS`]
    [
      Boost limits header.
    ]
    [`ASIO_DISABLE_BOOST_LIMITS`]
  ]
  [
    [`ASIO_HAS_BOOST_REGEX`]
    [
      Boost regex library.
    ]
    [`ASIO_DISABLE_BOOST_REGEX`]
  ]
  [
    [`ASIO_HAS_BOOST_THROW_EXCEPTION`]
    [
      Boost throw_exception function.
    ]
    [`ASIO_DISABLE_BOOST_THROW_EXCEPTION`]
  ]
  [
    [`ASIO_HAS_BOOST_WORKAROUND`]
    [
      Boost's BOOST_WORKAROUND macro.
    ]
    [`ASIO_DISABLE_BOOST_WORKAROUND`]
  ]
  [
    [`ASIO_HAS_CHRONO`]
    [
      Some form of chrono library is available.
    ]
    []
  ]
  [
    [`ASIO_HAS_CLANG_LIBCXX`]
    [
      Clang / libc++ detection.
    ]
    []
  ]
  [
    [`ASIO_HAS_CONCEPTS`]
    [
      Support concepts on compilers known to allow them.
    ]
    [`ASIO_DISABLE_CONCEPTS`]
  ]
  [
    [`ASIO_HAS_CONSTANT_EXPRESSION_SFINAE`]
    [
      Support SFINAE use of constant expressions on compilers known to allow it.
    ]
    [`ASIO_DISABLE_CONSTANT_EXPRESSION_SFINAE`]
  ]
  [
    [`ASIO_HAS_CONSTEXPR`]
    [
      Support constexpr on compilers known to allow it.
    ]
    [`ASIO_DISABLE_CONSTEXPR`]
  ]
  [
    [`ASIO_HAS_CO_AWAIT`]
    [
      Support the co_await keyword on compilers known to allow it.
    ]
    [`ASIO_DISABLE_CO_AWAIT`]
  ]
  [
    [`ASIO_HAS_CSTDINT`]
    [
      Standard library support for the cstdint header.
    ]
    [`ASIO_DISABLE_CSTDINT`]
  ]
  [
    [`ASIO_HAS_CXX11_ALLOCATORS`]
    [
      Standard library support for the C++11 allocator additions.
    ]
    [`ASIO_DISABLE_CXX11_ALLOCATORS`]
  ]
  [
    [`ASIO_HAS_DECLTYPE`]
    [
      Support automatic type deduction on compilers known to support it.
    ]
    [`ASIO_DISABLE_DECLTYPE`]
  ]
  [
    [`ASIO_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS`]
    [
      Support default function template arguments on compilers known to allow it.
    ]
    [`ASIO_DISABLE_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS`]
  ]
  [
    [`ASIO_HAS_DEV_POLL`]
    [
      Solaris: /dev/poll.
    ]
    [`ASIO_DISABLE_DEV_POLL`]
  ]
  [
    [`ASIO_HAS_EPOLL`]
    [
      Linux: epoll, eventfd and timerfd.
    ]
    [`ASIO_DISABLE_EPOLL`]
  ]
  [
    [`ASIO_HAS_EVENTFD`]
    [
      Linux: epoll, eventfd and timerfd.
    ]
    [`ASIO_DISABLE_EVENTFD`]
  ]
  [
    [`ASIO_HAS_GETADDRINFO`]
    [
      Can use getaddrinfo() and getnameinfo().
    ]
    [`ASIO_DISABLE_GETADDRINFO`]
  ]
  [
    [`ASIO_HAS_HANDLER_HOOKS`]
    [
      Handler hooking. Disabled for ancient Borland C++ and gcc compilers.
    ]
    [`ASIO_DISABLE_HANDLER_HOOKS`]
  ]
  [
    [`ASIO_HAS_IOCP`]
    [
      Windows: IO Completion Ports.
    ]
    [`ASIO_DISABLE_IOCP`]
  ]
  [
    [`ASIO_HAS_KQUEUE`]
    [
      Mac OS X, FreeBSD, NetBSD, OpenBSD: kqueue.
    ]
    [`ASIO_DISABLE_KQUEUE`]
  ]
  [
    [`ASIO_HAS_LOCAL_SOCKETS`]
    [
      UNIX domain sockets.
    ]
    [`ASIO_DISABLE_LOCAL_SOCKETS`]
  ]
  [
    [`ASIO_HAS_MOVE`]
    [
      Support move construction and assignment on compilers known to allow it.
    ]
    [`ASIO_DISABLE_MOVE`]
  ]
  [
    [`ASIO_HAS_MSG_NOSIGNAL`]
    [
      Kernel support for MSG_NOSIGNAL.
    ]
    []
  ]
  [
    [`ASIO_HAS_NOEXCEPT`]
    [
      Support noexcept on compilers known to allow it.
    ]
    [`ASIO_DISABLE_NOEXCEPT`]
  ]
  [
    [`ASIO_HAS_NULLPTR`]
    [
      Standard library support for the nullptr_t type.
    ]
    [`ASIO_DISABLE_NULLPTR`]
  ]
  [
    [`ASIO_HAS_POSIX_STREAM_DESCRIPTOR`]
    [
      POSIX: stream-oriented file descriptors.
    ]
    [`ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR`]
  ]
  [
    [`ASIO_HAS_PTHREADS`]
    [
      POSIX threads.
    ]
    []
  ]
  [
    [`ASIO_HAS_REF_QUALIFIED_FUNCTIONS`]
    [
      Support ref-qualified functions on compilers known to allow it.
    ]
    [`ASIO_DISABLE_REF_QUALIFIED_FUNCTIONS`]
  ]
  [
    [`ASIO_HAS_RETURN_TYPE_DEDUCTION`]
    [
      Support return type deduction on compilers known to allow it.
    ]
    [`ASIO_DISABLE_RETURN_TYPE_DEDUCTION`]
  ]
  [
    [`ASIO_HAS_SECURE_RTL`]
    [
      Microsoft Visual C++'s secure C runtime library.
    ]
    [`ASIO_DISABLE_SECURE_RTL`]
  ]
  [
    [`ASIO_HAS_SERIAL_PORT`]
    [
      Serial ports.
    ]
    [`ASIO_DISABLE_SERIAL_PORT`]
  ]
  [
    [`ASIO_HAS_SFINAE_VARIABLE_TEMPLATES`]
    [
      Support SFINAEd template variables on compilers known to allow it.
    ]
    [`ASIO_DISABLE_SFINAE_VARIABLE_TEMPLATES`]
  ]
  [
    [`ASIO_HAS_SIGACTION`]
    [
      Can use sigaction() instead of signal().
    ]
    [`ASIO_DISABLE_SIGACTION`]
  ]
  [
    [`ASIO_HAS_SIGNAL`]
    [
      Can use signal().
    ]
    [`ASIO_DISABLE_SIGNAL`]
  ]
  [
    [`ASIO_HAS_SOURCE_LOCATION`]
    [
      Standard library has a source_location that we can use.
    ]
    [`ASIO_DISABLE_SOURCE_LOCATION`]
  ]
  [
    [`ASIO_HAS_SSIZE_T`]
    [
      Support for POSIX ssize_t typedef.
    ]
    [`ASIO_DISABLE_SSIZE_T`]
  ]
  [
    [`ASIO_HAS_STD_ADDRESSOF`]
    [
      Standard library support for addressof.
    ]
    [`ASIO_DISABLE_STD_ADDRESSOF`]
  ]
  [
    [`ASIO_HAS_STD_ALLOCATOR_ARG`]
    [
      Standard library support for allocator_arg_t.
    ]
    [`ASIO_DISABLE_STD_ALLOCATOR_ARG`]
  ]
  [
    [`ASIO_HAS_STD_ANY`]
    [
      Standard library support for std::any.
    ]
    [`ASIO_DISABLE_STD_ANY`]
  ]
  [
    [`ASIO_HAS_STD_ARRAY`]
    [
      Standard library support for arrays.
    ]
    [`ASIO_DISABLE_STD_ARRAY`]
  ]
  [
    [`ASIO_HAS_STD_ATOMIC`]
    [
      Standard library support for atomic operations.
    ]
    [`ASIO_DISABLE_STD_ATOMIC`]
  ]
  [
    [`ASIO_HAS_STD_CALL_ONCE`]
    [
      Standard library support for the call_once function.
    ]
    [`ASIO_DISABLE_STD_CALL_ONCE`]
  ]
  [
    [`ASIO_HAS_STD_CHRONO`]
    [
      Standard library support for chrono. Some standard libraries (such as the
      libstdc++ shipped with gcc 4.6) provide monotonic_clock as per early C++0x
      drafts, rather than the eventually standardised name of steady_clock.
    ]
    [`ASIO_DISABLE_STD_CHRONO`]
  ]
  [
    [`ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK`]
    [
      Standard library support for chrono. Some standard libraries (such as the
      libstdc++ shipped with gcc 4.6) provide monotonic_clock as per early C++0x
      drafts, rather than the eventually standardised name of steady_clock.
    ]
    []
  ]
  [
    [`ASIO_HAS_STD_COROUTINE`]
    [
      Standard library support for coroutines.
    ]
    [`ASIO_DISABLE_STD_COROUTINE`]
  ]
  [
    [`ASIO_HAS_STD_EXCEPTION_PTR`]
    [
      Standard library support for std::exception_ptr and std::current_exception.
    ]
    [`ASIO_DISABLE_STD_EXCEPTION_PTR`]
  ]
  [
    [`ASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION`]
    [
      Standard library support for std::experimental::source_location.
    ]
    [`ASIO_DISABLE_STD_EXPERIMENTAL_SOURCE_LOCATION`]
  ]
  [
    [`ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW`]
    [
      Standard library support for std::experimental::string_view.
    ]
    [`ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW`]
  ]
  [
    [`ASIO_HAS_STD_FUNCTION`]
    [
      Standard library support for the function class.
    ]
    [`ASIO_DISABLE_STD_FUNCTION`]
  ]
  [
    [`ASIO_HAS_STD_FUTURE`]
    [
      Standard library support for futures.
    ]
    [`ASIO_DISABLE_STD_FUTURE`]
  ]
  [
    [`ASIO_HAS_STD_HASH`]
    [
      Standard library support for std::hash.
    ]
    [`ASIO_DISABLE_STD_HASH`]
  ]
  [
    [`ASIO_HAS_STD_INVOKE_RESULT`]
    [
      Standard library has invoke_result (which supersedes result_of).
    ]
    [`ASIO_DISABLE_STD_INVOKE_RESULT`]
  ]
  [
    [`ASIO_HAS_STD_IOSTREAM_MOVE`]
    [
      Standard library support for iostream move construction and assignment.
    ]
    [`ASIO_DISABLE_STD_IOSTREAM_MOVE`]
  ]
  [
    [`ASIO_HAS_STD_MUTEX_AND_CONDVAR`]
    [
      Standard library support for the mutex and condition variable classes.
    ]
    [`ASIO_DISABLE_STD_MUTEX_AND_CONDVAR`]
  ]
  [
    [`ASIO_HAS_STD_NESTED_EXCEPTION`]
    [
      Standard library support for std::nested_exception.
    ]
    [`ASIO_DISABLE_STD_NESTED_EXCEPTION`]
  ]
  [
    [`ASIO_HAS_STD_SHARED_PTR`]
    [
      Standard library support for shared_ptr and weak_ptr.
    ]
    [`ASIO_DISABLE_STD_SHARED_PTR`]
  ]
  [
    [`ASIO_HAS_STD_STRING_VIEW`]
    [
      Standard library support for std::string_view.
    ]
    [`ASIO_DISABLE_STD_STRING_VIEW`]
  ]
  [
    [`ASIO_HAS_STD_SYSTEM_ERROR`]
    [
      Standard library support for system errors.
    ]
    [`ASIO_DISABLE_STD_SYSTEM_ERROR`]
  ]
  [
    [`ASIO_HAS_STD_THREAD`]
    [
      Standard library support for the thread class.
    ]
    [`ASIO_DISABLE_STD_THREAD`]
  ]
  [
    [`ASIO_HAS_STD_TYPE_TRAITS`]
    [
      Standard library support for type traits.
    ]
    [`ASIO_DISABLE_STD_TYPE_TRAITS`]
  ]
  [
    [`ASIO_HAS_STRING_VIEW`]
    [
      Standard library has a string_view that we can use.
    ]
    [`ASIO_DISABLE_STRING_VIEW`]
  ]
  [
    [`ASIO_HAS_THREADS`]
    [
      Threads.
    ]
    [`ASIO_DISABLE_THREADS`]
  ]
  [
    [`ASIO_HAS_THREAD_KEYWORD_EXTENSION`]
    [
      Support for the __thread keyword extension.
    ]
    [`ASIO_DISABLE_THREAD_KEYWORD_EXTENSION`]
  ]
  [
    [`ASIO_HAS_TIMERFD`]
    [
      Linux: epoll, eventfd and timerfd.
    ]
    []
  ]
  [
    [`ASIO_HAS_UNISTD_H`]
    [
      On POSIX (and POSIX-like) platforms we need to include unistd.h in order to
      get access to the various platform feature macros, e.g. to be able to test
      for threads support.
    ]
    []
  ]
  [
    [`ASIO_HAS_VARIABLE_TEMPLATES`]
    [
      Support template variables on compilers known to allow it.
    ]
    [`ASIO_DISABLE_VARIABLE_TEMPLATES`]
  ]
  [
    [`ASIO_HAS_VARIADIC_TEMPLATES`]
    [
      Support variadic templates on compilers known to allow it.
    ]
    [`ASIO_DISABLE_VARIADIC_TEMPLATES`]
  ]
  [
    [`ASIO_HAS_WINDOWS_OBJECT_HANDLE`]
    [
      Windows: object handles.
    ]
    [`ASIO_DISABLE_WINDOWS_OBJECT_HANDLE`]
  ]
  [
    [`ASIO_HAS_WINDOWS_OVERLAPPED_PTR`]
    [
      Windows: OVERLAPPED wrapper.
    ]
    [`ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR`]
  ]
  [
    [`ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE`]
    [
      Windows: random access handles.
    ]
    [`ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE`]
  ]
  [
    [`ASIO_HAS_WINDOWS_STREAM_HANDLE`]
    [
      Windows: stream handles.
    ]
    [`ASIO_DISABLE_WINDOWS_STREAM_HANDLE`]
  ]
  [
    [`ASIO_HAS_WORKING_EXPRESSION_SFINAE`]
    [
      Enable workarounds for lack of working expression SFINAE.
    ]
    [`ASIO_DISABLE_WORKING_EXPRESSION_SFINAE`]
  ]
]
