Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/llfio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'attic/include/boost/afio/v2/config.hpp')
-rw-r--r--attic/include/boost/afio/v2/config.hpp491
1 files changed, 491 insertions, 0 deletions
diff --git a/attic/include/boost/afio/v2/config.hpp b/attic/include/boost/afio/v2/config.hpp
new file mode 100644
index 00000000..35dda16d
--- /dev/null
+++ b/attic/include/boost/afio/v2/config.hpp
@@ -0,0 +1,491 @@
+/*
+* File: config.hpp
+* Author: Paul Kirth
+*
+* Created on June 18, 2013, 7:30 PM
+
+
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+*/
+
+#if !defined(BOOST_AFIO_HEADERS_ONLY) && !defined(BOOST_ALL_DYN_LINK)
+#define BOOST_AFIO_HEADERS_ONLY 1
+#endif
+
+// Fix up mingw weirdness
+#if !defined(WIN32) && defined(_WIN32)
+# define WIN32 1
+#endif
+// Boost ASIO needs this
+#if !defined(_WIN32_WINNT) && defined(WIN32)
+# define _WIN32_WINNT 0x0501
+#endif
+#if defined(WIN32) && _WIN32_WINNT<0x0501
+# error _WIN32_WINNT must at least be set to Windows XP for Boost ASIO to compile
+#endif
+// Get Mingw to assume we are on at least Windows 2000
+#if __MSVCRT_VERSION__ < 0x601
+# undef __MSVCRT_VERSION__
+# define __MSVCRT_VERSION__ 0x601
+#endif
+// Pull in detection of __MINGW64_VERSION_MAJOR
+#ifdef __MINGW32__
+# include <_mingw.h>
+#endif
+
+#include "../bindlib/include/import.h"
+
+#ifndef __cpp_exceptions
+# error Boost.AFIO needs C++ exceptions to be turned on
+#endif
+#ifndef __cpp_alias_templates
+# error Boost.AFIO needs template alias support in the compiler
+#endif
+#ifndef __cpp_variadic_templates
+# error Boost.AFIO needs variadic template support in the compiler
+#endif
+#ifndef __cpp_noexcept
+# error Boost.AFIO needs noexcept support in the compiler
+#endif
+#ifndef __cpp_constexpr
+# error Boost.AFIO needs constexpr (C++ 11) support in the compiler
+#endif
+#ifndef __cpp_thread_local
+# error Boost.AFIO needs thread_local support in the compiler
+#endif
+
+#if defined(BOOST_AFIO_LATEST_VERSION) && BOOST_AFIO_LATEST_VERSION < 2
+# error You need to include the latest version of Boost.AFIO before any earlier versions within the same translation unit
+#endif
+#ifndef BOOST_AFIO_LATEST_VERSION
+# define BOOST_AFIO_LATEST_VERSION 2
+#endif
+
+#undef BOOST_AFIO_V2_STL11_IMPL
+#undef BOOST_AFIO_V2_FILESYSTEM_IMPL
+#undef BOOST_AFIO_V2_ASIO_IMPL
+#undef BOOST_AFIO_V2
+#undef BOOST_AFIO_V2_NAMESPACE
+#undef BOOST_AFIO_V2_NAMESPACE_BEGIN
+#undef BOOST_AFIO_V2_NAMESPACE_END
+
+// Default to the C++ 11 STL for atomic, chrono, mutex and thread except on Mingw32
+#if (defined(BOOST_AFIO_USE_BOOST_THREAD) && BOOST_AFIO_USE_BOOST_THREAD) || (defined(__MINGW32__) && !defined(__MINGW64__) && !defined(__MINGW64_VERSION_MAJOR))
+# if defined(BOOST_OUTCOME_USE_BOOST_THREAD) && BOOST_OUTCOME_USE_BOOST_THREAD != 1
+# error You must configure Boost.Monad and Boost.AFIO to both use Boost.Thread together or both not at all.
+# endif
+# define BOOST_OUTCOME_USE_BOOST_THREAD 1
+# define BOOST_AFIO_V2_STL11_IMPL boost
+# ifndef BOOST_THREAD_VERSION
+# define BOOST_THREAD_VERSION 3
+# endif
+# if BOOST_THREAD_VERSION < 3
+# error Boost.AFIO requires that Boost.Thread be configured to v3 or later
+# endif
+#else
+# if defined(BOOST_OUTCOME_USE_BOOST_THREAD) && BOOST_OUTCOME_USE_BOOST_THREAD != 0
+# error You must configure Boost.Monad and Boost.AFIO to both use Boost.Thread together or both not at all.
+# endif
+# define BOOST_OUTCOME_USE_BOOST_THREAD 0
+# define BOOST_AFIO_V2_STL11_IMPL std
+# ifndef BOOST_AFIO_USE_BOOST_THREAD
+# define BOOST_AFIO_USE_BOOST_THREAD 0
+# endif
+#endif
+// Default to the C++ 11 STL if on MSVC (Dinkumware ships a copy), else Boost
+#ifndef BOOST_AFIO_USE_BOOST_FILESYSTEM
+# if _MSC_VER >= 1900 // >= VS 14
+# define BOOST_AFIO_USE_BOOST_FILESYSTEM 0
+# endif
+#endif
+#ifndef BOOST_AFIO_USE_BOOST_FILESYSTEM
+# define BOOST_AFIO_USE_BOOST_FILESYSTEM 1
+#endif
+#if BOOST_AFIO_USE_BOOST_FILESYSTEM
+# define BOOST_AFIO_V2_FILESYSTEM_IMPL boost
+# define BOOST_AFIO_USE_LEGACY_FILESYSTEM_SEMANTICS 1
+#else
+# define BOOST_AFIO_V2_FILESYSTEM_IMPL std
+#endif
+#ifdef ASIO_STANDALONE
+# if defined(BOOST_OUTCOME_USE_BOOST_ERROR_CODE) && BOOST_OUTCOME_USE_BOOST_ERROR_CODE != 0
+# error You must configure Boost.Monad to use the STL error_code if using standalone ASIO
+# endif
+# define BOOST_OUTCOME_USE_BOOST_ERROR_CODE 0
+# define BOOST_AFIO_V2_ASIO_IMPL asio
+# undef BOOST_AFIO_USE_BOOST_ASIO
+# define BOOST_AFIO_USE_BOOST_ASIO 0
+#else
+# if defined(BOOST_OUTCOME_USE_BOOST_ERROR_CODE) && BOOST_OUTCOME_USE_BOOST_ERROR_CODE != 1
+# error You must configure Boost.Monad to use the Boost error code if using Boost.ASIO
+# endif
+# define BOOST_OUTCOME_USE_BOOST_ERROR_CODE 1
+# define BOOST_AFIO_V2_ASIO_IMPL boost
+# undef BOOST_AFIO_USE_BOOST_ASIO
+# define BOOST_AFIO_USE_BOOST_ASIO 1
+// Pull in Boost now before Monad does to avoid warnings caused by APIBind emulating Boost
+# include "boost/thread/future.hpp"
+#endif
+#if BOOST_AFIO_LATEST_VERSION == 2
+# define BOOST_AFIO_V2 (boost), (afio), (BOOST_BINDLIB_NAMESPACE_VERSION(v2, BOOST_AFIO_V2_STL11_IMPL, BOOST_AFIO_V2_FILESYSTEM_IMPL, BOOST_AFIO_V2_ASIO_IMPL), inline)
+#else
+# define BOOST_AFIO_V2 (boost), (afio), (BOOST_BINDLIB_NAMESPACE_VERSION(v2, BOOST_AFIO_V2_STL11_IMPL, BOOST_AFIO_V2_FILESYSTEM_IMPL, BOOST_AFIO_V2_ASIO_IMPL))
+#endif
+#define BOOST_AFIO_V2_NAMESPACE BOOST_BINDLIB_NAMESPACE (BOOST_AFIO_V2)
+#define BOOST_AFIO_V2_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2)
+#define BOOST_AFIO_V2_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2)
+
+// From automated matrix generator
+#undef BOOST_AFIO_NEED_DEFINE
+#undef BOOST_AFIO_NEED_DEFINE_DESCRIPTION
+#if !BOOST_AFIO_USE_BOOST_THREAD && !BOOST_AFIO_USE_BOOST_FILESYSTEM && !BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_000
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=0 BOOST_AFIO_USE_BOOST_FILESYSTEM=0 BOOST_AFIO_USE_BOOST_ASIO=0"
+# define BOOST_AFIO_NEED_DEFINE_000
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#elif BOOST_AFIO_USE_BOOST_THREAD && !BOOST_AFIO_USE_BOOST_FILESYSTEM && !BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_100
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=1 BOOST_AFIO_USE_BOOST_FILESYSTEM=0 BOOST_AFIO_USE_BOOST_ASIO=0"
+# define BOOST_AFIO_NEED_DEFINE_100
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#elif !BOOST_AFIO_USE_BOOST_THREAD && BOOST_AFIO_USE_BOOST_FILESYSTEM && !BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_010
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=0 BOOST_AFIO_USE_BOOST_FILESYSTEM=1 BOOST_AFIO_USE_BOOST_ASIO=0"
+# define BOOST_AFIO_NEED_DEFINE_010
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#elif BOOST_AFIO_USE_BOOST_THREAD && BOOST_AFIO_USE_BOOST_FILESYSTEM && !BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_110
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=1 BOOST_AFIO_USE_BOOST_FILESYSTEM=1 BOOST_AFIO_USE_BOOST_ASIO=0"
+# define BOOST_AFIO_NEED_DEFINE_110
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#elif !BOOST_AFIO_USE_BOOST_THREAD && !BOOST_AFIO_USE_BOOST_FILESYSTEM && BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_001
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=0 BOOST_AFIO_USE_BOOST_FILESYSTEM=0 BOOST_AFIO_USE_BOOST_ASIO=1"
+# define BOOST_AFIO_NEED_DEFINE_001
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#elif BOOST_AFIO_USE_BOOST_THREAD && !BOOST_AFIO_USE_BOOST_FILESYSTEM && BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_101
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=1 BOOST_AFIO_USE_BOOST_FILESYSTEM=0 BOOST_AFIO_USE_BOOST_ASIO=1"
+# define BOOST_AFIO_NEED_DEFINE_101
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#elif !BOOST_AFIO_USE_BOOST_THREAD && BOOST_AFIO_USE_BOOST_FILESYSTEM && BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_011
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=0 BOOST_AFIO_USE_BOOST_FILESYSTEM=1 BOOST_AFIO_USE_BOOST_ASIO=1"
+# define BOOST_AFIO_NEED_DEFINE_011
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#elif BOOST_AFIO_USE_BOOST_THREAD && BOOST_AFIO_USE_BOOST_FILESYSTEM && BOOST_AFIO_USE_BOOST_ASIO
+# ifndef BOOST_AFIO_NEED_DEFINE_111
+# define BOOST_AFIO_NEED_DEFINE_DESCRIPTION "BOOST_AFIO_USE_BOOST_THREAD=1 BOOST_AFIO_USE_BOOST_FILESYSTEM=1 BOOST_AFIO_USE_BOOST_ASIO=1"
+# define BOOST_AFIO_NEED_DEFINE_111
+# define BOOST_AFIO_NEED_DEFINE 1
+# endif
+#endif
+
+#ifdef BOOST_AFIO_NEED_DEFINE
+#undef BOOST_AFIO_AFIO_H
+
+#define BOOST_STL11_ATOMIC_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_ATOMIC_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_ATOMIC_MAP_NO_ATOMIC_CHAR32_T // missing VS14
+#define BOOST_STL11_ATOMIC_MAP_NO_ATOMIC_CHAR16_T // missing VS14
+#define BOOST_STL11_CHRONO_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl11, inline), (chrono))
+#define BOOST_STL11_CHRONO_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl11, inline), (chrono))
+#define BOOST_STL11_CONDITION_VARIABLE_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_CONDITION_VARIABLE_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL1z_FILESYSTEM_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl1z, inline), (filesystem))
+#define BOOST_STL1z_FILESYSTEM_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl1z, inline), (filesystem))
+// Match Dinkumware's TR2 implementation
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_SYMLINK_OPTION
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_COPY_OPTION
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_CHANGE_EXTENSION
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_WRECURSIVE_DIRECTORY_ITERATOR
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_EXTENSION
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_TYPE_PRESENT
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_PORTABLE_FILE_NAME
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_PORTABLE_DIRECTORY_NAME
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_PORTABLE_POSIX_NAME
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_LEXICOGRAPHICAL_COMPARE
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_WINDOWS_NAME
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_PORTABLE_NAME
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_BASENAME
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_COMPLETE
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_IS_REGULAR
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_INITIAL_PATH
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_PERMISSIONS_PRESENT
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_CODECVT_ERROR_CATEGORY
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_WPATH
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_SYMBOLIC_LINK_EXISTS
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_COPY_DIRECTORY
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_NATIVE
+#define BOOST_STL1z_FILESYSTEM_MAP_NO_UNIQUE_PATH
+#define BOOST_STL11_FUTURE_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_FUTURE_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_FUTURE_MAP_NO_FUTURE
+#define BOOST_STL11_MUTEX_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_MUTEX_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL1z_NETWORKING_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl1z, inline), (asio))
+#define BOOST_STL1z_NETWORKING_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl1z, inline), (asio))
+#define BOOST_STL1z_NETWORKING_MAP_NO_V4_MAPPED_T
+#define BOOST_STL1z_NETWORKING_MAP_NO_EXECUTOR_ARG_T
+#define BOOST_STL1z_NETWORKING_MAP_NO_WRAP
+#define BOOST_STL1z_NETWORKING_MAP_NO_MAKE_WORK
+#define BOOST_STL1z_NETWORKING_MAP_NO_ASYNC_COMPLETION
+#define BOOST_STL1z_NETWORKING_MAP_NO_EXECUTOR_WORK
+#define BOOST_STL1z_NETWORKING_MAP_NO_EXECUTION_CONTEXT
+#define BOOST_STL1z_NETWORKING_MAP_NO_POST
+#define BOOST_STL1z_NETWORKING_MAP_NO_EXECUTOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_USES_EXECUTOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_BAD_ADDRESS_CAST
+#define BOOST_STL1z_NETWORKING_MAP_NO_BAD_EXECUTOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_GET_ASSOCIATED_EXECUTOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_ASSOCIATED_EXECUTOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_GET_ASSOCIATED_ALLOCATOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_ASSOCIATED_ALLOCATOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_IS_EXECUTOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_MAKE_ADDRESS_V4
+#define BOOST_STL1z_NETWORKING_MAP_NO_MAKE_ADDRESS_V6
+#define BOOST_STL1z_NETWORKING_MAP_NO_MAKE_ADDRESS
+#define BOOST_STL1z_NETWORKING_MAP_NO_ADDRESS_CAST
+#define BOOST_STL1z_NETWORKING_MAP_NO_DEFER
+#define BOOST_STL1z_NETWORKING_MAP_NO_DISPATCH
+#define BOOST_STL1z_NETWORKING_MAP_NO_THREAD_POOL
+#define BOOST_STL1z_NETWORKING_MAP_NO_IS_MUTABLE_BUFFER_SEQUENCE
+#define BOOST_STL1z_NETWORKING_MAP_NO_IS_CONST_BUFFER_SEQUENCE
+#define BOOST_STL1z_NETWORKING_MAP_NO_EXECUTOR_WRAPPER
+#define BOOST_STL1z_NETWORKING_MAP_NO_SYSTEM_EXECUTOR
+#define BOOST_STL1z_NETWORKING_MAP_NO_HANDLER_TYPE
+#define BOOST_STL1z_NETWORKING_MAP_NO_STRAND
+#define BOOST_STL1z_NETWORKING_MAP_NO_READ_SIZE_HELPER
+#define BOOST_STL11_RATIO_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_RATIO_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_THREAD_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl11, inline))
+#define BOOST_STL11_THREAD_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl11, inline))
+#include BOOST_BINDLIB_INCLUDE_STL11(../bindlib, BOOST_AFIO_V2_STL11_IMPL, atomic)
+#include BOOST_BINDLIB_INCLUDE_STL11(../bindlib, BOOST_AFIO_V2_STL11_IMPL, chrono)
+#include BOOST_BINDLIB_INCLUDE_STL11(../bindlib, BOOST_AFIO_V2_STL11_IMPL, condition_variable)
+#include BOOST_BINDLIB_INCLUDE_STL1z(../bindlib, BOOST_AFIO_V2_FILESYSTEM_IMPL, filesystem)
+#include BOOST_BINDLIB_INCLUDE_STL11(../bindlib, BOOST_AFIO_V2_STL11_IMPL, future)
+#include BOOST_BINDLIB_INCLUDE_STL11(../bindlib, BOOST_AFIO_V2_STL11_IMPL, mutex)
+#include BOOST_BINDLIB_INCLUDE_STL1z(../bindlib, BOOST_AFIO_V2_ASIO_IMPL, networking)
+#include BOOST_BINDLIB_INCLUDE_STL11(../bindlib, BOOST_AFIO_V2_STL11_IMPL, ratio)
+#include BOOST_BINDLIB_INCLUDE_STL11(../bindlib, BOOST_AFIO_V2_STL11_IMPL, thread)
+
+#define BOOST_STL1z_NETWORKING_MAP_NAMESPACE_BEGIN BOOST_BINDLIB_NAMESPACE_BEGIN(BOOST_AFIO_V2, (stl1z, inline), (asio))
+#define BOOST_STL1z_NETWORKING_MAP_NAMESPACE_END BOOST_BINDLIB_NAMESPACE_END (BOOST_AFIO_V2, (stl1z, inline), (asio))
+BOOST_STL1z_NETWORKING_MAP_NAMESPACE_BEGIN
+// Need to bind in asio::windows
+#ifdef WIN32
+# if !BOOST_AFIO_USE_BOOST_ASIO
+namespace error = ::asio::error;
+namespace windows = ::asio::windows;
+# else
+namespace error = ::boost::asio::error;
+namespace windows = ::boost::asio::windows;
+# endif
+#endif
+BOOST_STL1z_NETWORKING_MAP_NAMESPACE_END
+#undef BOOST_STL1z_NETWORKING_MAP_NAMESPACE_BEGIN
+#undef BOOST_STL1z_NETWORKING_MAP_NAMESPACE_END
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Map an error category
+BOOST_AFIO_V2_NAMESPACE_BEGIN
+using std::to_string;
+
+#if BOOST_AFIO_USE_BOOST_THREAD
+//using boost::make_exception_ptr;
+template<class T> inline boost::exception_ptr make_exception_ptr(T e)
+{
+ try
+ {
+ throw e;
+ }
+ catch(...)
+ {
+ return boost::current_exception();
+ }
+}
+template<class _Res> using stl_future = ::boost::future<_Res>;
+#else
+using std::make_exception_ptr;
+template<class _Res> using stl_future = ::std::future<_Res>;
+#endif
+
+#if !BOOST_AFIO_USE_BOOST_ASIO
+typedef asio::error_code error_code;
+using std::generic_category;
+using std::system_category;
+using std::system_error;
+#else
+typedef boost::system::error_code error_code;
+using boost::system::generic_category;
+using boost::system::system_category;
+using boost::system::system_error;
+#endif
+#if defined(_MSC_VER) && 0
+// Stupid MSVC doesn't resolve namespace binds correctly ...
+#if !BOOST_AFIO_USE_BOOST_ASIO
+namespace asio {
+ namespace asio = ::asio;
+ namespace detail { namespace asio = ::asio; }
+ //namespace windows { namespace asio = ::asio; }
+}
+namespace asio_handler_cont_helpers { namespace asio = ::asio; }
+namespace asio_handler_alloc_helpers { namespace asio = ::asio; }
+namespace asio_handler_invoke_helpers { namespace asio = ::asio; }
+
+#else
+namespace boost { namespace asio {
+ namespace asio = ::boost::asio;
+ namespace detail { namespace asio = ::boost::asio; }
+ namespace windows { namespace asio = ::boost::asio; }
+} }
+#endif
+#endif
+BOOST_AFIO_V2_NAMESPACE_END
+#endif
+
+#include "../outcome/include/boost/outcome.hpp"
+BOOST_AFIO_V2_NAMESPACE_BEGIN
+ using BOOST_OUTCOME_V1_NAMESPACE::is_lockable_locked;
+ using spins_to_sleep = BOOST_OUTCOME_V1_NAMESPACE::spins_to_sleep;
+ template<size_t _0> using spins_to_yield = BOOST_OUTCOME_V1_NAMESPACE::spins_to_yield<_0>;
+ template<size_t _0, bool _1=true> using spins_to_loop = BOOST_OUTCOME_V1_NAMESPACE::spins_to_loop<_0, _1>;
+ using null_spin_policy = BOOST_OUTCOME_V1_NAMESPACE::null_spin_policy;
+ template<class T> using spinlockbase = BOOST_OUTCOME_V1_NAMESPACE::spinlockbase<T>;
+ template<class T> using lockable_ptr = BOOST_OUTCOME_V1_NAMESPACE::lockable_ptr<T>;
+ template<typename T, template<class> class spinpolicy2=spins_to_loop<125>::policy, template<class> class spinpolicy3=spins_to_yield<250>::policy, template<class> class spinpolicy4=spins_to_sleep::policy> using spinlock = BOOST_OUTCOME_V1_NAMESPACE::spinlock<T, spinpolicy2, spinpolicy3, spinpolicy4>;
+ template<typename R> using outcome = BOOST_OUTCOME_V1_NAMESPACE::outcome<R>;
+ template<typename R> using result = BOOST_OUTCOME_V1_NAMESPACE::result<R>;
+ template<typename R> using option = BOOST_OUTCOME_V1_NAMESPACE::option<R>;
+ template<typename R> using lightweight_promise = BOOST_OUTCOME_V1_NAMESPACE::lightweight_futures::promise<R>;
+ template<typename R> using lightweight_future = BOOST_OUTCOME_V1_NAMESPACE::lightweight_futures::future<R>;
+ template<typename R> using is_lightweight_future = BOOST_OUTCOME_V1_NAMESPACE::lightweight_futures::is_future<R>;
+ using BOOST_OUTCOME_V1_NAMESPACE::empty;
+ using BOOST_OUTCOME_V1_NAMESPACE::make_option;
+ using BOOST_OUTCOME_V1_NAMESPACE::make_outcome;
+ using BOOST_OUTCOME_V1_NAMESPACE::make_result;
+ using BOOST_OUTCOME_V1_NAMESPACE::make_errored_outcome;
+ using BOOST_OUTCOME_V1_NAMESPACE::make_errored_result;
+ using BOOST_OUTCOME_V1_NAMESPACE::monad_errc;
+ using BOOST_OUTCOME_V1_NAMESPACE::monad_category;
+BOOST_AFIO_V2_NAMESPACE_END
+
+///////////////////////////////////////////////////////////////////////////////
+// Set up dll import/export options
+#if (defined(BOOST_AFIO_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && \
+ !defined(BOOST_AFIO_STATIC_LINK)
+
+# if defined(BOOST_AFIO_SOURCE)
+# undef BOOST_AFIO_HEADERS_ONLY
+# define BOOST_AFIO_DECL BOOST_SYMBOL_EXPORT
+# define BOOST_AFIO_BUILD_DLL
+# else
+# define BOOST_AFIO_DECL
+# endif
+#else
+# define BOOST_AFIO_DECL
+#endif // building a shared library
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Auto library naming
+#if !defined(BOOST_AFIO_SOURCE) && !defined(BOOST_ALL_NO_LIB) && \
+ !defined(BOOST_AFIO_NO_LIB) && !AFIO_STANDALONE && !BOOST_AFIO_HEADERS_ONLY
+
+#define BOOST_LIB_NAME boost_afio
+
+// tell the auto-link code to select a dll when required:
+#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_AFIO_DYN_LINK)
+#define BOOST_DYN_LINK
+#endif
+
+#include <boost/config/auto_link.hpp>
+
+#endif // auto-linking disabled
+
+//#define BOOST_THREAD_VERSION 4
+//#define BOOST_THREAD_PROVIDES_VARIADIC_THREAD
+//#define BOOST_THREAD_DONT_PROVIDE_FUTURE
+//#define BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
+#if BOOST_AFIO_HEADERS_ONLY == 1
+# define BOOST_AFIO_HEADERS_ONLY_FUNC_SPEC inline
+# define BOOST_AFIO_HEADERS_ONLY_MEMFUNC_SPEC inline
+# define BOOST_AFIO_HEADERS_ONLY_VIRTUAL_SPEC inline virtual
+// GCC gets upset if inline virtual functions aren't defined
+# ifdef BOOST_GCC
+# define BOOST_AFIO_HEADERS_ONLY_VIRTUAL_UNDEFINED_SPEC { BOOST_AFIO_THROW_FATAL(std::runtime_error("Attempt to call pure virtual member function")); abort(); }
+# else
+# define BOOST_AFIO_HEADERS_ONLY_VIRTUAL_UNDEFINED_SPEC =0;
+# endif
+#else
+# define BOOST_AFIO_HEADERS_ONLY_FUNC_SPEC extern BOOST_AFIO_DECL
+# define BOOST_AFIO_HEADERS_ONLY_MEMFUNC_SPEC
+# define BOOST_AFIO_HEADERS_ONLY_VIRTUAL_SPEC virtual
+# define BOOST_AFIO_HEADERS_ONLY_VIRTUAL_UNDEFINED_SPEC =0;
+#endif
+
+#if defined(__has_feature)
+# if __has_feature(thread_sanitizer)
+# define BOOST_AFIO_DISABLE_THREAD_SANITIZE __attribute__((no_sanitize_thread))
+# endif
+#endif
+#ifndef BOOST_AFIO_DISABLE_THREAD_SANITIZE
+# define BOOST_AFIO_DISABLE_THREAD_SANITIZE
+#endif
+
+#ifndef BOOST_AFIO_LAMBDA_MOVE_CAPTURE
+# ifdef __cpp_init_captures
+# define BOOST_AFIO_LAMBDA_MOVE_CAPTURE(var) var=std::move(var)
+# else
+# define BOOST_AFIO_LAMBDA_MOVE_CAPTURE(var) var
+# endif
+#endif
+
+#ifndef BOOST_AFIO_THREAD_LOCAL
+# ifdef __cpp_thread_local
+# define BOOST_AFIO_THREAD_LOCAL thread_local
+# elif defined(_MSC_VER)
+# define BOOST_AFIO_THREAD_LOCAL __declspec(thread)
+# elif defined(__GNUC__)
+# define BOOST_AFIO_THREAD_LOCAL __thread
+# else
+# error Unknown compiler, cannot set BOOST_AFIO_THREAD_LOCAL
+# endif
+#endif
+
+#ifndef BOOST_AFIO_LOG_FATAL_EXIT
+#define BOOST_AFIO_LOG_FATAL_EXIT(expr) std::cerr << expr
+#endif
+
+#endif // BOOST_AFIO_NEED_DEFINE
+