diff options
| author | Tobias Markmann <tm@ayena.de> | 2014-10-19 20:22:58 (GMT) | 
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2014-10-20 13:49:33 (GMT) | 
| commit | 6b22dfcf59474dd016a0355a3102a1dd3692d92c (patch) | |
| tree | 2b1fd33be433a91e81fee84fdc2bf1b52575d934 /3rdParty/Boost/src/boost/asio/detail/config.hpp | |
| parent | 38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff) | |
| download | swift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip swift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.tar.bz2 | |
Update Boost in 3rdParty to version 1.56.0.
This updates Boost in our 3rdParty directory to version 1.56.0.
Updated our update.sh script to stop on error.
Changed error reporting in SwiftTools/CrashReporter.cpp to SWIFT_LOG due to
missing include of <iostream> with newer Boost.
Change-Id: I4b35c77de951333979a524097f35f5f83d325edc
Diffstat (limited to '3rdParty/Boost/src/boost/asio/detail/config.hpp')
| -rw-r--r-- | 3rdParty/Boost/src/boost/asio/detail/config.hpp | 871 | 
1 files changed, 694 insertions, 177 deletions
| diff --git a/3rdParty/Boost/src/boost/asio/detail/config.hpp b/3rdParty/Boost/src/boost/asio/detail/config.hpp index c47c007..453f04d 100644 --- a/3rdParty/Boost/src/boost/asio/detail/config.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/config.hpp @@ -3,5 +3,5 @@  // ~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -12,6 +12,20 @@  #define BOOST_ASIO_DETAIL_CONFIG_HPP -#include <boost/config.hpp> -#include <boost/version.hpp> +#if defined(BOOST_ASIO_STANDALONE) +# define BOOST_ASIO_DISABLE_BOOST_ARRAY 1 +# define BOOST_ASIO_DISABLE_BOOST_ASSERT 1 +# define BOOST_ASIO_DISABLE_BOOST_BIND 1 +# define BOOST_ASIO_DISABLE_BOOST_CHRONO 1 +# define BOOST_ASIO_DISABLE_BOOST_DATE_TIME 1 +# define BOOST_ASIO_DISABLE_BOOST_LIMITS 1 +# define BOOST_ASIO_DISABLE_BOOST_REGEX 1 +# define BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT 1 +# define BOOST_ASIO_DISABLE_BOOST_THROW_EXCEPTION 1 +# define BOOST_ASIO_DISABLE_BOOST_WORKAROUND 1 +#else // defined(BOOST_ASIO_STANDALONE) +# include <boost/config.hpp> +# include <boost/version.hpp> +# define BOOST_ASIO_HAS_BOOST_CONFIG 1 +#endif // defined(BOOST_ASIO_STANDALONE)  // Default to a header-only implementation. The user must specifically request @@ -21,5 +35,5 @@  # if !defined(BOOST_ASIO_SEPARATE_COMPILATION)  #  if !defined(BOOST_ASIO_DYN_LINK) -#   define BOOST_ASIO_HEADER_ONLY +#   define BOOST_ASIO_HEADER_ONLY 1  #  endif // !defined(BOOST_ASIO_DYN_LINK)  # endif // !defined(BOOST_ASIO_SEPARATE_COMPILATION) @@ -29,5 +43,5 @@  # define BOOST_ASIO_DECL inline  #else // defined(BOOST_ASIO_HEADER_ONLY) -# if defined(BOOST_HAS_DECLSPEC) +# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__)  // We need to import/export our code only if the user has specifically asked  // for it by defining BOOST_ASIO_DYN_LINK. @@ -40,5 +54,5 @@  #   endif // defined(BOOST_ASIO_SOURCE)  #  endif // defined(BOOST_ASIO_DYN_LINK) -# endif // defined(BOOST_HAS_DECLSPEC) +# endif // defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__)  #endif // defined(BOOST_ASIO_HEADER_ONLY) @@ -48,14 +62,47 @@  #endif // !defined(BOOST_ASIO_DECL) +// Microsoft Visual C++ detection. +#if !defined(BOOST_ASIO_MSVC) +# if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC) +#  define BOOST_ASIO_MSVC BOOST_MSVC +# elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) +#  define BOOST_ASIO_MSVC _MSC_VER +# endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC) +#endif // defined(BOOST_ASIO_MSVC) + +// Clang / libc++ detection. +#if defined(__clang__) +# if (__cplusplus >= 201103) +#  if __has_include(<__config>) +#   include <__config> +#   if defined(_LIBCPP_VERSION) +#    define BOOST_ASIO_HAS_CLANG_LIBCXX 1 +#   endif // defined(_LIBCPP_VERSION) +#  endif // __has_include(<__config>) +# endif // (__cplusplus >= 201103) +#endif // defined(__clang__) +  // Support move construction and assignment on compilers known to allow it. -#if !defined(BOOST_ASIO_DISABLE_MOVE) -# if defined(__GNUC__) -#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -#   if defined(__GXX_EXPERIMENTAL_CXX0X__) -#    define BOOST_ASIO_HAS_MOVE -#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -#endif // !defined(BOOST_ASIO_DISABLE_MOVE) +#if !defined(BOOST_ASIO_HAS_MOVE) +# if !defined(BOOST_ASIO_DISABLE_MOVE) +#  if defined(__clang__) +#   if __has_feature(__cxx_rvalue_references__) +#    define BOOST_ASIO_HAS_MOVE 1 +#   endif // __has_feature(__cxx_rvalue_references__) +#  endif // defined(__clang__) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_MOVE 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_MOVE 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_MOVE) +#endif // !defined(BOOST_ASIO_HAS_MOVE)  // If BOOST_ASIO_MOVE_CAST isn't defined, and move support is available, define @@ -65,4 +112,5 @@  # define BOOST_ASIO_MOVE_ARG(type) type&&  # define BOOST_ASIO_MOVE_CAST(type) static_cast<type&&> +# define BOOST_ASIO_MOVE_CAST2(type1, type2) static_cast<type1, type2&&>  #endif // defined(BOOST_ASIO_HAS_MOVE) && !defined(BOOST_ASIO_MOVE_CAST) @@ -79,5 +127,5 @@  #   define BOOST_ASIO_MOVE_ARG(type) type  #  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4) -# elif defined(BOOST_MSVC) +# elif defined(BOOST_ASIO_MSVC)  #  if (_MSC_VER >= 1400)  #   define BOOST_ASIO_MOVE_ARG(type) const type& @@ -89,31 +137,78 @@  # endif  # define BOOST_ASIO_MOVE_CAST(type) static_cast<const type&> -#endif // !defined_BOOST_ASIO_MOVE_CAST +# define BOOST_ASIO_MOVE_CAST2(type1, type2) static_cast<const type1, type2&> +#endif // !defined(BOOST_ASIO_MOVE_CAST)  // Support variadic templates on compilers known to allow it. -#if !defined(BOOST_ASIO_DISABLE_VARIADIC_TEMPLATES) -# if defined(__GNUC__) -#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -#   if defined(__GXX_EXPERIMENTAL_CXX0X__) -#    define BOOST_ASIO_HAS_VARIADIC_TEMPLATES -#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -#endif // !defined(BOOST_ASIO_DISABLE_VARIADIC_TEMPLATES) +#if !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) +# if !defined(BOOST_ASIO_DISABLE_VARIADIC_TEMPLATES) +#  if defined(__clang__) +#   if __has_feature(__cxx_variadic_templates__) +#    define BOOST_ASIO_HAS_VARIADIC_TEMPLATES 1 +#   endif // __has_feature(__cxx_variadic_templates__) +#  endif // defined(__clang__) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_VARIADIC_TEMPLATES 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +# endif // !defined(BOOST_ASIO_DISABLE_VARIADIC_TEMPLATES) +#endif // !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES) + +// Support constexpr on compilers known to allow it. +#if !defined(BOOST_ASIO_HAS_CONSTEXPR) +# if !defined(BOOST_ASIO_DISABLE_CONSTEXPR) +#  if defined(__clang__) +#   if __has_feature(__cxx_constexpr__) +#    define BOOST_ASIO_HAS_CONSTEXPR 1 +#   endif // __has_feature(__cxx_constexr__) +#  endif // defined(__clang__) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_CONSTEXPR 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +# endif // !defined(BOOST_ASIO_DISABLE_CONSTEXPR) +#endif // !defined(BOOST_ASIO_HAS_CONSTEXPR) +#if !defined(BOOST_ASIO_CONSTEXPR) +# if defined(BOOST_ASIO_HAS_CONSTEXPR) +#  define BOOST_ASIO_CONSTEXPR constexpr +# else // defined(BOOST_ASIO_HAS_CONSTEXPR) +#  define BOOST_ASIO_CONSTEXPR +# endif // defined(BOOST_ASIO_HAS_CONSTEXPR) +#endif // !defined(BOOST_ASIO_CONSTEXPR)  // Standard library support for system errors. -#if !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR) -# if defined(__GNUC__) -#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -#   if defined(__GXX_EXPERIMENTAL_CXX0X__) -#    define BOOST_ASIO_HAS_STD_SYSTEM_ERROR -#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -#endif // !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR) +# if !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR)  // Compliant C++11 compilers put noexcept specifiers on error_category members.  #if !defined(BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT) -# if defined(__GNUC__) +# if (BOOST_VERSION >= 105300) +#  define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT BOOST_NOEXCEPT +# elif defined(__clang__) +#  if __has_feature(__cxx_noexcept__) +#   define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true) +#  endif // __has_feature(__cxx_noexcept__) +# elif defined(__GNUC__)  #  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)  #   if defined(__GXX_EXPERIMENTAL_CXX0X__) @@ -128,71 +223,257 @@  // Standard library support for arrays. -#if !defined(BOOST_ASIO_DISABLE_STD_ARRAY) -# if defined(__GNUC__) -#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -#   if defined(__GXX_EXPERIMENTAL_CXX0X__) -#    define BOOST_ASIO_HAS_STD_ARRAY -#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(BOOST_MSVC) -#  if (_MSC_VER >= 1600) -#   define BOOST_ASIO_HAS_STD_ARRAY -#  endif // (_MSC_VER >= 1600) -# endif // defined(BOOST_MSVC) -#endif // !defined(BOOST_ASIO_DISABLE_STD_ARRAY) +#if !defined(BOOST_ASIO_HAS_STD_ARRAY) +# if !defined(BOOST_ASIO_DISABLE_STD_ARRAY) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_ARRAY 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_ARRAY 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1600) +#    define BOOST_ASIO_HAS_STD_ARRAY 1 +#   endif // (_MSC_VER >= 1600) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_ARRAY) +#endif // !defined(BOOST_ASIO_HAS_STD_ARRAY)  // Standard library support for shared_ptr and weak_ptr. -#if !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR) -# if defined(__GNUC__) -#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -#   if defined(__GXX_EXPERIMENTAL_CXX0X__) -#    define BOOST_ASIO_HAS_STD_SHARED_PTR -#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(BOOST_MSVC) -#  if (_MSC_VER >= 1600) -#   define BOOST_ASIO_HAS_STD_SHARED_PTR -#  endif // (_MSC_VER >= 1600) -# endif // defined(BOOST_MSVC) -#endif // !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR) +#if !defined(BOOST_ASIO_HAS_STD_SHARED_PTR) +# if !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_SHARED_PTR 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_SHARED_PTR 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1600) +#    define BOOST_ASIO_HAS_STD_SHARED_PTR 1 +#   endif // (_MSC_VER >= 1600) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR) +#endif // !defined(BOOST_ASIO_HAS_STD_SHARED_PTR)  // Standard library support for atomic operations. -#if !defined(BOOST_ASIO_DISABLE_STD_ATOMIC) -# if defined(__GNUC__) -#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -#   if defined(__GXX_EXPERIMENTAL_CXX0X__) -#    define BOOST_ASIO_HAS_STD_ATOMIC -#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -#endif // !defined(BOOST_ASIO_DISABLE_STD_ATOMIC) +#if !defined(BOOST_ASIO_HAS_STD_ATOMIC) +# if !defined(BOOST_ASIO_DISABLE_STD_ATOMIC) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_ATOMIC 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_ATOMIC 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_ATOMIC 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_ATOMIC) +#endif // !defined(BOOST_ASIO_HAS_STD_ATOMIC)  // 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. -#if !defined(BOOST_ASIO_DISABLE_STD_CHRONO) -# if defined(__GNUC__) -#  if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -#   if defined(__GXX_EXPERIMENTAL_CXX0X__) -#    define BOOST_ASIO_HAS_STD_CHRONO -#    if ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) -#     define BOOST_ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK -#    endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) -#   endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -#  endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -#endif // !defined(BOOST_ASIO_DISABLE_STD_CHRONO) +#if !defined(BOOST_ASIO_HAS_STD_CHRONO) +# if !defined(BOOST_ASIO_DISABLE_STD_CHRONO) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_CHRONO 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_CHRONO 1 +#     if ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) +#      define BOOST_ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK 1 +#     endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_CHRONO 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_CHRONO) +#endif // !defined(BOOST_ASIO_HAS_STD_CHRONO)  // Boost support for chrono. -#if !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO) -# if (BOOST_VERSION >= 104700) -#  define BOOST_ASIO_HAS_BOOST_CHRONO -#   endif // (BOOST_VERSION >= 104700) -#endif // !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO) +#if !defined(BOOST_ASIO_HAS_BOOST_CHRONO) +# if !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO) +#  if (BOOST_VERSION >= 104700) +#   define BOOST_ASIO_HAS_BOOST_CHRONO 1 +#  endif // (BOOST_VERSION >= 104700) +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO) +#endif // !defined(BOOST_ASIO_HAS_BOOST_CHRONO) + +// Boost support for the DateTime library. +#if !defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) +# if !defined(BOOST_ASIO_DISABLE_BOOST_DATE_TIME) +#  define BOOST_ASIO_HAS_BOOST_DATE_TIME 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_DATE_TIME) +#endif // !defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) + +// Standard library support for addressof. +#if !defined(BOOST_ASIO_HAS_STD_ADDRESSOF) +# if !defined(BOOST_ASIO_DISABLE_STD_ADDRESSOF) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_ADDRESSOF 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_ADDRESSOF 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_ADDRESSOF 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_ADDRESSOF) +#endif // !defined(BOOST_ASIO_HAS_STD_ADDRESSOF) + +// Standard library support for the function class. +#if !defined(BOOST_ASIO_HAS_STD_FUNCTION) +# if !defined(BOOST_ASIO_DISABLE_STD_FUNCTION) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_FUNCTION 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_FUNCTION 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_FUNCTION 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_FUNCTION) +#endif // !defined(BOOST_ASIO_HAS_STD_FUNCTION) + +// Standard library support for type traits. +#if !defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS) +# if !defined(BOOST_ASIO_DISABLE_STD_TYPE_TRAITS) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_TYPE_TRAITS) +#endif // !defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS) + +// Standard library support for the cstdint header. +#if !defined(BOOST_ASIO_HAS_CSTDINT) +# if !defined(BOOST_ASIO_DISABLE_CSTDINT) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_CSTDINT 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_CSTDINT 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_CSTDINT 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_CSTDINT) +#endif // !defined(BOOST_ASIO_HAS_CSTDINT) + +// Standard library support for the thread class. +#if !defined(BOOST_ASIO_HAS_STD_THREAD) +# if !defined(BOOST_ASIO_DISABLE_STD_THREAD) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_THREAD 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_THREAD 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_THREAD 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_THREAD) +#endif // !defined(BOOST_ASIO_HAS_STD_THREAD) + +// Standard library support for the mutex and condition variable classes. +#if !defined(BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR) +# if !defined(BOOST_ASIO_DISABLE_STD_MUTEX_AND_CONDVAR) +#  if defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#   define BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 +#  endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX) +#  if defined(__GNUC__) +#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) +#    if defined(__GXX_EXPERIMENTAL_CXX0X__) +#     define BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 +#    endif // defined(__GXX_EXPERIMENTAL_CXX0X__) +#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) +#  endif // defined(__GNUC__) +#  if defined(BOOST_ASIO_MSVC) +#   if (_MSC_VER >= 1700) +#    define BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 +#   endif // (_MSC_VER >= 1700) +#  endif // defined(BOOST_ASIO_MSVC) +# endif // !defined(BOOST_ASIO_DISABLE_STD_MUTEX_AND_CONDVAR) +#endif // !defined(BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR) + +// WinRT target. +#if !defined(BOOST_ASIO_WINDOWS_RUNTIME) +# if defined(__cplusplus_winrt) +#  include <winapifamily.h> +#  if WINAPI_FAMILY_ONE_PARTITION(WINAPI_FAMILY, WINAPI_PARTITION_APP) +#   define BOOST_ASIO_WINDOWS_RUNTIME 1 +#  endif // WINAPI_FAMILY_ONE_PARTITION(WINAPI_FAMILY, WINAPI_PARTITION_APP) +# endif // defined(__cplusplus_winrt) +#endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME) + +// Windows target. Excludes WinRT. +#if !defined(BOOST_ASIO_WINDOWS) +# if !defined(BOOST_ASIO_WINDOWS_RUNTIME) +#  if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS) +#   define BOOST_ASIO_WINDOWS 1 +#  elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) +#   define BOOST_ASIO_WINDOWS 1 +#  endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS) +# endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME) +#endif // !defined(BOOST_ASIO_WINDOWS)  // Windows: target OS version. -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) +#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)  # if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)  #  if defined(_MSC_VER) || defined(__BORLANDC__) @@ -232,8 +513,8 @@  #  endif // !defined(__USE_W32_SOCKETS)  # endif // defined(__CYGWIN__) -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) +#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)  // Windows: minimise header inclusion. -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) +#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)  # if !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN)  #  if !defined(WIN32_LEAN_AND_MEAN) @@ -241,8 +522,8 @@  #  endif // !defined(WIN32_LEAN_AND_MEAN)  # endif // !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN) -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) +#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)  // Windows: suppress definition of "min" and "max" macros. -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) +#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)  # if !defined(BOOST_ASIO_NO_NOMINMAX)  #  if !defined(NOMINMAX) @@ -250,35 +531,43 @@  #  endif // !defined(NOMINMAX)  # endif // !defined(BOOST_ASIO_NO_NOMINMAX) -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) +#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)  // Windows: IO Completion Ports. -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -#  if !defined(UNDER_CE) -#   if !defined(BOOST_ASIO_DISABLE_IOCP) -#    define BOOST_ASIO_HAS_IOCP 1 -#   endif // !defined(BOOST_ASIO_DISABLE_IOCP) -#  endif // !defined(UNDER_CE) -# endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) +#if !defined(BOOST_ASIO_HAS_IOCP) +# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) +#  if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) +#   if !defined(UNDER_CE) +#    if !defined(BOOST_ASIO_DISABLE_IOCP) +#     define BOOST_ASIO_HAS_IOCP 1 +#    endif // !defined(BOOST_ASIO_DISABLE_IOCP) +#   endif // !defined(UNDER_CE) +#  endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) +# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) +#endif // !defined(BOOST_ASIO_HAS_IOCP)  // Linux: epoll, eventfd and timerfd.  #if defined(__linux__)  # include <linux/version.h> -# if !defined(BOOST_ASIO_DISABLE_EPOLL) -#  if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) -#   define BOOST_ASIO_HAS_EPOLL 1 -#  endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) -# endif // !defined(BOOST_ASIO_DISABLE_EVENTFD) -# if !defined(BOOST_ASIO_DISABLE_EVENTFD) -#  if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -#   define BOOST_ASIO_HAS_EVENTFD 1 -#  endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -# endif // !defined(BOOST_ASIO_DISABLE_EVENTFD) -# if defined(BOOST_ASIO_HAS_EPOLL) -#  if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) -#   define BOOST_ASIO_HAS_TIMERFD 1 -#  endif // (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) -# endif // defined(BOOST_ASIO_HAS_EPOLL) +# if !defined(BOOST_ASIO_HAS_EPOLL) +#  if !defined(BOOST_ASIO_DISABLE_EPOLL) +#   if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) +#    define BOOST_ASIO_HAS_EPOLL 1 +#   endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) +#  endif // !defined(BOOST_ASIO_DISABLE_EPOLL) +# endif // !defined(BOOST_ASIO_HAS_EPOLL) +# if !defined(BOOST_ASIO_HAS_EVENTFD) +#  if !defined(BOOST_ASIO_DISABLE_EVENTFD) +#   if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) +#    define BOOST_ASIO_HAS_EVENTFD 1 +#   endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) +#  endif // !defined(BOOST_ASIO_DISABLE_EVENTFD) +# endif // !defined(BOOST_ASIO_HAS_EVENTFD) +# if !defined(BOOST_ASIO_HAS_TIMERFD) +#  if defined(BOOST_ASIO_HAS_EPOLL) +#   if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) +#    define BOOST_ASIO_HAS_TIMERFD 1 +#   endif // (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) +#  endif // defined(BOOST_ASIO_HAS_EPOLL) +# endif // !defined(BOOST_ASIO_HAS_TIMERFD)  #endif // defined(__linux__) @@ -288,7 +577,9 @@    || defined(__NetBSD__) \    || defined(__OpenBSD__) -# if !defined(BOOST_ASIO_DISABLE_KQUEUE) -#  define BOOST_ASIO_HAS_KQUEUE 1 -# endif // !defined(BOOST_ASIO_DISABLE_KQUEUE) +# if !defined(BOOST_ASIO_HAS_KQUEUE) +#  if !defined(BOOST_ASIO_DISABLE_KQUEUE) +#   define BOOST_ASIO_HAS_KQUEUE 1 +#  endif // !defined(BOOST_ASIO_DISABLE_KQUEUE) +# endif // !defined(BOOST_ASIO_HAS_KQUEUE)  #endif // (defined(__MACH__) && defined(__APPLE__))         //   || defined(__FreeBSD__) @@ -298,77 +589,284 @@  // Solaris: /dev/poll.  #if defined(__sun) -# if !defined(BOOST_ASIO_DISABLE_DEV_POLL) -#  define BOOST_ASIO_HAS_DEV_POLL 1 -# endif // !defined(BOOST_ASIO_DISABLE_DEV_POLL) +# if !defined(BOOST_ASIO_HAS_DEV_POLL) +#  if !defined(BOOST_ASIO_DISABLE_DEV_POLL) +#   define BOOST_ASIO_HAS_DEV_POLL 1 +#  endif // !defined(BOOST_ASIO_DISABLE_DEV_POLL) +# endif // !defined(BOOST_ASIO_HAS_DEV_POLL)  #endif // defined(__sun)  // Serial ports. -#if defined(BOOST_ASIO_HAS_IOCP) \ -   || !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -# if !defined(__SYMBIAN32__) -#  if !defined(BOOST_ASIO_DISABLE_SERIAL_PORT) -#   define BOOST_ASIO_HAS_SERIAL_PORT 1 -#  endif // !defined(BOOST_ASIO_DISABLE_SERIAL_PORT) -# endif // !defined(__SYMBIAN32__) -#endif // defined(BOOST_ASIO_HAS_IOCP) -       //   || !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) +#if !defined(BOOST_ASIO_HAS_SERIAL_PORT) +# if defined(BOOST_ASIO_HAS_IOCP) \ +  || !defined(BOOST_ASIO_WINDOWS) \ +  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \ +  && !defined(__CYGWIN__) +#  if !defined(__SYMBIAN32__) +#   if !defined(BOOST_ASIO_DISABLE_SERIAL_PORT) +#    define BOOST_ASIO_HAS_SERIAL_PORT 1 +#   endif // !defined(BOOST_ASIO_DISABLE_SERIAL_PORT) +#  endif // !defined(__SYMBIAN32__) +# endif // defined(BOOST_ASIO_HAS_IOCP) +        //   || !defined(BOOST_ASIO_WINDOWS) +        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME) +        //   && !defined(__CYGWIN__) +#endif // !defined(BOOST_ASIO_HAS_SERIAL_PORT)  // Windows: stream handles. -#if !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE) -# if defined(BOOST_ASIO_HAS_IOCP) -#  define BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE 1 -# endif // defined(BOOST_ASIO_HAS_IOCP) -#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE) +#if !defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) +# if !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE) +#  if defined(BOOST_ASIO_HAS_IOCP) +#   define BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE 1 +#  endif // defined(BOOST_ASIO_HAS_IOCP) +# endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE) +#endif // !defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE)  // Windows: random access handles. -#if !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) -# if defined(BOOST_ASIO_HAS_IOCP) -#  define BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE 1 -# endif // defined(BOOST_ASIO_HAS_IOCP) -#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) +#if !defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) +# if !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) +#  if defined(BOOST_ASIO_HAS_IOCP) +#   define BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE 1 +#  endif // defined(BOOST_ASIO_HAS_IOCP) +# endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) +#endif // !defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE)  // Windows: object handles. -#if !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) -# if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -#  if !defined(UNDER_CE) -#   define BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE 1 -#  endif // !defined(UNDER_CE) -# endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) +#if !defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE) +# if !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) +#  if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) +#   if !defined(UNDER_CE) +#    define BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE 1 +#   endif // !defined(UNDER_CE) +#  endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) +# endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) +#endif // !defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE)  // Windows: OVERLAPPED wrapper. -#if !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) -# if defined(BOOST_ASIO_HAS_IOCP) -#  define BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR 1 -# endif // defined(BOOST_ASIO_HAS_IOCP) -#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) +#if !defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR) +# if !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) +#  if defined(BOOST_ASIO_HAS_IOCP) +#   define BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR 1 +#  endif // defined(BOOST_ASIO_HAS_IOCP) +# endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) +#endif // !defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR)  // POSIX: stream-oriented file descriptors. -#if !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) -# if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#  define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR 1 -# endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#endif // !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) +#if !defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) +# if !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) +#  if !defined(BOOST_ASIO_WINDOWS) \ +  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \ +  && !defined(__CYGWIN__) +#   define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR 1 +#  endif // !defined(BOOST_ASIO_WINDOWS) +         //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME) +         //   && !defined(__CYGWIN__) +# endif // !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) +#endif // !defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR)  // UNIX domain sockets. -#if !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS) -# if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#  define BOOST_ASIO_HAS_LOCAL_SOCKETS 1 -# endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#endif // !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS) +#if !defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) +# if !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS) +#  if !defined(BOOST_ASIO_WINDOWS) \ +  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \ +  && !defined(__CYGWIN__) +#   define BOOST_ASIO_HAS_LOCAL_SOCKETS 1 +#  endif // !defined(BOOST_ASIO_WINDOWS) +         //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME) +         //   && !defined(__CYGWIN__) +# endif // !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS) +#endif // !defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)  // Can use sigaction() instead of signal(). -#if !defined(BOOST_ASIO_DISABLE_SIGACTION) -# if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#  define BOOST_ASIO_HAS_SIGACTION 1 -# endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#endif // !defined(BOOST_ASIO_DISABLE_SIGACTION) +#if !defined(BOOST_ASIO_HAS_SIGACTION) +# if !defined(BOOST_ASIO_DISABLE_SIGACTION) +#  if !defined(BOOST_ASIO_WINDOWS) \ +  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \ +  && !defined(__CYGWIN__) +#   define BOOST_ASIO_HAS_SIGACTION 1 +#  endif // !defined(BOOST_ASIO_WINDOWS) +         //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME) +         //   && !defined(__CYGWIN__) +# endif // !defined(BOOST_ASIO_DISABLE_SIGACTION) +#endif // !defined(BOOST_ASIO_HAS_SIGACTION)  // Can use signal(). -#if !defined(BOOST_ASIO_DISABLE_SIGNAL) -# if !defined(UNDER_CE) -#  define BOOST_ASIO_HAS_SIGNAL 1 -# endif // !defined(UNDER_CE) -#endif // !defined(BOOST_ASIO_DISABLE_SIGNAL) +#if !defined(BOOST_ASIO_HAS_SIGNAL) +# if !defined(BOOST_ASIO_DISABLE_SIGNAL) +#  if !defined(UNDER_CE) +#   define BOOST_ASIO_HAS_SIGNAL 1 +#  endif // !defined(UNDER_CE) +# endif // !defined(BOOST_ASIO_DISABLE_SIGNAL) +#endif // !defined(BOOST_ASIO_HAS_SIGNAL) + +// Can use getaddrinfo() and getnameinfo(). +#if !defined(BOOST_ASIO_HAS_GETADDRINFO) +# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) +#  if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) +#   define BOOST_ASIO_HAS_GETADDRINFO 1 +#  elif defined(UNDER_CE) +#   define BOOST_ASIO_HAS_GETADDRINFO 1 +#  endif // defined(UNDER_CE) +# elif !(defined(__MACH__) && defined(__APPLE__)) +#  define BOOST_ASIO_HAS_GETADDRINFO 1 +# endif // !(defined(__MACH__) && defined(__APPLE__)) +#endif // !defined(BOOST_ASIO_HAS_GETADDRINFO) + +// Whether standard iostreams are disabled. +#if !defined(BOOST_ASIO_NO_IOSTREAM) +# if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_IOSTREAM) +#  define BOOST_ASIO_NO_IOSTREAM 1 +# endif // !defined(BOOST_NO_IOSTREAM) +#endif // !defined(BOOST_ASIO_NO_IOSTREAM) + +// Whether exception handling is disabled. +#if !defined(BOOST_ASIO_NO_EXCEPTIONS) +# if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_EXCEPTIONS) +#  define BOOST_ASIO_NO_EXCEPTIONS 1 +# endif // !defined(BOOST_NO_EXCEPTIONS) +#endif // !defined(BOOST_ASIO_NO_EXCEPTIONS) + +// Whether the typeid operator is supported. +#if !defined(BOOST_ASIO_NO_TYPEID) +# if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_TYPEID) +#  define BOOST_ASIO_NO_TYPEID 1 +# endif // !defined(BOOST_NO_TYPEID) +#endif // !defined(BOOST_ASIO_NO_TYPEID) + +// 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. +#if !defined(BOOST_ASIO_HAS_UNISTD_H) +# if !defined(BOOST_ASIO_HAS_BOOST_CONFIG) +#  if defined(unix) \ +   || defined(__unix) \ +   || defined(_XOPEN_SOURCE) \ +   || defined(_POSIX_SOURCE) \ +   || (defined(__MACH__) && defined(__APPLE__)) \ +   || defined(__FreeBSD__) \ +   || defined(__NetBSD__) \ +   || defined(__OpenBSD__) \ +   || defined(__linux__) +#   define BOOST_ASIO_HAS_UNISTD_H 1 +#  endif +# endif // !defined(BOOST_ASIO_HAS_BOOST_CONFIG) +#endif // !defined(BOOST_ASIO_HAS_UNISTD_H) +#if defined(BOOST_ASIO_HAS_UNISTD_H) +# include <unistd.h> +#endif // defined(BOOST_ASIO_HAS_UNISTD_H) + +// Threads. +#if !defined(BOOST_ASIO_HAS_THREADS) +# if !defined(BOOST_ASIO_DISABLE_THREADS) +#  if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS) +#   define BOOST_ASIO_HAS_THREADS 1 +#  elif defined(_MSC_VER) && defined(_MT) +#   define BOOST_ASIO_HAS_THREADS 1 +#  elif defined(__BORLANDC__) && defined(__MT__) +#   define BOOST_ASIO_HAS_THREADS 1 +#  elif defined(_POSIX_THREADS) +#   define BOOST_ASIO_HAS_THREADS 1 +#  endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS) +# endif // !defined(BOOST_ASIO_DISABLE_THREADS) +#endif // !defined(BOOST_ASIO_HAS_THREADS) + +// POSIX threads. +#if !defined(BOOST_ASIO_HAS_PTHREADS) +# if defined(BOOST_ASIO_HAS_THREADS) +#  if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS) +#   define BOOST_ASIO_HAS_PTHREADS 1 +#  elif defined(_POSIX_THREADS) +#   define BOOST_ASIO_HAS_PTHREADS 1 +#  endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS) +# endif // defined(BOOST_ASIO_HAS_THREADS) +#endif // !defined(BOOST_ASIO_HAS_PTHREADS) + +// Helper to prevent macro expansion. +#define BOOST_ASIO_PREVENT_MACRO_SUBSTITUTION + +// Helper to define in-class constants. +#if !defined(BOOST_ASIO_STATIC_CONSTANT) +# if !defined(BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT) +#  define BOOST_ASIO_STATIC_CONSTANT(type, assignment) \ +    BOOST_STATIC_CONSTANT(type, assignment) +# else // !defined(BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT) +#  define BOOST_ASIO_STATIC_CONSTANT(type, assignment) \ +    static const type assignment +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT) +#endif // !defined(BOOST_ASIO_STATIC_CONSTANT) + +// Boost array library. +#if !defined(BOOST_ASIO_HAS_BOOST_ARRAY) +# if !defined(BOOST_ASIO_DISABLE_BOOST_ARRAY) +#  define BOOST_ASIO_HAS_BOOST_ARRAY 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_ARRAY) +#endif // !defined(BOOST_ASIO_HAS_BOOST_ARRAY) + +// Boost assert macro. +#if !defined(BOOST_ASIO_HAS_BOOST_ASSERT) +# if !defined(BOOST_ASIO_DISABLE_BOOST_ASSERT) +#  define BOOST_ASIO_HAS_BOOST_ASSERT 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_ASSERT) +#endif // !defined(BOOST_ASIO_HAS_BOOST_ASSERT) + +// Boost limits header. +#if !defined(BOOST_ASIO_HAS_BOOST_LIMITS) +# if !defined(BOOST_ASIO_DISABLE_BOOST_LIMITS) +#  define BOOST_ASIO_HAS_BOOST_LIMITS 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_LIMITS) +#endif // !defined(BOOST_ASIO_HAS_BOOST_LIMITS) + +// Boost throw_exception function. +#if !defined(BOOST_ASIO_HAS_BOOST_THROW_EXCEPTION) +# if !defined(BOOST_ASIO_DISABLE_BOOST_THROW_EXCEPTION) +#  define BOOST_ASIO_HAS_BOOST_THROW_EXCEPTION 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_THROW_EXCEPTION) +#endif // !defined(BOOST_ASIO_HAS_BOOST_THROW_EXCEPTION) + +// Boost regex library. +#if !defined(BOOST_ASIO_HAS_BOOST_REGEX) +# if !defined(BOOST_ASIO_DISABLE_BOOST_REGEX) +#  define BOOST_ASIO_HAS_BOOST_REGEX 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_REGEX) +#endif // !defined(BOOST_ASIO_HAS_BOOST_REGEX) + +// Boost bind function. +#if !defined(BOOST_ASIO_HAS_BOOST_BIND) +# if !defined(BOOST_ASIO_DISABLE_BOOST_BIND) +#  define BOOST_ASIO_HAS_BOOST_BIND 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_BIND) +#endif // !defined(BOOST_ASIO_HAS_BOOST_BIND) + +// Boost's BOOST_WORKAROUND macro. +#if !defined(BOOST_ASIO_HAS_BOOST_WORKAROUND) +# if !defined(BOOST_ASIO_DISABLE_BOOST_WORKAROUND) +#  define BOOST_ASIO_HAS_BOOST_WORKAROUND 1 +# endif // !defined(BOOST_ASIO_DISABLE_BOOST_WORKAROUND) +#endif // !defined(BOOST_ASIO_HAS_BOOST_WORKAROUND) + +// Microsoft Visual C++'s secure C runtime library. +#if !defined(BOOST_ASIO_HAS_SECURE_RTL) +# if !defined(BOOST_ASIO_DISABLE_SECURE_RTL) +#  if defined(BOOST_ASIO_MSVC) \ +    && (BOOST_ASIO_MSVC >= 1400) \ +    && !defined(UNDER_CE) +#   define BOOST_ASIO_HAS_SECURE_RTL 1 +#  endif // defined(BOOST_ASIO_MSVC) +         // && (BOOST_ASIO_MSVC >= 1400) +         // && !defined(UNDER_CE) +# endif // !defined(BOOST_ASIO_DISABLE_SECURE_RTL) +#endif // !defined(BOOST_ASIO_HAS_SECURE_RTL) + +// Handler hooking. Disabled for ancient Borland C++ and gcc compilers. +#if !defined(BOOST_ASIO_HAS_HANDLER_HOOKS) +# if !defined(BOOST_ASIO_DISABLE_HANDLER_HOOKS) +#  if defined(__GNUC__) +#   if (__GNUC__ >= 3) +#    define BOOST_ASIO_HAS_HANDLER_HOOKS 1 +#   endif // (__GNUC__ >= 3) +#  elif !defined(__BORLANDC__) +#   define BOOST_ASIO_HAS_HANDLER_HOOKS 1 +#  endif // !defined(__BORLANDC__) +# endif // !defined(BOOST_ASIO_DISABLE_HANDLER_HOOKS) +#endif // !defined(BOOST_ASIO_HAS_HANDLER_HOOKS)  // Support for the __thread keyword extension. @@ -379,4 +877,5 @@  #    if !defined(__INTEL_COMPILER) && !defined(__ICL)  #     define BOOST_ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 +#     define BOOST_ASIO_THREAD_KEYWORD __thread  #    elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100)  #     define BOOST_ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 @@ -385,5 +884,23 @@  #  endif // defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))  # endif // defined(__linux__) +# if defined(BOOST_ASIO_MSVC) && defined(BOOST_ASIO_WINDOWS_RUNTIME) +#  if (_MSC_VER >= 1700) +#   define BOOST_ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 +#   define BOOST_ASIO_THREAD_KEYWORD __declspec(thread) +#  endif // (_MSC_VER >= 1700) +# endif // defined(BOOST_ASIO_MSVC) && defined(BOOST_ASIO_WINDOWS_RUNTIME)  #endif // !defined(BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION) +#if !defined(BOOST_ASIO_THREAD_KEYWORD) +# define BOOST_ASIO_THREAD_KEYWORD __thread +#endif // !defined(BOOST_ASIO_THREAD_KEYWORD) + +// Support for POSIX ssize_t typedef. +#if !defined(BOOST_ASIO_DISABLE_SSIZE_T) +# if defined(__linux__) \ +   || (defined(__MACH__) && defined(__APPLE__)) +#  define BOOST_ASIO_HAS_SSIZE_T 1 +# endif // defined(__linux__) +        //   || (defined(__MACH__) && defined(__APPLE__)) +#endif // !defined(BOOST_ASIO_DISABLE_SSIZE_T)  #endif // BOOST_ASIO_DETAIL_CONFIG_HPP | 
 Swift
 Swift